計算の信頼性    

伝達関数

項を展開した多項式によって表された伝達関数モデルは、本質的に、条件数の悪いLTIシステムの表現となる傾向があります。10次を越える次数のシステム、あるいは非常に大きいか非常に小さい多項式係数をもつシステムの場合、rootsconvbodestepなどの関数、または、sszpkなどの変換関数では問題が生じる可能性があります。

大きな問題の1つは、多項式の根のその係数に対する敏感な感度です。この例題は、それを示すためにWilkinson[6]から採用しました。つぎの伝達関数について考えます。

これに対応するのコンパニオン実現の行列は、つぎのとおりです。

(-1,-2,...,-20 での)システムの極は見かけは良好ですが、の要素における、より大きな範囲の数値1からに直面します。しかし、問題はここで終わるわけではありません。伝達関数(つまり、)におけるの係数が210から ()まで摂動の影響を受けたと仮定します。その場合、VAX(IEEE算術は、 の場合にのみ十分な仮数をもっています)上で計算すると、摂動の影響を受けた伝達関数(等価的にの固有値)は、つぎのようになります。

ここでの問題は、丸めではありません。むしろ、原点が十分に分離されても、高次の多項式は、本質的に非常に高い感度をもっています。この場合、のオーダの相対的摂動は、根によってはのオーダの摂動を引き起こしています。しかし、根の中には、ほとんど変化していないものもあります。これは一般的な事実です。異なる根は、異なる摂動に対して異なる感度をもっています。従って、不正確な既知の係数をもつ、特に高次の多項式にとって、計算した根がまったく無意味となる場合もあります。

多項式のすべての根(等価的に伝達関数の極または可制御正準型か、可観測正準型行列の固有値)を見つけることは、多くの場合、本質的に微妙な問題です。困難な縮退数値問題など、この問題の明確かつ詳細な取り扱いについては、[6]を参照してください。

従って、できるだけ多項式の因数分解した形式で作業を行うほうが望ましいと言えます。たとえば、上で定義した伝達関数の状態空間モデルを計算するには、つぎのようにの分母を展開し、伝達関数モデルを状態空間モデルに変換し、状態空間データを抽出することができます。

ただし、分母は、因数分解した形のまま保持し、の零点-極-ゲイン表現で計算を実行しなければなりません。

実際、結果として得られる状態行列a2 は、条件数が改善されています。

また、零点-極-ゲインから状態空間型への変換では、極の精度は失われません。

ssを用いて状態空間形式で実現した場合、伝達関数モデルには別の問題が伴います。固有値の分離が適切であっても、条件数の悪い固有ベクトル行列を生じる場合があります。たとえば、つぎの正規行列についてを考えてみます。

これは、つぎの固有ベクトルと固有値をもっています。

固有ベクトル行列の(逆行列に関しての)条件数は、つぎのようになります。

上記のA行列をもつ状態空間モデルを伝達関数形式に変換し、再び状態空間形式に戻します。

新しい A 行列は、つぎのようになります。

Ac は、標準のコンパニオン行列ではなく、ss変換の一部として、すでに平衡化されていることに注意してください(詳細については、 ssbalを参照してください)。

固有ベクトルが変更していることに注意してください。

また、新しい固有ベクトル行列の条件数

は、30倍大きくなります。

上に示した現象は、異常ではありません。(Acのように)コンパニオン形式または可制御正準型か可観測正準型の行列は、概して(A のように)一般の状態空間形式の行列より悪い条件数の固有システムをもっています。これは、それらの固有値や固有ベクトルが摂動の影響をより受け易いことを意味しています。また、高次システムでは問題は一般にはるかに悪化します。従って、高次の伝達関数モデルを取り扱う場合、状態空間との間で、それらの変換、逆変換を繰り返すことは数値的に危険を伴います。

要するに、伝達関数モデルを取り扱う際(従って、多項式を伴う計算を行う際)に留意すべき主な数値問題は、つぎのとおりです。

上記の条件は、明確な極をもつシステムに対しても適用されますが、特に、極が複数の場合にあてはまります。


 状態空間 零点−極−ゲインモデル