背景
我继承了离散事件仿真MATLAB模型,希望自动化并加速执行。我想要一个类似于调用system('modelName.exe ...')的解决方案,而不是调用sim(modelName)并让MATLAB运行解释代码。我的动机来自最初的测试,这表明速度提高了近1000%。我已经设法使用Real-Time Workshop和Rapid Simulation目标来生成具有静态内存分配的exe。问题在于模型中存在嵌入式MATLAB功能块,其参数在每次运行中的大小和形状会有所不同。并且将有数百甚至数千次运行。
根据MathWorks文档:
Dynamic Memory Allocation Not Supported for Embedded MATLAB Function Blocks:
“您不能对嵌入式MATLAB功能块中的可变大小数据使用动态内存分配。使用有界而不是无限大小的可变大小数据。”
问题:
这种限制的潜在解决方法是什么?
思想:
关键字: 嵌入式MATLAB动态内存分配离散事件仿真Real-Time Workshop Simulink SimEvents可调参数
答案 0 :(得分:2)
这几年之后的跟进...我们在那一天实施了动态静态重新编译一年左右,然后另一个统计开发人员用c ++重写了它。使用最大可能内存每次运行根本不是对计算资源的可行浪费。
答案 1 :(得分:0)
您应该查看此在线讲座:http://www.mathworks.com/company/events/webinars/wbnr43180.html。它解释了一个类似于您的第一个想法的自动解决方案。