一.问题的引入
今天在调试模型时出现了该报错情况,具体情况如下图所示:


二.该问题的解决过程
1.逐个假如模块进行测试
这种方法比较费力,其实可以先划定一个有嫌疑造成问题的模块范围,将之移掉,再每次添加一个模块,无连接的输出连至Terminal模块,直到有问题的模块出现。
但试过之后发现,这种方法对现在出现得问题没有效果。你会发现:直到最后将Display模块(最后一个模块)添上后,就会出现该问题,但用Terminator模块代替Display模块,就不会出现问题。仔细检查,Display模块是没有问题的。其中的原因,后面解释。
2.网上资料查询
感谢百度,感谢google。通过搜索,结合具体的出错提示,我意识到模型出现了这个问题:内存不够大,所以分配错误。
出现这种错误的情况我知道了有两种:
- 如有些人遇到的出现“代数环(Algebraic loops)”。这个可以用Tools-->simulink debugger,点击绿色运行按钮后查看右侧的提示信息有没有出现 "algebraic loop“相关信息;
- 某些模块可能需要较大的内存。例如本模型

本文详细介绍了在Simulink中遇到的'Memory allocation error'问题及其解决过程。作者首先尝试逐个模块测试,然后通过网络资料了解到内存不足可能是由于大型数组或特定模块(如Delay)的需求。使用Terminator模块代替Display避免了错误,推测可能是由于减少了结果计算。最后总结了可能导致大内存需求的情况,包括代数环和特定模块的设置。
最低0.47元/天 解锁文章
134

被折叠的 条评论
为什么被折叠?



