概述
一、加速仿真
1。模型包括一个MATLab Fcn模块。当执行一个包含MATLab
Fcn模块的模型,Simulink在每一个仿真时间步都要调用MATLab
解释器。所以应尽可能地使用Simulink的内置Fcn模块或者是最基本的math模块。
2。模型包含M文件的S函数,M文件的S函数同样会使Simulink在每一个仿真时间步调用MATLAB解释器,替代方法是把M文件的S函数转化为C-mex函数或者建立一个等价的子系统。
3.模型包含一个存储模块。使用存储模块将使阶数可变的求解器在每个仿真时间步被重置回1阶
4.仿真时间步太小。解决的方法是把最大仿真步长参数设置回simulink的默认值-auto
5.。仿真的精度要求过高。一般来说,相对误差容限为0.1%就已经够了,当模型存在取值趋向于零的状态,仿真时如果绝对误差限度太小,会使仿真在接近零的状态附近耗费多过的仿真步。
6 仿真时间过长,应按仿真情况减小仿真的时间间隔
7
所解决的问题是stiff问题,却选择了非stiff的求解器。解决方法是ode15s。
8
模型所设置的采样时间的公约数过小,这样使Simulink可以采用的基准采样时间过小,因为Simulink会选择足够小的时间步以保证所设置的采样点都能取到。
9。模型包含一个代数环。代数环的求解方法就是在每一个时间步迭代地进行计算,这样会严重地降低仿真的性能。
10 模型吧一个random number
模块作为integrator模块的输入。对于连续系统,可以使用source子库里的Band-Limited
WhiteNoise模块。
二、仿真精度:检验仿真精度的方法是修改仿真的相对误差及绝对误差容限。在一个时间跨度反复仿真,如果结果不变或者变化不大,表示该解是收敛的。
如果仿真在开始错过模型的关键行为,那么改变初识步长,使仿真不会忽略这些关键行为;
如果结果不稳定,可能有以下几个原因:
1 所要仿真的系统本身不稳定。
2.如果正在使用ode15s,用户可以把阶数定为2或者尝试ode23s。
3.如果仿真的结果看起来不是很精确,可能有两个原因造成:
模型有取值接近零的状态,如果模型的绝对误差容限过大,会使仿真在接近零的区域包含的仿真时间步太少,解决的方法是修改绝对误差容限参数或者在积分模块的对话框修改初始的状态。
如果改变绝对误差容限不能达到预期的效果,可以修改相对误差容限,使可接受的误差降低,并减小仿真步长。
最后
以上就是细腻人生为你收集整理的matlab仿真关键模型模块,改善simulink仿真的性能和精确度的全部内容,希望文章能够帮你解决matlab仿真关键模型模块,改善simulink仿真的性能和精确度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复