2010MATLAB及控制系统仿真_数值积分

发布时间:2024-11-21

MATLAB控制系统仿真

第三章 连续系统数值积分仿真方法学

主讲教师:姜萍

MATLAB控制系统仿真

第三章 连续系统数值积分仿真方法学 第一节 第二节 数值积分法的基本原理 数值积分法的单步算法

第三节

数值积分法的多步算法

MATLAB控制系统仿真

如何把已建立起来的数学模型转换成仿真运 算模型(二次建模),以便为分析解决实际问题 服务那是系统仿真学科的一个重要研究内容。

对于复杂的数学模型来说,求其解析解是很 烦琐和困难的,大多数情况下不求出解析解,或 者根本不存在解析解,因此借助于数值解法对连 续系统进行仿真研究。用计算机不可能求出系统的解析解(连续) 只能求出连续响应曲线上的有限个点,即数值解

MATLAB控制系统仿真

描述各类系统最基本的模型用微分方程或状 态空间表达式,二次建模就是要求出适合用数字 计算机求解的模型,就需要把微分运算转化成算 术运算在用计算机求解。 连续系统数值积分法:就是利用数值积分方 法对常微分方程建立离散化形式的数学模型(差 分方程)并求出数值解。最常用的数值解法有: 欧拉法、梯形法、Adams、Runge—Kutta法。

MATLAB控制系统仿真

第一节

数值积分法的基本原理

以一阶连续系统为例,微分方程及初值如下: 首先把需仿真研究的系统表示成一阶微分方程组或 状态方程的形式。 x (t ) f (t , x,u(t )) x (t ) x 0 0

连续解为:x(t ) x(t0 ) f (t , x, u (t ))dt在时间点 t t0,t1,t2, ,t n, 处的解为:t0

t n 1

x ( t n 1 ) x ( t 0 )

t n 1 t0

f ( t , x , u(t ))dtt n 1 tn

x(t0 ) f (t , x, u (t ))dt f (t , x, u (t )) dtt0

tn

x(tn 1 ) x(tn ) f (t , x, u (t ))dttn

t n 1

MATLAB控制系统仿真

t 希望找到一个近似公式 xn 1 xn Qn x( t n 1 ) x( t n ) f ( t , x , u( t ))dt t 来表示方程的近似解: tn 1

Qn x n 为精确值 x (t n )的近似值n

n 1

f ( t , x , u( t ))dt

tn

Qn 为准确积分值

t n 1

所谓微分方程初值问题的数值解法就是寻求 真解在一系列离散点 t t1 t(精确值) x(t ), x(t ), , x( ), tn 2

tn

f (t , x ,u(t ))dt 的近似值

上的近似解 x1, x 2, , x n , (数值解) 相邻两个时间离散点的间隔 hn t n 1 t n 称为计 算步距或步长,通常情况为定值,也有变步长。

1

2

n

MATLAB控制系统仿真

MATLAB控制系统仿真

可见,微分方程初值问题数值解法的主要问 题归结为对t n 1

tn

f (t, x,u(t ))dt

如何求出定积分的近似解

为此,要先把连续的微分方程用数值积分法 转化为离散的差分方程的初值问题,然后根据初 始条件X0逐步递推计算出后续时刻 ,t2, ,tn, t1

的数值解:x1, x2, , xn, 数值解法的共同特点是步进式的递推算法, 主要有:单步法、

多步法和预估-校正法,并有 显式和隐式之分。

MATLAB控制系统仿真

第二节

数值积分法的单步算法

一、欧拉法(Euler Method)Euler法是最简单的一种数值积分法的单 步运算,虽然计算精度较差,但几何意义明显, 便于理解,能说明构造数值积分算法的基本思 想。 下面采用三种方法推导出Euler法的数值 近似公式,以便对数值积分器的基本思想能透 彻了解。

MATLAB控制系统仿真

1、Taylor级数展开以一阶连续系统为例, x (t ) f (t , x,u(t )) x (t ) x 微分方程及初值如右: 0 0 x(t)为解析解,将x(t)展开成Taylor级数只取一次项,其余忽略 x (t n 1) x (t n ) x (t n )h x (t n ) 2 x (t n 1) x (t n h) x (t n ) x (t n )h h 2!

x (t n ) f (t n , x n ,un )h

写成差分方程为 x n 1 x n hf (t n , x n ,un ) 这就是解微分方程初值问题的欧拉算法。

MATLAB控制系统仿真

2、矩形近似 x (t ) f (t , x,u(t ))在 对方程 x (t ) x tn ,tn 1 上求积分 0 0t n 1

x (t n 1) x (t n )

把积分区间 h 取得足够小,将 f (t, x,u(t )) 在 t n ,t n 1 近似为常数 f (t n , x n ,un (t )) 用左矩形面积近似该区 间的曲线面积 x (t n 1) x (t n ) f (t n , x n ,un )h 也能得到:x n 1 x n hf n

tn

f (t , x,u(t ))dt

MATLAB控制系统仿真

左矩形(也称为前向欧拉法)近似及误差

f(t) 误差 fn

fn+1

左矩形近似

tn

tn+1

t

MATLAB控制系统仿真

t n 1

对积分

x (t n 1) x (t n )

将 f (t, x,u(t )) 在 t n ,t n 1 近似为常数f (t n 1, x n 1,un 1(t ))

tn

f (t , x,u(t ))dt

用右矩形面积近似该区间的曲线面积x (t n 1) x (t n ) f (t n 1, x n 1,un 1)h

得到:

x n 1 x n hf n 1

这是右矩形欧拉公式,是一个隐式算法.

MATLAB控制系统仿真

右矩形(也称为后向欧拉法)近似及误差

f(t) fn

误差

fn+1

右矩形近似

tn

tn+1

t

MATLAB控制系统仿真

3、切线近似(1) 在 t n 的一个小邻域内,曲线x(t)可用 t n 处的切 t n 处的斜率为: 线来表示, x(t) 在

过点 t n , x n 以 fn 为斜率的切线方程为: x x n f (t n , x n ,un )( t t n ) 取切线上t n 1 处的值来近似 x (t n 1)x (t n 1) x (t n ) hf (t n , x n ,un )

dx f (t n , x n ,un (t )) dt t t n

也能得到: x n 1 x n hf n

前向欧拉法

MATLAB控制系统仿真

3、切线近似(2)

在 t n ,t n 1 曲线 x(t) 可用t n 1 处的切线来表示, x(t) 在 t n 1 处的斜率为: 过点 t n , x n 以 fn+1 为斜率的切线方程为: x x n f (t n 1, x n 1,un 1)(t t n ) 取切线上 t n 1 处的值来近似 x (t n 1)x (t n 1) x (t n ) hf (t n 1, x n 1,un 1)dx f (t n 1, x n 1,un 1(t )) dt t t n 1

也能得到:

x n 1 x n hf n 1 后向欧拉法

2010MATLAB及控制系统仿真_数值积分.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219