基于MATLABSimulink的建模与仿真.ppt
《基于MATLABSimulink的建模与仿真.ppt》由会员分享,可在线阅读,更多相关《基于MATLABSimulink的建模与仿真.ppt(100页珍藏版)》请在三一办公上搜索。
1、计算机仿真技术,第五讲 基于MATLAB/Simulink的建模与仿真,MATLAB软件简介 MATLAB仿真实例 什么是Simulink?Simulink模块库简介 Simulink模型的建立方法 Simulink建模与仿真举例 小结,MATLAB软件简介?,MATLAB是一门计算机编程语言,是一种科学计算软件,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据.MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,被广泛应用在科学计算,信息处理,控制系统等领域的分析,仿真和设计工作。,MATLAB的功能包括:数值分析,数值和符号计算,工
2、程和科学绘图,通讯和控制系统的设计与仿真,数字图像与信号处理,财务与金融工程等。,MATLAB软件简介?,MATLAB软件的典型应用领域:科学研究;工程技术应用研究CAI(Computer Aided Instruct)数学实验(Mathematical Experiment)数学建模(Mathematical Modeling),clear删除工作空间中的所有变量!系统不会要求你确认这个命令。所有变量都被清除且不能再恢复。对于简单的问题,在MATLAB提示符下输入命令是快速有效的。然而当命令数增加或希望改变一个或几个变量的值,然后重新执行一系列命令时,在MATLAB提示符处键入命令就非常麻烦
3、了。对这个问题MATLAB提供了一种逻辑解决方案。它允许用户把MATLAB命令放在一个简单的文本文件中,然后告诉MATLAB打开文件并执行命令,如同在MATLAB提示符处键入命令一样。这些文件被称为脚本文件或简单地称为M文件。M文件是指脚本文件以扩展名.m结尾。,MATLAB软件简介?,MATLAB提供三种控制流结构的语句:For-end循环While-end循环If-Else-End结构,MATLAB软件简介?,For-end循环的基本作用是以固定的和预定的次数重复一组特定的命令。一般形式是:for n=循环控制量的范围commandsend,MATLAB软件简介?,说明:在for和end语
4、句之间的命令串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语句后面的任何命令值,For循环不能用For循环内重新赋值循环变量n来终止。在For循环中循环控制量的范围可以是任何有效的MATLAB矩阵。比如data=11 9 45 6;7 16-1 5;for n=data x=
5、n(1)-n(2)end这时程序的输出有四个数值,分别是矩阵data的两列相减的结果x=4 x=-7x=46 x=1,For循环可按需要嵌套,即For循环体内的命令组中可以出现另一个For循环体,这体现了For循环体也是命令组。比如for n=1:5 for m=5:-1:1 A(n,m)=n2+m2;Endend,While-end循环以不定的次数求一组语句的值。Whil-end 循环的一般形式是:while expression(控制表达式)commandsend只要在控制表达式(expression)里的所有元素为真,就执行While和end语句之间的命令串(commands)。,MAT
6、LAB软件简介?,说明:控制表达式的值未必是一个标量值,矩阵值也同样有效。在矩阵情况下,所得到矩阵的所有元素必须都为真。具体示例:num=0;EPS=1;while(1+EPS)1EPS=EPS/2;num=num+1;end这段MATLAB代码最后在num=53时停止。,IF-ELSE-END结构提供有条件地执行一些特定的命令序列的方式。最简单的IF-ELSE-END结构是:if expression(条件控制表达式)commandsend如果在条件控制表达式(expression)中的所有元素为真(非零),那么就执行if和end语句之间的命令串(commands)。在表达式包含有几个逻辑表
7、达式时,即使前一个表达式决定了表达式的最后逻辑状态,仍要计算所有的子表达式。,MATLAB软件简介?,一般的有两个选择的IF-ELSE-END结构是:if expression(条件控制表达式)commands evaluated if Trueelsecommands evaluated if Trueend在这里,如果条件控制表达式(expression)为真,则执行第1组命令;如果表达式是假,则执行第2组命令。,有三个或更多选择时的IF-ELSE-END结构的形式:if expression1commands evaluated-if expression1 is Trueelseif
8、expression2commands evaluated-if expression2 is Trueelseif expression3commands evaluated-if expression3 is Trueelseif elsecommands evaluatedif on other expression is Trueend最后这种有三个以上选择的IF-ELSE-END形式,依次检查各表达式,只执行第一个表达式为真的命令串,接下来的关系表达式不检验,跳过其余的IF-ELSE-END结构。最后的else命令可有可无。,break是一种特殊的控制结构,基本作用是无条件跳出临近的
9、循环体,即结束For循环和While循环的执行。,MATLAB软件简介?,学习和使用常用软件MATLAB的一些基本语句和功能来验证或观察函数的变化,实现函数的可视化计算,MATLAB软件简介?,MATLAB仿真举例,设系统方程,,y(0)=1,试用Euler法求其数值解(取步长h=0.1,0t1),试编写matlab程序求其数值解。,设系统方程,,y(0)=1,试用Euler法求其数值解(取步长h=0.1,0t1),试编写matlab程序求其数值解。,Euler迭代公式:yn+1=yn-0.1yn2,MATLAB仿真举例,Euler迭代公式:yn+1=yn-0.1yn2,,y(0)=1,(取步
10、长h=0.1,0t1),MATLAB仿真举例,Euler迭代公式:yn+1=yn-0.1yn2,,y(0)=1,t=0:0.1:1;length=size(t,1);y=zeros(size(t);y(1)=1;for n=1:1:length-1y(n+1)=y(n)-0.1*y(n)2endplot(t,y),(取步长h=0.1,0t1),MATLAB仿真举例,运行结果:,y=1.0000 0.9000 0.8190 0.7519 0.6954 0.6470 0.6052 0.5685 0.5362 0.5075 0.4817,MATLAB仿真举例,作业,设系统方程,,y(0)=1,试用二
11、阶龙格库塔法求其数值解(取步长h=0.1,0t1),试编写matlab程序求其数值解。,二阶龙格库塔法迭代公式:,请在第二次实验时上机验证结果。,Simulink是MATLAB提供的实现动态系统建模和仿真的一个软件包,它让用户把精力从编程转向模型的构造。Simulink一个很大的优点是为用户省去了许多重复的代码编写工作。Simulink 支持线性,非线性系统,连续系统,离散系统,或者混合系统的建模与仿真。同时它也支持具有不同部分拥有不同采样率的多种采样速度的系统仿真。Simulink的启动方式有两种:(1)在工具栏点击Simulink图标;(2)在Command Window中输入:Simul
12、ink,什么是Simulink?,Simulink模块库简介,SIMILINK模块库按功能进行分类:连续模块、离散模块、查表模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、其他常用方块组及工具箱、特别模块。,Simulink模块库简介,Derivative:输入信号微分Integrator:积分器State-Space:线性状态空间系统 模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递 函数模型Memory:存储上一时刻的状态值Transport Delay:输入信号延时一个给定时间再输出Variable Transport Delay:输
13、入信号延时一个可变时间再输出,连续模块(Continuous),Zero-Order Hold:零阶采样保持器Unit Delay:一个采样周期的延时Discrete-time Integrator:离散时间积分器Discrete State-Space:离散状态空间系统模型Discrete Filter:离散滤波器Discrete Transfer-Fcn:离散传递函数模型Discrete Zero-Pole:以零极点表示的离散传递函数模型First-Order Hold:一阶采样保持器,离散模块(Discrete),Look-Up Table:建立输入信号的查询表(线性峰值匹配)Look-
14、Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)Fcn:用户自定义的函数(表达式)MATLAB Fcn:利用MATLAB的现有函数S-Function:调用自编的S函数的程序,Look-up Table(查表模块)User-defined function(用户定义函数模块),Sum:加减运算Product:模块输入的乘除运算Dot Product:点乘运算Gain:比例运算Math Function:包括指数函数、对数函数、求平方等常用数学函数Trigonometric Function:三角函数,包括正弦、余弦、正切等MinMax:最小值或最大值运算,Math oper
15、ations(数学模块),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:由实部和虚部输入合成复数输出,Rate Limit:变化速率限制Satura
16、tion:饱和输出,让输出超过某一值时能够饱和。Quantizer:离散化Blacklash:滞环或间隙Dead Zone:死区Relay:滞环继电器Switch:切换开关Manual Switch:手动选择开关Coulomb&Viscous Friction 库仑和粘滞摩擦,Discontinuous(非线性模块),Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。,Signal Routing(信号通路模块),Scope:示波器,显示信号曲线。XY Graph:显示二维X-Y图形。Out1:输出端口Display:显示数值To Workspace:将输
17、出写入MATLAB的工作空间。To File(.mat):将输出写入数据文件。Terminator:终止一个未连接的输出端口,Sinks(接收器模块),In1:输入端口Constant:常数信号Signal Generator:信号发生器,产生任意波形Ramp:斜坡信号Sine Wave:正弦波信号 Step:阶跃波信号Repeating Sequence:重复信号Pulse Generator:脉冲发生器Ground:搁置一个未连接的输入端口Clock:时钟信号From Workspace:来自MATLAB的工作空间。From File(.mat):来自数据文件。,Sources(输入源模块
18、),其他常用方块组及工具箱 Blocksets&Toolboxes,Simulink extras(特别模块),2.Simulink Extras(Simulink 附加库)3.Communications Blockset(通信模块集)4.Control System Toolbox(控制系统工具箱)5.DSP Blockset(数字信号处理模块集)6.Dials&Gauges Blockset(面板和仪表模块集)7.Fixed-Point Blockset(定点模块集)8.Fuzzy Logic Toolbox(模糊逻辑工具箱)9.MPC Blockset(MPC 模块集)10.NCD B
19、lockset(非线性控制设计模块集)11.Motorola DSP Blockset(DSP模块集)12.Neural Network Blockset(神经网络模块集)13.Power System Blockset(电力系统模块集),SIMULINK的一些其它工具箱,14.Real-Time Windows Target(实时窗口目标库)15.Real-Time Workshop(实时工作空间库)16.System ID Blocks(系统辨识模块集)17.Stateflow(有限状态流程库)18.Aerospace Blockset(航空模块集)23.Data Acquistion T
20、oolbox(数据采集工具箱)20.Signal Processing Blocks(信号处理工具箱)21.Image Acquistion Toolbox(图形采集工具箱)22.RF Blockset(射频工具箱)23.Video and Image Processing Blocks图像处理工具箱,新增工具箱:机构仿真工具箱 液压驱动工具箱,例1、考虑下图所示的简单的小车系统运动。,例1、考虑下图所示的简单的小车系统运动。,忽略摩擦力,运动微分方程为:,例1、考虑下图所示的简单的小车系统运动。,在matlab/simulink中搭建仿真模型:加入两个积分模块,第一个模块用来计算速度,第二个
21、模块用来计算位移,可用模块图表示为:,例1、考虑下图所示的简单的小车系统运动。,假定F=sin(t)为正弦激励,m=0.5。求010s 区间内的系统位移响应曲线,仿真结果如下图:,例1、考虑下图所示的简单的小车系统运动。,若要求同时输出位移和速度,则模型框图为:,例1、考虑下图所示的简单的小车系统运动。,仿真结果如下图:,在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLABSimulink 建模 仿真
链接地址:https://www.31ppt.com/p-5951732.html