Main Content

compreal

コンパニオン状態空間実現を計算する

R2023b 以降

    説明

    csys = compreal(sys) は、単入力 LTI モデル sys の可制御コンパニオン実現を返します。

    csys = compreal(sys,type) は、type に応じてモデル sys の実現を返します。type は可制御コンパニオン形式の場合は "c"、可観測コンパニオン形式の場合は "o" として指定します。

    • "c" — 単入力 LTI モデル sys の可制御コンパニオン実現を計算します。これは最初の構文と同じです。

    • "o" — 単出力 LTI モデル sys の可観測コンパニオン実現を計算します。

    [csys,T] = compreal(___) は、以下になるように行列 A、B、C をもつ陽的なモデルに対して変換行列 T も返します。

    • 可制御コンパニオン形式が T-1AT、T-1B、CT である。

    • 可観測コンパニオン形式が TAT-1、TB、CT-1 である。

    すべて折りたたむ

    aircraftPitchSSModel.mat には、入力がエレベーター偏向角 δ で、出力が航空機ピッチ角 θ である航空機の状態空間行列が含まれています。

    [α˙q˙θ˙]=[-0.31356.70-0.0139-0.4260056.70][αqθ]+[0.2320.02030][δ]y=[001][αqθ]+[0][δ]

    モデルのデータをワークスペースに読み込み、状態空間モデル sys を作成します。

    load('aircraftPitchSSModel.mat');
    sys = ss(A,B,C,D)
    sys =
     
      A = 
                x1       x2       x3
       x1   -0.313     56.7        0
       x2  -0.0139   -0.426        0
       x3        0     56.7        0
     
      B = 
               u1
       x1   0.232
       x2  0.0203
       x3       0
     
      C = 
           x1  x2  x3
       y1   0   0   1
     
      D = 
           u1
       y1   0
     
    Continuous-time state-space model.
    

    結果の状態空間モデル sys を可制御コンパニオン形式に変換します。

    csys = compreal(sys)
    csys =
     
      A = 
                  x1         x2         x3
       x1          0          0  1.914e-15
       x2          1          0    -0.9215
       x3          0          1     -0.739
     
      B = 
           u1
       x1   1
       x2   0
       x3   0
     
      C = 
                x1       x2       x3
       y1        0    1.151  -0.6732
     
      D = 
           u1
       y1   0
     
    Continuous-time state-space model.
    

    csyssys の可制御コンパニオン形式です。

    ファイル 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);

    同定された状態空間モデル sys を可観測コンパニオン形式に変換します。

    [osys,T] = compreal(sys,"o");

    sys の周波数応答の信頼限界を osys と比較します。

    h = bodeplot(sys,osys,'r.');
    showConfidence(h)

    周波数応答の信頼限界は同一です。

    また、compreal は可観測コンパニオン形式が Ao=TAT-1Bo=TBCo=CT-1 になるように変換行列 T を返します。

    入力引数

    すべて折りたたむ

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

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

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

    • idtfidssidprocidpolyidgrey モデルなどの、同定された LTI モデル。

    frd (Control System Toolbox) モデルなどの周波数応答データ モデルは使用できません。

    コンパニオン実現タイプ。"c" (可制御コンパニオン形式) または "o" (可観測コンパニオン形式) として指定します。

    次の特性多項式を備えたシステムの場合、

    P(s)=sn+αn1sn1+αn2sn2++α1s+α0,

    この関数はコンパニオン形式を以下のように返します。

    • 可制御コンパニオン形式

      可制御コンパニオン実現では、システムの特性多項式は、行列 A の右端の列に明示的に現れます。

      Accom=[01000001000001000001α0α1α2α3  αn1],Bccom=[100].

    • 可観測コンパニオン形式

      可観測コンパニオン実現では、システムの特性多項式は、行列 A の最後の行に明示的に現れます。

      Aocom=[0000α01000α10100α20010α30001αn1],Cocom=[100].

    詳細については、状態空間実現を参照してください。

    出力引数

    すべて折りたたむ

    動的モデルのコンパニオン状態空間形式。ss (Control System Toolbox) モデル オブジェクトとして返されます。csys は、type で指定されたコンパニオン形式 (可制御または可観測) の sys の状態空間実現です。

    変換行列。n 行 n 列の行列として返されます。ここで n は状態の数です。

    • 行列 A、B、C をもつ陽的な状態空間モデルの場合は、関数は以下になるように T を返します。

      • 可制御コンパニオン形式が T-1AT、T-1B、CT である。

      • 可観測コンパニオン形式が TAT-1、TB、CT-1 である。

    • 記述子状態空間モデルの場合は、関数は常に空の値 [] を返します。

    ヒント

    コンパニオン実現の計算には、多くの場合、悪条件の変換および精度の損失が伴います。数値的に安定した代替方法としては、modalreal または balreal を使用してください。

    バージョン履歴

    R2023b で導入

    参考

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

    トピック