大学Matlab课程 第4讲 Simulink_第1页
大学Matlab课程 第4讲 Simulink_第2页
大学Matlab课程 第4讲 Simulink_第3页
大学Matlab课程 第4讲 Simulink_第4页
大学Matlab课程 第4讲 Simulink_第5页
已阅读5页,还剩52页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、退出退出一、初识一、初识Simulink二、主要模块介绍二、主要模块介绍三、模块操作及使用三、模块操作及使用四、仿真运行四、仿真运行五、子模块及模块封装技术五、子模块及模块封装技术六、六、S函数设计函数设计退出退出主菜单主菜单Start-SimulinkSimulink-Library Browser-Library Browser退出退出主菜单主菜单 选中Subsystem功能模块,再打开Edit菜单中的Mask Subsystem进入mask的编辑窗口,可以看出有3个标签页。Icon:设定功能模块的外观。Initialization:设定输入数据窗口。Documentation:设计该功能

2、模块的文字说明。q 此页最重要的部分是此页最重要的部分是Drawing CommandsDrawing Commands,在该区域在该区域内可以用内可以用dispdisp指令设定功能模块的文字名称,用指令设定功能模块的文字名称,用plotplot指令画线,用指令画线,用dpolydpoly指令画转换函数。指令画转换函数。a) disp(text)可以在功能模块上显示设定的文字内可以在功能模块上显示设定的文字内容。容。b) plot(x1 x2 xn,y1 y2 yn)指令会在功能模指令会在功能模块上画出由块上画出由x1 y1经经x2 y2经经x3 y3 直到直到xn,yn为止的直线。为止的直线

3、。c) dpoly(num,den):按:按s次数的降幂排序,在功能模次数的降幂排序,在功能模块上显示连续的传递函数。块上显示连续的传递函数。5.2.1 Icon标签页标签页 用户还可以设置一些参数来控制图标的属性,用户还可以设置一些参数来控制图标的属性,这些属性在这些属性在IconIcon页右下端的下拉式列表中进行页右下端的下拉式列表中进行选择。选择。 Icon frame:Visible 显示外框线;显示外框线;Invisible:隐:隐藏外框线。藏外框线。 Icon Transparency:Opaque 隐藏输入输出的标隐藏输入输出的标签;签;Transparent:显示输入输出的标签

4、。:显示输入输出的标签。 Icon Rotation:旋转模块。:旋转模块。 Drawing coordinate:画图时的坐标系。:画图时的坐标系。5.2.1 IconIcon标签页标签页此页主要用来设计输入提示(此页主要用来设计输入提示(promptprompt)以及对应的变量名以及对应的变量名称(称(variablevariable)。)。a) 在在prompt编辑框中输入文字,这些文字就会出现在编辑框中输入文字,这些文字就会出现在prompt列表中;在列表中;在variable列表中输入变量名称,则列表中输入变量名称,则prompt中的文字对应该变量的说明。如果要增加新的中的文字对应该

5、变量的说明。如果要增加新的项目,可以点击边上的项目,可以点击边上的Add键。键。Up和和Down按钮用于执按钮用于执行项目间的位置调整。行项目间的位置调整。b) Control type列表给用户提供选择设计的编辑区,选择列表给用户提供选择设计的编辑区,选择Edit会出现供输入的空白区域,所输入的值代表对应的会出现供输入的空白区域,所输入的值代表对应的variable;Popup则为用户提供可选择的列表框,所选则为用户提供可选择的列表框,所选的值代表的值代表variable,此时在下面会出现此时在下面会出现Popup strings输输入框,用来设计选择的内容,各值之间用逻辑或符号入框,用来设

6、计选择的内容,各值之间用逻辑或符号“|”隔开;如选择隔开;如选择Checkbox则则用于用于on与与off的选择设定。的选择设定。Initialization标签页标签页c)Assignment属性用于配合属性用于配合Control type的不同选择来提供不同的变的不同选择来提供不同的变量值,变量值有量值,变量值有Evaluate和和Literal两种,其含义如下:两种,其含义如下: AssignmentControl type Evaluate Literal Edit 输入的文字是程序执行时所用的变量值;输入的文字是程序执行时所用的变量值; 输入内容作字符串处理输入内容作字符串处理 Po

7、pup 为选择的序号,选第一项输出值为为选择的序号,选第一项输出值为1, 选择内容作字符串处理选择内容作字符串处理 往下类推;往下类推; Checkbox 输出为输出为1或或0; 输出为输出为on或或off的字的字符串符串5.2.3 Documentation标签页标签页 此页主要用来针对完成的功能模块来编写相应此页主要用来针对完成的功能模块来编写相应的说明文字和的说明文字和HelpHelp。 在在Block description中输入的文字,会出现在参数中输入的文字,会出现在参数窗口的说明部分。窗口的说明部分。 在在Block help中输入的文字则会显示在单击参数窗中输入的文字则会显示在

8、单击参数窗口中的口中的help按钮后浏览器所加载的按钮后浏览器所加载的HTML文件中。文件中。 Mask type:在此处输入的文字作为封装模块的标:在此处输入的文字作为封装模块的标注性说明,在模型窗口下,将鼠标指向模块,则会注性说明,在模型窗口下,将鼠标指向模块,则会显示该文字。当然必须先在显示该文字。当然必须先在View菜单中选择菜单中选择Block Data TipsShow Block Data Tips。六、s-function的设计 S-functionS-function最广泛的用途是最广泛的用途是定制用户自己的定制用户自己的SimulinkSimulink模块模块。它的形式十分

9、通用,能够支持。它的形式十分通用,能够支持连续系统、离散系统和混合系统。连续系统、离散系统和混合系统。 s-functions-function是一个动态系统的计算机语言描述,是一个动态系统的计算机语言描述,在在MATLABMATLAB里,用户可以选择用里,用户可以选择用m m文件编写,也文件编写,也可以用可以用c c或或mexmex文件编写,在这里只给大家介绍文件编写,在这里只给大家介绍如何用如何用m m文件编写文件编写s-functions-function。 S-functionS-function提供了扩展提供了扩展SimulinkSimulink模块库的有力模块库的有力工具,它采用一

10、种特定的调用语法,使函数和工具,它采用一种特定的调用语法,使函数和SimulinkSimulink解法器进行交互。解法器进行交互。6.1 建立m文件s-function sys,x0,str,ts=fname(t,x,u,flag,p1,p2,.) t: the current time flag: 标志位 x: the current state vector u: the current input vectorsfuntmpl.mlimintm.m1、使用模板文件:sfuntmp1. mq该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。q模板文件里

11、s-function的结构十分简单,它只为不同的flag的值指定要相应调用的m文件子函数。比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。q模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子函数调用。q模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写s-function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用模板文件的好处是,比较

12、方便,而且条理清晰。6.1 建立m文件s-function1、使用模板文件:sfuntmp1. mq该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。q模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的m文件子函数。比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。q模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子

13、函数调用。q模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写s-function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用模板文件的好处是,比较方便,而且条理清晰。6.1 建立m文件s-functionq使用模板编写s-function,用户只需把s-函数名换成期望的函数名称,如果需要额外的输入参量,还需在输入参数列表的后面增加这些参数,因为前面的4个参数是simulink调用s-function时自动传入的。对于输出参数,最好不做修改。接下去的工作就是根据所编s-function要完成的任务,用相应的代码去替代模板里各个子函数的代码即可

14、。qSimulink在每个仿真阶段都会对s-function进行调用,在调用时,Simulink会根据所处的仿真阶段为flag传入不同的值,而且还会为sys这个返回参数指定不同的角色,也就是说尽管是相同的sys变量,但在不同的仿真阶段其意义却不相同,这种变化由simulink自动完成。qm文件s-function可用的子函数说明如下:a)mdlInitializeSizes:定义s-function模块的基本特性,包括采样时间、连续或者离散状态的初始条件和sizes数组。b)mdlDerivatives:计算连续状态变量的微分方程。c)mdlUpdate:更新离散状态、采样时间和主时间步的要求

15、。d)mdlOutputs:计算s-function的输出。e)mdlGetTimeOfNextVarHit:计算下一个采样点的绝对时间,这个方法仅仅是在用户在mdlInitializeSizes 里说明了一个可变的离散采样时间。f)mdlTerminate:实现仿真任务必须的结束。q概括说来,建立s-function可以分成两个分离的任务:a)初始化模块特性包括输入输出信号的宽度,离散连续状态的初始条件和采样时间。b)将算法放到合适的s-function子函数中去。2、定义s-function的初始信息q为了让Simulink识别出一个m文件s-function,用户必须在s-函数里提供有关

16、s-函数的说明信息,包括采样时间、连续或者离散状态个数等初始条件。这一部分主要是在mdlInitializeSizes子函数里完成。qSizes数组是s-function函数信息的载体,它内部的字段意义为:a)NumContStates:连续状态的个数(状态向量连续部分的宽度)b)NumDiscStates:离散状态的个数(状态向量离散部分的宽度)c)NumOutputs: 输出变量的个数(输出向量的宽度)d)NumInputs:输入变量的个数(输入向量的宽度)e)DirFeedthrough:有无直接馈入f)NumSampleTimes:采样时间的个数q如果字段代表的向量宽度为动态可变,则可

17、以将它们赋值为1。q注意DirFeedthrough是一个布尔变量,它的取值只有0和1两种,0表示没有直接馈入,此时用户在编写mdlOutputs子函数时就要确保子函数的代码里不出现输入变量u;1表示有直接馈入。qNumSampleTimes表示采样时间的个数,也就是ts变量的行数,与用户对ts的定义有关。q需要指出的是,由于s-function会忽略端口,所以当有多个输入变量或多个输出变量时,必须用mux模块或demux模块将多个单一输入合成一个复合输入向量或将一个复合输出向量分解为多个单一输出。qS-function默认的默认的4个输入参数为个输入参数为t、x、u和和flag,它它们的次序

18、不能变动,代表的意义分别为:们的次序不能变动,代表的意义分别为:a)t:代表当前的仿真时间,这个输入参数通常用于代表当前的仿真时间,这个输入参数通常用于决定下一个采样时刻,或者在多采样速率系统中,决定下一个采样时刻,或者在多采样速率系统中,用来区分不同的采样时刻点,并据此进行不同的处用来区分不同的采样时刻点,并据此进行不同的处理。理。b)x: 状态向量,这个参数是必须的,甚至在系统中状态向量,这个参数是必须的,甚至在系统中不存在状态时也是如此。不存在状态时也是如此。c)u:输入向量。输入向量。d)flag:是一个控制在每一个仿真阶段调用哪一个子是一个控制在每一个仿真阶段调用哪一个子函数的参数,由函数的参数,由Simulink在调用时自动取值。在调用时自动取值。qS-function默认的默认的4个返回参数为个返回参数为sys、x0、str和和ts,它们的次序不能变动,代表的意义分别为:它们的次序不能变动,代表的意义分别为:a)sys:是一个通用的返回参数,它所返回值的意义是一个通用的返回参数,它所返回值的意义取决于取决于flagflag的值。的值

温馨提示

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

评论

0/150

提交评论