simulinkmatlab仿真环境教程精.docx
- 文档编号:10189439
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:36
- 大小:417.20KB
simulinkmatlab仿真环境教程精.docx
《simulinkmatlab仿真环境教程精.docx》由会员分享,可在线阅读,更多相关《simulinkmatlab仿真环境教程精.docx(36页珍藏版)》请在冰豆网上搜索。
simulinkmatlab仿真环境教程精
Simulink是面向框图的仿真软件。
演示一个Simulink的简单程序
【例1.1】创建一个正弦信号的仿真模型。
步骤如下:
(1在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser窗口,如图1.1所示。
图7.1Simulink界面
(2单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。
(3在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source,或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。
(4用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号,将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图1.2所示。
(5用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器拖放到“untitled”窗口中。
(6在“untitled”窗口中,用鼠标指向“SineWave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。
如图1.3所示。
(7开始仿真,单击“untitled
”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。
双击“Scope”模块出现示波器
显示屏,可以看到黄色的正弦波形。
如图1.4所示。
图7.2Simulink界面
(8
保存模型,单击工具栏的图标,将该模型保存为“Ex0701.mdl”文件。
1.2Simulink的文件操作和模型窗口
1.2.1Simulink的文件操作
1.新建文件
新建仿真模型文件有几种操作:
▪在MATLAB的命令窗口选择菜单“File”→“New”→“Model”。
▪在图1.1的Simulink模块库浏览器窗口选择菜单“File”→“New”→“Model”
或者单击工具栏的
图标。
▪
在图1.3的Simulink模型窗口选择菜单“File”→“New”→“Model”
或者单击工具栏的图标。
2.打开文件打开仿真模型文件有几种操作:
▪
在MATLAB的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路径中,例如输入“Ex0701”。
▪
在MATLAB的命令窗口选择菜单“File”→Open…
”或者单击工具栏的图标打开文件。
▪在图1.1的Simulink模块库浏览器窗口选择菜单“File”→“Open…
”或者单击工具栏的
图标打开“.mdl”文件。
图7.3Simulink模型窗口
图7.4示波器窗口
▪在图1.3的Simulink模型窗口中选择菜单“File”→“Open…
”或者单击工具栏的图标打开文件。
1.2.2Simulink的模型窗口
模型窗口由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。
1.状态栏
2.工具栏
模型窗口工具栏如图1.6所示。
3.菜单
Simulink的模型窗口的常用菜单如表1.1所示。
图7.5双窗口模型窗口
表1.1模型窗口常用菜单表
1.3模型的创建
1.3.1模块的操作
1.对象的选定
▪选定单个对象
选定对象只要在对象上单击鼠标,被选定的对象的四角处会出现小黑块编辑框。
▪选定多个对象
如果选定多个对象,可以按下Shift键,然后再单击所需选定的模块;或者用鼠标拉出矩形虚线框,将所有待选模块框在其中,则矩形框中所有的对象均被选中,如图1.7所示。
图7.7选定多个对象
▪选定所有对象
如果要选定所有对象,可以选择菜单“Edit”→“Selectall”。
2.模块的复制
(1不同模型窗口(包括模型库窗口之间的模块复制
▪选定模块,用鼠标将其拖到另一模型窗口。
▪选定模块,使用菜单的“Copy”和“Paste”命令。
▪选定模块,使用工具栏的“Copy”和“Paste”按钮。
(2在同一模型窗口内的复制模块(如图1.8所示
▪选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。
▪选定模块,按住Ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。
▪使用菜单和工具栏中的“Copy”和“Paste”按钮。
图7.8在同一模型窗口复制对象
3.模块的移动
▪在同一模型窗口移动模块
选定需要移动模块,用鼠标将模块拖到合适的地方。
▪在不同模型窗之间移动模块
在不同模型窗之间移动模块,在用鼠标移动的同时按下Shift键。
当模块移动时,与之相连的连线也随之移动。
4.模块的删除
要删除模块,应选定待删除模块,按Delete键;或者用菜单“Edit”→“Clear”或“Cut”;或者用工具栏的“Cut”按钮。
5.改变模块大小
选定需要改变大小的模块,出现小黑块编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。
6.模块的翻转
▪模块翻转180度
选定模块,选择菜单“Format”→“FlipBlock”可以将模块旋转180度,如同1.9中间为翻转180度示波器模块。
▪模块翻转90度
选定模块,选择菜单“Format”→“RotateBlock”可以将模块旋转90度,如图1.9右边示波器所示。
如果一次翻转不能达到要求,可以多次翻转来实现。
图7.9翻转模块
7.模块名的编辑
▪修改模块名
单击模块下面或旁边的模块名,出现虚线编辑框就可对模块名进行修改。
▪模块名字体设置
选定模块,选择菜单“Format”→“Font”,打开字体对话框设置字体。
▪模块名的显示和隐藏
选定模块,选择菜单“Format”→“Hide/Showname”,可以隐藏或显示模块名。
▪模块名的翻转
选定模块,选择菜单“Format”→“Flipname”,可以翻转模块名。
1.3.2信号线的操作
1.模块间连线
先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标键并拖动,直到另一模块的输入端。
2.信号线的分支和折曲
(1分支的产生
将光标指向信号线的分支点上,按鼠标右键,光标变为十字符,拖动鼠标直到分支线的终点,释放鼠标;或者按住Ctrl键,同时按下鼠标左键拖动鼠标到分支线的终点,如图1.10所示。
图7.10信号线的分支
(2信号线的折线
选中已存在的信号线,将光标指向折点处,按住Shift键,同时按下鼠标左键,当光标变成小圆圈时,用鼠标拖动小圆圈将折点拉至合适处,释放鼠标,如图1.11所示。
图7.11信号线的折线
3.信号线文本注释(label
▪添加文本注释
双击需要添加文本注释的信号线,则出现一个空的文字填写框,在其中输入文本。
▪修改文本注释
单击需要修改的文本注释,出现虚线编辑框即可修改文本。
▪移动文本注释
单击标识,出现编辑框后,就可以移动编辑框。
▪复制文本注释
单击需要复制的文本注释,按下Ctrl键同时移动文本注释,或者用菜单和工具栏的复制操作。
4.在信号线中插入模块
如果模块只有一个输入端口和一个输出端口,则该模块可以直接被插入到一条信号线中。
1.3.3给模型添加文本注释
(1添加模型的文本注释
在需要当作注释区的中心位置,双击鼠标左键,就会出现编辑框,在编辑框中就可以输入文字注释。
(2注释的移动
在注释文字处单击鼠标左键,当出现文本编辑框后,用鼠标就可以拖动该文本编辑框。
1.4Simulink的基本模块
1.4.1基本模块
Simulink的基本模块包括9个子模块库。
1.输入信号源模块库(Sources
输入信号源模块是用来向模型提供输入信号。
常用的输入信号源模块源如表1.2所示。
表1.2常用的输入信号源模块表
2.接收模块库(Sinks
接收模块是用来接收模块信号的,常用的接收模块如表1.3所示。
表1.3常用的接收模块表
3.连续系统模块库(Continuous
连续系统模块是构成连续系统的环节,常用的连续系统模块如表1.4所示。
表1.4常用的连续系统模块表
4.离散系统模块库(Discrete
离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表1.5所示。
表1.5常用的离散系统模块表
1.4.2常用模块的参数和属性设置
1.模块参数设置
(1正弦信号源(SineWave双击正弦信号源模块,会出现如图1.13所示的参数设置对话框。
图1.13的上部分为参数说明,仔细阅读可以帮助用户设置参数。
Sinetype为正弦类型,包括Time-based和Sample-based;Amplitude为正弦幅值;Bias为幅值偏移值;Frequency为正弦频率;Phrase为初始相角;Sampletime
为采样时间。
(2阶跃信号源(Step
阶跃信号模块是输入信号源,其模块参数对话框如图1.14所示。
其中:
Steptime为阶跃信号的变化时刻,initialvalue为初始值,Finalvalue为终止值,Sampletime为采样时
间。
(3从工作空间获取数据(Fromworkspace
从工作空间获取数据模块的输入信号源为工作空间。
【例1.2】在工作空间计算变量t和y,将其运算的结果作为系统的输入。
t=0:
0.1:
10;y=sin(t;t=t';
y=y';
然后将“FromWorkspace”模块的参数设置对话框打开,如图1.15(a所示,在“Data”栏填写“[t,y]”,单击“OK”按钮完成。
则在模型窗口中该模块就显示为图1.15(b。
用示波器作为接收模块,可以查看输出波形为正弦波。
图7.14阶跃信号模块的参数
图7.13模块的参数设置
“Data”的输入有几种,可以是矩阵、包含时间数据的结构数组。
“FromWorkspace”模块的接收模块必须有输入端口,“Data”矩阵的列数应等于输入端口的个数+1,第一列自动当成时间向量,后面几列依次对应各端口。
t=0:
0.1:
2*pi;y=sin(t;y1=[t;y];
saveEx0702y1
%保存在“Ex0702.mat”文件中
(4从文件获取数据(Fromfile
从文件获取数据模块是指从mat数据文件中获取数据为系统的输入。
y1=[t;y];
saveEx0702y1
%保存在“Ex0702.mat”文
件中
然后将“FromFile”模块的参数设置对话框打开,如图1.16所示,在“Filename”栏填写“Ex0702.mat”,单击“OK”按钮完成。
用示波器作为接收模块,可以查看输出波形。
(5传递函数(Transferfunction
传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图1.17所示。
图7.15(a模块参数设置(b从工作空间获取数据模块
图7.16FromFile参数设置
图7.17传递函数模块参数设置图7.18
在上图中设置“Denominator”为“[11.4141]”,则在模型窗口中显示为如图1.18所示。
(6示波器(Scope
示波器模块是用来接收输入信号并实时显示信号波形曲线,示波器窗口的工具栏可以调整显示的波形,显示正弦信号的示波器如图1.19所示。
图7.19示波器窗口
2.模块属性设置
每个模块的属性对话框的内容都相同,如图1.22所示。
(1说明(Description
对模块在模型中用法的注释。
(2优先级(Priority
规定该模块在模型中相对于其它模块执行的优先顺序。
(3标记(Tag
用户为模块添加的文本格式标记。
(4调用函数(Openfunction
当用户双击该模块时调用的MATLAB函数。
(5属性格式字符串(Attributesformatstring
指定在该模块的图标下显示模块的哪个参数和
格式。
1.5复杂系统的仿真与分析
Simulink的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。
图7.22模块的属性设置
图7.23模块的属性格式字符串
1.5.1仿真的设置
在模型窗口选择菜单“Simulation”“Simulationparameters…”,则会打开参数设置对话框,如图1.24所示。
图7.24Solver参数设置
1.Solver页的参数设置
(1仿真的起始和结束时间
仿真的起始时间(Starttime
仿真的结束时间(Stoptime
(2仿真步长
仿真的过程一般是求解微分方程组,“Solveoptions”的内容是针对解微分方程组的设置。
(3仿真解法
Type的右边:
设置仿真解法的具体算法类型。
(4输出模式
根据需要选择输出模式(Outputoptions,可以达到不同的输出效果。
2.WorkspaceI/O(工作空间输入输出页的设置
如图1.25所示,可以设置Simulink从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。
(1从工作空间装载数据(Loadfromworkspace(2保存数据到工作空间(Savetoworkspace▪
Time栏勾选Time栏后,模型将把(时间变量以在右边空白栏填写的变量名(默认名为tout存放于工作空间。
▪
States栏勾选States栏后,模型将把其状态变量在右边空白栏填写的变量名(默认名为xout存放于工作空间。
▪
Output栏如果模型窗口中使用输出模块“Out”,那么就必须勾选Output栏,并填写在工作空间中的输出数据变量名(默认名为yout。
▪Finalstate栏
Finalstate栏的勾选,将向工作空间以在右边空白栏填写的名称(默认名为xFinal,存放最终状态值。
(3变量存放选项(Saveoptions
Saveoptions必须与Savetoworkspace配合使用。
1.5.2连续系统仿真
【例1.3】建立二阶系统的仿真模型。
方法一:
输入信号源使用阶跃信号,系统使用开环传递函数
s
6.0s12,接受模块使用示波器来构成模型。
(1在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“TransferFcn”模块,在“MathOperations”模块库选择“Sum”模块,在“Sinks”模块库选择“Scope”。
图7.25WorkspaceI/O参数设置
(2连接各模块,从信号线引出分支点,构成闭环系统。
(3设置模块参数,打开“Sum”模块参数设置对话框,如图1.26所示。
将“Iconshape”设置为“rectangular”,将“Listofsigns”设置为“|+-”,其中“|”表示上面的入口为空。
“TransferFcn”模块的参数设置对话框中,将分母多项式“Denominator”设置为“[10.60]”。
将“Step”模块的参数设置对话框中,将“Steptime”修改为0。
(4添加信号线文本注释
双击信号线,出现编辑框后,就输入文本。
则模型如图1.27所示。
(5仿真并分析
单击工具栏的“Startsimulation”按钮,开始仿真,在示波器上就显示出阶跃响应。
在Simulink模型窗口,选择菜单“Simulation”——“Simulationparameters…”命令,在“Solver”页将“Stoptime”设置为15,然后单击“Startsimulation”按钮,示波器显示的就到15秒结束。
打开示波器的Y坐标设置对话框,将Y坐标的“Y-min”改为0,“Y-max”改为2,将“Title”设置为“二阶系统时域响应”,则示波器如图1.28所示。
图
7.27二阶系统模型
图7.26Sum参数设置
方法二:
(1系统使用积分模块(Integrator和零极点模块(zero-pole串联,反馈使用“MathOperations”模块库中的“Gain”模块构成反馈环的增益为-1。
(2连接模块,由于“Gain”模块在反馈环中,因此需要使用“FlipBlock”翻转该模块。
(3设置模块参数,将“zero-pole”模块参数对话框中的“Zeros”栏改为“[]”,将“Poles”栏改为[-0.6]。
将“Gain”模块的“Gain”参数改为-1。
模型如图1.29所示。
如果将示波器换成“Sinks”模块库中的“Out”模块;然后在仿真参数设置对话框的“WorkspaceI/O”页(工作空间输入输出,将“Time”和“Output”栏勾选,并分别设置保存在工作空间的时间量和输出变量为“tout”和“yout”。
仿真后在工作空间就可以使用这两个变量来绘制曲线,如图1.30所示:
plot(tout,yout图7.28示波器显示
图7.29二阶系统模型
1.5.3离散系统仿真
【例1.4】控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环,反馈环引入了零阶保持器,输入为阶跃信号。
创建模型并仿真:
(1选择一个“Step”模块,选择两个“TransferFcn”模块,选择两个“Sum”模块,选择两个“Scope”模块,选择一个“Gain”模块,在“Discrete”模块库选择一个“DiscreteFilter”和一个“Zero-OrderHold”模块。
(2连接模块,将反馈环的“Gain”模块和“Zero-OrderHold”模块翻转。
(3设置参数,“DiscreteFilter”和“Zero-OrderHold”模块的“Sampletime”都设置为0.1s。
(4添加文本注释,系统框图如图1.31所示。
图7.30plot绘制的时域响应波形
图7.31离散系统框图
(5设置颜色,Simulink为帮助用户方便地跟踪不同采样频率的运作范围和信号流向,可以采用不同的颜色表示不同的采样频率,选择菜单“Format”→“Sampletimecolor”,就可以看到不同采样频率的模块颜色不同。
(6开始仿真,在Simulink模型窗口,选择菜单“Simulation”→“Simulationparameters…”,将“Maxstepsize”设置为0.05s,则两个示波器“Scope”和“Scope1”的显示如图1.32所示。
可以看出当T=Tk=0.1时系统的输出响应较平稳。
(7修改参数,将“DiscreteFilter”模块的“Sampletime”设置为0.6s,“Zero-OrderHold”模块的“Sampletime”不变;选择菜单“Edit”→“Updatediagram”命令修改颜色,就可以看到“DiscreteFilter”模块的颜色变化了;然后开始仿真,则示波器显示如图1.33所示。
可以看出当T=0.6而
Tk=0.1时,系统出现振荡。
(8修改参数,将“DiscreteFilter”和“Zero-OrderHold”模块的“Sampletime”都设置为0.6s,更新框图颜色,开始仿真,则示波器显示如图1.34所示。
图7.32T=Tk=0.1(ad(k示波器显示
(by(t示波器显示
图7.33T=0.6Tk=0.1(ad(k示波器显示(by(t示波器显示
当T=Tk=0.6时,系统出现强烈的振荡。
1.5.4仿真结构参数化
当系统参数需要经常改变或由函数得出时,可以使用变量来作为模块的参数。
【例1.5】将【例1.4】中的模块结构参数用变量表示,结构图如图1.35所示。
将参数设置放在Ex0705_1.m文件中:
%Ex0705_1参数设置
T=0.1;
%控制环节采样时间Tk=0.6;
%零阶保持器采样时间k=0.03;%Gain增益
图
7.34T=0.6Tk=0.1(ad(k示波器显示
(by(t示波器显示
图7.35离散系统框图
zt1=1.44;zt2=-1.26;zt3=1;zt4=-1;
tf11=6.7;tf12=0.1;tf13=1;
tf21=1;tf22=3;tf23=1
在MATLAB工作空间运行该文件:
Ex0705_1
1.6子系统与封装
1.6.1建立子系统
子系统类似于编程语言中的子函数。
建立子系统有两种方法:
在模型中新建子系统和在已有的子系统基础上建立。
1.在已建立的模型中新建子系统
【例1.6】打开【例1.4】建立的模型,将控制对象中的第一个连续环节中的反馈环建立为一个子系统。
在模型窗口中,将控制对象中的第一个连续环节的反馈环用鼠标拖出的虚线框框住,选择菜单“Edit”“Createsubsystem”,则系统如图1.36所示。
双击子系统,则会出现“Subsystem”模型窗口,如图1.37所示。
可以看到子系统模型除了用鼠标框住的两个环节,还自动添加了一个输入模块“In1”和一个输出模块“Out1”。
2.在已有的子系统基础上建立
【例1.7】在【例1.6】的基础上建立新子系统,将【例1.6】模型的控制对象中的第一个对象环节整个作为一个子系统。
将图1.36中的所有对象都复制到新的空白模型窗口中,双击打开子系统“Subsystem”,则出现如图1.37所示的子系统模型窗口,添加模型构成反馈环形成闭环系统,如图1.38所示。
图7.36
子系统建立
然后将系统模型修改为如图1.39所示的系统。
创建的子系统可以打开和修改,但不能再解除子系统设置。
1.6.2条件执行子系统
1.使能子系统
(EnabledSubsystem图7.39包含子系统的模型
图7.38子系统模块窗口
图7.37子系统模型窗口
【例1.8】建立一个用使能子系统控制正弦信号为半波整流信号的模型。
模型由正弦信号“Sinewave”为输入信号源,示波器“Scope”为接收模块,使能子系统“EnabledSubsys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- simulinkmatlab 仿真 环境 教程