システム工学 I 第 11 回
システムの応答
状態方程式とシステムの応答
(1)
• x ˙ = Ax + Bu, y = Cx + Du
というシステ ムを考える(x ∈ R
n, u ∈ R
m, y ∈ R
p; A ∈ R
n×n, B ∈ R
n×m, C ∈ R
p×n, D ∈ R
p×m)
• x( t ), u( t ), y( t )
のLaplace
変換をX ( s ), U ( s ), Y (s)
とする.•
変数t
やs
を省略することがある.このシステムの解は・・・
x( t ) = e
Atx
0+
Z
t 0e
A(t−τ)Bu( τ ) dτ
y(t) = C
e
Atx
0+ Z
t0
e
A(t−τ)Bu(τ)dτ
+ Du(t)
• Ce
Atx
0: 零入力応答• C R
t0
e
A(t−τ)Bu(τ )dτ
+ Du(t):
零状態応 答状態方程式とシステムの応答
(3)
•
システムの応答は, 零入力応答と零状態応答 の重ね合わせになる.•
入力u
1(t)
に対する零状態応答をy
1(t),
入力u
2( t )
に対する零状態応答をy
2( t )
とすると, 入力α
1u
1(t) + α
2u
2(t)
に対する零状態応答 はα
1y
1(t) + α
2y
2(t)
となる(重ね合わせの原
理).次に状態方程式を
Laplace
変換する.sX − x
0= AX + BU
だから・・・X (s) = (sI − A)
−1x
0+ (sI − A)
−1BU(s), Y (s) = C(sI − A)
−1x
0+ C(sI − A)
−1BU (s) + DU (s)
• C(sI − A)
−1x
0: 零入力応答のLaplace
変換• (C(sI − A)
−1B + D) U (s):
零状態応答のLaplace
変換状態方程式とシステムの応答
(5)
•
システムの伝達関数行列では初期値を零とお く. よって, このシステムの伝達関数行列はC(sI − A)
−1B + D
•
時間領域でシステムの応答を求めるときには,e
Atが必要になる. 既出だが,e
Atの構造を調べるには
Jordan
標準形が必要.状態方程式とシステムの応答
(6)
• P
−1AP = λI
n+ N
nの場合(Jordan
ブロッ クが1
個だけの場合)には・・・e
At= P
e
λtte
λt· · ·
(n−1)!tn−1e
λt. .. ... ...
. .. te
λte
λt
P
−1•
ただし,N
n= 0 I
n−10 0
!
とする
(n ≥ 2).
• n = 1
のときはN
1= 0
と定義する. しがたっ て,N
1= 0
の項は無視できる.状態方程式とシステムの応答
(8)
• P
−1AP = diag(J
1, . . . , J
k)
のようにJor- dan
標準形がk
個のブロックを持つ場合には(J
i= λ
iI
ni+ N
ni(1 ≤ i ≤ k, n
i≥ 1)) e
At= P diag(e
J1t, . . . , e
Jkt)P
−1,
e
Jit=
e
λit· · ·
(ntni−1i−1)!e
λit. .. .. .
λt
状態方程式とシステムの応答
(9)
•
次に, (sI− A)
をJordan
標準形を使って表現 する.J = diag(J
1, . . . , J
k)
をA
のJordan
標準形とし(J
i= λ
iI
ni+N
ni), P
−1AP = J
とする.• ( sI − A) = P ( sI − J )P
−1だから,(sI − A)
−1= P (sI − J )
−1P
−1.
状態方程式とシステムの応答
(10)
• X = diag(X
1, . . . , X
k)
のすべての対角ブロ ックが正方で逆行列を持てば,X
も逆行列を持ち,
X
−1= diag(X
−11, . . . , X
−1k)
•
よって, (sI− A)
−1=
P diag ((sI − J
1)
−1, . . . , (sI − J
k)
−1) P
−1.
s−λi −1 . .. ...
. .. 1 s−λi
1 s−λi
1
(s−λi)2 · · · (s−λ1i)ni
. .. ...
. .. (s−λ1
i)2 1 s−λi
=I
となることは直接計算することで確認できるから・・・
(sI − J
i)
−1=
1 s−λi
1
(s−λi)2
· · ·
(s−λ1i)ni. .. .. .
. ..
(s−λ1i)2 1 s−λi
これを
Laplace
逆変換すると先に述べた時間領域における形になる.
状態方程式とシステムの応答
(13)
• MATLAB
やScilab
のような科学技術計算のためのソフトウェアには行列の指数関数を 計算する関数が用意されていることがある
(MATLAB,Scilab
ではexpm).
•
通常の指数関数はexp
とは違うので注意.状態方程式とシステムの応答
(14)
•
我々は先ほど状態方程式から次のような表現 を導いたのだが:X ( s ) = ( s I − A)
−1x
0+ ( s I − A)
−1BU ( s ), Y ( s ) = C ( s I − A)
−1x
0+ C( s I − A)
−1BU ( s )
+DU ( s )
多入力多出力系の零点を定義する目的で,別 の表現を用いることもある.
状態方程式とシステムの応答
(15)
•
前のページの式を変形し,Π(s) = (A − sI ) B
C D
!
と定義すると,
Π( s ) X(s) U ( s )
!
= −x(0) Y ( s )
!
となる.
• Π(s)
をRosenbrock
のシステム行列という.状態方程式とシステムの応答
(16)
•
多項式行列sI − A
をSmith
標準形:diag( g
1( s ) , . . . , g
r( s )) 0
0 0
!
(∀i, g
i(s)
はモ ニック,g
i( s )| g
i+1( s ))
に変形したときの,多項 式g
1(s), . . . , g
r(s)
に対し,g
i(s) = 0(1 ≤ i ≤
r)
の根をシステム極と呼び,その重複度をシ ステム極の重複度と呼ぶ.状態方程式とシステムの応答
(17)
•
多項式行列Π(s)
をSmith
標準形:diag( h
1( s ) , . . . , h
u( s )) 0
0 0
!
, (∀ i , h
i( s )
は モニック,h
i( s )| h
i+1( s ))
に変形したときの,多 項式h
1(s), . . . , h
u(s)
に対し,h
i(s) = 0(1 ≤
i ≤ u)
の根を不変零点と呼び, その重複度 を不変零点の重複度と呼ぶ.システムのモード
(1)
• x ˙ = Ax, x(0) = x
0という微分方程式が与 えられていて,P
−1AP = diag(J
1, . . . , J
k), J
i= λ
iI
ni+ N
ni(1 ≤ i ≤ k, n
i≥ 1)
とする.• z = P
−1x
という座標変換を考え,新しい座 標z(一般には非直交座標)
に関する微分方程 式を立てる.システムのモード
(2)
• z ˙ = P
−1x ˙ = P
−1Ax = P
−1AP z
だから, 新しい座標系では, ˙z = diag(J
1, . . . , J
k)z
と なっている. 初期値はz
0= P
−1x
0である.• z ˙ = diag(J
1, . . . , J
k)z
の解をx ˙ = Ax
のモー ドという.システムのモード
(3)
•
この解はz(t) = diag(e
J1t, . . . , e
Jkt)z
0 だか ら, システムのモードはe
Jitの要素を(初期
値を使って)組み合わせたものになる.•
システムのモードを構成する関数がλ
iとn
の 値に応じてどのように変わるかを見てゆく.システムのモード
(4)
• n = 1
でλ
i が正の実数のときには,e
λitはt → ∞
で発散する指数関数である.• n = 1
でλ
i が負の実数のときには,e
λitはt → ∞
で零に収束する指数関数である.• Aは実行列だから, λ
iが虚数なら, (J1, . . . , J
k)
の中にλ
iの複素共役に対応するものがある.システムのモード
(5)
• n = 1
でλ
iが虚数のときは,e
(a+ib)t= e
at(cos bt + i sin bt )
である. これ は,t → ∞
とすると,a > 0
なら振動的に発散し,
a < 0
なら振動的に零に減衰する.a = 0
のときは振幅が一定の三角関数である.システムのモード
(6)
• λ
iが虚数であっても,A, x
0が実行列および 実ベクトルである場合には, これに対応する 応答波形は,λ
iの複素共役に対する応答波形 と対になっている. 初期値が実数である場合 には,複素共役どうしが打ち消し合うことで, 応答の虚数成分は消える.システムのモード
(7)
• n ≥ 2
のときには, ブロックJ
i に対応する モードは,e
λit, te
λit, . . . , t
ni−1(n
i− 1)! e
λit の組 み合わせである.λ
iの値と解の挙動の関係はn = 1
の場合と同様であるが,t
の多項式がそ れに乗じられる点が異なる.• n = 3
の場合の様々なモードの図を示す.n
i= 3, λ
i= 1
0 5 10 15 20 25 30 35 40
0 0.5 1 1.5 2 2.5
exp(x) x*exp(x) x**2/2*exp(x)
n
i= 3, λ
i= −1
0 0.2 0.4 0.6 0.8 1
0 0.5 1 1.5 2 2.5
exp(-x) x*exp(-x) x**2/2*exp(-x)
n
i= 3, λ
i= 1 + 5i (実部)
-20 -10 0 10 20 30 40
0 0.5 1 1.5 2 2.5
exp(x)*cos(5*x) x*exp(x)*cos(5*x) x**2/2*exp(x)*cos(5*x)
n
i= 3, λ
i= 1 + 5i (虚部)
-25 -20 -15 -10 -5 0 5 10
0 0.5 1 1.5 2 2.5
exp(x)*sin(5*x) x*exp(x)*sin(5*x) x**2/2*exp(x)*sin(5*x)
n
i= 3, λ
i= −1 + 5i (実部)
-0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
0 0.5 1 1.5 2 2.5
exp(-x)*cos(5*x) x*exp(-x)*cos(5*x) x**2/2*exp(-x)*cos(5*x)
n
i= 3, λ
i= −1 + 5i (虚部)
-0.4 -0.2 0 0.2 0.4 0.6 0.8
0 0.5 1 1.5 2 2.5
exp(-x)*sin(5*x) x*exp(-x)*sin(5*x) x**2/2*exp(-x)*sin(5*x)
n
i= 3, λ
i= 0
0 0.5 1 1.5 2 2.5 3 3.5
0 0.5 1 1.5 2 2.5
1 x x**2/2
伝達関数とシステムの応答
(1)
•
次のような伝達関数で表現されたシステムを 考える:G ( s ) = g
0(s − β
1) · · · (s − β
m)
(s − α
1) · · · (s − α
n) ;
ただ し分子と分母には共通項がないものとする.•
代数学の基本定理により, 伝達関数の分母と 分子は1
次の項の積で表現されるので, それ らの共通項を打ち消せば上記の形になる.伝達関数とシステムの応答
(2)
• G(s)
はn ≥ m
のときプロパー,n > m
のと き厳密にプロパーと言うのであった.• {α
1, . . . , α
n}
をG(s)
の極,{β
1, . . . , β
m}
をG(s)
の零点,g
0をG(s)
の高周波ゲインというの であった.• n − m
をG(s)
の相対次数という.伝達関数とシステムの応答
(3)
• G(s)
が厳密にプロパー(相対次数が 1
以上) であるとき, lim|s|→∞| G ( s )| = 0
であるから, 複素平面に無限遠点を付け加えて考えたとき, 無限遠点もG(s)
の零点であると解釈できる.これを
G(s)
の無限零点という.伝達関数とシステムの応答
(4)
•
伝達関数G(s)
で記述されたシステムの入力u ( t )
に対する応答は,u ( t )
のLaplace
変換をU(s)
としたとき,G(s)U (s)
をLaplace
逆変換 することにより求められる.•
伝達関数表現を用いるときには,システムの 初期値は零に固定されていることに注意.伝達関数とシステムの応答
(6)
•
伝達関数が有理関数で入力が多項式および指 数関数と三角関数の組み合わせのときには, 部分分数展開によってG(s)U (s)
のLaplace
逆変換を求めることができる.•
入力としてよく使われる関数のLaplace
変換 を次に示す.関数
Laplace
変換 単位インパルスδ(t) 1
単位ステップ
1 1
s
多項式t
n−1( n − 1)!
1 s
n指数関数
e
at1
s − a
指数関数+多項式t
n−1(n − 1)! e
at1
(s − a)
n関数
Laplace
変換 正弦関数sin at a
s
2+ a
2 余弦関数cos at s
s
2+ a
2 双曲線関数sinh at a
s
2− a
2cosh at s
s
2− a
2伝達関数とシステムの応答
(8)
•
単位インパルスは, Diracのデルタ関数と同 じものである.•
正弦関数,余弦関数,双曲線関数のLaplace
変 換は, 指数関数のLaplace
変換から代数的に 求めることができる.伝達関数とシステムの応答
(9)
•
伝達関数G ( s ) = g
0( s − β
1) · · · ( s − β
m) (s − α
1) · · · (s − α
n)
を 持つシステムにY
1≤j1≤···≤jr≤m
1 s − β
jrなる入 力が印加された場合
(ただし r ≤ m),
これら は伝達関数の分子で相殺され, 出力にはまっ たく現れない.例
• x ˙ = −x + u, y = −2x + u
というシステム を考える. 初期値をx(0) = 0
とおく. また,u(t) = e
tとする.• X(s) =
s+11U (s) =
(s+1)(s−1)1=
s21−1 である.• Y (s) = U(s) − 2X(s) =
s−11(1 −
s+12) =
1
s−1
(
s−1s+1) =
s+11 だから,y(t) = e
−tである.入力
e
tは出力に現れない.• x(t)は無限大に発散するにもかかわらず,y(t)が零に収束するこ とに注意. このように,「不安定零点」の取り扱いには注意が必 要である.
• Scilabでこの微分方程式を解いてみる.数値計算の誤差が問題と
なることに注意.
deff(’dx=f(t,x)’,’dx=-x+exp(t)’);
x0=0;t0=0;t=0:.01:10;
x=ode(’rk’,x0,t0,t,f);
y=exp(t)-2*x;
• Runge-Kutta法を使っていることに注意. デフォルトの解法だと
Runge-Kutta
法:x(t)
は発散するが・・・0 2000 4000 6000 8000 10000 12000
0 2 4 6 8 10
x(t)
t
Runge-Kutta
法:y(t)
は零に収束する0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0 2 4 6 8 10
y(t)
t
Runge-Kutta
法とデフォルト解法の比較-0.0008 -0.0006 -0.0004 -0.0002 0 0.0002 0.0004 0.0006 0.0008 0.001
7 7.5 8 8.5 9 9.5 10
y(t)
t Ruge-Kutta
Default
伝達関数とシステムの応答
(15)
•
多入力多出力系では,G(s) = (g
ij(s)), U (s) = ( U
1( s ) , . . . , U
m( s ))
T, Y ( s ) = ( Y
1( s ) , . . . , Y
p( s ))
T とすると,Y
i(s) = P
mj=1
g
ij(s)U
j(s)
だから, 各j
についてg
ij(s)U
j(s)
を部分分数展開で計 算してから, それらを足し合わせれば,Y
i(s)
が得られる.伝達関数とシステムの応答
(16)
•
多入力多出力系でもG(s)
から1
入力1
出力 系の極と零点に相当するものを定義すること は可能.•
まず,m
行n
列の伝達関数行列G(s)
が,次のように
Smith-McMillan
標準形で表現されているものとする.
U ( s )G( s )V ( s ) =
ν
1(s) δ
1( s )
. ..
ν
r( s ) δ
r(s)
(Smith-McMillan
標準形;空白の部分は零)伝達関数とシステムの応答
(18)
• δ
1( s ) · · · δ
r( s ) = 0
の根およびその重複度構造 を,G(s)
の伝達極という.• ν
1(s) · · · ν
r(s) = 0
の根およびその重複度構 造を,G( s )
の伝達零点という.• G(s) = 0
となるs
のことを,G(s)
のブロッ キング零点という.伝達関数とシステムの応答
(19)
G( s )
の可制御かつ可観測な実現がA B C D
である とき,
A B C D
のシステム極および不変零点が
G( s )
の伝達極および伝達零点に一致することが示されるが,
可制御性と可観測性はシステム工学II
の範囲なので深 入りしない.
伝達関数とシステムの応答
(20)
一般には
,
A B C D
に対応する伝達関数行列が
G( s )
であるとき, G( s )
の伝達極および伝達零点はA B C D
のシステム極および不変零点の一部になる
.
phase portrait(1)
•
時不変な微分方程式x ˙ = f (x), x(0) = x
0の 解は,ϕ( t, 0 , x
0)
という形の時間の関数であ り, (t,x)
空間にそのグラフをプロットするこ とができるが,そのグラフのx
空間への射影 を, このシステムのphase portrait
という.• phase portrait
という言葉は上記以外の意味 で使われることもあるので注意.phase portrait(2)
•
線形時不変システムを固有値で分類すると・・・⊲
固有値の実部が正vs
固有値の実部が負⊲
固有値が実数vs
固有値が共役複素数•
よって, 2次元のシステムの解を分析するこ とで,n
次元のシステムの解の特徴をある程 度理解できる.phase portrait(4)
• x ˙
1˙ x
2!
= 0 1
a
1a
2! x
1x
2!
とし, (a1
, a
2)
を変えて
(固有値が変わる),
そのベクトル場とphase portrait(流線)
をプロットする.• Mathematica
の組み込み関数VectorPlot
とStreamPlot
を利用.固有値が
1
と1 (重根, 2
個とも正)固有値が
1
と−1 (1
個が正, 1個が負)固有値が
−1
と−1 (重根, 2
個とも負)固有値が
1 − i
と1 + i (共役,
実部が正)固有値が
− i
とi (共役,
実部が零)固有値が
−1 − i
と−1 + i (共役,
実部が負)参考文献