![]() |
嵌入式MATLAB功能块中不支持动态内存的解决方法
[B]背景:[/B]
我继承了离散事件仿真MATLAB模型,并希望自动化并加快其执行速度。除了要调用sim(modelName)并让MATLAB运行解释代码外,我想要一个类似于调用system('modelName.exe ...')的解决方案。我这样做的动机来自于初步测试,该测试表明速度提高了近1000%。我设法将Real-Time Workshop与Rapid Simulation目标一起使用,以产生具有静态内存分配的exe。问题在于模型中存在嵌入式MATLAB Function模块,其参数在每次运行中的大小和形状都会变化。将会有成百上千的运行。 根据MathWorks文档: [URL="http://www.mathworks.com/help/toolbox/eml/ug/br7rggy.html#bspvthp"][B]嵌入式MATLAB功能块不支持动态内存分配:[/B][/URL] “不能在嵌入式MATLAB Function模块中为可变大小的数据使用动态内存分配。使用有界而不是无界的可变大小数据。” [B]题:[/B] 此限制可能有什么解决方法? [B]想法:[/B] [LIST][*]使用足够大的静态变量大小,并另外传递int变量/可调参数以显式地窗口化要范围内的数据部分。[*] S功能?[*]我今天要实现的是:每次调用模拟以动态方式生成静态代码时,以编程方式重新编译模拟。[*]将所有内容移植到一种真正/现代的编程语言,例如python或c ++。[/LIST][B]关键词:[/B] MATLAB动态内存分配嵌入式离散事件仿真实时研讨会Simulink SimEvents可调参数 [B]回答:[/B] 几年后的后续工作...我们进行了当天进行了一年左右的动态静态重新编译,然后另一位统计数据开发人员将其重新编写为c ++。每次运行都使用最大可能的内存根本不是浪费计算资源。 [url=https://stackoverflow.com/questions/4413010]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:15。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.