.m文件调用simulink模型时报错。位置 1 的索引无效。数组索引必须为正整数或逻辑值。

智能群算法优化控制器参数,在使用.m文件调用simulink模型时报错。位置 1 的索引无效。数组索引必须为正整数或逻辑值

 function y=PID_controller(x)
%  assignin('base','Kp',x(1));
%  assignin('base','Ki',x(2));
%  assignin('base','Kd',x(3));
 assignin('base','k1',x(1));
 assignin('base','k2',x(2));
 assignin('base','k3',x(3));
 [t,x,y_out]=sim('PMSM_ADRC_double_loop_2015rb_2.slx',[0,0.5]);
 
 y=y_out(end,1);

最大的可能是,调用函数时没给输入参数x赋值,或赋值的x维度没有3维。

请问怎么解决的,急求

数组索引必须为正整数或逻辑值,你第八行的

 [t,x,y_out]=sim('PMSM_ADRC_double_loop_2015rb_2.slx',[0,0.5]);

范围是0-0.5,不是正整数

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632