第2章の主に2.3節から.近似逆系についての説明をここではまとめる.時間遅れ系の逆系は存在しないことの説明が分かりやすい.

フィードバックとフィードフォワード

基本的にはコントローラーK(ここでは単純に比例ゲイン)を用いてプラントPを制御するのだが,図のように指令値への外乱 $\sigma(t)$ が入ってくるとする.そこでフィードバックによって修正するだけでなく,Kによって指令値を生成する際に外乱に相当する値を差し引けばよいと考えられる.つまりコントローラへの入力値から $K^{-1} \sigma (t)$ を予め引くということ.そうすればコントローラーの出力は外乱を差し引いた値になるので,プラントへの入力は指令値通りになる.もちろん外乱の測定に際して時間遅れは存在するし,コントローラーの逆系K^(-1)が存在するとも限らない.

disturbance rejection

比例ゲインのトレードオフ

上の図において,ゲインKを小さくしたら当然指令値への追従が遅くなるが,ノイズによる指令値の振動を抑えることができる.そこでゲインを大きくすると指令値への追従は早くできるが,その分ノイズの影響も受けやすくなってしまう.このトレードオフを示しているのが教科書のFigure2.5.

逆系を使ったナイーブな解決法

出力 $y(t)$ を指令値 $u(t)$ を使って 目標値 $r(t)$ へと追従させたい.プラントモデルによると出力は外乱を印加されて

$$ y = f \langle u \rangle + d $$

と現れるので,この関数の inversion を使って

$$ u = f^{-1} \langle r - d \rangle $$

とすれば良い.そのためには

  • f を完全に正確に把握していないといけない
  • $f$,$f^{-1}$ が共に有界な入力と出力を持つ
  • 外乱 $d$ を測定できないといけない
  • 逆系が求まったとしてその対応する入力 $u$ が制約を破ってはいけない

ことが必要.

しかし Example2.1 に書かれているように,例えば純粋な時間遅れ系は 逆システムを持たない

時間遅れ系には逆系は存在しない

まず前提として制御におけるブロックは $[-\infty, t_0]$ を定義域とする,関数を関数に移す汎関数である.制御においては,$u([-\infty, t_0])$ から $y(t_0)$ が生成されている時に,$y([-\infty, t_0])$ から $u(t_0)$ を復元できるかが問題になる.ここで時間遅れ系に入力 $u(t)$ を印加して $y(t)$ が得られたとしよう.

このとき $[-\infty, t_0]$ での $y(t)$ から $u(t_0)$ の値を得ることはできない.なぜならば $y(t) = u(t + \tau)$ であるから,$u(t_0)$ の値を知るためには $y(t_0 + \tau)$ の値を知らないといけない.そのため任意の入力に対してこのように $u(t)$ を推定することは不可能である.キャリブレーションによりパラメータ $\tau$ を求めることができているとしても,現在どういう値が印加されているかを推定するための情報が現在までの出力には含まれていない.

時間遅れ系の逆システムが存在するとしたら,それは(誰がいつどこでどのように入力を入れたとしても)数秒後の入力の値を予測できるブロックということになる.これはありえないし,因果的ではない.よって時間遅れ系には逆系は存在しない.

ハイゲインフィードバックと逆系

直列で $f^{-1}$ のブロックを作らなくても,以下のようにフィードバック部分に $f$ を用いて $h$ のゲインをいじることで近似的に $f^{-1}$ を実現することができる.つまり$f$ のブロックをそのまま流用できる.

$$\begin{align*} u &= h\langle r - f\langle u \rangle \rangle \\ h^{-1}\langle u \rangle &= r - f \langle u \rangle \\ u &= f^{-1} \langle r - h^{-1} \langle u \rangle \rangle \end{align*}$$

もし $h^{-1} « 1$ であるならば

$$ u \approx f^{-1} \langle r \rangle $$

を実現していることになる.このようにモデルの逆系 $f^{-1}$ を明示的には用いずに実現する手法をハイゲインフィードバックという.

開ループから閉ループへ

上で説明したハイゲインフィードバックにおいて,制御入力uはまだ プラントで実際に起きていること とは独立である(無関係である).

フィードバックゲインを調整する際のトレードオフ

ここまでの議論の流れだとプラントの周りにハイゲインフィードバックを施せばそれで良いと思われそうである.しかし実際に適用してしまうと,例えば教科書のFig2.10において指令値とのエラー $e(t)$ が大きかった場合,過大な制御入力 $u(t)$ を計算してしまう.

別の問題としては,自励振動を引き起こして不安定化することが挙げられる.例えばマイクのすぐ近くで声を出した時に起きるハウリングは,過大なフィードバックゲインが原因である.また観測ノイズに過敏に反応してしまうことも起こりうる問題として挙げられる.