您现在的位置:首页 > >

matlab中simulink应用

发布时间:

Matlab计算与仿真技术 simulink应用

1/85

1 概述

2/85

1 概述

3/85

1 概述

4/85

1 概述

5/85

1 概述 有用资源提示

6/85

2 Matlab初识与概述 Matlab 的里程碑 - Matlab 由来
(MATrix LABoratory) 合成

- Matlab 前身(1978年)
美国 Cleve Moler 教授

- Matlab 诞生(1984年)
Jack Little 推出商用版本 早期主要面向矩阵运算
7/85

2 Matlab初识与概述 Matlab 的里程碑
- 90 年代推出第 4 版本
支持图形句柄和图形交互界面

- 新世纪推出第 5 - 7 版本
第 5 版扩展数据类型的支持 第 6 版推出交互式工作界面 第 7 版 … MATLAB是建立在C语言上的编程语言 有自己独特的语言环境
8/85

2 Matlab初识与概述 Matlab 的特色一览
- 采用 矩阵 作为基本的数据结构
无须维数申明, 支持矩阵运算

- 具有面向对象等程序语言特性
条件控制、函数调用、输入输出等

- 带有针对应用所开发的工具箱
可以自行设计需要的工具箱 (Toolboxs)

- 提供了SIMULINK仿真软件包
9/85

2 Matlab初识与概述 Matlab 的安装和使用
- 组件一览
组件名称 1、必须选择的本原性组件 MATLAB 2、最常选的通用性工具箱组件 Symbolic Math 符号类数据的操作和计算 核心部分 功用

10/85

2 Matlab初识与概述
3、其他通用性工具箱组件 Simulink 不用编程序,利用方块图实现建 模和仿真;主要用于研究微分和 差分方程描写的非线性动态系统 求包含函数零点、极值、规划等 优化程序 把MATLAB的M文件编译成DLL文件 或EXE独立应用程序

Optimization Matlab Compiler

Matlab c/c++ Math 与MATLAB Compiler配合使用 Library
Matlab c/c++ Graphic Library 与MATLAB Compiler配合使用

11/85

2 Matlab初识与概述

4、常用专业性工具箱组件
Control System Signal Processing MATLAB 涉及控制的工具包有10多 个, 是MATLAB 信号处理中的基本工具 包

Spline
Statistics

内含样条和插值函数
包含进行复杂统计分析所需的程序

12/85

2 Matlab初识与概述

5、其他专业性工具箱组件 Stateflow 与Simulink配合使用,主要用于 较大型、复杂的(离散事件)动 态系统的建模、分析、仿真 据时域信号进行动态系统辨识

System Identificatio n …… ……

13/85

2 Matlab初识与概述 Matlab 的桌面入门

14/85

3 交互式计算 Matlab 的命令窗口
- 命令窗口中指令行中的标点符号

>> a=10*2;b=a+5,c=a*b;d=c+a; >> A=[1 2 3;4 5 6;7 8 9] >> B=[1,2,3 4,5,6 7,8,9] >> C=[1;2;3]
15/85

3 交互式计算

16/85

3 交互式计算

- 实例

17/85

3 交互式计算

18/85

3 交互式计算 - Matlab的基本数据类型

19/85

3 交互式计算 - Matlab的基本数据类型

20/85

3 交互式计算 - 几个窗口常用命令
?Demo 提供案例程序
?Clear 清除屏幕 ?Help 帮助文件 ?Simulink 打开该窗口

21/85

3 交互式计算

>> help log10 >> help exp
22/85

3 交互式计算 矩阵手工创建方式
?3 2 ? A ? ?3 1 ? ? ? ?1 4 ? ? ?
>> A = [ 3 2; 3 1; 1 4] A = 3 3 1 x = 5 7 9 2 1 4

>> x = [5; 7; 9; 2]

?5? ?7 ? x?? ? ?9 ? ? ? ? 2?

2
23/85

3 交互式计算
>> B=[1:4; 5:8; 9:12] B= 1 2 3 4 5 6 7 8 9 10 11 12 >> w=diag(B) w= 1 6 11 >> A=diag(w); A= 1 0 0 0 6 0 0 0 11

函数复用
前一个提取对角元素 后一个生成对角矩阵

24/85

3 交互式计算
?解一元非线形方程 ?求导数、求微分、积分 ?级数、矩阵求解

?方程组的求解
?插值、曲线拟合 ?微分方程求解 ?概率论与数理统计 ?最优化方法
25/85

3 交互式计算

26/85

3 交互式计算

27/85

3 交互式计算

28/85

3 交互式计算

29/85

4 matlab编程序

程序设计概述
- 基本概念
程序: 数据结构+算法
注解: 数据结构定义操作对象 算法定义求解过程

- 必要性
问题求解需要复杂算法 交互计算方式难以满足
30/85

4 matlab编程序
- M-文件编程(Programming)
m-文件编辑器 >> edit drawPlot.m; >> edit;
% 创建或编辑m文件 % 启动编辑器

GUI方式激活 在桌面激活新文件图标 利用文件另存创建文件 m-文件编辑器GUI 文件操作: file ? new/open/save/… 编辑操作: edit ? cut/copy/paste/… 调试操作: debug ? …/run/…
31/85

4 matlab编程序
- 创建一个脚本文件
1: % An M-file script to produce 2: % Comment lines 3: % "flower petal" plots 4: theta = -pi:0.01:pi; % Computations 5: rho(1,:) = 2*sin(5*theta) .^ 2; 6: rho(2,:) = cos(10*theta) .^ 3; 7: rho(3,:) = sin(theta) .^ 2; 9: rho(4,:) = 5*cos(3.5*theta) .^ 3; 10 for k = 1:4 polar(theta, rho(k,:)) % Graphics output pause 11: end
32/85

4 matlab编程序 程序的概念与结构
- 程序: 数据结构+算法 - 结构: 顺序/选择/循环

编程的环境和工具
- m 文件编辑器

m 文件及函数
- m文件: 脚本文件/函数文件 - 函数: 主函数/子函数/…
33/85

4 matlab编程序
1: function s = threesum(x,y,z) 2: % threesum Add three variables 3: % and return the result 4: s = x+y+z; -------------------------------------------1: function [s,p] = addmult(x,y) 2: % addmult Compute sum and product 3: % of two matrices 4: s = x+y; 5: p = x*y;
34/85

4 matlab编程序
- threesum运行结果

>> a = threesum(1,2,3) a = 6 >> threesum(4,5,6) ans = 15 >> b= threesum(7,8,9);
注:b的值为24
35/85

5 matlab绘图

Matlab绘图-I: 功能函数
- 二维图形 - 图形修饰与控制

- 三维图形
- 特殊图形绘制
36/85

5 matlab绘图

二维图形
- plot 二维曲线绘图函数
基本形式

plot(x,y,’s’) x,y 是相同类型的等长向量 s 可选用于控制图形属性 原理: 点?线
输入: 点坐标向量 输出: 插值曲线
37/85

5 matlab绘图 采样点对绘图的影响
- 曲线实例:y=sin(x), 0<x<2*pi
>> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,‘.') 提供曲线的 插值点稀疏

38/85

5 matlab绘图 采样点对绘图的影响(续)
- 曲线实例:y=sin(x), 0<x<2*pi
>> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,‘.-') 插值曲线 欠光滑

39/85

5 matlab绘图 采样点对绘图的影响(续)
- 曲线实例:y=sin(x), 0<x<2*pi
>> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y,‘.-') 提供曲线的 插值点稠密

40/85

5 matlab绘图 采样点对绘图的影响(续)
- 曲线实例:y=sin(x), 0<x<2*pi
>> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y)

41/85

5 matlab绘图
Plot 使用实例: 多条曲线
1

>> >> >> >>

x=linspace(0,7); y1=sin(2*x); y2=sin(x.^2); y3=(sin(x)).^2;

0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0

1

2

3

4

5

6

7

%曲线1:红色实线,+号显示数据点 %曲线2:黑色点线,*号显示数据点 %曲线3:蓝色虚线,上三角形显示数据点 >> plot(x, y1, 'r+-', x, y2, 'k*:', x, y3,… 'b--^')

42/85

5 matlab绘图 3D曲线绘图函数 plot3
功能: 实现三维曲线绘图

使用的一般格式
plot3(x1, y1, z1, 's1', x2, y2, z2, 's2'…) clear t=0:pi/50:10*pi; plot3(t,sin(t),cos(t),'r:') grid on

1

0.5

0

-0.5

-1 1 0.5 0 -0.5 -1 0 10 30 20 40

43/85

5 matlab绘图

其它绘图方式
- 命令格式
plot: 2D曲线绘图 plot3: 3D曲线绘图 loglog:对数坐标绘图 semilogx: 横对数坐标图 semilogy: 纵对数坐标图 plotyy: 双纵坐标图
44/85

5 matlab绘图
其它图形: bar/bar3: 2D/3D纵向条图 barh/bar3h: 2D/3D横向条图

45/85

5 matlab绘图
其它图形: >> pie(x,eplore)
>> area(Y)

46/85

5 matlab绘图
其它图形:
极坐标图

>> pie(x,eplore)
>> area(Y)

直方图

47/85

5 matlab绘图

离散图

48/85

5 matlab绘图

交互式绘图工具 - 图形模板
- 属性编辑 - 绘图浏览

图形的数据挖掘
- 数据获取 - 数据分析 - 数据重用
49/85

5 matlab绘图

50/85

6 simulink仿真 Simulink 概述
Simulation + Link - Simulink是一种仿真工具和环境
寄生在Matlab环境(共享工作空间) 完成对系统的建模, 仿真和分析 采用基于时间模块化框图 (Time-based Block Diagram) 支持拖放(drag & place)的交互设计 有内嵌建模模块库(block library)
51/85

6 simulink仿真

Simulink 建模与仿真
系统模型(model)概念
模型: 系统行为的定量描述 传递: 输入信号到输出信号 分类: 静态模型 ? 代数方程(关系) 动态模型 ? 微分方程(组) 要素: 输入/输出/状态
52/85

6 simulink仿真 - 模型框图表示 (信号是关于时间的函数) input u - 模型实例
静态模型 -- 信号发生器

state x

output y

x(t ) ? sin(? t ? ? )
输入和输出都为

x(t )
53/85

系统为恒等映射=I.D

6 simulink仿真
- Simulink 建模模式
模块框图描述方式

模块单元: 内部状态的描述 输入/输出信号引角 模块的几何属性 模块连接: 一个模块输出作为另一模块输入
模块框图: 由若干模块通过信号线连接形成

框图模型: 定义了系统信号、状态的关联
框图运算: 指定起始时间到终止时间
54/85

6 simulink仿真
-

Simulink 建模模块
内嵌模块库(build-in block library)
类比Matlab的标准函数/工具箱

模块库提供模型设计的模板 采用图标表示 模块的定义 几何属性(外观修饰)定义 模型结构定义 模型参数定义
55/85

6 simulink仿真
- 模块的结构定义 设定端口 数据类型

- 模块的参数定义
设增益值

56/85

6 simulink仿真 - Simulink 交互式图形界面 模块库+模块框图编辑白板
模块框图建模的交互模式 添加模块操作 在模块库中选取模块 拖入模块框图编辑器 添加信号连接线 选取信源端口 引出信号连线 直至信宿端口
57/85

6 simulink仿真

58/85

6 simulink仿真

模块库 浏览器

59/85

6 simulink仿真

模块框图编辑器
60/85

6 simulink仿真

从信源模块库中选取摸板(拖) 创建正旋信号发生器(放)

61/85

6 simulink仿真

- Simulink模块化框图建模实例(续)
依次创建所需的模块单元:

62/85

6 simulink仿真

依次创建信号连接线

63/85

6 simulink仿真 正旋信号发生器模块参数设定
Sine Wave Block Parameters
Amplitude =1 Frequency(rad/sec) = 0.25 * 2*pi Phase(rad) =0 Sample Time =0
64/85

6 simulink仿真 积分器模块参数设定
Integrator Block Parameters
External Reset = None Initial Conditions = 0 Limit output = Not Checked Show saturation point = Not Checked Show state port = Not Checked Absolute tolerance = auto

65/85

6 simulink仿真
仿真参数设定
图形与匹配窗口

激活工具栏运行按钮
双击示波器图标 显示获取的信号
66/85

6 simulink仿真

Simulink 建模技术初探
- 数学方程的建模
实例:构建摄氏向华氏温度的变换器

需求分析:借助Simulink模块化框图实现
TF=9/5(TC)+32 功能框图
摄氏温度 信号
32

9/5

235F
67/85

6 simulink仿真

68/85

6 simulink仿真
simulink 模块库的组织

界面: simulink 模块库浏览器 类比文件浏览器的模式
模块库 ?? 文件夹 模块单元?? 文件

Simulink 通用库

组成:Simulink 通用库 + 专业库

Sources

Sinks

Continuous

Discrete

Discontinuities

Signal Routing

Signal Attributes

Math Operations

Logic and Bit Operations

Lookup Tables

User-Defined Functions

Model Verification

Ports & Subsystems

Model-Wide Utilities

Simulink Block Library 6.0 Copyright (c) 1990-2004 The MathWorks, Inc.

69/85

6 simulink仿真
第二步:模块配置(提示: 首先查看常用模块库)
Model & Subsystem Inputs
Commonly Used Blocks
1 In1
1 Ground Terminator

untitled.mat Ground From File

simin From Workspace

1 In1

1 Out1

Signal Generators
Constant Scope

1 Constant
Bus Creator Bus Selector Mux Demux Switch

Signal 1

Signal Generator

Pulse Generator

Signal Builder

1 Sum Gain Product

<= Relational Operator

AND Logical Operator Saturation

Ramp

Sine Wave

Step

Repeating Sequence

Chirp Signal
1 s Integrator 1 z Unit Delay K Ts z-1 Discrete-Time Integrator

Random Number

Uniform Random Band-Limited White Noise Number lim

Convert Data Type Conversion

In1

Out1

Repeating Sequence Stair

Repeating Sequence Interpolated

Counter Free-Running

Counter Limited

Subsystem

12:34 Clock Digital Clock

70/85

6 simulink仿真
SIMILINK模块库按功能进行分为以下8类子库:
? Continuous(连续模块) ? Discrete(离散模块) ? Function&Tables(函数和平台模块) ? Math(数学模块) ? Nonlinear(非线性模块) ? Signals&Systems(信号和系统模块) ? Sinks(接收器模块) ? Sources(输入源模块)

71/85

6 simulink仿真 输入源模块( Sources ) sources.mdl
? ? ? ? ? ? ? ? ?

Constant:常数信号。 Clock:时钟信号。 From Workspace:来自MATLAB的工作空间。 From File(.mat):来自数据文件。 Pulse Generator:脉冲发生器。 Repeating Sequence:重复信号。 Signal Generator:信号发生器,可以产生正弦、方波、锯 齿波及随意波。 Sine Wave:正弦波信号。 Step:阶跃波信号。

72/85

6 simulink仿真 接收器模块( Sinks ) sinks.mdl
Scope:示波器。 ? XY Graph:显示二维图形。 ? To Workspace:将输出写入MATLAB的工作空间。 ? To File(.mat):将输出写入数据文件。
?

73/85

6 simulink仿真
连续模块(Continuous)continuous.mdl
Integrator:输入信号积分 Derivative:输入信号微分 State-Space:线性状态空间系统模型 ? Transfer-Fcn:线性传递函数模型 ? Zero-Pole:以零极点表示的传递函数模型 ? Memory:存储上一时刻的状态值 ? Transport Delay:输入信号延时一个固定时间再输出 ? Variable Transport Delay:输入信号延时一个可变时间再 输出
? ? ?

74/85

6 simulink仿真 离散模块(Discrete) discrete.mdl
Discrete-time Integrator:离散时间积分器 ? Discrete Filter:IIR与FIR滤波器 ? Discrete State-Space:离散状态空间系统模型 ? Discrete Transfer-Fcn:离散传递函数模型 ? Discrete Zero-Pole:以零极点表示的离散传递函数模型 ? First-Order Hold:一阶采样和保持器 ? Zero-Order Hold:零阶采样和保持器 ? Unit Delay:一个采样周期的延时
?

75/85

6 simulink仿真
非线性模块( Nonlinear )
? ? ? ? ? ? ?

nonlinear.mdl

Abs 绝对值 Math function 实现一个数学函数 MinMax:最值运算 Saturation:饱和输出,让输出超过某一值时能够饱和。 Relay:滞环比较器,限制输出值在某一范围内变化。 Switch:开关选择,当第二个输入端大于临界值时,输出由 第一个输入端而来,否则输出由第三个输入端而来。 Manual Switch:手动选择开关

76/85

6 simulink仿真
函数和平台模块(Function&Tables) function.mdl
? ? ?

S-Function:调用自编的S函数的程序进行运算 Look-Up Table:建立输入信号的查询表(线性峰值匹配) Look-Up Table(2-D):建立两个输入信号的查询表(线性峰 值匹配)

77/85

6 simulink仿真 数学模块( Math ) math.mdl
Sum:加减运算 ? Product:乘运算 ? Dot Product:点乘运算 ? Gain:比例运算 ? Math Function:包括指数函数、对数函数、求平方、开根 号等常用数学函数 ? Trigonometric Function:三角函数,包括正弦、余弦、正 切等 ? Fcn:用自定义的函数(表达式)进行运算 ? MATLAB Fcn:利用matlab的现有函数进行运算 ? Sign:符号函数
?
78/85

6 simulink仿真
信号和系统模块( Signal&Systems )
?

sigsys.mdl

In1:输入端。 ? Out1:输出端。 ? Mux:将多个单一输入转化为一个复合输出。 ? Demux:将一个复合输入转化为多个单一输出。 ? Ground:连接到没有连接到的输入端。 ? Terminator:连接到没有连接到的输出端。 ? SubSystem:建立新的封装(Mask)功能模块

79/85

6 simulink仿真 按功能框图配置模块元件
32

摄氏温度 信号

9/5

235F

1 Ramp Gain 1 Constant
80/85

Scope

6 simulink仿真
框图拓扑结构编辑
编辑constant模块的姿态 右键弹出属性编辑菜单 fromat?…/rotate block/…
1 Ramp Gain Constant 1 Scope

顺时针旋 转

fromat?…/flip block/…
上下翻转
1 Ramp Gain Constant 1 Scope

81/85

6 simulink仿真
步骤3: 添加信号线
线路1:信号发生器?信号增益
信源:信号发生器输出端口 信宿:信号增益输入端口
Ramp 1 Gain Constant 1 Scope

线路2:信号增益?信号求和单元
信源:信号增益输出端口 信宿:求和器的输入端口(之一)
Ramp

1 Gain Constant 1 Scope

线路3:常量单元?信号求和单元
信源:常量单元输出端口 信宿:求和器的另一输入端口
Ramp

1 Gain Constant 1 Scope

线路4:信号求和单元?示波器
信源:求和器输出端口 信宿:示波器输入端口
Ramp

1 Gain Constant 1 Scope

82/85

6 simulink仿真
模块的参数设定
Ramp Block Parameters
Slope =1 Start time =0 Initial output =0

运行仿真程序
Simulation/start…/
configuration parameters solver start time %TC low bound =-50 stop time %TC upper bound = 50

Gain Block Parameters
gain = 9/5 Constant Block Parameters
9/5 Ramp Gain Constant 32 Scope

constant value =32
83/85

6 simulink仿真 - 仿真结果的分析
信号观测
Scope模块: 采集关于时间变化的信号 允许多通道信号显示 x-y Graph: 绘制2-D信号图形, 是关于 x-轴/y-轴信号
9/5 Ramp Gain Constant 32 Scope

84/85

6 simulink仿真
范影乐,matlab仿真应用详解,2001 王正林,matlab/simulink控制系统仿真,2005

85/85



热文推荐
猜你喜欢
友情链接: 幼儿教育 小学教案 初中教案 高中教案 职业教育 成人教育