电机控制基于Simulink的仿真

上传人:无*** 文档编号:146786631 上传时间:2022-08-31 格式:PPT 页数:192 大小:2.86MB
收藏 版权申诉 举报 下载
电机控制基于Simulink的仿真_第1页
第1页 / 共192页
电机控制基于Simulink的仿真_第2页
第2页 / 共192页
电机控制基于Simulink的仿真_第3页
第3页 / 共192页
资源描述:

《电机控制基于Simulink的仿真》由会员分享,可在线阅读,更多相关《电机控制基于Simulink的仿真(192页珍藏版)》请在装配图网上搜索。

1、主讲:段清明主讲:段清明仪器科学与电气工程学院仪器科学与电气工程学院 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院1 Simulink简介 Simulink是一个用来对动态系统进行建模、仿真是一个用来对动态系统进行建模、仿真和分析的软件包。和分析的软件包。使用使用Simulink来建模、分析和来建模、分析和仿真各种动态系统仿真各种动态系统(包括包括连续系统连续系统、离散系统离散系统和和混混合系统合系统),将是一件非常轻松的事情。它提供了一,将是一件非常轻松的事情。它提供了一种图形化的交互环境,只需用鼠标拖动的方法便种图形

2、化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写能迅速地建立起系统框图模型,甚至不需要编写一行代码。一行代码。利用利用Simulink进行系统的建模仿真,其最大的优进行系统的建模仿真,其最大的优点是易学、易用,并能依托点是易学、易用,并能依托MATLAB提供的丰富提供的丰富的仿真资源。的仿真资源。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 提供了仿真库的扩充和定制机制提供了仿真库的扩充和定制机制 Simulink的开放式结构允许用户扩展仿真环境的开放式结构允许用户扩展仿真环境的功能:采用的

3、功能:采用MATLAB、FORTRAN和和C代码代码生成自定义模块库,并拥有自己的图标和界面。生成自定义模块库,并拥有自己的图标和界面。与与MATLAB工具箱的集成工具箱的集成 由于由于Simulink可以直接利用可以直接利用MATLAB的诸多资的诸多资源与功能,因而用户可以直接在源与功能,因而用户可以直接在 Simulink下完下完成诸如数据分析、过程自动化、优化参数等工成诸如数据分析、过程自动化、优化参数等工作。作。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Simulink应用领域应用领域电机控制课程设计:电机控制

4、课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院2 Simulink启动及模型建立启动及模型建立 Simulink的启动主要有以下两种方法:的启动主要有以下两种方法:在在MATLAB的命令窗口中输入的命令窗口中输入simulink,结果结果是在桌面上出现一个是在桌面上出现一个Simulink Library Browser的窗口。的窗口。单击单击MATLAB主窗口的快捷按钮主窗口的快捷按钮 ,打开,打开Simulink Library Browser窗口窗口。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程

5、学院仪器科学与电气工程学院Simulink模型窗口的建立模型窗口的建立 在在Simulink中打开一个空白的模型窗口的方法:中打开一个空白的模型窗口的方法:选中选中Simulink菜单系统中的菜单系统中的File|New|Model菜单项后,菜单项后,会生成一个会生成一个Simulink窗口;窗口;单击单击Simulink工具栏中的工具栏中的“新建模型新建模型”图标;图标;在在MATLAB的命令窗口中选择的命令窗口中选择File|New|New Model菜菜单项;单项;电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院启动启

6、动Simulink,建立系统模型的基本操作,建立系统模型的基本操作依次表示新建、打开依次表示新建、打开系统模型文件系统模型文件依次表示新建、打开与依次表示新建、打开与保存系统模型文件保存系统模型文件电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Simulink的模块库的模块库 Simulink的模块库能够对系统模块进行有效的管理与组织的模块库能够对系统模块进行有效的管理与组织可以直接将模块库中的模块拖动或者拷贝到用户的系统模可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。型中以构建动态系统模型。模

7、块搜索模块搜索 模块描述模块描述 系统模块系统模块 系统模块库系统模块库 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Simulink公共模块库公共模块库 Simulink中最为基础、最为通用的模块库,它可以被应用中最为基础、最为通用的模块库,它可以被应用到不同的专业领域中。到不同的专业领域中。连续模块连续模块continuous、非连续模块、非连续模块discontinuous 离散模块离散模块discrete、查找表模块、查找表模块Look-up Table 数学运算数学运算Math Operations 模型验证模

8、块模型验证模块Model Verification 模型扩充工具模型扩充工具Model-Wide Utilities 端口和子系统模块端口和子系统模块Ports&Subsystems、信号属性模块信号属性模块Signal Attributes 信号路由模块信号路由模块Signal Routing、接收模块、接收模块Sinks 输入模块输入模块Sources 用户自定义函数模块用户自定义函数模块User-Defined Functions电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Simulink的部分专业模块库的部分专业

9、模块库DSP Blockset数字信号处理工具包数字信号处理工具包Fixed-Point Blockset定点运算控制系统仿真工具包定点运算控制系统仿真工具包Power System Blockset电力电动系统工具包电力电动系统工具包Dials&Gauges Blockset交互图形和控制面板设计工具包交互图形和控制面板设计工具包Communications Blockset通讯系统工具包通讯系统工具包CDMA Reference Blockset CDMACDMA通讯系统设计和分析工具包通讯系统设计和分析工具包Nonlinear Control Design Blockset非线性控制设计

10、工具箱非线性控制设计工具箱Motorola DSP Developers KitMotorola DSP开发工具箱开发工具箱TI DSP Developers KitTI DSP开发工具箱开发工具箱电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院对对Simulink库浏览器的基本操作有:库浏览器的基本操作有:(1)使用鼠标左键单击系统模块库,如果模块库为多层结构,使用鼠标左键单击系统模块库,如果模块库为多层结构,则单击则单击“+”号载入库。号载入库。(2)使用鼠标右键单击系统模块库,使用鼠标右键单击系统模块库,可在单独的窗口

11、可在单独的窗口打开库。打开库。(3)使用鼠标左键单击系统模块,在模块描述栏中使用鼠标左键单击系统模块,在模块描述栏中显示此模块显示此模块的描述的描述。(4)使用鼠标右键单击系统模块,可以得到:使用鼠标右键单击系统模块,可以得到:系统模块的帮助系统模块的帮助信息信息;将系统模块插入到系统模型中将系统模块插入到系统模型中;查看系统模块的参数查看系统模块的参数设置设置;以及以及回到系统模块的上一层库回到系统模块的上一层库。此外还可以进行以下操作此外还可以进行以下操作:(1)使用鼠标左键选择并拖动系统模块,并将其拷贝到使用鼠标左键选择并拖动系统模块,并将其拷贝到系统模型中。系统模型中。(2)在模块搜索

12、栏中搜索所需的系统模块。在模块搜索栏中搜索所需的系统模块。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 例:例:简单系统的输入为一个正弦波信号,输出为简单系统的输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。要求建立系统此正弦波信号与一个常数的乘积。要求建立系统模型,并以图形方式输出系统运算结果。模型,并以图形方式输出系统运算结果。已知系统的数学描述为已知系统的数学描述为 系统输入:系统输入:u(t)=sin t,t0 系统输出:系统输出:y(t)=au(t),a0电机控制课程设计:电机控制课程设计:MATLA

13、B/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院相关操作:相关操作:模块库模块库 Sine Wave来自来自sources;Gain来自来自Math Operations;Scope来自来自Sinks 连接方法连接方法(1)拖动对应端口进行连接拖动对应端口进行连接(2)单击起始模块后,按单击起始模块后,按Ctrl键再单击目标模块键再单击目标模块 模块复制模块复制 传统方式传统方式Ctrl+C/Ctrl+V、或、或Ctrl键再拖动模块键再拖动模块 模块插入模块插入 对于单输入单输出模块,只需将这个模块移到线上就对于单输入单输出模块,只需将这个模块移到线上就可以自动连接。可

14、以自动连接。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院连线操作连线操作 连线分支连线分支 使用鼠标右键单击需要分支的信号连线(光标使用鼠标右键单击需要分支的信号连线(光标变成变成“+”),然后拖动到目标模块。),然后拖动到目标模块。使用鼠标左键单击并拖动以改变信号连线使用鼠标左键单击并拖动以改变信号连线的路径。的路径。按下按下Shift键的同时,在信号连线上单击鼠键的同时,在信号连线上单击鼠标左键并拖动,可以生成新的节点。标左键并拖动,可以生成新的节点。在节点上使用鼠标左键单击并拖动,可以在节点上使用鼠标左键单击并拖动

15、,可以改变信号连线路径。改变信号连线路径。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院信号组合信号组合 在利用在利用Simulink进行系统仿真时,在很多进行系统仿真时,在很多情况下,需要将系统中某些模块的输出信号(一情况下,需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信般为标量)组合成一个向量信号,并将得到的信号作为另外一个模块的输入。号作为另外一个模块的输入。来自来自Signal Routing的的Bus Creator电机控制课程设计:电机控制课程设计:MATLAB/Simulink设

16、计设计仪器科学与电气工程学院仪器科学与电气工程学院3 Simulink模型仿真模型仿真 系统模块参数设置与系统仿真参数设置系统模块参数设置与系统仿真参数设置 双击系统模块,打开系统模块的参数设置对话框。双击系统模块,打开系统模块的参数设置对话框。在参数设置对话框中设置合适的模块参数。在参数设置对话框中设置合适的模块参数。设置合适的系统仿真参数以进行动态系统的仿真设置合适的系统仿真参数以进行动态系统的仿真 在在Simulation菜单的菜单的Simulation parameters.子菜单子菜单中进行设置,如仿真时间等中进行设置,如仿真时间等 运行仿真运行仿真 单击系统模型编辑器上的单击系统模

17、型编辑器上的Play图标图标(黑色三角黑色三角)或选择或选择Simulation菜单下的菜单下的Start便可以对系统进行仿真分析。便可以对系统进行仿真分析。仿真结束后双击仿真结束后双击Scope模块以显示系统仿真的输出结模块以显示系统仿真的输出结果果电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院4 Simulink子系统介绍子系统介绍 Simulink提供的子系统功能可以大大地增强提供的子系统功能可以大大地增强Simulink系统模型框图的可读性。系统模型框图的可读性。子系统可以理解为一种子系统可以理解为一种“容器容器”

18、,此容器能够将,此容器能够将一组相关的模块封装到一个单独的模块中,并且一组相关的模块封装到一个单独的模块中,并且与原来系统模块组的功能一致。与原来系统模块组的功能一致。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院子系统建立方法子系统建立方法(2种种)在已有的系统模型中建立子系统:在已有的系统模型中建立子系统:首先框选待封装的区域,即在模型编辑器背景首先框选待封装的区域,即在模型编辑器背景中单击鼠标左键并拖动,选中需要放置到子系中单击鼠标左键并拖动,选中需要放置到子系统中的模块与信号(或在按下统中的模块与信号(或在按下Sh

19、ift键的同时,键的同时,用鼠标左键单击所需模块);然后选择用鼠标左键单击所需模块);然后选择Edit菜菜单下的单下的Create Subsystem,即可建立子系统。,即可建立子系统。建立空的子系统:建立空的子系统:Subsystems模块库中的模块建立子系统。这模块库中的模块建立子系统。这样建立的子系统内容为空,然后双击子系统对样建立的子系统内容为空,然后双击子系统对其进行编辑。其进行编辑。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院子系统操作子系统操作 在在生成子系统之后,用户可以对子系统进生成子系统之后,用户可以

20、对子系统进行各种与系统模块相类似的操作,这时子系统行各种与系统模块相类似的操作,这时子系统相当于具有一定功能的系统模块。例如,子系相当于具有一定功能的系统模块。例如,子系统的命名、子系统视图的修改、子系统的显示统的命名、子系统视图的修改、子系统的显示颜色等等。当然子系统也有其特有的操作,如颜色等等。当然子系统也有其特有的操作,如子系统的显示(用鼠标左键双击子系统模块即子系统的显示(用鼠标左键双击子系统模块即可打开子系统)、子系统的封装等等。可打开子系统)、子系统的封装等等。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院In

21、port输入模块与输入模块与Outport输出模块输出模块 在系统模型中建立子系统时,在系统模型中建立子系统时,Simulink会自会自动生成动生成Inport模块(模块(Sources模块库中的模块库中的In1模块)模块)与与Outport模块(模块(Sinks模块库中的模块库中的Out1模块)。模块)。Inport模块作为子系统的输入端口,模块作为子系统的输入端口,Outport作为作为子系统的输出端口,它们被用来完成子系统和主子系统的输出端口,它们被用来完成子系统和主系统之间的通讯。系统之间的通讯。Inport和和Outport用来对信号进行传递,不改用来对信号进行传递,不改变信号的任何

22、属性;另外,信号标签可以越过它变信号的任何属性;另外,信号标签可以越过它们进行传递。如果需要建立多输入多输出的子系们进行传递。如果需要建立多输入多输出的子系统,则需要使用多个统,则需要使用多个Inport模块与模块与Outport模块,模块,而且最好使用合适的名称对而且最好使用合适的名称对Inport模块与模块与Outport模块进行命名。模块进行命名。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院5 Simulink与与Matlab的接口设计的接口设计 由由MATLAB工作空间变量设置系统模块参工作空间变量设置系统模块参

23、数数 模块参数可以是常量也可以工作空间变量模块参数可以是常量也可以工作空间变量 直接使用直接使用MATLAB工作空间中的变量设置模块工作空间中的变量设置模块参数。参数。使用变量的表达式设置模块参数。使用变量的表达式设置模块参数。例如,如果例如,如果a是定义在是定义在MATLAB中的变量,则表达中的变量,则表达式式a、a2+5、exp(a)等均可以作为系统模块的参等均可以作为系统模块的参数数电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 将信号输出到将信号输出到MATLAB工作空间中工作空间中 使用示波器模块使用示波器模块S

24、cope的输出信号,可以的输出信号,可以使用户对输出的信号进行简单的定性分析。使用户对输出的信号进行简单的定性分析。使用使用Sinks模块库中的模块库中的To Workspace 模块,模块,可以轻易地将信号输出到可以轻易地将信号输出到MATLAB工作空间中。工作空间中。信号输出的名称在信号输出的名称在To Workspace模块的对话模块的对话框中设置,此对话框还可以设置输出数据的点框中设置,此对话框还可以设置输出数据的点数、输出的间隔,以及输出数据的类型等。其数、输出的间隔,以及输出数据的类型等。其中输出类型有三种形式:数组、结构以及带有中输出类型有三种形式:数组、结构以及带有时间变量的结

25、构。仿真结束或暂停时信号被输时间变量的结构。仿真结束或暂停时信号被输出到工作空间中。出到工作空间中。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 使用工作空间变量作为系统输入信号使用工作空间变量作为系统输入信号 Simulink与与MATLAB的数据交互是相互的,除的数据交互是相互的,除了可以将信号输出到了可以将信号输出到MATLAB工作空间中之外,用工作空间中之外,用户还可以使用户还可以使用MATLAB工作空间中的变量作为系统工作空间中的变量作为系统模型的输入信号。使用模型的输入信号。使用Sources模块库中的模块库

26、中的From Workspace模块可以将模块可以将MATLAB工作空间中的变量工作空间中的变量作为系统模型的输入信号。此变量的格式如下所示:作为系统模型的输入信号。此变量的格式如下所示:t=0:0.1:10;x=sin(t);input=t,x;系统输入信号系统输入信号input的作用相当于的作用相当于Sources模块中的模块中的Sine Wave模块模块电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 向量与矩阵向量与矩阵 Simulink所使用的信号可以是标量也能够传所使用的信号可以是标量也能够传递和使用向量信号。例

27、如,向量增益可以作递和使用向量信号。例如,向量增益可以作用在一个标量信号上,产生一个向量输出。用在一个标量信号上,产生一个向量输出。Simulink 最重要的特性就是支持矩阵形式最重要的特性就是支持矩阵形式的信号,它可以区分行和列向量并传递矩阵。的信号,它可以区分行和列向量并传递矩阵。通过对模块做适当的配置,可以使模块能够通过对模块做适当的配置,可以使模块能够接受矩阵作为模块参数。接受矩阵作为模块参数。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 MATLAB Function与与Function模块模块 除了使用上述的

28、方式进行除了使用上述的方式进行Simulink与与MATLAB之间之间的数据交互,用户还可以使用的数据交互,用户还可以使用Functions and Tables 模块模块库中的库中的 Function模块(简称为模块(简称为Fcn模块)或模块)或Functions and Tables 模块库中的模块库中的MATLAB Function模块(简称为模块(简称为MATLAB Fcn模块)进行彼此间的数据交互。模块)进行彼此间的数据交互。Fcn模块一般用来实现简单的函数关系,在模块一般用来实现简单的函数关系,在Fcn模块中:模块中:(1)输入总是表示成输入总是表示成u,u可以是一个向量。可以是一

29、个向量。(2)可以使用可以使用 C 语言表达式,例如语言表达式,例如sin(u1)+cos(u2)。(3)输出永远为一个标量。输出永远为一个标量。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 (2)可以使用可以使用 C 语言表达式,例如语言表达式,例如sin(u1)+cos(u2)。(3)输出永远为一个标量。输出永远为一个标量。MATLAB Fcn一般用来调用一般用来调用MATLAB函数来实现一函数来实现一定的功能,在定的功能,在MATLAB Fcn模块中:模块中:(1)所要调用的函数只能有一个输出(可以是一个向所要调用

30、的函数只能有一个输出(可以是一个向量)。量)。(2)单输入函数只需使用函数名,多输入函数输入需单输入函数只需使用函数名,多输入函数输入需要引用相应的元素,如要引用相应的元素,如mean、sqrt、myfunc(u(1),u(2)。(3)在每个仿真步长内都需要调用在每个仿真步长内都需要调用MATLAB解释器。解释器。使用使用Fcn模块与模块与MATLAB Fcn模块进行模块进行Simulink与与MATLAB之间的数据交互。之间的数据交互。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院使用使用Fcn与与MATLAB Fcn模

31、块进行数据交互模块进行数据交互 函数表达式函数表达式 Matlab 函数 MATLAB函数电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院6 Scope高级使用技术高级使用技术打印输出打印输出 参数设置参数设置 视图整体缩放视图整体缩放 Y轴缩放轴缩放 视图自动缩放视图自动缩放 X轴缩放轴缩放 保存当前坐标轴设置保存当前坐标轴设置 恢复坐标轴设置恢复坐标轴设置 悬浮悬浮Scope开关开关 悬浮时信号选择悬浮时信号选择 去除坐标轴选择去除坐标轴选择 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器

32、科学与电气工程学院仪器科学与电气工程学院1)Scope的参数设置的参数设置 使用使用Scope模块的参数设置选项卡能够对模块的参数设置选项卡能够对系统仿真输出结果显示进行更多的控制,而不系统仿真输出结果显示进行更多的控制,而不仅仅是上述的简单控制。图仅仅是上述的简单控制。图36、图、图37所示分别所示分别为为Scope模块参数设置选项卡中的模块参数设置选项卡中的General选选项卡与项卡与Data History选项卡。选项卡。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Scope模块的模块的General选项卡选项卡

33、坐标系标签坐标系标签 坐标系数目坐标系数目 显示时间范围显示时间范围 悬浮悬浮Scope 开关开关 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院Scope模块的模块的Data history选项卡选项卡信号显示点数限制信号显示点数限制 保存信号至工作空保存信号至工作空间变量间变量 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院下面简单介绍一下各选项卡的功能与使用。下面简单介绍一下各选项卡的功能与使用。1)坐标系数目坐标系数目(Number of ax

34、es)功能描述:在一个功能描述:在一个Scope输出模块中使用多输出模块中使用多个坐标系窗口同时输出多个信号。在默认设置个坐标系窗口同时输出多个信号。在默认设置下,下,Scope模块仅显示一个坐标系窗口。模块仅显示一个坐标系窗口。2)悬浮悬浮Scope开关开关(Floating scope)功能描述:将功能描述:将Scope模块切换为悬浮模块切换为悬浮Scope模块。模块。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 3)显示时间范围显示时间范围(Time range)功能描述:设置信号显示的时间范围。注意:信功能描述:

35、设置信号显示的时间范围。注意:信号显示的时间范围与系统仿真时间范围并不等同,号显示的时间范围与系统仿真时间范围并不等同,并且坐标系所示的时间范围并非为绝对时间,而并且坐标系所示的时间范围并非为绝对时间,而是指相对时间范围,坐标系的左下角的时间偏移是指相对时间范围,坐标系的左下角的时间偏移(Time offset)给出了时间的起始偏移量(即显)给出了时间的起始偏移量(即显示时间范围的起始时刻)。示时间范围的起始时刻)。4)坐标系标签坐标系标签(Tick labels)功能描述:确定功能描述:确定Scope模块中各坐标系是否带有模块中各坐标系是否带有坐标轴标签。坐标轴标签。下方坐标系使用标签(下方

36、坐标系使用标签(bottom axis only)以及)以及都不使用标签(都不使用标签(none)。用户最好使用标签,这)。用户最好使用标签,这有利于对信号的观察理解有利于对信号的观察理解.电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 5)信号显示点数限制信号显示点数限制(Limit data points to last)功能描述:限制信号显示的数据点的数目,功能描述:限制信号显示的数据点的数目,Scope模块会自动对信号进行截取以显示信号的最后模块会自动对信号进行截取以显示信号的最后n个点(这里个点(这里n为设置的数

37、值)。为设置的数值)。6)保存信号至工作空间变量保存信号至工作空间变量(Save data to workspace)功能描述:将由功能描述:将由Scope模块显示的信号保存到模块显示的信号保存到Matlab工作空间变量中,以便于对信号进行更多的工作空间变量中,以便于对信号进行更多的定量分析。数据保存类型有三种:带时间变量的结定量分析。数据保存类型有三种:带时间变量的结构体(构体(structure with time)、结构体()、结构体(structure)以及数组变量(以及数组变量(Array)。这与前面所介绍的)。这与前面所介绍的Sinks模块库中的模块库中的To workspace模

38、块类似。模块类似。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 此外,在此外,在Scope模块中的坐标系中单击鼠标右模块中的坐标系中单击鼠标右键,选择弹出菜单中坐标系属性设置命令键,选择弹出菜单中坐标系属性设置命令(axes properties),将弹出下图所示的坐),将弹出下图所示的坐标系属性设置对话框。用户可以对标系属性设置对话框。用户可以对Scope模块模块的坐标系标题与显示信号范围进行合适的设置,的坐标系标题与显示信号范围进行合适的设置,以满足仿真输出结果显示的需要。以满足仿真输出结果显示的需要。电机控制课程设

39、计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院坐标系属性设置对话框坐标系属性设置对话框 设置信号显设置信号显示幅值范围示幅值范围坐标系标题:一坐标系标题:一般采用信号名称般采用信号名称电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院7 S函数的设计和调用函数的设计和调用S函数是函数是扩展扩展Simulink功能功能的强有力工具,它使用户可以利的强有力工具,它使用户可以利用用MATLAB、C语言、语言、C+语言等程序创建自己定义的语言等程序创建自己定义的Simulink

40、模块。模块。C,C+,Ada,and Fortan S-Functions需要编译为需要编译为Mex文件,就和其它文件,就和其它MEX文件一样,文件一样,Simulink可以随时动态的调用这些文件。可以随时动态的调用这些文件。S函数使用的是函数使用的是一种比较特殊的调用格式一种比较特殊的调用格式,可以和,可以和Simulink求解器交互式操作。求解器交互式操作。S-Functions功能非常全面,适用于连功能非常全面,适用于连续、离散以及混合系统。续、离散以及混合系统。S函数允许用户向模型中添加自己编写的模块,只要按照一函数允许用户向模型中添加自己编写的模块,只要按照一些简单的些简单的规则规则

41、,就可以在,就可以在S-Functions添加设计算法。在编添加设计算法。在编写好写好S-Functions之后就可以在之后就可以在S-Functions模块中添加相模块中添加相应得函数名,也可以通过封装技术来订制自己的交互界面。应得函数名,也可以通过封装技术来订制自己的交互界面。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院S函数的调用函数的调用 在在Simulink使用使用S-Functions的方法就是从的方法就是从Simulink中的中的User-Defined Functions模块库中向模块库中向Simulin

42、k模型文件窗口中拖放模型文件窗口中拖放S-Function模块模块。然后在然后在S-Functions模块的对话框中的模块的对话框中的S-Functions Name框中输入框中输入S函数的文件名函数的文件名,在,在S-Functions Parameters框中输入框中输入S函数的函数的参数值参数值。在点击在点击edit的选项后可以编辑的选项后可以编辑S函数的代码部分,函数的代码部分,利用利用S函数实现需要的功能主要是代码部分的修函数实现需要的功能主要是代码部分的修改。改。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院

43、对于代码部分的修改,可以使用对于代码部分的修改,可以使用MATLAB语言按语言按照照S-Functions的格式来编写代码。的格式来编写代码。MATLAB提提供了一个模板文件,方便供了一个模板文件,方便S-Function的编写,该的编写,该模板文件位于模板文件位于MATLAB根目录根目录toolbox/Simulink/blocks下下 模板函数的代码如下:模板函数的代码如下:function sys,x0,str,ts=sfuntmpl(t,x,u,flag)switch flag,case 0,sys,x0,str,ts=mdlInitializeSizes;case 1,sys=mdl

44、Derivatives(t,x,u);case 2,sys=mdlUpdate(t,x,u);case 3,sys=mdlOutputs(t,x,u);case 4,sys=mdlGetTimeOfNextVarHit(t,x,u);case 9,sys=mdlTerminate(t,x,u);otherwise error(Unhandled flag=,num2str(flag);end电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院function sys,x0,str,ts=mdlInitializeSizessiz

45、es=simsizes;sizes.NumContStates =0;sizes.NumDiscStates =0;sizes.NumOutputs =0;sizes.NumInputs =0;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0 =;str=;ts =0 0;function sys=mdlDerivatives(t,x,u)sys=;function sys=mdlUpdate(t,x,u)sys=;function sys=mdlOutputs(t,x,u)sys=;function sy

46、s=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;sys=t+sampleTime;function sys=mdlTerminate(t,x,u)sys=;电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 M文件文件S-Functions可用的子函数说明如下:可用的子函数说明如下:(1)mdlInitializeSizes:定义:定义S-Function模块的模块的基本特性,包括采样时间、连续或者离散状态的基本特性,包括采样时间、连续或者离散状态的初始条件和初始条件和sizes数组。数

47、组。(2)mdlDerivatives:计算连续状态变量的微分:计算连续状态变量的微分方程。方程。(3)mdlUpdate:更新离散状态、采样时间和主:更新离散状态、采样时间和主时间同步的要求。时间同步的要求。(4)mdlOutputs:计算:计算S-Function的输出。的输出。(5)mdlGetTimeOfNextVarHit:计算下一个采样计算下一个采样时间点的绝对时间。时间点的绝对时间。(6)mdlTerminate:结束仿真任务。:结束仿真任务。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 S-functio

48、n默认的默认的4个输入参数个输入参数t、x、u和和flag,他们的次序不能变动,各自代表的意义是:他们的次序不能变动,各自代表的意义是:t:表示当前仿真时刻,是采用绝对计量的时间:表示当前仿真时刻,是采用绝对计量的时间值,是从仿真开始模型运行时间的计量值。值,是从仿真开始模型运行时间的计量值。x:模块的状态向量,包括连续状态向量和离散:模块的状态向量,包括连续状态向量和离散状态向量。状态向量。u:模块的输入向量。:模块的输入向量。flag:执行不同操作的标记变量。:执行不同操作的标记变量。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与

49、电气工程学院 S-Function默认的默认的4个返回参数为个返回参数为sys、x0、str和和ts,他们的次序也不能改变,代表的意义为:,他们的次序也不能改变,代表的意义为:sys:通用返回函数;:通用返回函数;x0:初始状态值,当:初始状态值,当flag的值为的值为0时才有效;时才有效;str:没有明确定义,是:没有明确定义,是Math Works为将来应用为将来应用所作的保留。所作的保留。ts:一个:一个m2矩阵,它的两列分别表示采样时间矩阵,它的两列分别表示采样时间间隔和偏移。间隔和偏移。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪

50、器科学与电气工程学院8 使用命令操作对系统进行仿真使用命令操作对系统进行仿真 支持命令窗口运行仿真的函数有支持命令窗口运行仿真的函数有4个,即个,即sim、simset、simget和和set_param。(1)sim函数函数sim函数的作用是运行一个由函数的作用是运行一个由Simulink建立的模型,建立的模型,其调用格式为:其调用格式为:t,x,y =sim(modname,timespan,options,ut);电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院 其中其中,t为返回的仿真时间向量;为返回的仿真时间向量;

51、x为返回的状态矩阵;为返回的状态矩阵;y为返回的输出矩阵;为返回的输出矩阵;modname为系统为系统Simulink模型文件名;模型文件名;timespan为仿真时间;为仿真时间;options为仿真参数选择项,由为仿真参数选择项,由simset设置;设置;ut为选择外部产生输入为选择外部产生输入,ut=T,u1,u2,un。说明说明上述参数中,若省略上述参数中,若省略timespan,options,ut则由框图模型的则由框图模型的对话框对话框Simulation Parameters设置仿真参数。设置仿真参数。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器

52、科学与电气工程学院仪器科学与电气工程学院(2)simset函数函数 simset 函数用来为函数用来为sim函数函数建立或编辑仿真参数或规定算建立或编辑仿真参数或规定算法,并把设置结果保存在一个结构变量中。它有如下法,并把设置结果保存在一个结构变量中。它有如下4种种用法:用法:(a)options=simset(property,value,):把:把property代代表的参数赋值为表的参数赋值为value,结果保存在结构,结果保存在结构options中。中。(b)options=simset(old_opstruct,property,value,):把已有的结构把已有的结构old_ops

53、truct(由由simset产生产生)中的参数中的参数property重新赋值为重新赋值为value,结果保存在新结构,结果保存在新结构options中。中。(c)options=simset(old_opstruct,new_opstruct):用:用结构结构new_opstruct的值替代已经存在的结构的值替代已经存在的结构old_opstruct的值。的值。(d)simset:显示所有的参数名和它们可能的值。:显示所有的参数名和它们可能的值。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院(3)simget函数函数 s

54、imget函数用来获得模型的参数设置值。如果参数值是函数用来获得模型的参数设置值。如果参数值是用一个变量名定义的,用一个变量名定义的,simget返回的也是该变量的值而返回的也是该变量的值而不是变量名。如果该变量在工作空间中不存在不是变量名。如果该变量在工作空间中不存在(即变量未即变量未被赋值被赋值),则,则Simulink给出一个出错信息。该函数有如下给出一个出错信息。该函数有如下3种用法:种用法:(a)struct=simget(modname):返回指定模型:返回指定模型model的的参数设置的参数设置的options结构。结构。(b)value=simget(modname,prope

55、rty):返回指定模型:返回指定模型model的参数的参数property的值。的值。(c)value=simget(options,property):获取:获取options结构结构中的参数中的参数property的值。如果在该结构中未指定该参数,的值。如果在该结构中未指定该参数,则返回一个空阵。则返回一个空阵。用户只需输入能够唯一识别它的那个参数名称的前几个字用户只需输入能够唯一识别它的那个参数名称的前几个字符即可,对参数名称中字母的大小写不作区别。符即可,对参数名称中字母的大小写不作区别。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪

56、器科学与电气工程学院(4)set_param函数函数 set_param函数的功能很多,这里只介绍如何用函数的功能很多,这里只介绍如何用set_param函数设置函数设置Simulink仿真参数以及如何开始、暂仿真参数以及如何开始、暂停、终止仿真进程或者更新显示一个仿真模型。停、终止仿真进程或者更新显示一个仿真模型。(a)设置仿真参数设置仿真参数 调用格式为调用格式为:set_param(modname,property,value,)其中其中modname为设置的模型名,为设置的模型名,property为要设置的参为要设置的参数,数,value是设置值。这里设置的参数可以有很多种,而是设置值

57、。这里设置的参数可以有很多种,而且和用且和用simset设置的内容不尽相同,相关参数的设置可以设置的内容不尽相同,相关参数的设置可以参考有关资料。参考有关资料。(b)控制仿真进程控制仿真进程 调用格式为调用格式为:set_param(modname,SimulationCommand,cmd)其中其中mode为仿真模型名称,而为仿真模型名称,而cmd是控制仿真进程的各是控制仿真进程的各个命令,包括个命令,包括start、stop、pause、comtinue或或update。在使用这两个函数的时候,需要注意必须先把模型打开。在使用这两个函数的时候,需要注意必须先把模型打开。电机控制课程设计:电

58、机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院第第7 7章章 Simulink的应用的应用 7.1 Simulink工作平台的启动工作平台的启动 7.2 Simulink仿真原理仿真原理7.3 Simulink模块库模块库7.4 仿真模型的建立和模块参数及属性的设置仿真模型的建立和模块参数及属性的设置7.5 其他应用模块集及其他应用模块集及Simulink扩展库扩展库电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院7.1 Simulink工作平台工作平台pipipxx启动S

59、imulink,通常有两种方法:(1)在MATLAB命令窗口中直接输入Simulink命令;(2)在MATLAB工具栏上单击Simulink按钮,如图7.1所示。图7.1 启动Simulink 这样就可打开了Simulink的Simulink Library Brower(库模块浏览器),如图7.2所示。在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口,如图7.3所示。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电

60、气工程学院图7.2库模块浏览器 图7.3 新建的空白模块窗口 电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院7.2Simulink的仿真原理的仿真原理7.2.1 Simulink7.2.1 Simulink仿真模块仿真模块通常,Simulink仿真系统包括输入(Input)、状态(states)和输出(Output)三个部分。输入模块输入模块:即信号源模块,包括常数字信号源和用户自定义信号;状态模块状态模块:即被模拟的系统模块,是系统建模的核心和主要部分;输出模块输出模块:即信号显示模块,它能够以图形方式、文件格式进行显示

61、。注意注意:在设计一个模型时,必须先确定这三个部分的意,以及它们之间的联系;Simulink的仿真模型并非一定要完全包括这三个部分,它可以缺少其中一个或者两个;Simulink的状态模块可以是连续的、离散的,或者它们二者的结合。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院7.2.2 Simulink7.2.2 Simulink仿真过程仿真过程1初始化阶段初始化阶段 对模型的参数进行估计,得到它们实际计算的值。展开模型的各个层次;按照更新的次序对模型进行排序;确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入

62、端的信号;确定所有非显式的信号采样时间模块的采样时间;分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:按照秩序计算每个模块的积分;根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,以计算下一个采样点的状态矢量。在每一个时间步中,Simulink依次解决下列问题:按照秩序更新模块的输出;按照秩序更新模块的状态;检查模块连续状态的不连续点;计算下一个仿真时间步的时间。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程

63、学院7.3.1 7.3.1 连续模块库连续模块库(Continuous)(Continuous)在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。7.3 Simulink模块库 在库模块浏览器中单击Simulink前面的“+”号,就能够看到Simulink的模块库,如图7.2所示。电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院DuCxyBuAxx4.传递函数模块传递函数模块(Transfer Fcn)功能:功能:用执行一个线性传递函数。5.零极点传递函数模块零极点传递函数模块(Zero-Pole

64、)功能:功能:用于建立一个预先指定的零点、极点,并用延迟算子s表示的连续。6存储器模块存储器模块(Memory)功能:功能:保持输出前一步的输入值。7传输延迟模块传输延迟模块(Transport Delay)功能:功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。8可变传输延迟模块可变传输延迟模块(Variable Transport Delay)功能:功能:用于将输入端的信号进行可变时间的延迟。1.积分模块积分模块(Integrator):功能:功能:对输入变量进行积分。说明:模块的输入可以是标量,也可以是矢量;输入信号的维数必须与输入信号保持一致。2.微分模块微分模块(Deriva

65、tive)功能:功能:通过计算差分u/t近似计算输入变量的微分。3.线性状态空间模块线性状态空间模块(State-Space)功能:功能:用于实现以下数学方程描述的系统:电机控制课程设计:电机控制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院7.3.2 7.3.2 离散模块库离散模块库(Discrete)(Discrete)离散模块库(Discrete)主要用于建立离散采样的系统模型,包括的主要模块,如图所示。1零阶保持器模块零阶保持器模块(Zero-Order-Hold)功能:功能:在一个步长内将输出的值保持在同一个值上。电机控制课程设计:电机控

66、制课程设计:MATLAB/Simulink设计设计仪器科学与电气工程学院仪器科学与电气工程学院2单位延迟模块单位延迟模块(Unit Delay)功能:功能:将输入信号作单位延迟,并且保持一个采样周期相当于时间算子z-1。3离散时间积分模块离散时间积分模块(Discrete Time Integrator)功能:功能:在构造完全离散的系统时,代替连续积分的功能。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。4离散状态空间模块离散状态空间模块(Discrete State Space)功能:功能:用于实现如下数学方程描述的系统:)()()()()()1(nTDunTCxnTynTBunTAxTnx5离散滤波器模块离散滤波器模块(Discrete Filter)功能:功能:用于实现无限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。6离散传递函数模块离散传递函数模块(Discrete Transfer Fcn)功能:功能:用于执行一个离散传递函数。7离散零极点传递函数模块离散零极点传递函数模块(Discrete Zero-Pole)功能:功能:用于建立一个预先指定的零点、极点,并

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!