MAT用基础及教程 8_第1页
MAT用基础及教程 8_第2页
MAT用基础及教程 8_第3页
MAT用基础及教程 8_第4页
MAT用基础及教程 8_第5页
已阅读5页,还剩65页未读, 继续免费阅读

下载本文档

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

文档简介

lecture_07Simulink仿真基础内容提纲重点难点(cha.7)Next:cha.8玫瑰花:美国、英国、西班牙、卢森堡、保加利亚的国花。simulink工具箱简介simulink是实现动态系统建模、仿真和分析的一个集成环境,使得matlab的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。simulink名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用simulink提供的功能来对系统进行仿真和分析。不用命令行编程,由方框图产生mdl文件。当创建好的框图保存后,相应的mdl文件就自动生成,这个.mdl文件包含了该框图的所有图形及数学关系信息。框图表示比较直观,容易构造,运行速度较快。7.1.1Simulink概述7.1.1Simulink概述(1)simulink优点适应面广:包括线性、非线性系统;离散、连续系统结构和流程清晰:以方块图形式呈现,仿真精细、贴近实际(2)simulink的模型:

simulink模型在视觉上表现为方框图,在文件上则是扩展名为mdl的ASCII代码;在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。simulink的一般结构:输入系统输出(3)结构图创建方法一个动态系统的创建过程,就是一个方框图的绘制过程具体步骤:在matlab命令窗口键入simulink(4)simulink演示实例1)在matlab命令窗口键入demo2)点击帮助-Demos-Simulink

7.1.2Simulink模块的组成1.应用工具Simulink软件包的一个重要特点是它完全建立在MATLAB的基础上。因此,MATLAB的各种应用工具箱也完全可应用到Simulink环境中来。2.Real-TimeWorkshop(实时工作室)Simulink软件包中的Real-TimeWorkshop(实时工作室)可将Simulink的仿真框图直接转换为C语言代码,从而直接从仿真系统过渡到系统实现。该工具支持连续、离散及连续-离散混合系统。用户完成C语言代码的编程后可直接进行汇编及生成可执行文件。

7.1.2Simulink模块的组成3.stateflow(状态流模块)MATLAB中使用的stateflow,Simulink中包含了stateflow的模块,用户可以在该模块化设计基于状态变化的离散事件系统。将该模块放入Simulink模型中,就可以创建包含离散事件子系统的更为复杂的模型。4.扩展的模块集如同众多的应用工具箱扩展了MATLAB应用范围一样,MathWorks公司为Simulink提供了各种专门的模块集(BlockSet)来扩展Simulink的建模和仿真能力。这些模块涉及通信、电力、非线性控制、DSP系统等不同领域,以满足Simulink对不同领域系统仿真的需求。

7.1.3Simulink中的数据类型1.Simulink支持的数据类型Simulink支持所有的MATLAB内置数据类型,内置数据类型是指MATLAB自定义的数据类型(如表7-1所示)。表7-1Simulink支持的数据类型名称类型说明Double双精度浮点型(Simulink默认数据类型)single单精度浮点型int8有符号8位整数uint8无符号8位整数(包含布尔类型)int16有符号16位整数uint16无符号16位整数int32有符号32位整数uint32无符号32位整数

7.1.3Simulink中的数据类型2.数据类型的传播一个模块的输出一般是模块输入和模型参数的函数。而在实际建模过程中,输入信号的数据类型和模块参数的数据类型往往是不同的,Simulink在计算这种输出时会把参数类型转换为信号的数据类型(应用DataTypeConversion模块)。当信号的数据类型无法表示参数值时,Simulink将中断仿真,并给出错误信息。3.使用复数信号在Simulink中通常用下面两种方法来建立处理复数信号的模型。一种是将所需复数分解为实部和虚部,利用Real-ImagetoComplex模块将它们联合成复数,如图7-1所示。另一种是将所需复数分解为复数的幅值和幅角,利用Magnitue-AngletoComplex模块将它们联合成复数。当然也可以利用相关模块将复数分解为实部和虚部或者是幅值和幅角。

7.1.3Simulink中的数据类型

图7-1建立复数信号的模型

7.2Simulink的使用一、启动Simulink的方法有如下三种:1)、在MATLAB的命令窗口直接键入simulink。2)、点击工具栏上的Simulink模块库浏览器命令按钮,如图7-2所示。3)、在工具栏File菜单中选择New菜单工具栏下的Model命令,如图7-2所示。启动后会弹出一个名为Untitled的空白窗口,所有控制模块都创建在这个窗口中。退出Simulink只要关闭所有模块窗口和Simulink模块库窗口即可。

7.2.1Simulink的启动和退出

图7-2Simulink启动窗口

二、打开已经存在的Simulink模型文件打开已经存在的Simulink模型文件也有几种方式:1)、在MATLAB命令窗口直接键入模型文件名(不要加扩展名“.slx”),这要求该文件在当前d路径范围内;2)、在MATLAB菜单上选择FileOpen;3)、单击工具栏上的打开图标。若要退出Simulink窗口只要关闭该窗口即可。7.2.1Simulink的启动和退出

一、打开MATLAB,在工具栏中单击simulink按钮,会出现图7-3所示窗口7.2.2在Simulink的窗口创建一个新模型

图7-3Simulink启动窗口

二、点击BlankModel模板,Simulink编辑器打开一个新建模型窗口,如图7-4所示。选择File→Saveas,写入该文件的文件名。例如:simple_model.slx,点击保存。7.2.2在Simulink的窗口创建一个新模型图7-4新建模型窗口

二、点击BlankModel模板,Simulink编辑器打开一个新建模型窗口,如图7-4所示。选择File→Saveas,写入该文件的文件名。例如:simple_model.slx,点击保存。7.2.2在Simulink的窗口创建一个新模型图7-4新建模型窗口

一、从模块库的选取模块在Simulink工具栏,单击SimulinkLibrary按钮。打开模块库浏览器如图7-5。7.2.3Simulink模块的操作图7-5从模块库浏览器选取模块

二、浏览查找模块在图7-5的左边列出的是所有的模块库,选择一个模块库。例如要查找正弦波模块,可以在浏览器工具栏的搜索框中输入sine,点击回车。Simulink就可以在正弦波的库中找到,显示此模块,如图7-6所示。7.2.3Simulink模块的操作

图7-6在模块库浏览器中查找模块

Simulink的建模仿真的一般过程如下:1、打开一个空白的编辑窗口;2、将模块库中的模块复制到编辑窗口中,并依据给定的框图修改编辑窗口中模块的参数;3、将各个模块按给定的框图连接起来;4、用菜单选择或命令窗口键入命令进行仿真分析,在仿真的同时,可以观察仿真结果,如果发现有不正确的地方,可以停止仿真并可修正参数;5、若对结果满意,可以将模型保存。7.2.4Simulink的建模和仿真

【例7-1】设计一个简单模型,将一个正弦信号输出到示波器。步骤1新建一个空白模型窗口;步骤2为空白模型窗口添加所需的模块;步骤3连接相关模块,构成所需的系统模型;步骤4点击进行系统仿真;步骤5观察仿真结果,点击Scope打开窗口即可观察仿真结果。7.2.4Simulink的建模和仿真

【例7-1】设计一个简单模型,将一个正弦信号输出到示波器。步骤1新建一个空白模型窗口,如图7-7所示;7.2.4Simulink的建模和仿真图7-7新建模型窗口

【例7-1】【例7-1】设计一个简单模型,将一个正弦信号输出到示波器。步骤2为空白模型窗口添加所需的模块,如图7-8所示;7.2.4Simulink的建模和仿真图7-8从模块库中添加模块

【例7-1】【例7-1】设计一个简单模型,将一个正弦信号输出到示波器。步骤3连接相关模块,构成所需的系统模型,如图7-9所示;7.2.4Simulink的建模和仿真图7-9在模型窗口中连接各模块

【例7-1】【例7-1】设计一个简单模型,将一个正弦信号输出到示波器。步骤4点击进行系统仿真;步骤5观察仿真结果,点击Scope打开如图7-10所示的窗口即可观察仿真结果。7.2.4Simulink的建模和仿真图7-10仿真波形

7.3Simulink的模块库及模块模块库的作用就是提供各种基本模块,并将它们按应用领域及功能进行分类管理,以便于用户查找和使用。库浏览器将各种模块库按树结构进行罗列,便于用户快速查找所需的模块,同时它还提供了按照名称查找的功能。而模块则是Simulink建模的基本元素,了解各个模块的作用是Simulink仿真的前提和基础。Simulink的模块库有两部分组成:基本模块和各种应用工具箱。例如对通信系统仿真来说,主要用到Simulink基本库,通信系统工具箱和数字信号处理工具箱。Simulink的基本模块是由典型模块库里的模块构成。这些模块库主要有系统仿真模块库(Simulink)、通信模块库(CommunicationsBlockset)、数字信号处理模块库(DSPBlockset)、控制系统模块库(ControlSystemToolbox)等。

7.3Simulink的模块库及模块Simulink模块库中包含了如下子模块库:1)CommonlyUsedBlocks子模块库,为仿真提供常用模块元件;2)Continuous子模块库,为仿真提供连续系统模块元件;3)Dashboard子模块库,为仿真提供一些类似仪表显示模块元件;4)Discontinuous子模块库,为仿真提供非连续系统模块元件;5)Discrete子模块库,为仿真提供离散系统模块元件;6)LogicandBitOperations子模块库,为仿真提供逻辑运算和位运算模块元件;7)LookupTables子模块库,为仿真提供线性插值表模块元件;8)MathOperations子模块库,为仿真提供数学运算功能模块元件;

7.3Simulink的模块库及模块9)ModelVerification子模块库,为仿真提供模型验证模块元件;10)Model-WideUtilities子模块库,为仿真提供相关分析模块元件;11)PortsandSubsystems子模块库,为仿真提供端口和子系统模块元件;12)SignalsAttributes子模块库,为仿真提供信号属性模块元件;13)SignalsRouting子模块库,为仿真提供输入/出及控制的相关信号处理模块元件;14)Sinks子模块库,为仿真提供输出设备模块元件;15)Sources子模块库,为仿真提供信号源模块元件;16)User-definedFunctions子模块库,为仿真提供用户自定义函数模块元件;下面介绍几个常用的模块库及模块

一、

CommonlyUsedBlocks子模块库CommonlyUsedBlocks(常用元件)子模块库为系统仿真提供常见元件,其所含模块及功能如表7-2所示。表7-2CommonlyUsedBlocks子模块库基本模块及功能描述名称功能说明Bus

Creator将输入信号合并成向量信号Bus

Selector将输入向量分解成多个信号(输入只接受Mux和Bus)Creator输出的信号Constant输出常量信号DataTypeConversion数据类型的转换Demux将输入向量转换成标量或更小的标量Discrete-TimeIntegrator离散积分器Gain增益模块In1输入模块Integrator连续积分器LogicalOperator逻辑运算模块Mux将输入的向量、标量或矩阵信号合成Out1输出模块Product乘法器(执行向量、标量、矩阵的乘法)RelationalOperator关系运算(输出布尔类型数据)Saturation定义输入信号的最大和最小值二、连续模块组(Continuous)数值微分器传递函数积分器状态空间零极点时间延迟变量时间延迟三、断续模块组(Discontinuities) 磁滞回环模块死区模块饱和非线性模块继电模块量化模块单位延迟零阶保持器一阶保持器离散积分器离散传递函数记忆模块离散状态空间模型离散滤波器四、离散模块组(Discrete)五、数学运算模块组(MathOperations)六、输出模块组(Sinks)输出端口模块示波器X-Y示波器输出到文件模块输出到工作空间模块仿真终止模块信号终结模块显示器七、信号源模块组(Sources)输入端口模块

常数模块时钟从文件读数

信号发生器阶跃模块从工作空间读数接地线模块限带白噪声斜坡输入脉冲信号正弦信号可重复的输入信号查表模块组(Look-UpTables)信号路线发送模块组(SignalRouting)模型校验模块组(ModelVerification)模型的扩展利用模块组(Model-WideUtilities)接口与子系统模块组(Ports&Subsystems)信号属性模块组(SignalAttributes)用户定义函数模块组(User-DefinedFunctions)更具特色的其他模块集

八、其他模块组一、玫瑰花语之一

玫瑰颜色丰富,不同颜色有着不同的寓意:

粉玫瑰花语---初恋

红玫瑰花语---热恋

橙红色玫瑰花语---羞怯

黄玫瑰花语---道歉

白玫瑰花语---尊敬

淡绿色玫瑰花语---青春长驻

7.4Simulink仿真建立仿真结构图以简单的PID控制器为例,说明simulink从建模到仿真的步骤:1)file菜单——new子菜单——model2)将各个模块拷贝到(拖到)untitled窗口各模块所在的位置。其中:Signalgenerator在source中Sum在math中PID在simulinkextras/additionallinear子库里传递函数在continuous中示波器scope在sinks中方框图绘制完毕,一个动态系统模型也就创建好了。设置各个模块参数选择File菜单Save保存图形,就自动生成一个可在matlab命令窗口运行的.slx文件。然后就可用simulation菜单中start开始仿真了。含PID控制器的线性系统的Matlab仿真结构图实验结果:例2设是周期函数,它在(0,)上的表达式为

将展开成傅立叶级数。利用simulink仿真傅立叶级数。

解:利用高等数学知识,可以计算出的傅立叶级数展开式为:

为了仿真方便,在误差允许的范围内,我们取前四项做仿真。

傅立叶级数展开式结构图参数设置仿真结果例3对系统进行仿真,u(t)为系统的输入,y(t)为系统的输出。1建立系统模型其中RelationalOperator模块在math模块库中Clock模块和contant模块在sources模块库中Switch模块在signalrouting模块库中2模块参数设置Relationaloperator模块参数设置为“>”;gain模块的增益设为2;gain1模块的增益值设为5,其他模块参数采用默认值。3设置仿真起止时间和步长在仿真参数设置对话框的【solver】选项中设置仿真起始时间和结束时间分别为0s和100s。在仿真参数设置对话框的【solver】选项卡中把【maxstepsize】设置为0.1(仿真步长不超过0.1)。4仿真结果

7.5Simulink模块及仿真参数设置模块参数设置Simulink仿真参数设置Solver(求解器)参数配置--配置最为关键DataImput/Export(数据输入输出项)参数配置Optimization(最优化配置)参数配置Diagnostics(诊断)参数配置HardwareImplementation参数配置ModelReferencing参数配置

7.5.1模块参数设置系统模块参数设置是Simulink仿真进行人机交互的一种重要途径,虽然简单,但十分重要。Simulink绝大多数系统模块都需进行参数设置,即便用户自己封装的子系统也通常有参数设置项。Simulink系统参数设置通常有以下3种方式。编辑框输入模式下拉菜单选择模式选择框模式

7.5.1模块参数设置下面以Integrator模块为例,双击积分模块,弹出参数设置对话框,如图7-34所示。图中共有多种参数设置模式。例如参数项“Initialconditionsource”为下拉菜单选择模式,参数项“Initialcondition”为编辑框输入模式,参数项“Enablezero-crossingdetection”为选择框模式。

7.5.1模块参数设置根据模块的不同要求,其参数设置的内容与格式也不同。例如,如图7-35所示的TransferFcn模块的参数“NumeratorCoefficient”、“DenominatorCoefficient”分别为传递函数模型的分子、分母多项式系数向量,要以方括号括起来;而状态空间模型的参数“A、B、C、D”为其系数矩阵,要按矩阵的形式进行编辑输入。具体的参数设置需要根据不同模块的要求,此处不再赘述。

7.5.2Simulink仿真参数设置Simulink仿真参数设置是Simulink动态仿真的重要内容及并掌握Simulink仿真技术的关键内容之一。建立好系统的仿真模型后,需要对Simulink仿真参数进行设置。在Simulink模型窗口中选择“Simulation”下的“ConfigurationParameters”命令,打开如图所示的仿真参数设置对话框。从图左侧可以看出,仿真参数设置对话框主要包括共6项内容。其中Solver参数配置最为关键。

7.5.2Simulink仿真参数设置一、Solver参数设置主要包括Simulationtime(仿真时间)、SolverOptions(求解器选项)、Taskingandsampletimeoptions(任务处理及采样时间项)和Zerocrossingoptions(过零项)共4项内容。

7.5.2Simulink仿真参数设置一、Solver参数设置1)、Simulationtime:仿真时间参数,它与计算机执行任务具体需要的时间不同。例如,仿真时间10s,当采样步长为0.2时,需要执行100步。“Starttime”用来设置仿真的起始时间,一般从零开始(也可以选择从其它时间开始)。“Stoptime”用来设置仿真的终止时间。Simulink仿真系统默认的起始时间为0,终止时间为10s。

7.5.2Simulink仿真参数设置一、Solver参数设置2)、Solveroptions:可设置Type(仿真类型)和Solver(求解器算法)。对于可变步长仿真,还有Maxstepsize(最大步长)、Minstepsize(最小步长)、Initialstepsize(初始步长)、Relativetolerance(相对误差限)、Absolutetolerance(绝对误差限)等。

7.5.2Simulink仿真参数设置一、Solver参数设置2)、Solveroptions:可设置Type(仿真类型)和Solver(求解器算法)。对于可变步长仿真,还有Maxstepsize(最大步长)、Minstepsize(最小步长)、Initialstepsize(初始步长)、Relativetolerance(相对误差限)、Absolutetolerance(绝对误差限)等。(1)Type(仿真类型):包括固定步长仿真(Fixed-step)和变步长仿真(Variable-step),变步长仿真为系统默认求解器类型。(2)Solver(变步长仿真求解器算法):包括discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb。

7.5.2Simulink仿真参数设置一、Solver参数设置3)仿真时间设置:在设置仿真步长时,最大步长要大于最小步长,初始步长则介于两者之间。系统默认最大步长为“仿真时间/50”,即整个仿真至少计算50个点。最小步长及初始步长建议使用默认值(auto)即可。4)误差容限:Relativetolerance(相对误差)指误差相对于状态的值,一般是一个百分比。默认值为1e-3,表示状态的计算值要精确到0.1%。Absolutetolerance(绝对误差)表示误差的门限,即在状态为零的情况下可以接受的误差。如果设为默认值(auto),则Simulink为每一个状态设置初始绝对误差限为1e-6。5)其它参数项:建议使用默认值。

7.5.2Simulink仿真参数设置二、DataImput/Export参数设置包括Loadformworkspace(从工作空间输入数据)、savetoworkspace(将数据保存到工作空间)、SimulationDataInspector(信号查看器)、AdditionalParameters(附加选项)。

7.5.2Simulink仿真参数设置三、Optimization参数设置用来对Simulink仿真进行优化配置,以提高仿真性能以及产生代码的性能。其中,“Simulationandcodegeneration”设置项对模型仿真及代码生成共同有效;“CodeGeneration”设置项仅对代码生成有效。

7.5.2Simulink仿真参数设置四、Diagnostics参数设置主要用于对一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的Simulink检验、仿真过程中出现各类错误时发出的警告等级等内容进行设置。设置内容为三类,“warning”表示提出警告、但警告信息并不影响程序的运行;“error”为提示错误同时终止运行的程序;“none”为不做任何反应。

7.5.2Simulink仿真参数设置五、HardwareImplementation参数设置主要针对于计算机系统模型,如嵌入式控制器。允许设置这些用来执行模型所表示系统的硬件参数。

7.5.2Simulink仿真参数设置六、odelReferencing参数设置主要设置模型引用的有关参数。允许用户设置模型中的其它子

温馨提示

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

评论

0/150

提交评论