第四章simulink的基础应用_第1页
第四章simulink的基础应用_第2页
第四章simulink的基础应用_第3页
第四章simulink的基础应用_第4页
第四章simulink的基础应用_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、12 simulink是是Mathworks公司开发的另一个著公司开发的另一个著名的动态仿真系统,它是名的动态仿真系统,它是Matlab的一个附的一个附加组件,为用户提供了一个建模与仿真的加组件,为用户提供了一个建模与仿真的工作平台。工作平台。 由于它的许多功能是基于由于它的许多功能是基于Matlab软件平台软件平台的,而且必须是在的,而且必须是在Matlab环境下运行,有环境下运行,有人也将人也将simulink称之为称之为Matlab的一个工具的一个工具箱。箱。 它能够实现动态系统建模与仿真的环境集它能够实现动态系统建模与仿真的环境集成,且可以根据设计及使用的要求,对系成,且可以根据设计及

2、使用的要求,对系统进行修改与优化,以提高系统工作的性统进行修改与优化,以提高系统工作的性能,实现高效开发系统的目的能,实现高效开发系统的目的 概述概述 34-1 simulink的特色的特色 simulink是是Matlab软件的扩展与特色体现,软件的扩展与特色体现,它是实现动态系统建模和仿真的一个软件它是实现动态系统建模和仿真的一个软件包;包; simulink可以模拟线性与非线性系统,连续可以模拟线性与非线性系统,连续与非连续系统,或它们的混合系统,它是与非连续系统,或它们的混合系统,它是强大的系统仿真工具;强大的系统仿真工具; simulink的另外一个重要特点就是它的开放的另外一个重要

3、特点就是它的开放性,它允许用户定制自己的功能模块和模性,它允许用户定制自己的功能模块和模块库。块库。 44-2 simulink的重要操作方法的重要操作方法 运行运行simulink有三种方式:有三种方式: 方式(方式(1)在)在Matlab的命令窗口直接键的命令窗口直接键入入simulink; 方式(方式(2)点击)点击Matlab的工具条上的的工具条上的simulink的快捷键图标;的快捷键图标; 方式(方式(3)在)在Matlab的菜单中,选择的菜单中,选择FileNewModel,会弹出新建立的模,会弹出新建立的模型窗口,名为型窗口,名为untitled。5simulink模块库浏览器

4、模块库浏览器 6打开方法示意图打开方法示意图 7新建的模型窗口新建的模型窗口 8认识认识simulink的重要模块库的重要模块库 Continuous(连续模块)(连续模块) Discrete(离散模块)(离散模块) Look-Up Tables(查询表模块库)(查询表模块库) Math Operations(数学运算模块库)(数学运算模块库) Model verification(模型验证模块库)(模型验证模块库) Model-Wide Utilities(模块实用模块库)(模块实用模块库) Ports & Subsystems(端口和子系统模块库)(端口和子系统模块库) Signa

5、l Atributies(信号属性模块库)(信号属性模块库) Signal Routing(信号路由模块库)(信号路由模块库) Sinks(接收器模块库)(接收器模块库) Sources(输入源模块库)(输入源模块库) User-Defined Functions(用户定义模块库)(用户定义模块库) Discontinuities(非线性模块库)(非线性模块库) 9Continuous(连续模块)(连续模块) 10Discrete(离散模块)(离散模块) 11Look-Up Tables(查询表模块(查询表模块库)库) 12Math Operations(数学运算模块库)(数学运算模块库) 1

6、3Model verification(模型验证模块(模型验证模块库)库) 14Model-Wide Utilities(模块实用(模块实用模块库)模块库) 15Ports & Subsystems(端口和子系(端口和子系统模块库)统模块库) 16Signal Atributies(信号属性模(信号属性模块库)块库) 17Signal Routing(信号路由模块库)(信号路由模块库) 18Sinks(接收器模块库)(接收器模块库) 19Sources(输入源模块库)(输入源模块库) 20User-Defined Functions(用(用户定义模块库)户定义模块库) 21Discon

7、tinuities(非线性模块库)(非线性模块库) 224-3仿真模型的搭建方法与步骤仿真模型的搭建方法与步骤 如何正确且快速使用如何正确且快速使用simulink,对于初学者,对于初学者来说,这是最为关心的事情。来说,这是最为关心的事情。 已知某直流比较仪的输出特性曲线的表达已知某直流比较仪的输出特性曲线的表达式为:式为: I1=kI2+ I0 式中式中I1和和I2分别为一次电流和二次电流,分别为一次电流和二次电流,I0为比较仪的偏置系数,为比较仪的偏置系数,k为比较仪的灵敏为比较仪的灵敏度,且已知度,且已知k=114和和I0=110mA,试用,试用simulink绘制该比较仪的输出特性曲线

8、。绘制该比较仪的输出特性曲线。231、调用功能模块、调用功能模块 24 (1)Ramp模块,用来产生模块,用来产生I2信号,也来信号,也来自输入源自输入源Sources模块库;模块库; (2)Constant模块,用来产生常数模块,用来产生常数I0,来自来自simulink模块库中的输入源模块库中的输入源Sources模模块库;块库; (3)Gain模块,将输入信号乘上模块,将输入信号乘上k,来自,来自Math Operations模块库;模块库; (4)sum模块,把两个量模块,把两个量I0和和k I2加起来,加起来,也来自也来自Math Operations模块库;模块库; (5)scop

9、e模块,显示比较仪输出特性曲模块,显示比较仪输出特性曲线的结果,来自线的结果,来自Sink接收器模块库接收器模块库 252、创建并保存;、创建并保存;3、连接模块并设置其参数模型、连接模块并设置其参数模型文件文件26Constant模块属性参数对话框模块属性参数对话框 27Ramp模块属性参数对话框模块属性参数对话框 28Gain模块属性参数对话框模块属性参数对话框 29Sum模块属性参数对话框模块属性参数对话框 30 Scope模块属性参数对话框模块属性参数对话框 31仿真参数的设定对话框仿真参数的设定对话框 32仿真结果仿真结果 334-3-2导出仿真数据的操作技巧导出仿真数据的操作技巧

10、点击点击Scope模块属性参数对话框中的模块属性参数对话框中的“Data history”按钮,按钮,弹出有关弹出有关Scope模块数据显示属性参数设置对话框,模块数据显示属性参数设置对话框,勾勾掉掉“Save data to workspace”,同时将,同时将“Data history”对话框中的对话框中的“Format”项项的参数设置为的参数设置为Array,接着给输出数据取接着给输出数据取名;名; 返回到返回到Matlab的界面窗口,便可以看到的界面窗口,便可以看到outputcurve变量名被显示在变量名被显示在workspace窗窗口中;口中; 34outputcurve变量在变量

11、在workspace窗口窗口中显示出来中显示出来 35命令语句命令语句 在在MATALB的命令窗口中执行以下命令语句:的命令窗口中执行以下命令语句: save outputcurve.txt outputcurve -ascii 还可以在还可以在MATALB的命令窗口中执行以下命的命令窗口中执行以下命令语句:令语句: x=outputcurve(:,1); y=outputcurve(:,2) plot(x,y) title(直流比较仪输出特性曲线直流比较仪输出特性曲线); xlabel(二次电流二次电流I2/mA); ylabel(一次电一次电流流I1/A)36执行结果执行结果374-3-3

12、创建与封装子系统的基本创建与封装子系统的基本方法方法 建立子系统有以下几个优点:建立子系统有以下几个优点: (1)可以减少显示在模型窗口的模块数,这样)可以减少显示在模型窗口的模块数,这样用户的模型窗口就会很整齐,而且条理清晰、层用户的模型窗口就会很整齐,而且条理清晰、层次分明,也方便用户连线;次分明,也方便用户连线; (2)可以将功能相关的模块放在一起,用户可)可以将功能相关的模块放在一起,用户可以用建立子系统创建自己的模块库;以用建立子系统创建自己的模块库; (3)可以生成层次化的模型图表,即子系统在)可以生成层次化的模型图表,即子系统在一层,组成子系统的模块在另一层。这样用户在一层,组成

13、子系统的模块在另一层。这样用户在设计模型时,既可采用自上而下的设计方法,也设计模型时,既可采用自上而下的设计方法,也可以采用自下而上的设计方法。可以采用自下而上的设计方法。 38创建与封装子系统的途径创建与封装子系统的途径 (1)采用)采用Ports & Subsystems端口和子端口和子系统模块库的系统模块库的Subsystem功能模块:增加功能模块:增加一个子系统模块到你的模型中,并在打开一个子系统模块到你的模型中,并在打开的模型的编辑区设计组合新的功能模块,的模型的编辑区设计组合新的功能模块,以建立子系统;以建立子系统; (2)将现有的多个功能模块连接好,再组)将现有的多个功能

14、模块连接好,再组合起来,然后再把这些模块组合成新的功合起来,然后再把这些模块组合成新的功能模块,以建立子系统。能模块,以建立子系统。 39从从Ports & Subsystems 模块库中模块库中复制复制Subsystem功能模块功能模块 40举例:三相电压波形的子系统举例:三相电压波形的子系统 )250sin(220tVa)120250sin(220tVb)240250sin(220tVc41三相电压波形的子系统三相电压波形的子系统 42所需要模块所需要模块 (1)Sine Wave模块,用来产生正弦波形,模块,用来产生正弦波形,所处模块库为所处模块库为Sources输入源模块库;输

15、入源模块库; (2)Transport Delay模块,用来产生波模块,用来产生波形延迟,同样来自形延迟,同样来自Sources输入源模块库;输入源模块库; (3)Mux模块,将三个输入信号组合为总模块,将三个输入信号组合为总线输出信号,来自线输出信号,来自Signal Routing模块库;模块库; (4)scope模块,显示比较仪输出特性曲模块,显示比较仪输出特性曲线的结果,来自线的结果,来自Sink接收器模块库。接收器模块库。43Sine Wave模块参数对话框模块参数对话框 44Transport Delay模块参数对话框模块参数对话框 45三相电压波形仿真结果三相电压波形仿真结果 4

16、6由功能模块组合成子系统由功能模块组合成子系统 47所需要功能模块所需要功能模块 Step模块(在模块(在Simulink模块库中的模块库中的Sources模块库中调用)、模块库中调用)、Gain模块(在模块(在Simulink模块库中的模块库中的Math Operations模模块库中调用)、块库中调用)、Integrator模块(在模块(在Simulink模块库中的模块库中的Continuous模块库中调模块库中调用)、用)、Derivative 模块(在模块(在Simulink模块模块库中的库中的Continuous模块库中调用)、模块库中调用)、Sum模块(在模块(在Simulink模

17、块库中的模块库中的Math Operations模块库中调用,本例选择模块库中调用,本例选择“rectangular”(矩形),将(矩形),将List of signs栏置为栏置为+,)和,)和Scope模块(在模块(在Simulink模块库中的模块库中的Sinks模块库中调用)模块库中调用) 48设置设置Step模块参数模块参数 49选中要自定义功能模块的那些功能选中要自定义功能模块的那些功能模块模块 50封装完毕的子系统封装完毕的子系统 51给创建完毕的子系统重新命名给创建完毕的子系统重新命名 52被重新命名的子系统被重新命名的子系统 53对子系统进行封装对子系统进行封装 54修改子系统的

18、图标为波音修改子系统的图标为波音747的图的图标标 55设置子系统的新图标设置子系统的新图标 56“直线直线”图标图标 57“学习学习”图标图标584-4 S-function的设计方法的设计方法 simulink为用户提供了许多内置的基本模块库,为用户提供了许多内置的基本模块库,通过这些功能模块进行连接而构成系统模型。对通过这些功能模块进行连接而构成系统模型。对于那些经常使用的模块进行组合并封装可以构建于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块,但它依然是基于出重复使用的新模块,但它依然是基于simulink原来提供的内置模块。原来提供的内置模块。 simulink中的函数

19、也称之为系统函数,简称中的函数也称之为系统函数,简称S函数。函数。它是为用户提供的一种它是为用户提供的一种simulink功能的强大编程功能的强大编程机制。通过编写机制。通过编写S函数,用户可以向函数,用户可以向S函数中添加函数中添加自己的算法,该算法可以用自己的算法,该算法可以用Matlab编写,也可以编写,也可以用用C语言等其它编程语言进行编写。并且语言等其它编程语言进行编写。并且simulink 中中S-function是一种功能强大的能够对模块库进是一种功能强大的能够对模块库进行扩展的新工具。行扩展的新工具。59S-function的基本含义的基本含义 S-function是一个动态系

20、统的计算机语言描述,是一个动态系统的计算机语言描述,在在Matlab里,用户可以选择用里,用户可以选择用M文件编写,也可文件编写,也可以用以用S或或MEX文件编写,在这里只介绍如何用文件编写,在这里只介绍如何用M文件编辑器编写文件编辑器编写S-function。 S-function提供提供了扩展了扩展simulink模块库的有力工具,它采用一种模块库的有力工具,它采用一种特定的调用语法,使函数和特定的调用语法,使函数和Simulink解算器进行解算器进行交互联系。交互联系。 S函数模块存放在函数模块存放在Simulink模块库中的模块库中的User-Defined Functions用户定义

21、模块库中,通过此用户定义模块库中,通过此模块可以创建包含模块可以创建包含S函数函数simulink模型。模型。S函数文函数文件名区域要填写件名区域要填写S函数的文件名函数的文件名 60simulink模块的图标与参数模块的图标与参数61S-function所默认的是所默认的是4个输入参数个输入参数 输入参数描述t 代表当前仿真时间,这个输入参数通常用于决定下一个采样时刻,或者在多采样速率系统中,用来区分不同的采样时刻点,并据此进行不同的处理x 表示状态向量,这个参数是必须的,甚至在系统中不存在状态向量时也是如此。它具有很灵活的运用,可为空u 表示输入向量flag 是一个控制在每一个仿真阶段调用

22、哪一个子函数的参数,由Simulink在调用时自动取值,即flag充当S函数的行为标示62S-function所默认的所默认的4个返回参数个返回参数 返回参数描述sys 是一个通用的返回参数,它所返回值的意义取决于flag的值x0是初始状态值(没有状态向量时是一个空矩阵),这个返回参数只在flag值为0时才有效,其它时候都会被忽略str 这个参数没有什么意义,是MathWorks公司为将来的应用保留的,M文件S-function必须把它设为空矩阵ts 是一个m2的矩阵,它的两列分别表示采样时间间隔和偏移63M文件中的文件中的S-function常用子函数常用子函数 子函数描述mdlInitia

23、lizeSizes定义S-function模块的基本特性,包括采样时间、连续或者离散状态的初始条件和sizes数组mdlDerivatives计算连续状态变量的微分方程mdlUpdate更新离散状态、采样时间和主时间步的要求mdlOutputs计算S-function的输出mdlGetTimeOfNextVarHit计算下一个采样点的绝对时间,这个方法仅仅是在用户在mdlInitializeSizes 里说明了一个可变的离散采样时间mdlTerminate实现仿真任务必须的结束64Sizes数组内部字段意义数组内部字段意义 字段描述NumContStates连续状态的个数(状态向量连续部分的宽

24、度)NumDiscStates离散状态的个数(状态向量离散部分的宽度)NumOutputs输出变量的个数(输出向量的宽度)NumInputs输入变量的个数(输入向量的宽度)DirFeedthrough有无直接馈入NumSampleTimes采样时间的个数65标示器标示器flag的含义的含义 模拟阶段M文件标示阶段调用S-function子函数初始化0mdlInitializeSizes连续状态微分1mdlDerivatives离散状态更新2mdlUpdate计算输出矢量3mdlOutputs计算下一个采样时间4mdlGetTimeOfNextVarHit仿真结束9mdlTerminate664

25、-6 典型功能模块应用方法举例典型功能模块应用方法举例 本例熟悉使用非线性模块库本例熟悉使用非线性模块库Discontinuities(如图(如图4-15所示)中的几所示)中的几种典型功能模块如死区非线性模块(种典型功能模块如死区非线性模块(Dead Zone)、量化模块()、量化模块(Quantizer)和)和MathOperations模块库中模块库中Sign功能模块,功能模块,对于饱和非线性(对于饱和非线性(Saturation)模块将在)模块将在后续章节中介绍。构建如图后续章节中介绍。构建如图4-69所示的所示的simulink的仿真模型,保存为的仿真模型,保存为exm_9.mdl 6

26、7非线性模块(库)的使用技巧非线性模块(库)的使用技巧 68所需功能模块所需功能模块 exm_9模型由以下几个功能模块构成:模型由以下几个功能模块构成: (1)Sine wave模块(在模块(在simulink模块库中的模块库中的Sources模块库中);模块库中); (2) Quantizer和和Dead Zone模块(在模块(在simulink模块库中的模块库中的Discontinuities模块库中);模块库中); (3)Sign模块(在模块(在simulink模块库中的模块库中的Math Operations模块库中);模块库中); (4)mux模块(在模块(在simulink模块库中

27、的模块库中的Signal Routing模块库中);模块库中); (5)Scope模块(在模块(在simulink模块库中的模块库中的Sinks模块库中调用)。模块库中调用)。 69设置功能模块设置功能模块 (1)Sine wave模块:模块:Amplitude/V(幅值)为(幅值)为10,Frequency/Rads-1(频率)为(频率)为100,其它为该模块,其它为该模块的默认参数;的默认参数; (2)Quantizer模块:模块:Quantization interval(采(采样间隔)为样间隔)为1e-3; (3)Dead Zone模块:模块:Start of dead zone (死

28、(死区起始值)为区起始值)为-5,End of dead zone(死区终止值)(死区终止值)为为5; (4)Sign模块:使用它的默认参数,当输入信号大模块:使用它的默认参数,当输入信号大于于0,其输出为,其输出为1,反之,当输入小于,反之,当输入小于0,则输出为,则输出为-1; (5)Scope模块:将模块:将3个个Scope模块(分别被命名为模块(分别被命名为Scope1、Scope2和和Scope3)的)的Data history参数参数中的中的Variable name 分别设置为分别设置为out1、out2、和、和out3,Format均设置为均设置为Array; 70分析仿真结果

29、分析仿真结果 正弦波形和正弦波形和Quantizer模块输出的采样波形模块输出的采样波形 71正弦波形和正弦波形和Dead Zone模块输出波模块输出波形形 72正弦波形和正弦波形和Sign模块输出波形模块输出波形 73开关开关Switch模块的使用技巧模块的使用技巧 举例举例10:本例熟悉使用:本例熟悉使用Signal Routing模块库中的模块库中的Switch模块、模块、Sources模块模块库中的库中的Constant模块和模块和Sine wave模块。模块。构建如图构建如图4-74所示的所示的simulink的仿真模的仿真模型,保存为型,保存为exm_10.mdl。 74所需功能模

30、块所需功能模块 (1)Sine wave模块和模块和Constant模块(均模块(均在在simulink模块库中的模块库中的Sources模块库中调模块库中调用);用); (2)Switch模块和模块和mux模块(均在模块(均在simulink模块库中的模块库中的Signal Routing模块库模块库中调用);中调用); (3)Scope模块(在模块(在simulink模块库中的模块库中的Sinks模块库中调用)。模块库中调用)。 75Switch模块和模块和Constant模块模块 76设置功能模块设置功能模块 (1)Sine wave模块:模块:Amplitude/V(幅值)(幅值)为为

31、2,Frequency/Rads-1(频率)为(频率)为100,其它为该模块的默认参数;其它为该模块的默认参数; (2)Constant模块:模块:Constant value(恒值)(恒值)输入栏为输入栏为0.5; (3)Switch模块:按照图模块:按照图4-75所示参数进所示参数进行设置,其行设置,其Threshold栏的参数为栏的参数为0.9; (4)Mux模块:模块:Number of inputs输入栏设输入栏设置为置为3,Display option栏选取栏选取Signals; (5)Scope模块:将模块:将4个个Scope模块(分别被模块(分别被命名为命名为Scope1、Sc

32、ope2、Scope3和和Scope4)的的Data history参数中的参数中的Variable name 分分别设置为别设置为Sine_wave、Constant、Output和和out,Format均设置为均设置为Array;77仿真结果仿真结果 -输入的正弦信号,输入的正弦信号,Switch模块输出波形模块输出波形,-Constant输出波形输出波形 78离散傅立叶分析模块的使用技巧离散傅立叶分析模块的使用技巧 本例熟悉离散傅立叶分析的本例熟悉离散傅立叶分析的Discrete Fourier模块的使用方法。构建如图模块的使用方法。构建如图4-77所示的所示的simulink的仿真模型

33、的仿真模型,保存为,保存为exm_11.mdl。 79所需功能模块所需功能模块 本例的模型由以下几个功能模块构成:本例的模型由以下几个功能模块构成: (1)Sine wave模块和模块和Constant模块(均模块(均在在simulink模块库中的模块库中的Sources模块库中调模块库中调用);用); (2)Sum模块(在模块(在simulink模块库中的模块库中的Math Operations模块库中调用);模块库中调用); (3)Display模块(在模块(在simulink模块库中的模块库中的Sinks模块库中调用);模块库中调用); (4)Discrete Fourier模块模块,其

34、调用方法,其调用方法为:点击为:点击SimPowersystems模块库模块库,点点击击Extra Library模块库,模块库,点击点击Discrete Measurements模块库模块库,即可调用该模块。,即可调用该模块。 80利用利用Discrete Fourier模块构建的模块构建的simulink仿真模型仿真模型 81滤波器滤波器Filter模块的使用技巧模块的使用技巧 本例熟悉滤波器本例熟悉滤波器Filter模块的使用方法。构模块的使用方法。构建如图建如图4-78所示的所示的simulink的仿真模型的仿真模型,保存为保存为exm_12.mdl。滤波器滤波器Filter模块主模块主要分为要分为1st-Order filter(一阶滤波)和(一阶滤波)和2nd-Order filter(二阶滤波)。(二阶滤波)。1st-Order filter模块,又分为低通和高通滤模块,又分为低通和高通滤波器两种类型,如图波器两种类型,如图4-79(a)所示;)所示;2nd-Order filter模块,它分为低通、高模块,它分

温馨提示

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

评论

0/150

提交评论