fc2ブログ

制御工学その7

3.1 ラプラス変換を利用した時間応答の計算 : 続き



3.1.4 時間応答の計算

動的システムのインパルス応答やステップ応答、ランプ応答といった基本応答は、ラプラス変換後のY(s)
を逆ラプラス変換することによって求めることができる。
以下に例を挙げる。

なお、伝達関数は全て
P(s) = 1/(s+1)
とする

例3.7 インパルス応答の計算

インパルス入力はu(s) = 1であるので

Y(s) = P(s)U(s) = 1/(s+1)

となる。これを逆ラプラス変換すると

y(t) = e^-t

となる。

例3.8 ステップ応答の計算

ステップ入力はU(s) = 1/sであるので

Y(s) = 1/(s+1)*1/s= 1/(s*(s+1))

となる。

これは簡単なラプラス変換表にはないので部分分数分解し

Y(s) = k_1/s + k_2/(s+1)

とおく。すると分母は

k_1*s + k_1 + k_2*s となるため

k_1+k_2 = 0
k_1 = 1
k_2 = -1
となることがわかる

つまりここで

Y(s) = 1/s - 1/(s+1)

を逆ラプラス変換すれば、

y(t) = 1 - e^-t

となる。

例3.9 ランプ応答の計算

ランプ応答はU(s) = 1/s^2となるので

Y(s) = 1/(s^2*(s+1))

となるこれもやっぱり部分分数分解する必要があり

Y(s) = k1/s^2 + k2/s + k3/(s+1)

となる。

(k2+k3)*s^2 + (k1+k2)*s + k1 = 1

なので
k1 = 1
k2 = -1
k3 = 1

となり、結局

Y(s) = 1/s^2 - 1/s + 1/(s+1)

逆ラプラス変換すると

y(t) = t - 1 + e^-t

となる。

ここで部分分数分解について述べる。
通常、システムの応答を求めるには部分分数分解する必要がある。

つまり

Y(s) = (bm*s^m + bm-1*s^m-1 + ... + b0) / (s^n + an-1*s^n-1 + ... + a0) (n>m)

となるとき、分母の根piを用いて分数の掛け算で表すと

Y(s) = (bm*s^m + bm-1*s^m-1 + ... + b0) / ((s-p1)*(s-p2)*...*(s-pn))

と表せる。これの部分分数分解は二通りになり

(1)、分母の根がすべて異なる場合

分母の根がすべて異なる場合というのは、つまり分母を掛け算で表したときに2乗以上の乗数が現れないことである。

このときは部分分数分解すると

Y(s) = k1/(s-p1) + k2/(s-p2) + ... + kn/(s-pn)

となる。これは先程の計算のように、係数の恒等式で解くことができるが、もっと簡単に解ける

k_i = (s-pi)*Y(s)

を計算し、かつs=piとおいた時の値がk_iとなる。

実際に計算してみる

例3.10 ステップ応答における部分分数分解

Y(s) = k1/s + k2/s+1

について、

k1 = (s-0)*1/s(s+1) = 1/s+1
ここで、s=p1=0なので
k1 = 1/1 = 1

また
p2 = -1より

k2 = (s+1)*1/s(s+1) = 1/s

s=p2=-1より

k2 = 1/-1 = -1

よって伝達関数は

Y(s) = 1/s - 1/s+1

となる。

(2) 分母の根に重根がある場合

重婚が1-lの間にあるとすると

Y(s) = k_1_l/(s-p1)^l + k_1_l-1/s(-p1)^l-1 + ... + k_1_1/(s-p1)

+ k_l+1/(s-p_l+1) + ... + k_n/(s-pn)

となる。ここでもkを恒等式によって求めることができるが、簡単な計算にすることができる。以下に示す

重根部分は

k_i_l = 1/(l-i)! * d(l-i)/ds(l-i){(s-pi)^l*Y(s)}

を解いたときにs = piとおいた時の値である。

また、

それ以外は重根のない部分と同じである。以下に例を示す。

例3.11 ランプ応答の部分分数分解

先程のランプ応答は

Y(s) = k1_2/s^2 + k1_1/s + k3/s(s+1)

と部分分数分解できた。これを上の式に当てはめると
重根部分

k1_2/s^2 + k1_1/s



k1_2 = 1/(2-1)! * d(2-2)/ds(2-2){(s-p1)^2*1/s^2(s+1)} (s=0)

となるため結局

k1_2 = 1/1 = 1

また、

k1_1 = 1/(1-1)! * d(2-1)/ds(2-1){(s-p1)^2*1/s^2(s+1)} (s=0)

つまり

k1_1 = d(1/s+1)/ds = -1/(s+1)^2 (s=0) = -1

となる。重根でない部分は

k3 = (s-p3)*1/s^2(s+1) (p3 = -1) = 1/s^2 (s = -1) = 1

となる。

これらの部分分数分解の結果は、p_iが複素数である場合もふくんでいる。
複素数の場合、オイラーの公式を用いると、時間応答を実数で表すことが出来る。
以下に例を示す

3.12 p_iに複素数を含むステップ応答の計算

P(s) = 10/(s^2+2s+10)

となる時のステップ応答を計算する

Y(s) = P(s)*1/s = 10/s(s^2+2s+10)

であるため、部分分数分解すると(s^2+2s+10)の解である複素数を用いて

Y(s) = k1/s + k2/(s+1-3i) + k3/(s+1+3i)

という式が立つ。ここで先程の簡単計算法を用いてkを求めると

k1 = (s)*10/s(s^2+2s+10) = 10/(s^2+2s+10), s=0なので10/10 = 1

k2 = (s+1-3i)*10/s(s+1+3i)(s+1-3i) = 10/s(s+1+3i) s=-1+3iなので 10/6i(-1+3i) = 10/-6i-18 = 5/-9-3i = -1/6*(3-i)

k3 = (s+1+3i)*10/s(s+1+3i)(s+1-3i) = 10/s(s+1-3i) s=-1-3iなので 10/-6i(-1-3i) = 10/6i-18 = 5/-9+3i = -1/6*(3+i)

ここで応答Y(s)がもとまり

Y(s) = 1/s - 1/6*(3-i)/(s+1-3i) - 1/6(3+i)/(s+1+3i)

ラプラス変換すると

y(t) = 1 - 1/6*(3-i)*e^-(1-3i)t - 1/6*(3+1)*e^-(1+3i)t = 1 - 1/6(3-i)*e^(-1+3i)t - 1/6(3+1)*e^(-1-3i)t

= 1 - 1/6*(3-i)*e^-t*e^3it - 1/6*(3+i)*e^-t*e^-3it

となる。
ここで
e^iθ = cosθ+i*sinθ
e^-iθ = cosθ-i*sinθ
を用いて

y(t) = 1 - 1/6*(3-i)*e^-t*(cos3t+isin3t) - 1/6*(3+i)*e^-t*(cos3t-isin3t)

右辺第二項と第三項をまとめて

y(t) = 1 -1/6*e^-t*{(3-i)(cos3t+isin3t) + (3+i)(cos3t-isin3t)}

(3-i)(cos3t+isin3t) + (3+i)(cos3t-isin3t) = 3cos3t + 3isin3t - icos3t + sin3t + 3cos3t -3isin3t + icos3t +sin3t
=3cos3t + sin3t + 3cos3t +sin3t = 2(sin3t + 3cos3t)

つまり

y(t) = 1 - 1/3*e^-t(sin3t+3cos3t)

となる。

問題3.4

ステップ応答を求める。

(1)P(s) = 3/(s+2)

Y(s) = 1/s*3/(s+2) = 3/s(s+2) = (3/2)/s + (-3/2)/s+2

逆ラプラス変換すると

y(t) = 3/2 - 3/2*e^-2t


(2)P(s) = (s+4)/((s+1)*(s+2))

Y(s) = (s+4)/s(s+1)(s+2) = 1/(s+1)(s+2) + 4/s(s+1)(s+2)

1/(s+1)(s+2) = 1/(s+1) - 1/(s+2)

4/s(s+1)(s+2) = 2/s - 4/(s+1) + 2/(s+2)

Y(s) = 2/s - 3/(s+1) + 1/(s+2)

逆ラプラス変換すると

y(t) = 2 - 3e^-t + e^-2t


(3)P(s) = 2/(s+1)^2

Y(s) = 2/s(s+1)^2 = -2/(s+1)^2 - 2/(s+1) + 2/s

逆ラプラス変換すると

y(t) = -2t*e^-t - 2*e^-t + 2 = 2 - 2*e^-t*(t+1)


(4)P(s) = 5/(s^2+2s+5)

Y(s) = 5/s(s^2+2s+5) = 5/s(s+1-2i)(s+1+2i)

= 1/s - 1/4*(2-i)/(s+1-2i) - 1/4*(2+i)(s+1+2i)

逆ラプラス変換すると

y(t) = 1 - 1/4*(2-i)*e^-(1-2i)t - 1/4*(2+i)*e^-(1+2i)t = 1 - 1/4*(2-i)*e^(-1+2i)t - 1/4*(2+i)*e^(-1-2i)t

= 1 - 1/4*e^-t*{(2-i)*e^2it + (2+i)*e^-2it}

(2-i)*e^2it + (2+i)*e^-2it = (2-i)*(cos2t+isin2t) + (2+i)(cos2t-isin2t) = 2cos2t + 2isin2t - icos2t +sin2t + 2cos2t - 2isin2t + icos2t + sin2t

2cos2t +sin2t + 2cos2t t + sin2t = 2sin2t + 4cos2t = 2(sin2t + cos2t)

y(t) = 1 - 1/2*(2-i)*e^-t*{sin2t+2cos2t} = 1 - 1/2*(2-i)*e^-t*sqrt(5)sin(2t+θ) (θ=tan_-1(2))

y(t) = 1 - (2-i)*e^-t*(1/2*sin2t+cos2t)

である。

まとめ

ステップ応答を例に、ラプラス変換後から出力関数の振る舞いを調べた。
この時、逆ラプラス変換するために部分分数分解をする必要がある。

簡単と書いてあるが、重根があった場合の式

k_i_l = 1/(l-i)! * d(l-i)/ds(l-i){(s-pi)^l*Y(s)} (s=pi) (重根部分)

k_i = (s-pi)*Y(s) (s=pi) (非重根部分)

は非常にめんどくさい。計算大変。
また、複素数を含みながら部分分数に分けたときはたいてい三角関数として実数関数に戻すことができる。
スポンサーサイト



コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR