计算机仿真技术应用报告,计算机仿真技术实验报告-实验三

《计算机仿真技术实验报告-实验三》由会员分享,可在线阅读,更多相关《计算机仿真技术实验报告-实验三(13页珍藏版)》请在人人文库网上搜索。

1、计算机仿真技术实验报告实验三 利用数值积分算法的仿真实验实验三 利用数值积分算法的仿真实验一 实验目的1) 熟悉MATLAB的工作环境;2) 掌握MATLAB的 .M文件编写规则,并在命令窗口调试和运行程序;3) 掌握利用欧拉法、梯形法、二阶显式Adams法及四阶龙格库塔法构建系统仿真模型的方法,并对仿真结果进行分析。二 实验内容系统电路如图2.1所示。电路元件参数:直流电压源,电阻,电感,电容。电路元件初始值:电感电流,电容电压。系统输出量为电容电压。连续系统输出响应的解析解为:(2-1)其中,。三、要求1)利用欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法构建系统仿。

2、真模型,并求出离散系统的输出量响应曲线;2)对比分析利用欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法构建系统仿真模型的仿真精度与模型运行的稳定性问题;3)分别编写欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法的.m函数文件,并存入磁盘中。.m函数文件要求输入参数为系统状态方程的系数矩阵、仿真时间及仿真步长。编写.m命令文件,在该命令文件中调用已经编写完成的上述.m函数文件,完成仿真实验;4) subplot和plot函数将输出结果画在同一个窗口中,每个子图加上对应的标题。四.实验原理(1)连续系统解析解连续系统输出响应的解析解为:其中,(2)原。

3、系统的传递函数根据所示电路图,我们利用电路原理建立系统的传递函数模型,根据系统的传递函数是在零初始条件下输出量的拉普拉斯变换与输入量的拉普拉斯变换之比,可得该系统的传递函数:(3)系统的仿真模型在连续系统的数字仿真算法中,较常用的有欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法等。欧拉法、梯形法和二阶显式Adams法是利用离散相似原理构造的仿真算法,而显式四阶Runge-Kutta法是利用Taylor级数匹配原理构造的仿真算法。对于线性系统,其状态方程表达式为:其中:是系统的n维状态向量是系统的m维输入向量是系统的r维输出向量A为阶参数矩阵,又称动态矩阵,B为阶输入矩阵。

4、,C为阶输出矩阵,D为阶交联矩阵。根据图所示电路,系统状态方程模型:式中,状态变量,输出变量,系数矩阵为:,。(1) 欧拉法利用前向欧拉法构建线性系统的仿真模型为:式中,为积分步长,为单位矩阵。利用后向欧拉法构建线性系统的仿真模型为:对于前向欧拉法,系数矩阵为:,D=0。对于后向欧拉法,系数矩阵为:,。(2) 梯形法利用梯形法构建线性系统的仿真模型为:对图所示的系统,利用梯形法构造的系统差分方程具有形式:其系数矩阵为:,D = 0。(3)二阶显式Adams法利用二阶显式Adams法构建线性系统的仿真模型为:式中: 二阶显式Adams法为多步计算方法,利用多步计算方法对系统进行仿真时,需要与之具。

5、有相同计算精度的单步计算方法辅助计算。二阶显式Adams法的计算精度为二阶,可以采用梯形法或改进的Euler法等辅助计算。利用改进的Euler法构建线性系统的仿真模型为:其中,。由式计算出和后,便可以转入由二阶显式Adams法构造的离散系统模型计算,即系统差分方程。其计算方程为:()(4)显式四阶Runge-Kutta法利用显式四阶Runge-Kutta法构建线性系统的仿真模型为: 五实验过程1.实验程序(1)前向欧拉法function =RLC(R,L,C,U,t,h)R=10;L=0.01;C=1.0e-6;U=1;t=0.01;h = 2.0e-4;m = fix(t/h);n = 2;。

6、A = -R/L -1/L;1/C 0;B = 1/L;0;D = 0 1;E = 1 0;0 1;% 前向欧拉法 %for i=1:1:nx1(1:n,1) = 0;endfor k=1:mx1(1:n,k+1) = x1(1:n,k) + (A* x1(1:n,k)+B)*h;endfor k=1:1:my1(k) = D*x1(1:n,k);end% 解析解 %p = R/(2*L);w=sqrt(1/(L*C)-(R/(2*L)2);for k=1:1:my(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/。

7、w);end%输出曲线 %for k=1:1:mt(k) = (k-1)*h;endsubplot(2,3,1),plot(t,y,g,t,y1,r)legend(y解析解,y1前向欧拉)title(前向欧拉法)(2)后向欧拉法function =RLC(R,L,C,U,t,h)R=10;L=0.01;C=1.0e-6;U=1;t=0.01;h = 2.0e-4;m = fix(t/h);n = 2;A = -R/L -1/L;1/C 0;B = 1/L;0;D = 0 1;E = 1 0;0 1;% 后向欧拉法 %for i=1:1:n x2(1:n,1) = 0; endA1 = inv(。

8、E-A*h);for k=1:mx2(1:n,k+1) = A1*(x2(1:n,k) + B*h);endfor k=1:1:my2(k) = D*x2(1:n,k);end % 解析解 %p = R/(2*L);w=sqrt(1/(L*C)-(R/(2*L)2);for k=1:1:my(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/w);end %输出曲线 %for k=1:1:mt(k) = (k-1)*h;endsubplot(2,3,2),plot(t,y,g,t,y2,r)legend(y解析解,y。

9、2后向欧拉)title(后向欧拉法)(3)梯形法function =RLC(R,L,C,U,t,h)R=10;L=0.01;C=1.0e-6;U=1;t=0.01;h = 2.0e-4;m = fix(t/h);n = 2;A = -R/L -1/L;1/C 0;B = 1/L;0;D = 0 1;E = 1 0;0 1; % 梯形法 %for i=1:1:nx3(1:n,1) = 0; endA2 = inv(E-A*h/2);for k=1:mx3(1:n,k+1) = A2*( x3(1:n,k) + B*h + A*x3(1:n,k)*h/2);endfor k=1:1:my3(k) 。

10、= D*x3(1:n,k);end % 解析解 %p = R/(2*L);w=sqrt(1/(L*C)-(R/(2*L)2);for k=1:1:my(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/w);end %输出曲线 %for k=1:1:mt(k) = (k-1)*h;endsubplot(2,3,3),plot(t,y,g,t,y3,r)legend(y解析解,y3梯形法)title(梯形法)(4)二阶显式Adams法function =RLC(R,L,C,U,t,h)R=10;L=0.01;C=1.0。

11、e-6;U=1;t=0.01;h = 2.0e-4;m = fix(t/h);n = 2;A = -R/L -1/L;1/C 0;B = 1/L;0;D = 0 1;E = 1 0;0 1;% 二阶显示Adams法 %for i=1:1:n x4(1:n,1) = 0; endfor k=1:m x4(1:n,k+1) = A2*(x4(1:n,k) + B*h + A*x4(1:n,k)*h/2);endfor k=3:m fm1 = 23*(A*x4(1:n,k)+ B);fm2 = -16*(A*x4(1:n,k-1)+ B);fm3 = 5*(A*x4(1:n,k-2)+ B); x4。

12、(1:n,k+1) = x4(1:n,k)+(fm1+fm2+fm3)*h/12;endfor k=1:1:my4(k) = D*x4(1:n,k);end % 解析解 %p = R/(2*L);w=sqrt(1/(L*C)-(R/(2*L)2);for k=1:1:my(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/w);end %输出曲线 %for k=1:1:mt(k) = (k-1)*h;endsubplot(2,3,4),plot(t,y,g,t,y4,r)legend(y解析解,y4Adams法)ti。

13、tle(二阶显式Adams法)(5)四阶Runge-Kutta法function =RLC(R,L,C,U,t,h)R=10;L=0.01;C=1.0e-6;U=1;t=0.01;h = 2.0e-4;m = fix(t/h);n = 2;A = -R/L -1/L;1/C 0;B = 1/L;0;D = 0 1;E = 1 0;0 1;% 四阶Runge-Kutta法 %for i=1:1:n % 状态变量初值x5(1:n,1) = 0; endfor k=1:mx5(1:n,k+1) = A2*( x5(1:n,k) + B*h + A*x5(1:n,k)*h/2); endfor k=1。

14、:1:mk1=A*x5(1:n,k+1);k2=A*(x5(1:n,k+1)+h*k1/2);k3=A*(x5(1:n,k+1)+h*k2/2);k4=A*(x5(1:n,k+1)+h*k3);x5(1:n,k+1)=x5(1:n,k+1)+h.*(k1+2*k2+2*k3+k4)./6; endfor k=1:1:my5(k) = D*x5(1:n,k);end % 解析解 %p = R/(2*L);w=sqrt(1/(L*C)-(R/(2*L)2);for k=1:1:my(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)。

15、*h)*p/w);end %输出曲线 %for k=1:1:mt(k) = (k-1)*h;endsubplot(2,3,5),plot(t,y,g,t,y5,r)legend(y解析解,y5Runge-Kutta法 )title(显式四阶Runge-Kutta法)2.仿真图形取积分步长h=2*10-4s,可以得到以下几个仿真图形:(1)前向欧拉法(2)后向欧拉法(3)梯形法(4)二阶显式Adams法(5)四阶Runge-Kutta法6 实验结论1.从仿真的稳定性看,当选取不同的积分步长时,欧拉法稳定性最低,梯形法稳定性其次,而显式四阶Runge-Kutta法、二阶显示Adams法稳定性较好。。

16、2.从仿真的难易性看,欧拉法为单步计算法,用到一个过去的值,计算起来比较简单。而梯形法则是用两条折线所谓面积来近似,与欧拉法相比较为困难。二阶显示Adams法需要知道k个初始值,不能自起步,二次函数很复杂,因此此方法较复杂。而显式四阶Runge-Kutta法建模最为复杂,仿真时间也较长。3.从仿真的精度看,选取不同的积分步长,就可以得出,欧拉法的精度最低,梯形法稍好,显式四阶Runge-Kutta法,二阶显示Adams法的函数曲线与真实曲线较为接近,精度最高。综上所述,这几种仿真方法各有优劣。欧拉法较为简单,但精度较低。Runge-Kutta法,二阶显示Adams法较为复杂,但精度和稳定性都比较高。因此,在实际仿真中应根据问题的需求选择不同的方法。对精度要求较小时,可选用欧拉法,梯形法;当对精度要求较高时,就应选择显式四阶Runge-Kutta法、二阶显示Adams法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值