simulink动态系统建模仿真 第7章

simulink动态系统建模仿真 第7章

ID:9885146

大小:7.77 MB

页数:234页

时间:2018-05-12

simulink动态系统建模仿真 第7章_第1页
simulink动态系统建模仿真 第7章_第2页
simulink动态系统建模仿真 第7章_第3页
simulink动态系统建模仿真 第7章_第4页
simulink动态系统建模仿真 第7章_第5页
资源描述:

《simulink动态系统建模仿真 第7章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章高级仿真概念7.1过零检测7.2处理代数循环7.3高级积分器7.4仿真诊断选项设置7.5仿真性能优化设置7.1过零检测7.1.1过零检测的工作方式状态变量中的不连续常常表征了动态系统的重要事件,例如,当弹球撞击地板时,撞击的位置是不连续的。由于不连续性常常表示动态系统的一个重大改变,因此对不连续点进行精确仿真是非常重要的,否则,仿真可能会导致错误的结论。还以仿真小弹球为例,如果在两次仿真步之间小球撞击了地板,那么被仿真的小球在半空中就会翻转方向,这就会使研究人员对小球的物理运动得出错误的结论。为了避免这样的错误,对不连续点进行仿真是非常重要的,

2、当然,完全依赖仿真算法来确定仿真时间是不能满足这样的要求的。以定步长算法为例,定步长算法在固定步长的整数倍时刻计算状态变量的值,但是,谁也不能保证不连续点的出现时刻就在定步长的整数倍时刻。用户也可以减小步长以增大撞击到不连续点的可能性,但这无疑会增加仿真的执行时间。这样看来,变步长算法似乎可以解决这样的问题。变步长算法会动态地调整步长,当状态变量变化缓慢时增大步长,而当状态变量变化快速时减小步长,在不连续点处,变量的变化是非常迅速的。这样,从理论上来说,变步长算法应该可以准确地找到不连续点,而存在的问题是定位不连续点的精确性。为了找到不连续点,变步长

3、算法必须采用越来越小的步长,这样就大大降低了仿真的效率。虽然这会放慢仿真的速度,但这样做对有些模块来讲是至关重要的,因为这些模块的输出可能表示了一个物理值,它的零值有着非常重要的意义,也有可能这些模块用来控制另外的一些模块。事实上,只有少数模块能够发出事件通知,而且可能与不止一个类型的事件发生关联,当一个模块通知说前一个时间步上发生了过零,那么变步长求解器就会缩小步长,即使绝对误差和相对误差是可以接受的,它也会告知系统有事件发生。这个事件的通知过程如图7-1所示。图7-1Simulink利用过零检测来解决这样的问题。它是在系统和求解器之间建立一种对话

4、工作方式,对话包含的一个内容就是事件通知,Simulink将消息由系统传送到求解器,即系统告知求解器在前一个时间步上发生了一个事件,一个重要的事件就是“发生了一个过零!”,事件都由过零表示。过零通常在下面两个条件下产生:(1)信号在上一个时间步改变了符号,即由正变负或者由负变正,包含变为0和离开0;(2)模块在上一个时间步改变了模式,例如积分器进入了饱和区段。使用Simulink中的过零检测后,模块在仿真开始时注册一组过零变量,其中的每个变量都是可能含有不连续状态变量的函数,当发生不连续时,过零函数会从正值或负值穿越零。在每个仿真步结束时,Simul

5、ink会要求每个已注册过零变量的模块更新变量,然后检查在仿真时间步的结束时刻是否有变量改变了符号,如果有,则表示在当前这个时间步上系统出现了不连续点。   如果检测到过零,则Simulink会对每个改变符号的变量在前一时间步和当前时间步之间进行插值,以估算过零的准确时刻;然后,Simulink再逐渐增加时间步,并依次越过过零点进行仿真。利用这种方法,Simulink避免了对不连续点的仿真,而在很多情况下,这些不连续点处的状态变量的值可能都没有定义。7.1.2过零检测的实现方式过零检测可以使Simulink精确地仿真不连续点,而不必过多地选用小步长。实

6、际上,Simulink中的许多模块都支持过零检测,在实际建模仿真中,如果用户对所有的系统,包括含有不连续环节的系统都利用过零检测进行仿真,那么不仅仿真过程的速度更快,而且精度也会提高。   虽然Simulink中的许多模块都能够产生过零,但各个模块的过零类型是有差异的。下面举例说明带有过零的Simulink模块的过零检测方式。例如,对于Abs模块来说,当输入信号改变符号时将产生一个过零事件;而对于Saturation(饱和)模块来说,当过零检测功能检测到Saturation模块中的如下事件时产生过零:输入信号到达上限;   输入信号离开上限;   输

7、入信号到达下限;   输入信号离开下限。   状态事件的检测依赖于模型内部过零信号的结构,这个信号并不受方块图的影响。对于Saturation模块,用来检测上限过零的信号为zcSignal=UpperLimit-u,这里,u是输入信号,UpperLimit是信号上限。此外,过零信号还具有方向属性,带有方向的过零通常用来驱动其他模块。这个方向属性值包括:rising(上升沿R)—当信号上升穿越零时,或者信号由零值到正值时,产生过零;falling(下降沿F)—当信号下降穿越零时,或者信号由零值到负值时,产生过零;either(双边沿E)—当上升沿或下降

8、沿发生时,产生过零。   图7-2说明了过零信号的方向属性。对于Saturation模块的上限,过零的方向就

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。