自控课程设计
- 格式:doc
- 大小:113.00 KB
- 文档页数:9
题目一
for k=[0.2,0.5,1,2,5]
num=[k];
den=[0.5,1,k];
hold on
sys=tf(num,den);
figure(1);
step(sys);
hold off
end
title('阶跃响应曲线')
lab1='k=0.2';text(5,0.6,lab1);
lab2='k=0.5';text(2,0.7,lab2);
lab3='k=1';text(1,0.8,lab3);
lab4='k=2';text(2,1.1,lab4);
lab5='k=5';text(1,1.3,lab5);
%频率响应
for k=[0.2,0.5,1,2,5];
num=[k];
den=[0.5,1,k];
hold on
sys=tf(num,den);
figure(2);
bode(sys);
hold off
end
title('频率响应曲线')
阶跃响应曲线:
频率响应曲线:
题目二
%超前串联校正
%原系统的bode图和阶跃响应曲线
num=2000;den=[1,30,200,0];
G0=tf(num,den)
figure(1);
% title('原系统的bode图')
margin(G0);%计算幅值裕度、相角裕度
hold on
figure(2);
% title('原系统的阶跃响应曲线')
sys=feedback(G0,1);%求线性时不变系统的前向传递函数
step(sys)%动态系统的阶跃响应
%可设置结束的仿真时间
%校正
% w=0.1:0.1:1000;
w=logspace(-1,3,10000);
[Gm,Pm,wcg,wcp]=margin(G0);
[mag,phase]=bode(G0,w)%mag幅值,phase幅角
magdb=20*log10(mag);
gamal=45;%要求的相角裕度
data=15.7;
gama=gamal-Pm+data;
alpha=(1+sin(gama*pi/180))/(1-sin(gama*pi/180));
a=10*log10(alpha);
n=find((magdb+a)<=0.0001);
wc=w(n(1));
w1=wc/sqrt(alpha);
w2=wc*sqrt(alpha);
numc=[1/w1,1];
denc=[1/w2,1];
Gc=tf(numc,denc);
G=Gc*G0;
[Gmc,Pmc,wcgc,wcpc]=margin(G);
Gmcdb=20*log10(Gmc);
disp('校正装置传递函数和校正后系统开环传递函数'),Gc,G
disp('校正后系统的频域性能指标Kg,γ,wc'),[Gmc,Pmc,wcpc]
disp('校正装置的参数T和α值:'),T=1/w1;[1,alpha]
bode(G0,G);
hold on
margin(G)
未校正系统Bode图:
校正后系统Bode图:
题目三
num=100;
den1=conv([1,0],[1,5]);
G0=tf(num,den1);
margin(G0);
%画出含Gm和Pm的Bode图
a=65.5246;b=5; c=a+b;
w=0.01:0.01:1000;
[mag,phase]=bode(G0,w);
%找出曲线上的点(mag,w)(phase,w),不画图
n=find(180+phase-c<=0.1); wc=w(n(1));
%通过find(),找出符合条件的phase,再通过w(n(1))找到目标wc
[mag,phase]=bode(G0,wc);%找出(mag,wc),(phase,wc)
magdb=20*log10(mag);%换算
beta=10^(magdb/20);
w2=wc/10; w1=w2/beta;
Gc=tf([1/w2,1],[1/w1,1]);
G=G0*Gc;
%修正后的系统
bode(G0,G);
%比较校正前后bode图
hold on; margin(G); hold off;
%下面的是系统gamma(Omega·c) ,以及Omega·c的计算过程
t=0.707; wn=1.5;
wcc=wn*sqrt(sqrt(4*t^4+1)-2*t*t)
xiangjiao=atan(2*t/(sqrt(sqrt(4*t^4+1)-2*t*t)))
%此处计算出的是弧度
xiangjiao*180/pi
校正后系统Bode图:
题目四
% G0(s)=k/[s*(0.1s+1)*(0.025s+1)],k>=100,SIGMAP<=0.3,Ts<0.5
% Gc(s)=[(1+s/w1)*(1+s/w3)]/[(1+s/w2)*(1+s/w4)],G(s)=G0(s)*Gc(s)
%传递函数
num=100;den=conv([1 ,0],conv([0.1,1],[0.025, 1]));
G0=tf(num,den),[kg,gamma,wg,wc]=margin(G0);
%含【(mag,wg),(phase,wc)】即含增益裕度和相位裕度的Bode图
kgdb=20*log10(kg);
%超前校正
w=0.001:0.001:1000; [mag,phase]=bode(G0,w);
%算出Bode图中曲线上的每个点的值
disp('未校正系统参数:20lgkg,wc,gamma'),[kgdb,wc,gamma],
%此处的[kgdb,Wg],[gamma,wc]
gammal=47.79;delta=14;
phim=gammal-gamma+delta;
alpha=(1+sin(phim*pi/180))/(1-sin(phim*pi/180));
% 求出a(alpha)
magdb=20*log10(mag);
%算出增益裕度
n=find(magdb+10*log10(alpha)<=0.0001); wcc=w(n(1));
%找出目标Wc
w3=wcc/sqrt(alpha); w4=sqrt(alpha)*wcc;
numc1=[1/w3,1]; denc1=[1/w4,1];
Gc1=tf(numc1,denc1); G01=G0*Gc1;%超前校正后的函数
%滞后校正
[mag1,phase1]=bode(G01,wc);
%含(mag1,wg),(phase1,wc)即增益裕度和相位裕度的Bode图
Lhc=20*log10(mag1); beta=10^(Lhc/20);
w2=wcc/12;w1=w2/beta; numc2=[1/w2,1];denc2=[1/w1,1];
Gc2=tf(numc2,denc2); Gc=Gc1*Gc2;%超前-滞后校正函数最终版
G=Gc*G0;%校正后函数
%后期处理工作
[Gmc,Pmc,Wcgc,Wcpc]=margin(G); Gmcdb=20*log10(Gmc);
disp('超前校正部分的传递函数'),Gc1,
disp('滞后校正部分的传递函数'),Gc2,
disp('串联超前滞后校正装置的传递函数'),Gc,
disp('校正后整个系统的传递函数'),G,
disp('校正后系统的参数:20lgkg,wc,r及a值'),[Gmcdb,Wcgc,Pmc,alpha],
figure(1);
bode(G0,G),hold on;beta; margin(G),hold on;figure(2);
G=feedback(G,1); step(G);
%数值来源计算公式
SIGMAp=0.3;
t=(SIGMAp-0.16)/0.14 ;u=1/(1+t);
Y=asin(u);47.79 ;Y1=Y*pi/180;
% 算出gamma(相位裕度)的值用Y1表示
Ts=0.5;
% Wc=pi*(2+1.5*t+2.5*t^2)/Ts 37.6991
校正后系统Bode图:
阶跃响应曲线: