0

以下のコードに示すように、sysic コマンドを使用して相互接続されたシステムを作成する場合。

% Random systems for example
scaledPlant=rss(4,4,4);
WControl=rss(4,4,4);
WError=rss(4,4,4);

% actual problem code
systemnames = '  scaledPlant WControl WError'; 
inputvar = '[r(4);  u(4)]'; 
outputvar = '[WControl; WError;r[1]- scaledPlant[1]]';
input_to_scaledPlant = '[u]';
input_to_WError = '[r-scaledPlant]';
input_to_WControl = '[u]';
sysoutname = 'P';
cleanupsysic= 'yes';
sysic

ここで、scaledPlant、WControl、および WError はすべて 4 入力 4 出力モデルです。

次のエラーが表示されます

 Error in ==> sysic>LOCALpass1 at 406  
 err = 0;

 ??? Output argument "arraydata" (and maybe others) not assigned during
 call to "C:\Program Files\MATLAB\R2007b\toolbox\robust\robust\sysic.m
 (LOCALpass1)".

このエラーの原因は何ですか?

4

1 に答える 1

1

これは、シグナル番号を示すために間違った種類の括弧を使用したことが原因です。[角括弧] が使用されていますが、(括弧) を使用する必要があります。正しい使用例については、公式ドキュメントを参照してください

修正されたコードは次のとおりです。

systemnames = '  scaledPlant WControl WError';  %corrector1 corrector2 
inputvar = '[r(4);  u(4)]'; %<-- here the number in Parentheses shows the number of signals
outputvar = '[WControl; WError;r(1)- scaledPlant(1)]'; %<-- here it shows the signal number
input_to_scaledPlant = '[u]';
input_to_WError = '[r-scaledPlant]';
input_to_WControl = '[u]';
sysoutname = 'P';
cleanupsysic= 'yes';
sysic

 </p>

于 2013-10-24T13:15:12.017 に答える