当前位置:文档之家› 仿真技术实验程序及思考题解答完整版汇总

仿真技术实验程序及思考题解答完整版汇总

实验一 连续系统的数字仿真一、实验目的1. 熟悉Matlab 中m 文件的编写; 2. 掌握龙格-库塔法的基本原理。

二、实验设备计算机、MATLAB 软件 三、实验内容假设单变量系统如图所示。

试根据四阶龙格-库塔法,求系统输出y 的动态响应。

1.首先把原系统转化为状态空间表达式:⎪⎩⎪⎨⎧=+=•CXy bu AX X ,根据四阶龙格-库塔公式,可得到: ⎪⎩⎪⎨⎧=++++=+++1143211)22(6k k k k CX y K K K K h X X (1) 其中: ⎪⎪⎪⎩⎪⎪⎪⎨⎧+++=+++=+++=+=)()()2()2()2()2()(3423121h t bu hK X A K ht bu K h X A K h t bu K h X A K t bu AX K k k k k k k k k (2)根据(1)、(2)式编写仿真程序。

2.在Simulink 环境下重新对上述系统进行仿真,并和1中结果进行比较。

四、实验结果及分析要求给出系统输出响应曲线,并分析计算步长对龙格-库塔法的影响。

计算步长对龙格-库塔法的影响:单从每一步看,步长越小,截断误差就越小,但随着步长的缩小,在一定求解范围内所要完成的步数就增加,不但引起计算量的增大,而且可能导致舍入误差严重积累,因此同积分的数值计算一样,微分方程的解法也有选择步长的问题。

源程序:r=5;numo=[1];deno=[1 4 8 5]; numh=1;denh=1;[num,den]=feedback(numo,deno,numh,denh); [A,b,C,d]=tf2ss(num,den);Tf=input('仿真时间 Tf= ');h=input('计算步长 h='); x=[zeros(length(A),1)];y=0;t=0;for i=1:Tf/h; K1=A*x+b*r;K2=A*(x+h*K1/2)+b*r; K3=A*(x+h*K2/2)+b*r; K4=A*(x+h*K3)+b*r;x=x+h*(K1+2*K2+2*K3+K4)/6; y=[y;C*x];t=[t;t(i)+h]; end plot(t,y)Tf=5 h=0.02五、思考题1. 试说明四阶龙格-库塔法与计算步长关系,它与欧拉法有何区别。

计算步长对龙格-库塔法的影响:单从每一步看,步长越小,截断误差就越小,但随着步长的缩小,在一定求解范围内所要完成的步数就增加,不但引起计算量的增大,而且可能导致舍入误差严重积累,因此同积分的数值计算一样,微分方程的解法也有选择步长的问题。

区别:四阶龙格库塔法与欧拉法都是基于在初值附近展开成泰勒级数的原理,所不同的是取泰勒级数的项数,欧拉公式仅取到h 项,四阶龙格库塔法取到h4项。

实验二 面向结构图的仿真一、实验目的1. 掌握连接矩阵及系统状态方程的确定方法; 2. 掌握面向结构图的仿真方法。

二、实验设备计算机、MATLAB 软件 三、实验内容假设某系统由三个典型环节组成,如下图所示,求输出量y 的动态响应。

仿真基本步骤:1. 给定输入信号,确定典型环节及环节参数; 2. 确定连接矩阵;3. 输入仿真时间和计算步长;4. 求H,H -1和Q 阵,确定A 、B 阵; 5. 根据龙格-库塔法求状态方程的解; 6. 根据1~5编写仿真程序。

四、实验结果及分析 源程序:r=10;P=[0 1 1 0;2 1 2 0;10 1 10 0]; W=[0 0 -1;1 0 0; 0 1 0]; W0=[1;0;0]; Wc=[0 0 1];Tf=input('仿真时间 Tf =');h=input( '计算步长 h=');A1=diag(P(:,1));B1=diag(P(:,2));C1=diag(P(:,3));D1=diag(P(:,4)); H=B1-D1*W;Q=C1*W-A1; A=inv(H)*Q;B=inv(H)*C1*W0;x=[zeros(length(A),1)];y=[zeros(length(Wc(:,1)),1)]; t=0; for i=1:Tf/h; K1=A*x+B*r;K2=A*(x+h*K1/2)+B*r; K3=A*(x+h*K2/2)+B*r; K4=A*(x+h*K3)+B*r;x=x+h*(K1+2*K2+2*K3+K4)/6; y=[y;Wc*x];t=[t;t(i)+h]; endplot(t,y) 仿真时间Tf=10 计算步长h=0.05图一 仿真曲线五、思考题1. 典型环节的确定必须满足什么条件? 答: G(S)=bsa ds++=c U(S)X(S)式中u 为典型环节的输入,x 为典型环节的输出。

1.为了保证H 的逆1-H 存在,应严格按照i b ≠0的原则确定每个典型环节,既避免以纯比例、纯微分环节作为典型环节。

2.在输入向量不全为阶跃函数的情况下,只要在确定典型环节时,注意使含有微分项系数即d≠0)的环节不直接与参考输入连接。

(i实验三连续系统的快速仿真一、实验目的1.熟悉增广矩阵的构建方法;2.掌握连续系统的快速仿真基本原理。

二、实验设备计算机、MATLAB软件三、实验内容假设某系统结构图如下,要求采用快速仿真方法求系统输出响应。

Array仿真基本步骤:1.给定输入信号,确定典型环节及环节参数;2.确定连接矩阵;3.输入仿真时间和计算步长;4.求H,H-1和Q阵,确定A、B阵;5.构建增广矩阵;6.采用增广矩阵法求齐次方程的解和系统输出响应。

根据1~6编写仿真程序。

四、实验结果和分析源程序:r=10;[num,den]=series(1,[1,0],2,[1,2]);[num,den]=series(num,den,10,[1,10]);[num,den]=cloop(num,den);[A1,B1,C1,D1]=tf2ss(num,den);A=[A1,B1;0,0,0,0];C=[C1,0];Tf=10;h=0.05;k1=eye(size(A));k2=A*h; k3=k2*k2/2; k4=k3*k2/3;k=k1+k2+k3+k4;x=[zeros(size(A1,1),1);10]; y=0; t=0;for i=1:Tf/h x=k*x; y=[y,C*x]; t=[t,i*h]; end plot(t,y) 五、思考题1.增广矩阵法和四阶龙格-库塔法有何区别? 答: ...t A !31t A 21At I e3322A ++++=!t如果取tA e 的泰勒级数前五项,则增广矩阵的计算与四阶龙格库塔法相同。

四阶龙格库塔法具有很高的精度,但运行速度很慢,而增广矩阵法既满足了精度又满足了速度。

实验四 离散相似法仿真一、实验目的1. 掌握离散化的基本原理;2. 掌握非线性系统的离散化仿真方法。

二、实验设备计算机、MATLAB 软件 三、实验内容已知非线性系统结构图如下,求系统输出响应。

1. 给定参考输入,输入仿真时间,采样周期(T=0.1s ); 2. 将被控对象离散化;3.给定参数初始值;4.计算误差和非线性环节输出;5.计算系统输出;6.参数值更新;7.若仿真时间到,则结束,否则转1。

编写仿真程序,求解系统输出响应。

四、实验结果及分析源程序:%backlash.mfunction [x,u1]=backlash(u1,u,x1,s)if (u>u1)if ((u-s)>=x1) x=u-s;else x=x1;end else if (u<u1)if ((u+s)<=x1) x=u+s;else x=x1;endelse x=x1;endendu1=u;主程序:r=10;[num,den]=series([1 0.5],[1 0.1],[1],[1 0]); [num,den]=series(num,den,2,[1,2]); [num,den]=series(num,den,10,[1 10]);[A,B,C,D]=tf2ss(num,den);Tf=10;T=0.025;[G,H,C,D]=c2dm(A,B,C,D,T,'zoh');x=zeros(size(G,1),1);y=0;t=0;s=1;e1=0;u1=0;for i=1:Tf/Te=r-y(end);u=backlash(e1,e,u1,s);x=G*x+H*u;y=[y,C*x+D*u];t=[t,i*T];u1=u;e1=e;end;plot(t,y)五、思考题1. 试比较零阶保持器与双线性变换法区别。

答:零阶保持器与双线性变换都能够实现将连续系统的离散化,只是所使用的方法不同,零阶保持器是在系统中加入了s e Ts --1实现离散化,而双线性变换是直接将112+-=z z h s 代入传递函数实现离散化。

实验五 采样控制系统的数字仿真一、实验目的3. 掌握采样控制系统基本原理; 4. 掌握常用的离散化方法;5. 掌握采样控制系统的仿真方法。

二、实验设备计算机、MATLAB 软件 三、实验内容已知采样系统结构如下图所示,求系统的输出响应。

将系统中连续部分采用零阶保持器离散化,系统采用离散化方法进行仿真(同步采样),其具体步骤如下:1、 给定参考输入,输入仿真时间,采样周期(T=0.1s ),PID 控制器参数;2、将被控对象按零阶保持器方法离散化;3、给定参数初始值;4、计算误差和控制器输出;5、计算系统输出;6、参数值更新7、若仿真时间到,则结束,否则转1。

编写仿真程序,并调整控制器参数,使得系统输出响应较为合理。

四、实验结果及分析 源程序:r=1; Tf=20; Tm=1; T=0.01; kp=0.4;ki=0; kd=0;[A,B,C,D]=tf2ss(1,[1 1 0]); [G,H,C,D]=c2dm(A,B,C,D,T,'zoh'); u1=0; e2=0; e1=0; x=zeros(2,1); y=0; t=0; for i=1:Tf/T e=r-y(end);u2=u1+kp*(e-e1)+ki*e+kd*(e-2e1+e2); x=G*x+H*u2; y=[y,C*x+D*u2]; t=[t,i*T];e2=e1;e1=e;u1=u2; end plot(t,y);五、思考题2. 同步采样与异步采样在程序实现上有何区别? 答:同步采样:T=h ,异步采样T=N*h同步采样时,在程序中只要一个for 循环即可实现,而异步采样需要两个for 循环实现。

实验六 串联超前校正一、实验目的1. 掌握超前校正装置的基本特性; 2. 熟悉串联超前校正方法。

相关主题