SIMULINK仿真.ppt

上传人:豆**** 文档编号:34132558 上传时间:2022-08-14 格式:PPT 页数:55 大小:563.50KB
返回 下载 相关 举报
SIMULINK仿真.ppt_第1页
第1页 / 共55页
SIMULINK仿真.ppt_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《SIMULINK仿真.ppt》由会员分享,可在线阅读,更多相关《SIMULINK仿真.ppt(55页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Simulink仿真环境仿真环境lSimulink是一个以MATLAB为基础的软件包,用于对动态系统进行建模和仿真。它使得MATLAB的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。l【本章学习目标】l 熟悉Simulink的操作环境。l 掌握绘制系统模型的方法。l 掌握子系统模块的建立与封装技术。l 了解S函数的功能与设计方法。4.1 初识初识Simulink 一个简单的仿一个简单的仿真实例真实例l在MATLAB的命令窗口输入Simulink,或单击MATLAB主窗口工具栏上的“Simulink”命令按钮即可启动Simulink。Simulink启

2、动后会显示如图4.1所示的Simulink模块库浏览器(Simulink Library Browser)窗口。l1模型元素l一个典型的Simulinnk模型包括以下3种元素。l 信号源(Source)l 被模拟的系统模块l 信号输出(Sink)l2仿真步骤 l(1)建立系统仿真模型,包括添加模块、设置模块参数、进行模块连接等操作。l(2)设置仿真参数。l(3)启动仿真并分析仿真结果。输入系统输出l3仿真实例l【例4.1】利用Simulink仿真曲线。l正弦信号由信号源模块库(Sources)中的Sine Wave模块提供,求和用数学运算模块库(Math Operations)中的数学函数模块

3、(Add)产生,再用信号输出模块库(Sinks)中的示波器模块(Scope)输出波形l(1)打开一个名为untitled的模型编辑窗口l(2)将所需模块添加到模型中。l(3)用连线将各个模块连接起来组成系统仿真模型l(4)设置模块参数并连接各个模块组成仿真模型。模型建好后,将模型以模型文件的格式(扩展名为.mdl)存盘。Simulink仿真环境仿真环境l(5)设置系统仿真参数。l(6)仿真操作。 4.2 仿真模型的建立仿真模型的建立l4.2.1 Simulink的基本模块l模块是构成系统仿真模型的基本单元。构建系统仿真模型主要涉及Simulink模块的操作。l基本模块库l专业模块库Simuli

4、nk仿真环境仿真环境l4.2.2 模块操作l1添加与删除模块 l2选取模块l3复制模块l4模块外形的调整l5模块名的处理Simulink仿真环境仿真环境l4.2.3 模块的连接l1连接两个模块l2模块间连线的调整l3连线的分支l4标注连线4.3 系统的仿真与分析系统的仿真与分析l4.2.4 模块的参数和属性设置l1模块的参数设置l2模块的属性设置l Description:对该模块在模型中的用法进行说明。l Priority:规定该模块在模型中相对于其他模块执行的优先顺序。l Tag:用户为模块添加的文本格式的标记。l“Block Annotation”选项卡中指定在该模块的图标下显示模块的哪

5、个参数。“Callbacks”选项卡中指定当对该模块实施某种操作时需要执行的MATLAB命令或程序。Simulink仿真环境仿真环境l4.3.1 设置仿真参数l打开系统仿真模型,从模型编辑窗口的“Simulation”菜单中选择“Configuration Parameters”命令,打开一个仿真参数对话框,在其中可以设置仿真参数。在此对话框中,仿真参数设置被分为8类。lSolver类:用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。lData Import/Export类:用于管理工作空间数据的导入和导出。lOptimization类:用于设置仿真优化模

6、式。lDiagnostics类:用于设置在仿真过程中出现各类错误时发出警告的等级。lHardware Implementation类:用于设置实现仿真的硬件。lModel Referencing类:用于设置参考模型。lSimulation Target类:用于设置仿真模型目标。lHDL Coder类:用于设置通过自动代码生成技术将设计算法生成HDL代码的方法l1Solver类设置 l(1)设置仿真起始和停止时间(Simulink time)l(2)仿真算法的选择(Solver options)l在“Type”编辑框中设定算法类别:固定步长(Fixed-step)和变步长(Variable-st

7、ep)算法,在“Solver”编辑框中选择具体算法。Simulink仿真环境仿真环境l2Data Import/Export类设置l 矩阵形式。MATLAB把矩阵的第一列默认为时间向量,后面的每一列对应每一个输入端口,矩阵的第一行表示某一时刻各输入端口的输入状态。另外,也可以把矩阵分开来表示,即MATLAB默认的表示方法t,u,其中t是一维时间列向量,表示仿真时间,u是和t长度相等的n维列向量(n表示输入端口的数量),表示状态值。例如,在命令窗口中定义t和u:lt=(0:0.1:4);lu=sin(t),cos(t).*sin(t),exp(-2*t).*sin(t);Simulink仿真环境

8、仿真环境l 包含时间数据的结构形式。结构变量包含若干个成员,对结构成员的引用格式为:结构变量名.成员名。在结构中必须有成员:time和signals。在time成员中包含一个列向量,表示仿真时间;在signals成员中包含一个数组,数组中的每个元素对应一个输入端口,并且每个元素必须包含一个名字同样不能改变的values成员,values成员也包含一个列向量,对应于输入端口的输入数据。例如,对于上例,若改为包含数据的结构输入,则命令格式如下:lt=(0:0.1:4);lA.time=t;lA.signals(1).values=sin(t);lA.signals(2).values=cos(t)

9、.*sin(t);lA.signals(3).values=exp(-2*t).*sin(t); Simulink仿真环境仿真环境l(2)保存到工作空间(Save to workspace)l在Save to workspace栏中,可以选择的选项有:Time(时钟)、States(状态)、Output(输出端口)、Final state(最终状态)和Signal logging(信号)。同载入数据的形式一样,保存数据也有矩阵、结构和包含时间数据的结构3种形式 Simulink仿真环境仿真环境l(3)保存选项(Save options)l在保存选项栏中的“Format”下拉列表中有矩阵、结构和

10、包含时间的结构3种选择。“Limit data points to last”用来限定保存到工作空间中的数据的最大长度。 l输出选项(Output options)有:l Refine output(细化输出)l Produce additional output(产生附加输出)l Produce specified output only(仅在指定的时刻产生输出)Simulink仿真环境仿真环境l4.3.2 仿真结果分析l为了观察仿真结果的变化轨迹可以采用3种方法。l(1)把输出结果送给Scope模块或者XY Graph模块。Scope模块显示系统输出量对于仿真时间的变化曲线,XY Grap

11、h模块显示送到该模块上的两个信号中的一个对另一个的变化关系。l(2)把仿真结果送到输出端口并作为返回变量,然后使用MATLAB命令画出该变量的变化曲线。l(3)把输出结果送到To Workspace模块,从而将结果直接存入工作空间,然后用MATLAB命令画出该变量的变化曲线。l【例4.2】利用Simulink仿真求 l首先打开一个模型编辑窗口,将所需模块添加到模型中。l设置模块参数并连接各个模块组成仿真模型。230dxx设置系统仿真停止时间为2s。单击模型编辑窗口中的Start simulation按钮或选择模型编辑窗口Simulation菜单中的Start命令开始系统仿真。系统仿真结束后,显

12、示模块Display,显示仿真结果为4。 l4.3.3 系统仿真实例l【例4.3】有初始状态为0的二阶微分方程y + 1.5y + 4y= 2u(t) + 4u(t),其中u(t)是单位阶跃函数,试建立系统模型并仿真。l方法1:用微分/积分器直接构造求解微分方程的模型。l把原微分方程改写为ly = 2u (t) + 4u(t) 1.5y 4ylu经微分作用得u,y经积分作用得y,y再经积分模块作用就得y,而u、u、y和y经代数运算又产生y,据此可以建立系统模型并仿真。l(1)利用Simulink模块库中的基本模块建立系统模型(2)设置系统仿真参数。在模型编辑窗口的Simulation stop

13、 time栏把仿真的停止时间设置为5。(3)仿真操作。方法 2:利用传递函数模块建模。 对方程 y + 1.5y + 10y = 2u(t) + 10u(t)两边取 Laplace 变换,得 s2Y(s) + 1.5sY(s) + 10Y(s) = 2sU(s) + 10U(s) 经整理得传递函数: 2( )210( )( )1.510Y ssG sU sss 方法 3:利用状态方程模块建模。 若令 x1 = y,x2 = y,那么微分方程 y + 1.5y + 10y = 2u(t) + 10u(t)可写成: 1221212101.5102xxxxxuyxx 写成状态方程为: xxuyxuA

14、BCD 式中,010101.51 ,AB,C = 10 2,D = 0。 示波器示波器示波器属性对话框示波器属性对话框示波器属性对话框示波器属性对话框示波器纵坐标设置示波器纵坐标设置4.4 子系统与封装子系统与封装l子系统把功能上有关的一些模块集中到一起保存,能够完成几个模块的功能。l4.4.1 子系统的建立l1通过Subsystem模块建立子系统l新建一个仿真模型,打开Simulink模块库中的Ports & Subsystems模块库,将Subsystem模块添加到模型编辑窗口中。双击Subsystem模块打开一个Subsystem窗口,窗口中已经自动添加了一个输入模块和输出模块(表示子系

15、统的输入端口和输出端口)。将要组合的模块插入到输入模块和输出模块中间,一个子系统就建好了。若双击该Subsystem模块,则打开原来的子系统内部结构窗口。l2通过已有的模块建立子系统l先选择要建立子系统的模块,不包括输入端口和输出端口。选择模型编辑窗口Edit菜单中的Create Subsystem命令,这样,子系统就建好了,原来的模块变为子系统的图标。l先建立PID控制器的模型l选中模型中所有模块,使用模型编辑窗口Edit菜单中的Create Subsystem命令建立子系统,模型将被一个Subsystem模块取代【例 10.4】PID 控制器是在自动控制中经常使用的模块,PID 控制器由比

16、例单元(P) 、积分单元(I)和微分单元(D)组成。PID 控制的传递函数为 ( )ipdKU sKK ss 建立 PID 控制器的模型并建立子系统。 l4.4.2 子系统的条件执行l子系统的执行可以由输入信号来控制,用于控制子系统执行的信号称为控制信号,而由控制信号控制的子系统称为条件执行子系统。l条件执行子系统分为l1使能子系统l使能子系统表示子系统在由控制信号控制时,控制信号由负变正时子系统开始执行,直到控制信号再次变为负时结束。控制信号可以是标量也可以是向量。l建立使能子系统的方法是:打开Simulink模块库中的Ports & Subsystems模块库,将Enable模块复制到子系

17、统模型中,则系统的图标发生了变化。 Simulink仿真环境仿真环境l2触发子系统l触发子系统是指当触发事件发生时开始执行子系统。与使能子系统相类似,触发子系统的建立要把Ports & Subsystems模块库中的Trigger模块添加到子系统中或直接选择Triggered Subsystem模块来建立触发子系统。l触发形式由Trigger模块参数对话框(见图4.27)中“Trigger type”下拉列表中选择。l(1)rising(上跳沿触发)l(2)falling(下跳沿触发)l(3)either(上跳沿或下跳沿触发)l(4)funtion-call(函数调用触发)l【例4.6】利用触

18、发子系统将一锯齿波转换成方波。l用Signal Generator、Triggered Subsystem和Scope模块构成如图4.28所示的子系统。触发事件形式为“either” 触发信号端接锯齿波 3使能加触发子系统使能加触发子系统所谓使能加触发子系统就是把Enable和Tirgger模块都加到子系统中,使能控制信号和触发控制信号共同作用子系统的执行,也就是前两种子系统的综合。该系统的行为方式与触发子系统相似,但只有当使能信号为正时,触发事件才起作用。Simulink仿真环境仿真环境l4.4.3 子系统的封装l所谓子系统的封装(Masking),就是为子系统定制对话框和图标,使子系统本身

19、有一个独立的操作界面,把子系统中的各模块的参数对话框合成一个参数设置对话框,在使用时不必打开每个模块进行参数设置。l选中所要封装的子系统,再选择模型编辑窗口Edit菜单中的“Mask Subsystem”命令,这时将出现封装编辑器(Mask Editor)对话框。l1Icon选项卡的参数设置l主要设置封装模块的图标。 l(1)“Drawing commands”编辑框l该编辑框主要用来建立封装图标,并且可以在封装图标中显示文本、图形、图像或传递函数。l 显示文本。在封装图标中显示文本的函数有4个:disp、text、fprintf和port_ lable。 l 显示传递函数。在图标中显示传递函

20、数使用dpoly函数,显示零极点模型的传递函数使用droots函数 Simulink仿真环境仿真环境l(2)设置封装图标特性l在Drawing commands编辑框左边的下拉式列表中,可以分别对图标的各种特性进行设置。l Frame设置图标的边框。l Transparency设置图标的透明度。l Rotation设置图标是否跟模块一起翻转。l Units设置在“Drawing commands”编辑框中使用命令“plot”和“text”时的坐标系。Simulink仿真环境仿真环境l2Parameters选项卡的参数设置lParameters选项卡主要用来确定被封装子系统的内部变量和对话框中输

21、入量之间的联系。l“Prompt”和“Variable”编辑框分别用来指定用户需要设置的变量提示符和变量名。l“Type”下拉式列表框用于指定控件类型,即控制封装后的子系统参数设置对话框所提供的设置参数的方式,提供的控件类型有“Edit”、“Checkbox”和“Popup”。 Simulink仿真环境仿真环境l3Initialization选项卡的参数设置lInitialization 选项卡用于设置初始化命令。初始化命令的设置在对话框左边的“Initialization commands”编辑框内进行。初始化命令主要用来定义封装子系统的变量。l初始化的命令由MATLAB中的表达式组成,其中

22、包括MATLAB函数、操作符和封装子系统工作区中定义的变量。l对于封装工作区定义的变量,通过初始化命令和模块的参数相联系,也就是说模块的参数在获取数据时,先读取封装工作区的变量值,再通过初始化命令来取值。l4Documentation选项卡的参数设置lDocumentation选项卡用于设置封装类型、描述文本和帮助文本。l“Mask type”编辑框用于表示封装的类型l“Block description”编辑框中设置的内容将显示在封装模块参数对话框的上部。4.5 S函数的设计与应用函数的设计与应用lS函数用于开发新的Simulink通用功能模块,是一种对模块库进行扩展的工具。lS函数称为系统

23、函数(System Function),采用非图形化的方式描述功能块。l4.5.1 用MATLAB语言编写S函数l1主程序lS函数主程序的引导语句为lfunction sys,x0,str,ts=fname(t, x, u, flag)l其中fname是S函数的函数名,t、x、u、flag分别为仿真时间、状态向量、输入向量和子程序调用标志。flag控制在仿真的各阶段调用S函数的哪一个子程序,其含义和有关信息如表4.1所示。Simulink每次调用S函数时,必须给出这4个参数。sys、x0、str和ts是S函数的返回参数。 Simulink仿真环境仿真环境l2子程序lS函数M文件共有6个子程序,

24、供Simulink在仿真的不同阶段调用,这些子程序的前辍为mdl。每一次调用S函数时,都要给出一个flag值,实际执行S函数中与该flag值对应的那个子程序。Simulink在仿真的不同阶段,需要调用S函数中不同的子程序。l(1)初始化子程序mdlInitializeSizesl子程序mdlInitializeSizes定义S函数参数,如采样时间、输入量、输出量、状态变量的个数以及其他特征。l(2)其他子程序l状态的动态更新使用mdlDerivatives和mdlUpdate两个子程序,前者用于连续模块的状态更新,后者用于离散状态的更新。l模块输出信号的计算使用mdlOutputs子程序,系统

25、的输出仍由sys变量返回 l4.5.2 S函数的应用l【例4.7】采用S函数实现y = k(1 + x),即把一个输入信号加1后放大k倍。l(1)编写S函数l%S函数timek.m,其输出是输入加1的k倍lfunction sys,x0,str,ts=timek(t,x,u,flag,k)lswitch flag,lcase 0 l sys,x0,str,ts=mdlInitializeSizes; %初始化lcase 3 l sys=mdlOutputs(t,x,u,k); %计算输出量lcase 1,2,4,9l sys=;lotherwise %出错处理l error(Unhandled

26、 Flag, num2str(flag);lendl%mdlInitializeSizes:当flag为0时进行整个系统的初始化lfunction sys,x0,str,ts=mdlInitializeSizes()l%调用函数simsizes以创建结构sizeslsizes=simsizes;l%用初始化信息填充结构sizeslsizes.NumContStates=0; %无连续状态lsizes.NumDiscStates=0; %无离散状态lsizes.NumOutputs=1; %有一个输出量lsizes.NumInputs=1; %有一个输入信号lsizes.DirFeedthrou

27、gh=1; %输出量中含有输入量lsizes.NumSampleTimes=1; %单个采样周期l%根据上面的设置设定系统初始化参数lsys=simsizes(sizes);l%给其他返回参数赋值lx0=; %设置初始状态为零状态lstr=; %将str变量设置为空字符串lts=-1,0; %假定继承输入信号的采样周期l%mdlOutputs:当flag值为3时,计算输出量lfunction sys=mdlOutputs(t,x,u,k)lsys = k*(1+u); Simulink仿真环境仿真环境l(2)模块的封装与测试l将该程序以文件名timek.m存盘。l 建立S-Function模块

28、和编写的S函数文件之间的联系。l构建如图4.34所示的仿真模型。l设置S-Function模块的参数对话框:在S-function name文本框中填写S函数名“timek”,在“S-function parameters”文本框中填入附加参数“k”。l 封装l设置S函数模块参数 系统数学模型系统数学模型l1.系统时域模型l2.系统传递函数模型l在matlab中,用指令tf()可建立连续系统的传递函数模型,其调用格式为sys=tf(num,den)。l说明num为传递函数分子系数向量,den为传递函数分母系数向量例题例题 用用matlab建立系统传递函数模型:建立系统传递函数模型:102)(2

29、ssssGnum=1,2;den=1 1 10;sys=tf(num,den)Transferfunction:l3.系统模型的连接l(1) 模型串联l两个线性模型串联及其等效模型如图所示,且sys=syslsys2。l模型串联lMATLAB对串联模型的运算如下:lsys=series(sysl,sys2)l说明 上式可等价写成:sys=sysl*sys2。例例 l(2)模型并联l两个线性模型并联及其等效模型如图所示,且sys=sysl+sys2。l模型并联及其等效lMATLAB对模型并联的运算如下:lsys=parallel(sys1,sys2)l说明 上式可等价写成:sys=sysl+sy

30、s2。例例l(3) 反馈连接l两个线性模型反馈连接及其等效模型如图所示。l 系统反馈连接及其等效lMATLAB对反馈连接的运算如下:lsys=feedback(sys1,sys2,sign)l说明sign表示反馈连接符号:负反馈连接sign=-1,正反馈连接sign=1。例例l反馈连接的调用格式GH=feedback(G,H) G(s)为前向传递函数,H(s)为反馈传递函数。GH=feedback(G,H,sign)G(s)为前向传递函数,H(s)为反馈传递函数;sign=+1时,GH为正反馈系统传递函数;sign=-1时,GH为负反馈系统传递函数;默认时为负反馈。GH=feedback(G,

31、H,feedin,feedout,sign)G(s)为前向传递函数,It(s)为反馈传递函数。例例101)(1ssG11)(2ssG441)(23ssssG61)(4sssG21)(1sssH2)(2sH1)(3sH, ,。 58 . 4285. 239 . 041 . 012 . 0sssssl1. 单窗口单曲线绘图练习练习l x=0, 0.48,0.84,1,0.91,0.6,0.14l x1, x2, x3, x4, x5, x6, x7,lplot (x,*)l2. 单窗口多曲线绘图l t=0:pi/100:2*pi;ly=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);lplot(t,y,t,y1,t,y2)l3.可任意设置颜色与线型l t=0:pi/100:2*pi;ly=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);lplot(t,y,r-,t,y1,g:,t,y2,b*)4. 控制系统方框图如下图所示,求此系统的传递函数。控制系统方框图如下图所示,求此系统的传递函数。l运行后,系统传递函数:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com