MATLAB实验六数据
- 格式:docx
- 大小:53.33 KB
- 文档页数:5
1、串联超前校正装置设计
已知系统的开环传递函数:,用Matlab程序编程,设计串联超前校正装置,使系统校正后的相位裕量为50度。
num=20;
den=[0.5 1 0];
G=tf(num,den);
[gm,pm,wcg,wcp]=margin(num,den);
dpm=50-pm+5;
phi=dpm*pi/180;
a=(1+sin(phi))/(1-sin(phi));
mm=-10*log10(a);
[mag,phase,w]=bode(num,den);
magdb=20*log10(mag);
wc=spline(magdb,w,mm);
T=1/(wc*sqrt(a));
p=a*T;
nk=[p,1];
dk=[T,1];
Gc=tf(nk,dk);
printsys(nk,dk,'s');
G=G*Gc;
[gm,pm,wcg,wcp]=margin(G)
num/den =
0.22682 s + 1
--------------
0.056296 s + 1
gm =
Inf
pm =
49.7706
wcg =
Inf
wcp =
8.8496
2、串联滞后校正装置设计
已知系统的开环传递函数:,用Matlab程序编程,设计串联超前校正装置,使系统校正后的相位裕量为45度。
> num=5;
den=[0.5 1.5 1 0];
G0=tf(num,den);
[gm,pm,wcg,wcp]=margin(num,den);
dpm=-180+40+12;
[mag,phase,w]=bode(num,den);
wc=spline(phase,w,dpm);
magdb=20*log10(mag);
magwc=spline(w,magdb,wc);
beta=10^(-magwc/20);
w2=0.2*wc;
T=1/(beta*w2);
nk=[beta*T,1];
dk=[T,1];
Gc=tf(nk,dk);
printsys(nk,dk,'s');
G=G0*Gc;
[gm,pm,wcg,wcp]=margin(G)
num/den =
10.7612 s + 1
-------------
102.295 s + 1
gm =
4.9898
pm =
41.5140
wcg =
1.3231
wcp =
0.4718
>> 2、串联超前校正装置设计
已知系统的开环传递函数:,用Matlab程序编程,设计串联超前校正装置,使系统校正后的相位裕量为40度。
num=1600;
den=conv([1,0],conv([1,2],[1,40]));
G0=tf(num,den);
[gm,pm,wcg,wcp]=margin(num,den);
w=0.01:0.001:100;
dpm=40-pm+6;
phi=dpm*pi/180;
a=(1+sin(phi))/(1-sin(phi));
mm=-10*log10(a);
[mag,phase,w]=bode(num,den);
magdb=20*log10(mag);
wc=spline(magdb,w,mm);
wa1=wc/sqrt(a);
wa2=sqrt(a)*wc;
na=[1/wa1,1];
da=[1/wa2,1];
Ga=tf(na,da);
disp('Ga='),Ga
wd1=wc/10;
wd2=wd1/a;
nd=[1/wd1,1];
dd=[1/wd2,1];
Gd=tf(nd,dd);
disp('Ga='),Gd
disp('Gc='),Ga*Gd
Gc=Ga*Gd;
G=G0*Gc;
[gm,pm,wcg,wcp]=margin(G);Ga
Ga =
0.2286 s + 1
------------
0.0577 s + 1
Continuous-time transfer function.
Ga=
Gd =
1.148 s + 1
-----------
4.549 s + 1
Continuous-time transfer function.
Gc=
ans =
0.2625 s^2 + 1.377 s + 1
------------------------
0.2625 s^2 + 4.607 s + 1
gm =
18.5679
pm =
41.7722
wcg =
22.8365
wcp =
3.3078
3、PID校正
已知系统的开环传递函数:,用Matlab程序编程,对系统进行PID校正。
解:Ziegler-Nichols方法
PID三个参数为:
其中,、为系统在临界振荡时的增益和频率。