数值积分法仿真
- 格式:ppt
- 大小:480.00 KB
- 文档页数:36
实验:控制系统数字仿真之数值积分法实验目的:学会并掌握数值积分法的基本原理和方法,了解欧拉法,梯型法,龙格一库塔法的区别,并熟练地使用这些方法。
观察并分析整体离散法、分环节离散法、欧拉法、梯形法、龙格•库塔法这几种方法原理上的差别,分析他们各自的优缺点。
实验原理:欧拉法:欧拉法是最简单的单步法,它是一阶的,精度较差。
但由于公式简单,计算方便,也易于理解,所以在讨论微分方程初值问题的数值解时通常先讨论欧拉法。
梯形法:梯形法与欧拉法相比,梯形法的e要比欧拉法的e更接近实际值,它舍弃的部分更少,它在每一步中用了两个点的输入,使得计算更加精确。
龙格•库塔法:龙格一库塔法是采用间接利用台劳展开式的思路,即用在n 个点上的函数值的线性组合來代替的导数,然后按台劳展开式确定其中的系数, 以提高算法的阶数。
这样既能避免计算函数的导数,同时乂保证了计算精度。
由于龙格薦法具有许务优点,故在许IM:包中,它是•个最垄本的算法之一。
实验过程:分环节离散法得出的响应曲线:整体离散法得出的响应曲线:用一阶欧拉法得出的系统响应曲线:欧拉法是求出当前系统的斜率(变化规律),假设这个变化规律在下一次变化前不改变。
那么系统下一次值就能够通过4 .当前值2.斜率3.步长来确定。
比如说系统当前值x (t),斜率x ' (t),仿真步长dt。
那么x (t+dt) =x (t) +x' (t) *dt程序代码:clc; close all; clear all;sampleTime = 0・l;simuTime = 2000;t=sampleTime:sampleTime:simuTime;K=1・2; n=3; T=20;[kp,ki]=PID_Gain(l・ 20z3, 0);x=zeros(l r 4);fori=l:fix(simuTime/sampleTime)u(i)=l;endfori=l:fix(simuTime/sampleTime)e=ST_RK_l(X/ u(i)f kp r ki r T z K, n);x=xfe*sampleTime;y (i)=x(4);endplot (t r y);匸ext=Tvaiuel(y,sampleTime);legend (text);自程序ST_RK_1代码:function E=ST_RK_1(x r u f kp f ki z T r K z n) E(l) = (u-x(4))*ki;E(2)=(x(l)+kp*E(l)/ki)*K/T-x(2)/T;E (3)=x(2)/T-x(3)/T;E(4)=x(3)/T-x(4)/T;end用梯形法得出系统响应曲线:X = e(r)e[(kH)T]e(kT)牙[e(灯)+ e[伙+ 1)门]X(kT) kT (k+l)T 上若采用欧拉法,误差为红色曲线围成的面积,而如果用梯形法,误差减少为蓝色曲线闱成的面积。
实验一面向微分方程的数值积分法仿真一、实验目的1.掌握数值积分法的基本概念、原理及应用;2.用龙格-库塔法解算微分方程,增加编写仿真程序的能力; 3.分析数值积分算法的计算步长与计算精度、速度、稳定性的关系; 4. 对数值算法中的“病态问题”进行研究。
二、实验内容1、已知系统微分方程及初值条件,(0)1yt y y =+= 取步长0.1h =,试分别用欧拉方程法和RK4法求2t h =时的y 值,并将求得的值与解析解()21t y t e t =--比较(将三个解绘于同一坐标中,且用数值进行比较),说明造成差异的原因。
(①编程完成;②选用MATLAB ode 函数完成。
) 程序代码如下:t0=0; tf=2; h=0.1; y1=1; y2=1; y3=1; t1=0; t2=0; t3=0n=round(tf-t0)/h; for i=1:ny1(i+1)=y1(i)+h*(2*h+y1(i)); t1=[t1,t1(i)+h]; end for i=1:nk1=y2(i)+t2(i);k2=y2(i)+h*k1/2+t2(i)+h/2; k3=y2(i)+h*k2/2+t2(i)+h/2; k4=y2(i)+h*k3+t2(i)+h;y2(i+1)=y2(i)+h*(k1+2*k2+2*k3+k4)/6; t2=[t2,t2(i)+h]; end for i=1:ny3(i+1)=2*exp(t3(i))-t3(i)-1; t3=[t3,t3(i)+h];endplot(t1,y1,'r',t2,y2,'g',t3,y3,'k') 实验结果如下;00.51 1.52 2.524681012分析:红线为用欧拉法得到的结果,绿线为用四阶龙格—库塔法得到的结果,蓝线为根据解析方程得到的结果。
其差异原因主要有两个:1、二者的方法不同,欧拉法是根据一阶微分方程计算得到的,龙格—库塔法是根据四阶微分方程得到的;2、由于步长取为0.1,所以得到的图像与解析解之间存在差异,若将步长取小,则得到的解将更靠近解析解。
实验一:面向方程的数值积分方法仿真(线性定常系统)1. 实验目的:加深理解四阶龙格--库塔法的原理及其稳定性。
2. 实验内容:对下列系统进行仿真(1) 线性定常系统[]⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡321001600032100300110000110321...x x x y u x x x x x x , 其初值为:)]2(1)(1[)(000)0(3)0(2)0(1--⨯=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡t t t t u x x x (2) 非线性系统⎪⎩⎪⎨⎧+-=-=)()()()()()()()(t y t bx t sy dtt dy t y t ax t rx dt t dx ① r=0.001,a =2*104,s=0.015, b =10 - 4;x(0)=1200,y(0)=600② r=0.001,a =2*10 - 6,s=0.01, b =10 - 6;x(0)=12000,y(0)=6003. 实验要求:(1) 为保证稳定性,分析系统(1)的最大仿真步长(方法自选,保留两位有效数字);(2) 设计Matlab 或 C 程序,用四阶龙格库塔法进行仿真计算,改变参数及仿真步长,观察实验结果,寻找最适宜的仿真步长和临界仿真步长。
4. 实验报告:(1) 实验所用程序清单;(2) 实验结果及分析。
注:实验报告可以采用电子文档(标明图号)+书面形式,其中书面报告内容为:(1) 系统(1)最大步长的理论分析;(2) 仿真结果分析;书面报告中不必列出实验题目与结果图(以下同)。
实验二:面向结构图的线性系统仿真1. 实验目的学习基于Simulink 面向结构图进行数字仿真的原理及方法(请使用Matlab6.1附带的Simulink 版本)。
2. 实验内容(1) 用Simulink 实现以下的仿真系统结构图(2) 当r(t)=1(t)时,对系统进行仿真;(3) 当r(t)=⎩⎨⎧>≤s t t s t t 5.1),(15.1,5时,对系统进行仿真。
实验一数值积分算法仿真实验数值积分算法是对微积分中每个基本概念的具体应用,它被广泛应用于数学、工程、物理学、计算机科学等领域。
实验一旨在通过仿真实验来理解数值积分的基本原理以及各种算法的优劣。
1. 实验目的通过本实验,我们将探索数值积分算法的基本原理,以及了解求解积分的各种算法的使用方法和适用范围。
具体而言,本实验的目的包括:1. 理解数值积分的基本原理和方法。
2. 掌握数值积分算法的使用方法和步骤。
3. 比较不同积分算法的优缺点,了解它们适用的范围。
2. 实验内容本实验的具体内容包括:1. Simpson 积分算法的仿真实验3. 辛普森—三分积分算法的仿真实验4. 实验结果的分析与比较3. 实验原理在本次实验中,我们将介绍三种数值积分算法,分别是 Simpson 积分算法、梯形积分算法和辛普森-三分积分算法。
Simpson 积分算法也称为复化 Simpson 公式,是一种求解一定区间内函数积分值的数值计算方法。
这种方法的基本思路是将区间内的几何图形近似为二次函数,从而完成积分的近似计算。
具体而言,这种方法是通过将区间内的函数曲线分成若干个小区间,计算每一个小区间内的积分值,最后将这些积分值加起来得到整个区间内的积分值。
Simpson 积分公式如下所示:$I=\frac{h}{3}(f(x_0)+4f(x_1)+2f(x_2)+4f(x_3)+2f(x_4)+...+4f(x_{n-1})+f(x_n))$其中,$n$ 表示小区间的数目,$h$ 表示每个小区间的长度,$f(x_i)$ 表示区间内的函数值。
3.2 梯形积分算法辛普森-三分积分公式如下所示:$I=\frac{2b-a}{6n}(f(a)+f(b)+2\sum_{j=1}^{n/2}f(x_{2j})+4\sum_{j=1}^{n/2-1}f(x _{2j + 1}))$```% Simpson 积分算法function result = simpson(a,b,f,n)h = (b-a)/n;x = a:h:b;y = f(x);result = h/3*(y(1) + 4*sum(y(2:2:n)) + 2*sum(y(3:2:n-1)) + y(n+1));end我们可以通过实验数据来比较不同积分算法的优缺点。
实验三 利用数值积分算法的仿真实验学号: 姓名: 学院:一. 实验目的1) 熟悉MATLAB 的工作环境;2) 掌握在MATLAB 命令窗口调试运行程序;3) 掌握M 文件编写规则及在MATLAB 命令窗口运行程序;4) 掌握利用欧拉法、梯形法、二阶显式Adams 法及四阶龙格库塔法构建系统仿真模型的方法,并对仿真结果进行分析。
二.实验内容电路如图1所示电路进行仿真试验。
电路元件参数:V E 1=,Ω=10R ,H L 01.0=,F C μ1=。
电路元件初始值:A i L 0)0(=,V u c 0)0(=。
系统输出量为电容电压)(t u c 。
DCRC )(t u c +-)(t i L 图1 RLC 串联电路E三. 实验步骤1. 求连续系统传递函数根据所示电路图,我们利用电路原理建立系统的传递函数模型,根据系统的传递函数是在零初始条件下输出量的拉普拉斯变换与输入量的拉普拉斯变换之比,可得该系统的传递函数:LCLs R s LCs E s U s G C /1//1)()()(2++==2. 离散系统仿真模型在连续系统的数字仿真算法中,较常用的有欧拉法、梯形法、二阶显式Adams 法及显式四阶Runge-Kutta 法等。
欧拉法、梯形法和二阶显式Adams 法是利用离散相似原理构造的仿真算法,而显式四阶Runge-Kutta 法是利用Taylor 级数匹配原理构造的仿真算法。
对于线性系统,其状态方程表达式为:()()()()()()t t t t t t ⎧=+⎨=+⎩x Ax Bu y Cx Du 00)(x x =t 式(3-1)中,[]Tn t x t x t x )()()(21 =x 是系统的n 维状态向量,[]Tm t u t u t u t )()()()(21 =u 是系统的m 维输入向量,[]Tr t y t y t y t )()()()(21 =y 是系统的r 维输出向量。