计算机仿真Matlab 实验报告一

  • 格式:pdf
  • 大小:263.34 KB
  • 文档页数:9

6.24Hz
t k 1 ) 将 y(就有 q 来自 y(tk ) t
tk 1
k
f(t ,y ) dt 近似为 y(tk 1 ) y k hf(tk ,y k ) y k 1 ,
hf(tk ,y k )。并且,欧拉法仅适用于步长 h 很小的场合。
为保证计算稳定性,欧拉方法的步长 h 应满足 1 h 1 。 (2) 龙格-库塔法: 龙格-库塔(Runge-Kutta)法是求解常微分方程初值问题的各种数值积分算法中应用得 最广泛的一种,包括许多不同的公式。它的思路是用若干个时间点上 f 的函数值的线性组 合来代替 f 的各阶导数项,然后按泰勒公式展开确定其中的系数。一般形式:
,s=0 时 G(s ) 1.8404 ;
s 时, G(s ) 0 。所以,初步估计,这个系统应该是开始会有突变,然后慢慢趋于
稳定。 3. 求 c 或T min 。 由传递函数:
G(s )
可以知道系统的特征方程为:
40.6 s 10s 27s 22.06
3 2
s 3 10s 2 27s 22.06 0 .
解答:
1. 按实验目的、要求和已知条件,建立系统的 Simulink 模型。
其中 den(s ) [1 10 27 22.06] 2. 按经验公式(2.43)或(2.44)初选仿真步长 h。 以求得T min 0.16s ,而 h 20 ~ 5 T min ,可知, h 0.320 ~ 0.008 时, 仿真结果精度在 0.5%内。初选仿真步长 h 0.010 。 3. 选择 RK4 法,运行仿真模型,适当调整步长和仿真起止时间,以得到比较理想的过渡 过程,观察纪录此过渡过程的数据。 首先画出其解析解: >> y1=1.84-4.95*tout.*exp(-1.88*tout)-1.5*exp(-1.88*tout)-0.34*exp(-6.24*tout); >> plot(tout,y1,'b') >> grid
end %若tout与y的维数不同,则使他们相同 y1=1.84-4.95*tout.*exp(-1.88*tout)-1.5*exp(-1.88*tout)-0.34*exp(-6 .24*tout); temp1=abs(y1-y); ae=sum(temp1)/temp2 ; maxe=max(temp1); plot(tout,y,'red'); grid end %求精确解 %求误差平均值 %求误差最大值 %画图
r y y h W i ki k 1 k i 1 i 1 ki f(t k ci h ,y k h aij k j ) j 1 c1 0 2, ,r i 1,
龙格-库塔法步长的选取主要依靠下式:
1 _ 1 _ 1 1 h h h 2! r!
1
1
仿真结果如下: 当 h=0.5 时,
h=0.300 时:
h=0.100 时:
h=0.050 时:
h=0.010 时:
编程实现画图与求出最大误差与平均误差,方便分析: function [maxe,ae] = text1(tout,y) [A,B]=size(tout); [M,N]=size(y); if A > M temp2=M; tout=tout(A-M+1:A,:); elseif A < M temp2=A; y=y(M-A+1:M,:); else temp2=A;
h=0.300 时:
h=0.100 时:
h=0.050 时:
h=0.010 时:
h 平均误差 最大误差
0.500 1.03e+005 1.15e+006
0.300 0.0711 0.4130
0.100 0.0136 0.0642
0.050 0.0068 0.0309
0.010 0.0016 0.0064
h 平均误差 最大误差
0.500 7.62e+002 6.21e+003
0.300 0.0023 0.0438
0.100 4.56e-004 6.44e-004
0.050 4.64e-004 7.75e-004
0.010 4.66e-004 7.84e-004
从图像和表格可以看出 h=0.5 时,仿真的结果不稳定,是发散的,并且与解析解之间有 很大的误差,此时,数值积分法得出的结果是错误的;当 h=0.3 时,仿真结果是收敛的,图 形基本仅次于解析解,但是还是具有一定误差;当 h=0.1 时,仿真结果正确,误差也很小, 符合要求;当 h=0.05、当 h=0.01 时,误差又变大。说明,最合适的步长大概为 0.1。 4. 在相同的条件下,选择欧拉法,再让仿真模型运行,观察纪录过渡过程的数据。 仿真结果如下: 当 h=0.5 时,
实验一
一、实验目的
数值积分算法的实验
1. 初步了解如何用仿真方法来分析系统的动态性能。 2. 了解不同的数值积分算法与仿真计算的精度之间的关系。 3. 学会一种初步寻求合理仿真步长的方法。
二、实验内容
系统模型及其单位阶跃响应如习题 2.6 所示。 1. 按实验目的、要求和已知条件,建立系统的 Simulink 模型。 2. 按经验公式(2.43)或(2.44)初选仿真步长 h。 3. 选择 RK4 法,运行仿真模型,适当调整步长和仿真起止时间,以得到比较理想的过渡过 程,观察纪录此过渡过程的数据。 4. 在相同的条件下,选择欧拉法,再让仿真模型运行,观察纪录过渡过程的数据。
_
2
r
1 ( h h )
_
通常情况下,可以根据系统方程中的最小时间常数来选择步长,一般取:
h 20 ~ 5 T min 。
2. 按理论分析初步估计系统可能出现的动态性能。 该系统的传递函数为: G(s )
1
1
40.6
s 3 10s 2 27s 22.06
由图表可以看出:当 h=0.5 时,系统是不稳定的,误差也相当大;当 h=0.3 时,系统总 体上在趋近于稳定,但过程中仍然不稳定;当 h<=0.1 时,系统比较稳定,并由误差值可以 看出在 h=0.01 时误差最小。相比于 ode4 算法,显然欧拉算法不如 ode4 精确。
三、预习要求
1. 复习数值积分算法及步长寻取方法。 答:连续系统仿真的数值积分算法是利用数值积分法将常微分方程(组)描述的连续系 统变换成离散形式的仿真模型—差分方程(组) ,数值积分算法就是对一阶微分方程近似求 解的公式。 为了能在计算机上进行求解, 首先要把被仿真系统的数字模型表示为一阶微分方 程组或状态空间模型。 常用的数值积分算法主要有下面两种: (1) 欧拉法:
利用 Matlab 解得特征根为:>>roots([1,10,27,22.06])
1 1.8680 2 1.8928 -6.2392 3
利用公式:
T min
1
1 得:T min 0.16s max( Re i )
1i n
所以,
c
T min