西电 自动控制 上机 实验 报告.docx
- 文档编号:5821411
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:28
- 大小:762.66KB
西电 自动控制 上机 实验 报告.docx
《西电 自动控制 上机 实验 报告.docx》由会员分享,可在线阅读,更多相关《西电 自动控制 上机 实验 报告.docx(28页珍藏版)》请在冰豆网上搜索。
西电自动控制上机实验报告
程序代码aa1.m
ft=30;M=1;B=5;K=20;%系统参数
tspan=[0,5];%设置仿真开始和结束时间
x0=[0,0];%系统初始值,零初始条件
options=odeset('AbsTol',1e-6);%设置仿真计算精度
[t,x]=ode113('xt4odefile',tspan,x0,options);
%微分方程求解,计算位移x(:
1)和速度x(:
2)
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('位移d=%6.4f\n',x(i,1));%显示计算结果
disp(result);
result=sprintf('速度v=%8.6f\n',x(i,2));
disp(result);
result=sprintf('加速度a=%9.6f\n',a(i));
disp(result);
result=sprintf('时间t=%4.2f\n',t(i));
disp(result);
d=x(:
1);
subplot(311),plot(t,d);%绘制时间-位移曲线
xlabel('时间(秒)');ylabel('位移(米)');
title('时间-位移曲线');grid;
v=x(:
2);
subplot(312),plot(t,v);%绘制时间-速度曲线
xlabel('时间(秒)');ylabel('速度(米/秒)');
title('时间-速度曲线');grid;
subplot(313),plot(d,v);%绘制位移-速度曲线
xlabel('位移(米)');ylabel('速度(米/秒)');
title('位移-速度曲线');grid;
其中xt4odefile函数为:
functionxt=xt4odefile(t,x)
ft=30;M=1;B=5;K=20;
xt=[x
(2);1/M*(ft-B*x
(2)-K*x
(1))];
运行结果:
程序代码aa2.m
clearall;closeall;
num=[2,5,7];
den=[1,6,10,6];
sys=tf(num,den);
[z,p,k]=tf2zp(num,den)
[r,p,k]=residue(num,den)
运行结果
z,p,k分别代表零点,极点和增益。
根据r,p,k可以写出部分分式:
程序代码aa3.m
clearall;closeall;
sys=tf([6.3223,18,12.811],[1,6,11.3223,18,12.811])
t=0:
0.01:
30;
[y,t]=step(sys,t);
[ymax,k]=max(y);
fengzhi=t(k)%峰值时间
zhongzhi=y(3000)%终值是时间趋于无穷大时函数的输出值,这里用y的末值代替
chaotiaoliang=(fengzhi-zhongzhi)/zhongzhi%求超调量
n=1;m=1;
while(y(n)<=0.1*zhongzhi)
n=n+1;
end
while(y(m)<=0.9*zhongzhi)
m=m+1;
end
shangsheng=t(m)-t(n)%上升时间从终值的10%上升到90%
fork=1:
3000
ifabs(y(k)-zhongzhi)>0.02&&abs(y(k+1)-zhongzhi)<=0.02
kk=k+1;
end
end
tiaojie=t(kk)%调节时间正负误差2%
运行结果
单位阶跃响应图如下图所示,运行结果峰值为1.67,终值为1,超调量为67%,上升时间为0.58s,调节时间为10.04s,对比图形可以得到验证。
程序代码aa4.m
clearall;closeall;
num=[1,1];
den=[1,5,6,0];
rlocus(num,den)%绘制根轨迹图
numg=[20.575,20.575];deng=[1,2,0];
numh=[1];denh=[1,3];
[numbi,denbi]=feedback(numg,deng,numh,denh);
z=roots(numbi)%求闭环零极点找出主导极点
p=roots(denbi)
sys=tf(numbi,denbi);
figure
t=0:
0.1:
10;
step(sys,t);
grid
运行结果:
根据主导极点,偶极子的定义得出,主导极点为
根轨迹及单位阶跃响应图如下
程序代码bb4.m
clearall;closeall;
num=0.01*[1,0.01,1];
den=conv([1,0,0],[0.25,0.01,1]);
bode(num,den,'k')%总的波特图用黑色线标出
holdon
bode(num,1,'r')%二阶比例微分环节用红色标出
den1=[1,0,0];den2=[0.25,0.01,1];
bode(1,den1,'y')%振荡环节用黄色标出
bode(1,den2,'b')%振荡环节用蓝色标出
holdoff
运行结果
黑色线为总的伯德图,等于其他颜色线的叠加
程序代码bb2.m
clearall;closeall;
G=tf(20*[1,1,0.5],conv([1,1,0],[1,10]))
nyquist(G)
运行结果
程序代码bb3.m
clearall;closeall;
G=tf(2000*[1,1],conv([1,0.5,0],[1,14,400]))
nichols(G)
运行结果
程序代码bb4.m
clearall;closeall;
G=tf(2000*[1,1],conv([1,0.5,0],[1,14,400]));
bode(G)
gridon
[gm,pm,wcg,wcp]=margin(G)
运行结果
程序代码bb5.m
clearall;closeall;
num=[1];
den=[0.5,1.5,1,0];
[fnum,fden]=cloop(num,den,-1);
%printsys(num,den,'s');
%printsys(fnum,fden,'s');
bode(fnum,fden);
[mag,phase,w]=bode(fnum,fden);
[mr,k]=max(mag);%谐振峰值
resonantPeak=20*log10(mr)%谐振峰值单位转换
resonantFreq=w(k)%谐振频率
n=1;
while(20*log10(mag(n))>=-3)
n=n+1;
end
banwidth=w(n)%带宽
运行结果
程序代码cc1.m
clearall;closeall;
num=[1,2,3];
den=[1,3,3,1];
[A1,B1,C1,D1]=tf2ss(num,den)
clear
z=[-1,-3];
p=[0,-2,-4,-6];
k=4;
[A2,B2,C2,D2]=zp2ss(z,p,k)
clear
A3=[0,1;1,-2];
B3=[0;1];
C3=[1,3];
D3=[1];
[num,den]=ss2tf(A3,B3,C3,D3)
[z,p,k]=ss2zp(A3,B3,C3,D3)
运行结果
结果如下图所示
程序代码cc2.m
clearall;closeall;
a1=[0,1;-1,-2];b1=[0;1];c1=[1,3];d1=[1];
a2=[0,1;-1,-3];b2=[0;1];c2=[1,4];d2=[0];
[num1,den1]=ss2tf(a1,b1,c1,d1);
[num2,den2]=ss2tf(a2,b2,c2,d2);
[numchuan,denchuan]=series(num1,den1,num2,den2);
[numbing,denbing]=parallel(num1,den1,num2,den2);
%串联连接时状态空间方程
[ac,bc,cc,dc]=tf2ss(numchuan,denchuan)
%并联连接时状态空间方程
[ab,bb,cb,db]=tf2ss(numbing,denbing)
%系统2的单位正反馈,单位负反馈状态空间方程
[num2z,den2z]=cloop(num2,den2,1);
[a2z,b2z,c2z,d2z]=tf2ss(num2z,den2z)
[num2f,den2f]=cloop(num2,den2,-1);
[a2f,b2f,c2f,d2f]=tf2ss(num2f,den2f)
%系统1的单位正反馈,单位负反馈状态空间方程
[num1f,den1f]=cloop(num1,den1,-1);
[a1f,b1f,c1f,d1f]=tf2ss(num1f,den1f)%系统1单位负反馈可以可以用状态空间方程表示
[num1z,den1z]=cloop(num1,den1,1);
[a1z,b1z,c1z,d1z]=tf2ss(num1z,den1z)%系统1单位正反馈分子阶数比分母高无法表示
运行结果
串联时的状态空间方程
并联时的状态空间方程
系统2的单位正反馈,单位负反馈状态空间方程
系统1的单位负反馈状态空间方程如下所示,单位正反馈方程无法表示。
程序代码cc3.m
clearall;closeall;clc
A=[0,-2;1,-3];B=[2;0];C=[0,3];D=[0];
symst
G=expm(A*t);%状态转移矩阵
X0=[0;0];t=0:
0.01:
2;
u=sin(2*pi*t);%输入函数
[y,x]=lsim(A,B,C,D,u,t,X0);
plot(t,u,t,x)
运行结果
程序代码cc4.m
clearall;closeall;
a=[-3,1;1,-3];
b=[1,1;1,1];
c=[1,1;1,-1];
kekong=[ba*ba^2*b]
rank(kekong)
keguang=[c;a*c;a*a*c]
rank(keguang)
运行结果
满秩时系统即为客观或可测
程序代码cc5.m
clearall
clc
A=[0,1;-2,-3];
B=[0;1];
C=[2,0];
kekong=[BA*BA^2*B];
rank(kekong);
keguan=[C;C*A;C*A*A];
rank(keguan);
L=[-1,-2];
G=acker(A',C',L)'
KK=[-3,-3];
K=acker(A,B,KK)
运行结果
根据下面的计算方法即可写出带状态反馈的状态观测器
程序代码见附件dd1.m
增量式PID阶跃跟踪结果
程序代码见附件dd2.m
运行结果
积分分离式PID阶跃跟踪
普通PID阶跃跟踪
程序代码见附件dd3.m
运行结果如下
M=1抗积分饱和阶跃响应仿真
M=2普通PID阶跃响应仿真
程序代码见附件dd4.m
运行结果
M=1不带死区PID控制
M=2带死区PID控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西电 自动控制 上机 实验 报告