Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
findAC
離散時間システム部分空間の同定
呼び出し手順
[A,C] = findAC(S,N,L,R,METH,TOL,PRINTW) [A,C,RCND] = findAC(S,N,L,R,METH,TOL,PRINTW)
パラメータ
- S
整数, ブロックハンケル行列のブロック行の数
- N
整数
- L
整数
- R
行列, findrをコールすることにより計算される結合されたブロックハンケル行列 のR因子に関連.
- METH
整数, 使用する手法に関するオプション
- = 1
過去の入力/出力に基づく MOESP 法;
- = 2
N4SID 法;
デフォルト: METH = 3.
- TOL
行列ランクの推定に使用される許容誤差. TOL > 0の場合, TOL に指定した値が 条件数の逆数の下界として使用されます. デフォルト: prod(size(matrix))*epsilon_machine ただし, epsilon_machine は相対機械精度です.
- PRINTW
整数, 警告メッセージの出力に関するスイッチ.
- PRINTW
= 1: 警告メッセージを出力;
- = 0
警告メッセージを出力しない.
デフォルト: PRINTW = 0.
- A
行列, 状態システム行列
- C
行列, 出力システム行列
- RCND
長さ4のベクトル, ランク決定に使用される行列の条件数
説明
部分空間同定法(MOESP または N4SID)を使用して, 離散時間システムのシステム行列 A および C を見つけます. この際, システム次元および結合されたブロックハンケル行列のR因子の関連する部分を 指定します.
[A,C] = findAC(S,N,L,R,METH,TOL,PRINTW) は, システム行列 A および C を計算します. モデル構造は次のようになります: x(k+1) = Ax(k) + Bu(k) + Ke(k), k >= 1, y(k) = Cx(k) + Du(k) + e(k) ただし, x(k) および y(k) はそれぞれ長さ N および L のベクトルです.
[A,C,RCND] = findAC(S,N,L,R,METH,TOL,PRINTW) は長さ4のベクトルRCNDも返します. この中には,ランク決定に使用される行列の条件数が含まれます.
行列 R は, findR により計算され, 適当な引数 METH および JOBD で定義 する必要があります.
例
//指定した線形システムからデータを生成 A = [ 0.5, 0.1,-0.1, 0.2; 0.1, 0, -0.1,-0.1; -0.4,-0.6,-0.7,-0.1; 0.8, 0, -0.6,-0.6]; B = [0.8;0.1;1;-1]; C = [1 2 -1 0]; SYS=syslin(0.1,A,B,C); nsmp=100; U=prbs_a(nsmp,nsmp/5); Y=(flts(U,SYS)+0.3*rand(1,nsmp,'normal')); // Rを計算 S=15;L=1; [R,N,SVAL] = findR(S,Y',U'); N=3; METH=3;TOL=-1; [A,C] = findAC(S,N,L,R,METH,TOL);
参照
Report an issue | ||
<< findABCD | Identification | findBD >> |