第七章Simulink基础_第1页
第七章Simulink基础_第2页
第七章Simulink基础_第3页
第七章Simulink基础_第4页
第七章Simulink基础_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 Simulink基础基础主要内容主要内容7.1 Simulink简介简介7.2 Simulink的基本操作的基本操作7.3 系统仿真及参数设置系统仿真及参数设置7.4 Simulink模块库模块库7.5 Simulink子系统子系统7.1 Simulink7.1 Simulink简介简介 Simulink Simulink:用来对动态系统进行建模、仿真和分析的软件包,支持连续、用来对动态系统进行建模、仿真和分析的软件包,支持连续、离离 散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。 在在Simulink

2、Simulink环境中,环境中,利用鼠标就可以在模型窗口中直观地利用鼠标就可以在模型窗口中直观地“画画”出系统模出系统模型,然后直接进行仿真。它为用户提供了方框图进行建模的图形接口,采用型,然后直接进行仿真。它为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像你用手和纸来画一样容易。它与传统的仿真软件包微分这种结构画模型就像你用手和纸来画一样容易。它与传统的仿真软件包微分方程和差分方程建模相比,具有更直观、方程和差分方程建模相比,具有更直观、方便、灵活的优点。方便、灵活的优点。Simulink Sinks(输出方式)(输出方式) Source(输入源)(输入源) Linear(线性环

3、节)(线性环节) Nonlinear(非线性环节)(非线性环节) Connections(连接与接口)(连接与接口) Extra(其他环节)(其他环节)7.1 Simulink7.1 Simulink简介简介 采用采用ScopeScope模块和其他的画图模块,在仿真进行的同时,模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。除此之外,用户还可以在改变参就可观看到仿真结果。除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。仿真的结果还数后来迅速观看系统中发生的变化情况。仿真的结果还可以存放到可以存放到MATLABMATLAB的工作空间里做事后处理。的工作空间里做事后处理

4、。 用用SimulinkSimulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。 在定义完一个模型后,用户可以通过在定义完一个模型后,用户可以通过S

5、imulinkSimulink的菜单或的菜单或MATLABMATLAB的命令窗口的命令窗口键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。对于运行一大类仿真非常有用。7.1 Simulink7.1 Simulink简介简介 SimulinkSimulink非常实用,应用领域很广,可使用的领域非常实用,应用领域很广,可使用的领域包括航空航天、电子、力学、数学、通信、影视和控包括航空航天、电子、力学、数学、通信、影视和控制等。世界各地的工程师都在利用它来对实际问题建制等。世界各地的工程师

6、都在利用它来对实际问题建模,解决问题。模,解决问题。 模型分析工具包括线性化和平衡点分析工具、模型分析工具包括线性化和平衡点分析工具、MATLABMATLAB的许多工具及的许多工具及MATLABMATLAB的应用工具箱。由于的应用工具箱。由于MATLABMATLAB和和SimulinkSimulink的集成在一起的,因此用户可以在这的集成在一起的,因此用户可以在这两种环境下对自己的模型进行仿真、分析和修改。两种环境下对自己的模型进行仿真、分析和修改。 SimulinkSimulink具有非常高的开放性,提倡将模型通过框图表示出来,或者将已具有非常高的开放性,提倡将模型通过框图表示出来,或者将已

7、有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。 Simulink Simulink具有较高的交互性,允许随意修改模块参数,并且可以直接无缝具有较高的交互性,允许随意修改模块参数,并且可以直接无缝地使用地使用MATLABMATLAB的所有分析工具。对最后得到的结果可进行分析,并能够将结的所有分析工具。对最后得到的结果可进行分析,并能够将结果可视化显示。果可视化显示。7.27.2 Simulink Simulink 的基本操作的基本操作一、一、SimulinkSimulink的运行的运行 运行运行SimulinkSimuli

8、nk 有三种方式:有三种方式:在在MATLABMATLAB的命令窗口直接键入的命令窗口直接键入“SimulinkSimulink”并回车;并回车;单击单击MATLABMATLAB工具条上的工具条上的SimulinkSimulink 图标;图标;在在MATLABMATLAB菜单上选菜单上选FileFileNewNewModelModel二、常用的标准模块二、常用的标准模块附录附录C C以表格的形式给出以表格的形式给出SimulinkSimulink几个基本模块库中几个基本模块库中的模块功能简介,表格中的模块名和模块库中的模块的模块功能简介,表格中的模块名和模块库中的模块图标下的名称一致。图标下的

9、名称一致。7.27.2 Simulink Simulink 的基本操作的基本操作三、模块的操作三、模块的操作模块的选取模块的选取模块的复制、剪切、删除、移动模块的复制、剪切、删除、移动 模块的连接模块的连接 模块参数的设置模块参数的设置 例例7.2.1 已知单位负反馈二阶系统的开环传递函数为已知单位负反馈二阶系统的开环传递函数为 sssG47. 410)(2试绘制单位阶跃响应的实验结构图。试绘制单位阶跃响应的实验结构图。 10s +4.47s2Transfer FcnStepScope7.27.2 Simulink Simulink 的基本操作的基本操作模块的外形的调整模块的外形的调整改变模块

10、的大小改变模块的大小 调整模块的方向调整模块的方向 给模块加阴影给模块加阴影 模块名的处理模块名的处理 模块名的显示与消隐模块名的显示与消隐 修改模块名修改模块名例例7.2.2 将例将例7.2.1的结构图进行模块处理。的结构图进行模块处理。相加器示波器单位阶跃信号10s +4.47s2传递函数7.3 7.3 系统仿真及参数设置系统仿真及参数设置在在Simulink中建立起系统模型框图后,运行菜单【中建立起系统模型框图后,运行菜单【Simulation】|【Start】就可以用就可以用Simulink对模型进行动态仿真。一般在仿真运行前需要对仿真参对模型进行动态仿真。一般在仿真运行前需要对仿真参

11、数进行设置,运行菜单【数进行设置,运行菜单【Simulation】|【Parameters】完成设置。】完成设置。7.3 7.3 系统仿真及参数设置系统仿真及参数设置一、算法设置一、算法设置 在在Solver里需要设置仿真起始和终止时间、选择合适的解法(里需要设置仿真起始和终止时间、选择合适的解法(Solver)并)并指定参数、设置一些输出选择。指定参数、设置一些输出选择。1、设置起始时间和终止时间(、设置起始时间和终止时间(Simulation time)【Simulation】|【Start time】设置起始时间,而【】设置起始时间,而【Stop time】设置终止】设置终止时间,单位为

12、时间,单位为“秒秒”。2、算法设置、算法设置(Solver option)(1)算法类型设置)算法类型设置仿真的主要过程一般是求解常微分方程组,【仿真的主要过程一般是求解常微分方程组,【Solver option】|【Type】用来选择仿真算法的类型是变化】用来选择仿真算法的类型是变化的还是固定的。的还是固定的。7.3 7.3 系统仿真及参数设置系统仿真及参数设置变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,应该先指定一个容许误差限(【应该先指定一个容许误差限(【Relative tolerance】或【

13、】或【Absolute tolerance】),使得当误差超过误差限时自动修正仿真步长,【】),使得当误差超过误差限时自动修正仿真步长,【Max step size】用于设置最大步长,在缺省情况下为】用于设置最大步长,在缺省情况下为“auto”,并按下式计算最大步,并按下式计算最大步长:长:最大步长最大步长=(终止时间(终止时间-起始时间)起始时间)/50 (2)仿真算法设置)仿真算法设置离散模型:对变步长和定步长解法均采用离散模型:对变步长和定步长解法均采用discrete(no continuous state)。连续模型:有变步长和定步长两种解法。连续模型:有变步长和定步长两种解法。变步

14、长解法有:变步长解法有:ode45、ode23、ode113、ode15s、ode23s、ode23t,ode23st3、设置输出选项、设置输出选项 7.3 7.3 系统仿真及参数设置系统仿真及参数设置二、工作空间设置二、工作空间设置 工作空间设置(工作空间设置(Workspace I/O)窗口可以设置)窗口可以设置Simulink和当前工作空间和当前工作空间的数据输入、输出。通过设置,可以从工作空间输入数据、初始化状态模的数据输入、输出。通过设置,可以从工作空间输入数据、初始化状态模块,也可以把仿真结果、状态变量、时间数据保存到当前工作空间。块,也可以把仿真结果、状态变量、时间数据保存到当前

15、工作空间。从工作空间读入数据(从工作空间读入数据(Load from workspace )保存数据到工作空间保存数据到工作空间(Save to workspace)初始化状态模块初始化状态模块7.4 Simulink7.4 Simulink模块模块库库一、信号源模块库一、信号源模块库 Model & Subsystem InputsSignal GeneratorsUniform RandomNumberStepSine WaveSignal 1Signal BuilderSignalGeneratorRepeatingSequenceStairRepeatingSequenceIn

16、terpolatedRepeatingSequenceRandomNumberRampPulseGeneratorGrounduntitled.matFrom FilesiminFromWorkspace12:34Digital ClocklimCounterLimitedCounterFree-Running1ConstantClockChirp SignalBand-LimitedWhite Noise1In17.4 Simulink7.4 Simulink模块模块库库二、连续系统模块库二、连续系统模块库 Continuous-Time Linear SystemsContinuous-T

17、ime Delays(s-1)s(s+1)Zero-PoleTiVariableTransport DelayToVariableTime DelayTransportDelay1s+1Transfer Fcnx = Ax+Bu y = Cx+DuState-Space1sIntegratordu/dtDerivative7.4 Simulink7.4 Simulink模块模块库库三、离散系统模块库三、离散系统模块库 Sample & Hold DelaysDiscrete-Time Linear SystemsZero-OrderHoldWeightedMoving Averagez

18、1Unit Delayz-0.75zTransfer FcnReal Zeroz-0.75z-0.95Transfer FcnLead or Lag0.05zz-0.95Transfer FcnFirst Order 4DelaysTapped DelayMemory -4Z Integer DelayFirst-OrderHoldK Tsz-1Discrete-TimeIntegratory(n)=Cx(n)+Du(n)x(n+1)=Ax(n)+Bu(n)Discrete State-Space1 1+0.5z -1Discrete FilterK (z-1)Ts zDiscrete Der

19、ivative(z-1)z(z-0.5)DiscreteZero-Pole1z+0.5DiscreteTransfer Fcnz-1zDifference7.4 Simulink7.4 Simulink模块模块库库四、数学运算模块库四、数学运算模块库 Vector/Matrix OperationsMath OperationsComplex Vector Conversionsu+TsWeightedSample TimeMath-uUnary MinussinTrigonometricFunctionSum ofElementsSumSubtract1SliderGaintSine Wav

20、eFunctionSignfloorRoundingFunctionU( : )ReshapeReImReal-Imag toComplexProduct ofElementsProductP(u)O(P) = 5PolynomialuRymin(u,y)MinMaxRunningResettableminMinMaxHoriz CatMatrixConcatenationeuMathFunction|.|Magnitude-Angleto Complex1GainDot ProductDivideRe(u)Im(u)Complex toReal-Imag|u|uComplex toMagni

21、tude-Angleu+0.0BiasU1 - YU2 - Y(E)YAssignmentf(z)zSolvef(z) = 0Algebraic ConstraintAdd|u|Abs7.4 Simulink7.4 Simulink模块模块库库五、输出模块库五、输出模块库 Model & Subsystem OutputsSimulation ControlData Viewers1Out1XY GraphsimoutTo Workspaceuntitled.matTo FileTerminatorSTOPStop SimulationScopeFloatingScope0Displa

22、y7.4 Simulink7.4 Simulink模块模块库库六、非线性系统模块库六、非线性系统模块库 DiscontinuitiesWrap To ZeroupuloySaturationDynamicSaturationRelayupuloRate LimiterDynamicRate LimiterQuantizerHit CrossingupuloyDead ZoneDynamicDead ZoneCoulomb &Viscous FrictionBacklash7.5 Simulink7.5 Simulink子系统子系统一、一、SimulinkSimulink子系统简介子系统

23、简介 Simulink提供的子系统功能可以大大地增强提供的子系统功能可以大大地增强Simulink系统框图的可读性,可系统框图的可读性,可以不必了解系统中每个模块的功能就能够了解整个系统得框架。子系统可以以不必了解系统中每个模块的功能就能够了解整个系统得框架。子系统可以理解为一种理解为一种“容器容器”,我们可以将一组相关的模块封装到这个子系统模块当,我们可以将一组相关的模块封装到这个子系统模块当中,并且等效于原系统模块群的功能,而对其中的模块我们可以暂时不去了中,并且等效于原系统模块群的功能,而对其中的模块我们可以暂时不去了解。组合后的子系统可以进行类似模块的设置,在模型的仿真过程中可作为解。

24、组合后的子系统可以进行类似模块的设置,在模型的仿真过程中可作为一个模块。建立子系统的有以下两种方法:一个模块。建立子系统的有以下两种方法:7.5 Simulink7.5 Simulink子系统子系统1、在已有的系统模型中建立子系统、在已有的系统模型中建立子系统7.5 Simulink7.5 Simulink子系统子系统框选区域,然后右击,弹出浮动菜单,选择【框选区域,然后右击,弹出浮动菜单,选择【Creat Subsystem】7.5 Simulink7.5 Simulink子系统子系统创建子系统,然后双击创建子系统,然后双击Subsystem模块。模块。7.5 Simulink7.5 Sim

25、ulink子系统子系统简单建立模型,双击简单建立模型,双击Subsystem模块,在弹出的窗口中建立子系统模型。模块,在弹出的窗口中建立子系统模型。 2、在已有的系统模型中新建子系统、在已有的系统模型中新建子系统7.5 Simulink7.5 Simulink子系统子系统这两种创建子系统最后实现的是一模一样的功能,只不过操作顺序不同。这两种创建子系统最后实现的是一模一样的功能,只不过操作顺序不同。前者是先将这个结构搭建起来,然后将相关的模块封装起来;后者则是先前者是先将这个结构搭建起来,然后将相关的模块封装起来;后者则是先做一个封装容器,然后在封装容器中添加模块。做一个封装容器,然后在封装容器

26、中添加模块。对于一个相对简单的模型我们采用第一种,这种操作一般不会出错,能够对于一个相对简单的模型我们采用第一种,这种操作一般不会出错,能够顺利搭建模型。而对于非常复杂的系统,我们事先将模型分成若干个子系顺利搭建模型。而对于非常复杂的系统,我们事先将模型分成若干个子系统,然后再采用第二种方法进行建模。统,然后再采用第二种方法进行建模。1、子系统命名:、子系统命名:命名方法与模块命名方法类似,是拥有代表意义的文字命名方法与模块命名方法类似,是拥有代表意义的文字来对子系统进行命名,有利于增强模块的可读性。来对子系统进行命名,有利于增强模块的可读性。在使用在使用Simulink子系统建立模型时,有如

27、下几个常用的操作:子系统建立模型时,有如下几个常用的操作:7.5 Simulink7.5 Simulink子系统子系统2、子系统编辑:、子系统编辑: 用鼠标双击子系统模块图标,打开子系统并对其进行编辑。用鼠标双击子系统模块图标,打开子系统并对其进行编辑。3、子系统的输入:、子系统的输入: 使用使用Souces模块库中的模块库中的Input输入模块,即输入模块,即In1模块,作为子系统的输入端模块,作为子系统的输入端口。口。4、子系统的输出:、子系统的输出: 使用使用Sinks模块库中的模块库中的Output输出模块,即输出模块,即Out1模块,作为子系统的输出端模块,作为子系统的输出端口。口。

28、7.5 Simulink7.5 Simulink子系统子系统根据不同的控制信号,可将条件执行子系统分为:根据不同的控制信号,可将条件执行子系统分为:1、触发子系统、触发子系统2、使能子系统、使能子系统3、使能触发子系统、使能触发子系统二、二、SimulinkSimulink高级子系统应用高级子系统应用 三、封装子系统三、封装子系统 Simulink封装子系统的几个特点封装子系统的几个特点可以自定义封装子系统的图标;可以自定义封装子系统的图标;双击封装后的子系统,弹出参数对话框,其中对双击封装后的子系统,弹出参数对话框,其中对话框是自定义;话框是自定义;封装子系统的帮助文档都是自定义编写的;封装

29、子系统的帮助文档都是自定义编写的;封装子系统有自己的工作区域。封装子系统有自己的工作区域。7.5 Simulink7.5 Simulink子系统子系统一个一个PID控制器的控制器的Simulink模型模型,将其封装。,将其封装。7.5 Simulink7.5 Simulink子系统子系统点击右键选择菜单中的点击右键选择菜单中的Mask Subsystem进入进入Mask编辑窗口。编辑窗口。7.5 Simulink7.5 Simulink子系统子系统1、封装编辑器的图标编辑选项卡、封装编辑器的图标编辑选项卡(Icon)(1)图标显示设置)图标显示设置(Icon options) (2)图标绘制命

30、令栏()图标绘制命令栏(Drawing commands)(3)图标绘图命令示例)图标绘图命令示例(Examples of drawing commands)7.5 Simulink7.5 Simulink子系统子系统2、封装编辑器的参数设置选项卡(、封装编辑器的参数设置选项卡(Parameters)参数设置选项卡中包括如下几种设置内容:参数设置选项卡中包括如下几种设置内容: (1)参数设置控制)参数设置控制(2)参数描述)参数描述(3)变量)变量(4)参数设置描述)参数设置描述7.5 Simulink7.5 Simulink子系统子系统3、封装编辑器的初始化设置选项卡(、封装编辑器的初始化设

31、置选项卡(Initialization)4、封装编辑器的文档编辑选项卡(、封装编辑器的文档编辑选项卡(Documentation)Mask type Mask descriptionMask help S函数的建立S函数就是S-Functions,是System-Functions的缩写。当MATLAB所提供的模型不能完全满足要求时,就可以通过S函数提供给用户自己编写程序来满足自己要求模型的接口。S函数使用有固定格式,只能用于基于Simulink的仿真,并不能将其转换成独立于MATLAB的程序。S函数功能非常全面,适用于连续、离散以及混合系统。MATLAB提供了编写S函数的模板文件,该模板文件

32、位于MATLAB根目录toolboxSimulinkblocks下,文件名为sfunmpl.m,该文件给出了S函数完整的框架结构,包含一个主函数和若干子函数,每一个子函数都对应于一个flag值,用户还可以根据编程需要加以修正。 S函数的格式为:Function sys,x0,str,ts=sfun(t,x,u,flag,p1,p2,)其中sfun是S函数的函数名,t,x,u分别为时间、状态和输入信号,flag为标志位,p1,p2为参数。Flag值值仿真过程仿真过程调用的子函数调用的子函数功能功能0初始化初始化mdlInitializeSize()对连续对连续/离散状态变量个数、输入和输出的路离

33、散状态变量个数、输入和输出的路数、采样周数个数和值以及状态变量初值数、采样周数个数和值以及状态变量初值x0等进行初始设置。等进行初始设置。1连续状态变量更连续状态变量更新新mdlDerivatives ()计算连续状态变量的微分方程并由计算连续状态变量的微分方程并由sys变量返变量返回回2离散状态状态更离散状态状态更新新mdlUpdate()更新离散状态变量并由更新离散状态变量并由sys变量返回变量返回3计算输出计算输出mdlOutputs()计算输出信号由计算输出信号由sys变量返回变量返回4计算下一仿真时计算下一仿真时刻刻mdlGetTimeNextVarHit ()计算下一步的仿真时刻由计算下一步的仿真时刻由sys变量返回变量返回9终止终止mdlTerminate()终止仿真过程,不返回任何变量终止仿真过程,不返回任何变量S函数的模板格式为:function sys,x0,str,ts = sfuntmpl(t,x,u,flag)switch flag, case 0, sys,x0,str,ts=mdlInitializeSizes; %调用初始化子函数 case 1, sys=mdlDerivatives(t,x,u); %调用计算导数子函数 case 2, sys=mdlUpdate(t,x,u); %调用离散状态变量更新子函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论