1、第第7 7章章 SimulinkSimulink仿真环境仿真环境演示演示1 1个个SimulinkSimulink的简单程序的简单程序SimulinkSimulink仿真环境仿真环境Simulink是面向框图的仿真软件,具有以下功能:(1)用绘制方框图代替编写程序,结构和流程清晰。(2)智能化地建立和运行仿真,仿真精细,贴近实际。自动建立各环节的方程,自动在给定精度要求时以最快速度进行系统仿真。(3)适应面广,包括线性、非线性系统,连续、离散及混合系统;单任务、多任务离散事件系统。【例7.1】创建一个正弦信号的仿真模型,模型如图7.3所示。(1)在MATLAB的命令窗口输入“simulink”
2、,或单击MATLAB的“HOME”面板工具栏中的 图标,就可以打开Simulink模块库浏览器(Simulink Library Browser)窗口,如图7.1所示。Simulink的另一种打开方式是在MATLAB的命令窗口输入“simulink3”,则以图标的方式显示比较直观,但是使用时会打开很多窗口,图标方式的界面如图7.2所示。(2)单击Simulink界面工具栏上的 图标,或者单击MATLAB界面工具栏的“New”“Simulink Model”,新建1个名为“untitled”的空白模型窗口。(3)在如图7.1所示的右侧子模块窗口中,单击“Sources”子模块库,或者直接在左侧模
3、块和工具栏单击“Simulink”下的“Sources”子模块库,便可看到各种输入源模块。(4)若用鼠标单击所需的输入信号源模块“Sine Wave”(正弦信号),将其拖曳到空白模型窗口“untitled”,则“Sine Wave”模块就被添加到untitled窗口;也可以用鼠标选择“Sine Wave”模块,单击鼠标右键,在快捷菜单中选择“add to untitled”命令,就可以将“Sine Wave”模块添加到untitled窗口,如图7.3所示。(5)用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖到“untitled”窗口中。也可以直接在窗口输入模
4、块名“Scope”来添加模块,如图7.3所示,当输入时会出现下拉提示,可以在下拉选项中选择输入。(6)在“untitled”窗口中,两个模块建立好后就出现了一条虚拟的蓝色信号线,单击该信号线就完成了2个模块间的信号线连接,1个简单的模型便建成。(7)开始仿真。单击“untitled”模型窗口中的“Run”图标 ,或者选择菜单“Simulink”“Run”命令,则仿真开始。双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形,如图7.4所示,在图中的工具栏单击图标 也可以运行。(8)保存模型,单击工具栏的 图标,将该模型保存为“Ex0701.slx”文件。1个简单的仿真模型就建立了。如
5、果选择“Save as”也可以保存为“.mdl”文件。第第7 7章章 SimulinkSimulink仿真环境仿真环境SimulinkSimulink文件操作和模型窗口文件操作和模型窗口0101口口SimulinkSimulink文件操作文件操作SimulinkSimulink文件操作文件操作以下几种操作可以保存不同格式的仿真模型文件。(1)在Simulink的命令窗口选择菜单“Save”按钮或菜单,保存为“.slx”文件。(2)在Simulink的命令窗口选择菜单“File”“Save as”命令,可以保存为“.slx”或“.mdl”文件。(3)在Simulink模型窗口选择菜单“File”
6、“Export Model to”“Previous Version”命令可以将打开的“.slx”文件保存为“.mdl”文件。(4)在Simulink模型窗口选择菜单“File”“Save”命令可以将打开的“.mdl”文件保存为“.slx”文件。0202SimulinkSimulink模型窗口模型窗口1状态栏2工具栏SimulinkSimulink模型窗口模型窗口1 1状态栏状态栏状态栏用来显示仿真的状态。当鼠标指向菜单项和工具栏时,在状态栏显示其定义;“Ready”表示模型已准备就绪而等待仿真命令;“100%”表示编辑窗模型的显示比例;“auto(VariableStepAuto)”表示仿真
7、所选用的积分算法为自动的(步长自动变化)。在仿真过程中,状态栏还会出现动态信息。SimulinkSimulink模型窗口模型窗口2 2工具栏工具栏模型窗口工具栏如图7.5所示。第第7 7章章 SimulinkSimulink仿真环境仿真环境模型创建模型创建0101模块操作模块操作1模块的复制2模块的翻转模块操作模块操作1 1模块的复制模块的复制在不同模型窗口(包括模型库窗口)之间的模块复制很简单,只要选定模块,用鼠标将其拖到另一个模型窗口即可;而在同一模型窗口内复制模块则需要按住【Ctrl】键,再用鼠标拖曳对象到合适的地方,释放鼠标。模块操作模块操作2 2模块的翻转模块的翻转默认状态下的模块总
8、是输入端在左,输出端在右。若需要改变输入、输出端位置,则应翻转模块。(1)模块翻转180。选定模块,选择菜单“Rotate&Flip”“Flip Block”命令,选择可以将模块旋转180,如图7.6所示,中间为翻转180示波器模块。(2)模块翻转90。选定模块,选择菜单“Rotate&Flip”“Clockwise”或者“Counterclockwise”命令可以将模块旋转90,如图7.6右边示波器所示。如果1次翻转不能达到要求,可以通过多次翻转实现。模块操作模块操作3 3模块的编辑模块的编辑(1)修改模块名。单击模块下面或旁边的模块名,若出现虚线编辑框则可对该模块名进行修改。(2)模块名字
9、体设置。选定模块,单击鼠标右键,选择菜单“Format”“Font Style”命令,打开字体对话框设置字体。(3)模块名的显示和隐藏。选定模块,单击鼠标右键,选择菜单“Format”“Show Block name”,可以隐藏或显示模块名。(4)模块演示的设置。选定模块,单击鼠标右键,选择菜单“Format”“Foreground Color”或者“Background Color”,可以设置模块的前景色和背景色。0202信号线操作信号线操作1模块间连线2信号线的分支和折线3信号线文本注释(label)4在信号线中插入模块5给模型添加文本和图片信号线操作信号线操作1 1模块间连线模块间连线若
10、要将2个模块用信号线连接,则先将光标指向1个模块的输出端,待光标变为十字形后,按下鼠标左键并拖动,直到另1个模块的输入端。如果2个端口同时都是输入端或输出端,则不能产生连线。连线时如果出现蓝色的虚线可以单击直接连接。信号线操作信号线操作2 2信号线的分支和折线信号线的分支和折线(1)分支的产生方式。在模型框图中,1个信号往往需要分送到不同模块,需要绘制分支线,此时信号线中就会出现分支点。将光标指向信号线的分支点上,按住【Ctrl】键的同时按下鼠标左键,拖曳鼠标到分支线的终点,如图7.7所示。信号线操作信号线操作(2)信号线的折线。在用信号线连接模型时,经常需要将信号线转向,产生折线。选中已存在
11、的信号线,将光标指向折点处,按住【Shift】键,同时按下鼠标左键,当光标变成小圆圈时,用鼠标拖动小圆圈以将折点拉至合适处,释放鼠标,如图7.8所示。信号线操作信号线操作3 3信号线文本注释(信号线文本注释(labellabel)信号线文本注释有以下几种。(1)添加文本注释。双击需要添加文本注释的信号线,出现一个空的文字填写框,在其中可以输入文本。(2)修改文本注释。单击需要修改的文本注释,出现虚线编辑框后即可修改文本。(3)移动文本注释。单击文本注释,出现编辑框后,就可以移动编辑框。(4)复制文本注释。单击需要复制的文本注释,按下【Ctrl】键的同时移动文本注释,或者使用菜单和工具栏的复制操
12、作。信号线操作信号线操作4 4在信号线中插入模块在信号线中插入模块若模块只有1个输入端口和1个输出端口,则该模块可以直接被插入到1条信号线中。5 5给模型添加文本和图片给模型添加文本和图片添加模型的文本注释。在图7.3中界面左侧的浏览器条中选择 和 按钮,在需要添加文本和图片的位置,则会出现编辑框,在编辑框中可以输入文字和图片。第第7 7章章 SimulinkSimulink仿真环境仿真环境SimulinkSimulink基本模块基本模块SimulinkSimulink基本模块基本模块Simulink模型通常由3部分组成:输入模块(Source)、系统(System)及输出(Sink)模块。如
13、图7.9所示。输入模块提供信号源,包括信号源、信号发生器和用户自定义信号等;状态模块是被模拟的系统,是系统建模的核心;输出模块是信号显示模块,包括图形、数据和文件等。每个系统的模型不一定要包括三个部分,也可以只包括两个或一个部分。SimulinkSimulink基本模块基本模块1 1模块参数设置模块参数设置可以通过双击模块打开参数设置对话框或单击鼠标右键打开快捷菜单,也可以选择“Block Parameters”菜单项打开。(1)正弦信号源(Sine Wave)。双击正弦信号源模块,会出现如图7.10所示的“参数设置”对话框。图7.10所示的上部分为参数说明,Sine type为正弦类型,包括
14、Time-based和Sample-based;Amplitude为正弦幅值;Bias为幅值偏移值;Frequency为正弦频率;Phrase为初始相角;Sample time为采样时间。SimulinkSimulink基本模块基本模块(2)阶跃信号源(Step)。阶跃信号模块是输入信号源,其模块参数对话框如图7.11所示。其中,Step time为阶跃信号的变化时刻,Initial value为初始值,Final value为终止值,Sample time为采样时间。(3)从工作空间获取数据(From Workspace)。从工作空间获取数据模块的输入信号源。【例7.2】在工作空间计算变量t
15、和y,将其运算的结果作为系统的输入。t=0:0.1:10;y=sin(t);t=t;y=y;SimulinkSimulink基本模块基本模块将“From Workspace”模块的“参数设置”对话框打开,如图7.12(a)所示,在“Data”栏填写“t,y”,单击“OK”按钮,则在模型窗口中该模块显示如图7.12(b)所示。用示波器作为接收模块,可以查看输出波形为正弦波。SimulinkSimulink基本模块基本模块(4)从文件获取数据(From file)。从文件获取数据是指从mat数据文件中获取数据。将【例7.2】中的数据保存到.mat文件。t=0:0.1:2*pi;y=sin(t);y
16、1=t;y;save Ex0702 y1%保存在“Ex0702.mat”文件中将“From File”模块的“参数设置”对话框打开,如图7.13所示,在“File name”栏填写“Ex0702.mat”,单击“OK”按钮。用示波器作为接收模块,可以查看输出波形。SimulinkSimulink基本模块基本模块图7.13 “From File”模块的“参数设置”对话框SimulinkSimulink基本模块基本模块(5)传递函数(Transfer function)。传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图7.14所示。SimulinkSimulink基本模块基本模块在参
17、数设置对话框中,主要是设置分子多项式系数(Numerator)、分母多项式系数(Denominator)和绝对容许误差限(Absolute tolerance)。“Numerator”可以是向量或矩阵,“Denominator”是向量,“Absolute tolerance”提供误差限,仿真默认的误差限在Simulink Parameters对话框中设置。若在图7.14中设置“Denominator”为“1 1.414 1”,则在模型窗口中的显示如图7.15所示。SimulinkSimulink基本模块基本模块(6)示波器(Scope)。示波器模块用来接收输入信号并实时显示信号波形曲线,还可以
18、把数据送入工作空间。示波器窗口的工具栏可以调整显示的波形。显示正弦信号的示波器,如图7.16所示。SimulinkSimulink基本模块基本模块示波器可以进行仿真运行和单步运行,在工具栏中的 三个按钮与Simulink工具栏中的相同,可以进行步长设置、仿真运行和单步运行。当单击工具栏的 光标测量,可以使用光标在波形曲线上移动查看数据,如图7.17所示,可以在右侧看到对应两个点的坐标值。SimulinkSimulink基本模块基本模块当单击工具栏中的 按钮或者选择菜单“View”“Configuration Properties”,可以看到示波器的参数设置,如图7.18所示。示波器的参数设置如
19、图7.18(a)所示有四个面板,在“Main”面板中可以设置示波器的“Number of input ports”输入端口数和“Sample time”为采样时间;在图7.18(b)的Logging面板中可以设置示波器的存储数据个数,默认为5 000,不管示波器是否打开,只要仿真启动,缓冲区就接受信号数据。SimulinkSimulink基本模块基本模块2 2模块属性设置模块属性设置每个模块的属性对话框的内容都相同,选中模块后单击鼠标右键打开快捷菜单,选择“Block Properties”菜单项就可以打开“模块属性”对话框,如图7.19所示,包括3个选项卡:“General”、“Block
20、Annotation”和“Callbacks”。第第7 7章章 SimulinkSimulink仿真环境仿真环境复杂系统仿真与分析复杂系统仿真与分析0101仿真设置仿真设置1Solver页的参数设置2Data Import/Outport(数据输入/输出)页的设置仿真设置仿真设置Simulink的仿真参数都有默认的设置,但如果需要修改仿真参数,则可以在仿真运行前对仿真参数进行设置。在模型窗口选择菜单“Simulation”“Model Configuration Parameters”命令,则会打开“参数设置”对话框,如图7.20所示。仿真设置仿真设置1 1SolverSolver页的参数设置
21、页的参数设置Solver页的参数设置有如下几项。(1 1)Simulation timeSimulation time。仿真的起始时间(Start time):默认为0,单位为s。仿真的结束时间(Stop time):默认为10,单位为s。(2 2)Solver optionsSolver options。仿真的过程一般是求解微分方程组,“Solve options”的内容是针对解微分方程组的设置。“Type”:设置求解的类型,“Variable-step”(变步长)表示仿真步长是变化的,“Fixed-step”(定步长)表示固定步长。采用变步长解法,当仿真开始时,信号变化大,步长较小,当信号
22、变化小时步长可以变长;应该先指定一个容许误差限,当误差超过误差限时自动修正仿真步长,在变步长仿真时误差限的设置将关系到微分方程组解的精度。仿真设置仿真设置当求解类型为变步长时,有以下设置。“Max step size”:设置最大步长,默认为auto,最大步长为(Stop time-Start time)/50。“Min step size”:设置最小步长,默认为auto。“Initial step size”:设置初始步长,默认为auto。“Relative tolerance”:设置相对容许误差限。“Absolute tolerance”:设置绝对容许误差限。仿真设置仿真设置在每一步运算中,
23、程序都会将计算的值与预期值相减得出误差e,必须满足e plot(tout,yout)系统仿真举例系统仿真举例【例例7.47.4】根据图7.27所示电路图,已知R1=60,R2=20,R3=40,R4=40,电源Us1=180V,Us2=70V,Us3=20V,计算各支路电流Ia,Ib,Ic和Id。电路仿真主要使用的模块在SimscapeSimPowerSystems子模块库中,包括电阻、电容和电感以及电源等模块,SimPowerSystems模块库包括几个关键的子模块库Electrical Sources(电源库)、Elements(电路元件库)和Measurements(测量仪器库)。Ele
24、ctrical Sources:包括直流、交流电流源和电压源,也包括受控电压源和电流源。Elements:包括各种串联、并联负载,开关和接地等元件。Measurements:包括单相和三相的电压表、电流表等测量元件。系统仿真举例系统仿真举例用Simulink来创建电路模型,需要使用3个电压源(Dc Voltage Source),4个电阻(Series RLC branch),4个电流表(Current measurement)和4个显示模块(Display),则Simulink仿真模型如图7.28所示。系统仿真举例系统仿真举例各模块的参数设置如表7.1所示。子模块库模块模块名参数名参数值备注
25、Specialized Technology/Foundmantal Blockspowerguipowergui Specialized Technology/Foundmantal Blocks/Electrical SourcesDC Voltage SourceUs1amplitude(V)180电源电压值Us2amplitude(V)70电源电压值Us3amplitude(V)20电源电压值Specialized Technology/Foundmantal Blocks/ElementsSeries RLC branchR1Branch typeR支路类型 Resistance(O
26、hms)60电阻值Series RLC branchR2Branch typeR支路类型 Resistance(Ohms)20电阻值Series RLC branchR3,R4Branch typeR支路类型 Resistance(Ohms)40电阻值Specialized Technology/F o u n d m a n t a l B l o c k s/MeasurementCurrent MeasurementI1,I2,I3,I4 电流表SinksDisplayD1,D2,D3,D4 显示输出值系统仿真举例系统仿真举例【例例7.57.5】使用Simulink创建单相半波整流电路,
27、使用示波器观察晶闸管触发角与负载电路中的电流和电压的波形。单相半波整流电路是最简单的整流电路,其电路原理如图7.29所示。系统仿真举例系统仿真举例在Simulink中添加各模块,其中powergui模块、AC Voltage Source三相交流电源、Thyristor晶闸管、Pulse Generator脉冲发生器、Series RLC Branch电阻、Voltage Measurement电压表、Current Measurement电流表都是在Simscape/SimPowerSystems/Specialized Technology子模块库中的,另外还有Pulse 脉冲信号、Dem
28、ux信号分离器和Scope示波器,各模块的参数如表7.2所示。子 模 块 库模 块模 块 名参 数 名参 数 值备 注Foundmantal Blockspowerguipowergui Foundmantal Blocks/ElementsGroundGround 接地 Signal RoutingDemuxDemuxNumber of outputs2输出个数 Foundmantal Blocks/Electrical SourcesAC Voltage SourceUsPeak amplitude100电源电压Frequency50电源频率Power ElectronicsThyrist
29、orThyristorResistance Ron2晶闸管电阻Inductance Lon0.001晶闸管电感Foundmantal Blocks/ElementsSeries RLC BranchRcBranch typeR支路类型Resistance1电阻值SourcesPulse GeneratorPulse GeneratorAmplitude5幅值Period0.02周期Pulse Width2脉冲宽度系统仿真举例系统仿真举例创建的Simulink单相半波整流电路如图7.30所示。脉冲信号Pulse Generator接晶闸管的触发端g,周期为0.02秒;交流电源Us接a端,当g0而
30、且电压Uak0时,晶闸管导通。系统仿真举例系统仿真举例由于电源频率是50Hz,因此设置仿真时间为0.1秒,仿真算法采用ode23tb,则示波器显示如图7.31(a)所示,Iak为晶闸管电流,I1为负载电流,Uc是电源电压,U1为负载电压。在示波器的参数设置右边的下拉箭头,选择 四个窗口同时显示四个信号。如果修改导通角为45,则将Pulse Generator的Phase delay(secs)参数设置为0.02/8=0.0025秒,则示波器如图7.31(b)所示。系统仿真举例系统仿真举例【例7.6】控制部分为离散环节,被控对象为2个连续环节,其中1个有反馈环。反馈环引入了零阶保持器,输入为阶跃
31、信号。在实际中经常有复杂系统,既包含连续环节,也包含离散环节,有时不同的离散环节还具有多个采样速率。创建模型并仿真的方法如下。(1)选择1个“Step”模块,2个“Transfer Fcn”模块,2个“Sum”模块,2个“Scope”模块,1个“Gain”模块,在“Discrete”模块库选择1个“Discrete Filter”和1个“Zero-Order Hold”模块。(2)连接模块。将反馈环的“Gain”模块和“Zero-Order Hold”模块翻转。(3)设置参数。将“Discrete Filter”和“Zero-Order Hold”模块的“Sample time”都设置为0.1
32、s;“Discrete Filter”的分子为1.44 1.26,分母为1-1。(4)添加文本注释,离散系统框图如图7.32所示。系统仿真举例系统仿真举例(5)设置颜色。Simulink为帮助用户方便地跟踪不同采样频率的运作范围和信号流向,可以采用不同的颜色表示不同的采样频率,选择菜单“Display”“Sample time”“color”命令,就可以看到不同采样频率的模块颜色不同。(6)开始仿真。在Simulink模型窗口,选择菜单“Simulation”“Simulation parameters”命令,将“Max step size”设置为0.05s,则2个示波器“Scope”(d(k
33、)示波器)和“Scope1”(y(t)示波器)的显示如图7.33所示。系统仿真举例系统仿真举例(7)修改参数,将“Discrete Filter”模块的“Sample time”设置为0.6s,“Zero-Order Hold”模块的“Sample time”不变;可以看到“Discrete Filter”模块的颜色变化了;然后开始仿真,可以看出当T=0.6,Tk=0.1时,系统出现振荡。示波器显示如图7.34所示。系统仿真举例系统仿真举例(8)修改参数,将“Discrete Filter”和“Zero-Order Hold”模块的“Sample time”都设置为0.6s,框图会更新颜色,开
34、始仿真。当T=Tk=0.6时,系统出现强烈的振荡。示波器显示如图7.35所示。0303仿真结构参数化仿真结构参数化仿真结构参数化仿真结构参数化【例7.7】将【例7.6】中的模块结构参数用变量表示,离散系统框图如图7.36所示。仿真结构参数化仿真结构参数化将参数设置放在Ex0705_1.m文件中。%Ex0705_1 参数设置T=0.6;%控制环节采样时间Tk=0.6;%零阶保持器采样时间k=0.03;%Gain增益zt1=1.44;zt2=1.26;zt3=1;zt4=1;tf11=6.7;tf12=0.1;tf13=1;tf21=1;tf22=3;tf23=1在MATLAB工作空间运行该文件。
35、Ex0705_1在Simulink模型窗口中,开始仿真,示波器显示结果和图7.35相同。第第7 7章章 SimulinkSimulink仿真环境仿真环境子系统与封装子系统与封装0101建立子系统建立子系统1在已建立的模型中新建子系统2在已有的子系统基础上建立1 1在已建立的模型中新建子系统在已建立的模型中新建子系统如果要在模型中新建1个子系统,可以按以下步骤操作。(1)先打开或新建1个模型,建立模型中的各模块并用信号线连接。(2)在模型窗口中,用鼠标拖曳1个虚线框以将需要建立子系统的部分框起来,然后选择“Create subsystem”命令,这时原来虚线框中的部分就被1个“Subsystem
36、”模块代替。(3)更改子系统名。新建的子系统名默认为“Subsystem”,以后建立的子系统则在名称后面加数字,可以更改为有一定含义的名称,以便于分析时查看。(4)重命名输入、输出端口名称,新建的子系统中的默认输入端口名为“In1”、“In2”、,输出端口名为“Out1”、“Out2”、。【例7.8】打开【例7.6】建立的模型,将控制对象中的第1个连续环节中的反馈环建立为1个子系统。在模型窗口中,将控制对象中的第1个连续环节的反馈环用鼠标拖出的虚线框框住,则出现如图7.37(a)所示的显示。选择“Create Subsystem”,则系统就如图7.37(b)所示。双击该Subsystem模块则
37、会出现“Subsystem”模型窗口,即子系统模型窗口,如图7.38(a)所示。可以看到子系统模型除了用鼠标框住的2个环节,还自动添加了1个输入模块“In1”和1个输出模块“Out1”。在模型窗口中开始仿真,可以看到示波器的显示和原来相同。2 2在已有的子系统基础上建立在已有的子系统基础上建立如果要在已有的子系统基础上建立1个子系统,可以按以下步骤操作。(1)将已有的子系统复制到新窗口。(2)双击打开子系统模型窗口,重新放置模块,建立连接和输入、输出端口。(3)将子系统与其他模块连接。(4)修改子系统名和其他参数。【例7.9】在【例7.8】的基础上建立新子系统,将【例7.8】模型的控制对象中的
38、第1个对象环节作为1个完整的子系统。将图7.37(b)中的所有对象都复制到新的空白模型窗口中,双击打开子系统“Subsystem”,则出现如图7.38(a)所示的子系统模型窗口,添加模型构成反馈环形成闭环系统,如图7.38(b)所示。将系统模型修改为如图7.39所示的包含子系统的模型。创建的子系统可以打开和修改,但不能再解除子系统设置。0202条件执行子系统条件执行子系统1使能子系统(Enabled Subsystem)2触发子系统(Triggered Subsystem)3使能触发子系统(Enabled and Triggered Subsystem)条件执行子系统条件执行子系统1 1使能子
39、系统(使能子系统(Enabled SubsystemEnabled Subsystem)使能子系统是指当控制信号从负数朝正数变化至大于0时执行,而当控制信号变为负数时停止执行的子系统。控制信号可以是标量也可以是向量,如果是标量,则该标量值大于0时子系统执行;如果是向量,则当向量中任何1个元素大于0时,子系统都执行。建立使能子系统的步骤如下。(1)建立1个新模型。(2)在“Ports&Subsystems”子模块库选择“Enabled Subsystem”模块,放在子系统模型窗口中。(3)将“Enabled Subsystem”模块的“In1”、“Out1”和“Enable”()3个端口与其他模
40、块连接。其中“Enable”端口为使能的条件控制信号。(4)设置“Enabled Subsystem”模块的参数。双击打开该模块的模型窗口,如图7.40所示。其内部结构为“In1”和“Out1”连接,“Enable”单独。条件执行子系统条件执行子系统在图7.40中双击“Enable”模块,出现如图7.41(a)所示的对话框,“States when enabling”栏有2个下拉选项:“held”表示当使能系统再次执行时,保持上一次执行后的状态,“reset”表示再次执行时复位到初始状态。如果勾选“Show output port”,则“Enabled Subsystem”模块会添加1个输出端
41、,用于输出控制信号。条件执行子系统条件执行子系统在图7.40中双击“Out1”模块,出现如图7.41(b)所示的对话框,“Output when disabled”栏有2个下拉选项:“held”表示当子系统停止执行后,输出端口的值保持输出值;“reset”表示停止执行后输出端口复位到初始值。条件执行子系统条件执行子系统【例7.10】建立一个用使能子系统控制正弦信号为半波整流信号的模型。模型由正弦信号“Sine Wave”为输入信号源,示波器“Scope”为接收模块,使能子系统“Enabled Subsystem”为控制模块,连接模块,将“Sine Wave”模块的输出作为“Enabled Su
42、bsystem”的控制信号,其模型如图7.42(a)所示。开始仿真,由于“Enabled Subsystem”的控制为正弦信号,大于0时执行输出,小于0时就停止,则示波器显示为半波整流信号,如图7.42(b)所示。条件执行子系统条件执行子系统2 2触发子系统(触发子系统(Triggered SubsystemTriggered Subsystem)触发子系统是指当触发事件发生时开始执行的子系统。建立触发子系统的步骤如下。(1)建立1个新模型。(2)在“Ports&Subsystems”子模块库选择“Triggered Subsystem”模块 放在子系统模型窗口中。(3)将“Triggered
43、 Subsystem”模块的“In1”、“Out1”和“Triggered”()3个端口与其他模块连接,其中“Triggered”端口为触发条件控制信号。,(4)设置“Triggered Subsystem”模块的参数。双击打开该模块的模型窗口,其内部结构为“In1”和“Out1”连接,“Trigger”单独。条件执行子系统条件执行子系统【例7.11】建立1个用触发子系统控制正弦信号输出阶梯波形的模型。模型由正弦信号“Sine Wave”为输入信号源,示波器“Scope”为接收模块,触发子系统“Triggered Subsystem”为控制模块,选择“Sources”模块库中的“Pulse G
44、enerator”模块为控制信号。连接模块,将“Pulse Generator”模块的输出作为“Triggered Subsystem”的控制信号,其模型如图7.43(a)所示,设置其Period为2,Pulse width为50。开始仿真,由于“Triggered Subsystem”的控制为“Pulse Generator”模块的输出,示波器显示如图7.43(b)所示。条件执行子系统条件执行子系统3 3使能触发子系统(使能触发子系统(Enabled and Triggered SubsystemEnabled and Triggered Subsystem)使能触发子系统是触发子系统和使能
45、子系统的组合,含有触发信号和使能信号2个控制信号输入端,触发事件发生后,Simulink检查使能信号是否大于0,大于0就开始执行。“Enable”(使能)和“Trigger”(触发)端的参数设置可以分别进行,在Trigger端口中设置触发类型,在Enable端口中设置子系统再次开始执行时的状态值,“Out1”端口模块的参数设置和使能子系统相同。1封装子系统的步骤0303子系统的封装子系统的封装1封装子系统的步骤2Icon&Ports选项卡3Parameters&Dialog选项卡4Initialization选项卡5Documentation选项卡子系统的封装子系统的封装1 1封装子系统的步骤
46、封装子系统的步骤(1)选中子系统双击打开,给需要进行赋值的参数指定1个变量名。(2)单击鼠标右键,选择菜单“Mask”“Create Mask”命令,出现封装对话框。(3)在封装对话框中设置参数,主要有“Icon&Ports”、“Parameters&Dialog”、“Initialization”和“Documentation”4个选项卡。子系统的封装子系统的封装2 2Icon&PortsIcon&Ports选项卡选项卡Icon&Ports选项卡用于设定封装模块的名字和外观,其参数设置如图7.44所示。子系统的封装子系统的封装(1)Icon drawing commands栏。Drawing
47、 commands用来建立用户化的图标,可以在图标中显示文本、图像、图形或传递函数等。在Drawing commands栏中的命令如图7.44中“Examples of drawing commands”的下拉列表所示,包括plot、disp、text、port_label、image、patch、color、droots、dpoly和fprintf。常用的命令有如下3种。port_label:在封装模块表面标注端口和文字。disp:在封装模块表面显示变量和文字。plot:在封装模块表面画线。子系统的封装子系统的封装(2)Options栏:用于设置封装模块的外观。1234Block frame
48、:“Visible”用来显示封装模块的外框线,“Invisible”用来隐藏外框线。Icon transparency:“Opaque”用来隐藏封装模块的输入/输出端口说明,“Transparent”用来显示输入/输出端口说明。Icon rotation:用于翻转封装模块,与Simulink中的翻转模块功能相同。Icon units:用于画图时的坐标系选项,选择“Autoscale”时根据绘制点确定坐标系,坐标中最小和最大的x和y分别在图标的左上角和右下角;选择“Normalized”时规定左上角坐标为(0,0),右下角坐标为(1,1);“Pixel”以像素为单位绘制图形。子系统的封装子系统的
49、封装3 3Parameters&DialogParameters&Dialog选项卡选项卡Parameters&Dialog选项卡用于输入变量名称和相应的提示,其参数设置如图7.45所示。子系统的封装子系统的封装(1)左边一栏是输入控件,包括Edit文本框、Check box复选框、Popup下拉列表、Radio button单选按钮、Slider滚动条、Dial刻度盘等。可以将左边的控件直接拖放到中间,添加输入控件。(2)Dialog box区包括以下选项。Prompt:输入变量的含义,其内容会显示在输入提示中。Variable:输入变量的名称。Type:输入控件的类型。(3)右边的Prop
50、erty editor区,用来设置输入控件的具体参数值。子系统的封装子系统的封装4 4InitializationInitialization选项卡选项卡Initialization选项卡用于初始化封装子系统,在“Initialization commands”中输入MATLAB命令,当装载模块,开始仿真或更新模块框图时运行初始化命令。5 5DocumentationDocumentation选项卡选项卡Documentation选项卡用于编写与该封装模块对应的Help和说明文字,分别有“Mask type”、“Mask Description”和“Mask help”栏。(1)Type栏:用