数值积分法仿真

收藏

编号:210553894    类型:共享资源    大小:200KB    格式:PPT    上传时间:2023-05-17
30
积分
关 键 词:
数值 积分 仿真
资源描述:
本章主要教学内容本章主要教学内容 本章主要介绍控制系统数学模型的相关知识,通本章主要介绍控制系统数学模型的相关知识,通过本章的学习,读者应掌握以下内容:过本章的学习,读者应掌握以下内容:求解常微分方程数值解的一般方法求解常微分方程数值解的一般方法数值积分法的基本概念及其常用方法数值积分法的基本概念及其常用方法以以系系统统微微分分方方程程或或传传递递函函数数作作为为数数学学模模型型的的仿仿真真过过程程及及程程序序设计方法设计方法以系统动态结构图作为数学模型的仿真过程及程序设计方法以系统动态结构图作为数学模型的仿真过程及程序设计方法仿真步长的选择与系统仿真精度和稳定性的对应关系仿真步长的选择与系统仿真精度和稳定性的对应关系快速仿真算法的概念、特点及其应用快速仿真算法的概念、特点及其应用 第第6 6章章 数值积分法仿真数值积分法仿真 16.1 数值积分法数值积分法 6.1.1 概述 数字仿真模型、算法及仿真工具数字仿真模型、算法及仿真工具 控制系统的数字仿真是利用数字计算机作为仿真工具,采用数学上的各种数值算法求解控制系统运动的微分方程,得到被控物理量的运动规律。通常,计算机模拟被控对象是用一定的仿真算法来实现被控对象的运动规律,这是基于被控对象的数学模型来完成的。控制系统的数学模型经过合理的近似及简化,大多数建立为常微分方程的表达形式。由于数学计算的难度和实际系统的复杂程度,在实际中遇到的大部分微分方程难以得到其解析解,通常都是通过数字计算机采用数值计算的方法来求取其数值解。在高级仿真软件(例如MATLAB)环境下,已提供了功能十分强大、且能保证相应精度的数值求解的功能函数或程序段,使用者仅需要按规定的语言规格调用即可,而无需从数值算法的底层考虑其编程实现过程。26.1.2 离散化原理 在数字计算机上对连续系统进行仿真时,首先遇到的问题是,数字计算机的数值及时间都是离散的(计算精度,指令执行时间),而被仿真系统的数值和时间是连续的,后者如何用前者来实现?设系统模型为:,其中u(t)为输入变量,y(t)为系统状态变量。令仿真时间间隔为h,离散化后的输入变量为u(tk),其中tk表示t=kh。如果 u(tk)u(tk),y(tk)y(tk),则认为两模型等价,称为相似原理。对仿真建模方法有三个基本要求:1、稳定性,若原系统是稳定的,则离散化后的仿真模型也得是稳定的2、准确性,绝对或相对误差小于规定误差3、快速性,数字仿真是一步步推进的,由某个初始值y0出发,依次计算出y1、y2yk,每一步计算所需时间决定了仿真速度。3 6.1.3 数值积分法数值积分法 一般情况下,在控制系统仿真中最常用、最基本的求解常微分方程数值解的方法主要是数值积分法。对于形如 的系统,已知系统状态变量y的初值y0,现要计算y随时间变化的过程y(t),对微分方程的积分可以写作:右图所示曲线下的面积就是y(t),由于难以得到积分的数值表达式,所以采用近似的方法,常用有三种形式:欧拉法梯形法龙格一库塔法 4欧拉公式欧拉公式,采用矩形面积近似积分结果,即当t=tk+1时hk=tk+1-tk,若步距不变,则hk=h.为了提高精度,人们提出了“梯形法”,其中最简单的是亚当姆斯预报亚当姆斯预报校正公式校正公式,先用欧拉法估计近似值,然后用梯形法进行校正:5龙格龙格-库塔法的基本原理库塔法的基本原理在连续系统仿真中,主要的数值计算工作是求解一阶微分方程:若已知y的初值y0,再按离散化原理,对上式我们可以写成:再对上式的右端函数f(t,y)(为任意非线性函数)在tk附近展开成泰勒级数,依照展开的阶次不同我们就构成了不同的龙格-库塔公式。6二阶龙格二阶龙格库塔公式库塔公式,记在tk时刻的状态变量为yk,并定义两个附加向量型变量:7四阶龙格库塔公式:不论几阶RK法,它们的计算公式都是由两部分组成,即上一步的结果yk和步长h乖以tk至tk+1时间间隔间各外推点的导数ki的加权平均和8有了上面的数学算法,就可以用MATLA编写出该算法的函数:functiontout,yout=rk4(ode)t0=tspan(1);th=tspan(2);if length(tspan)0,本步失败,但仍采用上式,重新进行积分。196.3 面向微分方程的仿真程序设计面向微分方程的仿真程序设计6.3.1 通用仿真程序的一般结构及工作原理通用仿真程序的一般结构及工作原理1.通用仿真程序的基本结构以数字计算机作为仿真工具,使用适当的算法语言来编制通用的仿真程序,可以针对不同的系统进行相应的仿真处理。按常规组成结构,通用仿真程序可分为3个层次,即主程序块、功能程序块、基本子程序块。各模块功分析能如下:(1)主程序:完成仿真逻辑控制,实现各功能模块的调用、模型的转换、系统运行、输入输出的控制等。20(2)初始化程序:完成各类初始数据的准备工作,如设置工作单元、给定变量初值和系统仿真参数等。(3)运行程序:实现系统运行的控制,调用数值积分法完成仿真算法处理,得出系统的响应结果。(4)输出程序:按用户指定的输出形式,可以在显示器、打印机、绘图仪等设备上将仿真的结果以数据、动态曲线、图形等方式输出。212.仿真程序流程框图 22MATLAB提供了两个常微分方程求解的函数ode23()、ode45(),分别采用了二阶三级的RKF方法和四阶五级的RKF法,并采用自适应变步长的求解方法,即当解的变化较慢时采用较大的计算步长,从而使得计算速度很快;当解的变化较快时,步长会自动变小,从而使计算精度提高。SyntaxT,Y=solver(odefun,tspan,y0)T,Y=solver(odefun,tspan,y0,options)where solver is one of ode45,ode23,ode113,ode15s,ode23s,ode23t,or ode23tb.ArgumentsodefunA function that evaluates the right-hand side of the differential equations.All solvers solve systems of equations in the form or problems that involve a mass matrix,.The ode23s solver can solve only equations with constant mass matrices.ode15s and ode23t can solve problems with a mass matrix that is singular,i.e.,differential-algebraic equations(DAEs).tspanA vector specifying the interval of integration,t0,tf.To obtain solutions at specific times(all increasing or all decreasing),use tspan=t0,t1,.,tf.y0A vector of initial conditions.optionsOptional integration argument created using the odeset function.See odeset for details.p1,p2.Optional parameters that the solver passes to odefun and all the functions specified in options23Description T,Y=solver(odefun,tspan,y0)with tspan=t0 tf integrates the system of differential equations from time t0 to tf with initial conditions y0.Function f=odefun(t,y),for a scalar t and a column vector y,must return a column vector f corresponding to.Each row in the solution array Y corresponds to a time returned in column vector T.To obtain solutions at the specific times t0,t1,.,tf(all increasing or all decreasing),use tspan=t0,t1,.,tf.T,Y=solver(odefun,tspan,y0,options)solves as above with default integration parameters replaced by property values specified in options,an argument created with the odeset function.Commonly used properties include a scalar relative error tolerance RelTol(1e-3 by default)and a vector of absolute error tolerances AbsTol(all components are 1e-6 by default).See odeset for details.Example 1.An example of a nonstiff system is the system of equations describing the motion of a rigid body without external forces.24To simulate this system,create a function rigid containing the equations function dy=rigid(t,y)dy=zeros(3,1);%a column vectordy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.51*y(1)*y(2);In this example we change the error tolerances using the odeset command and solve on a time interval 0 12 with an initial condition vector 0 1 1 at time 0.options=odeset(RelTol,1e-6,AbsTol,1e-6 1e-6 1e-5);T,Y=ode45(rigid,0 12,0 1 1,options);Plotting the columns of the returned array Y versus T shows the solution plot(T,Y(:,1),-,T,Y(:,2),-.,T,Y(:,3),.)2526Example 2.An example of a stiff system is provided by the van der Pol equations in relaxation oscillation.The limit cycle has portions where the solution components change slowly and the problem is quite stiff,alternating with regions of very sharp change where it is not stiff.To simulate this system,create a function vdp1000 containing the equations function dy=vdp1000(t,y)dy=zeros(2,1);%a column vectordy(1)=y(2);dy(2)=1000*(1-y(1)2)*y(2)-y(1);For this problem,we will use the default relative and absolute tolerances(1e-3 and 1e-6,respectively)and solve on a time interval of 0 3000 with initial condition vector 2 0 at time 0.T,Y=ode15s(vdp1000,0 3000,2 0);plot(T,Y(:,1),-o)2728Plot(t,y(:,2)296.6 面向结构图的仿真程序设计面向结构图的仿真程序设计面向结构图的线性系统仿真基本思想为:(1)把一个复杂的高阶线性系统化成由若干典型环节组成的模拟结构图表示。(2)将各典型环节参数以及系统各环节的连接关系输入计算机。(3)仿真程序将输入的系统模型自动转化为状态空间描述,即状态方程形式。(4)调用数值积分法求解,并输出仿真结果。30典型环节的确定及算法描述典型环节的确定及算法描述典型环节的选择是重要的一个步骤,它应具备下述两个原则:(1)典型性由它可方便地组成其它任何形式的动态环节。(2)简易性由它组成的系统简便,计算机编程容易实现。常见的动态环节根据控制理论可知,在实际控制系统中比较常见的动态环节主要有以下五种:(1)积分环节(2)比例积分环节(3)惯性环节(4)一阶超前(或滞后)环节(5)二阶振荡环节 316.5 快速仿真算法快速仿真算法 在对系统进行仿真时,会碰到较高阶次的控制系统,由于采用的计算机档次不高会影响到仿真计算速度,占用较长的机时;在参数寻优时往往需要对控制系统进行反复的仿真计算,也将使计算过程加长;此外,系统的实时仿真也会对仿真的快速性提出较高的要求。对于前面所讨论的数值积分法由于有相应的计算工作量,单纯加大仿真步长会影响到系统仿真的精度和稳定性问题。本节介绍几种常用的快速仿真方法,采用这些方法来编制仿真计算子程序,可以弥补数值积分法仿真在速度上的缺陷,便于在实际工程中系统仿真时合理地加以选择,达到提高系统仿真速度的最终目的。326.5.1 时域矩阵法时域矩阵法 时域矩阵法是一种在时域内采用无穷矩阵进行系统仿真的算法,它每一步的计算量较小,而且与系统阶次无关,适合于系统的快速仿真。采用时域矩阵法来分析和讨论系统的动态性能具备下述特点:(1)时域矩阵法多用于采样控制系统,由于采用脉冲过程函数g(t)来计算系统的闭环响应,不会因系统阶次的增加而加大计算工作量,从而提高了仿真速度;但有时求解高阶系统的脉冲过程函数g(t)会有一定的难度。(2)由于每个采样时刻的g(k)是准确计算出来的,所以采用时域矩阵法仿真时系统的采样周期(或仿真步距)可以选得大些。(3)时域矩阵法可推广到非线性系统的快速仿真。336.5.2 增广矩阵法增广矩阵法 增广矩阵法是将系统的控制量增广到状态变量中,使原来的非奇次常微分方程变为一个齐次方程。6.5.3 替换法替换法 快速仿真的系统通常比较关注系统仿真的速度应该达到规定的要求,而对精度一般不做太高的要求。对于一个高阶系统,如果能从它的传递函数G(s)直接推导出与之相匹配的并且允许较大采样周期T的脉冲传递函数G(z),然后由G(z)获得仿真模型,这将对提高仿真速度十分有利。相匹配的含义是指若G(s)是稳定的,那么G(z)也是稳定的,同时,当输入相同外作用信号时,由G(z)求出的响应和由G(s)求出的响应具有相同的特征。要设法找出s与z的对应公式,将G(s)中的s替换为z,求得G(z)的表达式,这种方法称为替换法。346.5.6 根匹配法根匹配法 为了实现对控制系统进行快速仿真,应构造一个G(z),它允许较大的采样周期T,且能保证G(z)在零、极点分布上与G(s)一致,动态响应也一致,这种方法称为根匹配法。根匹配法的一般步骤根匹配法的一般步骤 按照前面的分析,采用根匹配法构造G(z)应满足以下条件:(1)G(z)与G(s)具有相同数目的零、极点。(2)G(z)与G(s)的零、极点相互匹配。(3)G(z)与G(s)的终值应相等。(6)G(z)与G(s)具有相同的动态响应。35本章小结本章小结 本章主要介绍了数值积分法的仿真原理和特点;采用数值积分法面向微分方程、结构图进行仿真的基本思路和程序设计;仿真的精度与系统稳定性讨论;快速仿真算法等内容。在数值积分法中,要熟悉典型环节的选择,确定系统中各环节之间的连接关系;能根据特定的仿真系统,选择合适的仿真变量及参数,确定正确的系数矩阵;掌握CSS1、CSS2程序的结构、各变量含义以及程序的运行特点;熟悉程序的输入、调试,仿真结果的分析和系统性能的讨论。此外,对于仿真系统的精度和稳定性问题也是非常重要的,要理解仿真过程中的3类误差产生的原因,制定消除误差的方法,合理地选择仿真步长,保证系统在稳定的前提下,尽量提高系统仿真的精度和速度。为了提高系统仿真的速度,可以合理地选择6种常用的快速仿真方法。36
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:数值积分法仿真
链接地址:https://www.zhuangpeitu.com/article/210553894.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!