このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
modalreal
説明
[___] = modalreal(
は、ブロック サイズを制御し、複素数のペアに関連した 2 行 2 列のブロックを正規化するためのオプションを指定します。sys
,Name=Value
)
例
pendulumCartSSModel.mat
には、出力がカートの変位 および振子角度 である、カート上の倒立振子の状態空間モデルが含まれています。制御入力 u
はカート上の水平力です。
最初に、状態空間モデル sys
をワークスペースに読み込みます。
load('pendulumCartSSModel.mat','sys');
sys
をモード形式に変換し、ブロック サイズを抽出します。
[msys,blks,TL,TR] = modalreal(sys)
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. Model Properties
blks = 4×1
1
1
1
1
TL = 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
TR = 4×4
16.0000 -4.7631 -0.0037 0.0037
0 0.2381 0.0203 0.0199
0 0.0040 -0.0366 0.0369
0 -0.0002 0.2015 0.2009
msys
は sys
のモード実現です。blks
は対角線の下のブロック サイズを表し、TL
および TR
はブロック対角化変換行列を表します。
この例では、二重の極および近傍の極のクラスターをもつ次のシステムについて考えてみます。
このシステムの zpk
モデルを作成し、関数 modalreal
を使用してモード実現を取得します。
sys = zpk([1 -1],[0 -10 -10.0001 1+1i 1-1i 1+1i 1-1i],100); [msys1,blks1] = modalreal(sys); blks1
blks1 = 3×1
1
4
2
msys1.A
ans = 7×7
0 0 0 0 0 0 0
0 1.0000 2.1220 0 0 0 0
0 -0.4713 1.0000 1.5296 0 0 0
0 0 0 1.0000 1.8439 0 0
0 0 0 -0.5423 1.0000 0 0
0 0 0 0 0 -10.0000 4.0571
0 0 0 0 0 0 -10.0001
msys1.B
ans = 7×1
0.1600
-0.0052
0.0201
-0.0975
0.2884
0
4.0095
sys
には s
=
-10
と s
=
-10.0001
に 1 組の極があり、s
=
1+i
と s
=
1-i
に多重度 2 の 2 つの複素数極もあります。その結果、モード形式 msys1
は、s
=
-10
の近傍の 2 極に対するサイズ 2 のブロックがあり、複素固有値に対するサイズ 4 のブロックがある状態空間モデルになります。
これで、ブロック対角化変換の条件数を増やすことで、s
=
-10
の近傍の 2 つの極を分けます。この例では SepTol
を 1e-10
に設定します。
[msys2,blks2] = modalreal(sys,SepTol=1e-10); blks2
blks2 = 4×1
1
4
1
1
msys2.A
ans = 7×7
0 0 0 0 0 0 0
0 1.0000 2.1220 0 0 0 0
0 -0.4713 1.0000 1.5296 0 0 0
0 0 0 1.0000 1.8439 0 0
0 0 0 -0.5423 1.0000 0 0
0 0 0 0 0 -10.0000 0
0 0 0 0 0 0 -10.0001
msys2.B
ans = 7×1
105 ×
0.0000
-0.0000
0.0000
-0.0000
0.0000
1.6267
1.6267
msys2
の行列 A
は、s
=
-10
の近傍の極の独立した対角要素を含みます。条件数を増やすと、B
行列の値が非常に大きくなります。
この例では、複素数のペアの極および近傍の極のクラスターをもつ次のシステムについて考えてみます。
このシステムの zpk
モデルを作成し、関数 modalreal
を使用してモード実現を取得します。
sys = zpk([1 -1],[0 -10 -10.0001 3+4i 3-4i],100); [msys1,blks1] = modalreal(sys); blks1
blks1 = 3×1
1
2
2
msys1.A
ans = 5×5
0 0 0 0 0
0 3.0000 8.7637 0 0
0 -1.8257 3.0000 0 0
0 0 0 -10.0000 8.8001
0 0 0 0 -10.0001
msys1
は、s
=
-10
の近傍の 2 極に対するサイズ 2 のブロックがあり、s
=
3+4i
および s
=
3-4i
における複素数の極のペアがある状態空間モデルになります。
Normalize
オプションを使用して実際の極の値を表示するために 2 行 2 列のブロックの値を正規化できます。また、ブロック対角化変換の相対精度を緩和して、s
=
-10
の近傍のブロックを分離します。
[msys2,blks2] = modalreal(sys,Normalize=true,SepTol=1e-10); blks2
blks2 = 4×1
1
2
1
1
msys2.A
ans = 5×5
0 0 0 0 0
0 3.0000 4.0000 0 0
0 -4.0000 3.0000 0 0
0 0 0 -10.0000 0
0 0 0 0 -10.0001
複素数の極の場合、このオプションは複素数の極 の 2 行 2 列のブロックを に正規化します。
入力引数
動的システム。SISO または MIMO 動的システム モデルとして指定します。使用できる動的システムには次のようなものがあります。
genss
やuss
(Robust Control Toolbox) モデルなどの一般化された、あるいは不確かさをもつ LTI モデル。(不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。)idtf
(System Identification Toolbox)、idss
(System Identification Toolbox)、idproc
(System Identification Toolbox)、idpoly
(System Identification Toolbox)、idgrey
(System Identification Toolbox) モデルなどの、同定された LTI モデル。(同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です。)
frd
モデルなどの周波数応答データ モデルは使用できません。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: [msys,blks] = modalreal(sys,Normalize=true)
ブロック対角化の相対精度。0 ~ 1 のスカラーとして指定します。
このオプションは、ブロック対角化変換の条件数を約 SepTol
/eps
に制限します。SepTol
を増やすと、精度を犠牲にして、得られるブロックを小さくすることができます。
1 行 1 列および 2 行 2 列の対角ブロックを正規化します。logical 0
(false
) または 1
(true
) として指定します。
Normalize
が true
の場合、関数はブロックを正規化して極値を示します。
陽的なモデルでは、関数は複素数のペア a±jb に関連した 2 行 2 列のブロックを に正規化します。
記述子モデルでは、関数は以下のように正規化します。
1 行 1 列のブロックを Aj = a、Ej = 1 に。
2 行 2 列のブロックを Aj = 、Ej = I に。
出力引数
動的モデルのモード状態空間実現。ss
モデル オブジェクトとして返されます。msys
は、A または (A,E) がブロック対角であり、各ブロックが実極、複素数のペア、または繰り返しの極のクラスターに対応している実現です。
ブロック対角実現のブロック サイズ。ベクトルとして返されます。
ブロック対角化変換の左辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで Nx はモデル sys
内の状態の数です。
アルゴリズムはモデルの状態空間実現 (A, B, C, D, E) をブロック対角化行列 (Am, Bm, Cm, Dm, Em) に変換します。これは以下によって与えられます。
陽的な状態空間モデルの場合
記述子状態空間モデルの場合
入力モデル sys
が状態空間モデルでない場合、関数はこの引数に対して空の値 []
を返します。
ブロック対角化変換の右辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで、Nx はモデル sys
内の状態の数です。アルゴリズムはモデルの状態空間実現 (A, B, C, D, E) をブロック対角行列 (Am, Bm, Cm, Dm, Em) に変換します。これは以下によって与えられます。
陽的な状態空間モデルの場合
記述子状態空間モデルの場合
入力モデル sys
が状態空間モデルでない場合、関数はこの引数に対して空の値 []
を返します。
バージョン履歴
R2023b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)