欢迎来到天天文库
浏览记录
ID:37906147
大小:642.50 KB
页数:5页
时间:2019-06-02
《Simulink的solver》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Simulink的solver1Solver简介Solver是Simulink的仿真算法,译为解算器;选择一个合适的solver对仿真的运算时间与结果准确性非常重要。Simulink提供了如下几种solver类型:Discrete(离散)Continuous(连续)Variable-Order(变阶数)Fixed-StepExplicit不适用√不适用Implicit(刚性算法)不适用√不适用Variable-StepExplicit√√√Implicit(刚性算法)(原文中此栏为空)√√注1:“不适用”在原文中为“NotApplicable”;注2:Fixed-step、e
2、xplicit、discrete三者对应的算法是不适用,但实际Simulink是具备这种算法的,其给出NOTE中注为:fixed-step的discrtetsolver不解算离散态,而是靠每个元件独立在算法之外计算离散态(Thefixed-stepdiscretesolversdonotsolvefordiscretestates;eachblockcalculatesitsdiscretestatesindependentofthesolver)注3:对注2进一步展开:在solver中设置的sampletime必须小于元件的smapletime,且后者要求为前者的整数倍,否
3、则系统报错;这时候simulink用的是哪一种算法help文件中未注明——建议最好不要这样用。1.1Variable-stepvsFixed-stepVariable-step可以在仿真过程中改变步长,提供误差控制和过零检测;固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。Variable-step的优点Variable-step在相同的误差允许条件下,可以降低计算次数、缩短仿真时间,故应用较多;故通常使用Variable-step算法。Fixed-step的应用场合在一些步长不可变的条件下,必须使用Fixed-step。Simulink的help中举例:当
4、仿真模型来自于一个实时的计算机系统。1.1DiscretevsContinuous如何选择这里讲的离散与连续系统,和控制理论中的离散、连续系统是两个概念。这里的离散,是在计算过程中人为的降低了计算的步长,以增加误差为代价,换来计算时间的缩短。实际严格地说,无论是什么模式,电脑计算始终是离散的。在现在,计算机的速度已经很快了,而且我们做的仿真也不是特别复杂,一般在几分钟内能够得到仿真结果,通常使用连续的计算模式。具体用法当选择了系统是离散/连续后,需要设定仿真模型的状态。离散态的仿真模型必须使用离散算法;对连续态的仿真模型亦然。SimpowerSystems中的应用在Simpo
5、werSystems工具箱中,除了solver,在powergui也可以设定连续/离散;前者是设定算法,后者是设定仿真模型的状态,二者应该一致。——当powergui设定为离散、solver设定为连续算法时,Simulink会将算法默认改为离散算法;但反之会报错。一种特殊情况:solver、powergui均设定为连续,但在模型中的某个器件设定为离散态(SimpowerSystems中,只有一部分source可以设定连续/离散),此时是什么算法呢?——没有弄清楚,建议尽量不要这样用。1.2ExplicitvsMplicit即系统中的各变量是否具有相同的时间尺度;通常一个电力电
6、子系统是刚性系统。1.3Fixed/Variable-Order通常,阶数越高,运算结果的精度越高;当然,运算速度越慢。在计算误差要求严格的情况下,变阶数的算法在运算过程中可以改变阶数,故更有效,如ode113、ode15s——不要忽视由此造成的运算速度变慢。1Fixed-stepsolver概述理论上,Fixed-step连续解算器能够处理不连续的模型,但需要增加不必要的计算量。因此,即使你指定了一个连续解算器,Simulink仍将采用离散解算器处理不连续的模型;但如果你试图用fixed-step离散求解连续的模型,会报错。Fixed-step在Simulink中默认的算法
7、是3阶的;——中等计算精度,既能处理连续、又能处理离散模型。如果不设定采样时间,默认是仿真时间/50。Fixed-step没有误差、过零检测,故不能保证仿真结果的精度。Fixed-step提供了一个刚性系统的算法:ode14x。算法选择步骤1.确定并设置系统的允许误差;2.首先选择variable-step的ode45进行仿真;如果运行很慢,系统可能是刚性的,需要更换一个刚性算法。这次仿真可以估计出一个合适的fixedstepsize。3.使用ode1、默认的步长进行仿真;与采用ode45的结果进行对比
此文档下载收益归作者所有