《MATLAB教程及实训 第4版》课件 第7章Simulink仿真环境实训_第1页
《MATLAB教程及实训 第4版》课件 第7章Simulink仿真环境实训_第2页
《MATLAB教程及实训 第4版》课件 第7章Simulink仿真环境实训_第3页
《MATLAB教程及实训 第4版》课件 第7章Simulink仿真环境实训_第4页
《MATLAB教程及实训 第4版》课件 第7章Simulink仿真环境实训_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第7章Simulink仿真环境7.1Simulink的概述7.2Simulink的工作环境7.3常用模块及仿真命令7.4Simulink的应用实例7.5子系统与封装7.6S函数的设计与应用7.7综合实例介绍7.1Simulink的概述1.Simulink的特点(1)设计简单,系统结构使用方框图绘制,以绘制模型化的图形代替程序输入,以鼠标操作代替编程;(2)分析直观,用户不需要考虑系统模块内部,只要考虑系统中各模块的输入输出;(3)仿真快速、准确,智能化地建立各环节的方程,自动地在给定精度要求下以最快速度仿真,还可以交互式地进行仿真。7.2Simulink的工作环境在MATLAB的命令窗口输入“simulink”,或单击“Home”面板的工具栏中,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口。左侧以树状结构列出模块库和工具箱,右侧列出的是左侧所选模块库中所有的子模块库;在右栏选择子模块库名或在左栏双击子模块库名都可以打开子模块库。7.2.1一个简单的Simulink实例例7-1

将一个阶跃输入信号送到积分环节,并将阶跃输入信号积分后的信号和阶跃信号都送到示波器进行比较。1.创建空白模型2.添加模块3.设置模块的属性参数4.添加连接线5.设置模型的仿真参数6.仿真7.保存模型7.2.2模型的编辑1.模块的操作模块的设置、翻转、修改模块名和信号线与模块分离。2.信号线的操作信号线的设置、分支、注释、属性3.模型的文本注释

7.2.3仿真参数的设置1.仿真器参数设置(Solver)(1)仿真时间(Simulationtime)仿真的起始时间(Starttime):默认为0,单位为秒;仿真的结束时间(Stoptime):默认为10,单位为秒。(2)仿真模式选择(Solverselection)仿真的过程一般是求解微分方程组,“Type”是设置求解的类型,“Variable-step”表示仿真步长是变化的,“Fixed-step”表示固定步长。“Solver”:设置仿真解法的具体算法类型。变步长的算法有discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb、odeN和daessc,默认使用auto;定步长的算法有discrete、ode8、ode5、ode4、ode3、ode2、ode1、ode14x和ode1be。这些算法中ode45为四/五阶龙格库塔法适用于大多数连续或离散系统;如果模型全部是离散的,则都采用discrete方式;ode23达到同样精度时比ode45的步长小;ode23s和ode15s可以解Stiff方程;ode113是变阶的Adams法,为多步预报校正算法。

2.工作空间数据输入输出的设置(DataImport/Outport)(1)从工作空间装载数据(Loadfromworkspace)(2)保存数据到工作空间(Savetoworkspace)(3)变量保存设置(Saveoptions)练习关于仿真模式正确的是______ A.仿真步长的变化由相对误差决定

B.系统的仿真算法一般是discrete

C.系统的仿真算法一般是ode45

D.系统的仿真算法一般是ode23tbAC7.2.4Simulink的工作过程仿真包括以下几个步骤。(1)模型编译(2)连接(3)仿真执行仿真执行包括两个阶段:(1)初始化阶段,只执行一次,用于初始化系统的状态和输出;(2)迭代阶段,每隔一个时间步就重复执行一次,用于计算并更新模型新的输入、状态和输出。每个仿真步都做如下操作:按照模块的排列顺序,更新模型中所有模块的输出;更新模型中所有模块的状态;根据用户的设置决定是否检测模块连续状态中的不连续性;计算下一个时间步的时间。例

创建一个单位负反馈的二阶系统,输入为阶跃信号,二阶系统采用零极点模式的传递函数模块,将输出送到示波器显示。参数设置ModelExplorer7.3常用模块及仿真命令

7.3.1Simunlik的常用模块1.示波器(Scope)显示设置显示形式示波器可以进行仿真运行和单步运行,在工具栏中的与Simulink工具栏中的相同,可以进行步长设置、仿真运行和单步运行。波器的主要参数有:Limitdatapointstolast:表示缓冲区接收数据的长度,默认为5000,示波器的缓冲区可接收30个信号,数据长度为5000,如果数据长度超出,则最早的历史数据会被清除。Logdatatoworkspace:把示波器缓冲区中保存的数据以矩阵或结构数组的形式送到工作空间,在下面两栏设置变量名“Variablename”和数据类型“Format”。输入端口数2.从工作空间获取数据(Fromworkspace)和从文件获取数据(Fromfile)Fromworkspace和Fromfile分别是从工作空间和MAT文件输入数据,都在“Sources”子模块库中。3.输出到文件(ToFile)和输出到工作空间(ToWorkspace)4.传递函数(Transferfunction)和零极点传递函数(Zero-Pole)例

创建一个单位负反馈的二阶系统,采用传递函数模块作为系统模型,并将输出送到MAT文件中。

6.零阶保持器(Zero-OrderHold)7.选择开关(Switch)例

使用Switch模块对输入的正弦信号和三角锯齿波信号进行选择输出,t>=5秒时输出正弦信号,t<5时输出锯齿波信号,然后采样保持送到示波器显示。设置模块SineWave的Frequency频率参数为2;SignalGenerator的Waveform为sawthooth,Frequency频率参数为2;Step的Steptime参数为5;Switch模块的Criteriaforpassingfirstinput参数为u2>Threshold;Zero-OrderHold模块的Sampletime为0.1。7.3.2使用命令运行Simulink模型启动模型的仿真可以使用sim函数来完成。simOut=sim('model',Name,Value)%利用输入参数进行仿真说明:'model'为模型名,其余参数都可以省略;simOut是仿真结果,是Simulink.SimulationOutput类型数据;Name和Value是用名称-值对指定的参数,包括SimulationMode、AbsTol等参数。例

>>Simout=sim('ex7_6'); %运行仿真7.3.3仿真结构参数化例将单位负反馈二阶系统的参数使用变量表示,变量的值存放在“ex7_6_2.m”文件中。模块参数的三个变量在“ex7_6_2.m”文件中设置,则文件内容如下:%ex7_6_2设置参数T1,T2,KT1=1;T2=2;K=10;7.4Simulink的应用实例

7.4.1Simulink在电路中的应用实例例7-6

根据电路桥电路创建一个Simulink模型,求电路中的电流,电路如图,已知电阻R=5Ω,Ra=25Ω,Rb=100Ω,Rc=125Ω,Rd=100Ω,Re=37.5Ω,求当直流电源为40V时电路中的电流。7.4.2Simulink在数字电路中的应用实例例

创建一个Simulink模型实现三-八译码器的仿真。7.4.3Simulink在电机拖动中的应用实例

例使用Simulink建立他励直流电动机电枢串联三级电阻起动的仿真模型,观察并分析在串联电阻起动过程中电枢电流、转速和电磁转矩的变化曲线。串电阻启动7.5子系统与封装

7.5.1创建子系统在模型中新建子系统的步骤如下:(1)将模型中需要创建成子系统的模块都选中;(2)选择菜单“Edit”→“Createsubsystem”,将选中的模块用“Subsystem”模块代替;(3)修改子系统名,新建的子系统名默认为“Subsystem”;(4)修改输入输出端口名,新建子系统中的输入端口默认名为“In1”、“In2”…,输出端口名为“Out1”、“Out2”…,可以修改端口名称。例

将例7-9的Simulink模型中的串电阻环节创建为子系统。7.5.2封装子系统封装子系统的步骤:(1)选择需要封装的子系统并双击打开,将需要设置的模块参数设置为变量;(2)选择菜单“Mask”→“CreateMask…”,打开封装对话框MaskEditor,设置“Icon&Ports”、“Parameters&Dialog”、“Initialization”和“Documentation”选项卡的各种参数,对子系统的外观、输入参数、初始值和文字说明进行设置;(3)保存设置。例串电阻环节进行封装,实现在子系统的参数对话框中输入三级电阻的阻值。封装对话框中有“Icon&Ports”、“Parameters&Dialog”、“Initialization”和“Documentation”四个选项卡。7.5.3子系统模块的应用在模块库Ports&Subsystems中有一些子系统模块,包括原子子系统AtomicSubsystem、使能子系统EnabledSubsystem、使能触发子系统EnabledandTriggeredSubsystem和函数调用子系统Function-CallSubsystem等,可以直接使用这些子系统方便的创建模型。例

使用使能触发子系统EnabledandTriggeredSubsystem模块,实现正弦信号的采样。使能子系统7.5.4定义自己的模块库创建模块库的方法是在Simulink环境中,选择菜单“File”→“New”→“Library”,则会出现空白的模块库窗口,将模块复制到模块库窗口中,并将模块库保存为.mdl文件。7.6S函数的设计与应用

7.6.1S函数简介S函数模块在“User-DefinedFunctions”子模块库中,通过“S-Function”模块创建包含S函数的Simulink模型。在“S-Functionname:”中必须填写不带扩展名的S函数文件名,“S-Functionparameters:”中填写模块的参数。每个Simulink模块都是由三个基本元素组成,即输入向量u、状态向量x和输出向量y,输出向量y是输入和采样时间的函数,它们的函数关系如下:每个M文件S函数都有一套固定调用变量的规则,创建S函数较简便的方法是按照MATLAB提供的参考模板来编写,S函数M文件形式的标准模板程序为“C:\ProgramFiles\Polyspace\R2021a\toolbox\simulink\blocks\sfuntmpl.m”。function[sys,x0,str,ts,simStateCompliance]=sfuntmpl(t,x,u,flag)说明:sfuntmpl:S函数的名称,根据用户需要修改为自己的函数名;t:当前仿真时间;x:S函数模块的状态向量,为模块内部的计算量或缓存量;u:S函数模块的输入,如果没有输入则u是函数的自变量;flag:标识S函数当前所处的仿真阶段,以便执行相应的子函数;ts:返回两列矩阵包括采样时间;[00]表示S函数在每一个时间步都运行,[-10]表示S函数模块与和它相连的模块以相同的速率运行,[0.50.1]表示从0.1s开始每隔0.5s采样一次;sys:返回仿真结果,根据表7-5不同的flag返回值也不同;x0:返回初始状态值;str:保留参数。8.1.4将Simulink模型结构图转化为系统模型MATLAB提供了linmod函数命令将Simulink模型转换为数学模型。例8-9根据模型结构框图在Simulink环境中创建系统模型,使用函数命令转化为传递函数。>>r1=1;r2=2;c1=3;c2=4;>>[A,B,C,D]=linmod('ex8_8'); %将m

温馨提示

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

评论

0/150

提交评论