一段落

今日は昼から学校へ。
研究は、一つ山を越えてもう一つの山に登ろうかという予定。
来週までにやらないといけないことがある。
それを超えたら、引き継ぎの研究を発展させて自分に与えられた課題に取り組むことになる。
一応来週までにその準備はできるかもしれない。
とりあえず行きつ戻りつ進んでいる。
しかしながら制御回路がどう動いてそうなるのか理解できていない部分がある。
そりゃ確かに大雑把に話は分かる。雰囲気もわかる。
けれどなにか正確な理解からは程遠い場所にいる。
この辺り先に進みつ、あまりわからないところは覚えておいて後で戻ってくるのも手だと思う。


指導院生からすれば結構いいところまで行っているらしく、そろそろ分岐点につれていけると言っていた。
表面的にさらっとやっている感じで、心底わかった感じがないのはなんなのだろうなぁ。



(PI雑感)
夜中になんだか頭の中をPIについての理解が深まるような言葉が浮かんできたので、書きつけておこう。
PIというのは、ある指令値と現在値の偏差をとって程度の良い制御量を出力する、というものであるが、
ブロック図上でこのPIブロックから次の●●ブロックに入って・・・、などとブロック図を追っていたら到底理解できない。
近視眼的に理解できるようなものではない。
そもそも何度もサンプルを取り込み、PIして出力し、その出力をまた入力しというエンドレスな作業の結果、
指令値に従うようになるわけで、そもそも制御ブロック図を一回り見て理解しようとしても駄目な代物である。
原理的にブロック図を一度追うだけではPIは理解できないようになっているのである。
ブロック図を追いながら、それも定量的に理解できるとすれば、
初期状態から少なくとも指令値に追従するまでの一連の流れ(演算)を追うしかないのである。


そもそもそういう性質のものを、丹念に「一度」制御ブロック図を追ってみましょう、
というようなやり方で理解しようとするからわけがわからなくなるのである。
ある部分にPIを仕込んでいたとしたら、例えば非常に制御しにくい部分をPIだけに頼りながら制御できたりもする。
基本的にPIの指令値というのは定値にしたいわけで、例えば交流電圧を操ろうとしたとして、
交流電圧の現在値と指令値の偏差をとってPIを仕掛けるなんてことはしない。
指令値というのは一定値にとりたいというのが第一にあって、指令値が変化するようなPIというのは性質上偏差が残る。
この辺りはなぜなのかはしらないけれど、とりあえず「指令値は定値」で使うというのが一般的だ、というのを念頭に置く。


キーワードは「風が吹けば桶屋が儲かる」と「ドミノ倒し」なのではないかと思う。
例えば三相の電流を座標変換して、定値にしたところでPIを仕掛けるなんてことはよくやられる手法であるが、
ここのPIというのは、次の座標逆変換を介して、さらにスイッチングパルスを生成する段階になっても
「ドミノ倒し」の要領で効いてくるように仕組まれている。
PIのブロックを通過して次々にブロックを通ると、もはやPIの出力がどうなったのか考えることはとても難しい。
しかし、あるPIをかけやすい地点で、指令値をこのようにすれば、それが回りまわってこのように全体を動かしてくれるよね、
たとえば直接意図通りの波形を得るためのスイッチングがわかればよいのだが、それを考えるというのは非常に大変なことで、
そこは考えるのは大変だけれど、ある地点を指令値で縛ってあげたらおのずとこうなるよね、
というような遠隔操作的思想(風が吹けば桶屋が儲かる的考え方)でやってあげると、
直接そこをいじれば原理的には意図した波形を得られる、しかしながらそれがとてつもなく難しいという時に、
だったらここを一定に縛れば、次の値がこう縛られますよね、その値が縛られると次の次の値はこう縛られます。
結果、私たちはこの一点を縛れば回りまわって意図通りの結果が得られるわけですけれど、
しかしながら人間というのはその一点に関してどういう意図でこう縛っているか、ということは理解していますが、
一方でその一転を縛って出力したPIの制御量が、次のブロックではこうなり、最後の非常に制御しにくいし、
とてつもなく複雑な部分は、具体的にどのようになるか、というのはなかなか想像ができない。
だから、「PIというのは何をやっているのかわからない」となる。
「PIDというのはとてつもなく難しい」となる。


実際、わかりやすい部分を縛って、というのはわかりにくい部分を縛ろうとしてもなかなかどう制御したらよいかわからない、
というのが根底にあるから、わかりやすい部分を制御してそれが「ドミノ倒し」になることで、
非常に直接制御しにくい部分を制御しましょう、というわけなのだから、PI出力がいくつかの制御ブロックを通過するごとに、
イメージできなくなるのは当然なのではないかと思う。


PIを理解するときは、ひとまず近視眼的な視点よりも巨視的な視点に立って、
さらには何度も入出力してPIにかけることで目標に漸近する、ということを忘れてはいけないのではないかと思った。
そもそも理解しにくいから、簡単なところにわざわざPIを設置しているのである。
もちろん理解度が高い人間は、PIを非常に難しいところに設置した制御ブロック図を思い描くことも可能だろうと思う。


今のところこのように思う。
定量的には追っていないし、そもそも追うとなってもサンプル数が多すぎて漸近まで追えない。


プログラム上でもブロック図上でも、非常に簡単に表現されてしまうPIは、
回りまわって実は複雑で適切な出力をいくつものブロックを介することで生まれるのではないかと思う。
少なくとも私が今やっている制御の回路はそうだと思う。


PIを理解する方法としては、
ある部分を指令値で縛ったとして、その指令値は次のブロックで値をどのように縛るか、
その縛られた値は、次の次で値をどのように縛るか。
設計者はその縛られた値の連鎖の帰結として意図通りの結果(波形でも何でもよい)を得るように、
そもそもその最終結果から逆算して設計しているのだろうと思う。
大局に立たないと理解できないものである。


(追記)
PIの指令値が変化してはいけない理由は、偏差が残るから、というのであるがこれは当然である。
なぜならば、ある指令値に漸近するように出力を出すのだが、次の瞬間指令値自体が変わったらそりゃ偏差のこるでしょ。