Simulink学习笔记5--Simulink仿真设置

来源:互联网 发布:js委托事件 编辑:程序博客网 时间:2024/04/27 21:46

本节主要解决以下5个问题:
1.仿真基础
如何启动、暂停、终止和交互仿真?
2.仿真参数对话框
如何使用仿真 参数对话框设置仿真的起始时间、终止时间、仿真算法、仿真步长、以及其他仿真选项?
3.查看仿真轨迹
如何利用Simulink中的输出模块以不同的方式查看仿真结果曲线?
4.诊断仿真错误
如何使用仿真诊断查看器(Simulink Diagenostic Viewer)诊断仿真错误?
5.改善仿真性能和精度
改善仿真性能和精度的几种方法

1.仿真基础

Simunlink在运行模型仿真时通常需要两个过程:①设置不同的仿真参数,包括仿真起始时间、终止时间、求解模型的算法、最大步长等;②启动仿真,Simulink从指定的起始时间开始到终止时间运行仿真。如果模型有错误,则Simulink停止仿真,打开故障诊断查看器,帮助产看和确定仿真过程中产生错误的原因和位置。
如何启动、暂停、终止和交互仿真?
启动、暂停、终止略。
交互仿真主要是在仿真中,可以改变仿真参数、算法、查看信号等。

2.仿真参数对话框

如何使用仿真 参数对话框设置仿真的起始时间、终止时间、仿真算法、仿真步长、以及其他仿真选项?
2.1设置仿真时间:Start time 和 Stop time。需要注意的是,仿真时间和实际执行的时间并不同。计算机运行仿真程序所需要的时间取决于很多因素,通常包括模型的复杂度、仿真算法的步长以及计算机的速度等。
2.2设置仿真算法:求解器即所谓的仿真算法。定步长连续算法、变步长连续算法、定步长离散算法、变步长离散算法。
2.2.1定步长连续算法:
在仿真时间段内以等间隔时间步计算模型的连续状态,而利用数值积分算法计算系统连续状态。使用定步长连续算法进行仿真的仿真结果准确度和仿真时间取决于仿真步长的大小,一般而言,仿真步长越小,则结果越准确。定步长连续算法可以处理包含连续状态和离散状态的模型,而且也可以处理包含非连续状态的模型。
Simulink把定步长连续算法分为两类:显示算法和隐式算法。
显示算法:x(n+1)=x(n)+h*dx(n)/dt
h是仿真步长。
Simulink提供的显示定步长连续算法:
ode5
ode4
ode3
ode2
ode1
每个算法都使用不同的积分方法计算模型的状态导数,算法按照积分算法的复杂度从复杂到简单的顺序排列的。不管仿真步长多少,积分算法越复杂,则仿真精度越高。
默认情况下,为模型选择Fixed-step时,Simulink会把仿真算法缺省设置为ode3,即既可以求解连续状态,又可以求解离散装填,而且计算量适中。
用户可以选择Simulink提供的缺省值作为仿真步长,或者自己设置仿真步长。
如果模型有离散状态,则Simulink会把仿真步长设置为模型的基本采样时间;如果模型没有离散模型,则SImulink会把仿真牧场设置为模型仿真终止时间和起始时间差值的1/50,这种设置保证了在模型指定的采样时刻更新模型离散状态时,仿真过程能捕捉到模型的状态更新。
但是ode3算法无法保证精确地计算到模型的连续状态,为了获得希望的精度,用户可以选择其他的算法。
Simulink隐式算法:
x(n+1)-x(n)-h*dx(n)/dt=0
Simulink值提供一种隐式算法,即ode14x。
注:
对于任何一个模型,只要给定足够的仿真时间和足够小的仿真步长,Simulink利用任何一个定步长连续算法总能得到希望的仿真精度。但实际上这是不可能的,因为很难确定哪个算法与仿真步长的组合能够在最短的时间内得到最佳的结果。对于一个特定模型来说,需要一个最佳算法许哟多次实验。
2.2.2定步长离散算法
定步长离散算法和定步长连续算法类似,硬度和时间取决于步长,步长越小,越精确。默认的仿真步长与定步长连续算法一致。
Simulink提供一种专门仿真离散状态的模型算法—discrete(no continuous states),该算法值使用求解无状态的模型或只有离散状态的模型,不能用于仿真包含连续状态的模型。
注:如果模型中包含连续状态,若选用discrete算法仿真,则Simulink会显示错误消息。

如何快速的选择最佳定步长仿真算法呢?
最佳的定步长仿真算法是在满足仿真精确下,能够在再最短的时间内得到仿真结果。首先为模型选择一个变步长仿真算法,并使仿真精度达到希望的要求,这样可以确定仿真结果的样子;然后用ode1进行仿真,若满足,则最佳,否则使用二进制搜索技术,先用ode3,不满足则往上换,否则往下换。如果ode5无法满足结果,则需要减小仿真步长,重复上述过程,直到找到一个满足仿真精度要求,同时又有较小计算量的算法。

2.2.3变步长连续算法
变步长连续算法适用于求解仿真过程中系统状态变化的模型。当系统的状态快速变化时,这些算法可以减小仿真步长以提高仿真精度,而当系统的状态变化缓慢时,这些算法可以增大步长以节省仿真时间。
Simulink提供的变步长连续算法有:
ode45
ode23
ode113
ode15s
ode23s
ode23t
ode23tb
这个采用默认的ode45即可。

2.2.4变步长离散算法
同变步长连续算法。

2.3设置仿真步长
先用变步长,确定仿真结果,然后用定步长,再找最佳仿真算法。
一般保持默认就好,不然精度不满足,限制最大最小步长。

3.查看仿真轨迹

如何利用Simulink中的输出模块以不同的方式查看仿真结果曲线?
使用Scope、Float Scope 、 XY-Graph、Display

4.诊断仿真错误

如何使用仿真诊断查看器(Simulink Diagenostic Viewer)诊断仿真错误?
当仿真发生错误时,会自动打开Simulink diagenostic Viewer。根据提示,可以快速的定位错误,并根据提示信息,修改仿真模型即可。

5.改善仿真性能和精度

改善仿真性能和精度的几种方法
主要是对仿真算法的设置,参见上文中“如何如何快速的选择最佳定步长仿真算法呢?”

0 0