《理论课-第1讲-1.9-matlab工具箱-simulink分析.ppt》由会员分享,可在线阅读,更多相关《理论课-第1讲-1.9-matlab工具箱-simulink分析.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年3月3日11.9 MATLAB1.9 MATLAB的的SIMULINKSIMULINK仿真仿真 1.9.1.9.1 1 SimulinkSimulink入门入门1.9.1.9.2 2 模型的创建和模型文件模型的创建和模型文件1.9.1.9.3 3 仿真运行仿真运行1.9.1.9.4 4 系统建模系统建模1.9.1.9.5 5 子系统的创建子系统的创建及封装及封装及封装及封装1.9.1.9.6 6 常用工具箱简介常用工具箱简介2023年3月3日2SimulinkSimulink是一个用来对动态系统进行建模、仿是一个用来对动态系统进行建模、仿真和分析的软件包,是真和分析的软件包,是MAT
2、LABMATLAB的重要组成部分。的重要组成部分。SimulinkSimulink可以用来建模、分析和仿真各种动态系统可以用来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统包括连续系统、离散系统和混合系统),它提供了,它提供了一种图形化的交互环境,只需用鼠标拖动的方法一种图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编便能迅速地建立起系统框图模型,甚至不需要编写一行代码。写一行代码。SimulinkSimulink提供建立系统模型、选择仿真参数和提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设数值算法、启动仿真程序对该系
3、统进行仿真、设置不同的输出方式来观察仿真结果等功能。置不同的输出方式来观察仿真结果等功能。2023年3月3日31.1.交互式、图形化的建模环境交互式、图形化的建模环境SimulinkSimulink提供了丰富的模块库以帮助用户快速地建立提供了丰富的模块库以帮助用户快速地建立动态系统模型。建模时只需使用鼠标拖放不同模块库动态系统模型。建模时只需使用鼠标拖放不同模块库中的系统模型并将它们连接起来。它外表以方块图形中的系统模型并将它们连接起来。它外表以方块图形式呈现,且采用分层结构。式呈现,且采用分层结构。2.2.交互式的仿真环境交互式的仿真环境SimulinkSimulink框图提供了交互式很强的
4、仿真环境,既可以框图提供了交互式很强的仿真环境,既可以通过下拉菜单执行,也可以通过命令行进行仿真。通过下拉菜单执行,也可以通过命令行进行仿真。3.3.专用模块库专用模块库(Blocksets)(Blocksets)MathWorksMathWorks公司开发了一系列的专用功能块程序包,公司开发了一系列的专用功能块程序包,通过这些可迅速地对系统实现建模、仿真和分析。通过这些可迅速地对系统实现建模、仿真和分析。2023年3月3日4DSP Blockset数字信号处理工具包数字信号处理工具包Fixed-Point Blockset定点运算控制系统仿真工具包定点运算控制系统仿真工具包Power Sys
5、tem Blockset电力电动系统工具包电力电动系统工具包Dials&Gauges Blockset交互图形和控制面板设计工具交互图形和控制面板设计工具包包Communication Blockset通信系统工具包通信系统工具包CDMA Reference BlocksetCDMACDMA通信系统设计和分析工通信系统设计和分析工具包具包Nonlinear Control Design Blockset非线性控制设计工具包非线性控制设计工具包Motorola DSP Developers KitMotorola DSPMotorola DSP开发工具包开发工具包TI DSP Developer
6、s KitTI DSPTI DSP开发工具箱开发工具箱SimulinkSimulink部分软件工具包部分软件工具包2023年3月3日54.4.提供了仿真库的扩充和定制机制提供了仿真库的扩充和定制机制SimulinkSimulink的开发式结构允许用户扩展仿真环境的的开发式结构允许用户扩展仿真环境的功能:采用功能:采用MATLABMATLAB、FORTRANFORTRAN和和C C代码生成自代码生成自定义的模块库,并拥有自己的图标和界面。定义的模块库,并拥有自己的图标和界面。5.5.与与MATLABMATLAB工具箱的集成工具箱的集成SimulinkSimulink可以直接利用可以直接利用MAT
7、LABMATLAB的诸多资源与功的诸多资源与功能,用户可以直接在能,用户可以直接在SimulinkSimulink下完成诸如数据分析、下完成诸如数据分析、过程自动化、优化参数等工作。工具箱提供的高过程自动化、优化参数等工作。工具箱提供的高级设计和分析能力可以融入仿真过程。级设计和分析能力可以融入仿真过程。2023年3月3日6Simulink具有以下特点:具有以下特点:基于矩阵的数值计算;基于矩阵的数值计算;高级编程语言;高级编程语言;图形与可视化;图形与可视化;工具箱提供面向具体应用领域的功能;工具箱提供面向具体应用领域的功能;丰富的数据丰富的数据I/O工具;工具;提供与其它高级语言的接口;提
8、供与其它高级语言的接口;支持多平台支持多平台(PC/Macintosh/UNIX);开放与可扩展的体系结构。开放与可扩展的体系结构。2023年3月3日7Simulink具有强大的功能与友好的用户界面,具具有强大的功能与友好的用户界面,具有广泛的应用领域。如:有广泛的应用领域。如:Simulink的应用领域示意图的应用领域示意图2023年3月3日81.9.1.9.1 1 快速入门快速入门 SIMULINK SIMULINK可以处理的系统包括:线性、非线性系统;可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。离散、连续及混合系统;单任务、多任务离散事件系统。
9、从建模角度讲,这既适于自上而下(从建模角度讲,这既适于自上而下(Top-downTop-down)的的设计流程(概念、功能、系统、子系统、直至器件),设计流程(概念、功能、系统、子系统、直至器件),又适于自下而上(又适于自下而上(Bottum-upBottum-up)逆程设计。逆程设计。从分析研究角度讲,这种从分析研究角度讲,这种 SIMULINK SIMULINK 模型不仅能让模型不仅能让用户知道具体环节的动态细节,而且能让用户清晰地用户知道具体环节的动态细节,而且能让用户清晰地了解各器件、各子系统、各系统间的信息交换,掌握了解各器件、各子系统、各系统间的信息交换,掌握各部分之间的交互影响。
10、各部分之间的交互影响。2023年3月3日9 在在 SIMULINK SIMULINK 环境中,用户将观察到现实世界中非线性环境中,用户将观察到现实世界中非线性因素和各种随机因素对系统行为的影响。因素和各种随机因素对系统行为的影响。在在 SIMULINK SIMULINK 环境中,用户可以在仿真进程中改变感兴环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。趣的参数,实时地观察系统行为的变化。在在MATLABMATLAB中,可直接在中,可直接在 SIMULINK SIMULINK 环境中运作的工环境中运作的工具包很多,已覆盖通信、控制、信号处理、具包很多,已覆盖通信、控制、
11、信号处理、DSPDSP、电力电力系统等诸多领域,所涉内容专业性极强。系统等诸多领域,所涉内容专业性极强。本讲由浅入深地讲述本讲由浅入深地讲述 SIMULINK SIMULINK 对各种数学、工程问题对各种数学、工程问题的建模、仿真和分析的基本方法,采用的建模、仿真和分析的基本方法,采用“算例算例”作为主体,作为主体,配以适量的归纳性表述。配以适量的归纳性表述。例例1.9.1.11.9.1.1:信号发生器和示波器。:信号发生器和示波器。例例1.9.1.21.9.1.2:实现两个正弦信号的相乘。:实现两个正弦信号的相乘。2023年3月3日101.9.1.9.2 2 模型的创建和模型文件模型的创建和
12、模型文件1.9.1.9.2 21 1 SIMULINK SIMULINK 模型是什么?模型是什么?SIMULINK SIMULINK 模型有以下几层含义:模型有以下几层含义:在视觉上表现为直观的方框图;在视觉上表现为直观的方框图;在文件上则是扩展名为在文件上则是扩展名为 mdl mdl 的的ASCIIASCII代码;代码;在数学上表现为一组微分方程或差分方程;在数学上表现为一组微分方程或差分方程;在行为上则模拟了实际系统的动态特性在行为上则模拟了实际系统的动态特性 。SIMULINK SIMULINK 模型通常包含三种模型通常包含三种 “组件组件”:信源(信源(SourcesSources):
13、可以是常数、时钟、白噪声、正弦波、):可以是常数、时钟、白噪声、正弦波、阶梯波、扫频信号、脉冲生成器、随机数产生器等信号源;阶梯波、扫频信号、脉冲生成器、随机数产生器等信号源;系统(系统(SystemSystem):即指被研究系统的):即指被研究系统的 SIMULINK SIMULINK 方框图;方框图;信宿信宿(Sink Sink):可以是示波器、图形记录仪等。):可以是示波器、图形记录仪等。对于具体的对于具体的 SIMULINK SIMULINK 模型而,不一定完全地包含这三大组模型而,不一定完全地包含这三大组件。例如:研究初始条件对系统影响就不必包含信源组件。件。例如:研究初始条件对系统
14、影响就不必包含信源组件。2023年3月3日111.9.1.9.2 2 模型的创建和模型文件(续模型的创建和模型文件(续1 1)1.9.1.9.2 22 2 SIMULINK SIMULINK 模型的创建模型的创建创建模型文件创建模型文件模型块的操作模型块的操作 连线的操作连线的操作 仿真的配置仿真的配置 对模型的注释;对模型的注释;保存模型;保存模型;仿真和结果分析。仿真和结果分析。1.9.1.9.2 23 3 SIMULINK SIMULINK 模型文件模型文件2023年3月3日12(1)(1)新建模型:利用模型窗口中的图标新建模型:利用模型窗口中的图标选中选中MatlabMatlab指令窗
15、口的菜单指令窗口的菜单(2 2)打开模型:利用模型窗口中的图标)打开模型:利用模型窗口中的图标选用某模型窗口中的菜单选用某模型窗口中的菜单在指令窗口中由在指令窗口中由openopen指令实现指令实现openopen模型名模型名(3 3)存盘:)存盘:SimlinkSimlink是以是以ASCIIASCII码形式存储的码形式存储的.mdl.mdl文件文件(4 4)打印:先点击模型窗口中的图标,打开一个打印对)打印:先点击模型窗口中的图标,打开一个打印对话框,但它比话框,但它比WindowsWindows多一个选项框多一个选项框2023年3月3日13返回返回2023年3月3日14(1 1)选定模块
16、:单个模块)选定模块:单个模块矩形里的所有模块及其信号线矩形里的所有模块及其信号线2023年3月3日15(2 2)模块的复制)模块的复制(3 3)模块的移动)模块的移动(4 4)模块的删除)模块的删除(5 5)改变模块的大小)改变模块的大小(a)原尺寸(b)拖动边框(c)新尺寸2023年3月3日16(6 6)模块的旋转)模块的旋转(a)缺省状态(b)旋转1800(c)旋转900(7 7)模块名的操作)模块名的操作也可修改模块名的字体:用也可修改模块名的字体:用Format:FontFormat:Font返回返回2023年3月3日17连线的操作n产生连线产生连线水平或垂直连线水平或垂直连线斜连线
17、斜连线连线的删除连线的删除n信号线的分支和折曲信号线的分支和折曲分支的产生分支的产生信号线的折曲信号线的折曲折点的移动折点的移动返回返回2023年3月3日18(1 1)解参数的设置)解参数的设置(Solver)(Solver)2023年3月3日19(2 2)仿真数据的输入输出设置)仿真数据的输入输出设置(Workspace(Workspace I/O)I/O)2023年3月3日20(3 3)仿真中异常情况的诊断)仿真中异常情况的诊断(Diagnostics)(Diagnostics)返回返回2023年3月3日211.9.1.9.2 2 模型的创建和模型文件(续模型的创建和模型文件(续2 2)1
18、.9.1.9.2 23 3 SIMULINK SIMULINK 模型文件模型文件 SIMULINK SIMULINK 除了可以通过图形界面设计模块外除了可以通过图形界面设计模块外 ,也可以通,也可以通过直接编写过直接编写 mdl mdl 文件来设计仿真模型图。文件来设计仿真模型图。一个有输入和输出的图形界面设计模块。一个有输入和输出的图形界面设计模块。用用 mdl mdl 文件编写有输入和输出的增益器。文件编写有输入和输出的增益器。(在(在 WordWord下下 )GainGainInInOutOut1 11 11 12023年3月3日221.9.1.9.2 2 模型的创建和模型文件(续模型的
19、创建和模型文件(续2 2)1.9.1.9.2 24 4 常用的常用的SourceSource库信源库信源例:如何调用例:如何调用MATLABMATLAB工作空间中的信号矩阵工作空间中的信号矩阵作为模型输入。本例所需的输入为作为模型输入。本例所需的输入为 。2023年3月3日23(1)编写一个产生信号矩阵的M文件sourec 0825_1.mfunction TU=source0825_1(T0,N0,K)t=linspace(0,K*T0,K*N0+1);N=length(t);u1=t(1:(N0+1).2;u2=(t(N0+2):(2*N0+1)-2*T0).2;u3(1:(N-(2*N0
20、+2)+1)=0;u=u1,u2,u3;TU=t,u;2023年3月3日24(2)构造简单的接收用的信号模型)构造简单的接收用的信号模型2023年3月3日25(3 3)模块参数的设置)模块参数的设置双击模块双击模块source0825source08251 1,弹出,弹出“From From WorkspaceWorkspace”设置对话框,在设置对话框,在DataData栏中填写栏中填写TUTU(4)在)在MATLAB工作空间产生信号矩阵工作空间产生信号矩阵TUsource0825_1(1,100,4)(5)开始开始仿真仿真2023年3月3日261.9.1.9.3 3 仿真运行仿真运行1.9
21、.1.9.3 31 1 使用菜单进行仿真使用菜单进行仿真 设置仿真参数和选择求解器设置仿真参数和选择求解器通过选择菜单通过选择菜单 Simulation Simulation 下的下的 Parameters Parameters 菜单项,用来设置菜单项,用来设置仿真参数和选择求解器。其中有三个页面管理这些仿真参数。仿真参数和选择求解器。其中有三个页面管理这些仿真参数。在在 Solver Solver 页面,设置开始和停止时间,选择求解器和指定页面,设置开始和停止时间,选择求解器和指定求解器(求解器(solversolver)的参数,另外还可以选择一些输出选项。的参数,另外还可以选择一些输出选项
22、。在在 Workspace I/O Workspace I/O 页面,管理对页面,管理对 MATLAB MATLAB 工作空间的输工作空间的输入和输出。入和输出。在在 Diagnostics Diagnostics 页面,可以选择在仿真期间显示的警告信页面,可以选择在仿真期间显示的警告信息的层次。息的层次。在在 Solver options Solver options 中,中,SIMULINK SIMULINK 模型的仿真涉及到一组常模型的仿真涉及到一组常微分方程(微分方程(ODEsODEs)的数值积分。如果模型是连续系统,使用的数值积分。如果模型是连续系统,使用ode45ode45方法方法
23、;如果模型不是连续系统,使用如果模型不是连续系统,使用discretediscrete方法。方法。例例1.9.1.21.9.1.2:实现两个正弦信号的相乘。:实现两个正弦信号的相乘。2023年3月3日27 从命令窗口运行仿真的函数有从命令窗口运行仿真的函数有4 4个,即个,即simsim、simsetsimset、simgetsimget和和set_paramset_param。1.sim1.sim函数函数 simsim函数的作用是运行一个由函数的作用是运行一个由SimulinkSimulink建立的建立的模型,其调用格式为:模型,其调用格式为:t,x,y=sim(modname,timesp
24、an,options,data)t,x,y=sim(modname,timespan,options,data)1.9.1.9.3 3 仿真运行(续仿真运行(续1 1)1.9.1.9.3 32 2 通过命令行运行仿真通过命令行运行仿真 通过命令行运行仿真与通过菜单运行仿真相比通过命令行运行仿真与通过菜单运行仿真相比 ,有如下的,有如下的 一些优点:一些优点:可以不理睬模块中的初始条件(参数可以不理睬模块中的初始条件(参数 x0 x0););可以定义任何外部输入(用参数可以定义任何外部输入(用参数 ut ut););可以由一个可以由一个M M 文件来启动一个仿真,并且允许模块中的文件来启动一个仿
25、真,并且允许模块中的参数发生改变参数发生改变 。2023年3月3日282.simset2.simset函数函数函数函数 simset simset 函数用来为函数用来为函数用来为函数用来为simsim函数建立或编辑仿真参数或规函数建立或编辑仿真参数或规函数建立或编辑仿真参数或规函数建立或编辑仿真参数或规定算法,并把设置结果保存在一个结构变量中。它有定算法,并把设置结果保存在一个结构变量中。它有定算法,并把设置结果保存在一个结构变量中。它有定算法,并把设置结果保存在一个结构变量中。它有如下如下如下如下4 4种用法:种用法:种用法:种用法:(1)options=simset(property,va
26、lue,)(1)options=simset(property,value,):把:把:把:把propertyproperty代表代表代表代表的参数赋值为的参数赋值为的参数赋值为的参数赋值为valuevalue,结果保存在结构,结果保存在结构,结果保存在结构,结果保存在结构optionsoptions中。中。中。中。(2)options=simset(old_opstruct,property,value,)(2)options=simset(old_opstruct,property,value,):把:把:把:把已有的结构已有的结构已有的结构已有的结构old_opstruct(old_op
27、struct(由由由由simsetsimset产生产生产生产生)中的参数中的参数中的参数中的参数propertyproperty重新赋值为重新赋值为重新赋值为重新赋值为valuevalue,结果保存在新结构,结果保存在新结构,结果保存在新结构,结果保存在新结构optionsoptions中。中。中。中。(3)options=simset(old_opstruct,new_opstruct)(3)options=simset(old_opstruct,new_opstruct):用结:用结:用结:用结构构构构new_opstructnew_opstruct的值替代已经存在的结构的值替代已经存在的
28、结构的值替代已经存在的结构的值替代已经存在的结构old_opstructold_opstruct的值。的值。的值。的值。(4)simset(4)simset:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。2023年3月3日293.simget函数函数 simgetsimget函数用来获得模型的参数设置值。如果参数值函数用来获得模型的参数设置值。如果参数值函数用来获得模型的参数设置值。如果参数值函数用来获得模型的参数设置值。如果参数值是用一个变量名定义的,是用一个变量名定义的,是用一个变量名定义的,是用一个变
29、量名定义的,simgetsimget返回的也是该变量的值返回的也是该变量的值返回的也是该变量的值返回的也是该变量的值而不是变量名。如果该变量在工作空间中不存在而不是变量名。如果该变量在工作空间中不存在而不是变量名。如果该变量在工作空间中不存在而不是变量名。如果该变量在工作空间中不存在(即变即变即变即变量未被赋值量未被赋值量未被赋值量未被赋值),则,则,则,则SimulinkSimulink给出一个出错信息。该函数给出一个出错信息。该函数给出一个出错信息。该函数给出一个出错信息。该函数有如下有如下有如下有如下3 3种用法:种用法:种用法:种用法:(1)struct=simget(modname)
30、(1)struct=simget(modname):返回指定模型:返回指定模型:返回指定模型:返回指定模型modelmodel的参的参的参的参数设置的数设置的数设置的数设置的optionsoptions结构。结构。结构。结构。(2)value=simget(modname,property)(2)value=simget(modname,property):返回指定模型:返回指定模型:返回指定模型:返回指定模型modelmodel的参数的参数的参数的参数propertyproperty的值。的值。的值。的值。(3)value=simget(options,property)(3)value=s
31、imget(options,property):获取:获取:获取:获取optionsoptions结构中结构中结构中结构中的参数的参数的参数的参数propertyproperty的值。如果在该结构中未指定该参数,的值。如果在该结构中未指定该参数,的值。如果在该结构中未指定该参数,的值。如果在该结构中未指定该参数,则返回一个空阵。则返回一个空阵。则返回一个空阵。则返回一个空阵。用户只需输入能够唯一识别它的那个参数名称的前几用户只需输入能够唯一识别它的那个参数名称的前几用户只需输入能够唯一识别它的那个参数名称的前几用户只需输入能够唯一识别它的那个参数名称的前几个字符即可,对参数名称中字母的大小写不
32、作区别。个字符即可,对参数名称中字母的大小写不作区别。个字符即可,对参数名称中字母的大小写不作区别。个字符即可,对参数名称中字母的大小写不作区别。2023年3月3日304.set_param4.set_param函数函数函数函数set_paramset_param函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用set_paramset_param函数设置函数设置函数设置函数设置SimulinkSimulink仿真参数以及如何开始、仿真参数以及如何开始、仿真参数以及如何开始、仿真参数以及如何开始、暂停、终止仿真进程或
33、者更新显示一个仿真模型。暂停、终止仿真进程或者更新显示一个仿真模型。暂停、终止仿真进程或者更新显示一个仿真模型。暂停、终止仿真进程或者更新显示一个仿真模型。(1)(1)设置仿真参数设置仿真参数设置仿真参数设置仿真参数调用格式为:调用格式为:调用格式为:调用格式为:set_param(modname,property,value,)set_param(modname,property,value,)其中其中其中其中modnamemodname为设置的模型名,为设置的模型名,为设置的模型名,为设置的模型名,propertyproperty为要设置的为要设置的为要设置的为要设置的参数,参数,参数,参
34、数,valuevalue是设置值。这里设置的参数可以有很多种,是设置值。这里设置的参数可以有很多种,是设置值。这里设置的参数可以有很多种,是设置值。这里设置的参数可以有很多种,而且和用而且和用而且和用而且和用simsetsimset设置的内容不尽相同,相关参数的设设置的内容不尽相同,相关参数的设设置的内容不尽相同,相关参数的设设置的内容不尽相同,相关参数的设置可以参考有关资料。置可以参考有关资料。置可以参考有关资料。置可以参考有关资料。2023年3月3日31(2)(2)控制仿真进程控制仿真进程控制仿真进程控制仿真进程调用格式为:调用格式为:调用格式为:调用格式为:set_param(modna
35、me,SimulationCommand,cmd)set_param(modname,SimulationCommand,cmd)其中其中其中其中modemode为仿真模型名称,而为仿真模型名称,而为仿真模型名称,而为仿真模型名称,而cmdcmd是控制仿真进程是控制仿真进程是控制仿真进程是控制仿真进程的各个命令,包括的各个命令,包括的各个命令,包括的各个命令,包括startstart、stopstop、pausepause、comtinuecomtinue或或或或updateupdate。在使用这两个函数的时候,需要注意必须先把模型打在使用这两个函数的时候,需要注意必须先把模型打在使用这两个函
36、数的时候,需要注意必须先把模型打在使用这两个函数的时候,需要注意必须先把模型打开。开。开。开。2023年3月3日321.9.1.9.4 4 系统建模系统建模 1.9.1.9.4 41 1 连续系统建模连续系统建模 线性系统建模举例线性系统建模举例例例10_4_110_4_1:复位积分器的功用示例。复位积分器的功用示例。例例10_4_210_4_2:积分模块直接构造微分方程求解模型。积分模块直接构造微分方程求解模型。例例10_4_310_4_3:直接利用传递函数模块求解方程直接利用传递函数模块求解方程。在仿真启动时,积分器从零开始对在仿真启动时,积分器从零开始对 0.5 0.5 t t 进行积分
37、。当复位口进行积分。当复位口信号信号 t-5=0 t-5=0 瞬间,积分器被重置为零。此后,再对瞬间,积分器被重置为零。此后,再对0.5 0.5(t-5t-5 )进行积分。)进行积分。假设从实际自然界(力学、电学、生态等)或社会中,抽象假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为出有初始状态为0 0的二阶微分程的二阶微分程 ,是单位阶跃函数。本例演示如何用积分器直接构搭求解该微是单位阶跃函数。本例演示如何用积分器直接构搭求解该微分方程的模型。分方程的模型。对二阶微分程进行拉氏变换:对二阶微分程进行拉氏变换:可以得到:可以得到:2023年3月3日331.9.1.9.4 41
38、 1 连续系统建模(续)连续系统建模(续)非线性系统建模举例非线性系统建模举例例例10_4_410_4_4:喷射动力车的定位控制问题喷射动力车的定位控制问题设计一个控制器,其目标是:当车辆的位移和速度为正时,控设计一个控制器,其目标是:当车辆的位移和速度为正时,控制器点燃右发动机;当车辆的位移和速度为负时,控制器点燃制器点燃右发动机;当车辆的位移和速度为负时,控制器点燃左发动机,直到车辆静止在坐标原点。左发动机,直到车辆静止在坐标原点。2023年3月3日341.9.1.9.4 42 2 离散时间系统和混合系统建模离散时间系统和混合系统建模 用组合逻辑模块产生用组合逻辑模块产生 的的“逻辑和逻辑
39、和”结果结果 及及“逻辑逻辑或或”结果结果 。(1 1)建立输入输出关系。)建立输入输出关系。(2 2)建立模型)建立模型2023年3月3日351.9.1.9.4 42 2 离散时间系统和混合系统建模(续)离散时间系统和混合系统建模(续)多速率离散时间系统:计算机就是这样的系统。它的多速率离散时间系统:计算机就是这样的系统。它的CPUCPU、串行串行/并行控制器并行控制器、磁盘驱动器、输入磁盘驱动器、输入 键盘就采用不同的工作键盘就采用不同的工作速率。再如通信系统也是多速率系统。速率。再如通信系统也是多速率系统。离散离散-连续混合系统:在现代控制系统中连续混合系统:在现代控制系统中 ,通常被控
40、的对象,通常被控的对象是连续时间的(物理)子系统,而控制器是由逻辑控制器或是连续时间的(物理)子系统,而控制器是由逻辑控制器或计算机构成的离散子系统。对于这种离散计算机构成的离散子系统。对于这种离散-连续混合系统,模连续混合系统,模型参数设置页中的几乎所有型参数设置页中的几乎所有 Solver Solver 解算方法都能采用解算方法都能采用 。可以使该模型及其所有子系统按采样速率着色:连续时间部可以使该模型及其所有子系统按采样速率着色:连续时间部分用黑色;离散时间部分用红色;离散、连续混合的子系统分用黑色;离散时间部分用红色;离散、连续混合的子系统被着黄色。被着黄色。2023年3月3日361.
41、9.1.9.5 5 子系统的创建、封装及受控执行子系统的创建、封装及受控执行 利用利用 SIMULINK SIMULINK 的封装(的封装(MaskMask)功能功能 ,可以定做一个模块,可以定做一个模块或一个子系统的对话框和图标或一个子系统的对话框和图标 。引用子系统的理由是:研究分析系统时引用子系统的理由是:研究分析系统时 ,进行概念抽象,进行概念抽象(Abstraction of conceptsAbstraction of concepts)的需要;为提高工作效率和可靠的需要;为提高工作效率和可靠性,实施模块性,实施模块“重用(重用(ReuseReuse)”的需要。的需要。仿真建模中子
42、系统的作用,类仿真建模中子系统的作用,类 似于似于 MATLAB MATLAB 指令运行中的指令运行中的MM函数文件函数文件。前面介绍了如何利用库标准模块建立被研究系统的仿真模型。前面介绍了如何利用库标准模块建立被研究系统的仿真模型。下面着重介绍如何利用下面着重介绍如何利用“分层分层”思想建立比较复杂的仿真模型,思想建立比较复杂的仿真模型,介绍建立这种分层模型所需的各种子系统(介绍建立这种分层模型所需的各种子系统(SubsystemSubsystem )。)。封装的一个重要用途是帮助用户创建一个对话框来接受参封装的一个重要用途是帮助用户创建一个对话框来接受参数。这样就无需打开子系统中各个模块的
43、对话框,然后再逐数。这样就无需打开子系统中各个模块的对话框,然后再逐个输入参数。个输入参数。2023年3月3日371.9.1.9.5 51 1 用封装的办法创建模块用封装的办法创建模块1 1。封装模块功能。封装模块功能例例10_5_110_5_1:封装线性方程封装线性方程 y=mx+b y=mx+b 的模型。的模型。子系统子系统mx+b mx+b 包含了一个包含了一个GainGain模块,命名为模块,命名为SlopeSlope,其增其增益常数为益常数为mm;一个一个ConstantConstant模块,命名为模块,命名为InterceptIntercept,其常数其常数值参数指定为值参数指定为
44、b b。这些参数代表一条直线的斜率和截距。这些参数代表一条直线的斜率和截距。封装该子系统产生一个用户对话框和图标。对话框包含对封装该子系统产生一个用户对话框和图标。对话框包含对斜率和截距的提示。斜率和截距的提示。用户向封装对话框输入用户向封装对话框输入 SlopeSlope和和 Intercept Intercept 的值。封装将这的值。封装将这些封装参数映射给底层模块。些封装参数映射给底层模块。在在 SIMULINK SIMULINK 中产生线性方程中产生线性方程 y=mx+b y=mx+b 的模型,并生成的模型,并生成 mx+b mx+b 子系统。子系统。2023年3月3日381.9.1.
45、9.5 51 1 用封装的办法创建模块(续)用封装的办法创建模块(续)2 2.产生封装提示对话框产生封装提示对话框 要产生这个系统的封装,先选取子系统模块,然后从要产生这个系统的封装,先选取子系统模块,然后从 Edit Edit 菜单中选取菜单中选取 Mask Subsystem Mask Subsystem 命令命令。封装提示对话框开始时大都显示封装提示对话框开始时大都显示 Mask Editor Mask Editor 对话框的对话框的Initialization Initialization 选项卡。选项卡。把把 Slope Slope 和和 Intercept Intercept 定义
46、为定义为 Edit Edit 控件。控件。3 3.产生封装模块描述和帮助文本产生封装模块描述和帮助文本 在在 Documentation Documentation 选项卡中可以定义模块的封装类型、选项卡中可以定义模块的封装类型、模块描述和帮助文本。模块描述和帮助文本。4 4.产生模块的图标产生模块的图标 可以在可以在 Mask Editor Mask Editor 对话框的对话框的 Icon Icon 选项卡中定义图标。选项卡中定义图标。2023年3月3日391.9.1.9.6 6 常用工具箱简介常用工具箱简介具有具有1616种功能强大的应用工具箱。种功能强大的应用工具箱。我们我们常用工具箱
47、常用工具箱有有 SIMULINKSIMULINK、COMMCOMM、DSP DSP 等。等。2023年3月3日40MATLAB MATLAB 中的中的 16 16 种工具箱种工具箱返回返回1 1 Simulink Simulink 库库 Communications BlocksetCommunications Blockset(通信模块集)通信模块集)Control System ToolboxControl System Toolbox(控制系统控制系统工具箱工具箱工具箱工具箱)Dials&Gauges BlocksetDials&Gauges Blockset(面板和仪表模块集面板和仪表
48、模块集)DSP BlocksetDSP Blockset(数字信号处理模块集数字信号处理模块集)Fixed-Point BlocksetFixed-Point Blockset(定点模块集定点模块集)Fuzzy Logic ToolboxFuzzy Logic Toolbox(模糊逻辑工具箱模糊逻辑工具箱)NCD BlocksetNCD Blockset(非线性控制设计模块集非线性控制设计模块集)Neural Network BlocksetNeural Network Blockset(神经网络模块集神经网络模块集)MPC BlocksetMPC Blockset(MPC MPC 模块集模块
49、集)Power System BlocksetPower System Blockset(电源系统模块集电源系统模块集)Real-Time Windows TargetReal-Time Windows Target(实时窗口目标库实时窗口目标库)Real-Time WorkshopReal-Time Workshop(实时工作空间库实时工作空间库)StateflowStateflow(状态流程库状态流程库)Simulink ExtrasSimulink Extras(Simulink Simulink附加库附加库)System ID Blockset System ID Blockset(系
50、统辨识模块集系统辨识模块集)返回返回2 22023年3月3日41例例1.9.1.11.9.1.1:信号发生器和示波器。:信号发生器和示波器。通过这个例子,对于系统仿真工具箱的使用有一个比较具体通过这个例子,对于系统仿真工具箱的使用有一个比较具体的认识。的认识。首先从源模块库内拖出三个信号发生器模块。首先从源模块库内拖出三个信号发生器模块。然后对它们分别进行设置:一个为噪声源,另外两个为正弦然后对它们分别进行设置:一个为噪声源,另外两个为正弦波,频率分别为波,频率分别为0.20.2HzHz和和0.60.6HzHz。接着从接着从 SimulinkSimulinkMath Math 模块库内拖出一个