A. 伝達関数の部分分数展開

A.1 厳密にプロパーな伝達関数

やらない夫
ラプラス変換の意味について考えたときに, 伝達関数を部分分数展開したのを覚えているか?

やる夫
覚えてるお. $ 1/(s - \lambda_i)$ みたいなシステムへの並列分解だと見なせて,分解された各システムのインパルス応答が指数関数になるんだったお.でも,ちょっと条件つきの議論だったお.あの条件が成り立たない場合はどうなるのかお?

やらない夫
いい質問だ.そうやって指数関数に並列分解できることを利用して「極の実部がすべて負だったら安定」とかの説明をしてきたからな.そういう分解ができない一般の場合にどうなるかを理解しておくことは重要だ.

順番に見ていこう.どんな条件を要求したんだった?

やる夫
えっと,

$\displaystyle H(s)$ $\displaystyle = \frac{\sum_{k = 0}^{M} b_k s^{k}}{\sum_{k = 0}^{N} a_k s^{k}}$ (13.68)

を考えてたんだけど,$ N > M$,つまり分母より分子の方が次数が小さいってことと,あと特性方程式,つまり 分母 = 0 という方程式が重解を持たないってことを条件にして話を進めたんだお.

やらない夫
まず,分子の方が次数が小さいという条件が満たされない場合から考えようか.

といっても大して難しい話じゃない.分母が $ Q(s)$ だったとしよう.分子と分母の次数が同じか,あるいは分子の方が次数が大きい場合は,分子を分母で割って,商を $ P(s)$,余りを $ R(s)$ とすると

$\displaystyle H(s)$ $\displaystyle = P(s) + \frac{R(s)}{Q(s)}$ (A.1)

と変形できるだろう.$ P(s)$$ Q(s)$$ R(s)$ はどれも多項式で, $ R(s)$ は余りなので割る式 $ Q(s)$ より次数が小さい.

やる夫
あー,うん,高校でやったと思うお.

やらない夫
$ P(s)$ の次数は,元の分子と分母の次数の差で決まるわけだ.分子と分母が同じ次数だったら $ P(s)$ は定数だし,分子の次数の方が 2 だけ大きければ $ P(s)$$ s$ の 2 次式になる.

やる夫
わかるお.

やらない夫
$ H(s)$ が例えば何らかのシステムの伝達関数だったとすると,それは多項式 $ P(s)$ を伝達関数とするシステムと,分子の方が次数が小さい有理式 $ R(s) / Q(s)$ を伝達関数とするシステムを並列につないだものになるわけだ.

やる夫
で,本編では $ R(s) / Q(s)$ に相当する部分だけ考えてたことになるお.

やらない夫
そういうことだな.多項式 $ P(s)$ の部分はというと,例えば $ P(s) = s^2 +
2s + 3$ だったとすると,2階微分するシステムと,1階微分して2倍するシステムと,入力を 3 倍して出力するだけのシステムを並列につないだものになる.


\includegraphics[scale=0.5]{fig_parfrac/tf_improper.eps}

やる夫
$ s$ 倍は微分に対応するわけだったから,そうなるお.で, $ R(s) / Q(s)$ の方は部分分数展開でやっぱり並列接続にバラして考えられるわけだったから,結局,全体を簡単な要素に並列分解できることになるお.

やらない夫
ここで用語を定義しておこう.分子の次数が分母の次数以下であるような有理式を,プロパーな有理式と呼ぶ.プロパーな有理式で表される伝達関数をプロパーな伝達関数と呼んだりもする.

やる夫
んー,今までの話だと分子の次数が分母以下というより,分母より小さい場合が重要だったお.そういう場合は呼び名はないのかお?

やらない夫
あるんだが,ちょっと微妙な用語で「厳密にプロパー」であるという.

やる夫
えー,うーん,ていうかそのプロパーという言葉のニュアンスがわからないから,「厳密に」とか言われてもよくわからないお.プロパーって何なんだお?

やらない夫
プロパーって言葉自体は「きちんとした」とか「適正な」という意味の英語の proper なんだが…

やる夫
んー,厳密にきちんとした有理式って何のことだかわからんお.

やらない夫
いや,だから最後まで話を聞けよ.小学校で真分数とか,仮分数とか習ったな?

やる夫
そのくらいわかるお.$ 3/4$ みたいに分子が分母より小さいのが真分数で, $ 5/4$ みたいのを仮分数って呼ぶんだお.

やらない夫
真分数ってのは英語の proper fraction の訳だ.同様に,仮分数ってのは improper fraction のことだ.

やる夫
ん? あー,だから有理式の場合も,分子と分母の次数を見て,proper とか improper と呼ぶと,単にそれだけのことかお?

やらない夫
そういうことだな.まあ分数の場合は,例えば $ 4/4$ みたいなのは真分数とは言わないと思うが,有理式の場合は分子と分母の次数が等しいものもプロパーだと考える.その代わり,いわゆる真分数に対応するものは strictly proper,つまり厳密にプロパーと呼んでやることにしたわけだ.

やる夫
何だ,それだけのことなら,真有理式とか,仮有理式とか呼んでくれればいいのに,プロパーとかカタカナで言うから妙な深読みしちゃったお.

やらない夫
そうなんだが,そういう用語で定着しちゃったんだから仕方ない.あとそれから,これは後々説明することだが,実は伝達関数がプロパーかプロパーじゃないかの区別は,それが現実のシステムとして実現できるかできないかの区別に対応しているので,「きちんとした」伝達関数と解釈してもそれほど悪くはない.

やる夫
あ,そういうものなのかお.

やらない夫
ま,それは後で話すとして,ともかくこの用語を使ってこれまでの話をまとめると,有理式で表される任意の伝達関数は,多項式と厳密にプロパーな有理式の和に分解できる.で,多項式の方は,微分とか定数倍の組み合わせで理解できるので,残りの厳密にプロパーな部分について考えていこうということだな.


A.2 特性方程式が重解を持つ場合

やる夫
厳密にプロパーな部分は,必ず部分分数展開できて,つまり並列分解できるわけだお.えーと,じゃあ特性方程式が重解を持つ場合を除外したのはどういうことなんだお?

やらない夫
まず,重解を持つような場合の部分分数展開はどうなるか覚えているか? 例えば,

  $\displaystyle \frac{R(s)}{(s + 1)(s + 2)^2}$ (A.2)

$ R(s)$ の次数が 2 以下の場合に,$ H(s)$ はどう分解できるか?

やる夫
えーと?

  $\displaystyle \frac{a}{s + 1} + \frac{b}{s + 2} + \frac{c}{s + 2}$ (A.3)

とかじゃダメだったかお?

やらない夫

典型的な間違いだな.だいたい,仮にそうだとすると,2つめと3つめの項は $ (b + c)/(s + 2)$ にまとめられてしまうだろ.

やる夫
あ,そうか,えーと,あ,思い出したお.

  $\displaystyle \frac{a}{s + 1} + \frac{b}{(s + 2)^2} + \frac{c}{s + 2}$ (A.4)

みたいになるんだったお.そうそう,これも高校で習ったはずだお.

やらない夫
そうだな.一般に,分母が $ (s + \alpha)^p$ を因数として持つ場合は,部分分数として

  $\displaystyle \frac{w_1}{(s + \alpha)^p} + \frac{w_2}{(s + \alpha)^{p-1}} + \cdots + \frac{w_{p-1}}{(s + \alpha)^2} + \frac{w_p}{s + \alpha}$ (A.5)

が現れるんだった.

もしも式 (A.3) みたいに分解できるんだったら,本編と全く同じように並列分解して考えることができたわけだが,残念ながらもう少し話は複雑になる.

やる夫
だから避けて通ったわけかお.

やらない夫
そういうことだな.というわけで,改めて立ち向かうことにしよう.伝達関数として

$\displaystyle H(s)$ $\displaystyle = \frac{R(s)}{(s - \lambda_1)^p (s - \lambda_{p + 1}) \cdots (s - \lambda_{N})}$ (A.6)

を考えよう.分母は $ N$ 次で,分子は $ N-1$ 次以下だ. $ \lambda_1$$ p$ 重解で,残りの $ N - p$ 個の解を $ \lambda_{p+1}, \cdots \lambda_N$ と書くことにしておこう. $ \lambda_1$ $ \lambda_{p+1}, \cdots \lambda_N$ は相異なるってことだ.

やる夫
えーと,重解は $ \lambda_1$ だけってことかお? 重解が複数ある場合はこれでは表現できないお.

やらない夫
そうなんだが,重解が複数ある場合も実は全く同じように考えられる.式を簡単にするために,重解が 1 個の場合に限って見ていこうってことだ.このとき部分分数展開は

$\displaystyle H(s)$ $\displaystyle = \left\{ \frac{w_1}{(s - \lambda_1)^p} + \frac{w_2}{(s - \lambda...
...c{w_{p+1}}{s - \lambda_{p+1}} + \cdots + \frac{w_{N}}{s - \lambda_{N}} \right\}$ (A.7)

となる.

やる夫
$ p+1$ 項めより後ろは,本編でやったのと同じく $ 1/(s + \lambda_i)$ への並列分解だお.問題は前半だお…

やらない夫
前半も $ 1/(s + \lambda_1)$ が重要な構成要素になる. $ 1/(s + \lambda_1)^p$ ってのは $ 1/(s + \lambda_1)$$ p$ 個直列につなげば作れるわけだからな.そう理解すると,システムの入出力関係 $ Y(s) = H(s) X(s)$ はこんなブロック図の形に分解できることがわかる.


\includegraphics[scale=0.5]{fig_parfrac/tf_multi_roots.eps}

やる夫
えーと,なるほど $ 1/(s + \lambda_1)$ を必要な数だけつなぐことで $ 1/(s + \lambda_1)^2$ とか $ 1/(s + \lambda_1)^p$ とかを作っているわけだお.…んー,途中にちょいちょい出てくる $ Z_1$ とかってなんだお?

やらない夫
ああ,流れの途中の信号に名前をつけてみた.こう書くことで,今のブロック図を数式で表し直してみようと思う. $ Z_1, \cdots, Z_N$ はどう書ける?

やる夫
んー? まあブロック図の通り素直に書いてみることにしますお.まず $ Z_1$ から $ Z_p$ までは

$\displaystyle Z_{1}(s)$ $\displaystyle = \frac{1}{s - \lambda_1} Z_{2}(s)$ (A.8)
$\displaystyle Z_{2}(s)$ $\displaystyle = \frac{1}{s - \lambda_1} Z_{3}(s)$ (A.9)
  $\displaystyle \vdots$    
$\displaystyle Z_{p-1}(s)$ $\displaystyle = \frac{1}{s - \lambda_1} Z_p(s)$ (A.10)
$\displaystyle Z_p(s)$ $\displaystyle = \frac{1}{s - \lambda_1} X(s)$ (A.11)

になるお.で,$ Z_{p+1}$ 以降は普通の並列分解なので,

$\displaystyle Z_{p+1}(s)$ $\displaystyle = \frac{1}{s - \lambda_{p+1}} X(s)$ (A.12)
$\displaystyle Z_{p+2}(s)$ $\displaystyle = \frac{1}{s - \lambda_{p+2}} X(s)$ (A.13)
  $\displaystyle \vdots$    
$\displaystyle Z_{N}(s)$ $\displaystyle = \frac{1}{s - \lambda_N} X(s)$ (A.14)

こんな感じになるかお.

やらない夫
そうなるな.そして出力 $ Y(s)$ はこれら $ Z_1, \cdots, Z_N$ を使って

$\displaystyle Y(s)$ $\displaystyle = \sum_{i=1}^{N} w_i Z_i(s)$ (A.15)

と表せるわけだ.

A.3 状態空間表現

やる夫
ふーん,まあ重解の場合でも $ 1/(s - \lambda)$ の組み合わせに分解できることはわかったお.でも,構造が複雑過ぎてあまりピンとこないお.

やらない夫
そうか,じゃあもうちょっと話を進めて,これが実はどこかで見たことのある構造だということを示してみようか.

やる夫
え,そのもったいぶった話の振り方は何だお.

やらない夫
今の $ Y(s)$$ Z_i(s)$ の式を,時間領域で表してみてくれ.

やる夫
時間領域? あー,まあ個々の式は $ 1/(s - \lambda)$ をかけているだけだから, $ Y(s) = \frac{1}{s - \lambda} X(s)$ $ \dot{y}(t) = \lambda y(t) +
x(t)$対応する関係を実直に当てはめていけばいいんだお.

$\displaystyle \dot{z}_1(t)$ $\displaystyle = \lambda_1 z_1(t) + z_2(t)$ (A.16)
$\displaystyle \dot{z}_2(t)$ $\displaystyle = \lambda_1 z_2(t) + z_3(t)$ (A.17)
  $\displaystyle \vdots$    
$\displaystyle \dot{z}_{p-1}(t)$ $\displaystyle = \lambda_1 z_{p-1}(t) + z_p(t)$ (A.18)
$\displaystyle \dot{z}_p(t)$ $\displaystyle = \lambda_1 z_p(t) + x(t)$ (A.19)
$\displaystyle \dot{z}_{p+1}(t)$ $\displaystyle = \lambda_{p+1} z_{p+1}(t) + x(t)$ (A.20)
$\displaystyle \dot{z}_{p+2}(t)$ $\displaystyle = \lambda_{p+2} z_{p+2}(t) + x(t)$ (A.21)
  $\displaystyle \vdots$    
$\displaystyle \dot{z}_{N}(t)$ $\displaystyle = \lambda_{N} z_{N}(t) + x(t)$ (A.22)
$\displaystyle y(t)$ $\displaystyle = \sum_{i=1}^{N} w_i z_i(t)$ (A.23)

になるかお.

やらない夫
いいだろう.さて,これを行列を使って表してみよう. $ (z_1, z_2, \cdots, z_N)^\textnormal{T}$ というベクトルをまとめて扱うということだ.するとこうなる.

$\displaystyle \left(\begin{array}{c} \dot{z}_1  \dot{z}_2  \vdots  \dot{z...
...ine \dot{z}_{p+1}  \dot{z}_{p+2}  \vdots  \dot{z}_N  \end{array}\right)$ $\displaystyle = \left(\begin{array}{ccccc\vert cccc} \lambda_1 & 1 & 0 & \cdots...
... 0  \vdots  0  1  \hline 1  1  \vdots  1  \end{array}\right) x$ (A.24)
$\displaystyle y$ $\displaystyle = \begin{pmatrix}w_1 & w_2 & \cdots & w_N \end{pmatrix} \begin{pmatrix}z_1  z_2  \vdots  z_N  \end{pmatrix}$ (A.25)

この行列の部分の形は見たことないか?

やる夫
えっ,…あー,ジョルダン標準形かお!

やらない夫
今の話で導入したような $ z_1, \cdots, z_N$ を状態変数と呼ぶ.入力と出力の他に,システムの内部状態を表す変数を考えていることになる.入力 $ x$ から出力 $ y$ がいきなり計算されるのではなくて,いったん状態変数に反映されて,それが出力に反映されると考えるんだな. $ (z_1, \cdots, z_N)^\textnormal{T}$ に関する微分方程式を状態方程式,状態から出力 $ y$ を計算する代数方程式を出力方程式と呼ぶ.状態変数ベクトルが構成する線形空間を考えていることになるので,状態空間表現と呼んだりする.

やる夫
あー,制御工学の授業で習ったやつだお.それにしても,線形代数を習ってたときはジョルダン標準形なんて面倒くさいもの何の役に立つんだと思ってたけど,こんなところで出てくるとは驚きだお.

やらない夫
いや,制御工学を習ってるなら一度は聞いているはずなんだが…

まあともかく,伝達関数を部分分数展開するという操作が,状態空間表現では何に対応しているかが見えたんじゃないかと思う.特性方程式に重解がない場合は,さっきの状態方程式の $ z_{p+1}$ 以降のように,全体が対角化される.そうやってシステムを対角化しようとするのが部分分数展開だということだ.ただし重解があると対角化はできなくて,ジョルダン標準形で我慢することになる.

やる夫
んー,確か線形代数で,固有値が全部違えば必ず対角化できて…みたいな話があったと思うお.その話かお?

やらない夫
まさにその話だ.対角行列とかジョルダン標準形の行列の対角要素に並んでいるのは固有値だ.つまり,伝達関数の極 $ \lambda_1, \cdots, \lambda_N$ ってのはこのシステムの挙動を時間領域で表す行列の固有値であって,すべての固有値が相異なれば対角化できるけど,重複するものがあればその限りではない.

やる夫
そっか,つまり伝達関数から状態空間表現を得るための方法が部分分数展開だってことかお?

やらない夫
うーん,それはちょっと違うな.別に状態方程式が欲しくないときでも,例えば単に逆ラプラス変換したいときだって部分分数展開は便利だろう.逆に,仮に状態空間表現を作りたい場合でも,その表現方法は他にもいくらでもあり得る.

一般に,状態方程式と出力方程式の組としては,入力・出力が多次元の場合も含めて

$\displaystyle \dot{\bm{z}}$ $\displaystyle = A\bm{z} + B\bm{x}$ (A.26)
$\displaystyle \bm{y}$ $\displaystyle = C\bm{z} + D\bm{x}$ (A.27)

という形のものを考える.$ \bm{x}$ とか $ \bm{y}$ とか $ \bm{z}$ が太字なのはベクトルであるという意味だ. $ A, B, C, D$ は行列になる.部分分数展開によって,こういう表現の一つが得られるってことだな.

やる夫
んー,他の表現もあるってことかお?

やらない夫
というか,無数にあるんだよ.伝達関数ってのは入力と出力の関係を規定しているだけなので,状態変数の取り方は自由だ.適当な座標変換行列 $ P$ を使って, $ \bm{z} = P\bm{z}'$ を満たすような新しい状態変数 $ \bm{z}'$ を定めたとすると,さっきの表現に代入して

$\displaystyle P \dot{\bm{z}'}$ $\displaystyle = A P \bm{z'} + B\bm{x}$ (A.28)
$\displaystyle \bm{y}$ $\displaystyle = C P \bm{z}' + D\bm{x}$ (A.29)

になる.状態方程式の両辺に左から $ P^{-1}$ をかけると

$\displaystyle \dot{\bm{z}'}$ $\displaystyle = (P^{-1} A P) \bm{z'} + (P^{-1} B)\bm{x}$ (A.30)
$\displaystyle \bm{y}$ $\displaystyle = (C P) \bm{z}' + D\bm{x}$ (A.31)

になる.改めて $ A' = P^{-1} A P$ $ B' = P^{-1} B$$ C' = C P$ と置くと

$\displaystyle \dot{\bm{z}'}$ $\displaystyle = A'\bm{z}' + B'\bm{x}$ (A.32)
$\displaystyle \bm{y}$ $\displaystyle = C'\bm{z}' + D\bm{x}$ (A.33)

という新しい状態方程式・出力方程式の組が作れる.これだって,$ \bm{x}$$ \bm{y}$ の入出力関係は元の状態方程式・出力方程式の組と全く同じだ.

やる夫
んー,ああ,新しい変数 $ \bm{z}'$ に変わったのは $ \bm{z}$ だけで, $ \bm{x}$ とか $ \bm{y}$ は元のままだから,入出力関係としては同じものを表しているわけだお.

やらない夫
こうやって変換するときに,$ A'$ がうまいこと対角とかジョルダン標準形になるように $ P$ を選んだ結果が,さっきまでやってきた部分分数展開で得られる形式と一致する.

やる夫
そっか…,えっと,じゃあ逆に,何か適当な状態空間表現が与えられたときに,それを伝達関数表現に変えたいときには,対角形なりジョルダン標準形に座標変換してから,部分分数展開形の伝達関数に対応させるのがよいってことかお?

やらない夫
いや,伝達関数が欲しいだけなら別に対角化しなくてもいいぞ.1 入力 1 出力の状態空間表現

$\displaystyle \dot{\bm{z}}$ $\displaystyle = A \bm{z} + \bm{b} x$ (A.34)
$\displaystyle y$ $\displaystyle = \bm{c}^\textnormal{T}\bm{z}$ (A.35)

が与えられたとしよう.このうち状態方程式の方をラプラス変換すると,

$\displaystyle s \bm{Z}(s)$ $\displaystyle = A \bm{Z}(s) + \bm{b} X(s)$ (A.36)

になる.ただし,$ \bm{Z}(s)$$ \bm{z}(t)$ の各要素のラプラス変換を並べたベクトルだ.$ \bm{z}(t)$ の初期値は $ \bm{0}$ だとしている.

やる夫
んー,ああ,ベクトルだからちょっと戸惑うけど,各要素のラプラス変換を普通に考えていけば確かにそうなるお.

やらない夫
これを $ \bm{Z}(s)$ について整理すると

$\displaystyle \bm{Z}(s)$ $\displaystyle = (s I - A)^{-1} \bm{b} X(s)$ (A.37)

になる.ただし $ I$ は単位行列だ.出力方程式をラプラス変換したものにこれを代入すればいい.

やる夫
えーと, $ Y(s) = \bm{c}^\textnormal{T}\bm{Z}(s)$ に代入するってことだお.つまり

$\displaystyle Y(s)$ $\displaystyle = \bm{c}^\textnormal{T}(s I - A)^{-1} \bm{b} X(s)$ (A.38)

になるかお.

やらない夫
そうだな.これで伝達関数が $ \bm{c}^\textnormal{T}(s I - A)^{-1} \bm{b}$ として得られたことになる.

やる夫
ん? えーと,これはベクトルなのかお? 行列なのかお? 伝達関数ってそんなものだったかお?

やらない夫
いや,もっと落ち着いて見てくれ. $ (s I - A)^{-1} \bm{b}$ の部分は,縦ベクトルに行列を左からかけているので縦ベクトルだ.それに左から横ベクトル $ \bm{c}^\textnormal{T}$ をかけていて,これは要は内積なので,スカラだ.結局伝達関数はスカラになっている.変数 $ s$ が含まれているので,おなじみの「$ s$ の関数」の形だ.

やる夫
あー,そうか,見慣れないので焦ったお.

やらない夫
で,$ A$ が対角行列になっているとしよう.$ i$$ i$ 列の対角要素を $ \lambda_i$ と書くとする.もちろん $ sI - A$ も対角行列だ.その逆行列は,対角要素 $ s - \lambda_i$ をそれぞれ逆数 $ 1/(s - \lambda_i)$ にしたものだ. $ \bm{b} = (1, 1, \cdots, 1)^\textnormal{T}$ にかけると $ \left(1/(s - \lambda_1), \cdots, 1/(s - \lambda_N)\right)^\textnormal{T}$ というベクトルになる.これに左から $ \bm{c}^\textnormal{T}= (w_1, \cdots, w_N)$ をかけると,本編でやった部分分数展開形になるわけだ.

やる夫
うーん,線形代数も勉強し直す必要がありそうだお.

やらない夫
そう思うきっかけになったなら素晴らしいことだ.


A.4 伝達関数のプロパー性と実現可能性

やる夫
んー,出力方程式は一般に $ \bm{y} = C\bm{z} + D\bm{x}$ だって言ってたけど,さっきの例では $ D\bm{x}$ なんて使わなかったお.座標変換行列 $ P$ をいろいろ変えてもここは変わらないから,結局この部分は要らないんじゃないかお?

やらない夫
$ D$ が零行列になっているってことだな.そこのところは,最初の方に話したプロパーとか厳密にプロパーという概念と関係してくる.ちょっと振り返ってみよう.我々は,$ s$ の有理式で表される伝達関数を,まず厳密にプロパーな部分とそれ以外の部分に分けて,前者だけを考えることにしたんだった.

やる夫
厳密にプロパーな部分以外があるときは,これまで考えてきたようなシステムに,入力の定数倍とか,何階かの微分を出力するシステムを並列に結合したものになるんだったお.

やらない夫
式で書くと

$\displaystyle H(s)$ $\displaystyle = P(s) + \frac{R(s)}{Q(s)}$ (A.39)
  $\displaystyle = \sum_{k=0}^{M - N} d_k s^k + \frac{R(s)}{Q(s)}$ (A.40)

という形になる.

やる夫
えーと,$ P(s)$ $ \sum_{k=0}^{M - N} d_k s^k$ と書き直しただけだお. $ P(s)$ の次数は $ M$$ N$ の差だったから,確かにそうなるお.

やらない夫
$ H(s)$ が元々厳密にプロパーだったとしたら,$ P(s)$ の部分は存在しない.このとき出力方程式に $ D\bm{x}$ の項が出てこないのは今まで見てきた通りだ.

厳密にプロパーではないがプロパーな伝達関数,つまり $ M - N = 0$ の場合は, $ P(s) = d_0$ だけになる.入力の定数倍を出力に加えているわけだから,出力方程式が

$\displaystyle y$ $\displaystyle = C\bm{z} + d_0 x$ (A.41)

になる.$ D\bm{x}$ の項が出てくることになる.このように $ D\bm{x}$ は 入力を直接出力に伝える項なので,直達項と呼ぶ場合がある.

やる夫
なるほど,今までは厳密にプロパーな伝達関数だけを考えていたから直達項がなかったわけだお.…あれ? じゃあ,厳密にプロパーどころか,プロパーですらない伝達関数の場合はどうするのかお? さっきの状態方程式・出力方程式の枠組みじゃ,$ \bm{x}$ の微分なんて $ \bm{y}$ に加えられないお.

やらない夫
その通り.非プロパーな伝達関数は,状態方程式で表現することができない.制御工学の用語で言い直しておこう.ある伝達関数で表されたシステムの状態空間表現を作ることを「実現する」と呼ぶ.この意味で,非プロパーな伝達関数は「実現不可能」であるということだ.

やる夫
えー,何か変な用語だお.だって入力を微分して出力に足すだけなんだから簡単だお.それを実現不可能だなんて,意図がよくわからんお.

やらない夫
うん,ここはなかなか微妙な話ではあるんだが,その背景にある考えは,少なくとも実時間で動作する物理的な系において,「純粋な微分」は現実に作り得ないということなんだ.仮に入力の純粋な微分を出力するシステムがあったとすると,それは単位ステップ入力に対してデルタ関数を出力しなくてはならない.そんなものは現実にはあり得ないだろう.

やる夫
うーん,ええと,じゃあ例えば,電気回路でキャパシタの両端にかける電圧を入力だとして,そのときに流れる電流の量を出力だと考えたら,それは純粋な微分回路にならないかお? 物理的に存在するお!

やらない夫
では聞くが,寄生抵抗も寄生インダクタンスも全くない純粋なキャパシタなんて物理的に存在すると思うか?

やる夫
あ,そうか,うーん,だったら,世の中にある速度計とかそういう計器類はどうやって作られてるんだお? あるいは,PID 制御みたいに微分値をフィードバックする制御を習った記憶があるけど,ああいうのはどうするんだお.

やらない夫
まあいろいろ作り方はあるが,最近はディジタル方式が多いだろうな.時間微分じゃなくて時間差分で近似しているわけだ.純粋にアナログ方式で作る場合も,例えば

$\displaystyle G(s)$ $\displaystyle = \frac{Ks}{s + K} = \frac{s}{s/K + 1}$ (A.42)

なんてのが微分の近似としてよく使われる.定数 $ K$ を十分に大きくすると $ G(s)$$ s$ に近づく.これは厳密にプロパーではないけど,プロパーなので実現可能だ.

やる夫
うーん,納得いくような,いかないような,変な気分だお.

やらない夫
ああ,「微妙な話」っていったのはそういうことだ.だから,微分が本当に物理的に作れるかどうかという方向で考え込むんじゃなく,「状態空間表現を作ること」を「実現」と呼ぶと約束されていて,その意味で,非プロパーな伝達関数は「実現不可能」と考える.そしてその約束の背景には,今考えたような「純粋な微分」を作ることの難しさがあると理解しておくのが良いんじゃないかと思う.

A.5 $ 1/(s - \lambda )^p$ の逆ラプラス変換

やらない夫
さて,これまでの話を踏まえて, $ 1/(s - \lambda )^p$ の逆ラプラス変換を求めよう.

やる夫
えーと,どういう流れでそういう話になるのかお?

やらない夫
おいおい,忘れたのか.特性方程式に重解がない場合は,伝達関数は $ 1/(s - \lambda_i)$ の足し合わせに並列分解できて,分解されたそれぞれは逆ラプラス変換で指数関数になるんだった.だから $ \lambda_i$ の実部によって安定とか不安定とかの判断ができる.一方,重解がある場合は $ 1/(s - \lambda_i)^p$ みたいな項が出てくる.これを逆ラプラス変換したときに,指数関数の代わりに何になるのかに興味があるわけだ.

やる夫
あー,そうか,何か途中で状態空間とかプロパーとかいっぱい出てきたので話を見失ってたお.

やらない夫
さっきのブロック図$ X(s)$ から $ Z_1(s)$ までの伝達関数が $ 1/(s -
\lambda_1)^p$ だ.その逆ラプラス変換,つまりこの部分のインパルス応答がどうなるかを考える.添え字はもう邪魔なので以降 $ \lambda = \lambda_1$ と書くとして,

$\displaystyle \dot{z}_1$ $\displaystyle = \lambda z_1 + z_2$ (A.43)
$\displaystyle \dot{z}_2$ $\displaystyle = \lambda z_2 + z_3$ (A.44)
  $\displaystyle \vdots$ (A.45)
$\displaystyle \dot{z}_{p-1}$ $\displaystyle = \lambda z_{p-1} + z_p$ (A.46)
$\displaystyle \dot{z}_p$ $\displaystyle = \lambda z_p + x$ (A.47)

を考えるということだな.一番下の式の $ x$ に単位インパルスを入れたときに,$ z_p$ がどう応答して,それによって下から2番目の $ z_{p-1}$ がどう応答して,と連鎖的に見ていって,最後に $ z_1$ がどう応答するかを見れば, $ 1/(s -
\lambda_1)^p$ に対応するインパルス応答を見たことになる.

やる夫
なかなか大変そうだお.

やらない夫
まあ $ p$ 本全部計算しなくても,途中で規則性が見えれば OK だ.$ X(s)$ から $ X_p(z)$ までの伝達関数が $ 1/(s - \lambda)$$ X(s)$ から $ X_{p-1}(s)$ までの伝達関数が $ 1/(s - \lambda)^2$,…という風に順繰りに対応していることにも注意しておこう.

やる夫
できるだけ早く規則性が見つかることを祈るお.

やらない夫
まず,この $ p$ 本のシステムそれぞれは,インパルス応答がいずれも $ e^{\lambda t} u_0(t)$ だってことに注目しよう.入力が違うだけだな.

やる夫
えーと,$ u_0(t)$ ってのは…,ああ,単位ステップ関数を表すんだったお.時刻が負のところを 0 にするんだお.

やらない夫
入力 $ x(t)$ として単位インパルスを入れた場合の出力を下から順番に見ていこう.まず $ z_p$ はどうなる?

やる夫
え,いや,インパルス応答が $ e^{\lambda t} u_0(t)$ のシステムに単位インパルスを入れたんだから,そのまんま $ z_p(t) = e^{\lambda t} u_0(t)$ だお.

やらない夫
ああ,当たり前だな.じゃあ次,$ z_{p-1}$ はどうなるか.

やる夫
んー,入力が $ z_p$ なわけだから,インパルス応答 $ e^{\lambda t} u_0(t)$ $ z_p = e^{\lambda t} u_0(t)$ にたたみこむんだお.

$\displaystyle z_{p-1}$ $\displaystyle = (e^{\lambda t}u_0(t)) * (e^{\lambda t}u_0(t))$ (A.48)
  $\displaystyle = \int_{-\infty}^\infty (e^{\lambda (t - \tau)}u_0(t - \tau)) (e^{\lambda \tau}u_0(\tau)) \textnormal{d}\tau$ (A.49)

うー,面倒くさそうだお.

やらない夫
そうでもないぞ.まず $ u_0(t - \tau)$ ってのは $ t - \tau < 0$ で 0 になる.つまり $ \tau > t$ で 0 になるわけだから,積分範囲の上端を $ t$ までにするはたらきをする.


\includegraphics[scale=0.5]{fig_parfrac/u_t_min_tau.eps}

やる夫
あ,そうか,同じように $ u_0(\tau)$$ \tau < 0$ で 0 だから,積分範囲の下端を 0 にする役目をするんだお.


\includegraphics[scale=0.5]{fig_parfrac/u_tau.eps}

つまり

$\displaystyle z_{p-1}$ $\displaystyle = \int_0^t e^{\lambda (t - \tau)} e^{\lambda \tau} \textnormal{d}\tau$ (A.50)

を計算すればいいのかお?

やらない夫
ほとんどそれで正解だが,$ t < 0$ のときのことも考えておく必要がある. $ t < 0$ では $ u_0(\tau) u_0(t - \tau)$ があらゆる $ \tau$ に対して 0 なので,積分結果は常に 0 だ.


\includegraphics[scale=0.5]{fig_parfrac/u_t_min_tau_u_tau.eps}

だから「積分範囲を 0 から $ t$ までにすればいい」というのは $ t < 0$ のときは通用しなくて,$ t < 0$ の範囲では常に 0 になるようにしなくちゃならない.というわけで,単位ステップ $ u_0(t)$ をかけて

$\displaystyle z_{p-1}$ $\displaystyle = u_0(t) \int_0^t e^{\lambda (t - \tau)} e^{\lambda \tau} \textnormal{d}\tau$ (A.51)

とするのが正しい.

やる夫
じゃ,続きを計算して

$\displaystyle z_{p-1}$ $\displaystyle = u_0(t) \int_0^t e^{\lambda t} \textnormal{d}\tau$ (A.52)
  $\displaystyle = u_0(t) e^{\lambda t} \int_0^t \textnormal{d}\tau$ (A.53)
  $\displaystyle = t e^{\lambda t} u_0(t)$ (A.54)

になるかお.

やらない夫
そうだな.それが $ 1/(s - \lambda)^2$ の逆ラプラス変換だ.じゃあ次に $ z_{p-2}$ は?

やる夫
うー,先は長いけど,まあやることは同じだお. $ z_{p-1} = t e^{\lambda
t} u_0(t)$ が入力だから,

$\displaystyle z_{p-2}$ $\displaystyle = u_0(t) \int_0^t e^{\lambda (t - \tau)} t e^{\lambda \tau} \textnormal{d}\tau$ (A.55)
  $\displaystyle = u_0(t) e^{\lambda t} \int_0^t t \textnormal{d}\tau$ (A.56)
  $\displaystyle = \frac{t^2}{2} e^{\lambda t} u_0(t)$ (A.57)

やらない夫
だな.同じように

$\displaystyle z_{p-3}$ $\displaystyle = u_0(t) \int_0^t e^{\lambda (t - \tau)} \frac{t^2}{2} e^{\lambda \tau} \textnormal{d}\tau$ (A.58)
  $\displaystyle = u_0(t) e^{\lambda t} \int_0^t \frac{t^2}{2} \textnormal{d}\tau$ (A.59)
  $\displaystyle = \frac{t^3}{2\cdot 3} e^{\lambda t} u_0(t)$ (A.60)

になる.そろそろ規則性が見えてきたんじゃないか?

やる夫
ああ,そうか,入力に $ t^n$ がかかっているときには,それを積分することになるから $ 1/(n+1)$ が前に出るとともに次数が増えて $ t^{n+1}$ になるんだお.結局,$ p$ 本目は

$\displaystyle z_1$ $\displaystyle = \frac{t^{p-1}}{(p-1)!} e^{\lambda t} u_0(t)$ (A.61)

になるんじゃないかお.

やらない夫
正解だ.というわけで,晴れて ラプラス変換表に 1 行つけ加えることにしよう.

時間領域 s領域
$ \displaystyle \frac{t^{p-1}}{(p-1)!} e^{at} u_0(t)$ $ \displaystyle \frac{1}{(s - a)^p}$

やる夫
特性方程式に重解があると,システムは指数関数への並列分解だけじゃ済まなくて,指数関数に $ t$ の累乗をかけたものも出てくるってことだお.

やらない夫
そう,そして,高々 $ t$ の累乗がかかるだけだってのが重要な点だ.

やる夫
ん? どういうことだお?

やらない夫
システムの安定性は,伝達関数の極を見ればわかるんだったな.それは,重解がない場合はインパルス応答が常に指数関数に分解できて,極 $ \lambda$ に対応して $ e^{\lambda t}$ という応答が現れるためだった. $ \lambda$ の実部が負なら $ e^{\lambda t}$ は 0 に収束するからな.重解の場合は,指数関数に $ t$ の累乗がかかった応答が出てくるが, $ t \rightarrow \infty$ にすると $ t$ の累乗より指数関数の方が圧倒的に強く効いてくるので,結果として収束するかしないかには影響がない.

やる夫
ああ,だから,特性方程式に重解があるかどうかに関わらず,極を見るだけで安定とか不安定とか判断してよいわけだお.

やらない夫
そういうことだな.伝達関数が厳密にプロパーじゃない場合も含めて整理しよう.


A.6 離散時間伝達関数のプロパー性

やらない夫
z 変換の場合も, 条件つきで議論していたのを覚えているだろう.

やる夫
確か,$ z^{-1}$ についての有理式と見て,分子より分母の方が次数が大きいことと,分母 = 0 が重解を持たないことを前提にしたんだったお.そうすると, $ 1/(1 - \alpha_i z^{-1})$ に並列分解できるんだったお.

やらない夫
そう,まず,次数についての条件がないと部分分数展開できないからな.

やる夫
でも,やっぱりラプラス変換のときと同じく,実際の問題では,分母の方が次数が大きいか,あるいはせいぜい分子と分母の次数が等しいことがほとんどだったりするんだお?

やらない夫
いや,それは大きな勘違いだ.離散時間システムの伝達関数ってのは

$\displaystyle H(z)$ $\displaystyle = \frac{\sum_{k = 0}^{M} b_k z^{-k}}{\sum_{k = 0}^{N} a_k z^{-k}}$ (14.39)

だったな.これは線形差分方程式

$\displaystyle \sum_{k = 0}^{N} a_k y[n - k]$ $\displaystyle = \sum_{k = 0}^{M} b_k x[n - k]$ (12.15)

から導出されるんだった.$ M$$ N$ はどういう意味だった?

やる夫
えーと,$ M$ ってのは何時刻前までの入力を使うか,$ N$ は何時刻前までの出力を使うかなわけだお.そっか,別に $ M > N$ でも何もまずいことはなさそうだお.どうもラプラス変換のときとは話が違うお.

やらない夫
そう,だから,$ M > N$ の場合もまともに考慮してやらないといけない.といっても,考え方はラプラス変換のときと同じで,分子を分母で割ればいいわけだ.ただし,もちろんあくまで $ z^{-1}$ についての式だと見て処理する.

$\displaystyle H(z)$ $\displaystyle = P(z) + \frac{R(z)}{Q(z)}$ (A.62)

ラプラス変換のときは,$ P(z)$ に相当する部分,つまりあのときは $ P(s)$ だったわけだが,そこが入力の微分を出力に渡すことになって,実問題では基本的にはあり得ないものになったわけだ.今の場合はどうなる?

やらない夫
んー,$ P(z)$ の部分は,例えば $ P(z) = z^{-2} + 2z^{-1} + 3$ みたいな形になるんだお.入力を何時刻か遅らせるのと定数倍を組み合わせるはたらきをするわけだから,特に無理があるようには思えないお.


\includegraphics[scale=0.5]{fig_parfrac/tf_improper_zmin.eps}

やらない夫
そういうことだな.無限大に発散したりとかする心配もない.ラプラス変換の場合に,微分項が実現不可能とされるのとは対照的だ.だから安心して $ P(z)$ はそのまま置いといて,それとは別に $ R(z) / Q(z)$ だけを部分分数展開して考えようということになる.

やる夫
うーん,じゃあ,伝達関数がプロパーだとか非プロパーだとかとかの話は,離散時間システムでは意味がないってことかお?

やらない夫
いや,ちゃんと意味がある.ただし,$ z^{-1}$ の式として見るのではなくて, $ z$ の式として見たときのプロパー性を考えなくてはならない.

やる夫
えっ,あ,そういうものなのかお.えーと,じゃあ $ z$ の負のべきを消すために,$ M$$ N$ のうち大きい方を $ L$ として,$ z^L$$ H(z)$ の分子・分母にかけるお.

$\displaystyle H(z)$ $\displaystyle = \frac{\sum_{k = 0}^{M} b_k z^{L-k}}{\sum_{k = 0}^{N} a_k z^{L-k}}$ (A.63)

あれ? こうすると分子は係数 $ b_0$ の項,分母は $ a_0$ の項が両方とも $ z^L$ で最大次数なので,分子と分母の次数は常に等しくないかお?

やらない夫
$ a_0$$ b_0$ が両方とも 0 じゃないならそうだけどな,一般にはそんなことはない.係数のうち,0 になれないのは分母の $ a_0$ だ.ここは差分方程式の $ y[n]
= \cdots$ のところが由来なので,無くせないからな.その他の係数は別に 0 でもいい.もちろん $ b_0$ もだ.

やる夫
ああ,そうか,だから $ b_0 = 0$ のときはこの伝達関数は厳密にプロパー, $ b_0 \neq 0$ のときは厳密にはプロパーじゃないけど,プロパーだということになるお.

やらない夫
元の差分方程式での $ b_0$ の意味を考えてみるといい. $ b_0 \neq 0$ ということは,$ y[n]$ を計算するために,同じ時刻の入力 $ x[n]$ を使うということだ.

やる夫
なるほど,直達項があるということだお.

…ん?ということは $ M$$ N$ がどんな組み合わせだったとしても,必ずプロパーになるということかお?

やらない夫
そういうことだな.そもそも式 (14.39) の伝達関数は,現実に計算できる差分方程式 (12.15) から出てきたものだった.そういうものは全てプロパーになる.

やる夫
うーん,じゃあ逆に,非プロパーな伝達関数ってどんなものになるんだお?

やらない夫
具体的なものを考えてみるのがわかりやすいんじゃないかな.例えば

$\displaystyle H(z)$ $\displaystyle = \frac{4z^2 + 5z + 6}{z + 2}$ (A.64)

なんてのは,分子の方が $ z$ に関する次数が高いので非プロパーだ.これは,差分方程式に戻すとどうなる?

やる夫
えーと,分子・分母を $ z^2$ で割って

$\displaystyle H(z)$ $\displaystyle = \frac{4 + 5z^{-1} + 6z^{-2}}{z^{-1} + z^{-2}}$ (A.65)

で, $ H(z) = Y(z) / X(z)$ だから,

$\displaystyle (z^{-1} + z^{-2}) Y(z)$ $\displaystyle = (4 + 5z^{-1} + 6z^{-2}) X(z)$ (A.66)
$\displaystyle y[n-1] + y[n-2]$ $\displaystyle = 4x[n] + 5x[n-1] + 6x[n-2]$ (A.67)

あれ? $ y[n]
= \cdots$ にできなくなったお.

やらない夫
$ z^2$ で割った結果,分母に定数項がなくなっちゃったからな.分母の定数項が $ y[n]$ に対応する部分なので, $ y[n]
= \cdots$ の形にしたいのなら,それが残るように元の伝達関数の分子・分母を $ z$ で割っておくのがよかった.まあ,時不変なシステムなんだから,今の計算結果のまま $ n$ を 1 時刻進めても同じ答えになるけどな.

やる夫
あ,そうか,じゃあ 1 時刻ずらして,

$\displaystyle y[n]$ $\displaystyle = - y[n-1] + 4x[n+1] + 5x[n] + 6x[n-1]$ (A.68)

という式で $ y[n]$ は計算できることにるお.

やらない夫
本当に何の問題もなく「計算できる」か?

やる夫
ん? あー,$ y[n]$ を計算するのに未来の入力 $ x[n+1]$ が必要だお.因果的じゃないってことだお.

やらない夫
そういうことだ.離散時間の場合は,連続時間の場合の「微分の実現可能性がどうのこうの」という微妙な話とは違って,非プロパーなシステムは因果的にならないというわかりやすい話になっている.


A.7 $ 1/(1 - \alpha z^{-1})^p$ の逆 z 変換

やる夫
なるほど,じゃあ,とりあえず次数の話はこれで解決したお.残りは 分母 = 0 に重解がある場合だけだお.$ \alpha$$ p$ 重解のとき,部分分数展開すると

  $\displaystyle \frac{w_1}{(1 - \alpha z^{-1})^p} + \frac{w_2}{(1 - \alpha z^{-1}...
... \cdots + \frac{w_{p-1}}{(1 - \alpha z^{-1})^2} + \frac{w_p}{1 - \alpha z^{-1}}$ (A.69)

が出てくるわけだお.これもラプラス変換のときと同じく,重複度の数だけ $ 1/(1 - \alpha
z^{-1})$ を直列につなげたものを考えればいいのかお?

やらない夫
そう考えるのが自然だな.時間領域で見ると,

$\displaystyle z_1[n]$ $\displaystyle = \alpha z_1[n-1] + z_2[n]$ (A.70)
$\displaystyle z_2[n]$ $\displaystyle = \alpha z_2[n-1] + z_3[n]$ (A.71)
  $\displaystyle \vdots$ (A.72)
$\displaystyle z_{p-1}[n]$ $\displaystyle = \alpha z_{p-1}[n-1] + z_p[n]$ (A.73)
$\displaystyle z_p[n]$ $\displaystyle = \alpha z_p[n-1] + x[n]$ (A.74)

になる. $ x[n]$ から $ z_1[n]$ に至るシステムのインパルス応答を考えれば, $ 1/(1 - \alpha z^{-1})^p$ の逆 z 変換を得ることができる.これを求めてみよう.

やる夫
ええと,まず $ 1/(1 - \alpha
z^{-1})$ 単独のインパルス応答が $ \alpha^n u_0[n]$ になるのは本編でやった通りだお.連続時間のときと同じように下から順にたたみこんでいくと,まず

$\displaystyle z_{p-1}[n]$ $\displaystyle = (\alpha^n u_0[n]) * z_{p}[n]$ (A.75)
  $\displaystyle = (\alpha^n u_0[n]) * (\alpha^n u_0[n])$ (A.76)
  $\displaystyle = \sum_{m = -\infty}^{\infty}(\alpha^{n-m} u_0[n-m]) (\alpha^m u_0[m])$ (A.77)
  $\displaystyle = u_0[n] \sum_{m = 0}^{n} \alpha^{n-m} \alpha^m$ (A.78)
  $\displaystyle = u_0[n] \alpha^n \sum_{m = 0}^{n} 1$ (A.79)
  $\displaystyle = (n + 1) \alpha^n u_0[n]$ (A.80)

になるお.単位ステップ関数の扱いも連続時間のときと同じだお.

やらない夫
それが $ 1/(1 - \alpha z^{-1})^2$ の逆 z 変換だな.$ z_{p-2}$ はどうだ?

やる夫
同じ流れでガリガリ計算するお.

$\displaystyle z_{p-2}[n]$ $\displaystyle = (\alpha^n u_0[n]) * z_{p-1}[n]$ (A.81)
  $\displaystyle = u_0[n] \sum_{m = 0}^{n} \alpha^{n-m} (m + 1)\alpha^m$ (A.82)
  $\displaystyle = u_0[n] \alpha^n \sum_{m = 0}^{n} (m + 1)$ (A.83)
  $\displaystyle = (\frac{n(n+1)}{2} + n + 1) \alpha^n u_0[n]$ (A.84)
  $\displaystyle = \frac{n^2 + 3n + 2}{2} \alpha^n u_0[n]$ (A.85)
  $\displaystyle = \frac{(n+1)(n+2)}{2} \alpha^n u_0[n]$ (A.86)

これが $ 1/(1 - \alpha z^{-1})^3$ の逆 z 変換になるわけだお.

んー,なんか面倒な感じになったお.この先も続けていけるのかお?

やらない夫
ちょっと面倒なのは確かだな.だが総和の公式

$\displaystyle \sum_{m = 0}^n (m+1)(m+2) \cdots (m+k)$ $\displaystyle = \frac{n(n+1)(n+2) \cdots (n+k)(n+k+1)}{k+1}$ (A.87)

を使うと,

$\displaystyle z_{p-3}[n]$ $\displaystyle = \frac{(n+1)(n+2)(n+3)}{2 \cdot 3} \alpha^n u_0[n]$ (A.88)
  $\displaystyle \vdots$    
$\displaystyle z_{1}[n]$ $\displaystyle = \frac{(n+1)(n+2)\cdots(n+p-1)}{(p-1)!} \alpha^n u_0[n]$ (A.89)

と計算できる.

やる夫
えー,そんな総和の公式初めて見たお.

やらない夫
まあ,この計算ができること自体はそれほど重要じゃない.必要になったときに参考書の変換表を見れば済むことだ.それよりも,特性方程式が重解を持つ場合も,それに対応して出てくる応答は指数関数 $ \alpha^n$ に 高々 $ n$ の多項式をかけたものだってことを理解しておくのが重要だ.

やる夫
高々多項式だから,やっぱり収束・発散には指数関数の部分だけが効いて, $ \vert\alpha\vert < 1$ なら収束するといえるわけだお.

やらない夫
そう,だから重解の有無に関わらず, $ z$ 平面の単位円内にすべての極がある ことを安定条件としてよいってわけだ.

まあ,せっかく作ったから一応 z 変換表に追加しておこう.

時間領域 s領域
$ \displaystyle \frac{(n+1)(n+2)\cdots(n+p-1)}{(p-1)!} \alpha^n u_0[n]$ $ \displaystyle \frac{1}{(1 - \alpha z^{-1})^p}$

swk(at)ic.is.tohoku.ac.jp
2016.01.08