《第7讲 Simulink工具箱.ppt》由会员分享,可在线阅读,更多相关《第7讲 Simulink工具箱.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 MATLAB/Simulink设计湖南大学电气与信息工程学院湖南大学电气与信息工程学院 计算机仿真技术计算机仿真技术第第7讲讲 MATLAB/Simulink设计7.1 Simulink简介简介7.2 模块库及简单建模模块库及简单建模 7.3 仿真运行及参数调整仿真运行及参数调整7.4 子系统子系统7.5 S函数函数1.Simulink简介Simulink 中的中的“Simu”一词表示可用于计算机仿真,而一词表示可用于计算机仿真,而“Link”一词表示它能进行系统连接,即把一系列模块连一词表示它能进行系统连接,即把一系列模块连接起来,构成复杂的系统模型。接起来,构成复杂的系统模型。Simul
2、ink是一个用来对动态系统进行建模、仿真和分析是一个用来对动态系统进行建模、仿真和分析的软件包。它让用户把精力从编程转向模型的构造的软件包。它让用户把精力从编程转向模型的构造.使用使用Simulink来建模、分析和仿真各种动态系统来建模、分析和仿真各种动态系统(包括包括连续系连续系统统、离散系统离散系统和和混合系统混合系统),将是一件非常轻松的事情。,将是一件非常轻松的事情。利用利用Simulink进行系统的建模仿真,其最大的优点是易学、进行系统的建模仿真,其最大的优点是易学、易用,并能依托易用,并能依托MATLAB提供的丰富的仿真资源。提供的丰富的仿真资源。近几年来,在学术界和工业领域,Si
3、mulink已经成为动态系统建模和仿真领域中应用最为广泛的软件之一。Simulink可以很方便地创建和维护一个完整地模块,评估不同地算法和结构,并验证系统的性能。由于Simulink是采用模块组合方式来建模,从而可以使得用户能够快速、准确地创建动态系统的计算机仿真模型,特别是对复杂的不确定非线性系统,更为方便。Simulink模型可以用来模拟线性和非线性、连续和离散或者两者的混合系统,也就是说它可以用来模拟几乎所有可能遇到动态系统。另外Simulink还提供一套图形动画的处理方法,使用户可以方便的观察到仿真的整个过程。Simulink没有单独的语言,但是它提供了S函数规则。所谓的S函数可以是一
4、个M函数文件、FORTRAN程序、C或C+语言程序等,通过特殊的语法规则使之能够被Simulink模型或模块调用。S函数使Simulink更加充实、完备,具有更强的处理能力。提供了仿真库的扩充和定制机制提供了仿真库的扩充和定制机制Simulink的开放式结构允许用户扩展仿真环境的开放式结构允许用户扩展仿真环境的功能:采用的功能:采用MATLAB、FORTRAN和和C代码代码生成自定义模块库,并拥有自己的图标和界面。生成自定义模块库,并拥有自己的图标和界面。与与MATLAB工具箱的集成工具箱的集成由于由于Simulink可以直接利用可以直接利用MATLAB的诸多资的诸多资源与功能,因而用户可以直
5、接在源与功能,因而用户可以直接在 Simulink下完下完成诸如数据分析、过程自动化、优化参数等工成诸如数据分析、过程自动化、优化参数等工作。作。Simulink应用领域应用领域simulink在在matlab家族中的位置家族中的位置Toolboxes MATLAB compilerBlockset simulink RTWStateflowcoder Simulink的启动主要有以下两种方法:的启动主要有以下两种方法:在在MATLAB的命令窗口中输入的命令窗口中输入simulink,结果是结果是在桌面上出现一个在桌面上出现一个Simulink Library Browser的窗口。的窗口。单
6、击单击MATLAB主窗口的快捷按钮主窗口的快捷按钮 ,打开,打开Simulink Library Browser窗口窗口。matlabmatlab函数仿真与函数仿真与simulinksimulink仿真的区别仿真的区别1 1、数据流仿真、数据流仿真按照数据流的顺序,依次执行,即处理的数据首先通过一按照数据流的顺序,依次执行,即处理的数据首先通过一个运算阶后在激活下一个运算阶。个运算阶后在激活下一个运算阶。例如:m=16;n=15;k=11;fc=10000;fd=1000;fs=100000;msg=randint(k*100,1);code=encode(msg,n,k,bch);modu=
7、dmod(code,fc,fd,fs,qask,m);modu_noise=modu+randn(length(modu),1);demo=ddemod(modu_noise,fc,fd,fs,qask,m);msg_r=decode(demo,n,k,bch);rate=biterr(msg,msg_r);2 2、时间流仿真时间流仿真所有模块在同一时间步长上同时执行。所有模块在同一时间步长上同时执行。信号发生信号发生差错控制编码差错控制编码数字调制数字调制差错控制译码差错控制译码信宿信宿时间时间数据数据Simulink模型窗口的建立模型窗口的建立 在在Simulink中打开一个空白的模型窗口
8、的方法:中打开一个空白的模型窗口的方法:选中选中Simulink菜单系统中的菜单系统中的File|New|Model菜单项后,菜单项后,会生成一个会生成一个Simulink窗口;窗口;单击单击Simulink工具栏中的工具栏中的“新建模型新建模型”图标;图标;在在MATLAB的命令窗口中选择的命令窗口中选择File|New|New Model菜菜单项;单项;2.模块库及简单建模模块库及简单建模 第七章 Simulink建模和仿真 7.1 Simulink的概述和基本操作图7.1.1 Simulink模型元素关联图 7.1.2 7.1.2 基本操作基本操作基本操作基本操作 一、模型基本结构一、模
9、型基本结构一、模型基本结构一、模型基本结构 一个典型的一个典型的SimulinkSimulink模型包括如下三种类型的元素:模型包括如下三种类型的元素:信号源模块信号源模块 被模拟的系统模块被模拟的系统模块 输出显示模块输出显示模块 如图如图7.1.17.1.1所示说明了这三种元素之间的典型关系。系统所示说明了这三种元素之间的典型关系。系统模块作为中心模块是模块作为中心模块是SimulinkSimulink仿真建模所要解决的主要部分;仿真建模所要解决的主要部分;信号源为系统的输入,它包括常数信号源函数信号发生器信号源为系统的输入,它包括常数信号源函数信号发生器(如正弦和阶跃函数波等)和用户自己
10、在(如正弦和阶跃函数波等)和用户自己在MatlabMatlab中创建的自中创建的自定义信号或定义信号或MatlabMatlab工作间中三种。输出模块主要在工作间中三种。输出模块主要在SinksSinks库库中。中。第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作Simulink模型并不一定要包含全部的三种元素,在实际应用中通常可以缺少其中的一个或两个。例如,若要模拟一个系统偏离平衡位置后的恢复行为,就可以建立一个没有输入而只有系统模块加一个显示模块的模型。在某种情况下,也可以建立一个只有源模块和显示模块的系统。若需要一个由几个函数复合的特殊信号,则可以使用源模块生成信
11、号并将其送入Matlab工作间或文件中。二、仿真运行原理二、仿真运行原理 Simulink仿真包括两个阶段;初始化阶段和模型执行阶段 (1)(1)模块初始化模块初始化 在初始化阶段主要完成以下工作在初始化阶段主要完成以下工作:模型参数传给Matlab进行估值,得到的数值结果将作为模型的实际参数;展开模型的各个层次,每一个非条件执行的子系统被它所包含的模块所代替;第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 模型中的模块按更新的次序进行排序。排序算法产生一个列表以确保具有代数环的模块在产生它的驱动输入的模块被更新后才更新。当然,这一步要先检测出模型中存在的代数环。决
12、定模型中有无显示设定的信号属性,例如名称、数据类型、数值类型以及大小等,并且检查每个模块是否能够接受连接到它输入端的信号。Simulink使用属性传递的过程来确定未被设定的属性,这个过程将源信号的属性传递到它所驱动的模块的输入信号;决定所有无显示设定采样时间的模块的采样时间;分配和初始化用于存储每个模块的状态和输入当前值的存储空间。完成这些工作后就可以进行仿真了。2)2)模型执行模型执行 一般模型是使用数值积分来进行仿真的。所运用的仿真解法器(仿真算法)依赖于模型提供它的连续状态微分能力。计算微分可以分两步进行:第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 首先,
13、按照排序所决定的次序计算每个模块的输出。然后,根据当前时刻的输入和状态来决定状态的微分;得到微分向量后再把它返回给解法器;后者用来计算下一个采样点的状态向量。一旦新的状态向量计算完毕,被采样的数据源模块和接受模块才被更新。在仿真开始时模型设定待仿真系统的初始状态和输出。在每一个时间步中,Simulink计算系统的输入、状态和输出,并更新模型来反映计算出的值。在仿真结束时,模型得出系统的输入、状态和输出。在每个时间步中,Simulink所采取的动作依次为:按排列好的次序更新模型中模块的输出。Simulink通过调用模块的输出函数计算模块的输出。Simulink只把当前值、模块的输入以及状态量传给
14、这些函数计算模块的输出。对于离散系统,Simulink只有在当前时间是模块采样时间的整数倍时,才会更新模块的输出。第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 按排列好的次序更新模型中模块的状态,Simulink计算一个模块的离散状态的方法时调用模块的离散状态更新函数。而对于连续状态,则对连续状态的微分(在模块可调用的函数里,有一个用于计算连续微分的函数)进行数值积分来获得当前的连续状态。检查模块连续状态的不连续点。Simulink使用过零检测来检测连续状态的不连续点。计算下一个仿真时间步的时间。这是通过调用模块获得下一个采样时间函数来完成的。(3)(3)定模块更
15、新次序定模块更新次序在仿真中,Simulink更新状态和输出都要根据事先确定的模块更新次序,而更新次序对方针结果的有效性来说非常关键。特别当模块的输出是当前输入值的函数时,这个模块必须在驱动它的模块被更新之后才能被更新,否则,模块的输出将没有意义。第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作注意:注意:不要把模块保存到模块文件的次序与仿真过程模块被更新的次序相混淆。Simulink在模块初始化时以将模块排好正确的次序。为了建立有效的更新次序,Simulink根据输入和输出的关系将模块分类。其中,当前输出依赖于当前输入的模块称为直接馈入模块,所有其他的模块都称为非虚
16、拟模块。直接馈入模块的例子有Gain、Product和Sum模块;非直接馈入模块的例子有Integrator模块(它的输出只依赖于它的状态),Constant模块(没有输入)和Memory模块(它的输出只依赖于前一个模块的输入)。基于上述分类,Simulink使用下面两个基本规则对模块进行排序:每个模块必须在它驱动的所有模块更新之前被更新。这条规则确保了模块被更新时输入有效。若非直接馈入模块在直接馈入模块之前更新,则它们的更新次序可以是任意的。这条规则允许Simulink在排序过程中忽略非虚拟模块。另外一个约束模块更新次序的因素是用户给模块设定优先级,Simulink在低优先级模块之前更新高优
17、先级模块。SIMULINK模型模型外表:直观的方框图文件:MDL文件数学:微分方程或差分方程行为:模拟物理过程的动态性状Simulink动态仿真动态仿真Simulink 基本操作基本操作n利用Simulink进行系统仿真的步骤是:启动Simulink,打开Simulink模块库打开空白模型窗口;建立Simulink仿真模型;设置仿真参数,进行仿真;输出仿真结果。SimulinkSimulink仿真过程仿真过程1 1初始化阶段初始化阶段 对模型的参数进行估计,得到它们实际计算的值。对模型的参数进行估计,得到它们实际计算的值。展开模型的各个层次;展开模型的各个层次;按照更新的次序对模型进行排序;按
18、照更新的次序对模型进行排序;确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;确定所有非显式的信号采样时间模块的采样时间;确定所有非显式的信号采样时间模块的采样时间;分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2 2模型执行阶段模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:按照秩序计算每个模块的积分;按照秩序计算每
19、个模块的积分;根根据据当当前前输输入入和和状状态态来来决决定定状状态态的的微微分分,得得到到微微分分矢矢量量,然然后后把把它它返返回回给给解解法法器器,以计算下一个采样点的状态矢量。在每一个时间步中,以计算下一个采样点的状态矢量。在每一个时间步中,Simulink依次解决下列问题:依次解决下列问题:按照秩序更新模块的输出;按照秩序更新模块的输出;按照秩序更新模块的状态;按照秩序更新模块的状态;检查模块连续状态的不连续点;检查模块连续状态的不连续点;计算下一个仿真时间步的时间。计算下一个仿真时间步的时间。Simulink的模块库的模块库Simulink的模块库能够对系统模块进行有效的管理与组织的
20、模块库能够对系统模块进行有效的管理与组织可以直接将模块库中的模块拖动或者拷贝到用户的系统模可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。型中以构建动态系统模型。模块搜索模块搜索 模块描述模块描述 系统模块系统模块 系统模块库系统模块库 Simulink公共模块库公共模块库Simulink中最为基础、最为通用的模块库,它可以被应用到不同的专业领域中。Simulink模块库按功能分为以下16类子模块库:(1)Commonly Used Blocks:仿真常用模块库(2)Continuous:连续系统模块库(3)Discontinuities:非线性系统模块库(4)Dis
21、crete:离散系统模块库(5)Logic and Bit Operations:逻辑运算和位运算模块库(6)Lookup Tables:查找表模块库(7)Math Operations:数学运算模块库(8)Model Verification:模型验证模块库(9)Model-Wide Utilities:进行模型扩充的实用模块库(10)Ports&Subsystems:端口和子系统模块库(11)Signals Attributes:信号属性模块库(12)Signals Routing:提供用于输入、输出和控制的相关信号及相关处理的模块库(13)Sinks:仿真接收模块库(14)Sources
22、:仿真输入源模块库(15)User-defined Functions:用户自定义函数模块库(16)Additional Math&Discrete:附加的数学和离散模块库Simulink的部分专业模块库的部分专业模块库DSP Blockset数字信号处理工具包数字信号处理工具包Fixed-Point Blockset定点运算控制系统仿真工具包定点运算控制系统仿真工具包Power System Blockset电力电动系统工具包电力电动系统工具包Dials&Gauges Blockset交互图形和控制面板设计工具包交互图形和控制面板设计工具包Communications Blockset通讯系
23、统工具包通讯系统工具包CDMA Reference Blockset CDMACDMA通讯系统设计和分析工具包通讯系统设计和分析工具包Nonlinear Control Design Blockset非线性控制设计工具箱非线性控制设计工具箱Motorola DSP Developers KitMotorola DSP开发工具箱开发工具箱TI DSP Developers KitTI DSP开发工具箱开发工具箱信源模块(信源模块(SourceSource)有限带宽白噪声有限带宽白噪声输出频率随时间线性变换的正弦信输出频率随时间线性变换的正弦信号号输出当前仿真时间输出当前仿真时间常数输入常数输入以
24、固定速率输出当前仿真时间以固定速率输出当前仿真时间从从matlab工作空间中输入数据工作空间中输入数据从从.mat文件中输入数据文件中输入数据接地信号接地信号为子系统或其它模型提供输入端口为子系统或其它模型提供输入端口输入脉冲信号输入脉冲信号输入斜坡信号输入斜坡信号输入服从高斯分布的随机信号输入服从高斯分布的随机信号输入周期信号输入周期信号信号发生器信号发生器信号产生信号产生正弦信号初始器正弦信号初始器输入阶跃信号输入阶跃信号输入服从高斯分布的随机信号输入服从高斯分布的随机信号信宿模块(信宿模块(SinksSinks)以数值形式显示输入信号以数值形式显示输入信号悬浮信号显示器悬浮信号显示器为子
25、系统或模型提供输出端口为子系统或模型提供输出端口信号显示器信号显示器当输入非零时停止仿真当输入非零时停止仿真中断输出信号中断输出信号将仿真数据写入将仿真数据写入.mat文件文件将仿真数据输出到将仿真数据输出到matlab工作工作空间空间使用使用matlab图形显示器图形显示器连续信号数值积分连续信号数值积分输入信号连续时间积分输入信号连续时间积分线性连续系统的状态空间描述线性连续系统的状态空间描述线性连续系统传递函数描述线性连续系统传递函数描述对输入信号进行固定时间延迟对输入信号进行固定时间延迟对输入信号进行可变时间延迟对输入信号进行可变时间延迟线性连续系统的零极点模型线性连续系统的零极点模型
26、连续模块库(连续模块库(ContinuousContinuous)离散模块库(离散模块库(DiscreteDiscrete)线性离散系统的传递函数描述线性离散系统的传递函数描述线性离散系统的零极点模型描述线性离散系统的零极点模型描述线性离散系统的滤波器描述线性离散系统的滤波器描述线性离散系统的状态空间描述线性离散系统的状态空间描述离散时间积分器离散时间积分器离散信号的一阶保持器离散信号的一阶保持器单步积分延迟,输出为前一输入单步积分延迟,输出为前一输入单位延迟单位延迟离散信号的零阶保持器离散信号的零阶保持器非连续系统模块库(非连续系统模块库(DiscontinuitiesDiscontinui
27、ties)死区间歇死区间歇库仑粘贴信号库仑粘贴信号死区信号死区信号双输出选择器(手动)双输出选择器(手动)多端口输出选择器多端口输出选择器量化器量化器信号上升、下降速率控制器信号上升、下降速率控制器信号延迟器信号延迟器饱和信号饱和信号三路选择器(根据输入三路选择器(根据输入2控制输出)控制输出)数学运算模块库数学运算模块库(Math operationsMath operations)求信号绝对值求信号绝对值输出强制系统输入为零的代数输出强制系统输入为零的代数状态状态按位逻辑运算按位逻辑运算逻辑真值查找逻辑真值查找输出输入复数的幅值与相位输出输入复数的幅值与相位输出系统输入的的实部或需部输出系
28、统输入的的实部或需部点乘运算点乘运算信号增益信号增益信号逻辑运算信号逻辑运算幅值与相位转化为复数形式幅值与相位转化为复数形式特定的一些数学函数特定的一些数学函数矩阵增益矩阵增益求输入的最小、大值求输入的最小、大值乘法或除法器乘法或除法器从输入实部与虚部构从输入实部与虚部构造复数造复数关系运算器关系运算器求整运算器求整运算器符号运算符号运算渐变增益渐变增益对输入求和或差对输入求和或差三角与双曲函数三角与双曲函数信号路由(信号路由(Signal RoutingSignal Routing)Goto模块标记控制器模块标记控制器将信号与特定的偏移值比将信号与特定的偏移值比较较初始化信号初始化信号矩阵串
29、联器矩阵串联器合并输入信号为一个输出合并输入信号为一个输出模块控制信息模块控制信息信号组合器信号组合器信号探测器信号探测器信号维数改变器信号维数改变器选择或重组信号选择或重组信号信号属性修改信号属性修改输入信号宽度输入信号宽度对信号进行分配对信号进行分配由输入产生总线信号由输入产生总线信号总线信号选择器总线信号选择器用户定义的数据存储区用户定义的数据存储区从数据存储区中读取数据从数据存储区中读取数据向数据存储区写数据向数据存储区写数据数据类型选择器数据类型选择器信号分解器信号分解器从从goto模块中获得信号模块中获得信号函数调用发生器函数调用发生器向向goto模块传递信号模块传递信号Signa
30、l Attributes(Signal Attributes(信号属性信号属性)名称功能说明Data Type Conversion数据类型转换Data Type Conversion Inherited继承的数据类型转换Data Type Duplicate数据类型复制Data Type Propagation数据类型继承Data Type Propagation Examples数据类型继承例子Data Type Scaling Strip数据类型缩放IC信号输入属性Probe探针点Rate Transition比率转换Signal Conversion信号转换Signal Specifi
31、cation信号特征说明Weighted Sample Time权值采样时间Width信号宽度端口及子系统库(端口及子系统库(Ports and SubsystemsPorts and Subsystems)可配置子系统原子子系统使能子系统使能触发For循环函数调用If条件条件执行子系统条件执行子系统子系统输入子系统输入子系统输出子系统输出通用子系统通用子系统Switch-case子系统子系统Switch-case动作子系动作子系统统上升沿触发上升沿触发触发子系统触发子系统当型循环子系统当型循环子系统表数据选择器表数据选择器(从表中选择数据)(从表中选择数据)对输入信号进行内插运算对输入信号进
32、行内插运算输入信号的一维线性内插输入信号的一维线性内插输入信号的二维线性内插输入信号的二维线性内插输入信号的输入信号的n维线性内插维线性内插查找输入信号所在范围查找输入信号所在范围查表模块库(查表模块库(Look-Up TableLook-Up Table)求取输入信号的数学函数值求取输入信号的数学函数值M函数函数(对输入进行运算输出结果)(对输入进行运算输出结果)S-函数模块函数模块S-函数生成器函数生成器用户定义函数模块(用户定义函数模块(User-Defined FunctionsUser-Defined Functions)Logic and Bit Operations Logic
33、and Bit Operations(逻辑和位操作模块)(逻辑和位操作模块)名称功能说明Bit Clear位清零Bit Set位置位Bitwise Operator逐位操作Combinatorial Logic组合逻辑Compare To Constant和常量比较Compare To Zero和零比较Detect Change检测跳变Detect Decrease检测递减Detect Fall Negative检测负下降沿Detect Fall Nonpositive检测非负下降沿Detect Increase检测递增Detect Rise Nonnegative检测非负上升沿Detect
34、Rise Positive检测正上升沿Extract Bits提取位Interval Test检测开区间Interval Test Dynamic动态检测开区间Logical Operator逻辑操作符Relational Operator关系操作符Shift Arithmetic移位运算 Model Verification(Model Verification(模型检测模型检测))名称功能说明Assertion确定操作Check Discrete Gradient检查离散梯度Check Dynamic Gap检查动态偏差Check Dynamic Lower Bound检查动态下限Chec
35、k Dynamic Range检查动态范围Check Dynamic Upper Bound检查动态上限Check Input Resolution检查输入精度Check Static Gap检查静态偏差Check Static Lower Bound检查静态下限Check Static Range检查静态范围Check Static Upper Bound检查静态上限 Model-Wide Utilities(Model-Wide Utilities(模型扩充模型扩充)名称功能说明Block Support Table功能块支持的表DocBlock文档模块Model Info模型信息Time
36、d-Based Linearization时间线性分析Trigger-Based Linearization触发线性分析对对Simulink库浏览器的基本操作有:库浏览器的基本操作有:(1)使使用用鼠鼠标标左左键键单单击击系系统统模模块块库库,如如果果模模块块库库为为多多层层结结构构,则单击则单击“+”号载入库。号载入库。(2)使用鼠标右键单击系统模块库,使用鼠标右键单击系统模块库,可在单独的窗口可在单独的窗口打开库。打开库。(3)使使用用鼠鼠标标左左键键单单击击系系统统模模块块,在在模模块块描描述述栏栏中中显显示示此此模模块块的描述的描述。(4)使使用用鼠鼠标标右右键键单单击击系系统统模模块
37、块,可可以以得得到到:系系统统模模块块的的帮帮助助信信息息;将将系系统统模模块块插插入入到到系系统统模模型型中中;查查看看系系统统模模块块的的参参数数设置设置;以及以及回到系统模块的上一层库回到系统模块的上一层库。此外还可以进行以下操作此外还可以进行以下操作:(1)使使用用鼠鼠标标左左键键选选择择并并拖拖动动系系统统模模块块,并并将将其其拷拷贝贝到到系统模型中。系统模型中。(2)在模块搜索栏中搜索所需的系统模块。在模块搜索栏中搜索所需的系统模块。相关操作:相关操作:模块库模块库Sine Wave来自来自sources;Gain来自来自Math Operations;Scope来自来自Sinks
38、连接方法连接方法(1)拖动对应端口进行连接拖动对应端口进行连接(2)单击起始模块后,按单击起始模块后,按Ctrl键再单击目标模块键再单击目标模块模块复制模块复制传统方式传统方式Ctrl+C/Ctrl+V、或、或Ctrl键再拖动模块键再拖动模块模块插入模块插入 对于单输入单输出模块,只需将这个模块移到线上就对于单输入单输出模块,只需将这个模块移到线上就可以自动连接。可以自动连接。SIMULINK模型模型外表:直观的方框图文件:MDL文件数学:微分方程或差分方程行为:模拟物理过程的动态性状建立私有模块库建立私有模块库步骤:步骤:1 1)在)在simulinksimulink中执行中执行ileile
39、/new/library/new/library2 2)将用户定义的模块或是其它模块库将用户定义的模块或是其它模块库中的模块移动到新的模块库中。中的模块移动到新的模块库中。3 3)保存新的模块库)保存新的模块库模块的基本操作模块的基本操作1模块选取(1)选取单个模块;(2)选取多个模块;2模块复制(1)在同一窗口内复制(2)在不同的窗口之间复制3模块删除选中模块,按Delete键即可。删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,再按Delete键;4模块外形的调整(1)改变大小(2)转向(3)给模块加阴影5模块名的处理(1)是否显示模块名(2)修改模块名(3)改变模块名的位置
40、6模块颜色设定【Format】菜单中的【Foreground Color】可以改变模块的前景颜色,【Background Color】可以改变模块的背景颜色,而模型窗口的颜色可以通过【Screen Color】来改变。7模块属性设定选中模块,打开【Edit】【Block Properties】可以对模块进行属性设定,包括对Description、Priority、Tag、Open function、Attributes format string等属性的设定。连线操作连线操作1模块间连线在模块间连线,有以下几种情况:(1)连接两个模块(2)模块间连线的调整(3)在连线之间插入模块(4)连线的分
41、支2在连线上标示信息在连线上标示的信息包括表示向量、显示数据类型和标记等。(1)标示向量(2)显示数据类型(3)信号标记信号组合信号组合 在利用在利用Simulink进行系统仿真时,在很多进行系统仿真时,在很多情况下,需要将系统中某些模块的输出信号(一情况下,需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信般为标量)组合成一个向量信号,并将得到的信号作为另外一个模块的输入。号作为另外一个模块的输入。来自来自Signal Routing的的Bus Creator简单建模:简单建模:支持向量显示支持向量显示Mux支持标量扩展支持标量扩展插入模块插入模块49例1 动态画圆
42、:(1);(用正弦波发生器Sine Wave)双击图标出现相应的模块参数框,可在其中设置参数.Sine Wave中Phase(相位)为pi/2,实际为cos t;Sine Wave1中Phase为0.50(2);(用正弦波发生器Sine Wave和积分器Integrator)Sine Wave中Phase(相位)为pi/2,实际为cos t;Integrator中Initial condition(初始值)为0.XY Graph中,x的范围为1.51.5,y的范围为1.21.2.51(3)(用状态空间State-Space)State-Space中,A=0,1;1,0,B=0;0,C=1,0;
43、0,1,D=0;0.Initial conditions为1;0.双击XY Graph图标,可定x的范围为1.51.5,y的范围为1.21.2.Scope的y刻度可右击示波器刻度区出现对话框,进入Axes Propeties窗口确定.52显示结果如下:积分模块应用:复位积分积分模块应用:复位积分负变正时负变正时强迫清零强迫清零微分方程微分方程构造微分方程求解模型构造微分方程求解模型Simulink仿真举例(续)仿真举例(续)3.仿真运行及参数调整仿真运行及参数调整系统模块参数设置与系统仿真参数设置系统模块参数设置与系统仿真参数设置双击系统模块,打开系统模块的参数设置对话框。双击系统模块,打开系
44、统模块的参数设置对话框。在参数设置对话框中设置合适的模块参数。在参数设置对话框中设置合适的模块参数。设置合适的系统仿真参数以进行动态系统的仿真设置合适的系统仿真参数以进行动态系统的仿真在在Simulation菜单的菜单的Simulation parameters.子菜单子菜单中进行设置,如仿真时间等中进行设置,如仿真时间等运行仿真运行仿真单击系统模型编辑器上的单击系统模型编辑器上的Play图标图标(黑色三角黑色三角)或选择或选择Simulation菜单下的菜单下的Start便可以对系统进行仿真分析。便可以对系统进行仿真分析。仿真结束后双击仿真结束后双击Scope模块以显示系统仿真的输出结模块以
45、显示系统仿真的输出结果果图2.11 Simulink设置窗口置窗口仿仿真真解解法法变变步步长长解解法法定定步步长长解解法法discrere:针对无连续状态系统的特殊解法针对无连续状态系统的特殊解法ode45:基于基于Dormand-Prince 4-5阶的阶的Runge-Kutta公式公式ode23:基于基于Bogachi-Shampine 2-3阶的阶的Runge-Kutta公式公式ode113:变阶次变阶次Adams-Bashforth-Moulton解法解法ode15s:刚性系统的变阶次多步解法刚性系统的变阶次多步解法ode23s:刚性系统的固定阶次单步解法刚性系统的固定阶次单步解法di
46、screre:针对无连续状态系统的特殊解法针对无连续状态系统的特殊解法ode5:ode45确定步长的函数解法确定步长的函数解法ode4:使用固定步长的经典使用固定步长的经典4阶的阶的Runge-Kutta公式的函数解法公式的函数解法ode3:ode25的确定步长的函数解法的确定步长的函数解法ode2:使用固定步长的经典使用固定步长的经典2阶的阶的Runge-Kutta公式的函数解公式的函数解法法ode1:固定步长的固定步长的Euler解法解法仿真器参数设置仿真器参数设置仿真器参数设置可用于选择仿真开始时间、仿真结束时间、解法器及输出项等。对于一般的仿真,使用默认设置即可。1仿真时间(Simul
47、ation time)设置需要设置的有仿真开始时间(Start time)和仿真结束时间(Stop time)。2仿真步长模式设置可供选择的有“Variable-step”(变步长)和“Fixed-step”(固定步长)方式。3解法器设置用户在“Solver”后面的下拉选项中可以选择变步长模式解法器或固定步长模式解法器。变步长模式解法器有:discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb。4变步长的参数设置对于变步长模式,用户常用的设置有:最大和最小步长参数、相对误差和绝对误差、初始步长以及过零控制。默认情况下,步长自动确定,用a
48、uto值表示。5固定步长的参数设置对于固定步长模式,用户常用的设置有:(1)Multitasking模式;(2)Singletasking模式;(3)Auto模式工作空间数据导入工作空间数据导入/导出设置导出设置工作空间数据导入/导出(Data Import/Export)设置主要在Simulink与MATLAB工作空间交换数值时进行有关选项设置,可以设置以下三个选择项。(1)Load from workspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。(2)Save to workspace:用来设置保存在MATLAB工作空间的
49、变量类型和变量名。(3)Save options:用来设置存往工作空间的有关选项。Scope高级使用技术高级使用技术打印输出打印输出 参数设置参数设置 视图整体缩放视图整体缩放 Y轴缩放轴缩放 视图自动缩放视图自动缩放 X轴缩放轴缩放 保存当前坐标轴设置保存当前坐标轴设置 恢复坐标轴设置恢复坐标轴设置 悬浮悬浮Scope开关开关 悬浮时信号选择悬浮时信号选择 去除坐标轴选择去除坐标轴选择 Scope模块的模块的General选项卡选项卡坐标系标签坐标系标签 坐标系数目坐标系数目 显示时间范围显示时间范围 悬浮悬浮Scope 开关开关 Scope模块的模块的Data history选项卡选项卡信
50、号显示点数限制信号显示点数限制 保存信号至工作空保存信号至工作空间变量间变量 使用命令操作对系统进行仿真使用命令操作对系统进行仿真支持命令窗口运行仿真的函数有支持命令窗口运行仿真的函数有4个,即个,即sim、simset、simget和和set_param。(1)sim函数函数sim函数的作用是运行一个由函数的作用是运行一个由Simulink建立的模型,建立的模型,其调用格式为:其调用格式为:t,x,y =sim(modname,timespan,options,ut);其中其中,t为返回的仿真时间向量;为返回的仿真时间向量;x为返回的状态矩阵;为返回的状态矩阵;y为返回的输出矩阵;为返回的输