首页 第5章 Simulink子系统技术

第5章 Simulink子系统技术

举报
开通vip

第5章 Simulink子系统技术第5章Simulink子系统技术5.1Simulink简单子系统概念:回顾与复习5.2Simulink高级子系统技术5.3Simulink的子系统封装技术5.1Simulink简单子系统概念:回顾与复习5.1.1通用子系统的生成在使用Simulink子系统技术时,通常子系统的生成有如下两种方法:(1)在已经建立好的系统模型之中建立子系统(如图5.1所示)。首先选择能够完成一定功能的一组模块,然后选择Simulink模型创建编辑器中Edit菜单下的CreateSubsystem,即可建立子系统并将这些模块封装到此子系...

第5章  Simulink子系统技术
第5章Simulink子系统技术5.1Simulink简单子系统概念:回顾与复习5.2Simulink高级子系统技术5.3Simulink的子系统封装技术5.1Simulink简单子系统概念:回顾与复习5.1.1通用子系统的生成在使用Simulink子系统技术时,通常子系统的生成有如下两种方法:(1)在已经建立好的系统模型之中建立子系统(如图5.1所示)。首先选择能够完成一定功能的一组模块,然后选择Simulink模型创建编辑器中Edit菜单下的CreateSubsystem,即可建立子系统并将这些模块封装到此子系统中,Simulink自动生成子系统的输入与输出端口。图5.1子系统建立:由模块组生成子系统(2)在建立系统模型时建立空的子系统(如图5.2所示)。使用Subsystems模块库中的Subsystem模块建立子系统,首先构成系统的整体模型,然后编辑空的子系统内的模块。注意,对于多输入与多输出子系统而言,需要使用Sources模块库中的In1输入虚模块与Sinks模块库中的Out1输出虚模块来实现。图5.2子系统建立:生成空子系统并编辑5.1.2子系统的基本操作在用户使用Simulink子系统建立系统模型时,有几个简单的操作比较常用,这里做一个简单的列举:(1)子系统命名:命名方法与模块命名类似。为增强系统模型的可读性,应使用有代表意义的文字给子系统进行命名。(2)子系统编辑:用鼠标左键双击子系统模块图标,打开子系统以对其进行编辑。(3)子系统的输入:使用Sources模块库中的Inport输入模块(即In1模块)作为子系统的输入端口。(4)子系统的输出:使用Sinks模块库中的Outport输出模块(即Out1模块)作为子系统的输出端口。5.2Simulink高级子系统技术条件执行子系统的执行受到控制信号的控制,根据控制信号对条件子系统执行的控制方式的不同,可以将条件执行子系统划分为如下的几种基本类型。(1)使能子系统:是指当控制信号的值为正时,子系统开始执行。(2)触发子系统:是指当控制信号的符号发生改变时(也就是控制信号发生过零时),子系统开始执行。触发子系统的触发执行有三种形式:①控制信号上升沿触发:控制信号具有上升沿形式。②控制信号下降沿触发:控制信号具有下降沿形式。③控制信号的双边沿触发:控制信号在上升沿或下降沿时触发子系统。(3)函数调用子系统:这时条件子系统是在用户自定义的S-函数中发出函数调用时开始执行。有关S-函数的概念将在后续章节中介绍。5.2.1条件执行子系统的建立方法在进一步介绍条件执行子系统之前,首先介绍如何建立条件执行子系统(如图5.3所示)。其中需要使用Subsystems模块库中的EnabledSubsystem(使能子系统)模块、TriggeredSubsystem(触发子系统)模块及EnabledandTriggeredSubsystem(使能触发子系统)模块。在建立条件执行子系统前需要注意以下两点:(1)对于Simulink的早期版本而言,不存在专门的Subsystems模块库。(2) Simulink系统模型的最高层不允许使用Enable与Trigger信号,而仅允许在子系统中使用。图5.3中并没有建立一个完整的动态系统的模型,而仅仅是给出建立条件执行子系统的方法,因此并没有给出执行系统所需的使能信号源与触发信号源(如图5.3中椭圆曲线所示,使能输入端与触发输入端采用不同的信号标志)。如果此时用户运行此系统进行仿真,MATLAB命令窗口中会给出输入端口没有信号连接的警告,而且系统的输出均为0。图5.3条件执行子系统的建立方法示意图【例5.1】使能子系统的建立与仿真。按照5.1节中的方法建立如图5.4所示的动态系统模型。在此系统模型中,存在着两个由方波信号驱动的使能子系统(图中虚线框所框的子系统,以A与B表示)。当控制信号(即系统模型中的方波信号)为正时开始执行子系统A,控制信号为负时(方波信号经过一反相信号操作,由Math模块库中的LogicalOperator逻辑操作模块NOT操作符实现)开始执行子系统B。图5.5所示为使能子系统A与B的结构以及相应的使能状态设置。5.2.2使能子系统所谓的使能子系统,是指只有当子系统的使能信号输入为正时,子系统才开始执行。图5.4使能子系统模型图5.5使能子系统A、B的内部实现及使能参数设置此系统模型中各模块的参数设置如下:(1)系统输入为采用默认设置的正弦信号(即单位幅值,单位频率的单位正弦信号)。(2)使能子系统的控制信号源,使用Sources模块库中的PulseGenerator脉冲信号发生器所产生的方波信号。其设置为:脉冲周期(Period)为5s,其余采用默认设置。(3)使能子系统A中的使能信号,其使能状态设置为重置reset;使能子系统B中的使能信号,其使能状态设置为保持held。(4)下方使能子系统中饱和模块(Saturation),其参数设置为:饱和上限为0.75,饱和下限为-0.75。(5)偏移常数信号,其参数设置分别为[20]与[02],如图5.4中系统模型所示。(6)系统输出Scope模块参数设置,如图5.6所示。系统仿真参数设置如下:(1)仿真时间:设置仿真时间范围为0至20s。(2)求解器设置:采用默认设置,即连续变步长,具有过零检测能力的求解器。图5.6Scope模块参数设置图5.7【例5.1】中使能子系统的仿真结果从图5.7中可以明显看出,只有在控制信号为正时,使能子系统才输出,而且设置不同的使能状态可以获得不同的结果(结果被重置或被保持)。对于采用状态重置的使能子系统A,其输出被重置;而采用状态保持的使能子系统B,其输出被保持。如果在使能子系统中存在着状态变量,那么当使能模块状态设置为重置时,它的状态变量将被重置为初始状态(可能不为零),当使能模块设置为保持时,它的状态变量将保持不变。至于系统的输出,取决于系统的状态变量以及系统的输入信号,这里不再赘述。5.2.3触发子系统所谓的触发子系统指的是只有在控制信号的符号发生改变的情况下(也就是控制信号出现过零事件时),子系统才开始执行。如前所述,根据控制信号符号改变方式的不同可以(1)上升沿触发子系统。系统在控制信号出现上升沿时开始执行。(2)下降沿触发子系统。系统在控制信号出现下降沿时开始执行。(3)双边沿(上升沿或下降沿)触发子系统。系统在控制信号出现任何过零时开始执行。【例5.2】触发子系统的建立与仿真 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 。在这个例子中,存在着三个使用不同触发方式的触发子系统,分别是上升沿触发、下降沿触发以及双边沿触发。图5.8所示为此系统的系统模型。图5.8触发子系统的系统模型与触发类型设置下面给出系统模型中各个系统模块的参数以及仿真参数设置,最后给出系统仿真结果并进行一定的分析。模块参数设置如下:(1)系统输入正弦信号,其模块参数除频率选择为8rad/sec外,其余采用默认的参数。(2)系统触发控制信号为方波信号,使用Sources模块库中的信号发生器SignalGenerator模块生成方波信号,其参数设置为:波形waveform为方波square,幅值为0.5,频率为1Hz。(3)系统输出Scope模块。在Scope模块参数设置中,设置其坐标轴数目为4,以使用4个示波器同时显示4组信号。其方法与使能子系统中一样,这里不再赘述。(4)各触发子系统参数设置如图5.8中所示。分别设置其触发方式为Rising、Falling及Either即可。系统仿真参数设置如下:(1)仿真时间范围0至8s。(2)采用变步长连续求解器,最大步长为0.01,以避免信号的不连续。运行此系统进行仿真,仿真结果如图5.9所示。其中第一个示波器输出为系统输入正弦图5.9触发子系统的仿真结果5.2.4触发使能子系统在介绍条件执行子系统时已经提到,对于某些条件执行子系统而言,其控制信号可能不止一个。在很多情况下,条件执行子系统同时具有触发控制信号与使能控制信号,这样的条件执行子系统一般称之为触发使能子系统。顾名思义,触发使能子系统指的是子系统的执行受到触发信号与使能信号的共同控制,也就是说,只有当触发条件与使能条件均满足的情况下,子系统才开始执行。触发使能子系统的工作原理如图5.10所示。图5.10触发使能子系统的工作原理5.2.5其它子系统介绍在SimulinkBlockLibrary(Simulink模块库,版本4.1)中的Subsystems子系统模块库中除了前面所介绍的通用子系统、触发子系统、使能子系统之外,Simulink还提供了许多其它的条件执行子系统。图5.12所示为Subsystems模块库中的所有子系统模块。在此对其进行简单的介绍。(1)可配置子系统(ConfigurableSubsystem):用来代表用户自定义库中的任意模块,只能在用户自定义库中使用。图5.12Subsystems模块库中的所有子系统模块(2)函数调用子系统(Function-CallSubsystem):使用S-函数的逻辑状态而非普通的信号作为触发子系统的控制信号。函数调用子系统属于触发子系统,在触发子系统中触发模块Trigger的参数设置中选择Function-Call可以将由普通信号触发的触发子系统转换为函数调用子系统,如图5.13所示。图5.13函数调用触发类型设置(3) For循环子系统(ForIteratorSubsystem):For循环子系统的目的是在一个仿真时间步长之内循环执行子系统。(4) While循环子系统(WhileIteratorSubsystem):与For循环子系统相类似,While循环子系统同样可以在一个仿真时间步长内循环执行子系统,但是其执行必须满足一定的条件。(5)选择执行子系统(SwitchCaseActionSubsystem):在某些情况下,系统对于输入的不同取值,分别执行不同的功能。(6)表达式执行子系统(IfActionSubsystem):为了与前面的条件执行子系统相区别,这里我们称IfActionSubsystem为表达式执行子系统。此子系统的执行依赖于逻辑表达式的取值,这与C语言中的IfElse语句类似。需要注意的是,表达式执行子系统必须同时使用If模块与IfActionSubsystem模块(均在Subsystems模块库中)。5.3Simulink的子系统封装技术5.3.1如何封装子系统封装子系统与建立子系统并不相同,建立子系统指的是将具有一定功能的一组模块“容纳”在一个子系统之中,使用单一图形方式的子系统模块来表示一组模块,从而增强系统模型的可读性,在动态系统进行仿真时需要对子系统中各个模块的参数分别进行设置;而封装子系统指的是将已经建立好的具有一定功能的子系统进行封装,封装的目的在于生成用户自定义的模块,此模块与子系统的功能完全一致。封装子系统具有如下特点:(1)自定义子系统模块及其图标。(2)用户双击封装后的图标时显示子系统参数设置对话框。(3)用户自定义子系统模块的帮助文档。(4)封装后的子系统模块拥有自己的工作区。因此,使用封装子系统技术具有以下优点:(1)向子系统模块中传递参数,屏蔽用户不需要看到的细节。(2)“隐藏”子系统模块中不需要过多展现的内容。(3)保护子系统模块中的内容,防止模块实现被随意篡改。【例5.3】以第5章中人口动态变化的非线性离散模型为例说明子系统的封装技术。解:封装子系统的基本过程如下:(1)打开人口动态变化的非线性离散模型框图。(2)生成需要进行封装的子系统。(3)选择需要封装的子系统,单击鼠标右键选择Masksubsystem,或使用Edit菜单项中的相应命令进行子系统封装。封装子系统的基本流程图如图5.14所示,图中上方为系统原始模型框图,中间为使用子系统的系统模型框图。图5.14子系统封装流程示意图5.3.2封装编辑器之图标编辑对话框当选择Masksubsystem菜单命令进行子系统封装时,将出现如图5.15所示的封装编辑器并显示图标编辑对话框。使用此编辑器可以对封装后的子系统进行各种编辑。这里首先介绍图标编辑对话框的功能与使用。在默认情况下,封装子系统不使用图标。但友好的子系统图标可使子系统的功能一目了然。为了增强封装子系统的界面友好性,用户可以自定义子系统模块的图标。只需在图标编辑对话框中的子系统模块图标绘制命令栏(DrawingCommands)中使用MATLAB中相应的命令便可绘制模块图标,并可设置不同的参数控制图标界面的显示。下面逐一介绍各对话框的使用。图5.15封装编辑器之图标编辑对话框1.封装类型(MaskType)封装类型用来对封装后的子系统进行简短的说明。在此例中,用户可以键入PopulationSampleMask。它将显示在参数对话框的左上角。2.图标显示界面控制参数通过设置不同的参数可使模块图标具有不同的显示形式。控制参数共有四种。1)图标边框设置(Iconframe)功能:设置图标边框为可见(Visible)或不可见(Invisible),如图5.16所示,其中左侧表示图标边框可见,而右侧表示边框不可见。图5.16边框设置示意图2)图标透明性设置(Icontransparency)功能:设置图标为透明(Transparency)或不透明(Opaque)显示,如图5.17所示,其中左侧为图标不透明,而右侧表示图标透明(此时在图标后面的内容如模块端口标签可以被显示出)。图5.17图标透明显示设置示意图5.18图标旋转显示设置示意图3)图标旋转性设置(Iconrotation)功能:设置图标为固定(Fixed)或可旋转(Rotates)显示,如图5.18所示,其中左侧表示图标不可旋转,而右侧表示图标可以旋转(图标随模块的旋转而旋转)。4)图标绘制坐标系设置(Drawingcoordinates)功能:设置图标绘制命令所使用的坐标系单位,仅对plot与text命令有效。其选项分别为自动缩放(Autoscale)、像素(Pixels)以及归一化表示(Normalized)。3.图标绘制命令栏(Drawingcommands)封装后子系统模块的图标均是在图标绘制命令栏中绘制完成的。使用不同的绘制命令可以生成不同的图标如描述性的文本、系统状态方程、图像以及图形等。如果在此栏中键入多个绘制命令,则图标的显示会按照绘制命令顺序显示。1)图标为描述性文本使用如下的绘制命令可以在模块图标上显示文本:disp('text')%text表示图标文本disp(variablename)%variablename为工作空间中的字符串变量名text(x,y,'text')text(x,y,stringvariablename)%stringvariablename为已存在的字符串变量名text(x,y,text,'horizontalAlignment',halign,'verticalAlignment',valign)%halign与valign分别表示文本水平与垂直对齐方式,其取值不再赘述fprintf('text')fprintf('format',variablename)%format表示文本的格式port_label(port_type,port_number,label)%此命令可以显示模块的端口名称,其中port_type为端口类型,取值为'input'或'output‘%port_number为端口数目,label为端口文本如果需要显示多行文本,可以使用\n表示换行。这时封装后的子系统图标为描述性文本,如图5.19所示。图5.19图标绘制为文本2)图标为系统状态方程使用dpoly命令在设置封装后子系统模块的图标为系统传递函数,或采用droots命令设置为系统零极点传递函数,其命令格式为dpoly(num,den)dpoly(num,den,'character')droots(z,p,k)其中num、den分别为分子与分母多项式,'character'(如s或是z)为系统频率变量,z、p、k分别为零点、极点与系统增益。需要注意的是,num、den、z、p、k均为MATLAB工作空间中已经存在的变量,否则绘制命令的执行将出现错误。绘制封装后子系统的图标为系统传递函数如图5.20所示。num=[1],den=[121]为MATLAB中的变量。图5.20图标绘制为系统传递函数3)图标为图像或图形使用plot命令与image命令可以设置封装后子系统模块的图标为图形或图像。尽管一般的MATLAB命令不能在图标绘制命令栏中直接使用,但它们的返回值可以作为图标绘制命令的参数。绘制封装后子系统模块的图标为图形或图像,如图5.21所示。图5.21图标绘制为图像与图形5.3.3封装编辑器之参数初始化对话框子系统封装最主要的目的之一便是提供一个友好的参数设置界面。一般的用户无需了解系统内部实现,只需提供正确的模块参数,以使用特定模块的特定功能,从而完成系统设计与仿真分析的任务。如果只是绘制了模块的图标,则模块并没有被真正封装,因为在双击模块时仍显示模块内部的内容,并且始终直接使用来自MATLAB工作空间中的参数。对通常的子系统与封装后的子系统作一个简单的比较:(1)通常的子系统可以视为MATLAB脚本文件,其特点是子系统没有输入参数,可以直接使用MATLAB工作空间中的变量。(2)封装后的子系统可以视为MATLAB的函数,其特点是封装后的子系统提供参数设置对话框输入参数;不能直接使用MATLAB工作空间中的变量;拥有独立的模块工作区(工作空间);包含的变量对其它子系统及模块不可见;可以在同一模型中使用同样的子系统而其取值可各不相同。在【例5.3】中已经介绍了如何将指定的子系统进行封装并进行图标绘制,这里仍以人口变化的非线性离散系统模型为例说明如何对封装后的子系统的参数输入对话框进行设置。在这个人口变化的简单模型中,系统的动力学方程由如下的差分方程来描述:其中表示某一年的人口数量,表示人口繁殖速率,表示新增资源所能满足的个体数目。因此在封装后子系统模块的参数设置界面中,应该提供相应的初始参数、繁殖速率以及。图5.22子系统模块参数设置(参数初始化)下面对参数初始化选项卡的内容作逐一介绍。1.参数设置控制参数设置控制包括添加(Add)、删除(Delete)、上移(Up)与下移(Down),它们分别表示在即将生成的参数设置对话框中添加、删除、上移与下移模块需要的输入参数。2.参数描述(Prompt)参数描述指的是对模块输入的参数作简单的说明,其取值最好能够说明参数的意义或者作用。3.参数对应变量(Variable)参数对应变量表示键入的参数值将传递给封装后的子系统工作空间中相应的变量,在此使用的变量必须与子系统中所使用的变量具有相同的名称。4.参数设置描述参数设置描述包括参数控制类型(Controltype)、参数分配类型(Assignment)以及下拉选项框(Popupstrings)。其中控制类型包括Edit(需要用户键入参数值,适合多数情况)、Checkbox(复选框,表示逻辑值)及Popup(弹出参数选项以供选择取值,弹出参数选项用Popupstrings栏中由'|'隔开的字符串表示)。5.初始化命令栏(Initializationcommands)初始化命令为一般的MATLAB命令,在此可以定义封装后子系统工作空间中的各种变量,这些变量可以被封装子系统模块图标绘制命令、其它初始化命令或子系统中的模块使用。当出现下述情况时,Simulink开始执行初始化命令:(1)模型文件被载入。(2)框图被更新或模块被旋转。(3)绘制封装子系统模块图标时。在参数设置对话框中输入正确的参数,设置人口的初始值为p=100000、人口繁殖速率为r=1.05,而新增资源所能满足的个体数目K=1000000。然后单击Apply或OK按钮并采用与第5章中相同的仿真参数。运行系统,其仿真结果如图5.24所示。图5.23封装后子系统的参数设置对话框图5.24系统仿真结果5.3.4封装编辑器之文档编辑对话框Simulink模块库中的内置模块均提供了简单的描述与详细的帮助文档,这可以大大方便用户的使用与理解。对于用户自定义的模块(即封装后的子系统),Simulink提供的文档编辑功能同样可使用户建立自定义模块的所有帮助文档。图5.25所示为封装编辑器中文档编辑选项卡(Documentation),使用文档编辑可以建立用户自定义模块的简单描述文档与模块的详细帮助文档(包括模块的所有信息,可以使用HTML格式编写)。图5.25封装编辑器的文档编辑图5.26带有模块简单描述的参数设置对话框编写一个好的文档对于系统的设计与开发往往是至关重要的,它便于用户对系统的使用与维护。如果这时单击Help帮助按钮,用户可以MATLAB中的帮助系统中获得模块的更进一步的说明与其它的所有相关信息,如图5.27所示。图5.27子系统模块的帮助文档【例】创建一个二阶系统,并将子系统进行封装创建一个二阶系统,将其闭环系统构成子系统,并封装将阻尼系数zeta和无阻尼频率wn作为输入参数。(1)创建模型,并将系统的阻尼系数用变量zeta表示,无阻尼频率用变量wn表示,如图所示。图7.46二阶系统模型(2)用虚线框框住反馈环,选择菜单“Edit”“CreateSubsystem”,则产生子系统图7.47子系统模型(3)封装子系统,选择菜单“Edit”“Masksubsystem”,出现封装对话框,将zeta和wn作为输入参数。在Icon选项卡中设置的“Drawingcommands”栏中写文字并画曲线,命令如下:disp('二阶系统')plot([012310],-exp(-[012310]))在Parameters选项卡中,单击“Add”按钮添加两个输入参数,设置“Prompt”分别为“阻尼系数”和“无阻尼振荡频率”,并设置“type”栏分别为“Popup”和“edit”,对应的“Variable”为“zeta”和“wn”,设置“Popups”为“00.30.50.70712”。在Initialization选项卡初始化输入参数,图7.48(a)Parameters选项卡(b)Initialization选项卡在Documentation选项卡中输入提示和帮助信息图7.48(c)Documentation选项卡单击“OK”按钮,完成参数设置,然后双击该封装子系统,则出现如图(a)所示的封装子系统,双击该子系统出现图(b)所示的输入参数对话框,在对话框中输入“阻尼系数”zeta和“无阻尼振荡频率”wn的值,再不需要为子系统中的每个模块分别打开参数设置对话框了。图7.49(a)封装子系统外观(b)封装子系统参数输入对话框
本文档为【第5章 Simulink子系统技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
正方体
暂无简介~
格式:ppt
大小:7MB
软件:PowerPoint
页数:80
分类:
上传时间:2022-05-11
浏览量:3