收藏 分享(赏)

第十章+simulink仿真基础(原模板).ppt

上传人:dwy79026 文档编号:5388017 上传时间:2019-02-27 格式:PPT 页数:191 大小:6.75MB
下载 相关 举报
第十章+simulink仿真基础(原模板).ppt_第1页
第1页 / 共191页
第十章+simulink仿真基础(原模板).ppt_第2页
第2页 / 共191页
第十章+simulink仿真基础(原模板).ppt_第3页
第3页 / 共191页
第十章+simulink仿真基础(原模板).ppt_第4页
第4页 / 共191页
第十章+simulink仿真基础(原模板).ppt_第5页
第5页 / 共191页
点击查看更多>>
资源描述

1、2019/2/27,1,第十章 SIMULNK仿真基础,2019/2/27,2,主要内容,SIMILINK与建模仿真 模块的基本操作 运行仿真 基本模块介绍 连续系统 子系统及其封装技术,2019/2/27,3,10.1 SIMULINK与建模仿真 10.1.1 SIMULINK,1. SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。 2.所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基

2、本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。,2019/2/27,4,10.1.2 SIMULNK应用领域,1. 通讯与卫星系统; 2. 航空航天系统; 3. 生物系统; 4. 船舶系统; 5. 汽车系统; 6. 金融系统; 7. 控制系统。,2019/2/27,5,10.1.3 SIMULINK的基本使用,1. 安装随MATLAB安装或单独安装。 2. 启动(1) 命令窗口中键入Simulink(2) 工具栏中,点击快捷按钮来打开

3、Simulink 窗口。,2019/2/27,6,出现 Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。,2019/2/27,7,注:在MATLAB命令窗口中输入Simulink3出现用图标形式显示的Library :Simulink3的Simulink模块库窗口。两种模块库窗口界面只是不同的显示形式,用户可以根据各人喜好进行选用,一般说来第二种窗口直观、形象,易于初学者,但使用时会打开太多的子窗口。,2019/2/27,8,3. 创建模型窗口 (1) 在Matlab窗口file菜单下选择new命令的model; (2) Simulink窗

4、口file菜单下选择new命令的model; (3) 单击Simulink窗口工具栏按钮。,2019/2/27,9,10.1.4 建模仿真,1.建模仿真的一般过程:(1)打开一个空白的编辑窗口;(2)将模块库中模块复制到编辑窗口里,并依照给定的框图修改编辑窗口中模块的参数;(3)将各个模块按给定的框图连接起来;(4)用菜单选择或命令窗口键入命令进行仿真分 析,在仿真的同时,可以观察仿真结果,如 果发现有不正确的地方,可以停止仿真,对参数进行修正;(5)如果对结果满意,可以将模型保存。,2019/2/27,10,2. Simulink模型基本结构,(1) 一个典型的Simulink模型包括如下三

5、种类型 的元素: 信号源模块 被模拟的系统模块 输出显示模块 (2) Simulink模型元素关联图,2019/2/27,11,信号源为系统的输入,它包括常数信号源、函数信号发生器(如正弦波和阶跃函数波等)和用户自己在MATLAB 中创建的自定义信号。 系统模块作为中心模块是Simulink仿真建模所要解决的主要部分。 系统的输出由显示模块接收。输出显示的形式包括图形显示、示波器显示和输出到文件或MATLAB 工作空间中三种。输出模块主要在Sinks 库中。,2019/2/27,12,例1:,10.1.5 仿真简单模型,2019/2/27,13,创建模型步骤,1. 添加模块从源模块库(Sour

6、ces)中复制正弦波模块(Sine Wave)。连续模块库(Continuous)复制积分模块(Integrator)。输出显示模块库(Sinks)复制示波器模块(Scope)。 2. 连接模块,2019/2/27,14,3. 运行仿真双击示波器模块,打开Scope窗口。双击模型窗口菜单中的SimulationStart,仿真执行,结果如图所示。,2019/2/27,15,2019/2/27,16,在仿真时需要将积分模块的初始值设置为-1,最终可以得到标准的余弦曲线。,2019/2/27,17,例2:利用simulink来计算“chirp”信号和正弦函数信号叠加后的信号波形。 (examp10

7、_1_2.mdl),2019/2/27,18,显示三个波形,2019/2/27,19,例3:单自由度系统:,初始条件:,要求:采用Simulink对系统进行仿真。 已知参数: m=1, c=1, k=1 (examp10_1_3.mdl),2019/2/27,20,解:,2019/2/27,21,2019/2/27,22,注:如果系统中没有阻尼,则动力方程为:(examp10_1_3_0.mdl),2019/2/27,23,解:,2019/2/27,24,主要内容,SIMILINK与建模仿真 模块的基本操作 运行仿真 基本模块介绍 连续系统 子系统及其封装技术,2019/2/27,25,10.

8、2 模块的基本操作 10.2.1 打开模型1. 新建模型2. 打开一个已存在的模型方法1:通过FileOpen命令;方法2:在MATLAB命令窗口中直接键 入模型名。,2019/2/27,26,10.2.2 模块操作 调整模块的大小选中模块,模块四角出现小方块,然后按住鼠标拖曳。 2. 旋转模块选中模块,然后选择菜单命令FormatRotate 模块将顺时针方向旋转90度。 3. 模块内部复制方法1:先按Ctrl键,再单击模块方法2:右键拖曳模块方法3:EditCopy和EditPaste方法4:选中模块,Ctrl+C复制,Ctrl+V粘贴方法5:右键快捷菜单,2019/2/27,27,4.

9、删除模块方法1:选中模块,按Delete键方法2:选中模块,然后从模型窗口中选择EditDelete方法3:选中模块,然后选择菜单EditCut删至剪贴板 5. 选中多个模块 方法1:按住Shift键,同时用鼠标单击想要选中的模块方法2:使用“范围框”,在使用“范围框”后,若想继续选择模块,可按住Shift键,再单击要选的模块即可,2019/2/27,28,注:若多个模块被选中,则这些模块可以被 当作一个整体进行操作,如移动、复制和删除等,操作方法和单个模块的操作方法相同。 6. 修改模块名鼠标左键双击模块名,则模块名进行编辑状态。编辑完标签后,在模块名外的任意位置上单击鼠标,则新的模块名将被

10、承认。,2019/2/27,29,7. 改变模块名位置选择菜单命令FormatFlip Name,模块名将发生翻转。若原模块名位置在模块的左边,则翻转到右边。若原模块名位置在模块的下方,则翻转到上方。 8. 模块名显示与否选中模块,然后通过选择菜单命令FormatHide Name,则模块的标签从屏幕上消失。此时Hide Name变成为Show Name,选中它可以重新显示标签。 9. 增加阴影选择菜单命令FormatShow Drop Shadow 则模块增加阴影。此时Show Drop Shadow变成为Hide Drop Shadow,选中它可以隐藏阴影。,2019/2/27,30,10

11、.2.3 信号线操作 1. 绘制信号线方法1: 由输出端口拖曳鼠标到输入端口,或拖曳鼠标由输入端口到输出端口。方法2: 先选中模块,然后按住Ctrl并用鼠标左键单击目标模块。 2. 断开模块间的连线方法1: 先按下Shift键,然后用鼠标左键拖动模块到另一个位置。方法2: 将鼠标指向连线的箭头处,当出现一个小圆圈圈住箭头时按下鼠标左键并移动连线。,2019/2/27,31,3. 在信号线之间插入模块 用鼠标拖动模块到信号线上,使得模块的输入/输出端口对准信号线。 4. 移动线断按下鼠标左键直接拖动信号线。 5. 移动节点选中信号线某段,单击选中此段,移动鼠标到黑色小方框上,当出现一个小圆圈时按

12、下鼠标左键移动信号线。 6. 删除信号线同删除模块一样。,2019/2/27,32,7. 信号线调整为斜线段先单击Shift按钮,将鼠标指向需要移动的 直线上的一点并按下鼠标左键拖动直线。 8. 信号线调整为折线段按住鼠标左键不放直接拖动直线。,2019/2/27,33,9. 信号线标签(1) 建立信号标签在直线上直接用鼠标左键双击,然后输入。(2) 复制信号标签按下Ctrl键,然后按住鼠标左键选中标签并拖动 。(3) 移动信号标签按住鼠标左键选中标签并拖动(4) 编辑信号标签在标签框内用鼠标左键双击,然后编辑(5) 删除信号标签按下 Shift键,然后用鼠标左键单击选中标签,再按Delete

13、键,2019/2/27,34,10.2.4 模型注释使用模型注释可以使模型更易读懂,其效果如同MATLAB 程序中的注释行一样。对于经常使用Simulink的用户,养成经常使用注释的习惯是非常重要的。 1. 建立注释在模型图标中用鼠标左键双击,然后输入文字。 2. 复制注释按下Ctrl键,然后按下鼠标左键选中注释文字并拖动。,2019/2/27,35,3. 移动注释按下鼠标左键选中注释并拖动。 4. 编辑注释单击注释文字,然后编辑。 5. 删除注释按下Shift键,然后用鼠标选中注释文字,再按Delete键。 6. 改变注释字体要改变注释内容的字体,先选中注释,选择模型窗口菜单中的【Forma

14、t Font】选项,就会出现一个字体选择的对话框,选中认为合适的字体,然后按【OK】。,2019/2/27,36,10.2.5 创建复杂模型通过两个算例来说明建模中的其他一些技巧。 例1: 一个生长在罐中的细菌的简单模型。假定细菌的出生率和当前细菌的总数成正比,死亡率和当前的总数的平方成正比。若以x 代表当前细菌的总数,则细菌的出生率可表示为:细菌的死亡率可表示为:细菌总数的总变化率可表示为出生率与死亡率之差。因此系统可表示为如下的微分方程形式:,2019/2/27,37,假定b=1/h,p=0.5/h,当前细菌的总数为100,计算一个小时后罐中的细菌总数。步骤一:添加模块这是一个一阶系统,因

15、此一个用来解微分方程的积分模块是必要的。积分模块的输入为 ,输出为 。,2019/2/27,38,2019/2/27,39,2019/2/27,40,2019/2/27,41,模型的起始时间默认为0,终止时间默认为10.0。需要改变终止时间时,旋转模型菜单【SimulinkParameters】,打开模型参数对话框,设置【Stop time】为10.0。现在模型就全部完成了,选择【FileSave】命令保存模型为bio_example,Simulink将以bio_example.mdl为文件名保存到指定的位置。,2019/2/27,42,步骤四:运行模型双击示波器模块,并选择【Simulink

16、Start】命令运行模型,示波器将绘制出仿真结果。,2019/2/27,43,例2: 三自由度结构强迫振动(examp10_2_2.mdl),2019/2/27,44,已知参数:m=1,k=1,p0=1,w=0.5要求:采用Simulink对系统进行动态仿真,计算时间050 解:,2019/2/27,45,2019/2/27,46,2019/2/27,47,10.2.6 模型拷贝到Word文档中 1. 拷贝到Word文档使用【EditCopy Model】命令,然后在Word 中粘贴. 2.在Word文档中编辑使用取消组合命令.,2019/2/27,48,主要内容,SIMILINK与建模仿真

17、模块的基本操作 运行仿真 基本模块介绍 连续系统 子系统及其封装技术,2019/2/27,49,10.3 运行仿真使用窗口仿真 使用MATLAB命令运行仿真,2019/2/27,50,10.3.1 使用窗口运行仿真优点:人机交互性强,不必记住繁琐的命令语句即可进行操作。 设置仿真参数选择菜单选项【SimulationConfiguration Parameters】,可以对仿真参数及算法进行设置。,2019/2/27,51,1. 解法设置页(Solver)当选中菜单选项【SimulationConfiguration Parameters】后,出现参数及算法等设置页,再点击【Solver】,则

18、出现解法设置页,如图所示。,2019/2/27,52,各种ode命令地说明,2019/2/27,53,2. Data Import/Export面板该面板主要用于向Matlab7.0工作空间输出模型仿真结果数据,或从Matlab7.0工作空间读入数据到模型,如图所示。,2019/2/27,54,(1) 从MATLAB工作空间加载(Load from workspace)虽然Simulink提供了多种系统输入信号,但并不能完全满足需要。Simulink允许使用用户自定义的信号作为系统输入信号。在Load from workspace框中,用户可以设置MATLAB中的变量作为系统输入信号或系统状态

19、初值,如下所述.,2019/2/27,55,Input:用来设置系统输入信号,其格式为t, u,其中t、u 均为列向量,t 为输入信号的时间向量,u 为相应时刻的信号取值。可以使用多个信号输入,如t, u1, u2。输入信号与Simulink的接口由Inport模块(In1模块)实现。Initial state:用来设置系统状态变量的初始值。初始值可为列向量。,2019/2/27,56,(2) 仿真结果输出到MATLAB的工作空间(Save to workspace)可以将系统的仿真结果、系统仿真时刻、系统中的状态或指定的信号输出到MATLAB的工作空间中,以便用户对其进行定量分析,如下所述。

20、 Time:输出系统仿真时刻。 States:输出系统模型中的所有状态变量。 Output:输出系统模型中的所有由Output 模块(即Out1 模块)表示的信号。 Final state:输出系统模型中的最终状态变量取值,即最后仿真时刻处的状态值。,2019/2/27,57,(3) 输出选项(Save options)Limit data points to last:表示输出数据的长度(从信号的最后数据点记起)。 Format:表示输出数据类型。共有三种形式:Structure with Time(带有仿真时间变量的结构体)、Structure(不带仿真时间变量的结构体)、Array(信号

21、数组)。,2019/2/27,58,例:假定两个输入信号都为正弦信号sin(t),并且假定初始值为0,1(examp10_3_1),2019/2/27,59,2019/2/27,60,(1)将Load from workspace栏的两项全部选上,并且将Input栏改写为t, u, u; Initial state栏改写为0,1 (2)将Save to workspace栏的四项全部选上。 (3)Save option栏的三项分别为:1000,1,Array (4)运行仿真前,首先需要生成系统输入信号,在MATLAB命令窗口中键入如下命令:t=0:0.1:10;t=t;u=sin(t);,20

22、19/2/27,61,示波器显示图形,2019/2/27,62,MATLAB命令窗口使用Plot画出图形,2019/2/27,63,运行whos的结果:,Name Size Bytes Classt 101x1 808 double arraytout 51x1 408 double arrayu 101x1 808 double arrayxFinal 1x2 16 double arrayxout 51x2 816 double arrayyout 51x2 816 double array上面t和tout的维数不相同,这是因为在Solver中采用了变步长解法,若采用定步长法(步长取0.1

23、)则维数相同。,2019/2/27,64,10.3.2 使用MATLAB命令运行仿真,MATLAB提供了sim命令,用户可以在MATLAB 的环境下以命令行或M 文件的形式运行Simulink模型。 使用命令行方式,用户可以在脚本文件中重复地对同一系统在不同的仿真参数或不同的系统模块参数下进行仿真,而无需一次又一次启动Simulink图形窗口中的Start Simulink。 注:下面对进行动态系统仿真的命令逐一介绍。首先看一个例子。,2019/2/27,65,例:建立一个简单的动态系统,其功能如下:(1)系统的输入为一单位幅值、单位频率的正弦信号;(2)系统的输出信号为输入信号的积分。要求如

24、下:(1)系统的输入信号由MATLAB 工作空间中的变量提供,时间010s;(2)使用MATLAB绘制原始输入信号与系统运算结果的曲线。,2019/2/27,66,问题描述:原函数:sin(t) 时间区域:t=010s原函数的积分为:若取零初始条件,则有:C=1 因此得到:,2019/2/27,67,Simulink模型 (保存文件名为:command_in_out),2019/2/27,68,对Data Impot/Export进行如下设置:(1)Load from workspace 栏:Input 打勾,并填入sim_input(由MATLAB 工作空间输入的输入名)。Initial s

25、tate 不选。(2)Save to workspace 栏:Time 和Output 项勾上,State 和Final state 项不勾。(3)Save options 栏依次为:1000,1,Array,2019/2/27,69,在MATLAB工作空间中定义输入变量sim_input如下:t = 0: 0.1: 10; t = t; % 表示输入信号的时间范围u = sin( t ); % 产生输入正弦信号sim_input= t, u ; % 传递给Simulink系统模型的变量,2019/2/27,70,然后运行Simulink仿真。最后在MATLAB工作空间运行以下命令:Plot(

26、t,u,tout,yout,-);grid,2019/2/27,71,10.3.2.1 使用sim命令进行动态系统仿真,1. 使用语法sim命令的格式为: t, x, y = sim( model, timespan, options, ut) t, x, y1, y2, , yn = sim( model, timespan, options, ut),以上是完整的语法格式,实际使用时可以省略其中的某些参数设置而采用默认参数。除了参数“model”外,其它的仿真参数设置均可以取值为空矩阵,此时sim命令对没有设置的仿真参数使用默认的参数值进行仿真,默认的参数值由系统模型框图决定。用户可以使用

27、sim命令的options 参数对可选参数进行设置,这样设置的仿真参数将覆盖模型默认的参数。,2019/2/27,72,2. 参数说明,(1) model:需要进行仿真的系统模型框图名称; (2) timespan:系统仿真的时间范围(起始至终止时间),可有如下形式:tFinal:设置仿真终止时间。仿真起始时间默认为0;tStart tFinal:设置起始时间(tStart)与终止时间(tFinal);tStart OutputTimes tFinal:设置起始时间(tStart)与终止时间(tFinal),并且设置仿真返回的时间向量tStart OutputTimes tFinal,其中tS

28、tart、OutputTimes、tFinal必须按照升序排列。,2019/2/27,73,(3) options:由simset命令所设置的除仿真时间外的仿真参数; (4) ut:表示系统模型顶层的外部可选输入。ut可以是MATLAB 函数。可以使用多个外部输入ut1、ut2、。 (5) t:返回系统仿真的时间向量。 (6) x:返回系统仿真的状态变量矩阵。 (7) y:返回系统仿真的输出矩阵。按照顶层输出Outport模块的顺序输出。如果输出信号为向量输出,则输出信号具有与此向量相同的维数。 (8) y1,yn:返回多个系统仿真的输出。,2019/2/27,74,3 . 举例说明,例1:简

29、单仿真(examp10_3_3.m)输入sin(t)对于前面的动态系统 command_in_out,在前面进行仿真时没有使用命令行方式,在此采用命令行语句进行仿真。在仿真之前,首先使用仿真参数设置对话框设置参数,然后在MATLAB命令窗口中键入如下命令:,2019/2/27,75,clear, t=0:0.1:10; t=t; %表示输入信号的时间范围 u=sin(t); sim_input=t,u; %传递给Simulin系统模型的变量 tout,x,yout=sim(command_in_out); %使用sim进行系统仿真,仿真参数取与前面相同 plot(t,u,tout,yout,-

30、); grid,2019/2/27,76,2019/2/27,77,例2:仿真时间设置,在前面已经对sim命令中的仿真时间参数timespan设置做了介绍。Timespan具有三种使用形式,根据不同动态系统的不同要求,用户可以选择使用如下所示的三种形式进行系统仿真: t, x, y =sim(model, tFinal) t, x, y = sim(model, tStart, tFinal) t, x, y =sim( model, tStart outputTimes tFinal),2019/2/27,78,此外在默认情况下,系统仿真的输出结果(输出时间、状态和运算结果)受到Simuli

31、nk求解器仿真步长的控制,因而系统仿真输出结果也受到求解器步长的控制。如果需要在指定的时刻输出系统仿真结果,则需要使用仿真时间设置的第三种方式,其中tStart outputTimes tFinal表示输出时间向量,此向量为一递增行向量。在sim命令中使用timespan设置系统仿真时间范围,会覆盖Simulink原来的仿真时间设置,但是并不会影响到系统模型。,2019/2/27,79,以前面command_in_out为例进行说明。仿真参数设置对话框内的设置与前面相同。使用四组不同的仿真时间对此系统进行仿真。为了与系统模型文件command_in_out.mdl区别,所编制的M文件名取为co

32、mmand_in_out_m.m。若M文件名取为command_in_out.m,则在MATLAB工作空间运行时,将返回系统模型文件框图。程序如下:,2019/2/27,80,t=0:0.1:10; t=t; u=sin(t); sim_input=t,u; tout1,x1,yout1=sim(command_in_out,5); 仿真时间范围05s,输出时间向量tout1 由Simulimk的求解器步长决定 tout2,x2,yout2=sim(command_in_out,1 8); 仿真时间范围18s,输出时间向量tout2 由Simulimk的求解器步长决定 tout3,x3,you

33、t3=sim(command_in_out,1:8); 仿真时间范围18s,并且每隔1s 输出一次,即输出时间变量为1 2 3 4 5 6 7 8 tout4,x4,yout4=sim(command_in_out,1:0.2:8); 仿真时间范围18s,并且每隔0.2s 输出一次,即输出时间变量为1 1.2 1.4 7.6 7.8 8 subplot(2,2,1); plot(t,u,tout1,yout1,*); subplot(2,2,2); plot(t,u,tout2,yout2,*); subplot(2,2,3); plot(t,u,tout3,yout3,*); subplot

34、(2,2,4); plot(t,u,tout4,yout4,*);,2019/2/27,81,2019/2/27,82,例3:外部输入变量设置,前面对动态系统command_in_out进行仿真时,通过设置Simulink仿真参数设置对话框中Data Import/Export面板中的外部变量输入,以使系统在仿真过程中获取输入信号sim_input。除了使用这种方法从MATLAB工作空间中获得系统输入信号之外,用户还可以通过使用sim命令中的ut参数来设置系统的外部输入信号。下面介绍如何使用ut参数设置外部输入信号。以command_in_out为例进行说明。使用如下命令:t, x, y=si

35、m(model, timespan, options, ut)ut为一个具有两列的矩阵,第一列表示外部输入信号的时间,第二列代表与时间列相对应的外部输入信号。,2019/2/27,83,MATLAB程序(command_in_out_m2.m),t=0:0.1:10; t=t; u=sin(t); sim_input=t, u; tout1, x1, yout1=sim(command_in_out, 10); 使用Simulink仿真参数对话框中的workspace I/O 从MATLAB 工作空间中获得输入信号 u=cos(t); ut=t, u; 改变系统输入信号 tout2, x2,

36、yout2=sim(command_in_out, 10, , ut); 使用Sim中的ut参数获得系统输入信号,ut的使用会覆盖由Workspace I/O 的系统输入设置,这一点可以在下面的系统仿真结果图形中反映出来 subplot(2, 1, 1); plot(tout1, yout1); grid subplot(2, 1, 2); plot(tout2, yout2); grid,2019/2/27,84,2019/2/27,85,图中上图表示系统输入为sin(t)时的相应曲线,下图表示cos(t)时的相应曲线。从图中可明显看出,当使用sim命令的ut参数时,Simulink仿真参数

37、设置对话框中的设置被覆盖。以前对话框中的外部输入是名为sim_input的正弦信号,而采用ut参数后执行的余弦输入信号。注意:这里指的“覆盖”,并不是在Workspace I/O 对话框的Input中,将sim_input改变成了ut,事实上并没有改变,只是不执行sim_input,而执行了命令行中的ut。,2019/2/27,86,10.3.2.2 simset命令Simset命令是用来创建和编辑options结构的。 10.3.3.3 simget命令Simget命令用来获得系统模型的仿真参数设置。 10.3.2.4 simplot命令使用语法:Simplot(data);Simplot(

38、time,data);说明:data是动态系统仿真结果的输出数据,一般由outport模块,To Workspace模块等产生的输出,其数据类型可以为矩阵、向量、或结构体等。,2019/2/27,87,主要内容,SIMILINK与建模仿真 模块的基本操作 运行仿真 基本模块介绍 连续系统 子系统及其封装技术,2019/2/27,88,10.4.1 连续系统模块作用:大多数物理系统可以用微分方程进行描述,因此可以用连续系统模拟。最简单的模型是线性模型和定常模型。例如,振动理论中的动力学方程:其中,X 为系统的广义坐标列向量,M 为质量矩阵,C 为阻尼矩阵,K 为刚度矩阵,P(t)为外部激励列向量

39、。,2019/2/27,89,在Simulink中,用来模拟连续系统的基本模块有四个:增义模块,求和模块,微分模块,积分模块。除了这四个基本模块,传递函数模块也经常用来模拟物理系统和控制器。,2019/2/27,90,1. 增益模块作用:使增益模块的输入信号乘以一个常数,并输出。可用代数表达式表示为: y(t)= k x(t)简图如下:注:y(t)、x(t)、k可以为标量、向量或矩阵。,2019/2/27,91,2019/2/27,92,2. 求和模块作用:对两个或多个信号进行求和运算。可用代数表达式表示为:c= a + b两种形状:圆形和方形。求和模块必须至少有一个输入而仅有一个输出。输入的

40、正负号的数目由双击模块进入编辑栏进行设定。求和模块不但可以进行标量求和运算,也可以进行向量或矩阵求和运算,但是标量或矩阵的维数必须相等,2019/2/27,93,2019/2/27,94,3. 微分模块(examp10_4_1.mdl)作用:计算输入对时间的变化率。代表如下微分方程:微分模块如图所示:考虑对正弦信号sin (t) 的微分:Simulink模型框图和仿真结果如下页图形所示。,2019/2/27,95,2019/2/27,96,4. 积分模块(examp10_4_2.mdl)作用:计算输入信号从起始时间到当前时刻对时间的积分。代表如下微分方程:积分模块如图所示:,2019/2/27

41、,97,例:,2019/2/27,98,5. 简单物理模型利用前面所介绍的这些模块可以模拟由线性微分工程描述的任何物理模型。例:考虑如下所示的简单的小车系统运动。,2019/2/27,99,假定F=sin(t) 为正弦激励,m=0.5。求系统位移响应曲线。(examp10_4_3.mdl),2019/2/27,100,例:(examp10_4_4.mdl),2019/2/27,101,6. 传递函数模块传递函数表示法频繁地应用于控制系统设计和系统的动态模拟。传递函数定义为系统在零初始条件下输出的Laplace变换与输入的Laplace变换之比。传递函数是一种描述系统动力学输入输出关系的简便方法

42、。,2019/2/27,102,例:,2019/2/27,103,2019/2/27,104,例:(examp10_4_3_0.mdl),2019/2/27,105,注:对传递函数模块的说明: 传递函数模块只适用于单输入单输出系统,即单自由度系统,但无法应用于多输入多输出系统,即多自由度系统。 用传递函数模块对线性定常系统进行仿真,能够使仿真模型简单和紧凑,但是无法输出内部变量,如x 的导数。 无法适用具有初始条件的情况。,2019/2/27,106,10.4.2 状态空间模块,状态空间模块可以起到与传递函数模块相同的作用。所不同的是,状态空间模块允许用户指定初始条件,并且可以共享内部变量。另

43、外,状态空间模块可以用来模拟多输入多输出系统。,2019/2/27,107,1. 状态空间概念,2019/2/27,108,2. 线性单输入输出系统(examp10_4_4_0.mdl),2019/2/27,109,说明:对于此例,因为考虑的是没有外部输入的自由振动,因此状态空间模块可以没有左端输入。,2019/2/27,110,说明:左图取C=1,1则在scope中显示出位移和速度数据叠加后的数据的图形。示波器输出为y的图形。y=1,1x;x,2019/2/27,111,若取C=1,0,则示波器显示位移时程,若取C=0,1,则示波器显示速度时程,2019/2/27,112,若取C=1,0;0

44、,1, D=zeros(2,1) 则示波器显示位移、速度时程,2019/2/27,113,3. 多输入输出系统(examp10_4_4_1.mdl),2019/2/27,114,2019/2/27,115,2019/2/27,116,示波器显示的第一个质量的位移时程 C=1,0,0,0,示波器显示的两个质量的位移时程 C=1,0,0,0;0,1,0,0 D=zeros(2,1),2019/2/27,117,示波器显示的两个质量的速度时程 C=0,0,1,0;0,0,0,1 D=zeros(2,1),示波器显示的两个质量的位移、速度时程 C=1,0,0,0;0,1,0,0;0,0,1,0;0,0

45、,0,1 D=zeros(4,1),2019/2/27,118,10.4.3 离散系统模块,离散系统采用差分方程表示。离散信号是一组以采样周期为间隔的离散时间序列。对于大多数的物理系统,信号原本都是在时间上连续的。但在对信号的采集过程中,需要通过传感器等采集工具对信号进行采集,因此最终得到的信号都是以采样周期为时间间隔的离散数据。若原物理系统也用离散数据形式进行描述,则构成了离散时间系统。,2019/2/27,119,离散增益模块 离散求和模块 离散延迟模块 时间离散积分模块 简单离散系统模型 离散传递函数模块,与连续系统采用的模块相同,2019/2/27,120,10.4.4 离散状态空间模

46、块,1. 连续时间系统的离散化式(3)中的两个变量将于有限时间内趋于常值矩阵。,2019/2/27,121,因此,式(1)所示的连续时间系统就转换成了式(4)式所示的离散时间系统。矩阵F为离散时间系统的系统矩阵,G为离散时间系统的输入矩阵。 2. F和G的计算根据矩阵指数的定义,有:同时,求得:,2019/2/27,122,3. 采用离散状态空间模块进行仿真对于两自由度系统:,2019/2/27,123,2019/2/27,124,连续时间系统的系统矩阵,离散时间系统的系统矩阵(假定采样周期为T=0.02),注:在matlab命令窗口中求: F=expm(A*T),2019/2/27,125,

47、2019/2/27,126,在状态空间模块中输入:A=0.9988, 0.0008, 0.02, 0;0.0004, 0.9996, 0, 0.02;-0.1197, 0.0798, 0.9948, 0.0028; 0.0399, -0.0399, 0.0014, 0.9986B=0;0;0;0 %因为没有外部输入C=1,0,0,0 %不能写成C=0,0,0,0,否则输出为0D=0初值输入为:0.2;0;0;0 %也可写为0.2,0,0,0步长输入为:0.02,2019/2/27,127,示波器显示的第一个质量的位移时程 C=1,0,0,0,示波器显示的两个质量的位移时程 C=1,0,0,0;

48、0,1,0,0 D=zeros(2,1),与前面连续时间系统的仿真结果一致。,2019/2/27,128,主要内容,SIMILINK与建模仿真 模块的基本操作 运行仿真 基本模块介绍 连续系统 子系统及其封装技术,2019/2/27,129,本章学习内容和目的,进一步掌握连续系统的建模和仿真技巧 掌握向量线性系统的描述方法 结合蹦极跳的算例领会复杂系统的建模方法与仿真,2019/2/27,130,10.5.1 积分模块高级积分器,在使用Simulink对实际的动态系统进行仿真时,积分运算可以说是Simulink求解器的核心技术之一。在前面使用过积分模块对数据进行积分处理,事实上,所使用的模块式

49、积分模块的一种简单积分方式。所谓的重置积分方式是指当重置信号触发时将模块的输出重置为初始条件。本节积分模块的重置积分模式高级积分器进行介绍。,2019/2/27,131,1. 对积分器的各个端口进行简单的介绍下图分别为使用缺省参数设置下的积分器外观与选择所用参数设置下的积分器的外观比较。,2019/2/27,132,(1)External State:为外部重置设置。用在当重置信号发生触发事件时,模块将按照初始条件重置状态量。可以采用不同的触发方式对积分器状态进行重置:none:关闭外部重置;rising: 当模块接收到的触发信号上升通过零点时,重置过程开始;falling:模块接收到的触发信号下降通过零点时,重置过程开始;either:无论触发信号上升或下降通过零点,重置过程都开始; level:当触发信号非零时,使得积分器输出保持在初始状态。,

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

当前位置:首页 > 实用文档 > PPT模板素材

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


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

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

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