为什么会有性能慢下来当我运行一个模型在SimEvents 4.2 (R2012b) ?

32视图(30天)
我试图运行一个模型与1000年代的复制和运行模型需要很长一段时间(约1小时)。后将并行计算工具箱的功能在一个8核心机,模拟仍然花了很长时间。我正在寻找方法来提高SimEvents模型仿真的速度。

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2020年11月5日
性能瓶颈的存在可能导致的MATLAB函数块。如果有几个人用在一个模型中,可能存在严重的性能慢下来。
极限测试,可以注释掉所有MATLAB函数块模型和检查是否可以减少编译时间。
如果MATLAB函数阻塞替换内置仿真软件实现相同的算法,编译时将减少很多。当然,一些算法在MATLAB中实金宝app现的功能块不容易替换。
其次,在MATLAB函数块,如果一个人使用函数调用MATLAB翻译,它会导致严重的减速模型模拟。
例如,考虑这样的代码:
函数y = fcn (u)
元素个数=找到(u > 0);
y =长度(元素个数);
这个函数发现的元素数量大于零的“u”并返回这个数字(总是一个标量值)。然而,局部变量元素个数不是一个标量值。事实上,这是一个大小可变的价值,因为每次“u”变化,找到的答案(u > 0)将有一个不同的维度。这意味着我们每一次重新分配内存元素个数。这导致大量的开销。
这段代码可以重写没有任何大小可变的值:\ n
函数y = fcn (u)
greaterThanZero = u > 0;
y =总和(greaterThanZero (:));
如果一个替换出现的所有这些函数与其等价的固定大小的函数,然后用MATLAB功能块可以运行编译C代码,无需做任何昂贵的调用MATLAB解释器在运行时。
所支持的功能的列表可用MAT金宝appLAB功能块:
//www.tatmou.com/help/金宝appsimulink/slref/matlabfunction.html
最后,为了提高性能,关掉所有调试相关选项的模拟目标窗格中模型的配置参数对话框。这些选项是非常有用的,当一个人正在开发的算法。但是一旦在生产中,他们可以关闭更好的性能。
关于这些选项的更多信息:
额外的有用的绩效页面:
我怎么能加快我的模拟仿真软件模型?金宝app

更多的答案(0)

类别

找到更多的在离散事件仿真帮助中心文件交换

标签

没有标签了。

下载188bet金宝搏


释放

R2012b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!