Simulink系统仿真原理.ppt
《Simulink系统仿真原理.ppt》由会员分享,可在线阅读,更多相关《Simulink系统仿真原理.ppt(65页珍藏版)》请在三一办公上搜索。
1、第6章 Simulink系统仿真原理,6.1 Simulink求解器概念6.2 系统过零的概念与解决方案6.3 系统代数环的概念与解决方案6.4 高级积分器 6.5 仿真参数设置:高级选项与诊断选项,6.1 Simulink求解器概念,6.1.1 离散求解器 第3章中简单介绍了动态系统的模型及其描述,其中指出,离散系统的动态行为一般可以由差分方程描述。众所周知,离散系统的输入与输出仅在离散的时刻上取值,系统状态每隔固定的时间才更新一次;而Simulink对离散系统的仿真核心是对离散系统差分方程的求解。,在对纯粹的离散系统进行仿真时,需要选择离散求解器对其进行求解。用户只需选择Simulink仿
2、真参数设置对话框中的求解器选项卡中的discrete(no continuous states)选项,即没有连续状态的离散求解器,便可以对离散系统进行精确的求解与仿真。读者可以参考第5章中相关内容了解离散求解器的其它设置,这里不再赘述。,6.1.2 连续求解器 与离散系统不同,连续系统具有连续的输入与输出,并且系统中一般都存在着连续的状态变量。连续系统中存在的状态变量往往是系统中某些信号的微分或积分,因此连续系统一般由微分方程或与之等价的其它方式进行描述。这就决定了使用数字计算机不可能得到连续系统的精确解,而只能得到系统的数字解(即近似解)。,采用不同的连续求解器会对连续系统的仿真结果与仿真速
3、度产生不同的影响,但一般不会对系统的性能分析产生较大的影响,因为用户可以设置具有一定的误差范围的连续求解器进行相应的控制。离散求解器与连续求解器设置的不同之处如图6.1所示。,图6.1 离散求解器与连续求解器设置的比较,由于连续系统状态变量不能够被精确地计算出来,因而积分的误差值同样也是一个近似值。通常,连续求解器采用两个不同阶次的近似方法进行积分,然后计算它们之间的积分差值作为积分误差。连续求解器积分误差的计算如图6.2所示。,图6.2 连续求解器积分误差计算,图6.2中h为积分步长。注意,此图以最简单的多边形积分近似算法为例说明积分误差的计算,在实际中具体的方法视连续求解器的不同而不同。如
4、果积分误差满足绝对误差或相对误差,则仿真继续进行;如果不满足,则求解器尝试一个更小的步长,并重复这个过程。当然,连续求解器在选择更小步长时采用的方法也不尽相同。如果误差上限值的选择或连续求解器的选择不适合待求解的连续系统,则仿真步长有可能会变得非常小,使仿真速度变得非常慢。(用户需要注意这一点。),混合系统仿真时连续状态求解与离散状态求解的协调如图6.3所示。其中h为初始步长,由于在时刻t与th之间系统存在着离散状态的更新,因而连续变步长求解器将会减小步长至,之后再计算积分误差以控制求解。如果求解误差满足误差范围,则进行下一步仿真,否则缩小时间间隔,重复此过程进行求解仿真。,图6.3 连续状态
5、求解与离散状态求解的协调示意图,6.2 系统过零的概念与解决方案,6.1节中对Simulink的求解器进行了较为深入的介绍。Simulink求解器固然是系统仿真的核心,但Simulink对动态系统求解仿真的控制流程也是非常关键的。Simulink对系统仿真的控制是通过系统模型与求解器之间建立对话的方式进行的:Simulink将系统模型、模块参数与系统方程传递给Simulink的求解器,而求解器将计算出的系统状态与仿真时间通过Simulink环境传递给系统模型本身,通过这样的交互作用方式来完成动态系统的仿真。,6.2.1 过零的产生 在动态系统的仿真过程中,所谓过零,是指系统模型中的信号或系统模
6、块特征的某种改变。这种特征改变包括以下两种情况:(1)信号在上一个仿真时间步长之内改变了符号。(2)系统模块在上一个仿真时间步长改变了模式(如积分器进入了饱和区段)。,6.2.2 事件通知 在动态系统仿真中,采用变步长求解器可以使Simulink正确地检测到系统模块与信号中过零事件的发生。当一个模块通过Simulink仿真环境通知求解器,在系统前一仿真步长时间内发生了过零事件,变步长求解器就会缩小仿真步长,即使求解误差满足绝对误差和相对误差的上限要求。缩小仿真步长的目的是判定事件发生的准确时间(也就是过零事件发生的准确时刻)。,6.2.3 支持过零的模块 在Simulink的模块库中,并非所有
7、的模块都能够产生过零事件。,图6.4 系统模型与求解器之间的交互作用示意图,对于其它的许多模块而言,它们不具有过零检测的能力。如果需要对这些模块进行过零检测,则可以使用信号与系统库(Signals&Systems)中的Hit Crossing零交叉模块来实现。当Hit Crossing模块的输入穿过某一偏移值(offset)时会产生一个过零事件,所以它可以用来为不带过零能力的模块提供过零检测的能力。一般而言,系统模型中模块过零的作用有两种类型:一是用来通知求解器,系统的运行模式是否发生了改变,也就是系统的动态特性是否发生改变;二是驱动系统模型中其它模块。过零信号包含三种类型:上升沿、下降沿、双
8、边沿,如图6.5所示。,图6.5 过零信号的类型,下面分别对这三种类型进行简单的介绍。(1)上升沿:系统中的信号上升到零或穿过零,或者是信号由零变为正。(2)下降沿:系统中的信号下降到零或穿过零,或者是信号由零变为负。(3)双边沿:任何信号的上升或下降沿的发生。,6.2.4 过零的举例过零的产生与关闭过零 1.过零点的产生【例6.1】过零的产生与影响。这里以一个很简单的例子来说明系统中过零的概念以及它对系统仿真所造成的影响。在这个例子中,采用Functions&Tables-函数与表库中的Function函数模块和Math数学库中的Abs绝对值模块分别计算对应输入的绝对值。我们知道,Funct
9、ion模块不会产生过零事件,所以在求取绝对值时,一些拐角点被漏掉了;但是Abs模块能够产生过零事件,所以每当它的输入信号改变符号时,它都能够精确地得到零点结果。图6.6所示为此系统的Simulink模型以及系统仿真结果。,图6.6 过零产生的影响,从仿真的结果中可以明显地看出,对于不带有过零检测的Function函数模块,在求取输入信号的绝对值时,漏掉了信号的过零点(即结果中的拐角点);而对于具有过零检测能力的Abs求取绝对值模块,它可以使仿真在过零点处的仿真步长足够小,从而可以获得精确的结果。为说明这一点,在MATLAB命令窗口中输入如下语句:semilogy(tout(1:end1,dif
10、f(tout)%绘制系统仿真时刻的一阶差分(即系统仿真步长),如图6.7所示,其中常规步长为0.2 s,%当发生过零的情况时,系统仿真步长自动缩小至约s,图6.7 系统仿真中过零处步长变化,2.关闭过零【例6.2】过零的关闭与影响。在【例6.1】中,过零表示系统中信号穿过了零点。其实,过零不仅用来表示信号穿过了零点,还可以用来表示信号的陡沿和饱和。在这个例子中,系统实现了输入信号由其绝对值跳变到饱和值的功能,而且跳变过程受到仿真时刻的控制。在此系统模型中所使用的Abs模块与Saturation模块都支持过零事件的产生,因此在系统的响应输出中得到了理想的陡沿。其中系统模型如图6.8(a)所示,系
11、统仿真结果如图6.8(b)所示。,图6.8 系统模型及系统仿真结果,从图6.8中可以明显看出,使用过零检测可以获得很好的仿真结果,系统的输出具有很好的陡沿。在使用Simulink进行动态系统仿真中,其默认参数选择使用过零检测的功能。如果使用过零检测并不能给系统的仿真带来很大的好处,用户可以关闭仿真过程中过零事件的检测功能。用户可以在Simulation Parameters 参数设置对话框中的Advanced选项卡中进行设置,以关闭过零检测功能,然后再次对系统进行仿真。图6.9(a)、(b)所示分别为关闭过零检测的设置以及在关闭过零检测后系统的仿真结果。,图6.9 关闭系统过零检测的设置和关闭
12、过零检测后的仿真结果,6.2.5 使用过零检测的其它注意事项 在使用过零检测时,用户需要注意如下几点:(1)关闭系统仿真参数设置中的过零事件检测,可以使动态系统的仿真速度得到很大的提高。但可能会引起系统仿真结果的不精确,甚至出现错误结果。(2)关闭系统过零检测对Hit Crossing零交叉模块并无影响。(3)对于离散模块及其产生的离散信号不需要进行过零检测。,6.3 系统代数环的概念与解决方案,直接馈通模块 在使用Simulink的模块库建立动态系统的模型时,有些系统模块的输入端口(Input ports)具有直接馈通(Direct feedthrough)的特性。所谓模块的直接馈通,是指如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Simulink 系统 仿真 原理

链接地址:https://www.31ppt.com/p-5448264.html