资源描述:
《simulink仿真基础之数值积分法仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本章主要教学内容本章主要介绍控制系统数学模型的相关知识,通过本章的学习,读者应掌握以下内容:求解常微分方程数值解的一般方法数值积分法的基本概念及其常用方法以系统微分方程或传递函数作为数学模型的仿真过程及程序设计方法以系统动态结构图作为数学模型的仿真过程及程序设计方法仿真步长的选择与系统仿真精度和稳定性的对应关系快速仿真算法的概念、特点及其应用第6章数值积分法仿真6.1数值积分法6.1.1概述数字仿真模型、算法及仿真工具控制系统的数字仿真是利用数字计算机作为仿真工具,采用数学上的各种数值算法求解控制系统运动的微分方程,得到被控物理量的运动规律。通常,计算机模拟被控对象是用一定的仿真算法来实现
2、被控对象的运动规律,这是基于被控对象的数学模型来完成的。控制系统的数学模型经过合理的近似及简化,大多数建立为常微分方程的表达形式。由于数学计算的难度和实际系统的复杂程度,在实际中遇到的大部分微分方程难以得到其解析解,通常都是通过数字计算机采用数值计算的方法来求取其数值解。在高级仿真软件(例如MATLAB)环境下,已提供了功能十分强大、且能保证相应精度的数值求解的功能函数或程序段,使用者仅需要按规定的语言规格调用即可,而无需从数值算法的底层考虑其编程实现过程。6.1.2离散化原理在数字计算机上对连续系统进行仿真时,首先遇到的问题是,数字计算机的数值及时间都是离散的(计算精度,指令执行时间),
3、而被仿真系统的数值和时间是连续的,后者如何用前者来实现?设系统模型为:,其中u(t)为输入变量,y(t)为系统状态变量。令仿真时间间隔为h,离散化后的输入变量为u’(tk),其中tk表示t=kh。如果u’(tk)≈u(tk),y’(tk)≈y(tk),则认为两模型等价,称为相似原理。对仿真建模方法有三个基本要求:1、稳定性,若原系统是稳定的,则离散化后的仿真模型也得是稳定的2、准确性,绝对或相对误差小于规定误差3、快速性,数字仿真是一步步推进的,由某个初始值y0出发,依次计算出y1、y2…yk,每一步计算所需时间决定了仿真速度。6.1.3数值积分法一般情况下,在控制系统仿真中最常用、最基本
4、的求解常微分方程数值解的方法主要是数值积分法。对于形如的系统,已知系统状态变量y的初值y0,现要计算y随时间变化的过程y(t),对微分方程的积分可以写作:右图所示曲线下的面积就是y(t),由于难以得到积分的数值表达式,所以采用近似的方法,常用有三种形式:欧拉法梯形法龙格一库塔法欧拉公式,采用矩形面积近似积分结果,即当t=tk+1时hk=tk+1-tk,若步距不变,则hk=h.为了提高精度,人们提出了“梯形法”,其中最简单的是亚当姆斯预报—校正公式,先用欧拉法估计近似值,然后用梯形法进行校正:龙格-库塔法的基本原理在连续系统仿真中,主要的数值计算工作是求解一阶微分方程:若已知y的初值y0,再
5、按离散化原理,对上式我们可以写成:再对上式的右端函数f(t,y)(为任意非线性函数)在tk附近展开成泰勒级数,依照展开的阶次不同我们就构成了不同的龙格-库塔公式。二阶龙格—库塔公式,记在tk时刻的状态变量为yk,并定义两个附加向量型变量:四阶龙格—库塔公式:不论几阶RK法,它们的计算公式都是由两部分组成,即上一步的结果yk和步长h乖以tk至tk+1时间间隔间各外推点的导数ki的加权平均和·有了上面的数学算法,就可以用MATLA编写出该算法的函数:function[tout,yout]=rk4(odefile,tspan,y0)t0=tspan(1);th=tspan(2);iflength
6、(tspan)<=3,h=tspan(3)else,h=tspan(2)-tspan(1);th=tspan(2);endtout=[t0:h:th]’;yout=[];fort=tout’k1=eval([odefile’(t,y0)’]);k2=eval([odefile’(t+h/2,y0+0.5*k1)’]);k3=eval([odefile’(t+h/2,y0+0.5*k2)’]);k4=eval([odefile’t+h,y0+k3’]);yout=[yout;y0’];end其中,tspan可以有两种构成方法:一是可以是一个等间距的时间向量;二是tspan=[t0,th,h]
7、,t0和th为计算的初始及终止值,h为计算步长,odefile是一个字符串变量,表示微分方程的文件名,y0是初值列向量,函数调用完成后,时间向量与各个时刻状态变量构成的矩阵分别由tout和yout返回.MATLAB提供了两个RK法函数ode23()和ode45(),一个采用二阶三级公式,一个采用四阶五级RK法,并采用了自适应变步长的求解方法,即当解的变化较慢时采用较大的计算步长,以加快计算速度;当方程的解变化得较快时,积