Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ss2ss

状態空間モデルの状態座標変換

    説明

    ss2ss は、状態空間モデルの状態ベクトル x に対して相似変換 z = Tx を実行します。詳細については、アルゴリズムを参照してください。

    sysT = ss2ss(sys,T) は、指定された変換行列 T を使用して sys の状態座標変換を実行します。行列 T は可逆でなければなりません。

    すべて折りたたむ

    状態空間モデルの相似変換を実行します。

    ランダムな状態空間モデルと変換行列を生成します。

    rng(0)
    sys = rss(5);  
    t = randn(5);

    変換を実行して、両方のモデルの周波数応答をプロットします。

    tsys = ss2ss(sys,t);
    bode(sys,'b',tsys,'r--')
    legend

    両方のモデルの応答が厳密に一致します。

    ss2ss は、状態変換を、一般化モデルの数値部分の状態ベクトルにのみ適用します。

    genss モデルを作成します。

    sys = rss(2,2,2) * tunableSS('a',2,2,3) + tunableGain('b',2,3)
    Generalized continuous-time state-space model with 2 outputs, 3 inputs, 4 states, and the following blocks:
      a: Tunable 2x3 state-space model, 2 states, 1 occurrences.
      b: Tunable 2x3 gain, 1 occurrences.
    
    Type "ss(sys)" to see the current value and "sys.Blocks" to interact with the blocks.
    

    変換行列を指定して、変換を取得します。

    T = [1 -2;3 5];
    tsys = ss2ss(sys,T)
    Generalized continuous-time state-space model with 2 outputs, 3 inputs, 4 states, and the following blocks:
      a: Tunable 2x3 state-space model, 2 states, 1 occurrences.
      b: Tunable 2x3 gain, 1 occurrences.
    
    Type "ss(tsys)" to see the current value and "tsys.Blocks" to interact with the blocks.
    

    両方のモデルを分解します。

    [H,B,~,~] = getLFTModel(sys);
    [H1,B1,~,~] = getLFTModel(tsys);

    分解された sys からのモデルで個別に変換を取得します。

    H2 = ss2ss(H,T);

    この変換されたモデルを、分解された tsys からのモデルと比較します。

    isequal(H1,H2)
    ans = logical
       1
    
    

    両方のモデルは等価です。

    ファイル icEngine.mat には、サンプリング レート 0.04 秒で収集した 1500 の入力/出力サンプルによる 1 つのデータセットが含まれます。入力 u(t) は、By-Pass Idle Air Valve (BPAV) を制御する電圧 (V) で、出力 y(t) は、エンジン速度 (RPM/100) です。

    icEngine.mat のデータを使用して、同定可能なパラメーターをもつ状態空間モデルを作成します。

    load icEngine.mat
    z = iddata(y,u,0.04);
    sys = n4sid(z,4,'InputDelay',2);

    ランダムな変換行列を指定します。

    T = randn(4);

    変換を取得します。

    sysT = ss2ss(sys,T);

    周波数応答を比較します。

    bode(sys,'b',sysT,'r--')
    legend

    応答は厳密に一致します。

    ss2ss を使用して、複素係数をもつモデルの相似変換も実行できます。

    この例では、複素係数をもつランダムな状態空間モデルを生成します。

    rng(0)
    sys = ss(randn(5)+1i*randn(5),randn(5,3),randn(2,5)+1i*randn(2,5),0,.1);

    複素数データを含む変換行列を指定します。

    T = randn(5)+1i*randn(5);

    変換を取得します。

    sysT = ss2ss(sys,T);

    周波数応答の特異値を比較します。

    sigma(sys,'b',sysT,'r--')
    legend

    応答は両方の分岐で厳密に一致します。

    入力引数

    すべて折りたたむ

    動的システム。SISO または MIMO 動的システム モデルとして指定します。使用できる動的システムには次のようなものがあります。

    • ss (Control System Toolbox)dss (Control System Toolbox) モデルなどの連続時間または離散時間の数値 LTI モデル。

    • genss (Control System Toolbox)uss (Robust Control Toolbox) モデルなどの一般化された、あるいは不確かさをもつ LTI モデル。(不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。)

      このようなモデルでは、状態変換は、モデルの数値部分の状態ベクトルにのみ適用されます。これらのモデルの分解の詳細については、getLFTModel (Control System Toolbox)一般化モデルの内部構造 (Control System Toolbox)を参照してください。

    • 同定された状態空間 idss モデル

    sys が状態空間モデルの配列である場合、ss2ss は変換 T を配列内の各個別モデルに適用します。

    変換行列。nn 列の行列として指定します。n は状態の数です。T は、状態空間モデル sys の状態ベクトルと変換後のモデル sysT の状態ベクトル間の変換です (アルゴリズムを参照)。

    出力引数

    すべて折りたたむ

    変換後の状態空間モデル。sys と同じタイプの動的システム モデルとして返されます。

    アルゴリズム

    ss2ss は、状態空間モデルの状態ベクトル x に対して相似変換 x¯=Tx を実行します。

    各モデル形式について ss2ss で返される変換を次の表にまとめます。

    入力モデル変換後のモデル

    次の形式の陽的な状態空間モデル:

    x˙=Ax+Buy=Cx+Du

    x¯˙=TAT1x¯+TBuy=CT1x¯+Du

    次の形式の記述子 (陰的な) 状態空間モデル:

    Ex˙=Ax+Buy=Cx+Du

    ET1x¯˙=AT1x¯+Buy=CT1x¯+Du

    次の形式の同定された状態空間 (idss) モデル:

    dxdt=Ax+Bu+Key=Cx+Du+e

    x¯˙=TAT1x¯+TBu+TKey=CT1x¯+Du+e

    バージョン履歴

    R2006a より前に導入

    すべて展開する

    参考

    (Control System Toolbox) | (Control System Toolbox) |