自动控制技术大作业
学 院 学 号 学生姓名 授课老师
电子工程学院
源程序:
ft = 30; M=1; B=5;
K=20; tspan = [0,5]; x0= [0,0];
options = odeset('AbsTol',[1e-6;1e-6]); [T,X]=ode45('xt4odefile',tspan,x0,options); figure(1)
subplot(3,1,1),plot(T,X(:,1),'r'),title('位移随时间变化曲线'),grid on subplot(3,1,2),plot(T,X(:,2),'b'),title('速度随时间变化曲线'),grid on
subplot(3,1,3),plot(X(:,2),X(:,1),'m'),title('位移随速度变化曲线'),grid on a = 1/M*(ft-B*X(:,2)-K*X(:,1));
i = 1;
while (abs(a(i))>0.0001|(abs(X(i,2))>0.0001)) i = i+1; end
disp('系统到达稳态时的时间、速度和加速度及对应的位移分别为: '); result = sprintf('时间 t=%4.2f\\n',T(i)); disp(result);
result = sprintf('速度 v=%9.6f\\n',X(i,2)); disp(result);
result = sprintf('加速度 a=%9.6f\\n',a(i)); disp(result);
result = sprintf('位移 d=%6.4f\\n',X(i,1)); disp(result);
其中xt4odefile.m文件为
function xt = odefileC(t,x); ft = 30;M=1;B=5;K=20;
xt = [x(2);1/M*(ft-B*x(2)-K*x(1))]; end
输出:
系统到达稳态时的时间、速度和加速度及对应的位移分别为: 时间 t=4.47
速度 v=-0.000087
加速度 a=-0.000060
位移 d=1.5000 位移随时间变化曲线21050-5210-0.500.511.522.533.544.55速度随时间变化曲线00.511.522.533.544.55位移随速度变化曲线00.511.522.533.5
源程序:
num=[2,5,7]; den=[1,6,10,6];
[z,p,k]=tf2zp(num,den) [r,a,b]=residue(num,den)
输出:
z =
-1.2500 + 1.3919i -1.2500 - 1.3919i p =
-3.7693 -1.1154 + 0.5897i -1.1154 - 0.5897i k =
2 r =
2.2417 -0.1208 - 1.0004i -0.1208 + 1.0004i a = b =
[]
结论:
零点为-1.2500 + 1.3919i ,-1.2500 - 1.3919i ;极点为-3.7693 ,-1.1154 + 0.5897i,-1.1154 - 0.5897i ;增益为2
源程序:
num=[6.3223,18,12.811]; den=[1,6,11.3223,18,12.811]; t=0:0.005:20;
[y,x,t]=step(num,den,t); plot(t,y);grid on
title('单位阶跃响应曲线') xlabel('t') ylabel('c(t)')
r10=1;while y(r10)<.1; r10=r10+1;end; r90=1;while y(r90)<.9; r90=r90+1;end; rise_time=(r90-r10)*0.005
[ymax,tp]=max(y); peak_time=(tp-1)*.005
max_overshoot=ymax-1
s=4001;while y(s)>.98&y(s)<1.02;s=s-1;end; setting_time=(s-1)*.005
输出:
rise_time =
0.5750
peak_time =
1.6700
max_overshoot =
0.6182