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的求解器或者其他设置不同。<