simulink仿真参数设置Word文件下载.docx

上传人:wj 文档编号:8432119 上传时间:2023-05-11 格式:DOCX 页数:10 大小:22.46KB
下载 相关 举报
simulink仿真参数设置Word文件下载.docx_第1页
第1页 / 共10页
simulink仿真参数设置Word文件下载.docx_第2页
第2页 / 共10页
simulink仿真参数设置Word文件下载.docx_第3页
第3页 / 共10页
simulink仿真参数设置Word文件下载.docx_第4页
第4页 / 共10页
simulink仿真参数设置Word文件下载.docx_第5页
第5页 / 共10页
simulink仿真参数设置Word文件下载.docx_第6页
第6页 / 共10页
simulink仿真参数设置Word文件下载.docx_第7页
第7页 / 共10页
simulink仿真参数设置Word文件下载.docx_第8页
第8页 / 共10页
simulink仿真参数设置Word文件下载.docx_第9页
第9页 / 共10页
simulink仿真参数设置Word文件下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

simulink仿真参数设置Word文件下载.docx

《simulink仿真参数设置Word文件下载.docx》由会员分享,可在线阅读,更多相关《simulink仿真参数设置Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。

simulink仿真参数设置Word文件下载.docx

2)ode4是RK4,基于四阶Runge—Kutta公式.

3)ode3是ode23的定步长版本,基于Bogacki-Sbampine公式.

4)ode2是Heun方法,也叫作改进Euler公式.

5)odel是Euler方法.

6)discrete(定步长)是不执行积分的定步长求解器.它适用于没有状态的模型,以及对过零点检测和误差控制不重要的模型.

3.诊断页(Diagnostics)

可以通过选择SimulationParameters对话框的Diagnostics标签来指明在仿真期间遇到一些事件或者条件时希望执行的动作.对于每一事件类型,可以选择是否需要提示消息,是警告消息还是错误消息.警告消息不会终止仿真,而错误消息则会中止仿真的运行.

(1)一致性检查一致性检查是一个调试工具.用它可以验证Simulink的0DE求解器所做的某些假设.它的主要用途是确保s函数遵循Simulink内建模块所遵循的规则.因为一致性检查会导致性能的大幅度下阵(高达40%),所以一般应将它设为关的状态.使用一致性检查可以验证s函数,并有助于确定导致意外仿真结果的原因.为了执行高效的积分运算,Simulink保存一些时间步的结果,并提供给下一时间步使用.例如,某一时间步结束的导数通常可以放下一时间步开始时再使用.求解器利用这一点可以防止多余的导数运算.一致性检查的另一个目的是保证当模块被以一个给定的t(时间)值调用时.它产生一常量输出.这对于刚性求解器(ode23s和odel5s)非常重要,因为当计算Jacobi行列式时.模块的输出函数可能会被以相同的t值调用多次.如果选择了一致性检查,Simulink置新计算某些值,并将它们与保存在内存中的值进行比较,如果这些值有不相同的,将会产生一致性错误.Simulink比较下列量的计算值:

1)输出;

2)过零点3)导数;

4)状态.

(2)关闭过零点检测可以关闭一个仿真的过零点检测.对于一个有过零点的模型,关闭过零点检测会加快仿真的速度,但是可能影响仿真结果的精度.这一选项关闭那些本来就有过零点检测的模块的过零点检测.它不能关闭Hircrossing模块的过零点检测.

(3)关闭优化I/O存储

选择该选项,将导致Simulink为每个模块约I/()值分配单独的缓存,而不是重新利用援存.这样可以充分增加大模型仿真所需内存的数量.只有需要调试模型时才选择该选项.在下列情况下,应当关闭缓存再利用;

1)调试一个C-MEXS-函数;

2)使用浮点scope或display模块来察看调试模型中的信号.如果缓存再利用打开,并且试图使用浮点scope或display模块来显示缓存已被再利用的信号,将会打开一个错误对话框.

(4)放松逻辑类型检验选择该选项,可使要求逻辑类型输入的模块接受双精度类型输入.这样可保证与Simulink3版本之前的模型的兼容性.

4.提高仿真性能和精度仿值性能相精度由多种因素决定,包括模型的设计和仿真参数的选择.求解器使用它们的缺省参数值可以使大多数模型的仿真比较精确有效,然而,对于一些模型如果调整求解器相仿真参数将会产生更好的结果.而且,如果对模型的性能比较熟悉,并且将这些信息提供给求解器,得到的仿真效果将会提高。

(1)加快仿真速度仿真速度慢的原因有多种.下面列举其中的一些:

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

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

3)模型中包含有Memory模块.使用Memory模块使得变阶求解器(odel5s和odell3)在每一时间步将阶数设为1阶.

4)最大的步长太小.如果改变了最大步长.可以试试重新使用缺省值(auto)运行仿真。

5)对精度要求太高.缺省的相对容差(0.1%)通常已经足够了.对于状态值趋于0的模型.如果绝对容差设得太小.仿真时状态值在零点附近会花去太多的时间步.

6)时间尺度可能太长.减小时间间隔;

7)问题可能是刚性的.而使用的是非刚性求解器.这时可用odel5s试一下;

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

9)模型包含有代数循环.在每一时间步都会反复计算代数循环,因此这会大大地降低仿真的性能.

10)模型中将RandomNumber模块的输出传给了Intergrator模块.对于连续系统,在Sources库中使用Bond—limitedNoise模块.

(2)改进仿真精度要检查仿真的精度.仿真运行一段时间以后,减小相对容差到1e-4或者减小绝对容差,并重新运行它.比较两次仿真的结果.如果它们之间没有很大的差别,可以确信结果收敛.如果经过一段时间后,仿真结果变得不稳定,可能是如下原因:

1)系统可能不稳定.

2)如果使用的是odel5s,可能需要将最大的阶数限制在2阶(求解器稳定的最大阶数),或者试试用ode23s求解器.

如果仿真结果看起来不是很精确,可能是:

1)对于一个拥有趋于零的状态值的模型,如果绝对容差设得太大,仿真在零状态值附近花的步数太少.减小绝对容差的大小或者在Integrator对话框中为每—个状态分别调整绝对容差的设定.

2)如果减小绝对容差不能有效地提高精度,减少相对容差的大小,减小步长,增加步数.

5.处理复数信号

在缺省状态下,simulink信号值是实数.尽管如此,模型可以产生相处理具有复数值的信号.可以采取以下任何一种方法在模型中引入复数值信号.

1)由顶层瑞口从MATLAB工作空间向模型中装入复数值信号数据.

2)在模型中产生一个常数模块,并设置其值为复数.

3)产生实数信号分别对应于复数信号的实部和虚部.然后用实-虚复数转换(Real-ImagtoComplexConversion)模块将各部连成复数信号.可以用接受复数的模块来处理复数信号,大多数simulink模块接受复数信导作为输入。

一、设置仿真参数和选择解法器

设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。

Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。

WorkspaceI/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。

Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。

1、Solver页

此页可以进行的设置有:

选择仿真开始和结束的时间;

选择解法器,并设定它的参数;

选择输出项。

仿真时间:

注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。

一般仿真开始时间设为0,而结束时间视不同的因素而选择。

总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。

仿真步长模式:

用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。

变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。

固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。

用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。

变步长模式解法器有:

ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。

ode45:

缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。

它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。

一般来说,面对一个仿真问题最好是首先试试ode45。

ode23:

二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。

也是一个单步解法器。

ode113:

是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。

ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。

ode15s:

是一种基于数字微分公式的解法器(NDFs)。

也是一种多步解法器。

适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。

ode23s:

它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。

它能解决某些ode15s所不能有效解决的stiff问题。

ode23t:

是梯形规则的一种自由插值实现。

这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。

ode23tb:

是TR-BDF2的一种实现,TR-BDF2是具有两个阶段的隐式龙格-库塔公式。

discrtet:

当Simulink检查到模型没有连续状态时使用它。

固定步长模式解法器有:

ode5,ode4,ode3,ode2,ode1和discrete。

ode5:

缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。

ode4:

四阶龙格-库塔法,具有一定的计算精度。

ode3:

固定步长的二/三阶龙格-库塔法。

ode2:

改进的欧拉法。

ode1:

欧拉法。

discrete:

是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。

步长参数:

对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。

Maximumstepsize(最大步长参数):

它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。

一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。

Initialstepsize(初始步长参数):

一般建议使用“auto”默认值即可。

仿真精度的定义(对于变步长模式)

Relativetolerance(相对误差):

它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。

Absolutetolerance(绝对误差):

表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。

如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。

Mode(固定步长模式选择)

Multitasking:

选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。

所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。

在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。

通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。

使用速率转换模块可以减少模型中的非法速率转换。

Simulink提供了两个这样的模块:

unitdelay模块和zero-orderhold模块。

对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unitdelay模块。

而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-orderhold。

Singletasking:

这种模式不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种系统就不存在任务同步问题。

Auto:

这种模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。

输出选项

Refineoutput:

这个选项可以理解成精细输出,其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。

用户可以在refinefactor设置仿真时间步间插入的输出点数。

产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。

精细输出只能在变步长模式中才能使用,并且在ode45效果最好。

Produceadditionaloutput:

它允许用户直接指定产生输出的时间点。

一旦选择了该项,则在它的右边出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。

与精细因子相比,这个选项会改变仿真的步长。

Producespecifiedoutputonly:

它的意思是让simulink只在指定的时间点上产生输出。

为此解法器要调整仿真步长以使之和指定的时间点重合。

这个选项在比较不同的仿真时可以确保它们在相同的时间输出。

二、powergui设置 

 

simulink仿真用到simpowersystom库时,一般都要加powergui模块,它储存了电路模型的等效数学模型(状态空间方程),有三种运行模式:

连续方法(continous)、离散方法(discret)、相量方法(phasor)。

 

小型系统(状态量10个以下)用continous运行比较好,连续变步长方法更快更精确,因为离散算法要想给出一个同等精度的结果需要的计算量要比连续的多出不少。

使用二极管和晶闸管等整流电力电子器件情况下,变步长算法由于对事件更为敏感,有误差限制和过零检测,可以精确探测到电流的过零点,故结果波形中不会有电流间断。

算法可以根据模型选择合适的ode算法。

对于包含了许多状态和非线性模块(如电力电子器件)较多的大型系统建议用discrete来运行,加快仿真速度。

一旦系统被离散化,电路系统再无连续状态了,因此如果你不需要变步长积分方法进行仿真,前文所述的算法设置Simulationparameters可选择Fixed-step和discrete(no 

continous 

state)。

当你离散化系统时,仿真的精度由时间步长控制。

若使用太大的时间步长,精度可能不够。

确定时间步长是否合适的唯一方法是通过改变时间步长,反复仿真,比较仿真结果。

通常,对于在50Hz 

或60Hz的功率系统上或使用了线性整流功率电子元件(如二极管、可控硅等)的系统上进行暂态仿真,取20us-50us的时间步长一般能取得较好的仿真效果。

对于使用了强制整流功率电子开关的系统,必须减小时间步长。

IGBT、场效应管、门极关断晶闸管等通常工作在很高的开关频率状态下,例如,要仿真一个工作在8Hz的PWM转换器,需要设置步长大约为8us。

phasor就是稳态模型,没有状态量。

如果你只对电压电流的相位和幅值变化感兴趣,使用相量法是一个不错的选择。

求解时不再解全部的微分方程,只要解关于电流电压相量的代数方程就行了,代数方程可比微分方程简单多了!

正如名字,相量法将电流电压视为相量。

相量法对于包含大发电机和电动机的网络的暂态稳定性仿真十分好用 

在这种类型的问题中,我们感兴趣的是电机和调节器交互作用引起的电气机械振荡,这些振荡对基波电流电压产生一个低频的幅度相位调制。

一般来讲,连续或者离散的方法不适合这种类型的问题。

相量法中,使用一系列的代数方程代替网络微分方程,其中的快速的模态被忽略;

使用一个由基频和相关输入输出组成的复矩阵代替网络的状态空间模型。

由于相量法使用的是电机、涡轮机和调节器的慢速状态的简化模型,因此大大的减少了必需仿真时间。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2