PID制御チューナー

PID制御器を調整し、一次遅れ系に対してステップ目標値にどう追従するかを観察します。

インタラクティブシミュレーションを読み込んでいます...

一次遅れ系には、D項が減衰させるものがない 🖖

比例項は現在の偏差に応じて働き、積分項は比例項だけでは残る定常偏差を取り除く。まずP制御だけの応答を見てみよう。kp = 1.2では、出力は0.5455で止まり、そのままになる。目標値には届かず、その差は常にちょうどkp/(1 + kp)である。kiを加えると、この差は解消される。この系で異質なのは微分項だ。kd·de/dtは出力自身の変化率をフィードバックするため、閉ループ系は(τ + k·kd)ẏ = −y + k(kpe + ki∫e)となる。振動を減衰させるのではなく、時定数を大きくするのである。積分動作がある場合、応答が遅いほど積分値は余計に蓄積する。kp = 1.3、ki = 2.5のままkdを0から0.6へ上げると、オーバーシュートは6.6%から14.6%へ増える。微分動作が効力を発揮するのは、対抗すべき慣性をもつ系である。この系に慣性はない。

目標ではなく偏差で制御する 🖖

制御器は目標値を直接の指令として受け取らない。知るのは偏差だけ、つまり現在の出力と望ましい出力との差である。制御器が加える操作はすべてその差への反応であり、偏差をゼロへ近づけようとする。ステップ応答を見てみよう。目標値が急に変わると偏差が大きくなるため、制御器は強く働く。出力が追いつくにつれて、その働きは弱まる。よい制御とは、正解の操作をあらかじめ知ることではなく、ずれに適切に応じることから生まれる。

戦艦の操舵手を観察して生まれた 🖖

この三項の処方は、まず方程式から導かれたものではありません。1922年、ニコラス・ミノルスキーは、熟練した操舵手が戦艦USS New Mexicoを操るようすを観察してPID制御を考え出しました。彼は、船員が針路からのずれの大きさ(比例)だけでなく、どれだけ長く漂流したか(積分)、針路がどれだけ速く変化しているか(微分)にも合わせて修正していることに気づきました。自動操舵は、理論が追いつく前に人間の勘を写し取っていたのです。

全プロセスの詳細解説

  1. 比例ゲインのみの制御器が実際に整定する位置 5 ステップ

    比例ゲインのみを持つ制御器に、出力を1に保持するよう指令を出した。実際にはどこに収束するかを求めよ。また、立ち上がり時間の行が目標に達しなかったと表示している理由を説明せよ。これはPのみの例である:Kp = 1.2, Ki = 0, Kd = 0、制御対象の時定数 τ = 1 s、制御対象のゲイン K = 1、目標値 r = 1。

    1. 3つの事実がフィードバックループを1つの方程式にまとめる。制御器は偏差の Kp 倍で駆動し、制御対象は入力された値の K 倍に向かって変化し、偏差は目標値から出力を差し引いた残りである。後ろの2つを最初の事実へと代入すると、y のみについての関係式が得られる。

    2. 収束した状態とは微分値が0になることを意味し、これにより微分方程式は暗算できる程度の算術へと変わる。ゲインは二度現れる — 分子に一度、そしてその下の和の中に一度 —。これが解の全体の形である。

    3. 引き算を行って残る偏差を求めると、分数式から r が相殺されるのがわかる。オフセットは固定量ではなく、要求した値の一定の割合となる。100 を要求すれば 45.45 だけ外れ、1 を要求すれば 0.4545 だけ外れる。これは要求ではなく、ループ自体の特性である。

    4. ループがこれ以上改善できない理由は1行で説明でき、それこそが問題全体の核心である。制御器の唯一の出力は偏差の Kp 倍である。偏差がゼロであれば駆動出力もゼロを指示し、駆動出力がゼロであれば制御対象はゼロに留まる。制御器が y を維持するための永続的な駆動力を生み出すには、永続的な偏差が必要となる。確認してみよう。収束した指示値は 0.5455 であり、これは維持されている出力と正確に一致する。オフセットは調整不足によるものではなく、仕組みそのものなのである。

    5. このことは空欄の行の理由も説明している。立ち上がり時間は y が 0.9r に最初に到達した瞬間であるが、y は自身の限界値である 0.5455 を超えて上昇することはできない。したがって、表示されている値はループが遅いことを示しているのではなく、目標が限界値の上にあることを示している。限界値を 0.9 まで引き上げるゲインを求めると 9 になるため、9 未満のすべての Kp は同様に空欄となる。

    解答

    ツールは y(10 s) = 0.55、定常偏差 0.455 と表示し、立ち上がり時間と整定時間はともに未達成となる。そしてここからが問題である。偏差を割る係数 1 + K·Kp = 2.2 は、制御対象の時定数をも割り引くため、このループは制御対象固有の 1 s ではなく 0.4545 s で誤った解に到達する。応答速度と正確さは同一のノブによって制御され、そのノブの代償は大きい。偏差を 1% まで抑え込むには Kp ≥ 99 が必要であり、t = 0 において偏差は目標値そのものであるため、制御器は生成しようとしている出力の 99 倍を要求することから動作を開始する。比例ゲインがオフセットを完全に消去することは決してない。無視できるほど小さくするだけであり、その引き換えに激しい初期動作を要求するのである。オフセットを消去するには、偏差の変動が止まった後も駆動し続ける項が必要となる。

  2. 10 s後に積分器に残るオフセットの量 5 ステップ

    積分器はオフセットを消去するはずである。10 s 後にどれだけのオフセットが残存するかを求めよ。また、このループが代わりに振動を開始するゲインを求めよ。これはPIの例である:Kp = 1, Ki = 0.6, Kd = 0、τ = 1 s、K = 1、r = 1。

    1. オフセットが消失することは、計算ではなく議論によって導かれる。ループが 0 でない一定の偏差を保ったまま収束すると仮定する。すると、その積分値は限りなく増大するため、指示値も限りなく増大し、出力も限りなく増大する。これは収束とは言えない。ゲインの値にかかわらず、収束した PI ループが持ち得る唯一の一定の偏差は 0 である。

    2. 収束することを知っても、それがいつ起こるかはわからない。積分記号を消去するためにループの方程式を1度微分し、次数に何が起きたかに着目する。PI 制御下の 1 次制御対象は 2 次系となり、それに伴うすべての挙動を示すことになる。

    3. 偏差は目標値による駆動項を取り除いた同じ方程式に従うため、その解は根を変化率とする指数関数の和となる。ここでは判別式が正であり、両方の根が負の実数となるため、振動をもたらす要素は残らない。これがオーバーシュートの行がわずかな値ではなく 0.0% と表示される理由である。

    4. 2つの初期条件によって2つの重みが決定される。t = 0 では何も変化していないため、偏差は目標値全体に等しく、制御対象の初期傾きは K·Kp·r/τ = 1 であるため、偏差の初期傾きは -1 となる。この連立方程式を解くと両方の重みは正確に 0.5 となるが、これはこれらのゲインにおける偶然の一致であり、一般的な結果ではない。

    5. 10 s の時点で減衰の早い根はとうに消滅しており(その項は 4×10⁻⁸ まで減少している)、減衰の遅い根が解のすべてを占める。そして、それが作用するための時定数は自身のうち 3.7 回分にしかなっていない。問題が発生したわけではなく、ループが単純に未だ過渡状態にあるだけである。

    解答

    ツールは y(10 s) = 0.99、残留偏差 0.013 と表示する。オフセットは減少しつつあるが、表示領域の末尾でも依然として 1.3% 残存しており、これこそが積分動作のありのままの代償である。原理的には偏差を完全に消去するものの、実際には時間を要する。0.1% に達するには ln(500)/0.3675 = 16.9 s が必要であり、これはプロットの右端を越えているため、この表示時間内ではこれらのゲインにおける完結した PI ループを見ることはできない。応答を早めようと Ki を上げると壁に突き当たる。Ki = 1 で判別式が負となり、それ以降は根が複素数となって応答が振動する。より本質的な違いは、どちらの数値よりも価値がある。比例制御のオフセットは r/(1 + K·Kp) であり、これには制御対象のゲインが含まれているため、バルブが汚損したりモータの出力が低下したりすると結果が変動する。K を半減させると、P制御のみの偏差は 0.455 から 0.625 へと拡大する。一方、PI 制御の定常点には K が一切含まれない。産業用の制御ループが積分器を備えているのはこのためである。今日より高精度であるからではなく、制御対象の特性が変化しても精度が維持されるからである。

参考文献 (1)

例題

  • Pのみ - kp = 1.2だけでは、出力は0.5455で止まり、そのままになる。45.5%の不足分はちょうどkp/(1 + kp)であり、比例制御だけでは最後の偏差を解消できない。
  • PI - 同じ系にki = 0.6を加えると、十秒後には0.9873に達し、なお目標値へ近づき続ける。P制御だけでは残る定常偏差を取り除くのが積分動作である。
  • 微分動作あり - kp = 1.3、ki = 0.5にkd = 0.2を加えても、応答はほとんど変わらない。十秒後の値は0.9663で、PI制御では0.9873である。一次遅れ系では、D項は減衰ではなく遅れを加える。