计算机仿真技术实验报告-实验三参考模板_第1页
计算机仿真技术实验报告-实验三参考模板_第2页
计算机仿真技术实验报告-实验三参考模板_第3页
计算机仿真技术实验报告-实验三参考模板_第4页
计算机仿真技术实验报告-实验三参考模板_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、矩阵,B为阶输入矩阵,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;

6、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: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)

7、+ sin(w*(k-1)*h)*p/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

8、; B = 1/L;0; D = 0 1; E = 1 0;0 1;% 后向欧拉法 % for i=1:1:n x2(1:n,1) = 0; end A1 = inv(E-A*h); for k=1:m x2(1:n,k+1) = A1*(x2(1:n,k) + B*h); end for k=1:1:m y2(k) = D*x2(1:n,k); end % 解析解 % p = R/(2*L); w=sqrt(1/(L*C)-(R/(2*L)2); for k=1:1:m y(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*

9、h)*p/w); end %输出曲线 % for k=1:1:m t(k) = (k-1)*h; end subplot(2,3,2),plot(t,y,'g',t,y2,'r') legend('y解析解,','y2后向欧拉') 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/

10、L;0; D = 0 1; E = 1 0;0 1; % 梯形法 % for i=1:1:n x3(1:n,1) = 0; end A2 = inv(E-A*h/2); for k=1:m x3(1:n,k+1) = A2*( x3(1:n,k) + B*h + A*x3(1:n,k)*h/2); end for k=1:1:m y3(k) = D*x3(1:n,k); end % 解析解 % p = R/(2*L); w=sqrt(1/(L*C)-(R/(2*L)2); for k=1:1:m y(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) +

11、sin(w*(k-1)*h)*p/w); end %输出曲线 % for k=1:1:m t(k) = (k-1)*h; end subplot(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.0e-6; U=1; t=0.01; h = 2.0e-4; m = fix(t/h); n = 2; A = -R/L -1

12、/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; end for k=1:m x4(1:n,k+1) = A2*(x4(1:n,k) + B*h + A*x4(1:n,k)*h/2); end for 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(1:n,k+1) = x4(1:n,k)+(fm1+fm2+fm3)*h/12; end f

13、or k=1:1:m y4(k) = D*x4(1:n,k); end % 解析解 % p = R/(2*L); w=sqrt(1/(L*C)-(R/(2*L)2); for k=1:1:m y(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:m t(k) = (k-1)*h; end subplot(2,3,4),plot(t,y,'g',t,y4,'r') legend('y解析解,','y4Adams法

14、') title('二阶显式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; end for k=1:m x5(1:n,k+1) = A2*( x5(1:n,k) +

15、 B*h + A*x5(1:n,k)*h/2); end for k=1:1:m k1=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; end for k=1:1:m y5(k) = D*x5(1:n,k); end % 解析解 % p = R/(2*L); w=sqrt(1/(L*C)-(R/(2*L)2); for k=1:1:m y(k) = U*(1-

16、exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/w); end %输出曲线 % for k=1:1:m t(k) = (k-1)*h; end subplot(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法稳定性较好。 2.从仿真的难易性看,欧拉法为单步计算法,用到一个过去的值,计算起来比较简单。而梯形法则是用两条折线所谓面积来近似,与欧拉法相比较为困难。二阶显示Adams法需要知道k个初始值,不能自起步,二次函数很复杂,因此此方法较复杂。而显式四阶Runge-Kutt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论