1

伝達関数からの正規状態空間には、制御可能で観測可能な形式があります。ただし、ss2tfMatlab から試すと、別の結果が返されます。Matlab はどのようなアルゴリズムを使用していますか? ドキュメントやオープンソースの実装もありますか?

>> a = [1 0.4 1];
>> b = [1 2 1];
>> [A,B,C,D] = tf2ss(b,a)

A =

   -0.4000   -1.0000
    1.0000         0


B =

     1
     0


C =

    1.6000         0


D =

     1
4

2 に答える 2

2

ss2tf知りたい内部機能を確認しました。基本的に、状態空間システムから極と零点を計算し、伝達関数を形成します。関数ss2zpを使用してこれを行います。極は、状態行列 A の固有値を計算することで簡単に決定できます。ただし、実際には、どのように零点を計算するかはよくわかりません。機能だから。ltipack.sszeroこれは、状態空間システムのゼロを計算します。これは保護されています。ただし、ほとんどの場合、 http://www.mathworks.com/matlabcentral/fileexchange/2199-digital-control/content/sszero.mに似たアルゴリズムを使用します。

http://perso.ulouvain.be/paul.vandooren/publications/MisraVV94で説明されているアルゴリズムを使用するhttps://github.com/ilayn/harold/blob/master/harold/harold.py#L2162も確認できます。 .pdf

于 2016-07-04T13:44:57.047 に答える