计算机建模与仿真第7章.ppt
第7章 MATLAB的仿真集成环境-SIMULINK,MATLAB的SIMULINK是很有特色的仿真环境,在此环境中,用户可以用点击拖动鼠标的方式绘制和组织系统和电路,并完成仿真.在SIMULINK环境中,系统的函数和电路元器件的模型都用框图来表达,框图之间的连线表示了信号流动的方向.用户熟悉了模型库,就可以方便的进行系统和电路的仿真,而不必去记复杂的函数,这无疑是很实用的.,7.1 SIMULINK的优点,Simulink可以搭建:(1)通信系统物理层和数据链路层;(2)动力学系统;(3)控制系统;(4)数字信号处理系统;(5)电力系统;(6)生物系统;(7)金融系统等。,7.2 SIMULINK的应用,7.3 SIMULINK的工作环境simulink环境的进入和退出,simulink的启动:(1)在MATLAB的菜单栏上选择【File】,在下拉菜单中的【New】下选中【Model】(2)在MATLAB的工具栏上点击按钮,然后在打开的模型库浏览窗口菜单上点击按纽。(3)在MATLAB的文本窗口中键入“simulink”后回车,然后在打开的模型库浏览窗口的菜单上点击按纽。simulink的关闭:关闭所有模型窗口和Simulink模块库窗口即可,在MATLAB的工具栏上点击按钮,即可打开模型库浏览器。,7.3 SIMULINK的工作环境模型库浏览器,7.3 SIMULINK的工作环境模型库浏览器,连续系统模块库,离散系统模块库,查询表格模块库(插入和查询各种表格),数学运算模块库,逻辑与位运算模块库,间断系统模块库,信号源模块库,仪器仪表模块库,信号传输模块库,用户定义函数模块库,信号属性模块库,基本模块库,Simulink 的基本模块库包括16个子模块库,常用的模块库:常用的模块子库(Commonly Used Blocks)连续模块子库(Continuous)离散模块子库(Discrete)逻辑和位操作模块子库(logic and bit operation)查表函数模块子库(lookup Tables),一般数学函数子库(Math)信宿模块子库(Sinks)信源模块子库(Sources)用户定义的函数模块子库(User_defined Functions)端口与子系统(Ports&Subsystems),常用模块的参数设置,1 信号发生器信号发生器(signal generator)是信源模块子库Sources中的模块,双击信号发生器模块,会出现参数设置对话框。对话框的上半部分为参数说明;下半部分设置参数,Wave form为信号类型,Time(t)为仿真时间或外部时间,Amplitude为信号幅值,Frequency为频率。,2 三角函数,三角函数(Trigonometric Function)是数学函数子库Math中的一个模块,双击三角函数模块,会出现参数设置对话框。对话框的上半部分为参数说明,下半部为参数设置,其中Function为可供选择的三角函数,Output signal type为自动、实数和复数。,3 数学函数,数学函数(Math function)是数学函数子库Math中的一个模块,双击Math function模块,会出现参数设置对话框。上半部分为参数说明,下半部分为参数设置,其中Function为可供选择的数学函数,Output signal type为自动、实数和复数。,4 示波器,示波器(Scope)是常用的模块子库中的模块,用来接收输入信号并实时显示信号波形的曲线。示波器的参数设置对话框有两页,其中General 页可设置坐标轴数目Number of axes,浮点显示floating scope,时间范围Time range,采样增益Sampling;History 页可设置数据点数Limit data points to last,是否保存到工作空间Save data to workspace。,建模仿真的一般过程是:打开一个空白的编辑窗口;将模块库中模块复制到编辑窗口里,并依照给定的框图修改编辑窗口中模块的参数;将各个模块按给定的框图连接起来;设置仿真参数(确定仿真的步长、时间和仿真的算法等);用菜单选择或命令窗口键入命令进行仿真分析,在仿真的同时,可以观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修正;如果对结果满意,可以将模型保存。,7.4 SIMULINK建模仿真步骤,例题:仿真一阶惯性环节W(s)=1/(0.1s+1),在单位阶跃给定下的响应.解:(1)在SIMULINK的模型库中分别提取阶跃给定(step)、传递函数(Transfer Fcn)和示波器(Scope)3个模块,并连接组成仿真模型.,7.4 SIMULINK建模仿真步骤,(2)模块赋值:分别双击阶跃给定和传递函数两个模块,打开模块对话框,然后在框中设定参数.,7.4 SIMULINK建模仿真步骤,(3)设置模型仿真参数.在simulatiom菜单下用configuration parameters命令打开仿真参数对话框.在对话框中设置开始时间0.8s和终止时间1.6s,其他参数保持默认值.,7.4 SIMULINK建模仿真步骤,(4)启动仿真并观察结果:在仿真参数设定完成后,点击按钮”启动仿真,然后双击示波器模型打开示波器观察图形.若观察不清楚,可点击”.调至合适的坐标轴.,7.4 SIMULINK建模仿真步骤,(5)保存模型:用”File”菜单下的”Save”命令或工具栏上的按钮”进行文件的保存,此时文件的后缀名为.mdl.,7.4 SIMULINK建模仿真步骤,拖入模块:选中模块,按住鼠标左键不放拖到模块窗口移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按Delete键即可。若要删除多个模块,可以使用Shift键。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。,7.5 模块的基本操作和使用,转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。选中模块后,在菜单Format中选择Flip Block旋转180度(ctrl+i),选择Rotate Block顺时针旋转90度(ctrl+r)。改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,首先选中模块,然后用Format菜单中的Flip Name来实现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。,7.5 模块的基本操作和使用,颜色设定:选中模块,Format菜单中的Foreground Color可以改变模块的前景颜色,Background Color可以改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。(各个模块的参数设定均不相同,需要具体问题具体分析),7.5 模块的基本操作和使用,Simulink线的处理SIMULINK模型的构建是通过用线将各种功能模块进行连接而构成的。线的连接方法:将光标箭头指向模块的输出端,对准后,光标变成十字形,此时按下鼠标左键,拖拽十字形到另一个模块的输入端后松开鼠标左键,在两个模块的输出和输入端之间就出现了带箭头的连线,并且箭头表示了信号的流向。,7.5 模块的基本操作和使用,线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。线的分支:按住鼠标右键,在需要分支的地方拉出即可以。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。线的删除:选中线后按Delete键即可。设定标签:只要在线上双击鼠标,即可输入该线的说明标签。,7.5 模块的基本操作和使用,示波器的使用和保存双击示波器模块图标,即可弹出示波器的窗口画面,其上按钮相应的功能如下:,7.5 模块的基本操作和使用,打印,示波器参数,区域放大,X轴放大,Y轴放大,自动尺寸,保存轴的设定,恢复轴的设定,设定示波器参数,7.5 模块的基本操作和使用,改坐标轴数(输入信号端口数),时间范围(设定X轴最大值),选择标签贴放处,数据采样方式(默认),数据点数,数据存入工作空间,设定坐标轴范围:选中图形,点鼠标右键,在弹出的功能菜单中选择”axes properties”项,则可打开Y轴范围限制对话框,此时可重新设置Y轴范围,并可以给显示的信号命名.图形缩放:在示波器窗口有3个放大镜,分别用于图形的区域放大,X轴放大,Y轴放大.区域放大:点击,然后在需放大区域按下鼠标左键并斜向拖动,此时出现个矩形框,松开鼠标后,被矩形框,框住的部分被放大.X(Y)轴放大:点击(),然后沿X(Y)轴方向点击鼠标左键即可.,7.5 模块的基本操作和使用,7.6 SIMULINK的仿真算法,在SIMULINK仿真过程中选择合适的算法是很重要的,仿真算法是求常微分方程,传递函数,状态方程解的数值计算方法.这些方法主要有欧拉法(EULAR),阿达姆斯法(ADAMS),龙格-库塔法(Rung-kutta).这些算法都主要建立在泰勒级数的基础上.欧拉法是最早出现的一种数值计算的方法.它是数值计算的基础.它用矩形面积来近似积分计算.欧拉法比较简单,但精度不高.现在已经很少使用.阿达姆斯法是欧拉法的改进,它用梯形面积来近似积分计算.所以也称梯形法,梯形法每步都需要经过多次迭代,计算量较大.采用预报-矫正后只要迭代一次.计算量减少.但是计算时要用其他的算法计算开始的几步.龙格-库塔法是间接使用泰勒级数展开式的方法,它在积分区间内多预报几个点的斜率.然后进行加权平衡.用做计算下一点的依据.从而构造了精度更高的数值积分计算方法.如果取两个点的斜率就是二阶龙格-库塔法,取四个点的斜率就是四阶龙格-库塔法.,7.6 SIMULINK的仿真算法,变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五阶龙格库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。ode23:二/三阶龙格库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。,ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。ode23tb:是TR-BDF2的一种实现,TR-BDF2 是具有两个阶段的隐式龙格库塔公式。discrtet:当Simulink检查到模型没有连续状态时使用它。,7.6 SIMULINK的仿真算法,固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。ode4:四阶龙格库塔法,具有一定的计算精度。ode3:固定步长的二/三阶龙格库塔法。ode2:改进的欧拉法。ode1:欧拉法。discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。,7.6 SIMULINK的仿真算法,在仿真过程中,用户根据各种类型的模型特点,各种数值积分方法的计算特点和适用范围,才能正确地选择恰当的算法,而这一点往往是使用者难以掌握的,现在还没有一种对所有模型都适用的算法,一个简单的办法是当一个算法不能完成模型的计算时,选用另一种算法试试,如果还不行,就对模型或参数作一定的修改.在电力电子电路仿真中,一般采用可变步长类算法.,7.6 SIMULINK的仿真算法,7.7 单相半波可控整流电路,步骤1:新建一个模型窗口,命名为danxiangbanbo步骤2:打开SIMULINK模型库 1)从simpowersystems中的elements库中复制series RLC branch至模型窗口.2)从simpowersystems中的power electronics库复制detailed thyristor至模型窗口.3)从simpowersystems中的measurements库复制两个voltage measurtment至模型窗口.4)从simpowersystems中的electrical sources库复制AC voltage source至模型窗口.5)从simulink中的sources库复制pulse generator至模型窗口.6)从simulink中的sinks库复制scope至模型窗口.7)从simulink中的signal routing库复制demux至模型窗口.,7.7 单相半波可控整流电路,步骤3:将模型窗口中的模型做适当连接,得到想要的电路图如下:,7.7 单相半波可控整流电路,步骤4:对series RLC branch、detailed thyristor、AC voltage source、pulse generator的模型参数做适当设置如下:1)对series RLC branch模型,设R=1,L=0H,C=inf(电阻负载)2)对detailed thyristor模型,设Ron=0.001,Lon=0H,Vf=0.8V,Ic=0A,Tq(关断时间)=0s,Rs=10.3)对AC voltage source模型,幅值=100V,初相位=0度,频率=50Hz。4)对pulse generator模型,幅值=10V,周期=0.02s,脉宽占整个周期=20%,相位延迟=(1/50)*(60/360)s=1/300s(即触发角=60度)5)对detailed thyristor模型,其有个m输出端,该端口可以用来测量晶闸管上的电压和电流。,7.7 单相半波可控整流电路,步骤5:设置仿真参数:在simulatiom菜单下用configuration parameters命令打开仿真参数对话框.在对话框中设置开始时间0s和终止时间0.08s,选择ode23tb算法,其他参数保持默认值.步骤6:运行该电路,双击scope,可观察到所需波形。,7.7 单相半波可控整流电路,将负载参数改为R=,L=0.001H,C=inf(电感负载),存模型于danxiangbanbo2L.得波形如下:,改成阻感参数,观察波形.,7.7 单相半波可控整流电路,应用举例,例:仿真计算y(t)=sin(t)-sin(2t)。解题步骤:(1)运行Simulink并新建一个模型窗口(2)将所需模块添加到模型中(3)编辑模块组成模型(4)进行系统仿真参数设置(5)进行系统仿真(6)观察系统仿真结果,应用举例,例:用Simulink求出闭环系统的阶跃响应曲线,应用举例,应用举例,皮球以15米/秒速度从10米高地方落下,建立显示球弹跳轨迹的模型,应用举例,应用举例,结果如下:上图为v(t),下图为h(t).,