动态系统建模仿真.pptx
《动态系统建模仿真.pptx》由会员分享,可在线阅读,更多相关《动态系统建模仿真.pptx(196页珍藏版)》请在咨信网上搜索。
1、第9章 使用子系统 第第9章章 使用子系统使用子系统 9.1 创建子系统创建子系统 9.2 创建条件执行子系统创建条件执行子系统 9.3 控制流语句控制流语句 第9章 使用子系统 9.1 创创建建子子系系统统当用户模型的结构非常复杂时,可以通过把多个模块组合在子系统内的方式来简化模型的外观。利用子系统创建模型有如下优点:减少了模型窗口中显示的模块数目,从而使模型外观结构更清晰,增强了模型的可读性;在简化模型外观结构图的基础上,保持了各模块之间的函数关系;可以建立层级方块图,Subsystem模块是一个层级,组成子系统的其他模块在另一层上。第9章 使用子系统 9.1.1 Simulink子系统定
2、义子系统定义1虚拟子系统虚拟子系统虚拟子系统在模型中提供了图形化的层级显示。它简化了模型的外观,但并不影响模型的执行,在模型执行期间,Simulink会平铺所有的虚拟子系统,也就是在执行之前就扩展子系统。这种扩展类似于编程语言,如C或C+中的宏操作。第9章 使用子系统 2非虚拟子系统非虚拟子系统(1)原子子系统(Atomic Subsystem)。原子子系统与虚拟子系统的主要区别在于,原子子系统内的模块作为一个单个单元执行,Simulink中的任何模块都可以放在原子子系统内,包括以不同速率执行的模块。用户可以在虚拟子系统内通过选择Treat as atomic unit选项来创建原子子系统。第
3、9章 使用子系统(2)使能子系统(Enabled Subsystem)。使能子系统的动作类似原子子系统,不同的是它只有在驱动子系统使能端口的输入信号大于零时才会执行。用户可以通过在子系统内放置Enable模块的方式来创建使能子系统,并通过设置使能子系统内Enable端口模块中的States when enabling参数来配置子系统内的模块状态。此外,利用Outport输出模块的Output when disabled参数可以把使能子系统内的每个输出端口配置为保持输出或重置输出。第9章 使用子系统(3)触发子系统(Triggered Subsystem)。触发子系统只有在驱动子系统触发端口的信
4、号的上升沿或下降沿到来时才会执行,触发信号沿的方向由Trigger端口模块中的Trigger type参数决定。Simulink限制放置在触发子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发子系统的执行具有非周期性,即子系统内模块的执行是不规则的。用户可以通过在子系统内放置Trigger模块的方式来创建触发子系统。第9章 使用子系统(4)函数调用子系统(Function-Call Subsystem)。函数调用子系统类似于用文本语言(如M语言)编写的S-函数,只不过它是通过Simulink模块实现的。用户可以利用Sta
5、teflow图、函数调用生成器或S-函数执行函数调用子系统。Simulink限制放置在函数调用子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为函数调用子系统的执行具有非周期性。用户可以通过把Trigger端口模块放置在子系统内,并将Trigger type参数设置为function-call的方式来创建函数调用子系统。第9章 使用子系统(5)触发使能子系统(Enabled and Triggered Subsystem)。触发使能子系统在系统被使能且驱动子系统触发端口的信号的上升沿或下降沿到来时才执行,触发边沿的方向由Tr
6、igger端口模块中的Trigger type参数决定。Simulink限制放置在触发使能子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发使能子系统的执行具有非周期性。用户可以通过把Trigger端口模块和Enable模块放置在子系统内的方式来创建触发使能子系统。第9章 使用子系统(6)Action子系统。Action子系统具有使能子系统和函数调用子系统的交叉特性,其只能限制一个采样时间,即连续采样时间、离散采样时间或继承采样时间。Action子系统必须由If模块或Switch Case模块执行,与这些子系统模块连接的
7、所有Action子系统必须具有相同的采样时间。用户可以通过在子系统内放置Action端口模块的方式来创建Action子系统,子系统图标会自动反映执行Action子系统的模块类型,也就是If模块或Switch Case模块。第9章 使用子系统 Action子系统至多执行一次,利用Output端口模块的Output when disabled参数,Action子系统也可以控制是否保持输出值,这是与使能子系统类似的地方。Action子系统与函数调用子系统类似,因为函数调用子系统在任何给定的时间步内可以执行多于一次,而Action子系统至多执行一次。这种限制就表示Action子系统内可以放置非周期性的
8、模块,而且也可以控制状态和输出的行为。第9章 使用子系统(7)While-子系统。While-子系统在每个时间步内可以循环多次,循环的次数由While Iterator模块中的条件参数控制。用户可以通过在子系统内放置While Iterator模块的方式来创建While-子系统。While-子系统与函数调用子系统相同的地方在于它在给定的时间步内可以循环多次,不同的是它没有独立的循环指示器(如Stateflow图),而且,通过选择While Iterator模块中的参数,While-子系统还可以存取循环次数,通过设置States when starting参数还可以控制当子系统开始执行时状态是否
9、重置。第9章 使用子系统(8)For-子系统。For-子系统在每个模型时间步内可执行固定的循环次数,循环次数可以由外部输入给定,或者由For Iterator模块内部指定。用户可以通过在子系统内放置For Iterator模块的方式来创建For-子系统。For-子系统也可以通过选择For Iterator模块内的参数来存取当前循环的次数。For-子系统在给定时间步内限制循环次数上与While-子系统类似。第9章 使用子系统 9.1.2 创建子系统创建子系统在Simulink中创建子系统的方法有两种:把Ports&Subsystems模块库中的Subsystem模块添加到用户模型中,然后打开Su
10、bsystem模块,向子系统窗口中添加所包含的模块;先向模型中添加组成子系统的模块,然后把这些模块组合到子系统中。第9章 使用子系统 1添加添加Subsystem模块创建子系统模块创建子系统首先将Ports&Subsystems模块库中的Subsystem模块拷贝到模型窗口中,如图9-1所示;然后双击Subsystem模块,Simulink会在当前窗口或一个新的模型窗口中打开子系统,如图9-2所示。子系统窗口中的Inport模块表示来自于子系统外的输入,Outport模块表示外部输出。第9章 使用子系统 图9-1 第9章 使用子系统 图9-2 第9章 使用子系统 用户可以在子系统窗口中添加组成
11、子系统的模块。例如,图9-3中的子系统包含了一个Sum模块,两个Inport模块和一个Outport模块,这个子系统表示对两个外部输入求和,并将结果通过Outport模块输出到子系统外的模块。此时的子系统图标也变成图9-3中的右图所示。第9章 使用子系统 图9-3 第9章 使用子系统 2组合已有模块创建子系统组合已有模块创建子系统如果模型中已经包含了用户想要转换为子系统的模块,那么可以把这些模块组合在一起来创建子系统。以图9-4中的模型为例,用户可以用鼠标将需要组合为子系统的模块和连线用边框线选取,当释放鼠标按钮时,边框内的所有模块和线均被选中;然后选择Edit菜单下的Create Subsy
12、stem命令,Simulink会将所选模块用Subsystem模块代替。第9章 使用子系统 图9-4 第9章 使用子系统 图9-5显示的是选择了 Create Subsystem命令后的模型。如果打开Subsystem模块,那么Simulink将显示下层的子系统模型,如图9-6所示。Inport模块和Outport模块只是表示来自于子系统外部的输入和输出到子系统外部的模块。第9章 使用子系统 图9-5 第9章 使用子系统 图9-6 第9章 使用子系统 9.1.3 浏览层级子系统浏览层级子系统用户可以利用Subsystem模块创建由多层子系统组成的层级模型,这样做的好处是显而易见的不仅使用户模型
13、的界面更清晰,而且模型的可读性也更强。对于模型层级比较多的复杂模型,一层一层打开子系统浏览模型显然是不可取的,这时用户可以利用Simulink中的模型浏览器来浏览模型。模型浏览器可以执行如下操作:按层级浏览模型;在模型中打开子系统;确定模型中所包含的模块;快速定位到模型中指定层级的模块。第9章 使用子系统 图9-7 第9章 使用子系统 模型浏览器只有在Microsoft Windows平台上可用,这里以Simulink中的engine模型为例介绍如何使用Windows下的模型浏览器。在engine模型窗口中选择View菜单下的Model browser options命令,在下拉菜单中选择Mo
14、del browser命令,即可打开模型浏览器,如图9-8所示。第9章 使用子系统 图9-8 第9章 使用子系统 此时模型窗口被分割为两个面板。左面的面板以树状结构显示组成模型的各层子系统,树状结构的根结点对应的是最顶层模型,所有的子系统以分支形式显示在左侧面板中;右面的面板显示对应系统的模型结构图。如果要查看系统的模型方块图或组成系统的任何子系统,则可以在树状结构中选择这个子系统,此时模型浏览器右侧的面板中会显示相应系统的结构方块图。图9-9中显示的是Throttle&Manifold子系统结构图,该子系统下还有两个子系统:Intake Maniflod和Throttle,可以单击这两个子系
15、统查看相应的结构图。第9章 使用子系统 图9-9 第9章 使用子系统 第9章 使用子系统 9.2 创建条件执行子系统创建条件执行子系统条件执行子系统也是一个子系统,但在模型中是否执行条件子系统则取决于其他条件信号。这个控制子系统执行的信号称为控制信号,控制信号在单独的控制输入端口进入子系统。当用户想要建立复杂的模型,而且模型中某些组件的执行依赖于其他组件时,条件执行子系统就非常有用了。第9章 使用子系统 Simulink支持如下几种类型的条件执行子系统:使能子系统(Enabled Subsystem):当控制信号为正时,使能子系统执行。该子系统在控制信号过零(从负到正方向)时开始执行,并且在控
16、制信号保持为正时继续执行。触发子系统(Triggered Subsystem):每次当触发事件发生时,触发子系统执行一次。触发事件可以发生在触发信号的上升沿或下降沿。触发信号可以是连续信号,也可以是离散信号。触发使能子系统(Triggered and Enabled Subsystem):当触发事件发生时,如果使能控制信号为正值,则触发使能子系统执行一次。第9章 使用子系统 控制流语句(control flow statement):控制流语句在控制流模块下可执行类似C语言的控制流逻辑算法,执行的模块均在被控制子系统内。在if-else和switch控制流中,控制模块均在被控制子系统外,并向被
17、控制子系统内的Action Port模块发送控制信号;而在while、do-while和for控制流中,具有重复控制的模块在子系统内,它没有明显的控制信号。第9章 使用子系统 9.2.1 使能子系统使能子系统使能子系统在控制信号为正值时的仿真步上开始执行。一个使能子系统有单个的控制输入,控制输入可以是标量值或向量值。如果控制输入是标量,那么当输入大于零时子系统开始执行;如果控制输入是向量,那么当向量中的任一分量大于零时子系统开始执行。例如,假设控制输入信号是正弦波信号,那么子系统会交替使能和关闭,如图9-10所示,图中向上的箭头表示使能系统,向下的箭头表示关闭系统。第9章 使用子系统 图9-1
18、0 第9章 使用子系统 1.创建使能子系统创建使能子系统若要在模型中创建使能子系统,可以从Simulink中的Ports&Subsystems模块库中把Enable模块拷贝到子系统内,这时Simulink会在子系统模块图标上添加一个使能符号和使能控制输入口。以图9-5中的模型为例,添加Enable模块后的子系统图标如图9-11所示。第9章 使用子系统 图9-11 第9章 使用子系统 打开使能子系统中每个Outport输出端口模块对话框,并为Output when disabled参数选择一个选项,如图9-12所示。选择held选项表示让输出保持最近的输出值。选择reset选项表示让输出返回到初
19、始条件,并设置Initial output值,该值是子系统重置时的输出初始值。Initial output值可以为空矩阵,此时的初始输出等于传送给Outport模块的模块输出值。在执行使能子系统时,用户可以通过设置Enable模块参数对话框来选择子系统状态,或者选择保持子系统状态为前一时刻值,或者重新设置子系统状态为初始条件。第9章 使用子系统 打开Enable模块对话框,如图9-13所示,为States when enabling参数选择一个选项:选择held选项表示使状态保持为最近的值;选择reset选项表示使状态返回到初始条件。第9章 使用子系统 图9-12 第9章 使用子系统 图9-1
20、3 第9章 使用子系统 Enable模块对话框的另一个选项是Show output port复选框,选择这个选项表示允许用户输出使能控制信号。这个特性可以将控制信号向下传递到使能子系统,如果使能子系统内的逻辑判断依赖于数值,或者依赖于包含在控制信号中的数值,那么这个特性就非常有用。第9章 使用子系统 2.允许使能子系统包含的模块允许使能子系统包含的模块使能子系统内可以包含任意Simulink模块,包括Simulink中的连续模块和离散模块。使能子系统内的离散模块只有当子系统执行时,而且只有当该模块的采样时间与仿真的采样时间同步时才会执行,使能子系统和模型共用时钟。使能子系统内也可以包含Goto
21、模块,但是在子系统内只有状态端口可以连接到Goto模块。例如,图9-14中的模型是一个包含四个离散模块和一个控制信号的系统。第9章 使用子系统 图9-14 第9章 使用子系统 模型中的离散模块如下:Unit Delay A模块,采样时间为0.25秒;Unit Delay B模块,采样时间为0.5秒;Unit Delay C模块,在使能子系统内,采样时间为0.125秒;Unit Delay D模块,在使能子系统内,采样时间为0.25秒。使能控制信号由标签为Signal E的Pulse Generator模块产生,该模块在0.375秒时由0变为1,并在0.875秒时返回0。第9章 使用子系统 图9
22、-15 第9章 使用子系统 Unit Delay A模块和Unit Delay B模块的执行不受使能控制信号的影响,因为它们不是使能子系统的一部分。当使能控制信号变为正时,Unit Delay C模块和Unit Delay D模块以模块参数对话框中指定的采样速率开始执行,直到使能控制信号再次变为0。需要说明的是,当使能控制信号在0.875秒变为零时,Unit Delay C模块并不执行。第9章 使用子系统 3.使能子系统的模块约束使能子系统的模块约束在使能子系统内,Simulink会对与使能子系统输出端口相连的带有恒值采样时间的模块进行如下限制:如果用户用带有恒值采样时间的Model模块或S-
23、函数模块与条件执行子系统的输出端口相连,那么Simulink会显示一个错误消息。Simulink会把任何具有恒值采样时间的内置模块的采样时间转换为不同的采样时间,如以条件执行子系统内的最快速离散速率作为采样时间。第9章 使用子系统 为了避免Simulink显示错误信息或发生采样时间转换,用户可以把模块的采样时间改变为非恒值采样时间,或者使用Signal Conversion模块替换具有恒值采样时间的模块。下面说明如何用Signal Conversion模块来避免这种错误发生。图9-16中的模型有两个带有恒值采样时间的模块,当仿真模型时,Simulink会把使能子系统内Constant模块的采样
24、时间转换为Pulse Generator模块的速率。如果用户选择了Format菜单下Port/Signal Displays子菜单下的Sample Time Colors命令来显示采样时间的颜色,那么Simulink会把Pulse Generator模块和使能子系统显示为红色,而把使能子系统外的Constant模块和Outport模块显示为深红色,以表示这些模块仍然具有恒值采样时间。接下来把模型保存为consys.mdl。第9章 使用子系统 图9-16 第9章 使用子系统 图9-17 第9章 使用子系统 图9-18 第9章 使用子系统 为了解决这个问题,在Model模块的第二个输出和使能子系统
25、的Outport模块之间插入一个Signal Conversion模块,如图9-19所示。这时再运行仿真,则没有错误产生。如果选择了Format菜单下Port/Signal Displays子菜单下的Sample Time Colors命令来显示采样时间的颜色,则Model模块和使能子系统模块都显示为黄色,表示这些模块都是混合系统,也就是说模型包含了多个采样时间。第9章 使用子系统 图9-19 第9章 使用子系统 4示例示例例例9-1 使能子系统。要求:系统在控制信号作用下实现不同的函数关系。给定的输入信号为正弦波信号,控制信号为方波信号,要求控制信号为正时驱动子系统输出正弦波信号的绝对值,禁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 系统 建模 仿真
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。