2 漸近安定性

【本章のねらい】
・ 状態空間表現を用いて漸近安定性の判定を行う。
・ 状態空間表現を用いて時間応答の計算を行う。

2.1 漸近安定性

いま制御対象は平衡状態(物理的な釣り合いの状態)にあるとし,何らかの要因でこれが乱されたとき,その振舞いはつぎのm入力p出力n次元線形系(n次系)の状態空間表現によって表されるものとする。

\displaystyle{(2.1)\quad \left\{\begin{array}{l} \dot{x}(t)=Ax(t)+Bu(t) \\ y(t)=Cx(t) \end{array}\right. }

このとき,もし元の平衡状態に戻るならば,その平衡状態は漸近安定,またはn次系(??)は漸近安定という。平衡状態は零状態x=0で表し,これを保持する入力は零入力u=0となるように状態空間表現を得ておくと,n次系(??)の漸近安定性は,u=0の場合の状態方程式の解が0に収束するかどうかで決まる。n次系(??)の零入力応答,すなわちn次自由系

\displaystyle{(2.2)\quad \dot{x}(t)=Ax(t) }

の時間応答x(t)について

\displaystyle{(2.3)\quad \forall x(0)\ne0:\ x(t)\rightarrow 0 \quad (t\rightarrow\infty) }

となれば,漸近安定である。もし

\displaystyle{(2.4)\quad \exists x(0)\ne0:\ x(t)\rightarrow \hspace{-3.5mm}/\hspace{2.5mm} 0 \quad (t\rightarrow\infty) }

ならば,漸近安定ではない,すなわち不安定である。

例題2.1 1次自由系\dot{x}(t)=ax(t),\ x(0)\ne0の時間応答を調べ,漸近安定となる条件を求めよ。
解答 \dot{x}(t)=ax(t)の解は,x(t)=e^{at}x(0)と表わされる。
(1) a<0ならば,t\rightarrow\inftyのとき,x(t)\rightarrow0
(2) a>0ならば,t\rightarrow\inftyのとき,x(t)\rightarrow\infty
(3) a=0ならば,x(t)=x(0)
明らかに,1次系が漸近安定である条件は,a<0である。

演習2.1 つぎの1次系が漸近安定となる定数fの範囲を求めよ。
(1) \dot{x}(t)=(1-f)x(t)  (2) \dot{x}(t)=(-1-2f)x(t)

n次自由系\dot{x}(t)=Ax(t)の時間応答は

\displaystyle{(2.5)\quad x(t)=\exp(At)x(0) }

で与えられる(テキスト「線形システム制御入門」の 定理2.2参照)。ここで,\exp(At)

\displaystyle{(2.6)\quad \exp(At)=I_n+At+\frac{1}{2}(At)^2+\cdots+\frac{1}{k!}(At)^k+\cdots }

で定義される。たとえば

\displaystyle{(2.7)\quad \exp \left(\left[\begin{array}{cc} \lambda_1 & 0\\ 0 & \lambda_2 \end{array}\right]t\right) = \left[\begin{array}{cc} e^{\lambda_1t} & 0 \\ 0 & e^{\lambda_2t} \end{array}\right] }
\displaystyle{(2.8)\quad \exp \left(\left[\begin{array}{cc} \lambda_R & \lambda_I \\ \lambda_I & \lambda_R \end{array}\right]t\right) =e^{\lambda_R t} \left[\begin{array}{cc} \cos \lambda_I t & \sin \lambda_I t \\ -\sin \lambda_I t & \cos \lambda_I t \end{array}\right] }
\displaystyle{(2.9)\quad \exp \left(\left[\begin{array}{cc} \lambda & 1 \\ 0 & \lambda \end{array}\right]t\right) =e^{\lambda t} \left[\begin{array}{cc} 1 & t \\ 0 & 1 \end{array}\right] }

のように計算される(テキスト「線形システム制御入門」の 定理2.4参照)。これらを用いて,次の例題を考える。

例題2.2 つぎの2次自由系の時間応答を求め,漸近安定性を判定せよ。

\displaystyle{(1) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} -1 & 0 \\ 0 & -2 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]}

\displaystyle{(2) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} 1 & 1 \\ -1 & 1 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]}

\displaystyle{(3) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} -1 & 1 \\ 0 & -1 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]}

解答
(1) 式(??)を用いて,時間応答は次式となる。

\displaystyle{\left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} -1 & 0 \\ 0 & -2 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{cc} e^{-t} & 0 \\ 0 & e^{-2t} \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} e^{-t}x_1(0)\\ e^{-2t}x_2(0) \end{array}\right]}

これより,つぎが成り立つ。

\displaystyle{\forall \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \ne \left[\begin{array}{c} 0 \\ 0 \end{array}\right]:\ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty)}

したがって,漸近安定である。

(2) 式(??)を用いて,時間応答は次式となる。

\displaystyle{\left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} 1 & 1 \\ -1 & 1 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = e^{t} \left[\begin{array}{cc} \cos t & \sin t \\ -\sin t & \cos t \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} e^{t}(x_1(0)\cos t +x_2(0)\sin t )\\ e^{t}(-x_1(0)\sin t +x_2(0)\cos t ) \end{array}\right]}

これより,つぎが成り立つ。

たとえば \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} 0 \\ 1 \end{array}\right]に対して,\left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \hspace{-3.5mm}/\hspace{2.5mm} \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty)

したがって,漸近安定でない。

(3) 式(??)を用いて,時間応答は次式となる。

\displaystyle{\left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} -1 & 1 \\ 0 & -1 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = e^{-t} \left[\begin{array}{cc} 1 & t \\ 0 & 1 \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} e^{-t}(x_1(0)+t x_2(0))\\ e^{-t}x_2(0) \end{array}\right]}

これより,つぎが成り立つ。

\displaystyle{\forall \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \ne \left[\begin{array}{c} 0 \\ 0 \end{array}\right]:\ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty)}

したがって,漸近安定である。

演習2.2 つぎの2次自由系の時間応答を求め,漸近安定性を判定せよ。

\displaystyle{(1) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} -1 & 0 \\ 0 & 0 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]}

\displaystyle{(2) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} -1 & 1 \\ -1 & -1 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]

(3) \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right]}

一般に,n次系(??)が漸近安定であるための必要十分条件は行列Aのすべての固有値の実部が負であることである(テキスト「線形システム制御入門」の 定理2.6参照)。すべての固有値の実部が負である行列を安定行列と呼ぶ。また,実部が負の固有値を安定固有値,実部が非負の固有値を不安定固有値と呼ぶ(例題2.1のように,1次系が零固有値をもつ場合(a=0,積分器),応答は発散することはない。一方,演習2.2(3)が示すように,2次系で2つの零固有値をもつ場合(2つの積分器が直列結合),入力側の積分器の初期値が零でないならばこれを積分する出力側の積分器の応答は発散する。このため一般には零固有値は不安定固有値とみなす)。

例題2.3 つぎの行列Aをもつ2次系\dot{x}(t)=Ax(t)の漸近安定性を,行列Aの固有値を求めて判定せよ。

\displaystyle{(1)\ A=\left[\begin{array}{cc} 0 & 1 \\ -1 & -2 \end{array}\right]}
\displaystyle{(2)\ A=\left[\begin{array}{cc} 0 & 1 \\ 0 & -1 \end{array}\right]}
\displaystyle{(3)\ A=\left[\begin{array}{cc} 0 & 1 \\ -1 & 1 \end{array}\right]}

解答

(1) 行列Aの固有値は,特性方程式

\displaystyle{\det(\lambda I_2-A)= \det\left[\begin{array}{cc} \lambda & -1 \\ 1 & \lambda+2 \end{array}\right] =\lambda(\lambda+2)+1 =(\lambda+1)^2=0}

の解として,\lambda_1=-1,\lambda_2=-1と求められる。2つの固有値が実数で負であるので漸近安定である。

(2) 行列Aの固有値は,特性方程式

\displaystyle{\det(\lambda I_2-A)= \det\left[\begin{array}{cc} \lambda & -1 \\ 0 & \lambda+1 \end{array}\right] =\lambda(\lambda+1)=0}

の解として,\lambda_1=0,\lambda_2=-1と求められる。1つの固有値が零であるので漸近安定でない。

(3) 行列Aの固有値は,特性方程式

\displaystyle{\det(\lambda I_2-A)= \det\left[\begin{array}{cc} \lambda & -1 \\ 1 & \lambda-1 \end{array}\right] =\lambda^2-\lambda+1=0}

の解として,\lambda_1=\frac{-1+ j\sqrt{3}}{2}, \lambda_2=\frac{-1- j\sqrt{3}}{2}\lambda_1=\frac{+1+ j\sqrt{3}}{2}, \lambda_2=\frac{+1- j\sqrt{3}}{2}と求められる。2つの固有値の実部が負(正)であるので漸近安定である(ない)

演習2.3 例題2.2と演習2.2の2次系の漸近安定性を,行列Aの固有値を求めて判定せよ。

MATLABを用いて漸近安定性を判定するには,たとえば例題2.3(3)に対しては,つぎのコマンドを与えればよい。

%stability_check.m
A=[0 1;1 -1]; n=size(A,1); %行列データの定義と次数の取得
poles=eig(A) %行列の固有値の計算
sum(real(poles)<0)==n %論理式による漸近安定性の判定

SCILABを用いて漸近安定性を判定するには,たとえば例題2.3(3)に対しては,つぎのコマンドを与えればよい。

//stability_check.m
A=[0 1;1 -1]; n=size(A,1); //行列データの定義と次数の取得
poles=spec(A) //行列の固有値の計算
sum(real(poles)<0)==n //論理式による漸近安定性の判定

2.2 時間応答

n次系(??)の 時間応答は,次式で表わされる。

\displaystyle{(2.10)\quad y(t)=\underbrace{C\exp(At)x(0)}_{zero-input\ response}+\underbrace{\int_0^tG(t-\tau)u(\tau)\,d\tau}_{zero-state\ response} }

ただし,

\displaystyle{(2.11)\quad G(t)=C\exp(At)B }

すなわち,時間応答は零入力応答零状態応答の和となる(テキスト「線形システム制御入門」の定理2.3参照)。

以下では,簡単のために,1入力1出力の場合を考える。G(t) インパルス応答と呼ばれる。また,入力をu(t)=1と与える場合の零状態応答

\displaystyle{(2.12)\quad y(t)=\int_0^tG(t-\tau)\,d\tau=-\int_t^0G(\tau')\,d\tau'=\int_0^tG(\tau')\,d\tau' }

は,ステップ応答と呼ばれる。したがって,ステップ応答はインパルス応答を積分して,逆にインパルス応答はステップ応答を微分して得られる。

まず,次式で表される1次系を考える。

\displaystyle{(2.13)\quad \dot{x}(t)=-\frac{1}{T}x(t)+\frac{K}{T}u(t) }

例題2.4 1次系(??)のステップ応答を求めよ。

解答 インパルス応答はg(t)=\frac{K}{T}e^{-\frac{1}{T}t}だから,ステップ応答は

\displaystyle{x(t)=\int_0^t\frac{K}{T}e^{-\frac{1}{T}(t-\tau)}\cdot1\,d\tau=\frac{K}{T}e^{-\frac{1}{T}t}\left[Te^{\frac{1}{T}\tau}\right]_0^t =Ke^{-\frac{1}{T}t}(e^{-\frac{1}{T}t}-1)}
\displaystyle{=K(1-e^{-\frac{1}{T}t})}

で表わされる。または,インパルス応答を直接積分して

\displaystyle{x(t)=\int_0^t\frac{K}{T}e^{-\frac{1}{T}\tau}\,d\tau=\frac{K}{T}\left[-Te^{-\frac{1}{T}\tau}\right]_0^t=K(1-e^{-\frac{1}{T}t})}

演習2.4 つぎの1次系のステップ応答を求めよ。

(1) \dot{x}(t)=-x(t)+u(t)  (2) \dot{x}(t)=x(t)+u(t)

1次系(??)のステップ応答

\displaystyle{(2.14)\quad x(t)=K(1-e^{-\frac{1}{T}t}) }

において,t\rightarrow\inftyのときx(t)\rightarrow Kとなるので,K定常ゲインとよばれる。また,T時定数とよばれ,次式により特徴づけられる。

\displaystyle{(2.15)\quad x(T)=K(1-\frac{1}{e})=0.632K }

\displaystyle{(2.16)\quad \dot{x}(0)=\frac{K}{T} }

すなわち,時定数は,応答が定常値Kの63.2%に到達する時刻,または応答の初期時刻における接線が定常値Kに到達する時刻として求められる。

例題2.5 つぎの1次系のステップ応答をMATLABで計算し,図示せよ。

\dot{x}(t)=-x(t)+u(t)

解答 MATLABに,つぎのコマンドを与えればよい。

%step_resp1.m
sys=ss(-1,1,1,0); %状態空間表現のデータ構造体の定義
t=0:0.1:5; %ステップ応答計算する時刻の定義
step(sys,t), grid %ステップ応答の計算と図示

SCILABに,つぎのコマンドを与えればよい。

//step_resp1.m
sys=syslin(‘c’,-1,1,1,0); //状態空間表現のデータ構造体の定義
t=0:0.1:5; //ステップ応答を計算する時刻の定義
plot(t,csim(‘step’,t,sys)), ,mtlb_grid //ステップ応答の計算と図示

演習2.5 例題2.5の図上に,時定数を求めるための補助線を引き,交点の座標をginput(1)を使って読み取れ。

つぎに,次式で表される2次系を考える。

\displaystyle{(2.17)\quad \left\{\begin{array}{l} \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right] }_{\dot x} = \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ -\omega_n^2 & -2\zeta\omega_n \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] }_{x} + \underbrace{ \left[\begin{array}{c} 0 \\ \omega_n^2 \end{array}\right] }_{B} u(t) \\ y(t)= \underbrace{ \left[\begin{array}{cc} 1 & 0 \end{array}\right] }_{C} \underbrace{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] }_{x} \end{array}\right. }

ここで,A行列の固有値はつぎのように計算される。

\displaystyle{(2.18)\quad \left\{\begin{array}{ll} \lambda_1,\lambda_2=-\zeta\omega_n\pm \omega_n\sqrt{\zeta^2-1} & (\zeta>1)\\ \lambda=\underbrace{-\zeta\omega_n}_{\lambda_R}\pm j\underbrace{\omega_n\sqrt{1-\zeta^2}}_{\lambda_I} & (\zeta<1)\\ \lambda=-\zeta\omega_n=\omega_n & (\zeta=1) \end{array}\right. }

これらに対応して,A行列の固有値分解は,次式で与えられる。

\displaystyle{(2.19)\quad A= \underbrace{ \left[\begin{array}{cc} 1 & 1\\ \lambda_1 & \lambda_2 \end{array}\right] }_{V} \underbrace{ \left[\begin{array}{cc} \lambda_1& 0\\ 0 & \lambda_2 \end{array}\right] }_{\Lambda} \underbrace{ \left[\begin{array}{cc} 1 & 1\\ \lambda_1 & \lambda_2 \end{array}\right]^{-1} }_{V^{-1}} \quad  (\zeta>1) }

\displaystyle{(2.20)\quad A= \underbrace{ \left[\begin{array}{cc} 1 & 0 \\ \lambda_R & \lambda_I \end{array}\right] }_{V} \underbrace{ \left[\begin{array}{cc} \lambda_R & \lambda_I \\ -\lambda_I & \lambda_R \end{array}\right] }_{\Lambda} \underbrace{ \frac{1}{\lambda_I} \left[\begin{array}{cc} \lambda_I & 0 \\ -\lambda_R & 1 \end{array}\right] }_{V^{-1}} \quad (\zeta<1) }

\displaystyle{(2.21)\quad A= \underbrace{ \left[\begin{array}{cc} 1 & 1\\ \lambda & \lambda+1 \end{array}\right] }_{V} \underbrace{ \left[\begin{array}{cc} \lambda & 1\\ 0 & \lambda \end{array}\right] }_{\Lambda} \underbrace{ \left[\begin{array}{cc} 1 & 1\\ \lambda & \lambda+1 \end{array}\right]^{-1} }_{V^{-1}} \quad (\zeta<1)(\zeta=1) }

これらに対応して,インパルス応答

\displaystyle{(2.22)\quad G(t)=C\exp(At)B=CV\exp(\Lambda t)V^{-1}B }

は,次式で与えられる。

\displaystyle{(2.23)\quad \left\{\begin{array}{ll} G(t)=\frac{\lambda_1 \lambda_2}{\lambda_2-\lambda_1}(e^{\lambda_2t}-e^{\lambda_1t}) & (\zeta>1)\\ G(t)=\frac{\omega_n^2}{\lambda_I}e^{\lambda_Rt}\sin\lambda_I t & (\zeta<1) \\ G(t)=\lambda^2te^{\lambda t} & (\zeta=1) \end{array}\right. }

これらに対応して,ステップ応答は,次式で与えられる。

\displaystyle{(2.24)\quad \left\{\begin{array}{ll} y(t)=1+\frac{1}{\lambda_2-\lambda_1}(\lambda_1e^{\lambda_2t}-\lambda_2e^{\lambda_1t}) & (\zeta>1)\\ y(t)=1-\frac{\omega_n}{\lambda_I}e^{\lambda_Rt}\sin(\lambda_I t-\tan^{-1}\frac{\lambda_I}{\lambda_R}) & (\zeta<1) \\ y(t)=1+(\lambda t-1)e^{\lambda t} & (\zeta=1) \end{array}\right. }

特に,\zeta<1の場合のステップ応答は,つぎのように与えられる。

\displaystyle{(2.25)\quad y(t)=1-{1\over\sqrt{1-\zeta^2}}\exp(-\zeta\omega_nt)\sin(\omega_n\sqrt{1-\zeta^2}\,t+\phi) }

ただし

\displaystyle{(2.26)\quad \phi=\tan^{-1}{\sqrt{1-\zeta^2}\over\zeta} }

このとき,ステップ応答の行き過ぎ時間T_pと行き過ぎ量p_0=y(T_p)-1は,次式で表される。

\displaystyle{(2.27)\quad (T_p,p_0)=\left(\frac{\pi}{\omega_n\sqrt{1-\zeta^2}},\exp(-\frac{\zeta\pi}{\sqrt{1-\zeta^2}})\right) }

したがって,図上で第1番目のオーバーシュートの頂点の座標(T_p,y(T_p))を求めれば,固有角周波数\omega_n減衰係数\zetaを,つぎのように計算できる。

\displaystyle{(2.28)\quad (\omega_n,\zeta)=\left(\frac{\sqrt{(\ln p_0)^2+\pi^2}}{T_p},\frac{|\ln p_0|}{\sqrt{(\ln p_0)^2+\pi^2}}\right) }

例題2.6 つぎの2次系のステップ応答をMATLABで計算し,図示せよ。

\displaystyle{ \left\{\begin{array}{l} \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} 0 & 1 \\ -1 & -0.02 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] + \left[\begin{array}{c} 0 \\ 1 \end{array}\right]u(t)\\ y(t)= \left[\begin{array}{cc} 1 & 0 \end{array}\right] \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \end{array}\right. }

解答 MATLABに,つぎのコマンドを与えればよい。

%step_resp2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0];
sys=ss(A,B,C,0); %0によって適合するサイズの零行列をD行列に設定
t=0:0.1:10; step(sys,t), grid

SCILABに,つぎのコマンドを与えればよい。

//step_resp2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0];
sys=syslin(‘c’,A,B,C);
t=0:0.1:10; plot2d(t,csim(‘step’,t,sys)), mtlb_grid

演習2.6 例題2.6の図上で,第1番目のオーバーシュートの頂点の座標をginput(1)を使って読み込み,固有角周波数と減衰係数を同定せよ。

さて,もう一つ重要なn次系(??)の時間応答として,正弦波入力を与える場合の零状態応答(周波数応答)がある。

例題2.7 つぎの1次系の時間応答をMATLABで計算し,図示せよ。

\displaystyle{ \dot{x}(t)=-x(t)+u(t),\ x(0)=1 }

ただし,u(t)=\sin10tとする。

解答 MATLABに,つぎのコマンドを与えればよい。

%sin_resp.m
sys=ss(-1,1,1,0); x0=1;
t=0:0.05:10; u=sin(10*t); %入力を指定
y=lsim(sys,u,t,x0); %時間応答の計算
plot(t,y), grid %時間応答の図示

SCILABに,つぎのコマンドを与えればよい。

//sin_resp.m
sys=syslin(‘c’,-1,1,1,0); x0=1;
t=0:0.05:10; u=sin(10*t); //入力を指定
y=csim(u,t,sys,x0); //時間応答の計算
plot2d(t,y), mtlb_grid //時間応答の図示

演習2.7 例題2.7の図上に,零入力応答と零状態応答を重ねて表示せよ。

この例が示すように,n次系(??)に対して正弦波入力u(t)=\sin\omega tを与える場合の零状態応答は十分時間が経つと振幅と位相が変化した次式となる。

\displaystyle{(2.29)\quad y(t)\simeq |G(j\omega)|\sin(\omega t+\angle G(j\omega)) }

ここで,周波数伝達関数G(j\omega)

\displaystyle{(2.30)\quad G(j\omega)=C(j\omega I_n-A)^{-1}B }

で与えられる。古典制御で用いられるボード線図は,角周波数毎にゲイン20\log_{10}|G(j\omega)|と位相\angle G(j\omega)を対にしたものである。

例題2.8 つぎの1次系のボード線図をMATLABで図示せよ。

\dot{x}(t)=-x(t)+u(t)

解答 MATLABに,つぎのコマンドを与えればよい。

%bode_diag.m
sys=ss(-1,1,1,0);
w={1e-1,1e1}; %角周波数範囲の指定
bode(sys,w), grid %ボード線図の計算と図示

SCILABに,つぎのコマンドを与えればよい。

//bode_diag.m
sys=syslin(‘c’,-1,1,1,0);
fmin=1e-1/(2*%pi); fmax=1e1/(2*%pi); //周波数範囲の指定
bode(sys,fmin,fmax) //ボード線図の計算と図示

演習2.8 例題2.6の2次系のボード線図をMATLABで図示せよ。

最後に,自由系の時間応答(初期値応答)の計算法を示す。

例題2.9 つぎの1次自由系の時間応答をMATLABで計算し,図示せよ。

\dot{x}(t)=-x(t),\ x(0)=1

解答 MATLABに,つぎのコマンドを与えればよい。

%free_resp.m
sys=ss(-1,0,1,0); x0=1;
t=0:0.1:5;
initial(sys,x0,t), grid %初期値応答の計算と図示

SCILABに,つぎのコマンドを与えればよい。

//free_resp.m
sys=syslin(‘c’,-1,0,1,0); x0=1;
t=0:0.1:5; u=zeros(1,length(t)); //零入力を指定
y=csim(u,t,sys,x0); //初期値応答の計算
plot2d(t,y), mtlb_grid //初期値応答の図示

演習2.9 例題(2.6)の2次系のインパルス応答をMATLABで図示せよ。

演習問題の解答

演習2.1

(1) 漸近安定であるための条件は,1-f<0。したがって,f>1
(2) 漸近安定であるための条件は,-1-2f<0。したがって,f>-\frac{1}{2}

演習2.2
(1) (??)式を用いて,時間応答は次式となる。

\displaystyle{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} -1 & 0 \\ 0 & 0 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \nonumber\\ = \left[\begin{array}{cc} e^{-t} & 0 \\ 0 & 1 \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} e^{-t}x_1(0)\\ x_2(0) \end{array}\right] }

これより,つぎが成り立つ。

\displaystyle{ \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} 0 \\ 1 \end{array}\right] \Rightarrow \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty) }

したがって,漸近安定でない。

(2) (??)式を用いて,時間応答は次式となる。

\displaystyle{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} -1 & 1 \\ -1 & -1 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \nonumber\\ = e^{-t} \left[\begin{array}{cc} \cos t & \sin t \\ -\sin t & \cos t \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} e^{-t}(x_1(0)\cos t +x_2(0)\sin t )\\ e^{-t}(-x_1(0)\sin t +x_2(0)\cos t ) \end{array}\right] }

これより,つぎが成り立つ。

\displaystyle{ \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \ne \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \Rightarrow \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty) }

したがって,漸近安定である。

(3) (??)式を用いて,時間応答は次式となる。

\displaystyle{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] = \exp \left(\left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right]t\right) \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] \nonumber\\ = \left[\begin{array}{cc} 1 & t \\ 0 & 1 \end{array}\right] \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} x_1(0)+t x_2(0)\\ x_2(0) \end{array}\right] }

これより,つぎが成り立つ。

\displaystyle{ \left[\begin{array}{c} x_1(0) \\ x_2(0) \end{array}\right] = \left[\begin{array}{c} 0 \\ 1 \end{array}\right] \Rightarrow \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] \rightarrow \hspace{-3.5mm}/\hspace{2.5mm} \left[\begin{array}{c} 0 \\ 0 \end{array}\right] \quad (t\rightarrow\infty) }

したがって,漸近安定でない。

演習2.3 例題1.2について:
(1) \det(\lambda I_2-A)=(\lambda+1)(\lambda+2)=0より,行列Aの固有値は-1,-2。2つとも実数で負だから漸近安定。
(2) \det(\lambda I_2-A)=(\lambda-1)^2+1=\lambda^2-2\lambda+2=0より,行列Aの固有値は1\pm j。実部が正だから漸近安定ではない。
(3) \det(\lambda I_2-A)=(\lambda+1)^2=0より,行列Aの固有値は-1,-1。2つとも実数で負だから漸近安定。

演習1.2について:
(1) \det(\lambda I_2-A)=(\lambda+1)\lambda=0より,行列Aの固有値は-1,0。零固有値をもつので漸近安定はでない。
(2) \det(\lambda I_2-A)=(\lambda+1)^2+1=\lambda^2+2\lambda+2=0より,行列Aの固有値は-1\pm j。実部が負だから漸近安定。
(3) \det(\lambda I_2-A)=\lambda^2=0より,行列Aの固有値は2つとも0。零固有値をもつので漸近安定でない。

演習2.4

(1) x(t)=\int_0^te^{-(t-\tau)}\,d\tau=e^{-t}\left[e^{\tau}\right]_0^t=e^{-t}(e^{t}-1)=1-e^{-t}
(2) x(t)=\int_0^te^{+(t-\tau)}\,d\tau=e^{t}\left[-e^{-\tau}\right]_0^t=e^{t}(-e^{-t}+1)=-1+e^{t}

演習2.5 定常ゲインは1.したがって,横線1-\frac{1}{e}を図示すればよい。

%step_resp1_cont.m
hold on %重ね書きの準備
plot([0 5],(1-exp(-1))*[1 1]) %レベル1-1/e=0.632の表示
w=ginput(1)

//step_resp1_cont.m
plot2d([0 5],(1-exp(-1))*[1 1]) %レベル1-1/e=0.632の表示
w=locate(1)

演習2.6

%step_resp2_cont.m
[Tp,p0]=ginput(1); p0=p0-1;
zeta=sqrt(log(p0)^2/(log(p0)^2+pi^2));
wn=sqrt(log(p0)^2+pi^2)/Tp;

//step_resp2_cont.m
w=locate(1); Tp=w(1); p0=w(2)-1;
zeta=sqrt(log(p0)^2/(log(p0)^2+%pi^2));
wn=sqrt(log(p0)^2+%pi^2)/Tp;

演習2.7

%sin_resp_cont.m
x0=1; u=zeros(1,length(t)); y1=lsim(sys,u,t,x0); %零入力応答の計算
x0=0; u=sin(10*t); y2=lsim(sys,u,t,x0); %零状態応答の計算
hold on, plot(t,y1,’g’,t,y2,’r’)

//sin_resp_cont.m
x0=1; u=zeros(1,length(t)); y1=csim(u,t,sys,x0); %零入力応答の計算
x0=0; u=sin(10*t); y2=csim(u,t,sys,x0); %零状態応答の計算
hold on, plot2d(t,y1,’g’,t,y2,’r’)

演習2.8

%bode_diag2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=ss(A,B,C,0);
w={1e-1,1e1}; bode(sys,w), grid

//bode_diag2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=syslin(‘c’,A,B,C,0);
fmin=1e-1/(2*%pi); fmax=1e1/(2*%pi);
bode(sys,fmin,fmax)

演習2.9

%impulse_resp.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=ss(A,B,C,0);
t=0:0.1:5; initial(sys,B,t), grid

//impulse_resp.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=syslin(‘c’,A,B,C,0);
t=0:0.1:5; u=zeros(1,length(t));
y=csim(u,t,sys,B);