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

这是由于使用了错误类型的括号来指示信号编号,正在使用 [方括号] 但应该使用 (Parentheses)。正确使用示例见官方文档

修正后的代码如下;

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 回答