仿真技术实验程序及思考题解答完整版汇总Word文件下载.docx
《仿真技术实验程序及思考题解答完整版汇总Word文件下载.docx》由会员分享,可在线阅读,更多相关《仿真技术实验程序及思考题解答完整版汇总Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
numo=[1];
deno=[1485];
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;
fori=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=5h=0.02
五、思考题
1.试说明四阶龙格-库塔法与计算步长关系,它与欧拉法有何区别。
区别:
四阶龙格库塔法与欧拉法都是基于在初值附近展开成泰勒级数的原理,所不同的是取泰勒级数的项数,欧拉公式仅取到h项,四阶龙格库塔法取到h4项。
实验二面向结构图的仿真
1.掌握连接矩阵及系统状态方程的确定方法;
2.掌握面向结构图的仿真方法。
假设某系统由三个典型环节组成,如下图所示,求输出量y的动态响应。
仿真基本步骤:
1.给定输入信号,确定典型环节及环节参数;
2.确定连接矩阵;
3.输入仿真时间和计算步长;
4.求H,H-1和Q阵,确定A、B阵;
5.根据龙格-库塔法求状态方程的解;
6.根据1~5编写仿真程序。
源程序:
r=10;
P=[0110;
2120;
101100];
W=[00-1;
100;
010];
W0=[1;
0;
0];
Wc=[001];
仿真时间Tf='
h=input('
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;
y=[zeros(length(Wc(:
1)),1)];
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;
Wc*x];
plot(t,y)仿真时间Tf=10计算步长h=0.05
图一仿真曲线
1.典型环节的确定必须满足什么条件?
答:
G(S)=
式中u为典型环节的输入,x为典型环节的输出。
1.为了保证H的逆
存在,应严格按照
0的原则确定每个典型环节,既避免以纯比例、纯微分环节作为典型环节。
2.在输入向量不全为阶跃函数的情况下,只要在确定典型环节时,注意使含有微分项系数即(
0)的环节不直接与参考输入连接。
实验三连续系统的快速仿真
1.熟悉增广矩阵的构建方法;
2.掌握连续系统的快速仿真基本原理。
假设某系统结构图如下,要求采用快速仿真方法求系统输出响应。
5.构建增广矩阵;
6.采用增广矩阵法求齐次方程的解和系统输出响应。
根据1~6编写仿真程序。
4、实验结果和分析
[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];
Tf/h
x=k*x;
y=[y,C*x];
t=[t,i*h];
1.增广矩阵法和四阶龙格-库塔法有何区别?
如果取
的泰勒级数前五项,则增广矩阵的计算与四阶龙格库塔法相同。
四阶龙格库塔法具有很高的精度,但运行速度很慢,而增广矩阵法既满足了精度又满足了速度。
实验四离散相似法仿真
1.掌握离散化的基本原理;
2.掌握非线性系统的离散化仿真方法。
已知非线性系统结构图如下,求系统输出响应。
1.给定参考输入,输入仿真时间,采样周期(T=0.1s);
2.将被控对象离散化;
3.给定参数初始值;
4.计算误差和非线性环节输出;
5.计算系统输出;
6.参数值更新;
7.若仿真时间到,则结束,否则转1。
编写仿真程序,求解系统输出响应。
4、实验结果及分析
%backlash.m
function[x,u1]=backlash(u1,u,x1,s)
if(u>
u1)
if((u-s)>
=x1)x=u-s;
elsex=x1;
elseif(u<
if((u+s)<
=x1)x=u+s;
elsex=x1;
end
u1=u;
主程序:
[num,den]=series([10.5],[10.1],[1],[10]);
[num,den]=series(num,den,2,[1,2]);
[num,den]=series(num,den,10,[110]);
[A,B,C,D]=tf2ss(num,den);
T=0.025;
[G,H,C,D]=c2dm(A,B,C,D,T,'
zoh'
x=zeros(size(G,1),1);
s=1;
e1=0;
u1=0;
Tf/T
e=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;
1.试比较零阶保持器与双线性变换法区别。
答:
零阶保持器与双线性变换都能够实现将连续系统的离散化,只是所使用的方法不同,零阶保持器是在系统中加入了
实现离散化,而双线性变换是直接将
代入传递函数实现离散化。
实验五采样控制系统的数字仿真
3.掌握采样控制系统基本原理;
4.掌握常用的离散化方法;
5.掌握采样控制系统的仿真方法。
已知采样系统结构如下图所示,求系统的输出响应。
将系统中连续部分采用零阶保持器离散化,系统采用离散化方法进行仿真(同步采样),其具体步骤如下:
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,[110]);
e2=0;
x=zeros(2,1);
u2=u1+kp*(e-e1)+ki*e+kd*(e-2e1+e2);
x=G*x+H*u2;
y=[y,C*x+D*u2];
e2=e1;
e1=e;
u1=u2;
plot(t,y);
2.同步采样与异步采样在程序实现上有何区别?
同步采样:
T=h,异步采样T=N*h
同步采样时,在程序中只要一个for循环即可实现,而异步采样需要两个for循环实现。
实验六串联超前校正
1.掌握超前校正装置的基本特性;
2.熟悉串联超前校正方法。
设有一单位负反馈系统,其开环传递函数为:
,要求系统的稳态速度误差系数kv=20(1/s),相位裕量r>
50,幅值裕量kg>
10db,试确定串联校正装置。
设计基本步骤:
1.根据性能指标确定开环增益k;
2.利用确定的开环增益k画出未校正系统的Bode图,并求其相位裕量r0和幅值裕量kg;
3.确定所需增加的超前相位角
,
一般取5~15;
4.令超前校正装置最大超前角
,则
;
5.将校正装置的最大超前相位角处的频率
作为校正后系统的剪切频率
,则:
6.根据
,可求得:
7.画出校正后系统Bode图,检验指标是否满足,如不满足,增大
重新设计。
源程序见课本P220
num0=40;
den0=conv([1,0],[1,2]);
[Gm1,Pm1,Wcg1,Wcp1]=margin(num0,den