计算机仿真技术实验报告-实验三
计算机仿真技术实验报告
实验三 利用数值积分算法的仿真实验
实验三 利用数值积分算法的仿真实验
实验目的
熟悉MATLAB的工作环境;
掌握MATLAB的 .M文件编写规则,并在命令窗口调试和运行程序;
掌握利用欧拉法、梯形法、二阶显式Adams法及四阶龙格库塔法构建系统仿真模型的方法,并对仿真结果进行分析。
实验内容
系统电路如图2.1所示。电路元件参数:直流电压源,电阻,电感,电容。电路元件初始值:电感电流,电容电压。系统输出量为电容电压。
连续系统输出响应的解析解为:
(2-1)
其中,,。
三、要求
1)利用欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法构建系统仿真模型,并求出离散系统的输出量响应曲线;
2)对比分析利用欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法构建系统仿真模型的仿真精度与模型运行的稳定性问题;
3)分别编写欧拉法、梯形法、二阶显式Adams法及显式四阶Runge-Kutta法的.m函数文件,并存入磁盘中。.m函数文件要求输入参数为系统状态方程的系数矩阵、仿真时间及仿真步长。编写.m命令文件,在该命令文件中调用已经编写完成的上述.m函数文件,完成仿真实验;
subplot和plot函数将输出结果画在同一个窗口中,每个子图加上对应的标题。
四.实验原理
(
连续系统输出响应的解析解为:
其中,,
(2)原系统的传递函数
根据所示电路图,我们利用电路原理建立系统的传递函数模型,根据系统的传递函数是在零初始条件下输出量的拉普拉斯变换与输入量的拉普拉斯变换之比,可得该系统的传递函数:
(3)系统的仿真模型
其中:
是系统的m维输入向量
是系统的r维输出向量
A为阶参数矩阵,又称动态矩阵,B为阶输入矩阵,C为阶输出矩阵,D为阶交联矩阵。根据图所示电路,系统状态方程模型:
式中,状态变量,输出变量,系数矩阵为:
,,。
欧拉法
利用前向欧拉法构建线性系统的仿真模型为:
式中,为积分步长,为单位矩阵。利用后向欧拉法构建线性系统的仿真模型为:
对于前向欧拉法,系数矩阵为:,,,D=0。对于后向欧拉法,系数矩阵为:,,。
梯形法
利用梯形法构建线性系统的仿真模型为:
对图所示的系统,利用梯形法构造的系统差分方程具有形式:
其系数矩阵为:,,,,D = 0。
(3)二阶显式Adams法
利用二阶显式Adams法构建线性系统的仿真模型为:
式中:
二阶显式Adams法为多步计算方法,利用多步计算方法对系统进行仿真时,需要与之具有相同计算精度的单步计算方法辅助计算。二阶显式Adams法的计算精度为二阶,可以采用梯形法或改进的Euler法等辅助计算。利用改进的Euler法构建线性系统的仿真模型为:
其中,。由式计算出和后,便可以转入由二阶显式Adams法构造的离散系统模型计算,即系统差分方程。其计算方程为:
()
(4)显式四阶Runge-Kutta法
利用显式四阶Runge-Kutta法构建线性系统的仿真模型为:
五.实验过程
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;
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
x1(1:n,1) = 0;
end
for k=1:m
x1(1:n,k+1) = x1(1:n,k) + (A* x1(1:n,k)+B)*h;
end
for k=1:1:m
y1(k) = D*x1(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,1),plot(t,y,'g',t,y1,'r')
legend('y解析解,','y1前向