无法执行赋值,因为左侧的索引与右侧的大小不兼容

1.问题描述

复现论文Adaptive nonsingular fast terminal sliding-mode control for the tracking problem of uncertain dynamical systemshttps://doi.org/10.1016/j.isatra.2018.04.007)

在自适应律处出现问题,描述如下:

“An error occurred while running the simulation and the simulation was terminated Caused by: Error in 'untitled1/S-Function3' while executing MATLAB S-function 'A_Adapt', flag = 1 (derivatives), at time 0.0.  无法执行赋值,因为左侧的索引与右侧的大小不兼容”

2.问题分析

分析后发现是文章的自适应律为2×1数组形式,编程误看为1×1实函数。

3.问题解决

将自适应律S函数部分:

sys(1)=b0;
sys(2)=b1;
sys(3)=b2;

function sys=mdlOutputs(t,x,u)
sys(1)=x(1);
sys(2)=x(2);
sys(3)=x(3);

修改为

sys(1:2)=b0;
sys(3:4)=b1;
sys(5:6)=b2;

function sys=mdlOutputs(t,x,u)
sys(1)=x(1);
sys(2)=x(2);
sys(3)=x(3);
sys(4)=x(4);
sys(5)=x(5);
sys(6)=x(6);

问题解决!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值