第七章 Simulink 基础

更新时间:2023-11-07 08:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

主讲教师:吴海涛

第七章 Simulink 基础

一. Simulink 初步

MATLAB Simulink是一个动态仿真系统,用于对动态系统进行仿真和分析,预先模拟实际系统的特性和响应,根据设计和使用要求,对系统进行修改和优化。

Simulink提供了图形化用户界面,只须点击鼠标就可以轻易的完成模型的创建、调试和仿真工作,用户不须专门掌握一种程序设计语言。

Simulink可将系统分为从高级到低级的几个层次,每层又可以细分为几个部分,每层系统构建完成后,将各层连接起来构成一个完整系统。

模型创建完成后,可以启动系统的仿真功能分析系统的动态特性,其内置的分析工具包括各种仿真算法、系统线性化、寻求平衡点等。仿真结果可以以图形方式在示波器窗口显示,也可将输出结果以变量形式保存起来,并输入到MATLAB中以完成进一步的分析。

Simulink可以仿真线性和非线性系统,并能创建连续时间、离散时间或二者混合的系统。支持多采样频率系统。

Simulink的三大步骤:模型创建与定义、模型的分析、模型的修正。

模型构建 和定义模型的分析显 示修 正Simulink的运行:

1.命令窗口下点击Simulink图标(或键入Simulink命令)→Sim→sim模块

1

主讲教师:吴海涛

2. 打开模型创建窗口:在工具栏中选择“建立新模型”的图标,弹出名为Untitled的空白窗口。 二. Simulink 的基本模块

simulink浏览器窗口左侧的simulink项上单击鼠标右键,弹出菜单“Open the ‘Simulink’Labrary’”选项,将打开simulink模块库窗口。 1.信号源模块:source,模块及功能见(表 8—1) 2.输出模块:Sinks, 模块及功能见(表 8—2)

3. 连续系统模块: Continuous, 模块及功能见(表 8—3) 4. 离散系统模块:Discrete, 模块及功能见(表 8—4) 5. 数学运算模块:Math, 模块及功能见(表 8—5)

6.函数和表模块: Function & Tables, 模块及功能见(表 8—6) 7. 非线性系统模块:Nonlinear, 模块及功能见(表 8—7)

8. 信号与系统模块:Signal & Systems, 模块及功能见(表 8—8)

三. Simulink 建模 1. 模块的创建与操作 (1) 创建模块:

(1)在浏览器列表中点击需要的模块,按住鼠标左键并拖曳至模型

窗口即可。

(2)双击模块可在弹出的对话框中修改相应的模块参数 (3)在模块下方名称处双击可改变模块名称。 (2)模块操作

(a)模块的选择 (b)移动模块 (c)模块的缩放

(d) 复制模块:四种方法:

* 在选定模块处,按下鼠标右键并拖动至适当位置; * 选定模块,在工具栏中(或Edit菜单中)选中Copy与Paste按钮; * 在选定的模块处点击鼠标右键,在弹出的菜单中选择Copy与Paste选项;

2

主讲教师:吴海涛

* 按住”Ctrl”键,按下鼠标左键,将选定的模块拖至适当的位置。 (e)模块的旋转与翻转:

旋转:将鼠标指向要翻转的模块并按下鼠标右键,选择弹出菜单中的

Format栏中的Rotate项,模块顺时针旋转90o。

翻转:将鼠标指向要翻转的模块并按下鼠标右键,选择弹出菜单中的

Format栏中的Flip Block项,模块顺时针旋转180o。

(f) 模块的连接 (h)连接分支线 (i)改变连线的形状

(j)连线的标识:在连线的上或下方(或窗口内任何位置)双击鼠

标左键,可出现一个文本框用于输入说明文字。

(3).简单模型:

信号发生器发生幅值为1,频率为0.2HZ的正弦波信号,信号分别按1倍和5倍送入两个示波器。 2. 模型的修饰

1. 模块加阴影:Format菜单中的Show drop shadow菜单项用于给模块加阴影。

2. 调整颜色:Format菜单中的Foreground color菜单项用于调整模块的前景颜色。Background color菜单项用于选择模块的背景颜色。Screen color菜单项用于调整屏幕颜色。

3. 变换模块名的显示位置:Format 菜单中的Flip name可将模块名换到对称的位置,Hide name可将模块名隐藏起来。 4. 模块修饰的一个简单示例 三. 仿真计算与分析方法 1.连续系统建模 (1).用积分模块创建微分方程求解的模型

有二阶微分方程x’’+0.2x’+0.4x=0.2u(t), u(t)是单位阶跃函数,演示如何用积分器直接创建求解该微分方程的模型。 (a) 改写微分方程为: x’’=0.2u(t)-0.2x’-0.4x

(b) 利用Simulink库中的标准模块建模:基本思路是x’’经积分后得 x’,再积分得 x,再将 x’和 x经代数运算得到 x’’。结果送入示波器,

3

主讲教师:吴海涛

也可同时存储在工作空间变量simy中。 (2).用传递函数模块求解:以二阶微分方程x’’+0.2x’+0.4x=0.2u(t)为例, 初始状态为0,u(t)是单位阶跃函数。对方程两边进行Laplace变换,得到:

s2X(s)+0.2sX(s)+0.4X(s)=0.2U(s) 整理后得传递函数:

G(s)=X(s)/U(s)=0.2/(s2+0.2s+0.4)

利用上式采用传递函数模块可建立求解微分方程的模型。

2. Simulink 结果的分析: 执行simulink后检查输出结果并做进一步的分

析与判断。

(1) 输出信号的观察:

(a) 将信号输出到显示模块:

* Scope(示波器):将信号显示在示波器的独立窗口中,通过双击模

块即可打开示波器模块。

* XY Graph 显示器模块:在MATLAB图形窗口绘制二维图形, * Display模块:将结果以数字形式显示出来,在模块中直接滚动

显示。标量、矢量和矩阵形式得结果输出窗口结构略有不同。

(b)将仿真结果存储到工作空间,再用绘图命令在命令窗口绘制图形, 有三种方法可供选择:

* 通过示波器模块向工作空间存储数据;

* 通过选择Sinks函数库中的To workspace模块,将数据保存到工作空间的simout变量中,同时还可以产生一个存放时间数据的变量(缺省tout);

*通过Simulation菜单选择Simulation Paremeter菜单项中的WorkspaceI/O页,根据各个参数的选择来确定存储的数据内容的类型。

(c). 将仿真结果通过输出端口返回到MATLAB命令窗口,再利用绘图命令绘出输出图形:

在Sinks函数库中有一个名为Out1的模块,将数据输入到这个模块,该模块就会将数据输出到 MATLAB 命令窗口,并用名为 yout的变量保

4

主讲教师:吴海涛

存,同时还将时间数据用 tout变量保存。

存储在工作空间的结果可以进行进一步的分析。 2.使用一般的分析工具

(a). 线性化:将状态空间所描述的线性系统输入输出关系由下式表示:

x’=Ax+Bu y=Cx+Du

其中:x 代表状态矢量

y代表输出矢量 u代表输入矢量

如创建用于线性化的系统模型名为lmod,并保存为”lmod.mdl”.

在命令窗口输入命令 [A B C D]=linmod(‘lmod’)就可以获得系统的常微分方程 lmod的状态空间线性模型,返回系统线性化的状态空间矩阵。 [A B C D]=linmod(‘lmod’)

([A,B,C,D]=LINMOD('SYS') obtains the state-space linear model of the system of ordinary differential equations described in the block diagram 'SYS' when the state variables and inputs are set to the defaults specified in the block diagram.)

A =

-1.0000 -1.0000 -2.0000 1.0000 0 0 0 2.0000 -1.0000

B =

1.0000 0 0 C =

0 2.0000 0 0 0 -2.0000 D = 0

5

本文来源:https://www.bwwdw.com/article/1t72.html

Top