【问题标题】:'Output argument "arraydata" (and maybe others) not assigned during call' error recieved when using sysic使用 sysic 时收到“调用期间未分配的输出参数“数组数据”(可能还有其他参数)错误
【发布时间】:2013-10-24 21:29:52
【问题描述】:

使用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)".

是什么导致了这个错误?

【问题讨论】:

    标签: matlab control-theory


    【解决方案1】:

    这是由于使用了错误类型的括号来指示信号编号,正在使用 [方括号] 但应该使用 (Parentheses)。有关正确用法的示例,请参阅the official documentation

    修正后的代码如下;

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多