Simulink中的MATLAB Functon报错:Size mismatch (size [6 x 1] ~= size [1 x 6]).

文章讲述了在使用Simulink时,如何处理SRM模块输出通过BusSelector传递给MATLABFunction时的尺寸不匹配错误。问题出在MATLABFunction模块的输出设置,默认继承了上一模块的6x1输出,而应改为1x6。解决方案是修改MATLABFunction的Size参数为[1,6]。
摘要由CSDN通过智能技术生成
(1)出现的问题
  • 将SRM模块输出通过Bus Selector分离开后,把转子位置角反馈到MATLAB Function的输入端,如下图,此时报错;

Size mismatch (size [6 x 1] ~= size [1 x 6]).
The size to the left is the size of the left-hand side of the assignment.
 %意思是,MATLAB Function的代码中G为1*6的矩阵,但模块设置的输出格式是[6*1];
(2)原因即解决办法
  • 参考回答:[Simulink:Matlab 嵌入式函数代码错误]

  • 原因在于MATLAB Function模块的设置中,输出G的维度默认继承上一个输出(如下图,Size=-1),此处上一个输出为SRM的输出,维度为6*1,产生实际输出和设置不匹配的情况;(下图打开路径:右击MATLAB Function模块→Explore)
     

  • 解决办法:Size改为[1,6]即可;
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值