仿真_6_SIMULINK_子系统及封装演示幻灯片_第1页
仿真_6_SIMULINK_子系统及封装演示幻灯片_第2页
仿真_6_SIMULINK_子系统及封装演示幻灯片_第3页
仿真_6_SIMULINK_子系统及封装演示幻灯片_第4页
仿真_6_SIMULINK_子系统及封装演示幻灯片_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

主讲教师:姜萍,MATLAB与系统仿真第六章,1,6.2模块化与封装(建立子系统),一、模块化当模型很大很复杂时,可将一些模块组合成一个子系统,可简化仿真模型,便于系统的设计与分析。建立子系统可有两种形式:组合已经存在的模块:用鼠标选中需组合的模块,EditCreateSubsystems;把Ports&Subsystems中的Subsystems模块加入到模型中,双击打开子系统编辑窗口,添加模块。这时,经模块化后,双击子系统仍可看到内部模块。要修改参数,需要逐个打开各模块来设置,比较麻烦。如要有一个子系统的参数设置对话框代替多个对话框,就要采用封装技术。,目录,前页,后页,2,组合已经存在的模块,3,把Subsystems模块加入到模型中,再添加模块,4,二、封装,先看SimulinkExtra中的PID模块,内部也是多个模块组成的子系统,但不需要逐个打开各模块来修改参数,而有一个子系统的参数设置对话框(自己创建)代替多个对话框,设置一些关键参数。优点:用户与模块内部的复杂性隔绝;提供一个描述性的、友好的用户接口;保护模块的内容免受无意识的干扰。利用Simulink的封装功能,就可以子定义做出一个模块的对话框和图标。,目录,前页,后页,5,6,封装过程:,用以上两种方式模块化方法创建子系统,需在各模块上给封装后需赋值的参数指定变量名(字母);选中子系统,然后选择EditMaskSubsystems;使用封装编辑器设计图标、对话框、文本。有四个标签页:Icon模块名字和外观Parameters输入参数Initialization参数初始化Documentation模块文字说明完成封装后,再双击模块,就出现新的封装对话框,而非子系统内部模块。若要解除封装,在EditMask中用Unmask即可。,mypid1.mdl,目录,前页,后页,7,PID调节器,8,标签页(1)Icon模块名字和外观,目录,前页,后页,9,10,11,标签页(2)Parameters输入参数,目录,前页,后页,12,13,14,标签页(3)Initialization参数初始化,目录,前页,后页,15,标签页(4)Documentation模块文字说明,目录,前页,后页,16,17,一、仿真模型的参数化,在Simulink环境下,仿真模型的参数可以是实际数值,也可以是字母表示的变量名。字母表示的仿真模型参数可以在Workspace工作空间中赋值,也可在M文件中赋值,然后进行模型的运行。,目录,前页,后页,6.3复杂系统的综合仿真,18,例如某系统结构固定,参数较多,根据不同实际情况有多套参数。,19,二、从命令行运行Simulink仿真模型,前面都是在Simulink环境下,用菜单命令运行仿真模型,从命令行运行模型的方式可使用户在M文件中运行仿真,可允许用户改变仿真模型的参数,也可在M文件中控制模型的运行。t,x,y=sim(model,timespan,options,ut)t返回仿真的时间向量x返回仿真的状态矩阵y返回仿真的输出矩阵,目录,前页,后页,20,t,x,y=sim(model,timespan,options,ut)model仿真模型名称timespan仿真的起始和终止时间两种:1、tFinal终止时间,起始时间为02、tStarttFinal起始和结束时间options指定可选的仿真参数,由simset建立ut可选的对顶层输入端口模块的外部输入其中,只有model是必需的参数。,目录,前页,后页,21,simset指定仿真参数必须用于sim命令中,主要包括:AbsTol:默认值为1e-6,设定绝对误差范围。Decimation:默认值为1,决定隔多少个点返回状态和输出值。Solver:解法器的选择。MaxRows:默认0,表示不限制。若为大于零的值,表示限制输出和状态的规模,使其最大行数等于该数值。InitialState:一个向量值,用于设定初始状态。FixedStep:正数表示步长的大小,仅用于固定步长。MaxStep:默认auto,变步长模式中最大的步阶大小。Simget(模型文件名)得到该模型的仿真参数:get_param获取仿真模型或仿真模块的参数set_param设置仿真模型或仿真模块的参数,目录,前页,后页,22,三、与M函数的组合仿真,如果仿真模型中用到的复杂环节具有特殊结构和特殊运算,在Simulink提供的现成的模块库中找不到,用户可以自行编制函数,再连接到Simulink搭建的仿真模型中。在Simulink模块库User-DefinedFunctions中选择MATLABFcn加入搭建的仿真模型中,双击模块打开函数对话框,键入要连接的函数文件名,模型运行时就会调用该函数文件。,例题:将实验四函数文件中的非线性饱和函数加入simulink的模型中。,23,24,25,26,四、条件子系统,前面的子系统,对于一定的输入,子系统必定产生输出。但有些情况下,只有满足一定的条件子系统才执行。即:子系统的执行依赖于一个控制信号,由子系统单独的控制端口输入。由此,条件子系统执行时,不仅依赖于子系统本身的输入信号,还受到控制信号的约束。,目录,前页,后页,1、使能子系统(EnableSubsystem)使能子系统除原有的输入、输出外,还有一个控制系统的激活端口,只有当控制信号为正,子系统被激活,使能子系统才执行。,控制信号可为标量或向量,标量的信号值大于0是子系统被激活;向量的任一个元素大于0,就能激活。,使能子系统模块位于Ports&Subsystems,使能子系统模块中,打开Enable模块对话框,可以设置其状态时保持还是重置、是否输出激活控制信号等。,27,使能子系统Enable模块,28,目录,前页,后页,Enable模块对话框,Stateswhenenabling:held表示使能子系统开始执行时,系统中的状态保持不变。,Stateswhenenabling:reset表示使能子系统开始执行时,系统中的状态重新被设置为初始参数值。,Showoutputport选择是否输出激活控制信号,29,例:利用使能子系统将幅值为4的正弦交流信号转换为同幅值的直流信号,30,目录,前页,后页,2、触发子系统(TriggeredSubsystem)触发子系统除原有的输入、输出外,也有一个控制系统的激活端口,根据触发模块的四种触发事件进行选择,使触发子系统执行。,触发子系统模块位于Ports&Subsystems,触发子系统模块中,打开Trigger模块对话框,可以选择触发事件。,1)rising上升沿触发控制信号出现上升沿时开始执行2)Falling下降沿触发控制信号出现下降沿时开始执行3)either边沿触发

温馨提示

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

评论

0/150

提交评论