matlab-simulink 报错集锦

本文讲述了Simulink中遇到的常见问题,如M/SFunction运行前需初始化,输出向量维度错误,奇点处理,步长调整,以及MATLAB程序性能优化。提供了解决方案,如使用saturation模块,调整步长和采样时间,以及提高程序执行效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.小白错误:如果simulink中有m 或 s function,要先运行一下它,工作区才有相关参数,simulink才能跑下去

否则会报错:大致就是找不到“xxx”,这个xxx就是simulink中 sfunction 或 m 文件的名字

2. 大致的报错就是说:xxx的输出必须为长度位 x 的实数向量

这个其实就是说输出的vector少了一维,那么都定义好了为什么会少了一维?
如果输出因为某种运算变大或变小
那么就会出现输出为 NaN 或者 Inf 的问题,而matlab不把NaN 和 Inf 看作为数据,因此会少了一维或多维。

解决方案:
1.加satuation模块,限制输出上下限
2.直接在sfcntion或者m里面添加限额的判断语句

3. 大致报错:在状态 x 出 出现了奇点,建议你减小步长

就是出现了 1/0的情况,或者函数变化太大,没法求导

解决方案很多,不同情况的解决方案不同。
1.加satuation
2.将仿真设置里面的起始时间从0 改成 0.001
3.将固定步长 改为 变步长
4.保持固定步长,自己缩小步长(3、4选一个就行,一个不行试一下另一个)

4. 合并两个simulink的时候,可能会出现单独测,两边都跑的通,放一起跑不通的现象

问题在于,两个simulink的求解器或者其他设置不同。<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值