第七章Simulink基础

上传人:豆**** 文档编号:240716529 上传时间:2024-05-02 格式:PPT 页数:37 大小:1.13MB
返回 下载 相关 举报
第七章Simulink基础_第1页
第1页 / 共37页
第七章Simulink基础_第2页
第2页 / 共37页
第七章Simulink基础_第3页
第3页 / 共37页
点击查看更多>>
资源描述
第七章第七章SimulinkSimulink基础基础主要内容主要内容7.1Simulink简介简介7.2Simulink的基本操作的基本操作7.3系统仿真及参数设置系统仿真及参数设置7.4Simulink模块库模块库7.5Simulink子系统子系统7.1 Simulink简介简介 SimulinkSimulink:用来对动态系统进行建模、仿真和分析的软件包,支持连续、离用来对动态系统进行建模、仿真和分析的软件包,支持连续、离 散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。在在SimulinkSimulink环境中,环境中,利用鼠标就可以在模型窗口中直观地利用鼠标就可以在模型窗口中直观地“画画”出系统模型,出系统模型,然后直接进行仿真。它为用户提供了方框图进行建模的图形接口,采用这种然后直接进行仿真。它为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像你用手和纸来画一样容易。它与传统的仿真软件包微分方程结构画模型就像你用手和纸来画一样容易。它与传统的仿真软件包微分方程和差分方程建模相比,具有更直观、和差分方程建模相比,具有更直观、方便、灵活的优点。方便、灵活的优点。SimulinkSinks(输出方式)(输出方式)Source(输入源)(输入源)Linear(线性环节)(线性环节)Nonlinear(非线性环节)(非线性环节)Connections(连接与接口)(连接与接口)Extra(其他环节)(其他环节)7.1 Simulink简介简介 采用采用ScopeScope模块和其他的画图模块,在仿真进行的同时,模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。除此之外,用户还可以在改变参就可观看到仿真结果。除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。仿真的结果还数后来迅速观看系统中发生的变化情况。仿真的结果还可以存放到可以存放到MATLABMATLAB的工作空间里做事后处理。的工作空间里做事后处理。用用SimulinkSimulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。在定义完一个模型后,用户可以通过在定义完一个模型后,用户可以通过SimulinkSimulink的菜单或的菜单或MATLABMATLAB的命令窗口的命令窗口键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。对于运行一大类仿真非常有用。7.1 Simulink简介简介 SimulinkSimulink非常实用,应用领域很广,可使用的领域非常实用,应用领域很广,可使用的领域包括航空航天、电子、力学、数学、通信、影视和控制包括航空航天、电子、力学、数学、通信、影视和控制等。世界各地的工程师都在利用它来对实际问题建模,等。世界各地的工程师都在利用它来对实际问题建模,解决问题。解决问题。模型分析工具包括线性化和平衡点分析工具、模型分析工具包括线性化和平衡点分析工具、MATLABMATLAB的许多工具及的许多工具及MATLABMATLAB的应用工具箱。由于的应用工具箱。由于MATLABMATLAB和和SimulinkSimulink的集成在一起的,因此用户可以在这的集成在一起的,因此用户可以在这两种环境下对自己的模型进行仿真、分析和修改。两种环境下对自己的模型进行仿真、分析和修改。SimulinkSimulink具有非常高的开放性,提倡将模型通过框图表示出来,或者将已具有非常高的开放性,提倡将模型通过框图表示出来,或者将已有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。SimulinkSimulink具有较高的交互性,允许随意修改模块参数,并且可以直接无缝具有较高的交互性,允许随意修改模块参数,并且可以直接无缝地使用地使用MATLABMATLAB的所有分析工具。对最后得到的结果可进行分析,并能够将结果的所有分析工具。对最后得到的结果可进行分析,并能够将结果可视化显示。可视化显示。7.2 Simulink 的基本操作的基本操作一、一、SimulinkSimulink的运行的运行 运行运行SimulinkSimulink 有三种方式:有三种方式:在在MATLABMATLAB的命令窗口直接键入的命令窗口直接键入“SimulinkSimulink”并回车;并回车;单击单击MATLABMATLAB工具条上的工具条上的SimulinkSimulink 图标;图标;在在MATLABMATLAB菜单上选菜单上选FileFileNewNewModelModel二、常用的标准模块二、常用的标准模块附录附录C C以表格的形式给出以表格的形式给出SimulinkSimulink几个基本模块库中几个基本模块库中的模块功能简介,表格中的模块名和模块库中的模块的模块功能简介,表格中的模块名和模块库中的模块图标下的名称一致。图标下的名称一致。7.2 Simulink 的基本操作的基本操作三、模块的操作三、模块的操作模块的选取模块的选取模块的复制、剪切、删除、移动模块的复制、剪切、删除、移动模块的连接模块的连接模块参数的设置模块参数的设置例例7.2.1已知单位负反馈二阶系统的开环传递函数为已知单位负反馈二阶系统的开环传递函数为试绘制单位阶跃响应的实验结构图。试绘制单位阶跃响应的实验结构图。7.2 Simulink 的基本操作的基本操作模块的外形的调整模块的外形的调整改变模块的大小改变模块的大小 调整模块的方向调整模块的方向 给模块加阴影给模块加阴影 模块名的处理模块名的处理模块名的显示与消隐模块名的显示与消隐 修改模块名修改模块名例例7.2.2将例将例7.2.1的结构图进行模块处理。的结构图进行模块处理。7.3 系统仿真及参数设置系统仿真及参数设置在在Simulink中建立起系统模型框图后,运行菜单【中建立起系统模型框图后,运行菜单【Simulation】|【Start】就可以用就可以用Simulink对模型进行动态仿真。一般在仿真运行前需要对仿真参对模型进行动态仿真。一般在仿真运行前需要对仿真参数进行设置,运行菜单【数进行设置,运行菜单【Simulation】|【Parameters】完成设置。】完成设置。7.3 系统仿真及参数设置系统仿真及参数设置一、算法设置一、算法设置 在在Solver里需要设置仿真起始和终止时间、选择合适的解法(里需要设置仿真起始和终止时间、选择合适的解法(Solver)并)并指定参数、设置一些输出选择。指定参数、设置一些输出选择。1、设置起始时间和终止时间(、设置起始时间和终止时间(Simulationtime)【Simulation】|【Starttime】设置起始时间,而【】设置起始时间,而【Stoptime】设置终止】设置终止时间,单位为时间,单位为“秒秒”。2、算法设置、算法设置(Solveroption)(1)算法类型设置)算法类型设置仿真的主要过程一般是求解常微分方程组,【仿真的主要过程一般是求解常微分方程组,【Solveroption】|【Type】用来选择仿真算法的类型是变化的】用来选择仿真算法的类型是变化的还是固定的。还是固定的。7.3 系统仿真及参数设置系统仿真及参数设置变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,应该先指定一个容许误差限(【应该先指定一个容许误差限(【Relativetolerance】或【】或【Absolutetolerance】),使得当误差超过误差限时自动修正仿真步长,【】),使得当误差超过误差限时自动修正仿真步长,【Maxstepsize】用于设置最大步长,在缺省情况下为】用于设置最大步长,在缺省情况下为“auto”,并按下式计算最大步长:,并按下式计算最大步长:最大步长最大步长=(终止时间(终止时间-起始时间)起始时间)/50(2)仿真算法设置)仿真算法设置离散模型:对变步长和定步长解法均采用离散模型:对变步长和定步长解法均采用discrete(nocontinuousstate)。连续模型:有变步长和定步长两种解法。连续模型:有变步长和定步长两种解法。变步长解法有:变步长解法有:ode45、ode23、ode113、ode15s、ode23s、ode23t,ode23st3、设置输出选项、设置输出选项 7.3 系统仿真及参数设置系统仿真及参数设置二、工作空间设置二、工作空间设置 工作空间设置(工作空间设置(WorkspaceI/O)窗口可以设置)窗口可以设置Simulink和当前工作空间和当前工作空间的数据输入、输出。通过设置,可以从工作空间输入数据、初始化状态模的数据输入、输出。通过设置,可以从工作空间输入数据、初始化状态模块,也可以把仿真结果、状态变量、时间数据保存到当前工作空间。块,也可以把仿真结果、状态变量、时间数据保存到当前工作空间。从工作空间读入数据(从工作空间读入数据(Load from workspace)保存数据到工作空间保存数据到工作空间(Save to workspace)初始化状态模块初始化状态模块7.4 Simulink模块模块库库一、信号源模块库一、信号源模块库 7.4 Simulink模块模块库库二、连续系统模块库二、连续系统模块库 7.4 Simulink模块模块库库三、离散系统模块库三、离散系统模块库 7.4 Simulink模块模块库库四、数学运算模块库四、数学运算模块库 7.4 Simulink模块模块库库五、输出模块库五、输出模块库 7.4 Simulink模块模块库库六、非线性系统模块库六、非线性系统模块库 7.5 Simulink子系统子系统一、一、SimulinkSimulink子系统简介子系统简介 Simulink提供的子系统功能可以大大地增强提供的子系统功能可以大大地增强Simulink系统框图的可读性,可系统框图的可读性,可以不必了解系统中每个模块的功能就能够了解整个系统得框架。子系统可以以不必了解系统中每个模块的功能就能够了解整个系统得框架。子系统可以理解为一种理解为一种“容器容器”,我们可以将一组相关的模块封装到这个子系统模块当中,我们可以将一组相关的模块封装到这个子系统模块当中,并且等效于原系统模块群的功能,而对其中的模块我们可以暂时不去了解。并且等效于原系统模块群的功能,而对其中的模块我们可以暂时不去了解。组合后的子系统可以进行类似模块的设置,在模型的仿真过程中可作为一个组合后的子系统可以进行类似模块的设置,在模型的仿真过程中可作为一个模块。建立子系统的有以下两种方法:模块。建立子系统的有以下两种方法:7.5 Simulink子系统子系统1、在已有的系统模型中建立子系统、在已有的系统模型中建立子系统7.5 Simulink子系统子系统框选区域,然后右击,弹出浮动菜单,选择框选区域,然后右击,弹出浮动菜单,选择【CreatSubsystem】7.5 Simulink子系统子系统创建子系统,然后双击创建子系统,然后双击Subsystem模块。模块。7.5 Simulink子系统子系统简单建立模型,双击简单建立模型,双击Subsystem模块,在弹出的窗口中建立子系统模型。模块,在弹出的窗口中建立子系统模型。2、在已有的系统模型中新建子系统、在已有的系统模型中新建子系统7.5 Simulink子系统子系统这两种创建子系统最后实现的是一模一样的功能,只不过操作顺序不同。前这两种创建子系统最后实现的是一模一样的功能,只不过操作顺序不同。前者是先将这个结构搭建起来,然后将相关的模块封装起来;后者则是先做一者是先将这个结构搭建起来,然后将相关的模块封装起来;后者则是先做一个封装容器,然后在封装容器中添加模块。个封装容器,然后在封装容器中添加模块。对于一个相对简单的模型我们采用第一种,这种操作一般不会出错,能够顺对于一个相对简单的模型我们采用第一种,这种操作一般不会出错,能够顺利搭建模型。而对于非常复杂的系统,我们事先将模型分成若干个子系统,利搭建模型。而对于非常复杂的系统,我们事先将模型分成若干个子系统,然后再采用第二种方法进行建模。然后再采用第二种方法进行建模。1、子系统命名:、子系统命名:命名方法与模块命名方法类似,是拥有代表意义的文字命名方法与模块命名方法类似,是拥有代表意义的文字来对子系统进行命名,有利于增强模块的可读性。来对子系统进行命名,有利于增强模块的可读性。在使用在使用Simulink子系统建立模型时,有如下几个常用的操作:子系统建立模型时,有如下几个常用的操作:7.5 Simulink子系统子系统2、子系统编辑:、子系统编辑:用鼠标双击子系统模块图标,打开子系统并对其进行编辑。用鼠标双击子系统模块图标,打开子系统并对其进行编辑。3、子系统的输入:、子系统的输入:使用使用Souces模块库中的模块库中的Input输入模块,即输入模块,即In1模块,作为子系统的输入端模块,作为子系统的输入端口。口。4、子系统的输出:、子系统的输出:使用使用Sinks模块库中的模块库中的Output输出模块,即输出模块,即Out1模块,作为子系统的输出端模块,作为子系统的输出端口。口。7.5 Simulink子系统子系统根据不同的控制信号,可将条件执行子系统分为:根据不同的控制信号,可将条件执行子系统分为:1、触发子系统、触发子系统2、使能子系统、使能子系统3、使能触发子系统、使能触发子系统二、二、SimulinkSimulink高级子系统应用高级子系统应用 三、封装子系统三、封装子系统 Simulink封装子系统的几个特点封装子系统的几个特点可以自定义封装子系统的图标;可以自定义封装子系统的图标;双击封装后的子系统,弹出参数对话框,其中对话双击封装后的子系统,弹出参数对话框,其中对话框是自定义;框是自定义;封装子系统的帮助文档都是自定义编写的;封装子系统的帮助文档都是自定义编写的;封装子系统有自己的工作区域。封装子系统有自己的工作区域。7.5 Simulink子系统子系统一个一个PID控制器的控制器的Simulink模型模型,将其封装。,将其封装。7.5 Simulink子系统子系统点击右键选择菜单中的点击右键选择菜单中的MaskSubsystem进入进入Mask编辑窗口。编辑窗口。7.5 Simulink子系统子系统1、封装编辑器的图标编辑选项卡、封装编辑器的图标编辑选项卡(Icon)(1)图标显示设置)图标显示设置(Iconoptions)(2)图标绘制命令栏()图标绘制命令栏(Drawingcommands)(3)图标绘图命令示例)图标绘图命令示例(Examplesofdrawingcommands)7.5 Simulink子系统子系统2、封装编辑器的参数设置选项卡(、封装编辑器的参数设置选项卡(Parameters)参数设置选项卡中包括如下几种设置内容:参数设置选项卡中包括如下几种设置内容:(1)参数设置控制)参数设置控制(2)参数描述)参数描述(3)变量)变量(4)参数设置描述)参数设置描述7.5 Simulink子系统子系统3、封装编辑器的初始化设置选项卡(、封装编辑器的初始化设置选项卡(Initialization)4、封装编辑器的文档编辑选项卡(、封装编辑器的文档编辑选项卡(Documentation)Masktype MaskdescriptionMaskhelpS函数的建立S函数就是S-Functions,是System-Functions的缩写。当MATLAB所提供的模型不能完全满足要求时,就可以通过S函数提供给用户自己编写程序来满足自己要求模型的接口。S函数使用有固定格式,只能用于基于Simulink的仿真,并不能将其转换成独立于MATLAB的程序。S函数功能非常全面,适用于连续、离散以及混合系统。MATLAB提供了编写S函数的模板文件,该模板文件位于MATLAB根目录toolboxSimulinkblocks下,文件名为sfunmpl.m,该文件给出了S函数完整的框架结构,包含一个主函数和若干子函数,每一个子函数都对应于一个flag值,用户还可以根据编程需要加以修正。S函数的格式为:Functionsys,x0,str,ts=sfun(t,x,u,flag,p1,p2,)其中sfun是S函数的函数名,t,x,u分别为时间、状态和输入信号,flag为标志位,p1,p2为参数。Flag值仿真仿真过程程调用的子函数用的子函数功能功能0初始化初始化mdlInitializeSize()对连续/离散状离散状态变量个数、量个数、输入和入和输出的路出的路数、采数、采样周数个数和周数个数和值以及状以及状态变量初量初值x0等等进行初始行初始设置。置。1连续状状态变量更量更新新mdlDerivatives()计算算连续状状态变量的微分方程并由量的微分方程并由sys变量返量返回回2离散状离散状态状状态更更新新mdlUpdate()更新离散状更新离散状态变量并由量并由sys变量返回量返回3计算算输出出mdlOutputs()计算算输出信号由出信号由sys变量返回量返回4计算下一仿真算下一仿真时刻刻mdlGetTimeNextVarHit()计算下一步的仿真算下一步的仿真时刻由刻由sys变量返回量返回9终止止mdlTerminate()终止仿真止仿真过程,不返回任何程,不返回任何变量量S函数的模板格式为:functionsys,x0,str,ts=sfuntmpl(t,x,u,flag)switch flag,case 0,sys,x0,str,ts=mdlInitializeSizes;%调用初始化子函数 case 1,sys=mdlDerivatives(t,x,u);%调用计算导数子函数 case 2,sys=mdlUpdate(t,x,u);%调用离散状态变量更新子函数 case 3,sys=mdlOutputs(t,x,u);%计算输出子函数 case 4,sys=mdlGetTimeNextVarHit(t,x,u);%计算下一仿真时刻子函数 case 9,sys=mdlTerminate(t,x,u);%终止仿真子函数 otherwise error(Unhandled flag=,num2str(flag);%flags为其他值提示错误信息end1、初始化子函数、初始化子函数functionsys,x0,str,ts=mdlInitializeSizessizes=simsizes;sizes.NumContStates=0;%设置连续状态变量个数,默认值为0sizes.NumDiscStates=0;%设置离散状态变量个数,默认值为0sizes.NumOutputs=0;%设置输出变量的个数,默认值为0sizes.NumInputs=0;%设置输入变量的个数,默认值为0sizes.DirFeedthrough=1;%输入信号是否直接在输出端出现,取值为0或1sizes.NumSampleTimes=1;%设置采样周期的个数,默认值为1sys=simsizes(sizes);x0 =;%设定初始值,默认值为str=;ts =0 0;%0 0用于连续系统,-1 0表示继承其前的采样时间设置2、计算导数子函数、计算导数子函数functionsys=mdlDerivatives(t,x,u)sys=;%计算结果由sys变量返回3、离散状态变量更新子函数、离散状态变量更新子函数functionsys=mdlUpdate(t,x,u)sys=;%更新后的离散状态变量由sys变量返回4、计算输出子函数、计算输出子函数functionsys=mdlOutputs(t,x,u)sys=;%计算的输出向量由sys变量返回5、计算下一仿真时刻子函数、计算下一仿真时刻子函数functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;%设置本函数的调用时间sys=t+sampleTime;%计算下一采样时刻由sys变量返回6、终止仿真子函数、终止仿真子函数functionsys=mdlTerminate(t,x,u)sys=;说明:说明:1、在实际运用时,并不是都要调用所有的子函数,用户可根据实际需要去掉某些值;2、输入参量的设置可在调用此S函数时给定。例例8-6应用应用S函数实现增益,使得函数实现增益,使得y=4*u。例例8.6结束语结束语谢谢大家聆听!谢谢大家聆听!37
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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