收藏 分享(赏)

SIMULINK仿真连续系统建模.ppt

上传人:eukav 文档编号:4685410 上传时间:2019-01-07 格式:PPT 页数:51 大小:409.50KB
下载 相关 举报
SIMULINK仿真连续系统建模.ppt_第1页
第1页 / 共51页
SIMULINK仿真连续系统建模.ppt_第2页
第2页 / 共51页
SIMULINK仿真连续系统建模.ppt_第3页
第3页 / 共51页
SIMULINK仿真连续系统建模.ppt_第4页
第4页 / 共51页
SIMULINK仿真连续系统建模.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、SIMULINK仿真,连续系统建模,simulink 模块操作,1、向量化模块和标量扩展1)向量化模块在SIMULINK库中的几乎所有模块都是所谓的向量化模块。向量化模块输入量和输出量之间的关系是符合数学规则的向量关系 ,式中x1,x2,xn可以是标量或向量,但所有向量必须长度相同。,2)标量扩展标量扩展是向量化模块执行符合规则运算所必需具备的自适应能力。所谓标量扩展,是指将一个标量值转换为一个适当长度的向量,该向量的各元素值等于原来的标量值。标量扩展包含:输入的标量扩展及参数标量扩展。,例:演示“求和”模块的向量处理能力:输入扩展。 本例假设“求和”模块有2个输入端:一个输入三元向量1 2

2、3,另一个输入标量4,该模块执行功能的数学表达式为:1 2 3+4=5 6 7。在此,“求和”模块的第2个输入被扩展。相应的SIMULINK方块图如下图:,例: 演示“增益”模块的向量处理能力:参数扩展。 本例假设“增益”模块有一个输入三元向量1 2 3。该模块执行功能的数学表达为:1 2 3*0.5=0.5 1 1.5。相应的SIMULINK方块图见图:,信号线操作,1、产生连线 2、信号线的分支和折曲1)分支的产生在实际模型中,一个信号往往需要分送到不同模块的多个输入端,此时就需要绘制分支线(Branch line)。比如反馈控制系统中反馈线的绘制就要使用分支操作产生。分支线的绘制步骤如下

3、:将光标指向分支线的起点(即一已存在信号线上的某点);按住ctrl键,再按下鼠标左键;拖动鼠标,直至分支线的终点处,释放鼠标按钮。,2)信号线的折曲在构作方块图模型时,有时需要使两模块间的连线转向,以让出空白,绘制其他东西。产生“折曲”的过程是:选中已存在的信号线,将光标指向待折处,按住shift键,再按下鼠标左键,拖动鼠标,至适合处,释放鼠标。3)折点的移动移动折点的方法是:选中折线,将光标指向待移的折点处,当光标变为一个小圆圈时,按下鼠标左键并拖动鼠标至希望处,释放鼠标。,3、插入模块如果一个模块只有一个输入口和一个输出口,那么该模块可以直接被插入到一条信号线中间去。4、信号线标识(lab

4、el)添加标识:双击需要添加标识的信号线,弹出一个空白的文字填写框。在其中输入文本,作为对该信号线的标识。输入结束后,只需将光标移出该编辑框,点击鼠标左键即可。修改标识:点击需要修改的标识,原标识四周出现一个编辑框,此时即可修改标识。移动标识:点击标识,待编辑框出现后,将光标指向编辑框,按下鼠标后拖动至新位置。,复制标识:类似于移动标识,只是要求同时按下ctrl键,或者改用鼠标右键操作。 删除标识:点击标识,待编辑框出现后,双击标识使得整个标识被全部选中,按“delete”键。,常用的Source库信源,常用的Sink库信宿,连续系统建模,所谓连续时间系统,是指可以用微分方程来描述的系统。现实

5、世界中的多数物理系统都是连续时间的。连续系统可以分为两类:线性的和非线性的。用来建模连续系统的模块大多位于SIMULINK模块组队Continuous、Math以及Nonlinear模块库中。,积分模块直接构造微分方程求解模型,例:假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微分方程 ,u(t)是单位阶跃函数。 本例演示如何用积分器直接构搭求解该微分方程的模型。 步骤: 1)改写微分方程: 把原方程改写为:,利用积分模块构造微分方程求解模型的核心思想是: 经积分作用得 , 再经积分模块作用得到x。而 和x经代数运算又产生,按上图构造仿真模型。对各模块进行如下配置:

6、 u(t)输入模块:它的step time设置为0。模块名称由原来的Step改为St。 Gs增益模块:增益参数Gain设置为0.2。 求和模块:其图形形状Icon shape选择rectangular,使模块呈矩形。符号列表List of signs设置为+-。 积分模块:只是把他们的名称分别改为Int1,Int2。 G1和G2增益模块:它们的方向旋转可以借助菜单Format:Rotate Block实现。,Scope示波器:先双击该模块,出现示波窗;点击工具图标 ,引出参数设置页;在Data history页中,勾选Save data to workspace。这将送入示波器的数据同时被保存

7、在MATLAB基本空间的缺省名为ScopeData的构架数组中。 Clock模块:产生仿真时间数据,仅供To workspace模块用。 Mux模块:模型中的位移数据x与时间数据t组合成向量。 To workspace模块:专为演示而设置。位移数据x与时间数据t将以Variable name中的变量名称保存在MATLAB工作空间。,在模型窗口中选中菜单simulation:Parameters,打开仿真参数设置窗;在Solver页中,把仿真的停止时间Stop time设置为20。又为演示需要,在Workspace I/O页上,勾选Time和States栏,使模型仿真中产生的时间数据以tout,

8、状态以xout名称保存在MATLAB工作空间。 进行仿真,在示波器 窗口可以看见x 的变化曲线。,非线性系统,在实际中,严格意义上的线性系统很少存在,大量的系统或器件都是非线性的。为了提高仿真能力,SIMULINK库中包含了很多典型的非线性模块,如间歇性线性模块Backlash、继电器非线性模块Relay,死区非线性模块Dead zone等。下面以算例形式介绍非线性系统仿真模型的创建和使用。,例:物理背景:如图所示喷射动力车的定位控制问题。要求设计一个控制器,其目标是:当车辆的位移和速度为正时,控制器点燃右发动机;当车辆的位移和速度为负时,控制器点燃左发动机,直至车辆停止在坐标原点。,装置左右

9、喷射发动机的车辆示意图,1)根据车辆的动态方程,构作基本仿真模型在阻力忽略不计的假设下,据牛顿定理可写出 。又设喷射力F=1,车质量m=5,初始条件是 ,,图中各模块的设置为: Sum1求和模块:设置符号列表为- -。 Sign符号模块:它是参数固定的模块。当输入为正(或负)时,输出是+1(或-1);当输入为0时,输出也为0。 G1增益模块:据F/m=0.2,所以取增益为0.2。 Int1积分模块:它的输入是加速度,输出是速度。初始值为0。 Int2积分模块:它的输入是速度,输出是位移。初始值为1。 XY Gragh绘图器:它的上、下端口分别作为图形坐标的横、纵坐标变量。,2)为观察仿真时间进

10、程,引入仿真时钟显示。这部分功能的实现相对简单,且与基本仿真模型没有信号线连接。它由时钟Clock和数值显示器Display构成。,3)为模仿“车辆速度与位移小于某阈值时被认为控制目标达到”,引入仿真终止环节。就本例而言,假设 时,认为控制目标达到,于是终止仿真。执行这部分功能的模型如图,,具体的模块设置如下:Abs1和Abs2模块:这种模块无须设置,输出总等于输入的绝对值。Sum2模块:符号全用+。CC常数模块:它代表阈值0.01。RO运算模块:本例设置该模块的关系运算为=。这样当(上端口值=下端口值)成立时,该模块输出为1。 Stop模块:它被固定设置为当输入非零时,终止整个模型的仿真。,

11、4 )为模仿“符号切换的非瞬时性”,本例采用“定步长”Solver解算器 考虑到“符号变化时,喷射力F不可能瞬时产生的物理实际”,引入定步长Solver。如果切换时间设为0.05时间单位,那么操作步骤为:选中模型窗菜单Simulation:Parameters;在仿真参数设置窗的Solver页中,选择Solver Type为Fixed step,具体解算器时ode5;再在Fixed step size栏中填写0.05;(在不加其他干预情况下)解算器的可能最长工作时间Stop time为200。,5)为便于分析接近原点时的颤振现象,通过模型窗I/O设置保存仿真数据 选中模型窗菜单Simulati

12、on:Parameters,在仿真参数设置窗的Workspace I/O页中,勾选Time 栏State栏。 6)仿真操作和仿真结果观察 可以看到位移和速度都慢慢地趋近于0。,7)保存数据的利用和分析 为看清接近原点时的振颤现象,利用保存数据tout和xout画出相轨迹的指令如下: plot(xout(:,1),xout(:,2) grid on, axis(-0.2,1,-1,0.2), axis square xout(:,1) xlabel(fontsize 14 位移) ylabel(fontsize 14 速度),任意非线性模块及其应用,在SIMULINK库中,除一些固定形式的模块外

13、,还有若干函数形式可以由用户根据需要定义的“任意函数”模块,它们的模块形状见下图:,Fcn函数模块:该模块的输入可以是标量或向量,但输出一定是标量。对话窗只有一个填写栏。该栏中书写的表达式必须遵循三个规则:1)表达式符合C语言格式,执行的是标量运算,计算结果就是模块的输出。2)模块输入是标量时,必须用u变量名;输入是向量时,必须用u1, u2等向量元素名。3)表达式中引用的其他标量形式参量必须存在于MATLAB基本空间中。 MATLABA fcn函数模块:该模块的输入输出都可以是标量或向量。对话框只有两个填写栏。第一栏填写符合MATLAB规则的表达式。第二栏填写输出量的维数(output di

14、mensions)。该模块可以进行的运算比Fcn模块复杂,但速度较慢。,Look-Up Table 函数模块:一维查表函数模块。在其对话框中,给定“表格函数”,模块在根据所给表格对输入进行“插补”或“外推”运算后输出结果。 Look-Up Table(2-D) 函数模块:二维查表函数模块。在其对话框中,给定“表格函数”,模块在根据所给表格对输入进行“插补”或“外推”运算后输出结果。,例:轿车沿直线山坡路向前行驶。要求设计一个比例放大器,使轿车能以指定的速度运动。本例演示:1)仿真系统的创建;2)非线性模块的使用;3)任意函数模块的应用;4)体现“自下而上”建模方式 解: 1)轿车的运动方程:据

15、牛顿第二定律,可写出:,其中m是轿车质量,本例中取为100个质量单位;Fe是引擎动力,最大驱动力为1000,最大制动力为2000,即: ; 是空气阻力,它与轿车的速度平方成正比,第二项是考虑“阵风”而引入的; 是重力分量,这里正弦量是为考虑坡路与水平夹角变化而引入。 轿车的动力学的仿真模型: 部分模块的设置为:,Fcn输入模块:为“指令”驱动力Fc提供输入口。 SaOut输出模块:为输出轿车实际速度Sa提供输出口。 Max Thrust常数模块:用来设置驱动力的上限,取为1000。 Uplim取小模块:由最小或最大值MinMax模块通过设置而得。该模块对话窗的Function 栏取min,输入

16、端口数Number of input ports取2。它的功能是取2个输入中的小者为输出。,Max Brake常数模块:用来设置制动力的下限。取为2000。 LowLim取大模块:由最小或最大值MinMax模块通过设置而得。该模块对话窗的Function 栏取max,输入端口数Number of input ports取2。它的功能是取2个输入中的大者为输出。 Clockin输入模块:为接受仿真时间量t提供输入口。,FW函数模块:根据空气阻力数学模型进行设置的空气阻力FW模块。由于图中该模块的输入x,t构成向量,所以该模块表达式应写成0.001*(u1+20*sin(0.01*u2)2 Fh函

17、数模块:用来设置重力分量函数。该模块的输入为位移标量,输出为重力分量Fh 。函数表达式为:30*sin(0.0001*u),3)比例控制及仿真模型题目要求利用简单的比例控制。其工作原理是:根据期望速度和实际速度之差产生“指令”驱动力Fc。具体数学模型为 本例中取Ke=50。“指令”驱动力Fc和实际驱动力Fe的差别在于:前者是理论上需要的计算力,后者是受物理限制后实际能提供的力。,ScIn,SaIn分别是比例控制器的期望速度和实际速度输入口模块,而FcOut是“指令驱动力输出口模块。,4)构成完整的仿真模型 把前面创建的轿车动力学模型和器比例控制模型放在同一个新建模型窗口中,进行适当的连接,就可

18、以得到完整仿真模型。 删去动力学模型的ScIn输入口,使”滑键增益“Slider Gain模块的输出与那断点相接,接受指定的速度信号。本例把”滑键增益“模块的下限设为0,上限设为100。当然那”滑键增益“模块还需要“衡值”输入信号Constant的激励。 删去控制器模型的ClockIn输入口,使Clock信号源模块的输出与此断点相接。 为了观察比较,速度量还被送到数值显示器Display和示波器Scope。在仿真过程中可以从数值显示器看到轿车的实际车速。,5)仿真操作和说明完整仿真模型窗的仿真终止时间Stop time设置为10000,解算器Solver采用ode45。仿真前先分别打开滑键操作

19、窗口和示波器显示窗。在仿真过程中,若移动滑键,可以从模型窗的Slider Gain模块上看见变化的期望车速。与此同时也可看到:数值显示器所显示的实际车速,在控制作用下不断翻动地向期望车速逼近。,条件执行子系统,在SIMULINK模块库中,有两个特殊模块:Enable模块和Trigger模块。如果把这种模块放到某个子系统中,则该子系统是否起作用将取决外界的某个条件(状态或事件)是否满足,这样就构成了所谓的条件执行子系统(Conditionally Executed System)。这种子系统在创建复杂系统的仿真模型时十分有用。 最常见的条件执行子系统有:使能子系统(Enable Subsyste

20、m); 触发子系统(Trigged Subsystem), 触发使能子系统(Trigged and Enable Subsystem)。,例:利用使能原理构成一个半波整流器。本例演示使能子系统的创建及工作原理。 1)从SIMULINK库中提取三个模块:Sine wave, Subsystem, Scope到新建窗。 2)双击空子系统模块Subsystem, 打开其结构模型窗。 3)从SIMULINK库中拷贝In输入模块、Out输出模块、Enable使能模块到子系统的结构模型窗;把In模块的输出直接送到Out模块的输入端;Enable模块无须进行任何连接。我们用Enable的缺省设置。,4)按图

21、连接模块:,5)双击示波器模块,可以看见半波整流后的波形。,说明:使能子系统外观上有一个“使能”控制信号入口。“使能”是指:当且仅当“使能”输入信号为正时,该模块才接受In输入端的信号。 双击使能模块,可打开它的设置对话框。States when enabling有2个选项:若选reset,则“使能”时,将把所在子系统所有内部状态重置为指定的初值;若选held,则“使能”时,总把所在子系统所有内部状态保持在“前次使能”的终值上。Show output port若被勾选,则使能模块将出现一个输出口。它向外输送子系统“使能”时,使能子系统所接受到的信号。,触发子系统,例:利用触发子系统获得零阶保持

22、的采样信号。 1)构造如图仿真信号:,Pulse脉冲发生器设置:period为1,Duty cycle为50,Amplitude为1,start time为0。 sine wave发生器设置:amplitude为1,frequency为1,phase为0,start time为0。 subsystem是制作的触发子系统。它结构模型中的trigger触发模块取rising上升沿为触发方式。,触发子系统外观上有一个“触发”控制信号输入口。所谓“触发”是指:当且仅当“触发”输入口信号恰为所定义的某个“事件”发生时,该模块才接受in输入端的信号。子系统一旦被触发,其输出的值就保持不变,直到下次再触发才可能改变。 “触发事件”由子系统内地触发模块对话窗定义。有四种触发事件形式选择: rising上升沿触发:触发信号以增长方式穿越0时,子系统接受那时的输入值。 falling下降沿触发:触发信号以减小方式穿越0时,子系统接受那时的输入值。,either任意沿触发:每当触发信号穿越0时,子系统接受那时的输入值。 function-call:这种触发方式必须与S-函数配用。,

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

当前位置:首页 > 网络科技 > UML理论/建模

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报