版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南大学电气与信息工程学院湖南大学电气与信息工程学院 第第7讲讲 7.1 Simulink简介简介7.2 模块库及简单建模模块库及简单建模 7.3 仿真运行及参数调整仿真运行及参数调整7.4 子系统子系统7.5 S函数函数1. Simulink简介 Simulink 中的中的“Simu”一词表示可用于计算机仿真,而一词表示可用于计算机仿真,而“Link”一词表示它能进行系统连接,即把一系列模块连一词表示它能进行系统连接,即把一系列模块连接起来,构成复杂的系统模型。接起来,构成复杂的系统模型。 Simulink是一个用来对动态系统进行建模、仿真和分析是一个用来对动态系统进行建模、仿真和分析的软件
2、包。它让用户把精力从编程转向模型的构造的软件包。它让用户把精力从编程转向模型的构造.使用使用Simulink来建模、分析和仿真各种动态系统来建模、分析和仿真各种动态系统(包括包括连续系连续系统统、离散系统离散系统和和混合系统混合系统),将是一件非常轻松的事情。,将是一件非常轻松的事情。 利用利用Simulink进行系统的建模仿真,其最大的优点是易学、进行系统的建模仿真,其最大的优点是易学、易用,并能依托易用,并能依托MATLAB提供的丰富的仿真资源。提供的丰富的仿真资源。 近几年来,在学术界和工业领域,Simulink已经成为动态系统建模和仿真领域中应用最为广泛的软件之一。Simulink可以
3、很方便地创建和维护一个完整地模块,评估不同地算法和结构,并验证系统的性能。由于Simulink是采用模块组合方式来建模,从而可以使得用户能够快速、准确地创建动态系统的计算机仿真模型,特别是对复杂的不确定非线性系统,更为方便。 Simulink模型可以用来模拟线性和非线性、连续和离散或者两者的混合系统,也就是说它可以用来模拟几乎所有可能遇到动态系统。另外Simulink还提供一套图形动画的处理方法,使用户可以方便的观察到仿真的整个过程。 Simulink没有单独的语言,但是它提供了S函数规则。所谓的S函数可以是一个M函数文件、FORTRAN程序、C或C+语言程序等,通过特殊的语法规则使之能够被S
4、imulink模型或模块调用。S函数使Simulink更加充实、完备,具有更强的处理能力。 提供了仿真库的扩充和定制机制提供了仿真库的扩充和定制机制 Simulink的开放式结构允许用户扩展仿真环境的开放式结构允许用户扩展仿真环境的功能:采用的功能:采用MATLAB、FORTRAN和和C代码代码生成自定义模块库,并拥有自己的图标和界面。生成自定义模块库,并拥有自己的图标和界面。 与与MATLAB工具箱的集成工具箱的集成 由于由于Simulink可以直接利用可以直接利用MATLAB的诸多资的诸多资源与功能,因而用户可以直接在源与功能,因而用户可以直接在 Simulink下完下完成诸如数据分析、过
5、程自动化、优化参数等工成诸如数据分析、过程自动化、优化参数等工作。作。Simulink应用领域应用领域simulink在在matlab家族中的位置家族中的位置Toolboxes MATLAB compilerBlockset simulink RTWStateflowcoder Simulink的启动主要有以下两种方法:的启动主要有以下两种方法: 在在MATLAB的命令窗口中输入的命令窗口中输入simulink,结果结果是在桌面上出现一个是在桌面上出现一个Simulink Library Browser的窗口。的窗口。 单击单击MATLAB主窗口的快捷按钮主窗口的快捷按钮 ,打开,打开Simu
6、link 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=dmod(code,fc,fd,fs,qask,m);modu_noi
7、se=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中打开一个空白的模型窗口的方法:中打开一个空白的模型窗口的方法: 选中选中Simulink菜单
8、系统中的菜单系统中的File | New | Model菜单项后,菜单项后,会生成一个会生成一个Simulink窗口;窗口; 单击单击Simulink工具栏中的工具栏中的“新建模型新建模型”图标;图标; 在在MATLAB的命令窗口中选择的命令窗口中选择File | New | New Model菜菜单项;单项; 2.模块库及简单建模模块库及简单建模 第七章 Simulink建模和仿真 7.1 Simulink的概述和基本操作图7.1.1 Simulink模型元素关联图 第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 Simulink模型并不一定要包含全部的三种元素,
9、在实际应用中通常可以缺少其中的一个或两个。例如,若要模拟一个系统偏离平衡位置后的恢复行为,就可以建立一个没有输入而只有系统模块加一个显示模块的模型。在某种情况下,也可以建立一个只有源模块和显示模块的系统。若需要一个由几个函数复合的特殊信号,则可以使用源模块生成信号并将其送入Matlab工作间或文件中。二、仿真运行原理二、仿真运行原理 Simulink仿真包括两个阶段;初始化阶段和模型执行阶段 (1) (1) 模块初始化模块初始化 在初始化阶段主要完成以下工作在初始化阶段主要完成以下工作: 模型参数传给Matlab进行估值,得到的数值结果将作为模型的实际参数; 展开模型的各个层次,每一个非条件执
10、行的子系统被它所包含的模块所代替; 第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 模型中的模块按更新的次序进行排序。排序算法产生一个列表以确保具有代数环的模块在产生它的驱动输入的模块被更新后才更新。当然,这一步要先检测出模型中存在的代数环。 决定模型中有无显示设定的信号属性,例如名称、数据类型、数值类型以及大小等,并且检查每个模块是否能够接受连接到它输入端的信号。Simulink使用属性传递的过程来确定未被设定的属性,这个过程将源信号的属性传递到它所驱动的模块的输入信号; 决定所有无显示设定采样时间的模块的采样时间; 分配和初始化用于存储每个模块的状态和输入当前值
11、的存储空间。 完成这些工作后就可以进行仿真了。2) 2) 模型执行模型执行 一般模型是使用数值积分来进行仿真的。所运用的仿真解法器(仿真算法)依赖于模型提供它的连续状态微分能力。计算微分可以分两步进行:第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 首先,按照排序所决定的次序计算每个模块的输出。 然后,根据当前时刻的输入和状态来决定状态的微分;得到微分向量后再把它返回给解法器;后者用来计算下一个采样点的状态向量。一旦新的状态向量计算完毕,被采样的数据源模块和接受模块才被更新。在仿真开始时模型设定待仿真系统的初始状态和输出。在每一个时间步中,Simulink计算系统的
12、输入、状态和输出,并更新模型来反映计算出的值。在仿真结束时,模型得出系统的输入、状态和输出。在每个时间步中,Simulink所采取的动作依次为: 按排列好的次序更新模型中模块的输出。Simulink通过调用模块的输出函数计算模块的输出。Simulink只把当前值、模块的输入以及状态量传给这些函数计算模块的输出。对于离散系统,Simulink只有在当前时间是模块采样时间的整数倍时,才会更新模块的输出。第七章Simulink建模和仿真 7.1 Simulink的概述和基本操作 按排列好的次序更新模型中模块的状态,Simulink计算一个模块的离散状态的方法时调用模块的离散状态更新函数。而对于连续状
13、态,则对连续状态的微分(在模块可调用的函数里,有一个用于计算连续微分的函数)进行数值积分来获得当前的连续状态。 检查模块连续状态的不连续点。Simulink使用过零检测来检测连续状态的不连续点。 计算下一个仿真时间步的时间。这是通过调用模块获得下一个采样时间函数来完成的。 (3) (3) 定模块更新次序定模块更新次序 在仿真中,Simulink更新状态和输出都要根据事先确定的模块更新次序,而更新次序对方针结果的有效性来说非常关键。特别当模块的输出是当前输入值的函数时,这个模块必须在驱动它的模块被更新之后才能被更新,否则,模块的输出将没有意义。 第七章Simulink建模和仿真 7.1 Simu
14、link的概述和基本操作 注意:注意:不要把模块保存到模块文件的次序与仿真过程模块被更新的次序相混淆。Simulink在模块初始化时以将模块排好正确的次序。 为了建立有效的更新次序,Simulink根据输入和输出的关系将模块分类。其中,当前输出依赖于当前输入的模块称为直接馈入模块,所有其他的模块都称为非虚拟模块。直接馈入模块的例子有Gain、Product和Sum模块;非直接馈入模块的例子有Integrator模块(它的输出只依赖于它的状态),Constant模块(没有输入)和Memory模块(它的输出只依赖于前一个模块的输入)。 基于上述分类,Simulink使用下面两个基本规则对模块进行排
15、序: 每个模块必须在它驱动的所有模块更新之前被更新。这条规则确保了模块被更新时输入有效。 若非直接馈入模块在直接馈入模块之前更新,则它们的更新次序可以是任意的。这条规则允许Simulink在排序过程中忽略非虚拟模块。 另外一个约束模块更新次序的因素是用户给模块设定优先级,Simulink在低优先级模块之前更新高优先级模块。 SIMULINK模型模型 外表:直观的方框图 文件:MDL文件 数学:微分方程或差分方程 行为:模拟物理过程的动态性状Simulink动态仿真动态仿真Simulink 基本操作基本操作n利用Simulink进行系统仿真的步骤是: 启动Simulink,打开Simulink模
16、块库 打开空白模型窗口; 建立Simulink仿真模型; 设置仿真参数,进行仿真; 输出仿真结果。SimulinkSimulink仿真过程仿真过程1 1初始化阶段初始化阶段 对模型的参数进行估计,得到它们实际计算的值。对模型的参数进行估计,得到它们实际计算的值。 展开模型的各个层次;展开模型的各个层次; 按照更新的次序对模型进行排序;按照更新的次序对模型进行排序; 确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号; 确定所有非显式的信号采样时间模块的采样时间;确定所有非显式的信号采样时间模块的采样
17、时间; 分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2 2模型执行阶段模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行: 按照秩序计算每个模块的积分;按照秩序计算每个模块的积分;根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,以计算下一个采样点的状态矢量。在每一个时间步中,以计算下一个采样点的状态矢量。在每一个时间步中,
18、Simulink依次解决下列问题:依次解决下列问题: 按照秩序更新模块的输出;按照秩序更新模块的输出; 按照秩序更新模块的状态;按照秩序更新模块的状态; 检查模块连续状态的不连续点;检查模块连续状态的不连续点; 计算下一个仿真时间步的时间。计算下一个仿真时间步的时间。Simulink的模块库的模块库 Simulink的模块库能够对系统模块进行有效的管理与组织的模块库能够对系统模块进行有效的管理与组织可以直接将模块库中的模块拖动或者拷贝到用户的系统模可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。型中以构建动态系统模型。 模块搜索模块搜索 模块描述模块描述 系统模块系统
19、模块 系统模块库系统模块库 Simulink公共模块库公共模块库Simulink中最为基础、最为通用的模块库,它可以被应用到不同的专业领域中。 Simulink模块库按功能分为以下16类子模块库:(1)Commonly Used Blocks:仿真常用模块库(2)Continuous:连续系统模块库(3)Discontinuities:非线性系统模块库(4)Discrete:离散系统模块库(5)Logic and Bit Operations:逻辑运算和位运算模块库(6)Lookup Tables:查找表模块库(7)Math Operations:数学运算模块库(8)Model Verific
20、ation:模型验证模块库(9)Model-Wide Utilities:进行模型扩充的实用模块库(10)Ports & Subsystems:端口和子系统模块库(11)Signals Attributes:信号属性模块库(12)Signals Routing:提供用于输入、输出和控制的相关信号及相关处理的模块库(13)Sinks:仿真接收模块库(14)Sources:仿真输入源模块库(15)User-defined Functions:用户自定义函数模块库(16)Additional Math &Discrete:附加的数学和离散模块库Simulink的部分专业模块库的部分专
21、业模块库DSP Blockset数字信号处理工具包数字信号处理工具包Fixed-Point Blockset定点运算控制系统仿真工具包定点运算控制系统仿真工具包Power System Blockset电力电动系统工具包电力电动系统工具包Dials & Gauges Blockset交互图形和控制面板设计工具包交互图形和控制面板设计工具包Communications Blockset通讯系统工具包通讯系统工具包CDMA Reference Blockset CDMACDMA通讯系统设计和分析工具包通讯系统设计和分析工具包Nonlinear Control Design Blockset
22、非线性控制设计工具箱非线性控制设计工具箱Motorola DSP Developers KitMotorola DSP开发工具箱开发工具箱TI DSP Developers KitTI DSP开发工具箱开发工具箱信源模块(信源模块(SourceSource)有限带宽白噪声有限带宽白噪声输出频率随时间线性变换的正弦信输出频率随时间线性变换的正弦信号号输出当前仿真时间输出当前仿真时间常数输入常数输入以固定速率输出当前仿真时间以固定速率输出当前仿真时间从从matlab工作空间中输入数据工作空间中输入数据从从.mat文件中输入数据文件中输入数据接地信号接地信号为子系统或其它模型提供输入端口为子系统或其
23、它模型提供输入端口输入脉冲信号输入脉冲信号输入斜坡信号输入斜坡信号输入服从高斯分布的随机信号输入服从高斯分布的随机信号输入周期信号输入周期信号信号发生器信号发生器信号产生信号产生正弦信号初始器正弦信号初始器输入阶跃信号输入阶跃信号输入服从高斯分布的随机信号输入服从高斯分布的随机信号信宿模块(信宿模块(SinksSinks)以数值形式显示输入信号以数值形式显示输入信号悬浮信号显示器悬浮信号显示器为子系统或模型提供输出端口为子系统或模型提供输出端口信号显示器信号显示器当输入非零时停止仿真当输入非零时停止仿真中断输出信号中断输出信号将仿真数据写入将仿真数据写入.mat文件文件将仿真数据输出到将仿真数
24、据输出到matlab工作工作空间空间使用使用matlab图形显示器图形显示器连续信号数值积分连续信号数值积分输入信号连续时间积分输入信号连续时间积分线性连续系统的状态空间描述线性连续系统的状态空间描述线性连续系统传递函数描述线性连续系统传递函数描述对输入信号进行固定时间延迟对输入信号进行固定时间延迟对输入信号进行可变时间延迟对输入信号进行可变时间延迟线性连续系统的零极点模型线性连续系统的零极点模型连续模块库(连续模块库(ContinuousContinuous)离散模块库(离散模块库(DiscreteDiscrete) 线性离散系统的传递函数描述线性离散系统的传递函数描述线性离散系统的零极点模
25、型描述线性离散系统的零极点模型描述线性离散系统的滤波器描述线性离散系统的滤波器描述线性离散系统的状态空间描述线性离散系统的状态空间描述离散时间积分器离散时间积分器离散信号的一阶保持器离散信号的一阶保持器单步积分延迟,输出为前一输入单步积分延迟,输出为前一输入单位延迟单位延迟离散信号的零阶保持器离散信号的零阶保持器非连续系统模块库(非连续系统模块库(DiscontinuitiesDiscontinuities)死区间歇死区间歇库仑粘贴信号库仑粘贴信号死区信号死区信号双输出选择器(手动)双输出选择器(手动)多端口输出选择器多端口输出选择器量化器量化器信号上升、下降速率控制器信号上升、下降速率控制器
26、信号延迟器信号延迟器饱和信号饱和信号三路选择器(根据输入三路选择器(根据输入2控制输出)控制输出)数学运算模块库数学运算模块库(Math operationsMath operations)求信号绝对值求信号绝对值输出强制系统输入为零的代数输出强制系统输入为零的代数状态状态按位逻辑运算按位逻辑运算逻辑真值查找逻辑真值查找输出输入复数的幅值与相位输出输入复数的幅值与相位输出系统输入的的实部或需部输出系统输入的的实部或需部点乘运算点乘运算信号增益信号增益信号逻辑运算信号逻辑运算幅值与相位转化为复数形式幅值与相位转化为复数形式特定的一些数学函数特定的一些数学函数矩阵增益矩阵增益求输入的最小、大值求输
27、入的最小、大值乘法或除法器乘法或除法器从输入实部与虚部构从输入实部与虚部构造复数造复数关系运算器关系运算器求整运算器求整运算器符号运算符号运算渐变增益渐变增益对输入求和或差对输入求和或差三角与双曲函数三角与双曲函数信号路由(信号路由(Signal RoutingSignal Routing)Goto模块标记控制器模块标记控制器将信号与特定的偏移值比将信号与特定的偏移值比较较初始化信号初始化信号矩阵串联器矩阵串联器合并输入信号为一个输出合并输入信号为一个输出模块控制信息模块控制信息信号组合器信号组合器信号探测器信号探测器信号维数改变器信号维数改变器选择或重组信号选择或重组信号信号属性修改信号属性
28、修改输入信号宽度输入信号宽度对信号进行分配对信号进行分配由输入产生总线信号由输入产生总线信号总线信号选择器总线信号选择器用户定义的数据存储区用户定义的数据存储区从数据存储区中读取数据从数据存储区中读取数据向数据存储区写数据向数据存储区写数据数据类型选择器数据类型选择器信号分解器信号分解器从从goto模块中获得信号模块中获得信号函数调用发生器函数调用发生器向向goto模块传递信号模块传递信号Signal Attributes (Signal Attributes (信号属性信号属性) )名称功能说明Data Type Conversion数据类型转换Data Type Conversion In
29、herited继承的数据类型转换Data Type Duplicate数据类型复制Data Type Propagation数据类型继承Data Type Propagation Examples数据类型继承例子端口及子系统库(端口及子系统库(Ports and SubsystemsPorts and Subsystems)可配置子系统原子子系统使能子系统使能触发For循环函数调用If条件条件执行子系统条件执行子系统子系统输入子系统输入子系统输出子系统输出通用子系统通用子系统Switch-case子系统子系统Switch-case动作子系动作子系统统上升沿触发上升沿触发触发子系统触发子系统当型
30、循环子系统当型循环子系统表数据选择器表数据选择器(从表中选择数据)(从表中选择数据)对输入信号进行内插运算对输入信号进行内插运算输入信号的一维线性内插输入信号的一维线性内插输入信号的二维线性内插输入信号的二维线性内插输入信号的输入信号的n维线性内插维线性内插查找输入信号所在范围查找输入信号所在范围查表模块库(查表模块库(Look-Up TableLook-Up Table)求取输入信号的数学函数值求取输入信号的数学函数值M函数函数(对输入进行运算输出结果)(对输入进行运算输出结果)S-函数模块函数模块S-函数生成器函数生成器用户定义函数模块(用户定义函数模块(User-Defined Func
31、tionsUser-Defined Functions) Logic and Bit Operations Logic 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检测非
32、负下降沿Detect Increase检测递增Detect Rise Nonnegative检测非负上升沿Detect Rise Positive检测正上升沿Extract Bits提取位Interval Test检测开区间Interval Test Dynamic动态检测开区间Logical Operator逻辑操作符Relational Operator关系操作符Shift Arithmetic移位运算 Model Verification ( Model Verification (模型检测模型检测) ))名称功能说明Assertion确定操作Check Discrete Gradien
33、t检查离散梯度Check Dynamic Gap检查动态偏差Check Dynamic Lower Bound检查动态下限Check 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 (模型扩
34、充模型扩充) )名称功能说明Block Support Table功能块支持的表DocBlock文档模块Model Info模型信息Timed-Based Linearization时间线性分析Trigger-Based Linearization触发线性分析对对Simulink库浏览器的基本操作有:库浏览器的基本操作有:(1) 使用鼠标左键单击系统模块库,如果模块库为多层结构,使用鼠标左键单击系统模块库,如果模块库为多层结构,则单击则单击“+”号载入库。号载入库。(2) 使用鼠标右键单击系统模块库,使用鼠标右键单击系统模块库,可在单独的窗口可在单独的窗口打开库。打开库。(3) 使用鼠标左键单
35、击系统模块,在模块描述栏中使用鼠标左键单击系统模块,在模块描述栏中显示此模块显示此模块的描述的描述。(4) 使用鼠标右键单击系统模块,可以得到:使用鼠标右键单击系统模块,可以得到:系统模块的帮助系统模块的帮助信息信息; 将系统模块插入到系统模型中将系统模块插入到系统模型中; 查看系统模块的参数查看系统模块的参数设置设置; 以及以及回到系统模块的上一层库回到系统模块的上一层库。 此外还可以进行以下操作此外还可以进行以下操作: (1) 使用鼠标左键选择并拖动系统模块,并将其拷贝到使用鼠标左键选择并拖动系统模块,并将其拷贝到系统模型中。系统模型中。 (2) 在模块搜索栏中搜索所需的系统模块。在模块搜
36、索栏中搜索所需的系统模块。 相关操作:相关操作: 模块库模块库 Sine Wave来自来自sources; Gain来自来自Math Operations;Scope来自来自Sinks 连接方法连接方法(1)拖动对应端口进行连接拖动对应端口进行连接(2)单击起始模块后,按单击起始模块后,按Ctrl键再单击目标模块键再单击目标模块 模块复制模块复制 传统方式传统方式Ctrl+C/Ctrl+V、或、或Ctrl键再拖动模块键再拖动模块 模块插入模块插入 对于单输入单输出模块,只需将这个模块移到线上就对于单输入单输出模块,只需将这个模块移到线上就可以自动连接。可以自动连接。SIMULINK模型模型 外
37、表:直观的方框图 文件:MDL文件 数学:微分方程或差分方程 行为:模拟物理过程的动态性状建立私有模块库建立私有模块库步骤:步骤:1 1)在)在simulinksimulink中执行中执行ile/new/libraryile/new/library2 2)将用户定义的模块或是其它模块库将用户定义的模块或是其它模块库中的模块移动到新的模块库中。中的模块移动到新的模块库中。3 3)保存新的模块库)保存新的模块库模块的基本操作模块的基本操作1模块选取(1)选取单个模块;(2)选取多个模块;2模块复制(1)在同一窗口内复制(2)在不同的窗口之间复制3模块删除选中模块,按Delete键即可。删除多个模块
38、,可以同时按住Shift键,再用鼠标选中多个模块,再按Delete键;4模块外形的调整(1)改变大小(2)转向(3)给模块加阴影5模块名的处理(1)是否显示模块名(2)修改模块名(3)改变模块名的位置6模块颜色设定【Format】菜单中的【Foreground Color】可以改变模块的前景颜色,【Background Color】可以改变模块的背景颜色,而模型窗口的颜色可以通过【Screen Color】来改变。7模块属性设定选中模块,打开【Edit】【Block Properties】可以对模块进行属性设定,包括对Description、Priority、Tag、Open function
39、、Attributes format string等属性的设定。连线操作连线操作1模块间连线 在模块间连线,有以下几种情况: (1)连接两个模块 (2)模块间连线的调整 (3)在连线之间插入模块 (4)连线的分支2在连线上标示信息 在连线上标示的信息包括表示向量、显示数据类型和标记等。 (1)标示向量 (2)显示数据类型 (3)信号标记信号组合信号组合 在利用在利用Simulink进行系统仿真时,在很多进行系统仿真时,在很多情况下,需要将系统中某些模块的输出信号(一情况下,需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信般为标量)组合成一个向量信号,并将得到的信号作
40、为另外一个模块的输入。号作为另外一个模块的输入。 来自来自Signal Routing的的Bus Creator简单建模:简单建模:支持向量显示支持向量显示Mux支持标量扩展支持标量扩展插入模块插入模块49例1 动态画圆:(1) ; (用正弦波发生器Sine Wave) 双击图标出现相应的模块参数框, 可在其中设置参数.Sine Wave中Phase(相位)为pi/2, 实际为cos t; Sine Wave1中Phase为0.tytxsin,cos50(2) ; (用正弦波发生器Sine Wave和积分器Integrator)Sine Wave中Phase(相位)为pi/2, 实际为cos
41、t; Integrator中Initial condition(初始值)为0.XY Graph中, x的范围为1.51.5, y的范围为1.21.2. tdttxytx0)(,cos51(3) (用状态空间State-Space)State-Space中, A=0,1;1,0, B=0;0, C=1,0;0,1, D=0;0. Initial conditions为1;0.双击XY Graph图标, 可定x的范围为1.51.5, y的范围为1.21.2. Scope的y刻度可右击示波器刻度区出现对话框, 进入Axes Propeties窗口确定. 0)0(,1)0(,yxyxyx52显示结果如
42、下:积分模块应用:复位积分积分模块应用:复位积分负变正时负变正时强迫清零强迫清零微分方程微分方程)(2 . 04 . 02 . 0tuxxx 构造微分方程求解模型构造微分方程求解模型Simulink仿真举例(续)仿真举例(续)3. 仿真运行及参数调整仿真运行及参数调整 系统模块参数设置与系统仿真参数设置系统模块参数设置与系统仿真参数设置 双击系统模块,打开系统模块的参数设置对话框。双击系统模块,打开系统模块的参数设置对话框。 在参数设置对话框中设置合适的模块参数。在参数设置对话框中设置合适的模块参数。 设置合适的系统仿真参数以进行动态系统的仿真设置合适的系统仿真参数以进行动态系统的仿真 在在S
43、imulation菜单的菜单的Simulation parameters.子菜单子菜单中进行设置,如仿真时间等中进行设置,如仿真时间等 运行仿真运行仿真 单击系统模型编辑器上的单击系统模型编辑器上的Play图标图标(黑色三角黑色三角)或选择或选择Simulation菜单下的菜单下的Start便可以对系统进行仿真分析。便可以对系统进行仿真分析。 仿真结束后双击仿真结束后双击Scope模块以显示系统仿真的输出结模块以显示系统仿真的输出结果果图图2.11 Simulink设置窗口设置窗口仿真解法仿真解法变步长解法变步长解法定步长解法定步长解法discrere:针对无连续状态系统的特殊解法针对无连续状
44、态系统的特殊解法ode45:基于基于Dormand-Prince 4-5阶的阶的Runge-Kutta公式公式ode23:基于基于Bogachi-Shampine 2-3阶的阶的Runge-Kutta公式公式ode113:变阶次变阶次Adams-Bashforth-Moulton解法解法ode15s :刚性系统的变阶次多步解法刚性系统的变阶次多步解法ode23s :刚性系统的固定阶次单步解法刚性系统的固定阶次单步解法discrere:针对无连续状态系统的特殊解法针对无连续状态系统的特殊解法ode5: ode45确定步长的函数解法确定步长的函数解法ode4:使用固定步长的经典使用固定步长的经典4
45、阶的阶的Runge-Kutta公式的函数解法公式的函数解法ode3: ode25的确定步长的函数解法的确定步长的函数解法ode2 :使用固定步长的经典使用固定步长的经典2阶的阶的Runge-Kutta公式的函数解公式的函数解法法ode1 :固定步长的固定步长的Euler解法解法仿真器参数设置仿真器参数设置仿真器参数设置可用于选择仿真开始时间、仿真结束时间、解法器及输出项等。对于一般的仿真,使用默认设置即可。1仿真时间(Simulation time)设置需要设置的有仿真开始时间(Start time)和仿真结束时间(Stop time)。2仿真步长模式设置可供选择的有“Variable-ste
46、p”(变步长)和“Fixed-step”(固定步长)方式。3解法器设置用户在“Solver”后面的下拉选项中可以选择变步长模式解法器或固定步长模式解法器。变步长模式解法器有:discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb。4变步长的参数设置对于变步长模式,用户常用的设置有:最大和最小步长参数、相对误差和绝对误差、初始步长以及过零控制。默认情况下,步长自动确定,用auto值表示。5固定步长的参数设置对于固定步长模式,用户常用的设置有:(1)Multitasking模式;(2)Singletasking模式;(3)Auto模式工作空
47、间数据导入工作空间数据导入/导出设置导出设置工作空间数据导入/导出(Data Import/Export)设置主要在Simulink与MATLAB工作空间交换数值时进行有关选项设置,可以设置以下三个选择项。 (1)Load from workspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。 (2)Save to workspace:用来设置保存在MATLAB工作空间的变量类型和变量名。 (3)Save options:用来设置存往工作空间的有关选项。Scope高级使用技术高级使用技术打印输出打印输出 参数设置参数设置 视图整体缩
48、放视图整体缩放 Y轴缩放轴缩放 视图自动缩放视图自动缩放 X轴缩放轴缩放 保存当前坐标轴设置保存当前坐标轴设置 恢复坐标轴设置恢复坐标轴设置 悬浮悬浮Scope开关开关 悬浮时信号选择悬浮时信号选择 去除坐标轴选择去除坐标轴选择 Scope模块的模块的General选项卡选项卡坐标系标签坐标系标签 坐标系数目坐标系数目 显示时间范围显示时间范围 悬浮悬浮Scope 开关开关 Scope模块的模块的Data history选项卡选项卡信号显示点数限制信号显示点数限制 保存信号至工作空保存信号至工作空间变量间变量 使用命令操作对系统进行仿真使用命令操作对系统进行仿真 支持命令窗口运行仿真的函数有支
49、持命令窗口运行仿真的函数有4个,即个,即sim、simset、simget和和set_param。(1)sim函数函数sim函数的作用是运行一个由函数的作用是运行一个由Simulink建立的模型,建立的模型,其调用格式为:其调用格式为:t, x, y =sim(modname,timespan,options,ut); 其中其中, t为返回的仿真时间向量;为返回的仿真时间向量; x为返回的状态矩阵;为返回的状态矩阵; y为返回的输出矩阵;为返回的输出矩阵; modname为系统为系统Simulink模型文件名;模型文件名; timespan为仿真时间;为仿真时间; options为仿真参数选择
50、项,由为仿真参数选择项,由simset设置;设置; ut为选择外部产生输入为选择外部产生输入,ut=T,u1,u2,un。说明说明上述参数中,若省略上述参数中,若省略timespan,options,ut则由框图模型的则由框图模型的对话框对话框Simulation Parameters设置仿真参数。设置仿真参数。(2)simset函数函数 simset 函数用来为函数用来为sim函数函数建立或编辑仿真参数或规定算建立或编辑仿真参数或规定算法,并把设置结果保存在一个结构变量中。它有如下法,并把设置结果保存在一个结构变量中。它有如下4种种用法:用法: (a) options=simset(prop
51、erty,value,):把:把property代代表的参数赋值为表的参数赋值为value,结果保存在结构,结果保存在结构options中。中。 (b) options=simset(old_opstruct,property,value,):把已有的结构把已有的结构old_opstruct(由由simset产生产生)中的参数中的参数property重新赋值为重新赋值为value,结果保存在新结构,结果保存在新结构options中。中。 (c) options=simset(old_opstruct,new_opstruct):用:用结构结构new_opstruct的值替代已经存在的结构的值替
52、代已经存在的结构old_opstruct的值。的值。 (d) simset:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。(3) simget函数函数 simget函数用来获得模型的参数设置值。如果参数值是函数用来获得模型的参数设置值。如果参数值是用一个变量名定义的,用一个变量名定义的,simget返回的也是该变量的值而返回的也是该变量的值而不是变量名。如果该变量在工作空间中不存在不是变量名。如果该变量在工作空间中不存在(即变量未即变量未被赋值被赋值),则,则Simulink给出一个出错信息。该函数有如下给出一个出错信息。该函数有如下3种用法:种用法: (a) struct
53、=simget(modname):返回指定模型:返回指定模型model的的参数设置的参数设置的options结构。结构。 (b) value=simget(modname,property):返回指定模型:返回指定模型model的参数的参数property的值。的值。 (c) value=simget(options,property):获取:获取options结构结构中的参数中的参数property的值。如果在该结构中未指定该参数,的值。如果在该结构中未指定该参数,则返回一个空阵。则返回一个空阵。 用户只需输入能够唯一识别它的那个参数名称的前几个字用户只需输入能够唯一识别它的那个参数名称的前
54、几个字符即可,对参数名称中字母的大小写不作区别。符即可,对参数名称中字母的大小写不作区别。(4) set_param函数函数 set_param函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用set_param函数设置函数设置Simulink仿真参数以及如何开始、暂仿真参数以及如何开始、暂停、终止仿真进程或者更新显示一个仿真模型。停、终止仿真进程或者更新显示一个仿真模型。 (a) 设置仿真参数设置仿真参数 调用格式为调用格式为: set_param(modname,property,value,) 其中其中modname为设置的模型名,为设置的模型名,property为要设置的
55、参为要设置的参数,数,value是设置值。这里设置的参数可以有很多种,而是设置值。这里设置的参数可以有很多种,而且和用且和用simset设置的内容不尽相同,相关参数的设置可以设置的内容不尽相同,相关参数的设置可以参考有关资料。参考有关资料。 (b) 控制仿真进程控制仿真进程 调用格式为调用格式为: set_param(modname,SimulationCommand,cmd) 其中其中mode为仿真模型名称,而为仿真模型名称,而cmd是控制仿真进程的各是控制仿真进程的各个命令,包括个命令,包括start、stop、pause、comtinue或或update。 在使用这两个函数的时候,需要注
56、意必须先把模型打开。在使用这两个函数的时候,需要注意必须先把模型打开。Simulink与与Matlab的接口的接口 由由MATLAB工作空间变量设置系统模块参工作空间变量设置系统模块参数数 模块参数可以是常量也可以工作空间变量模块参数可以是常量也可以工作空间变量 直接使用直接使用MATLAB工作空间中的变量设置模块工作空间中的变量设置模块参数。参数。 使用变量的表达式设置模块参数。使用变量的表达式设置模块参数。 例如,如果例如,如果a是定义在是定义在MATLAB中的变量,则表达中的变量,则表达式式a、a2+5、exp(a)等均可以作为系统模块的参等均可以作为系统模块的参数数 将信号输出到将信号
57、输出到MATLAB工作空间中工作空间中 使用示波器模块使用示波器模块Scope的输出信号,可以的输出信号,可以使用户对输出的信号进行简单的定性分析。使用户对输出的信号进行简单的定性分析。 使用使用Sinks模块库中的模块库中的To Workspace 模块,模块,可以轻易地将信号输出到可以轻易地将信号输出到MATLAB工作空间中。工作空间中。信号输出的名称在信号输出的名称在To Workspace模块的对话模块的对话框中设置,此对话框还可以设置输出数据的点框中设置,此对话框还可以设置输出数据的点数、输出的间隔,以及输出数据的类型等。其数、输出的间隔,以及输出数据的类型等。其中输出类型有三种形式
58、:数组、结构以及带有中输出类型有三种形式:数组、结构以及带有时间变量的结构。仿真结束或暂停时信号被输时间变量的结构。仿真结束或暂停时信号被输出到工作空间中。出到工作空间中。 使用工作空间变量作为系统输入信号使用工作空间变量作为系统输入信号 Simulink与与MATLAB的数据交互是相互的,除的数据交互是相互的,除了可以将信号输出到了可以将信号输出到MATLAB工作空间中之外,用工作空间中之外,用户还可以使用户还可以使用MATLAB工作空间中的变量作为系统工作空间中的变量作为系统模型的输入信号。使用模型的输入信号。使用Sources模块库中的模块库中的From Workspace模块可以将模块
59、可以将MATLAB工作空间中的变量工作空间中的变量作为系统模型的输入信号。此变量的格式如下所示:作为系统模型的输入信号。此变量的格式如下所示: t=0:0.1:10; x=sin(t); input=t,x; 系统输入信号系统输入信号input的作用相当于的作用相当于Sources模块中的模块中的Sine Wave模块模块 向量与矩阵向量与矩阵 Simulink所使用的信号可以是标量也能够传所使用的信号可以是标量也能够传递和使用向量信号。例如,向量增益可以作递和使用向量信号。例如,向量增益可以作用在一个标量信号上,产生一个向量输出。用在一个标量信号上,产生一个向量输出。 Simulink 最重
60、要的特性就是支持矩阵形式最重要的特性就是支持矩阵形式的信号,它可以区分行和列向量并传递矩阵。的信号,它可以区分行和列向量并传递矩阵。通过对模块做适当的配置,可以使模块能够通过对模块做适当的配置,可以使模块能够接受矩阵作为模块参数。接受矩阵作为模块参数。 MATLAB Function与与Function模块模块 除了使用上述的方式进行除了使用上述的方式进行Simulink与与MATLAB之间之间的数据交互,用户还可以使用的数据交互,用户还可以使用Functions and Tables 模块模块库中的库中的 Function模块(简称为模块(简称为Fcn模块)或模块)或Functions and Tables 模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年南京客运急救考试题及答案
- 2024年贵州客运从业资格证2024年考试题
- 2024年绍兴客运资格证考试题目
- 2024年辽阳道路客运输从业资格证理论考题
- 2024年黑龙江驾校考试客运从业资格证考试
- 2024年度物业服务合同管理与维修责任规定
- 2024年度城市园林绿化工程合同
- 232分子间的作用力分子的手性-2021-2022学年高二化学课后分层练(人教版2019选择性必修2)(原卷版)
- 电子销售工程师招聘笔试题及解答(某世界500强集团)2025年
- 教师资格考试高中化学学科知识与教学能力试卷及解答参考
- 新生适应性成长小组计划书
- 08SS523建筑小区塑料排水检查井
- 教学评一体化的教学案例 课件
- 父亲去世讣告范文(通用12篇)
- 人教版八年级上Unit 2How often do you exercise Section A(Grammar Focus-3c)
- 导读工作总结优秀范文5篇
- SB/T 10851-2012会议中心运营服务规范
- JJF 1916-2021扫描电子显微镜校准规范
- GB/T 6587-2012电子测量仪器通用规范
- GB/T 4162-2008锻轧钢棒超声检测方法
- GB/T 12244-2006减压阀一般要求
评论
0/150
提交评论