第五讲 基于MATLAB-Simulink的建模与仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有三个或更多选择时的IF-ELSE-END结构的形式:
if expression1 commands evaluated-if expression1 is True elseif expression2 commands evaluated-if expression2 is True elseif expression3 commands evaluated-if expression3 is True elseif
Zero-Order Hold:零阶采样保持器 Unit Delay:一个采样周期的延时 Discrete-time Integrator:离散时间积分器 Discrete State-Space:离散状态空间系统模型 Discrete Filter:离散滤波器 Discrete Transfer-Fcn:离散传递函数模型 Discrete Zero-Pole:以零极点表示的离散传递函数模型 First-Order Hold:一阶采样保持器
MATLAB软件简介?
MATLAB是一门计算机编程语言,是一种科学计算 软件,取名来源于Matrix Laboratory,本意是专门以矩 阵的方式来处理计算机数据 .MATLAB将高性能的数值计 算和可视化集成在一起,并提供了大量的内置函数,被广 泛应用在科学计算,信息处理,控制系统等领域的分析, 仿真和设计工作。
说明:控制表达式的值未必是一个标量值, 矩阵值也同样有效。在矩阵情况下,所得到 矩阵的所有元素必须都为真。具体示例: num=0;EPS=1; while(1+EPS)>1 EPS=EPS/2; num=num+1; end 这段MATLAB代码最后在num=53时停止。
MATLAB软件简介?
✓ Look-up Table(查表模块) User-defined function(用户定义函数模块)
Look-Up Table:建立输入信号的查询表 (线性峰值匹配) Look-Up Table(2-D):建立两个输入信号的 查询表(线性峰值匹配) Fcn:用户自定义的函数(表达式) MATLAB Fcn:利用MATLAB的现有函数 S-Function:调用自编的S函数的程序
For循环不能用For循环内重新赋值循环变
量n来终止。
在For循环中循环控制量的范围可以是任
何有效的MATLAB矩阵。比如
data=[11 9 45 6; 7 16 -1 5];
for n=data
x=n(1)-n(2)
end 这时程序的输出有四个数值,分别是矩阵
data的两列相减的结果
x = 4 x = -7
模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递
函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时 一个给定时间再输出 Variable Transport Delay:输入 信号延时一个可变时间再输出
✓ 离散模块(Discrete)
IF-ELSE-END结构提供有条件地执行一些特定的 命令序列的方式。最简单的IF-ELSE-END结构是: if expression(条件控制表达式) {commands} end 如果在条件控制表达式(expression)中的所有元 素为真(非零),那么就执行if和end语句之间的 命令串({commands})。在表达式包含有几个逻辑 表达式时,即使前一个表达式决定了表达式的最 后逻辑状态,仍要计算所有的子表达式。
设系统方程

y y2 0 ,y(0)=1
试用Euler法求其数值解(取步长h=0.1,0≤t≤1) 试编写matlab程序求其数值解。
Euler迭代公式:yn+1=yn-0.1yn2
MATLAB仿真举例
Euler迭代公式:yn+1=yn-0.1yn2 ,y(0)=1 (取步长h=0.1,0≤t≤1)
说明:在for和end语句之间的命令串 {commands}按矩阵(array)中的每一列执行一次。 在每一次迭代中,n被指定为循环控制量的范围 内的下一列。例如:
for n=1:10
x(n)=sin(n*pi/10);
end 这个循环体的作用是:对n等于1到10,求所有 语句的值,直到下一个end语句。第1次通过For 循环n=1,第2次,n=2,如此继续,直到n=10。 在n=10以后,For循环结束,然后求end语句后 面的任何命令值
MATLAB软件简介?
break是一种特殊的控制结构,基本作用是无 条件跳出临近的循环体,即结束For循环和 While循环的执行。
MATLAB软件简介?
学习和使用常用软 7000
件MATLAB的一些 6000
基本语句和功能来 5000
验证或观察函数的 4000
3000
变化,实现函数的 2000
计算机仿真技术
主讲教师:张春燕 xiangyutianji@163.com
课件制作者:张春燕
第五讲 基于MATLAB/Simulink 的建模与仿真
MATLAB软件简介 MATLAB仿真实例 什么是Simulink? Simulink模块库简介 Simulink模型的建立方法 Simulink建模与仿真举例 小结
MATLAB软件简介?
✓clear删除工作空间中的所有变量!系统不会要求你确认
这个命令。所有变量都被清除且不能再恢复。
✓对于简单的问题,在MATLAB提示符下输入命令是快速有
效的。然而当命令数增加或希望改变一个或几个变量的值, 然后重新执行一系列命令时,在MATLAB提示符处键入命令 就非常麻烦了。对这个问题MATLAB提供了一种逻辑解决方 案。它允许用户把MATLAB命令放在一个简单的文本文件中, 然后告诉MATLAB打开文件并执行命令,如同在MATLAB提 示符处键入ቤተ መጻሕፍቲ ባይዱ令一样。这些文件被称为脚本文件或简单地称 为M文件。M文件是指脚本文件以扩展名.m结尾。
MATLAB仿真举例
Euler迭代公式:yn+1=yn-0.1yn2
,y(0)=1 (取步长h=0.1,0≤t≤1)
t=[0:0.1:1]’; length=size(t,1); y=zeros(size(t)); y(1)=1; for n=1:1:length-1 y(n+1)=y(n)-0.1*y(n)^2 end plot(t,y)
可视化计算
1000
0
1 3 5 7 9 11 13 15 17 19
StockQuantity SellQuantity
MATLAB仿真举例
设系统方程

y y2 0 ,y(0)=1
试用Euler法求其数值解(取步长h=0.1,0≤t≤1) 试编写matlab程序求其数值解。
MATLAB仿真举例
Simulink一个很大的优点是为用户省去了许多重复的代码 编写工作。 Simulink 支持线性,非线性系统,连续系统,离 散系统,或者混合系统的建模与仿真。同时它也支持具有不同 部分拥有不同采样率的多种采样速度的系统仿真。
Simulink的启动方式有两种: (1) 在工具栏点击Simulink图标; (2)在Command Window中输入:>> Simulink
✓ Math operations(数学模块)
Sum:加减运算 Product:模块输入的乘除运算 Dot Product:点乘运算 Gain:比例运算 Math Function:包括指数函数、 对数函数、求平方等常用数学函数 Trigonometric Function:三角函数, 包括正弦、余弦、正切等 MinMax:最小值或最大值运算
Abs:取绝对值 Sign:给出符号函数 Rounding Function 圆整函数 Combinatorial Logic:建立真值表 Logical Operator:逻辑运算 Relational Operator:关系运算 Complex to Magnitude-Angle: 由复数输入转为幅值和相角输出 Complex to Real-Imag: 由复数输入转为实部和虚部输出 Magnitude-Angle to Complex: 由幅值和相角输入合成复数输出 Real-Imag to Complex: 由实部和虚部输入合成复数输出
MATLAB的功能包括:数值分析,数值和符号计算, 工程和科学绘图,通讯和控制系统的设计与仿真,数字图 像与信号处理,财务与金融工程等。
MATLAB软件简介?
MATLAB软件的典型应用领域:
❖科学研究; ❖工程技术应用研究 ❖CAI(Computer Aided Instruct) ❖数学实验(Mathematical Experiment) ❖数学建模(Mathematical Modeling)
✓ Discontinuous(非线性模块)
Rate Limit: 变化速率限制 Saturation:饱和输出, 让输出超过某一值时能够饱和。 Quantizer:离散化 Blacklash:滞环或间隙 Dead Zone:死区 Relay:滞环继电器 Switch:切换开关 Manual Switch:手动选择开关 Coulomb & Viscous Friction 库仑和粘滞摩擦
Simulink模块库简介
Simulink模块库简介
SIMILINK模块库按功能进行分类:连续 模块、离散模块、查表模块、数学模块、非线 性模块、信号通路模块、接收器模块、输入源 模块、其他常用方块组及工具箱、特别模块。
✓ 连续模块(Continuous)
Derivative:输入信号微分 Integrator:积分器 State-Space:线性状态空间系统
MATLAB软件简介?
MATLAB提供三种控制流结构 的语句:
➢For-end循环 ➢While-end循环 ➢If-Else-End结构
MATLAB软件简介?
For-end循环的基本作用是以固定的和预定的次 数重复一组特定的命令。一般形式是:
for n=循环控制量的范围 {commands} end
x = 46 x = 1
For循环可按需要嵌套,即For循环体内的命 令组中可以出现另一个For循环体,这体现了 For循环体也是命令组。比如 for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2; End
end
MATLAB软件简介?
While-end循环以不定的次数求一组语句的值。 Whil-end 循环的一般形式是: while expression(控制表达式) {commands} end 只要在控制表达式(expression)里的所有元 素为真,就执行While和end语句之间的命令 串({commands})。
else commands evaluatedif on other expression is True end
最后这种有三个以上选择的IF-ELSE-END形式, 依次检查各表达式,只执行第一个表达式为真的 命令串,接下来的关系表达式不检验,跳过其余
的IF-ELSE-END结构。最后的else命令可有可无。
MATLAB仿真举例 运行结果:
y=
1.0000 0.9000 0.8190 0.7519 0.6954 0.6470 0.6052 0.5685 0.5362 0.5075 0.4817
作业
设系统方程

y
y2
0
,y(0)=1
试用二阶龙格库塔法求其数值解(取步长h=0.1,0≤t≤1)
试编写matlab程序求其数值解。
一般的有两个选择的IF-ELSE-END结构是: if expression(条件控制表达式) commands evaluated if True else commands evaluated if True end 在这里,如果条件控制表达式(expression) 为真,则执行第1组命令;如果表达式是假, 则执行第2组命令。
二阶龙格库塔法迭代公式:
请在第二次实验时 上机验证结果。
ym1
ym K1
h 2
(K1
f (tm , ym )
K2)
K2 f (tm h, ym K1h)
什么是Simulink?
Simulink是MATLAB提供的实现动态系统建模和仿真的 一个软件包,它让用户把精力从编程转向模型的构造。
相关文档
最新文档