实用MATLAB教程第七章.docx

上传人:b****5 文档编号:3441316 上传时间:2022-11-23 格式:DOCX 页数:46 大小:1.53MB
下载 相关 举报
实用MATLAB教程第七章.docx_第1页
第1页 / 共46页
实用MATLAB教程第七章.docx_第2页
第2页 / 共46页
实用MATLAB教程第七章.docx_第3页
第3页 / 共46页
实用MATLAB教程第七章.docx_第4页
第4页 / 共46页
实用MATLAB教程第七章.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

实用MATLAB教程第七章.docx

《实用MATLAB教程第七章.docx》由会员分享,可在线阅读,更多相关《实用MATLAB教程第七章.docx(46页珍藏版)》请在冰豆网上搜索。

实用MATLAB教程第七章.docx

实用MATLAB教程第七章

1.第7章Simulink仿真环境

Simulink是MATALB的仿真工具箱,MATLAB6.5版使用的是Simulink5.0,可以用来对动态系统进行建模、仿真和分析,支持连续的、离散的以及线性的和非线性的系统,也支持具有多种采样速率的系统。

Simulink是面向框图的仿真软件,具有以下功能:

(1)用绘制方框图代替编写程序,结构和流程清晰。

(2)智能化地建立和运行仿真,仿真精细、贴近实际。

自动建立各环节的方程,自动地在给定精度要求下以最快速度进行系统仿真。

(3)适应面广。

包括线性、非线性系统;连续、离散及混合系统;单任务、多任务离散事件系统。

7.1演示一个Simulink的简单程序

演示一个Simulink的简单模型,可以看出建立模型的步骤。

【例7.1】创建一个正弦信号的仿真模型。

步骤如下:

(1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的

图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

上面的窗口界面分为左右两列,左侧以树状结构列出的是模块库和工具箱,右侧列出的是左侧所选模块的子模块库。

当前显示的是Simulink模块库。

(2)单击工具栏上的

图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。

(3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。

(4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5)用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。

(6)在“untitled”窗口中,用鼠标指向“SineWave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。

如图7.3所示。

(7)开始仿真,单击“untitled”模型窗口中“开始仿真”图标

,或者选择菜单“Simulink”——“Start”,则仿真开始。

双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。

如图7.4所示。

(8)保存模型,单击工具栏的

图标,将该模型保存为“Ex0701.mdl”文件。

一个简单的仿真模型就建立了,可以看出Simulink提供了友好的图形用户界面,模型由模块框图连接来表示,通过简单的鼠标单击和拖动就可以建立模型,模型文件的扩展名为“.mdl”。

在本例中出现了几个独立的窗口:

图7.1的模块库浏览器窗口、图7.3的模型窗口和图7.4的示波器窗口。

在MATLAB的帮助导航/浏览器窗口的Demos选项卡中,可以查看各种复杂的仿真例题演示。

7.2Simulink的文件操作和模型窗口

7.2.1Simulink的文件操作

Simulink模型的文件为MDL模型文件,其扩展名为“.mdl”,是以ASCⅡ码形式存储的。

1.新建文件

新建仿真模型文件有几种操作:

▪在MATLAB的命令窗口选择菜单“File”——“New”——“Model”。

▪在图7.1的Simulink模块库浏览器窗口选择菜单“File”——“New”——“Model”,或者单击工具栏的

图标。

▪在图7.3的Simulink模型窗口选择菜单“File”——“New”——“Model”,或者单击工具栏的

图标。

2.打开文件

打开仿真模型文件有几种操作:

▪在MATLAB的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路径中,例如输入“Ex0701”。

▪在MATLAB的命令窗口选择菜单“File”——Open…”或者单击工具栏的

图标打开文件。

▪在图7.1的Simulink模块库浏览器窗口选择菜单“File”——“Open…”或者单击工具栏的

图标打开“.mdl”文件。

▪在图7.3的Simulink模型窗口中选择菜单“File”——“Open…”或者单击工具栏的

图标打开文件。

7.2.2Simulink的模型窗口

在图7.3所示的Simulink模型窗口是单窗口形式,可以单击工具栏的

按钮(Togglemodelbrowser),切换为双窗口形式,如图7.5所示。

模型窗口由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。

1.状态栏

状态栏用来显示仿真的状态。

当鼠标指向菜单项和工具栏时,在状态栏显示其定义;“Ready”表示模型已准备就绪而等待仿真命令;“100%”表示编辑窗模型的显示比例;“ode45”表示仿真所选用的积分算法。

在仿真过程中,状态栏还会出现动态信息。

2.工具栏

模型窗口工具栏如图7.6所示。

3.菜单

Simulink的模型窗口的常用菜单如表7.1所示。

表7.1模型窗口常用菜单表

菜单名

菜单项

功能

File

New——Model

新建模型

Modelproperties

模型属性

Preferences

SIMULINK界面的默认设置选项

Print…

打印模型

Close

关闭当前Simulink窗口

ExitMATLAB

退出MATLAB系统

Edit

Createsubsystem

创建子系统

Masksubsystem…

封装子系统

Lookundermask

查看封装子系统的内部结构

Updatediagram

更新模型框图的外观

View

Gotoparent

显示当前系统的父系统

Modelbrowseroptions

模型浏览器设置

Blockdatatipsoptions

鼠标位于模块上方时显示模块内部数据

Librarybrowser

显示库浏览器

Fitsystemtoview

自动选择最合适的显示比例

Normal

以正常比例(100%)显示模型

Simulation

Start/Stop

启动/停止仿真

Pause/Continue

暂停/继续仿真

SimulationParameters…

设置仿真参数

Normal

普通Simulink模型

Accelerator

产生加速Simulink模型

Format

Textalignment

标注文字对齐工具

Filpname

翻转模块名

Show/Hidename

显示/隐藏模块名

Filpblock

翻转模块

RotateBlock

旋转模块

Librarylinkdisplay

显示库链接

Show/Hidedropshadow

显示/隐藏阴影效果

Sampletimecolors

设置不同的采样时间序列的颜色

Widenonscalarlines

粗线表示多信号构成的向量信号线

Signaldimensions

注明向量信号线的信号数

Portdatatypes

标明端口数据的类型

Storageclass

显示存储类型

Tools

Dataexplorer…

数据浏览器

Simulinkdebugger…

Simulink调试器

Dataclassdesigner

用户定义数据类型设计器

LinearAnalysis

线性化分析工具

7.3模型的创建

Simulink的模型是由模块和信号线连接构成的方框图,创建模型就是绘制方框图,用户可以方便地通过鼠标的抓取和拖放等操作来完成。

7.3.1模块的操作

1.对象的选定

▪选定单个对象

选定对象只要在对象上单击鼠标,被选定的对象的四角处会出现小黑块编辑框。

▪选定多个对象

如果选定多个对象,可以按下Shift键,然后再单击所需选定的模块;或者用鼠标拉出矩形虚线框,将所有待选模块框在其中,则矩形框中所有的对象均被选中,如图7.7所示。

选定所有对象

如果要选定所有对象,可以选择菜单“Edit”——“Selectall”。

2.模块的复制

用户在建立模型时,经常需要从Simulink库或其它模型窗口中复制模块,也经常在同一模型中复制模块。

(1)不同模型窗口(包括模型库窗口)之间的模块复制

▪选定模块,用鼠标将其拖到另一模型窗口。

▪选定模块,使用菜单的“Copy”和“Paste”命令。

▪选定模块,使用工具栏的“Copy”和“Paste”按钮。

(2)在同一模型窗口内的复制模块(如图7.8所示)

▪选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。

▪选定模块,按住Ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。

使用菜单和工具栏中的“Copy”和“Paste”按钮。

复制的模块和源模块同名,并继承所有的参数值;在同一个模型窗口中复制的相同模块,模块名后面加数字区分,如图7.8所示原正弦信号名字为“SineWave”,复制的正弦信号名字为“SineWave1”;在不同窗口之间复制的所得模块和源模块完全同名。

3.模块的移动

▪在同一模型窗口移动模块

选定需要移动模块,用鼠标将模块拖到合适的地方。

▪在不同模型窗之间移动模块

在不同模型窗之间移动模块,在用鼠标移动的同时按下Shift键。

当模块移动时,与之相连的连线也随之移动。

4.模块的删除

要删除模块,应选定待删除模块,按Delete键;或者用菜单“Edit”——“Clear”或“Cut”;或者用工具栏的“Cut”按钮。

5.改变模块大小

选定需要改变大小的模块,出现小黑块编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。

6.模块的翻转

默认状态下的模块总是输入端在左,输出端在右,如图7.9所示左边为正常示波器模块,有时需要使输入输出端位置改变,则应翻转模块。

▪模块翻转180度

选定模块,选择菜单“Format”——“FlipBlock”可以将模块旋转180度,如同7.9中间为翻转180度示波器模块。

▪模块翻转90度

选定模块,选择菜单“Format”——“Rotate Block”可以将模块旋转90度,如图7.9右边示波器所示。

如果一次翻转不能达到要求,可以多次翻转来实现。

7.模块名的编辑

▪修改模块名

单击模块下面或旁边的模块名,出现虚线编辑框就可对模块名进行修改。

▪模块名字体设置

选定模块,选择菜单“Format”——“Font”,打开字体对话框设置字体。

▪模块名的显示和隐藏

选定模块,选择菜单“Format”——“Hide/Showname”,可以隐藏或显示模块名。

▪模块名的翻转

选定模块,选择菜单“Format”——“Flipname”,可以翻转模块名。

7.3.2信号线的操作

Simulink模型中模块间的连线称为信号线(Signallines),信号线是用来连接模块并传送信号的,将一个模块的输出与另一个模块的输入连接,也可以把其它信号线与模块连接。

在连接模块时,要注意模块的输入输出端和各模块间的信号流向。

1.模块间连线

将两个模块用信号线连接,先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标键并拖动,直到另一模块的输入端。

如果两个都是输入端或输出端则不能产生连线。

连线时不需要将光标精确地移到模块端口,只要在其附近,Simulink会自动连接端口的;模块间的信号线也会根据起点和终点的位置自动采用直线或者折线。

2.信号线的分支和折曲

(1)分支的产生

在模型框图中,一个信号往往需要分送到不同模块,需要绘制分支线,此时信号线中就会出现分支点。

将光标指向信号线的分支点上,按鼠标右键,光标变为十字符,拖动鼠标直到分支线的终点,释放鼠标;或者按住Ctrl键,同时按下鼠标左键拖动鼠标到分支线的终点,如图7.10所示。

(2)信号线的折线

在用信号线连接模型时,经常需要将信号线转向,产生折线。

选中已存在的信号线,将光标指向折点处,按住Shift键,同时按下鼠标左键,当光标变成小圆圈时,用鼠标拖动小圆圈将折点拉至合适处,释放鼠标,如图7.11所示。

在上图中有三个折点,当选中折线时,将光标移到折点处,当光标变为个小圆圈时,就可以用鼠标拖动折点来移动折点。

3.信号线文本注释(label)

▪添加文本注释

双击需要添加文本注释的信号线,则出现一个空的文字填写框,在其中输入文本。

▪修改文本注释

单击需要修改的文本注释,出现虚线编辑框即可修改文本。

▪移动文本注释

单击标识,出现编辑框后,就可以移动编辑框。

▪复制文本注释

单击需要复制的文本注释,按下Ctrl键同时移动文本注释,或者用菜单和工具栏的复制操作。

4.在信号线中插入模块

如果模块只有一个输入端口和一个输出端口,则该模块可以直接被插入到一条信号线中。

选定需要插入的模块,用鼠标拖动到希望插入的信号线上,释放鼠标。

7.3.3给模型添加文本注释

模型的文本注释用于提供模型的文本信息,有助于更好地理解模型。

(1)添加模型的文本注释

在需要当作注释区的中心位置,双击鼠标左键,就会出现编辑框,在编辑框中就可以输入文字注释。

(2)注释的移动

在注释文字处单击鼠标左键,当出现文本编辑框后,用鼠标就可以拖动该文本编辑框。

7.4Simulink的基本模块

Simulink模型通常由三部分组成:

输入信号源(Source)、系统(System)以及接收模块(Sink),如图7.12所示。

例如【例7.1】的简单模型就是由输入信号为正弦信号,接收模块为示波器组成的,省略了系统部分。

系统、输入信号源、接收模块可以直接从Simulink模块库中获得,也可以由用户库中的模块组建而成。

7.4.1基本模块

Simulink的基本模块包括9个子模块库,分别是:

连续系统(Continuous)、非连续系统(Discontinuities)、离散系统(Discrete)、查阅表(Look-upTables)、数学运算(MathOperations)、模型确认(ModelVerification)、宽模型功能(Model-wideUtilities)、信号线路安排(SignalsRouting)、接收模块(Sinks)、输入信号源(Sources)和端口与子系统(Ports&Subsystems)子模块库。

1.输入信号源模块库(Sources)

输入信号源模块是用来向模型提供输入信号,没有输入口,至少有一个输出口。

常用的输入信号源模块源如表7.2所示。

表7.2常用的输入信号源模块表

名称

模块形状

功能说明

Constant

恒值常数,可设置数值

Step

阶跃信号

Ramp

线性增加或减小的信号

SineWave

正弦波输出

SignalGenerator

信号发生器,可以产生正弦、方波、锯齿波和随机波信号

FromFile

从文件获取数据

FromWorkspace

从当前工作空间定义的矩阵读数据

Clock

仿真时钟,输出每个仿真步点的时间

In

输入模块

2.接收模块库(Sinks)

接收模块是用来接收模块信号的,常用的接收模块如表7.3所示。

表7.3常用的接收模块表

名称

模块形状

功能说明

Scope

示波器,显示实时信号

Display

实时数值显示

XYGraph

显示X-Y两个信号的关系图

ToFile

把数据保存为文件

ToWorkspace

把数据写成矩阵输出到工作空间

StopSimulation

输入不为零时终止仿真,常与关系模块配合使用

Out

输出模块

3.连续系统模块库(Continuous)

连续系统模块是构成连续系统的环节,常用的连续系统模块如表7.4所示。

表7.4常用的连续系统模块表

名称

模块形状

功能说明

Integrator

积分环节

Derivative

微分环节

State-Space

状态方程模型

TransferFcn

传递函数模型

Zero-Pole

零—极点增益模型

TransportDelay

把输入信号按给定的时间做延时

4.离散系统模块库(Discrete)

离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表7.5所示。

表7.5常用的离散系统模块表

名称

模块形状

功能说明

DiscreteTransferFcn

离散传递函数模型

DiscreteZero-Pole

离散零极点增益模型

DiscreteState-Space

离散状态方程模型

DiscreteFilter

离散滤波器

Zero-OrderHold

零阶保持器

First-OrderHold

一阶保持器

UnitDelay

采样保持,延迟一个周期

7.4.2常用模块的参数和属性设置

Simulink中几乎所有模块的参数和属性都允许用户设置,几乎每个模块都有参数和属性设置对话框。

1.模块参数设置

打开参数设置对话框可以通过双击模块或用鼠标右键打开快捷菜单,选择“BlockParameters”菜单项来打开。

(1)正弦信号源(SineWave)

双击正弦信号源模块,会出现如图7.13所示的参数设置对话框。

图7.13的上部分为参数说明,仔细阅读可以帮助用户设置参数。

Sinetype为正弦类型,包括Time-based和Sample-based;Amplitude为正弦幅值;Bias为幅值偏移值;Frequency为正弦频率;Phrase为初始相角;Sampletime为采样时间。

如图中频率设置为10,相位设置为30/180*pi,幅值偏移值设置为10,则产生幅值为1,频率为10,在9~11之间振动的正弦信号。

(2)阶跃信号源(Step)

阶跃信号模块是输入信号源,其模块参数对话框如图7.14所示。

其中:

Steptime为阶跃信号的变化时刻,initialvalue为初始值,Finalvalue为终止值,Sampletime为采样时间。

(3)从工作空间获取数据(Fromworkspace)

从工作空间获取数据模块的输入信号源为工作空间。

【例7.2】在工作空间计算变量t和y,将其运算的结果作为系统的输入。

>>t=0:

0.1:

10;

>>y=sin(t);

>>t=t';

>>y=y';

然后将“FromWorkspace”模块的参数设置对话框打开,如图7.15(a)所示,在“Data”栏填写“[t,y]”,单击“OK”按钮完成。

则在模型窗口中该模块就显示为图7.15(b)。

用示波器作为接收模块,可以查看输出波形为正弦波。

“Data”的输入有几种,可以是矩阵、包含时间数据的结构数组。

各种格式都有比较严格的要求。

“FromWorkspace”模块的接收模块必须有输入端口,“Data”矩阵的列数应等于输入端口的个数+1,第一列自动当成时间向量,后面几列依次对应各端口。

(4)从文件获取数据(Fromfile)

从文件获取数据模块是指从mat数据文件中获取数据为系统的输入。

将【例7.2】中的数据保存到.mat文件:

>>t=0:

0.1:

2*pi;

>>y=sin(t);

>>y1=[t;y];

>>saveEx0702y1%保存在“Ex0702.mat”文件中

然后将“FromFile”模块的参数设置对话框打开,如图7.16所示,在“Filename”栏填写“Ex0702.mat”,单击“OK”按钮完成。

用示波器作为接收模块,可以查看输出波形。

(5)传递函数(Transferfunction)

传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图7.17所示。

在参数设置对话框中,主要是设置分子多项式系数(Numerator)、分母多项式系数(Denominator)和绝对容许误差限(Absolutetolerance)。

“Numerator”可以是向量或矩阵,“Denominator”是向量,“Absolutetolerance”提供误差限,仿真默认的误差限在SimulinkParameters对话框中设置。

在上图中设置“Denominator”为“[11.4141]”,则在模型窗口中显示为如图7.18所示。

(6)示波器(Scope)

示波器模块是用来接收输入信号并实时显示信号波形曲线,还可以把数据送入工作空间,但该波形不能被直接打印或嵌入文件。

示波器窗口的工具栏可以调整显示的波形,显示正弦信号的示波器如图7.19所示。

示波器的参数设置:

▪示波器的Y坐标设置如图7.20(a)所示,通过用鼠标右键单击坐标框,在快捷菜单中选择“Axesproperties”,就会出现Y坐标设置对话框,在“Y-min”和“Y-max”中设置坐标上下限,在“Title”中设置坐标的文字标注。

▪示波器的

参数设置可以通过单击图7.19中工具栏的“Parameters”(打开参数对话框)按钮,则出现如图7.20(b)所示的参数对话框,在“Timerange”中设置显示信号范围,默认auto时为仿真时间范围,用户可以设置,如果信号实际持续时间超过该范围,则超出范围的信号在示波器中不显示;

▪“Sampling”包含两个下拉菜单:

“Decimation”表示频度,默认值为1,表示每隔1个数据点显示,“Sampletime”表示显示点的采样时间步长,默认值为0,表示连续信号,大于0表示离散信号的时间间隔,-1表示由输入信号决定。

在图7.20(b)中“Numberofaxes”栏表示示波器的输入端口个数,默认值为1,表示只有一个输入,如果设置为2则表示有两个输入端口,如图7.21(a)所示。

▪参数设置对话框中的“Datahistory”页如图7.21(b)所示,“Limitdatapointstolast”栏表示缓冲区接受数据的长度,默认为5000,不管示波器是否打开,只要仿真启动,缓冲区就接受信号数据,示波器的缓冲区可接受30个信号,数据长度为5000,如果数据长度超出,则最早的历史数据会被清除。

▪如果给“Savedatatoworkspace”选项打勾,则把示波器缓冲区中保存的数据以矩阵或结构数组的形式,送到工作空间,在下面两栏设置变量名(Variable)和数据类型(Format),可以在MATLAB命令窗口中查看该变量。

2.模块属性设置

每个模块的属性对话框的内容都相同,选中模块后单击鼠标右键打开快

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1