《《MATLAB语言-周NO》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《MATLAB语言-周NO》PPT课件.ppt(35页珍藏版)》请在金锄头文库上搜索。
1、u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用函数的设计与应用uSimulink 操作基础操作基础8.1 Simulink操作基础操作基础8.1.1 Simulink简介简介 Simulink是是MATLAB的重要组成部分,提供建立系的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿对该系统进行仿真、设置不同的输出方式来观察仿真结果
2、等功能。真结果等功能。8.1.2 Simulink的启动与退出的启动与退出 1Simulink的启动的启动在在MATLAB的命令窗口输入的命令窗口输入simulink或单击主窗口或单击主窗口工具栏上的工具栏上的Simulink命令按钮即可启动命令按钮即可启动Simulink。Simulink启动后会显示启动后会显示Simulink模块库浏览器模块库浏览器(Simulink Library Browser)窗口。窗口。在在MATLAB主窗口主窗口File菜单中选择菜单中选择New菜单项下菜单项下的的Model命令,在出现命令,在出现Simulink模块库浏览器的同模块库浏览器的同时,还会出现一个
3、名字为时,还会出现一个名字为untitled的模型编辑窗口。的模型编辑窗口。在启动在启动Simulink模块库浏览器后再单击其工具栏模块库浏览器后再单击其工具栏中的中的Create a new model命令按钮,也会弹出模型编命令按钮,也会弹出模型编辑窗口。利用模型编辑窗口,可以通过鼠标的拖放辑窗口。利用模型编辑窗口,可以通过鼠标的拖放操作创建一个模型。操作创建一个模型。模型创建完成后,从模型编辑窗口的模型创建完成后,从模型编辑窗口的File菜单项菜单项中选择中选择Save或或Save As命令,可以将模型以模型文件命令,可以将模型以模型文件的格式的格式(扩展名为扩展名为.mdl)存入磁盘。
4、存入磁盘。如果要对一个已经存在的模型文件进行编辑修如果要对一个已经存在的模型文件进行编辑修改,需要打开该模型文件,其方法是,在改,需要打开该模型文件,其方法是,在MATLAB命令窗口直接输入模型文件名命令窗口直接输入模型文件名(不加扩展名不加扩展名.mdl)。在模块库浏览器窗口或模型编辑窗口的在模块库浏览器窗口或模型编辑窗口的File菜单中菜单中选择选择Open命令,然后选择或输入欲编辑模型的名命令,然后选择或输入欲编辑模型的名字,也能打开已经存在的模型文件。另外,单击模块字,也能打开已经存在的模型文件。另外,单击模块库浏览器窗口工具栏上的库浏览器窗口工具栏上的Open a model命令按钮
5、或模命令按钮或模型编辑窗口工具栏上的型编辑窗口工具栏上的Open model命令按钮,也能打命令按钮,也能打开已经存在的模型文件。开已经存在的模型文件。2Simulink的退出的退出为了退出为了退出Simulink,只要关闭所有模型编辑窗口,只要关闭所有模型编辑窗口和和Simulink模块库浏览器窗口即可。模块库浏览器窗口即可。u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用函数的设计与应用u系统仿真模型系统仿真模型8.2 系统仿真模型系统
6、仿真模型8.2.1 Simulink的基本模块的基本模块Simulink的模块库提供了大量模块。单击模块库浏的模块库提供了大量模块。单击模块库浏览器中览器中Simulink前面的前面的“+”号,将看到号,将看到Simulink模块模块库中包含的子模块库,单击所需要的子模块库,在右边的窗库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。同样,在模块库浏览器左侧的将其拖到模型编辑窗口。同样,在模块库浏览器左侧的Simulink栏上单击鼠标右键,在弹出的快捷菜单中单击栏上单
7、击鼠标右键,在弹出的快捷菜单中单击Open the Simulink Libray 命令,将打开命令,将打开Simulink基本模块库窗基本模块库窗口。单击其中的子模块库图标,打开子模块库,找到仿真所口。单击其中的子模块库图标,打开子模块库,找到仿真所需要的基本模块。需要的基本模块。8.2.2 模块的编辑模块的编辑1添加模块添加模块2选取模块选取模块3复制与删除模块复制与删除模块4模块外形的调整模块外形的调整 5模块名的处理模块名的处理8.2.3 模块的连接模块的连接1连接两个模块连接两个模块2模块间连线的调整模块间连线的调整3连线的分支连线的分支4标注连线标注连线5删除连线删除连线8.2.4
8、 模块的参数和属性设置模块的参数和属性设置1模块的参数设置模块的参数设置Simulink中几乎所有模块的参数都允许用户进行设置,中几乎所有模块的参数都允许用户进行设置,只要双击要设置的模块或在模块上按鼠标右键并在弹出的只要双击要设置的模块或在模块上按鼠标右键并在弹出的快捷菜单中选择相应模块的参数设置命令就会弹出模块参快捷菜单中选择相应模块的参数设置命令就会弹出模块参数对话框。该对话框分为两部分,上面一部分是模块功能数对话框。该对话框分为两部分,上面一部分是模块功能说明,下面一部分用来进行模块参数设置。说明,下面一部分用来进行模块参数设置。同样,先选择要设置的模块,再在模型编辑窗口同样,先选择要
9、设置的模块,再在模型编辑窗口Edit菜单下选择相应模块的参数设置命令也可以打开模块参数菜单下选择相应模块的参数设置命令也可以打开模块参数对话框。对话框。2模块的属性设置模块的属性设置选定要设置属性的模块,然后在模块上按鼠标选定要设置属性的模块,然后在模块上按鼠标右键并在弹出的快捷菜单中选择右键并在弹出的快捷菜单中选择Block properties,或先选择要设置的模块,再在模型编辑窗口的或先选择要设置的模块,再在模型编辑窗口的Edit菜单下选择菜单下选择Block properties命令,将打开模块属性命令,将打开模块属性对话框。该对话框包括对话框。该对话框包括General、Block
10、annotation和和Callbacks 3个可以相互切换的选项卡。其中选项个可以相互切换的选项卡。其中选项卡中可以设置卡中可以设置3个基本属性:个基本属性:Description(说明说明)、Priority(优先级优先级) 、Tag(标记标记)。例例8-1 有系统的微分方程,试建立系统仿真模型。有系统的微分方程,试建立系统仿真模型。操作过程如下:操作过程如下:(1)在在MATLAB主菜单中,选择主菜单中,选择File菜单中菜单中New菜单菜单项的项的Model命令,打开一个模型编辑窗口。命令,打开一个模型编辑窗口。(2) 将所需模块添加到模型中。将所需模块添加到模型中。(3) 设置模块参
11、数并连接各个模块组成仿真模型。设置模块参数并连接各个模块组成仿真模型。设置模块参数后,用连线将各个模块连接起来组成设置模块参数后,用连线将各个模块连接起来组成系统仿真模型。模型建好后,从模型编辑窗口的系统仿真模型。模型建好后,从模型编辑窗口的File菜单中选择菜单中选择Save或或Save as命令将它存盘。命令将它存盘。u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用函数的设计与应用u系统的仿真系统的仿真8.3 系统的仿真系统的仿真8.3
12、.1 设置仿真参数设置仿真参数打开系统仿真模型,从模型编辑窗口的打开系统仿真模型,从模型编辑窗口的Simulation菜菜单中选择单中选择Simulation parameters命令,打开一个仿真参数命令,打开一个仿真参数对话框,在其中可以设置仿真参数。仿真参数对话框包含对话框,在其中可以设置仿真参数。仿真参数对话框包含5个可以相互切换的选项卡:个可以相互切换的选项卡:(1) Solver选项卡:用于设置仿真起始和停止时间,选择微分选项卡:用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。方程求解算法并为其规定参数,以及选择某些输出选项。(2) Works
13、pace I/O选项卡:用于管理对选项卡:用于管理对MATLAB工作空间的工作空间的输入和输出。输入和输出。(3) Diagnostics选项卡:用于设置在仿真过程中出现各类错误选项卡:用于设置在仿真过程中出现各类错误时发出警告的等级。时发出警告的等级。(4) Advanced选项卡:用于设置一些高级仿真属性,更好地选项卡:用于设置一些高级仿真属性,更好地控制仿真过程。控制仿真过程。(5) Real-time Workshop选项卡:用于设置若干实时工具中的选项卡:用于设置若干实时工具中的参数。如果没有安装实时工具箱,则将不出现该选项卡。参数。如果没有安装实时工具箱,则将不出现该选项卡。8.3
14、.2 启动系统仿真与仿真结果分析启动系统仿真与仿真结果分析设置完仿真参数之后,从设置完仿真参数之后,从Simulation中选择中选择Start菜菜单项或单击模型编辑窗口中的单项或单击模型编辑窗口中的Start Simulation命令命令按钮,便可启动对当前模型的仿真。此时,按钮,便可启动对当前模型的仿真。此时,Start菜菜单项变成不可选单项变成不可选, 而而Stop菜单项变成可选菜单项变成可选, 以供中途以供中途停止仿真使用。从停止仿真使用。从Simulation菜单中选择菜单中选择Stop项停止项停止仿真后,仿真后,Start项又变成可选。项又变成可选。为了观察仿真结果的变化轨迹可以采
15、用为了观察仿真结果的变化轨迹可以采用3种方法:种方法:(1) 把输出结果送给把输出结果送给Scope模块或者模块或者XY Graph模块。模块。(2) 把仿真结果送到输出端口并作为返回变量,然后把仿真结果送到输出端口并作为返回变量,然后使用使用MATLAB命令画出该变量的变化曲线。命令画出该变量的变化曲线。 (3) 把输出结果送到把输出结果送到To Workspace模块,从而将结模块,从而将结果直接存入工作空间,然后用果直接存入工作空间,然后用MATLAB命令画出该命令画出该变量的变化曲线。变量的变化曲线。例例8-2 利用利用Simulink仿真曲线。仿真曲线。仿真过程如下:仿真过程如下:(
16、1) 启动启动Simulink并打开模型编辑窗口。并打开模型编辑窗口。(2) 将所需模块添加到模型中。将所需模块添加到模型中。(3) 设置模块参数并连接各个模块组成仿真模型。设置模块参数并连接各个模块组成仿真模型。 设置模块参数后,用连线将各个模块连接起来组成设置模块参数后,用连线将各个模块连接起来组成仿真模型。仿真模型。(4) 设置系统仿真参数。设置系统仿真参数。(5) 开始系统仿真。开始系统仿真。(6) 观察仿真结果。观察仿真结果。例例8-3 利用利用Simulink仿真求定积分。仿真求定积分。仿真过程如下:仿真过程如下:(1) 打开一个模型编辑窗口。打开一个模型编辑窗口。(2) 将所需模
17、块添加到模型中。将所需模块添加到模型中。(3) 设置模块参数并连接各个模块组成仿真模型。设置模块参数并连接各个模块组成仿真模型。(4) 设置系统仿真参数。设置系统仿真参数。(5) 开始系统仿真。开始系统仿真。(6) 观察仿真结果。观察仿真结果。8.3.3 系统仿真实例系统仿真实例利用利用Simulink进行系统仿真的步骤如下:进行系统仿真的步骤如下:(1) 建立系统仿真模型,这包括添加模块、设置模块参数以建立系统仿真模型,这包括添加模块、设置模块参数以及进行模块连接等操作。及进行模块连接等操作。(2) 设置仿真参数。设置仿真参数。(3) 启动仿真并分析仿真结果。启动仿真并分析仿真结果。例例8-
18、4 有初始状态为有初始状态为0的二阶微分方程的二阶微分方程x+0.2x+0.4x=0.2u (t), 其中其中u(t)是单位阶跃函数,试建立系统模型并仿真。是单位阶跃函数,试建立系统模型并仿真。方法方法1:用积分器直接构造求解微分方程的模型。:用积分器直接构造求解微分方程的模型。方法方法2:利用传递函数模块建模。:利用传递函数模块建模。方法方法3:利用状态方程模块建模。:利用状态方程模块建模。u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用
19、函数的设计与应用u使用命令操作对系统进行仿真使用命令操作对系统进行仿真8.4 使用命令操作对系统进行仿真使用命令操作对系统进行仿真从命令窗口运行仿真的函数有从命令窗口运行仿真的函数有4个,即个,即sim、simset、simget和和set_param。1sim函数函数sim函数的作用是运行一个由函数的作用是运行一个由Simulink建立的模型,建立的模型,其调用格式为:其调用格式为:t, x, y =sim(modname,timespan,options,data);2simset函数函数 simset 函数用来为函数用来为sim函数建立或编辑仿真参数或规定算函数建立或编辑仿真参数或规定算
20、法,并把设置结果保存在一个结构变量中。它有如下法,并把设置结果保存在一个结构变量中。它有如下4种种用法:用法:(1) options=simset(property,value,):把:把property代表的代表的参数赋值为参数赋值为value,结果保存在结构,结果保存在结构options中。中。(2) options=simset(old_opstruct,property,value,):把已:把已有的结构有的结构old_opstruct(由由simset产生产生)中的参数中的参数property重重新赋值为新赋值为value,结果保存在新结构,结果保存在新结构options中。中。(3
21、) options=simset(old_opstruct,new_opstruct):用结构:用结构new_opstruct的值替代已经存在的结构的值替代已经存在的结构old_opstruct的值。的值。(4) simset:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。3simget函数函数simget函数用来获得模型的参数设置值。如果参数值是用函数用来获得模型的参数设置值。如果参数值是用一个变量名定义的,一个变量名定义的,simget返回的也是该变量的值而不是返回的也是该变量的值而不是变量名。如果该变量在工作空间中不存在变量名。如果该变量在工作空间中不存在(即变量未被
22、赋即变量未被赋值值),则,则Simulink给出一个出错信息。该函数有如下给出一个出错信息。该函数有如下3种用种用法:法:(1) struct=simget(modname):返回指定模型:返回指定模型model的参数的参数设置的设置的options结构。结构。(2) value=simget(modname,property):返回指定模型:返回指定模型model的参数的参数property的值。的值。(3) value=simget(options,property):获取:获取options结构中的结构中的参数参数property的值。如果在该结构中未指定该参数,则返的值。如果在该结构中
23、未指定该参数,则返回一个空阵。回一个空阵。用户只需输入能够唯一识别它的那个参数名称的前几个字用户只需输入能够唯一识别它的那个参数名称的前几个字符即可,对参数名称中字母的大小写不作区别。符即可,对参数名称中字母的大小写不作区别。4set_param函数函数set_param函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用set_param函数设置函数设置Simulink仿真参数以及如何开始、暂停、终止仿仿真参数以及如何开始、暂停、终止仿真进程或者更新显示一个仿真模型。真进程或者更新显示一个仿真模型。(1) 设置仿真参数设置仿真参数调用格式为:调用格式为:set_param(mod
24、name,property,value,)其中其中modname为设置的模型名,为设置的模型名,property为要设置的参数,为要设置的参数,value是设置值。这里设置的参数可以有很多种,而且和用是设置值。这里设置的参数可以有很多种,而且和用simset设置的内容不尽相同,相关参数的设置可以参考有设置的内容不尽相同,相关参数的设置可以参考有关资料。关资料。(2) 控制仿真进程控制仿真进程调用格式为:调用格式为:set_param(modname,SimulationCommand,cmd)其中其中mode为仿真模型名称,而为仿真模型名称,而cmd是控制仿真进程的各个是控制仿真进程的各个命令
25、,包括命令,包括start、stop、pause、comtinue或或update。在使用这两个函数的时候,需要注意必须先把模型打开。在使用这两个函数的时候,需要注意必须先把模型打开。u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用函数的设计与应用u子系统及其封装技术子系统及其封装技术 8.5 子系统及其封装技术子系统及其封装技术8.5.1 子系统的建立子系统的建立建立子系统有两种方法:通过建立子系统有两种方法:通过Subsystem模块建
26、立子系统模块建立子系统和通过已有的模块建立子系统。两者的区别是:前者先建和通过已有的模块建立子系统。两者的区别是:前者先建立子系统,再为其添加功能模块;后者先选择模块,再建立子系统,再为其添加功能模块;后者先选择模块,再建立子系统。立子系统。1通过通过Subsystem模块建立子系统模块建立子系统操作步骤为:操作步骤为:(1) 先打开先打开Simulink模块库浏览器,新建一个仿真模型。模块库浏览器,新建一个仿真模型。(2) 打开打开Simulink模块库中的模块库中的Ports & Subsystems模块库,模块库,将将Subsystem模块添加到模型编辑窗口中。模块添加到模型编辑窗口中。
27、(3) 双击双击Subsystem模块打开一个空白的模块打开一个空白的Subsystem窗口,窗口,将要组合的模块添加到该窗口中,另外还要根据需要添加将要组合的模块添加到该窗口中,另外还要根据需要添加输入模块和输出模块,表示子系统的输入端口和输出端口。输入模块和输出模块,表示子系统的输入端口和输出端口。这样,一个子系统就建好了。这样,一个子系统就建好了。2通过已有的模块建立子系统通过已有的模块建立子系统操作步骤为:操作步骤为:(1) 先选择要建立子系统的模块,不包括输入端口和输出先选择要建立子系统的模块,不包括输入端口和输出端口。端口。(2) 选择模型编辑窗口选择模型编辑窗口Edit菜单中的菜
28、单中的Create Subsystem 命令,命令,这样,子系统就建好了。在这种情况下,系统会自动把输这样,子系统就建好了。在这种情况下,系统会自动把输入模块和输出模块添加到子系统中,并把原来的模块变为入模块和输出模块添加到子系统中,并把原来的模块变为子系统的图标。子系统的图标。例例8-5 PID控制器是在自动控制中经常使用的模块,试建控制器是在自动控制中经常使用的模块,试建立立PID控制器的模型并建立子系统。控制器的模型并建立子系统。步骤如下:步骤如下:(1) 先建立先建立PID控制器的模型。控制器的模型。(2) 建立子系统。建立子系统。 8.5.3 子系统的封装子系统的封装所谓子系统的封装
29、所谓子系统的封装(Masking),就是为子系统定制对话框,就是为子系统定制对话框和图标,使子系统本身有一个独立的操作界面,把子系统和图标,使子系统本身有一个独立的操作界面,把子系统中的各模块的参数对话框合成一个参数设置对话框,在使中的各模块的参数对话框合成一个参数设置对话框,在使用时不必打开每个模块进行参数设置,这样使子系统的使用时不必打开每个模块进行参数设置,这样使子系统的使用更加方便。用更加方便。子系统的封装过程很简单,先选中所要封装的子系统,再子系统的封装过程很简单,先选中所要封装的子系统,再选择模型编辑窗口选择模型编辑窗口Edit菜单中的菜单中的Mask subsystem命令,这命
30、令,这时将出现封装编辑器时将出现封装编辑器(Mask Editor)对话框。对话框。Mask Editor对话框中共包括对话框中共包括4个选项卡:个选项卡:Icon、Parameters、Initialization和和Documentation。子系统的封。子系统的封装主要就是对这装主要就是对这4页参数进行设置。页参数进行设置。u Simulink 操作基础操作基础u 系统仿真模型系统仿真模型u 系统的仿真系统的仿真u 使用命令操作对系统进行仿真使用命令操作对系统进行仿真u子系统及其封装技术子系统及其封装技术uS函数的设计与应用函数的设计与应用uS函数的设计与应用函数的设计与应用8.6 S函
31、数的设计与应用函数的设计与应用S函数称为系统函数函数称为系统函数(System Function),它有固定的程序,它有固定的程序格式。用格式。用MATLAB语言可以编写语言可以编写S函数,此外还可以采用函数,此外还可以采用C、C+、FORTRAN和和Ada等语言编写。等语言编写。8.6.1 用用MATLAB语言编写语言编写S函数函数编写编写S函数有一套固定的规则,为此,函数有一套固定的规则,为此,Simulink提供了一提供了一个用个用M文件编写文件编写S函数的模板。该模板程序存放在函数的模板。该模板程序存放在toolboxsmulinkks目录下,文件名为目录下,文件名为sfuntmpl.
32、m。用户可。用户可以从这个模板出发构建自己的以从这个模板出发构建自己的S函数。函数。1主程序主程序S函数主程序的引导语句为:函数主程序的引导语句为:function sys,x0,str,ts=fname(t, x, u, flag)2子程序子程序S函数函数M文件共有文件共有6个子程序,供个子程序,供Simulink在仿真的不同阶在仿真的不同阶段调用。段调用。8.6.2 S函数的应用函数的应用例例8-8 采用采用S函数实现模块函数实现模块y=nx,即模块的功能是把一个,即模块的功能是把一个输入信号输入信号n倍以后再输出。倍以后再输出。(1) 利用利用MATLAB语言语言M文件。文件。(2) 模块的封装与测试。模块的封装与测试。上机:时间:10月15日下午 ,E204 14:0016:00 040811 班16:0018:00 040812 班习题:P370: 1,3 ,6 (2),8 P372: 5 (1),(3),6 (3) P373: 2, 4程序发送到我的邮箱:Email: 上机:时间:10月19日下午 ,E202 14:0016:00 040811 班16:0018:00 040812 班习题:P302: 7,9 ,12 P375: 1,3,4,6程序发送到我的邮箱:Email: