Main Content

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

canon

(非推奨) 正準状態空間実現

canon は推奨されません。代わりに modalreal および compreal を使用してください。 (R2023b 以降)コードの更新方法の詳細については、互換性についての考慮事項を参照してください。

説明

csys = canon(sys,type) は、線形モデル sys を正準実現 csys に変換します。type は、csys がモード形式とコンパニオン形式のどちらであるかを指定します。

可制御正準形式および可観測正準形式については、状態空間実現を参照してください。

csys = canon(sys,'modal',condt) は、ブロック対角化変換の条件数に上限 condt を指定します。csys に近接する固有値がある場合は、condt を使用します。

[csys,T]= canon(___) は、状態空間モデル sys の状態を csys の状態に関連付ける状態座標変換行列 T も返します。

すべて折りたたむ

入力がエレベーター偏向角 δ で、出力が航空機ピッチ角 θ である航空機の状態空間モデルがあるとします。

[ α ˙ q ˙ θ ˙ ] = [ - 0 . 3 1 3 5 6 . 7 0 - 0 . 0 1 3 9 - 0 . 4 2 6 0 0 5 6 . 7 0 ] [ α q θ ] + [ 0 . 2 3 2 0 . 0 2 0 3 0 ] [ δ ] y = [ 0 0 1 ] [ α 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 = canon(sys,'companion')
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 の可制御コンパニオン形式です。

出力がカートの変位 x および振子角度 θ である、カート上の倒立振子の状態空間モデルがあるとします。制御入力 u はカート上の水平力です。

[ x ˙ x ¨ θ ˙ θ ¨ ] = [ 0 1 0 0 0 - 0 . 1 3 0 0 0 0 1 0 - 0 . 5 3 0 0 ] [ x x ˙ θ θ ˙ ] + [ 0 2 0 5 ] u y = [ 1 0 0 0 0 0 1 0 ] [ x x ˙ θ θ ˙ ] + [ 0 0 ] u

最初に、状態空間モデル sys をワークスペースに読み込みます。

load('pendulumCartSSModel.mat','sys');

sys をモード形式に変換し、ブロック サイズを抽出します。

[csys,T] = canon(sys,'modal')
msys =
 
  A = 
           x1      x2      x3      x4
   x1       0       0       0       0
   x2       0   -0.05       0       0
   x3       0       0  -5.503       0
   x4       0       0       0   5.453
 
  B = 
          u1
   x1  1.875
   x2  6.298
   x3   12.8
   x4  12.05
 
  C = 
              x1         x2         x3         x4
   y1         16     -4.763  -0.003696   0.003652
   y2          0   0.003969   -0.03663    0.03685
 
  D = 
       u1
   y1   0
   y2   0
 
Continuous-time state-space model.
T = 4×4

    0.0625    1.2500   -0.0000   -0.1250
         0    4.1986    0.0210   -0.4199
         0    0.2285  -13.5873    2.4693
         0   -0.2251   13.6287    2.4995

csyssys のモード正準形式で、T は、syscsys の状態ベクトル間の変換を表します。

入力引数

すべて折りたたむ

動的システム。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) モデルなどの周波数応答データ モデルは使用できません。

変換タイプ。'modal' または 'companion' として指定します。type を指定しない場合、既定では、canon は指定された動的システム モデルをモード正準形式に変換します。

コンパニオン正準形式は、可観測正準形式と同じです。可制御正準形式および可観測正準形式については、状態空間実現を参照してください。

  • モード形式

    モード形式では、A はブロック対角行列です。ブロック サイズは、一般に、実数固有値に対しては 1 行 1 列であり、複素固有値に対しては 2 行 2 列です。ただし、繰り返される固有値または近傍固有値のクラスターが存在する場合、ブロック サイズが大きくなる可能性があります。

    たとえば、固有値 (λ1,σ±jω,λ2) をもつシステムの場合、モード行列 A は次の形式になります。

    Am=[λ10000σω00ωσ0000λ2].

  • コンパニオン形式

    コンパニオン実現では、システムの特性多項式は、行列 A の右端の列に明示的に現れます。次の特性多項式を備えたシステムの場合、

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

    対応するコンパニオン行列 A は、次のとおりです。

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

    コンパニオン変換では、システムが最初の入力から制御可能であることが必要です。コンパニオン形式への変換は、中間範囲の次数ではほとんどの場合に数値的に特異値になる可制御性行列に基づきます。したがって、できれば使用しないでください。

    canon によって返されるコンパニオン実現は "可制御正準形式" と呼ばれることもあります。可観測正準形式および可制御正準形式の詳細については、状態空間実現を参照してください。

ブロック対角化変換の条件数の上限。正のスカラーとして指定します。この引数は、type'modal' に設定されている場合にのみ利用できます。

condt を増やして csys の行列 A で固定値のクラスターのサイズを減らします。condt = Inf を設定することで行列 A を対角化します。

出力引数

すべて折りたたむ

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

変換行列。n 行 n 列の行列として返されます。n は状態の数です。T は、状態空間モデル sys の状態ベクトル x と csys の状態ベクトル xc の間の変換です。

xc = Tx

この引数は、sysss (Control System Toolbox) モデル オブジェクトの場合にのみ利用できます。

制限

  • 周波数応答データ モデルを使用して正準状態空間形式に変換することはできません。

  • 大半の状態空間計算では、コンパニオン形式は条件的に恵まれていません。つまり、コンパニオン形式への変換は、中間範囲の次数ではほとんどの場合、数値的に特異値になる可制御性行列に基づきます。したがって、できれば使用しないでください。

アルゴリズム

canon コマンドは、bdschur (Control System Toolbox) コマンドを使用して sys をモード形式に変換し、変換 T を計算します。sys が状態空間モデルでない場合、canon は最初に ss を使用してそれを状態空間に変換します。

コンパニオン形式への低次元化では、可制御行列[1]に基づいて状態相似変換を使用します。

参照

[1] Kailath, T. Linear Systems, Prentice-Hall, 1980.

バージョン履歴

R2006a より前に導入

すべて展開する

R2023b: 非推奨

canon コマンドは推奨されません。代わりに下表に記載されている機能を使用します。

実現古いコマンド新しいコマンド
モード

sysT = canon(sys,'modal')

sysT = modalreal(sys)

コンパニオン

sysT = canon(sys,'companion')

sysT = compreal(sys)

新しいコマンドの詳細については、modalreal (Control System Toolbox) および compreal (Control System Toolbox) を参照してください。

参考

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

トピック