- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 过 零 检 测 7.1.1 过零检测的工作方式 状态变量中的不连续常常表征了动态系统的重要事件,例如,当弹球撞击地板时,撞击的位置是不连续的。由于不连续性常常表示动态系统的一个重大改变,因此对不连续点进行精确仿真是非常重要的,否则,仿真可能会导致错误的结论。还以仿真小弹球为例,如果在两次仿真步之间小球撞击了地板,那么被仿真的小球在半空中就会翻转方向,这就会使研究人员对小球的物理运动得出错误的结论。 为了避免这样的错误,对不连续点进行仿真是非常重要的,当然,完全依赖仿真算法来确定仿真时间是不能满足这样的要求的。以定步长算法为例,定步长算法在固定步长的整数倍时刻计算状态变量的值,但是,谁也不能保证不连续点的出现时刻就在定步长的整数倍时刻。用户也可以减小步长以增大撞击到不连续点的可能性,但这无疑会增加仿真的执行时间。 这样看来,变步长算法似乎可以解决这样的问题。变步长算法会动态地调整步长,当状态变量变化缓慢时增大步长,而当状态变量变化快速时减小步长,在不连续点处,变量的变化是非常迅速的。这样,从理论上来说,变步长算法应该可以准确地找到不连续点,而存在的问题是定位不连续点的精确性。为了找到不连续点,变步长算法必须采用越来越小的步长,这样就大大降低了仿真的效率。虽然这会放慢仿真的速度,但这样做对有些模块来讲是至关重要的,因为这些模块的输出可能表示了一个物理值,它的零值有着非常重要的意义,也有可能这些模块用来控制另外的一些模块。事实上,只有少数模块能够发出事件通知,而且可能与不止一个类型的事件发生关联,当一个模块通知说前一个时间步上发生了过零,那么变步长求解器就会缩小步长,即使绝对误差和相对误差是可以接受的,它也会告知系统有事件发生。这个事件的通知过程如图7-1所示。 Simulink利用过零检测来解决这样的问题。它是在系统和求解器之间建立一种对话工作方式,对话包含的一个内容就是事件通知,Simulink将消息由系统传送到求解器,即系统告知求解器在前一个时间步上发生了一个事件,一个重要的事件就是“发生了一个过零!”,事件都由过零表示。过零通常在下面两个条件下产生: (1) 信号在上一个时间步改变了符号,即由正变负或者由负变正,包含变为0和离开0; (2) 模块在上一个时间步改变了模式,例如积分器进入了饱和区段。 使用Simulink中的过零检测后,模块在仿真开始时注册一组过零变量,其中的每个变量都是可能含有不连续状态变量的函数,当发生不连续时,过零函数会从正值或负值穿越零。在每个仿真步结束时,Simulink会要求每个已注册过零变量的模块更新变量,然后检查在仿真时间步的结束时刻是否有变量改变了符号,如果有,则表示在当前这个时间步上系统出现了不连续点。 如果检测到过零,则Simulink会对每个改变符号的变量在前一时间步和当前时间步之间进行插值,以估算过零的准确时刻;然后,Simulink再逐渐增加时间步,并依次越过过零点进行仿真。利用这种方法,Simulink避免了对不连续点的仿真,而在很多情况下,这些不连续点处的状态变量的值可能都没有定义。 7.1.2 过零检测的实现方式 过零检测可以使Simulink精确地仿真不连续点,而不必过多地选用小步长。实际上,Simulink中的许多模块都支持过零检测,在实际建模仿真中,如果用户对所有的系统,包括含有不连续环节的系统都利用过零检测进行仿真,那么不仅仿真过程的速度更快,而且精度也会提高。 虽然Simulink中的许多模块都能够产生过零,但各个模块的过零类型是有差异的。下面举例说明带有过零的Simulink模块的过零检测方式。例如,对于Abs模块来说,当输入信号改变符号时将产生一个过零事件;而对于Saturation(饱和)模块来说,当过零检测功能检测到Saturation模块中的如下事件时产生过零: 输入信号到达上限; 输入信号离开上限; 输入信号到达下限; 输入信号离开下限。 状态事件的检测依赖于模型内部过零信号的结构,这个信号并不受方块图的影响。对于Saturation模块,用来检测上限过零的信号为zcSignal = UpperLimit-u,这里,u是输入信号,UpperLimit是信号上限。 此外,过零信号还具有方向属性,带有方向的过零通常用来驱动其他模块。这个方向属性值包括: rising (上升沿R)—当信号上升穿越零时,或者信号由零值到正值时,产生过零; falling (下降沿F)—当信号下降穿越零时,或者信号由零值到负值时,产生过零; either (双边沿E)—当上升沿或下降沿发生时,产生过零。 图7-2说明了过零信号的方向属性。对于Saturation模块的
您可能关注的文档
最近下载
- 钢柱、钢梁、钢结构制作安装.pdf VIP
- xx售楼中心、样板间、会所物业服务方案.doc VIP
- 2025年贵州贵阳乌当富民村镇银行招聘客户经理笔试历年典型考题及考点剖析附带答案详解.docx
- 2025年初级钳工试题及答案钳工试题(含答案).docx VIP
- 一张奖状的动力(1).doc
- 框架钢结构施工组织设计.pdf VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 学校食堂食材配送服务方案(肉类、粮油米面、蔬菜水果类).docx VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 会计师事务所质量管理制度.docx VIP
文档评论(0)