提高Matlab仿真速度的几点建议(转)

来源:https://bbs.nwpu.edu.cn/forum.php?mod=viewthread&tid=81775&_dsign=afc253a8

Matlab simulink 给数学建模和解非线性方程提供了莫大的便利,但是对于大型仿真程序,smulink仿真速度使人叫苦不迭。总体来说,影响simulink仿真速度有以下几个因素,同时将解决方法奉上:

1、参数设置问题,变步长还是定步长,定步长的大小,求解方法

(a)变步长可以大大加快仿真速度,但同时也可能带来结果不准确的问题。

(b)定步长的不长越大仿真时间与少,仿真时间的长短大致与仿真步长成比例。可以试试重新使用缺省值(auto)运行仿真。

(c)求解器不同仿真速度不同,在误差允许的情况下,采用误差大,时间少的求解器,比如将od45换成od23

(d)有时候初始参数的设置可能使系统花费大量时间才收敛

(e)加速器打开,在菜单-仿真选项中,将默认的normal改为accelerator

(f)精度要求太高了。相对容差的缺省值(0.1%的精度)通常是足够了。对于有些模型,它们的一些状态变量的取值是可以到0.如果绝对容差太小了的话,仿真就会在零状态附近取太多的时步。

2、代数环问题

模型包含有代数循环。在每一时间步都会反复计算代数循环,因此这会大大地降低仿真的速度。因此需要减少代数环,在无法减少的情况下就要拆环,拆环的方法有状态端口法,代数约束模块法,积分模块等等

3、输出

少开示波器窗口,实时绘图模块,减少向workspace空间存储数据。

4、自定义函数

(a)模型中包含有MATLAB的function模块.当模型包含有MATLAB的function模块时,在仿真的每一时间步都会调用MATLAB的解释器,这将大大地减慢仿真的速度.因此应尽可能地使用内建的Fcn模块或者elementary Math模块.

(b)模型中包含有M文件形式的S函数.M文件形式的S函数也将导致在每一时间步调用MATLAB的解释器.可以考虑将s函数转换为子系统或者c-MEx文件形式的s函数。

(c)自定义函数中使用向量化编程方法,有些代码可以加速10倍。减少循环(for,switch,while),实在不行就先生成代码。

5、系统的本身是离散的还是连续的

(a)离散系统的运行速度要快于连续系统。对系统离散化,方法为在你的gui模块里选择discretize electric model,采样时间越大仿真越快,当然采样时间的设定要与你对系统精确性相配合,因为采样时间是与准确性成反比的。

6、其它

(a)模型使用的采样时间相互之间不成倍数关系。相互之间不成倍数的混合采样时间会导致求解器采用足够小的步长,以保证采样时间符合所有的采样时间要。因此统一采样时间。

(b)使用profile查看哪些模块占用了时间。Sldiagnostics函数获取模型的数目和编译情况。

(c)compile成code运算,会快很多

(d)使用并行计算工具箱,在多核心台式计算机或计算机集群上加快仿真速度

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB是一种强大的数值计算和科学仿真软件,广泛应用于工程、科学和数学领域。在进行MATLAB仿真时,我们需要掌握以下几个知识点。 首先,了解MATLAB的基本语法和命令非常重要。MATLAB使用类似于常规数学表达式的语言编写代码,包括变量定义、数组操作、条件语句、循环等。掌握这些语法和命令可以编写出高效且正确的仿真代码。 其次,了解MATLAB中常用的数据结构和函数也是必要的。MATLAB提供了多种数据结构,如向量、矩阵、多维数组等,还提供了丰富的函数库,包括数学函数、统计函数、信号处理函数等。了解如何正确地创建和操作这些数据结构,以及如何调用和使用这些函数,将有助于进行准确的仿真计算。 另外,MATLAB还具有图形绘制和可视化功能,能够将仿真结果以图表等形式展示出来。因此,掌握MATLAB中的绘图函数和工具,可以直观地观察和分析仿真结果,提高仿真实验的可视化程度。 此外,了解MATLAB仿真工具箱也很重要。MATLAB提供了许多专门的工具箱,如控制系统工具箱、信号处理工具箱、图像处理工具箱等,这些工具箱包含了各种用于特定领域的仿真函数和工具,能够简化和加速仿真过程。 最后,需要提醒的是,在进行MATLAB仿真时,需要对仿真模型和仿真参数进行合理设计和选择,以保证仿真结果的准确性和可靠性。同时,还要掌握MATLAB的调试和错误处理技巧,能够及时发现和解决仿真过程中的问题。 综上所述,MATLAB仿真涉及的知识点包括MATLAB基本语法和命令、数据结构和函数、图形绘制和可视化、仿真工具箱等,同时还需要注意仿真模型和参数的设计和选择、调试和错误处理等方面的技巧。掌握这些知识点能够进行高效、准确的MATLAB仿真工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值