主にゼロ点,ラプラス変換,モデル化誤差について.4.8.2のゼロ点についてからまとめる.

4.8.2 ゼロ点

以下のように記述されている.

"" The effect that zeros have on the response of a transfer function is a little more subtle than that due to poles. One reason for this is that while poles are associated with the states in isolation, zeros arise from additive interactions amongst the states associated with different poles. ""

極と比べてゼロ点の影響があまり自明でないのは,極は応答の影響においてどのようにモードが「分離しているか」を表しているのに対して,ゼロ点はその影響において各モードがどれくらいの割合で「重ねあわせられてるか」を表しているためである.

"" Although the location of the poles determines the nature of system modes, it is the loctaion of the zeros which determines the proportion in which these modes are combined. ""

極の位置はシステムがどのようなモードを持つかを決定するが,これらのモードがどのように組み合わされるかを決めるのはゼロ点である.

ゼロ点の中で,「早いゼロ点」は支配極に比べて安定領域から離れているもの,「遅いゼロ点」は支配極に比べて安定領域に近いものを指す.

例4.6

以下のような伝達関数をtoy modelとして用いる.

$$\begin{align*} H(s) &= \dfrac{-s + c}{c(s + 1){(0.5s + 2)}} \\ &= \left( 2 + \dfrac{2}{c}\right) \dfrac{1}{s + 1} - \left( 1 + \dfrac{2}{c} \right) \dfrac{1}{0.5s + 1} \end{align*}$$

ステップ応答は $$\begin{align*} L^{-1}\left(\dfrac{1}{s}H(s)\right) = 1 - \left( 2 + \dfrac{2}{c} \right) e^{-t} + \left( 1 + \dfrac{2}{c} \right) e^{-2t} \end{align*}$$

より確かに $s = -1, -2$ において片方のモードが消えてしまうので,ゼロ点 c はそれぞれのモードの重みを変化させていることが分かる.またこれだけでは分からないが過渡応答にも影響がある.ゼロ点を有する系に対してステップ入力を印加すると,ゼロ点が安定すなわち $c > 0$ であるならばアンダーシュートを起こし,ゼロ点が不安定であるすなわち $c < 0$ であるならばアンダーシュートを起こす.

Step Response

ゼロ点が早いゼロ点であるならば,つまり$|c| » 1$であるならばその影響はほとんど現れない.しかし極に近づいていくるとアンダーシュートやオーバーシュートを起こしている.用いたコードを下に示す.

不安定ゼロ点がアンダーシュートを引き起こす理由

ここには非最小位相ゼロ点を有する系においてアンダーシュートの大きさを見積もる定理がのっている.ここでは以下のように$s=0$における値が正規化された,ゼロ点を1つ持つ伝達関数を考える.

$$\begin{align*} H(s) = \alpha \dfrac{c-s}{(s+p_1) \cdots (s + p_m)} \end{align*}$$

ただし $\alpha = p_1 \cdots p_m / c$ である.ここで $\alpha > 0$ である.(なぜ分母を $s-c$ にしなかったのかと思うかもしれないが,その場合は$\alpha <0$となるから,結局分母は $c-s$ の符号になるため).

よってステップ応答への最終値は

$$\begin{align*} y_{\infty} = \left. s \cdot \dfrac{1}{s}H(s) \right|_{s=0} = 1 \end{align*}$$

である.

ここで上の $H(s)$ に対してステップ応答を印加するのであるが,$u(t)$ をHに印加するのではなく,擬似的に $u_1 (t) = u(t)(c-s)$ という入力を

$$\begin{align*} H_1(s) = \alpha \dfrac{1}{(s+p_1) \cdots (s + p_m)} \end{align*}$$

に印加するとみなそう.つまり安定なプラント $H_1(s)$ に対して $u_1(t) = cu(t) - \dot{u}(t) = cu(t) - \delta(t)$ という入力を印加するとみなすのである.すると

  • $cu(t)$に対しては通常のステップ応答を
  • $-\delta(t)$に対しては 負のインパルス応答

示すことになる.このように負のインパルス応答が効くために,不安定ゼロ点に対してはアンダーシュートが引き起こされる.

そしてこの系は以下のように「初めにアンダーシュートした後振幅が減衰しながら徐々に制定する」ので以下の図のような応答をする.全ての極が安定であるから下の図のように「いい感じに」なると考えてよい.

indicators

Lemma4.2(非最小位相ゼロ点とアンダーシュート)

$v(t) = 1 - y(t)$ とする.ここの1は,最終値としての1のことである.図より「いい感じに制定するなら」v(t)の最大値はアンダーシュート時の $|1 - y(t)| = 1 + M_u$ である.

ラプラス変換すると

$$\begin{align*} V(s) = \dfrac{1 - H(s)}{s} \end{align*}$$

である.$H(c) = 0$であるから,ラプラス変換の定義と合わせて

$$\begin{align*} V(c) &= \dfrac{1}{c} \\ V(c) &= \int_{0}^{\infty}v(t) e^{-ct} dt \end{align*}$$

の2つを見比べ,さらに制定時間 $t_s$ からの積分の絶対値をとると

$$\begin{align*} \int_{0}^{t_s} v(t) e^{-ct} dt + \int_{t_s}^{\infty} |v(t)| e^{-ct} dt \geq \dfrac{1}{c} \end{align*}$$

が得られる. $t > t_s$ においては $|v(t)| < \delta$ であるから,

$$\begin{align*} \dfrac{1}{c} &\leq \int_{0}^{t_s} V_{max} e^{-ct} dt + \int_{t_s}^{\infty} \delta e^{-ct} dt \\ &= V_{max} \dfrac{1 - e^{-ct_s}}{c} + \dfrac{\delta e^{-ct_s}}{c} \end{align*}$$

これを整理すると

$$\begin{align*} M_u \geq \dfrac{1 - \delta}{e^{ct_s} - 1} \end{align*}$$

が得られる.

この不等式の解釈としては,アンダーシュートの量 $M_u$ が分かっているならば,逆にこの式から制定時間がある値以上になるという見積もりが計算できるので,$\delta$ 以下の振れ幅に制定するまでに少なくともどれくらい待たないといけないかが分かるという解釈ができる.

あるいは,最小位相ゼロ点を持つ系において制定時間 $t_s$ を小さくしようとすると $M_u$ の下限値も大きくなるからアンダーシュートも大きくなってしまう,逆にアンダーシュートを小さくしようとすると制定時間も長くなってしまう,というトレードオフを表しているとも解釈できる.

周波数応答

ラプラス変換の収束域

最終値の定理

$$\begin{align*} y(\infty) = \left. sY(s) \right|_{s = 0} \end{align*}$$

は便利であるが, $s= 0$ を代入できるかどうかは $Y(s)$ による.ベタな例として正弦波応答を取り上げる.安定なシステム $U(s)$ に正弦波を印加するとその応答は

$$\begin{align*} Y(s) = \dfrac{\omega^2}{s^2 + \omega^2}U(s) \end{align*}$$

である.最終値の定理を使って

$$\begin{align*} y(\infty) = \left. \dfrac{\omega^2 s}{s^2 + \omega^2}U(s) \right|_{s = 0} \end{align*}$$

を計算できるが,普通に考えて正弦波を印加し続けているのだから最終値に収束するはずがない.もちろんこの値に意味はなく, $\sin \omega t$ の収束域は $s < 0$ であるから,この場合は最終値の定理は利用できない.

周波数応答

慣れてくるとよく忘れてしまうが,周波数応答は 安定なプラントに特定の周波数の正弦波を印加した時の定常応答 が定義である. $s = j\omega$ を代入する だけ周波数応答 を求められるのはそのプラントが安定であるからだが,意外と忘れる.

対象とするプラントを $$\begin{align*} U(s) = \dfrac{N(s)}{(s - p_1) \cdots (s - p_n)} \end{align*}$$

とするとその正弦波応答は

$$\begin{align*} Y(s) = \dfrac{\omega^2}{s^2 + \omega^2} \dfrac{N(s)}{(s - p_1) \cdots (s - p_n)} \end{align*}$$

であるが,部分分数分解すると

$$\begin{align*} A_1 e^{p_1 t} + \cdots A_n e^{p_n t} + B_1 e^{j \omega t} + B_2 e^{-j \omega t} \end{align*}$$

となるから,(安定なプラントであるから $p_i < 0$ なので) $e^{p_i t}$ はゼロに収束する.そのため最後の振動成分だけが残るため,その実部は

$$\begin{align*} 2 Re (B_1 e^{j \omega t}) \end{align*}$$

に等しい.

クイズ

周波数特性をとるアプリケーションとして1つクイズ.モーターの入力トルクに対する 角度 への周波数特性を取ろうとしているとしよう.つまり1Hzから徐々に周波数を上げていき,それに対する回転角度の応答をプロットしていく.すると以下のような図の応答が得られてしまうだろう.これは周波数応答と言えるか?という問題.

答えは当然Noであるのだが,何がいけないのかと言われると少し戸惑う.理由は,「トルクから角速度」の伝達関数は安定であるためは周波数応答であると言えるが,「トルクから角度」は積分器という不安定要素を含むため(積分器って,ステップ入力に対して単調に増加するでしょう?)である.

モデリングエラー

後々出て来る.プラントの真のモデルを $G(s)$ ,ノミナルモデル $G_{o}(s)$ に対してモデル化誤差を

$$\begin{align*} G_{\Delta}(s) = \dfrac{G(s) - G_{o}(s)}{G(s)} \end{align*}$$

で定義する.加法的誤差(Additive Modelling Error,AME),乗法的誤差(Multiplicative Modelling Error,MME)の2つがある.基本的に線形モデルは低周波でのプラントの振る舞いを捉える.

モデリングエラーの例1: 時間遅れ

以下のように時間遅れをパデ近似する.

$$\begin{align*} G(s) &= e^{-\tau s} F(s) \\ G_{o}(s) &= \left( \dfrac{-\tau s + 2k}{\tau s + 2k} \right)^{k} F(s) \end{align*}$$

するとモデル化誤差は

$$\begin{align*} G_{\Delta}(s) = e^{-\tau s} \left( \dfrac{-\tau s + 2k}{\tau s + 2k} \right)^{-k} - 1 \end{align*}$$

であるから,

$$\begin{align*} |G_{\Delta}(j \omega)| &= |e^{-j \tau \omega} - e^{-2jk \phi}| \\ \phi &= \arctan \dfrac{\omega \tau}{2k} \end{align*}$$

教科書に図があるが,このゲインは周波数が上がると上昇する傾向がある.

モデリングエラーの例2: 極のパラメータの誤差

以下のようにプラントの極の値が実際の値より $\delta$ だけずれていた場合.

$$\begin{align*} G(s) &= \dfrac{1}{as + 1}F(s) \\ G_o (s) &= \dfrac{(a+\delta)s + 1}F(s) \end{align*}$$

この場合モデル化誤差は

$$\begin{align*} G_{\Delta}(s) = \dfrac{\delta s}{as + 1} \end{align*}$$

モデリングエラーの例3: 極の省略

以下のようにノミナルモデルに本来あるはずの極が抜けていた場合.

$$\begin{align*} G(s) &= \dfrac{1}{as+1}F(s) \\ G_o (s) &= F(s) \end{align*}$$

これに対応する物理的な状況としては,電流制御系の帯域限界 が挙げられる.電流制御系は1kHzぐらいでLPFになってしまうためである.

この場合はモデル化誤差は

$$\begin{align*} G_{\Delta} = \dfrac{-as}{as+1} \end{align*}$$

モデリングエラーの例4: 共振モードの省略

剛体を仮定している制御系において高次共振モードを省略していることはよくあると思う.つまり以下のような状況.

$$\begin{align*} G(s) &= \dfrac{\omega_{n}^{2}}{s^2 + 2\psi \omega_n s + \omega_{n}^{2}}F(s) \\ G_o (s) &= F(s) \end{align*}$$

このときMMEは

$$\begin{align*} G_{\Delta}(s) = \dfrac{-s(s + 2 \psi \omega_n)}{s^2 + 2 \psi \omega_n s + \omega_{n}^{2}} \end{align*}$$

である.これも高周波に行くほどゲインが大きくなる特性を持っている.

モデリングエラーの性質

実際のアプリケーションにおいてはモデル化誤差は未知である場合が多い.しかしこれまで見てきたようにMMEは低周波において小さいが高周波に行くほど大きくなる傾向があると言えそうである.以下のようにモデル化誤差については上限を設けることが多い.

$$\begin{align*} | G_{\Delta}(j \omega)| < \epsilon(\omega) \end{align*}$$