MATLAB实验SIMULINK仿真.docx

上传人:b****5 文档编号:14902093 上传时间:2023-06-28 格式:DOCX 页数:27 大小:640.78KB
下载 相关 举报
MATLAB实验SIMULINK仿真.docx_第1页
第1页 / 共27页
MATLAB实验SIMULINK仿真.docx_第2页
第2页 / 共27页
MATLAB实验SIMULINK仿真.docx_第3页
第3页 / 共27页
MATLAB实验SIMULINK仿真.docx_第4页
第4页 / 共27页
MATLAB实验SIMULINK仿真.docx_第5页
第5页 / 共27页
MATLAB实验SIMULINK仿真.docx_第6页
第6页 / 共27页
MATLAB实验SIMULINK仿真.docx_第7页
第7页 / 共27页
MATLAB实验SIMULINK仿真.docx_第8页
第8页 / 共27页
MATLAB实验SIMULINK仿真.docx_第9页
第9页 / 共27页
MATLAB实验SIMULINK仿真.docx_第10页
第10页 / 共27页
MATLAB实验SIMULINK仿真.docx_第11页
第11页 / 共27页
MATLAB实验SIMULINK仿真.docx_第12页
第12页 / 共27页
MATLAB实验SIMULINK仿真.docx_第13页
第13页 / 共27页
MATLAB实验SIMULINK仿真.docx_第14页
第14页 / 共27页
MATLAB实验SIMULINK仿真.docx_第15页
第15页 / 共27页
MATLAB实验SIMULINK仿真.docx_第16页
第16页 / 共27页
MATLAB实验SIMULINK仿真.docx_第17页
第17页 / 共27页
MATLAB实验SIMULINK仿真.docx_第18页
第18页 / 共27页
MATLAB实验SIMULINK仿真.docx_第19页
第19页 / 共27页
MATLAB实验SIMULINK仿真.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实验SIMULINK仿真.docx

《MATLAB实验SIMULINK仿真.docx》由会员分享,可在线阅读,更多相关《MATLAB实验SIMULINK仿真.docx(27页珍藏版)》请在冰点文库上搜索。

MATLAB实验SIMULINK仿真.docx

MATLAB实验SIMULINK仿真

实验九 SIMULINK仿真

一、实验目的

SIMULINK是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是MATLAB的一个附加组件,其特点是模块化操作、易学易用,而且能够使用MATLAB提供的丰富的仿真资源。

在SIMULINK环境中,用户不仅可以观察现实世界中非线性因素和各种随机因素对系统行为的影响,而且也可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。

因此SIMULINK已然成为目前控制工程界的通用软件,而且在许多其他的领域,如通信、信号处理、DSP、电力、金融、生物系统等,也获得重要应用。

对于信息类专业的学生来说,无论是学习专业课程或者相关课程设计还是在今后的工作中,掌握SIMULINK,就等于是有了一把利器。

本次实验的目的就是通过上机训练,掌握利用SIMULINK对一些工程技术问题(例如数字电路)进行建模、仿真和分析的基本方法。

二、实验预备知识

1.SIMULINK快速入门

在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。

1990年,MathWorks软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。

但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。

SIMULINK的出现,给控制系统分析与设计带来了福音。

顾名思义,该软件的名称表明了该系统的两个主要功能:

Simu(仿真)和Link(连接),即该软件可以利用系统提供的各种功能模块并通过信号线连接各个模块从而创建出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。

⏹SIMULINK的启动

首先启动MATLAB,然后在MATLAB主界面中单击上面的Simulink按钮

或在命令窗口中输入simulink命令。

命令执行之后将弹出simulink的模块库浏览器,如图1所示。

⏹SIMULINK的模块库

Simulink的模块库有两部分组成:

基本模块和各种应用工具箱。

✓系统提供的应用工具箱有:

CommunicationsBlockset(通信模块集)ControlSystemToolbox(控制系统工具箱)

Dials&GaugesBlockset(面板和仪表模块集)DSPBlockset(数字信号处理模块集)

Fixed-PointBlockset

(定点模块集)

FuzzyLogicToolbox

(模糊逻辑工具箱)

NCDBlockset

(非线性控制设计模块集)

NeuralNetworkBlockset

(神经网络模块集)

RFBlockset

(射频模块集)

PowerSystemBlockset

(电力系统模块集)

Real-TimeWindowsTarget

(实时窗口目标库)

Real-TimeWorkshop

(实时工作空间库)

Stateflow(状态流程库)

SimulinkExtras

(Simulink附加库)

SystemIDBlockset(系统辨识模块集)

✓Simulink的基本模块按功能进行分类,包括以下8类子库:

Continuous(连续系统模块)

Discrete(离散系统模块)

Function&Tables(函数和平台模块)

Math(数学运算模块)

Nonlinear(非线性模块)

Signals&Systems(信号和系统模块)

Sinks(接收器模块)

Sources(输入源模块)

下面列出一些基本模块的功能说明,以供实际使用时查询。

表1:

连续系统模块(Continuous)功能

模块名

功能简介

模块名

功能简介

Integrator

输入信号积分

Derivative

输入信号微分

State-Space

线性状态空间系统模型

TransportDelay

输入信号延时一个固定时间再输出

Transfer-Fcn

线性传递函数模型

VariableTransportDelay

输入信号延时一个可变时间再输出

Zero-Pole

以零极点表示的传递函数模型

表2:

离散系统模块(Discrete)功能

模块名

功能简介

模块名

功能简介

Discrete-timeIntegrator

离散时间积分器

DiscreteFilter

IIR与FIR滤波器

DiscreteState-Space

离散状态空间系统模型

DiscreteZero-Pole

以零极点表示的离散传递函数模型

DiscreteTransfer-Fcn

离散传递函数模型

Zero-OrderHold

零阶采样和保持器

First-OrderHold

一阶采样和保持器

UnitDelay

一个采样周期的延时

表3:

函数和平台模块(Function&Tables)功能

模块名

功能简介

模块名

功能简介

Fcn

用自定义的函数(表达式)进行运算

MATLABFcn

利用matlab的现有函数进行运算

S-Function

调用自编的S函数的程序进行运算

Look-UpTable

建立输入信号的查询表(线性峰值匹配)

Look-UpTable(2-D)

建立两个输入信号的查询表(线性峰值匹配)

表4:

数学运算模块(Math)功能

模块名

功能简介

模块名

功能简介

Sum

加减运算

Product

乘运算

DotProduct

点乘运算

Gain

增益模块

MathFunction

包括指数函数、对数函数、求平方、开根号等常用数学函数

TrigonometricFunction

三角函数,包括正弦、余弦、正切等

MinMax

最值运算

Abs

取绝对值

Sign

符号函数

LogicalOperator

逻辑运算

Real-ImagtoComplex

由实部和虚部输入合成复数输出

ComplextoMagnitude-Angle

由复数输入转为幅值和相角输出

Magnitude-AngletoComplex

由幅值和相角输入合成复数输出

ComplextoReal-Imag

由复数输入转为实部和虚部输出

RelationalOperator

关系运算

表5:

非线性模块(Nonlinear)功能

模块名

功能简介

模块名

功能简介

Saturation

饱和输出,让输出超过某一值时能够饱和

Relay

滞环比较器,限制输出值在某一范围内变化

Switch

开关选择,依据第二输入端的值,选择输出第一或第三输入端的值

ManualSwitch

手动选择开关

表6:

信号和系统模块(Signal&Systems)功能

模块名

功能简介

模块名

功能简介

In1

输入端

Out1

输出端

Mux

将多个单一输入转化为一个复合输出

Demux

将一个复合输入转化为多个单一输出

Ground

给未连接的输入端接地,输出0

Terminator

连接到没有连接的输出端,终止输出

SubSystem

空的子系统

Enable

使能子系统

表7:

接收器模块(Sinks)功能

模块名

功能简介

模块名

功能简介

Scope

示波器

XYGraph

显示二维图形

ToWorkspace

输出到MATLAB的工作空间

ToFile(.mat)

输出到数据文件

Display

实时的数值显示

StopSimulation

输入非0时停止仿真

表8:

输入源模块(Sources)功能

模块名

功能简介

模块名

功能简介

Constant

常数信号

Clock

时钟信号

FromWorkspace

输入信号来自MATLAB的工作空间

FromFile(.mat)

输入信号来自数据文件

SignalGenerator

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

RepeatingSequence

重复信号

PulseGenerator

脉冲发生器

SineWave

正弦波信号

Step

阶跃波信号

注:

在simulnk模块库浏览器的help菜单系统中可查询以上各模块的详细功能和使用说明。

通常,用户创建的Simulink模型包含下列三部分“组件”:

●输入信号源(Sources):

可以是常数、时钟、白噪声、正弦波、阶梯波、扫频信号、脉冲生成器、随机数产生器等信号源或者是用户自定义的信号;

●系统(System):

即被模拟系统的SIMULINK方框图;系统模块作为中心模块是Simulink仿真建模所要解决的主要部分。

●接收器(即输出、显示部分Sink):

可以是示波器、图形记录仪(XYGraph)等。

当然对于具体的SIMULINK模型而,不一定完全地包含这三大组件。

例如:

研究初始条件对系统影响就不必包含信号源组件。

⏹创建SIMULINK模型

在simulink中创建系统模型的步骤:

1新建一个空白的模型窗口(只有在模型窗口中才能创建用户自己的系统模型)。

方式是:

依次单击simulink模块库浏览器的“File”菜单NewModel,将弹出一个如图2所示的模型窗口。

2在simulink模块库浏览器中,将创建系统模型所需要的功能模块用鼠标拖放到新建的模型窗口中,如图2所示。

3将各个模块用信号线连接,设置仿真参数,保存所创建的模型(后缀名.mdl)。

4

点击模型窗口中的

按钮,运行仿真。

例1:

已知某振动系统的振动速度

,初始条件x(0)=0,利用simulink仿真该系统的振动位移。

分析:

要计算振动位移必须解上述微分方程,因此需要一个积分模块(Integrator),被积函数是sin(t),因此需要一个正弦波输入源模块(SineWave),积分器的输出(i.e.振动位移x(t))用示波器观察,因此需要一个显示输出模块Scope。

所用各模块如下所示:

步骤1:

如上所述新建模型窗口;

步骤2:

从源模块库(Sources)中用鼠标拖放一个正弦波模块(SineWave)至模型窗口中,然后从连续模块库(Continuous)中拖放一个积分模块(Integrator),再从输出显示模块库(Sinks)拖放一个示波器模块(Scope)。

步骤3:

将各模块的输入、输出用信号线按如下所示依次连接(连接方法:

将鼠标移动到模块的输出端,此时鼠标箭头成十字形,按住左键,移动鼠标到另一个模块的输入端,当出现两个十字形光标重影时,释放左键完成信号线的连接),然后保存模型。

步骤4:

运行仿真,然后双击示波器模块,可观察到仿真结果如图3所示。

2.Simulink功能模块的处理与修饰

下面介绍对模块的一些基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定等。

操作模块前要先选定模块,鼠标左键点击模块即选中,此时模块四角出现4个黑色标记,若要同时选中多个模块,则按住Shift键,同时点击想要选中的模块即可。

⏹模块的移动

选中模块,按住鼠标左键将其拖曳到所需的位置即可。

若要脱离信号线而移动,可按住shift键,再进行拖曳。

⏹模块的复制

方法1:

选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。

方法2:

选中模块,Ctrl+C复制,Ctrl+V粘贴;

⏹模块的删除

选中模块,按Delete键即可。

若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。

也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。

⏹模块的旋转

为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。

选中模块,在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。

⏹调整模块的大小

选中模块,对模块四角出现的4个黑色标记进行拖曳即可。

⏹模块的命名

先用鼠标在需要更改的名称上单击一下,然后直接更改即可。

名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。

HideName可以隐藏模块名称。

⏹设定模块的颜色

Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。

⏹设定模块参数

用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。

参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。

通过对模块的参数设定,就可以获得需要的功能模块。

3.信号线的处理与修饰

信号线也即功能模块之间的连接线。

对simulink信号线的操作包括绘制信号线、移动线段、移动节点、删除信号线、信号线分支、设定信号线的标签。

⏹绘制信号线

由模块的输出端口拖曳鼠标到另一模块的输入端口,或拖曳鼠标由输入端口到输出端口,如下图所示。

拖动模块还可以调整所绘信号线的弯折状态。

⏹移动线段

若想移动信号线的某段,单击选中此段。

移动鼠标到目标线段上,则鼠标的形状变为移动图标。

按住鼠标,并拖曳到新位置。

放开鼠标,则信号线被移动到新的位置。

⏹移动节点

单击选中某个节点,如图。

按住鼠标左键拖曳节点到新位置,然后释放鼠标,则可将节点移动到新的位置。

⏹删除信号线

同删除模块一样,删除信号线可以选中信号线,然后按Delete键,或者利用菜单【Edit/Clear】或【Edit/Cut】选项进行删除。

⏹设定信号线的标签

每段信号线都可以有一个标签。

双击要标注的信号线,则信号线的附近就会出现一个编辑区,在编辑区内输入标签的内容即可,如左下图所示。

⏹给信号线加分支

若要给信号线加分支,只需将鼠标移动到分支的起点位置,按住Ctrl键+鼠标左键,拖动到目标模块的输入端,释放鼠标和Ctrl键即可,如右上图所示。

4.设置仿真参数(选读)

【说明:

该部分属本次实验的进阶内容,如因时间关系可跳过不看。

在一般情况下,如无特殊要求,仿真参数无需特别设置,使用系统默认值即可。

设置模型的仿真参数是Simulink仿真重要的一环。

通常在完成建模之后就可以对模型进行动态仿真了,但是在仿真前必须对模型的仿真参数进行相关的设置才能保证仿真的有效性。

在模型窗口中依次点击顶层菜单SimulationConfigurationParameters,弹出设置仿真参数的对话框如下:

仿真参数设置对话框主要包含以下五个选项卡:

①解法设置(Solver)

它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。

②数据的输入/输出(DataImport/Export)

它允许用户从MATLAB的工作空间(Workspace)输入模型所需参数或将运行结果输出到工作空间。

③优化选项(Optimization)

主要是对仿真性能进行优化设置。

④诊断项(Diagnostics)

允许用户选择Simulink在仿真中显示的警告信息的等级。

⑤实时工具对话框诊断项(Real-TimeWorkshop)

主要用于与C语言编辑器的交换,通过它可以直接从SIMULINK模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。

一般情况下,主要使用前面2个选项卡,因此下面主要介绍1、2两个选项卡的参数设置:

⏹解法器(Solver)选项卡的参数设置

✓仿真时间(Simulationtime)

Starttime和Stoptime设置仿真的起始和停止时间,单位是秒。

注意这里的时间概念与真实的时间并不一样,因为实际的运行时间和计算机的性能、模型的复杂程度、解法、步长、误差要求等等因素有关。

✓解法器(Solver)选择

一般情况下,被模拟系统的工作过程都可以由一组微分方程来描述,因此用于系统动态仿真的解法器和求解微分方程组的解法器相同。

这些解法器分为两种:

变步长模式解法器:

ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。

除discrete方法外,其他的解法在实验二中有介绍。

Discrete方法使用于模型中没有连续状态的情况,这时系统会自动选择这种方法。

系统默认的变步长解法器是ode45。

固定步长模式解法器:

ode5,ode4,ode3,ode2,ode1和discrete。

ode5:

系统默认的定步长解法器,是ode45的固定步长版本,适用于大多数连续,不适用于刚性系统。

ode4:

四阶龙格-库塔法,具有一定的计算精度。

ode3:

固定步长的ode23解法。

ode2:

改进的欧拉法。

ode1:

欧拉法。

discrete:

是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。

✓仿真步长选择

Type选项中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。

变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。

固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。

✓步长参数

对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。

(a)Maximumstepsize(最大步长参数):

它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。

一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。

(b)Initialstepsize(初始步长参数):

一般建议使用“auto”默认值即可。

✓仿真精度(对于变步长模式)

(a)Relativetolerance(相对误差):

它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。

(b)Absolutetolerance(绝对误差):

表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。

如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。

⏹数据的输入/输出(DataImport/Export)选项卡的参数设置

此页主要用来设置SIMULINK与MATLAB工作空间交换信息的有关选项,通过此页的设置可以从MATLAB的工作空间(Workspace)获取模型所需参数或将SIMULINK运行结果输出到工作空间。

它包含三项(如图):

①从MATLAB工作空间获得系统输入(Loadfromworkspace)

②仿真结果输出到MATLAB的工作空间(Savetoworkspace)

③存储选项(Saveoption)

✓从MATLAB工作空间加载(Loadfromworkspace)

虽然Simulink提供了多种系统输入信号,但并不能完全满足需要。

Simulink允许使用用户自定义的信号作为系统输入信号。

在Loadfromworkspace框中,用户可以设置MATLAB中的变量作为系统输入信号或系统状态初值,如下所述:

(1)Input:

用来设置系统输入信号,其格式为[t,u],其中t、u均为列向量,t为输入信号的时间向量,u为相应时刻的信号取值。

可以使用多个信号输入,如[t,u1,u2]。

输入信号与Simulink的接口由Inport模块(In1模块)实现。

例如:

在Matlab命令窗口输入:

>>t=1:

20;t=t';u=[sin(t),cos(t)];xInitial=[01];

后运行上述模型即可从Matlab的工作空间获得信号输入与结果输出。

(2)Initialstate:

用来设置系统状态变量的初始值。

初始值xInitial可为列向量。

注意:

使用xInitialstate所设置的状态变量初始值会自动覆盖系统模块中的设置。

✓仿真结果输出到MATLAB的工作空间(Savetoworkspace)

此选项可以将系统的仿真结果、系统仿真时刻、系统中的状态或指定的信号输出到MATLAB的工作空间中,以便用户对其进行定量分析,如下所述:

(1)Time:

输出系统仿真时刻。

(2)States:

输出系统模型中的所有状态变量。

(3)Output:

输出系统模型中的所有由Output模块(即Out1模块)表示的信号。

(4)Finalstate:

输出系统模型中的状态变量的最终取值,即最后仿真时刻处的状态值。

✓存储选项(Saveoption)

(1)Limitdatapointstolast:

表示输出数据的长度(从信号的最后数据点记起)。

对于向量而言即其维数,对于矩阵而言即其秩。

(2)Format:

表示输出数据类型。

共有三种形式:

StructurewithTime(带有仿真时间变量的结构体)、Structure(不带仿真时间变量的结构体)、Array(信号数组)。

(3)Decimation:

设定了一个亚采样因子,它的缺省值为1,也就是对每一个仿真时间点产生值都保存,而若为2,则是每隔一个仿真时刻才保存一个值。

(4)Outputoptions:

输出选项,包含3个可选项

●Refineoutput(细化输出):

可以增加输出数据的点数,使得输出数据更加平滑。

一般当仿真输出太稀松时,使用此选项。

与该选项配套的参数设置是refinefactor(细化因子),若细化因子定为2,则输出数据点数加倍,若为3则输出3倍的数据点数,依次类推,默认值是1。

通常要产生更光滑的输出曲线,通过改变精细因子比减小仿真步长更有效。

精细输出只能在变步长模式中才能使用,并且在ode45效果最好。

●Produceadditionaloutput:

它允许用户直接指定产生输出的时间点。

一旦选择了该项,则在它的右边出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。

与精细因子相比,这个选项会改变仿真的步长。

●Producespecifiedoutputonly:

它的意思是让simulink只在指定的时间点上产生输出。

为此解法器要调整仿真步长以使之和指定的时间点重合。

这个选项在比较不同的仿真时可以确保它们在相同的时间输出。

5.启动仿真

设置仿真参数和选择解法器之后,就可以启动仿真而运行。

方法:

选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2