线性系统串联校正.docx
《线性系统串联校正.docx》由会员分享,可在线阅读,更多相关《线性系统串联校正.docx(16页珍藏版)》请在冰豆网上搜索。
![线性系统串联校正.docx](https://file1.bdocx.com/fileroot1/2023-1/27/ba1b394f-d81b-4618-93ea-e1eaed090d8a/ba1b394f-d81b-4618-93ea-e1eaed090d8a1.gif)
线性系统串联校正
实验八线性系统串联校正
一、实验目的
1.熟练掌握用MATLAB语句绘制频域曲线。
2.掌握控制系统频域范围内的分析校正方法。
3.掌握用频率特性法进行串联校正设计的思路和步骤。
二、基础知识
控制系统设计的思路之一就是在原系统特性的基础上,对原特性加以校正,使之达到要求的性能指标。
最常用的经典校正方法有根轨迹法和频域法。
而常用的串联校正装置有超前校正、滞后校正和超前滞后校正装置。
本实验主要讨论在MATLAB环境下进行串联校正设计。
1.基于频率法的串联超前校正
超前校正装置的主要作用是通过其相位超前效应来改变频率响应曲线的形状,产生足够大的相位超前角,以补偿原来系统中元件造成的过大的相位滞后。
因此校正时应使校正装置的最大超前相位角出现在校正后系统的开环截止频率
处。
例5-1:
单位反馈系统的开环传递函数为
,试确定串联校正装置的特性,使系统满足在斜坡函数作用下系统的稳态误差小于0.1,相角裕度
。
解:
根据系统静态精度的要求,选择开环增益
取
,求原系统的相角裕度。
>>num0=12;den0=[2,1,0];w=0.1:
1000;
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)%计算系统的相角裕度和幅值裕度,并绘制出Bode图
grid;
ans=
Inf11.6548Inf2.4240
由结果可知,原系统相角裕度
,
,不满足指标要求,系统的Bode图如图5-1所示。
考虑采用串联超前校正装置,以增加系统的相角裕度。
确定串联装置所需要增加的超前相位角及求得的校正装置参数。
e=5;r=45;r0=pm1;
phic=(r-r0+e)*pi/180;
alpha=(1+sin(phic))/(1-sin(phic));
将校正装置的最大超前角处的频率
作为校正后系统的剪切频率
。
则有:
即原系统幅频特性幅值等于
时的频率,选为
。
根据
=
,求出校正装置的参数
。
即
。
[il,ii]=min(abs(mag1-1/sqrt(alpha)));
wc=w(ii);T=1/(wc*sqrt(alpha));
numc=[alpha*T,1];denc=[T,1];
[num,den]=series(num0,den0,numc,denc);%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)%显示校正装置的传递函数
disp(’校正之后的系统开环传递函数为:
’);
printsys(num,den)%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);
grid;ylabel(’幅值(db)’);title(’--Go,-Gc,GoGc’);
subplot(2,1,2);semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:
’);
grid;ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);
title([‘校正前:
幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;
’校正后:
幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
2.基于频率法的串联滞后校正
滞后校正装置将给系统带来滞后相角。
引入滞后装置的真正目的不是为了提供一个滞后相角,而是要使系统增益适当衰减,以便提高系统的稳态精度。
滞后校正的设计主要是利用它的高频衰减作用,降低系统的截止频率,以便能使得系统获得充分的相位裕量。
例5-2:
单位反馈系统的开环传递函数为
,试确定串联校正装置的特性,使校正后系统的静态速度误差系数等于30/s,相角裕度
,幅值裕量不小于10dB,截止频率不小于2.3rad/s。
解:
根据系统静态精度的要求,选择开环增益
利用MATLAB绘制原系统的bode图和相应的稳定裕度。
>>num0=30;den0=conv([1,0],conv([0.1,1],[0.2,1]));w=logspace(-1,1.2);
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
grid;
ans=
0.5000-17.23907.07119.7714
由结果可知,原系统不稳定,且截止频率远大于要求值。
系统的Bode图如图5-3所示,考虑采用串联超前校正无法满足要求,故选用滞后校正装置。
根据对相位裕量的要求,选择相角为
处的频率作为校正后系统的截止频率
。
确定原系统在新
处的幅值衰减到0dB时所需的衰减量为
。
一般取校正装置的转折频率分别为
和
。
e=10;r=40;r0=pm1;
phi=(-180+r+e);
[il,ii]=min(abs(phase1-phi));
wc=w(ii);beit=mag1(ii);T=10/wc;
numc=[T,1];denc=[beit*T,1];
[num,den]=series(num0,den0,numc,denc);%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)%显示校正装置的传递函数
disp(’校正之后的系统开环传递函数为:
’);
printsys(num,den)%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);
grid;ylabel(’幅值(db)’);title(’--Go,-Gc,GoGc’);
subplot(2,1,2);semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:
’);
grid;ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);
title([‘校正前:
幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;
’校正后:
幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
3.基于频率法的串联滞后-超前校正
滞后-超前校正装置综合了超前校正和滞后校正的优点,从而改善了系统的性能。
例5-3:
单位反馈系统的开环传递函数为
,若要求相角裕度
,幅值裕量大于10dB,
,试确定串联校正装置的特性。
解:
根据系统静态精度的要求,选择开环增益
利用MATLAB绘制原系统的bode图和相应的稳定裕度,如图5-5所示。
>>num0=10;den0=conv([1,0],conv([1,1],[0.4,1]));w=logspace(-1,1.2);
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
grid;
ans=
0.3500-24.19181.58112.5520
由结果可以看出,单级超前装置难以满足要求,故设计一个串联滞后-超前装置。
选择原系统
的频率为新的截止频率
,则可以确定滞后部分的
和
。
其中
,
。
由原系统,
,此时的幅值为9.12dB。
根据校正后系统在新的幅值交接频率处的幅值必须为0dB,确定超前校正部分的
。
在原系统
,即(1.58,-9.12)处画一条斜率为
的直线,此直线与0dB线及-20dB线的交点分别为超前校正部分的两个转折频率。
wc=1.58;beit=10;T2=10/wc;
lw=20*log10(w/1.58)-9.12;
[il,ii]=min(abs(lw+20));w1=w(ii);
numc1=[1/w1,1];denc1=[1/(beit*w1),1];
numc2=[T2,1];denc2=[beit*T2,1];
[numc,denc]=series(numc1,denc1,numc2,denc2);
[num,den]=series(num0,den0,numc,denc);
printsys(numc,denc)
disp(’校正之后的系统开环传递函数为:
’);
printsys(num,den)[mag2,phase2]=bode(numc,denc,w);
[mag,phase]=bode(num,den,w);
[gm,pm,wcg,wcp]=margin(num,den);subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);
grid;ylabel(’幅值(db)’);title(’--Go,-Gc,GoGc’);
subplot(2,1,2);semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:
’);
grid;ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);
title([‘校正后:
幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
三、实验内容
1.某单位负反馈控制系统的开环传递函数为
,试设计一超前校正装置,使校正后系统的静态速度误差系数
,相位裕量
,增益裕量
。
Matlab程序:
num0=4;den0=[1,1,0];w=0.1:
1000;
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
ans=
Inf28.0202Inf1.8791
由结果可知,原系统相角裕度为28.02°,wc=1.879rad/s,不满足指标要求,系统的Bode图如下所示。
考虑采用串联超前校正装置,以增加系统的相角裕度。
校正后的传递函数及Bode图:
Matlab:
e=5.5275;r=50;r0=pm1;
phic=(r-r0+e)*pi/180;
alpha=(1+sin(phic))/(1-sin(phic));
[il,ii]=min(abs(mag1-1/sqrt(alpha)));
wc=w(ii);T=1/(wc*sqrt(alpha));
numc=[alpha*T,1];denc=[T,1];
[num,den]=series(num0,den0,numc,denc);
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)%显示校正装置的传递函数
disp('校正之后的系统开环传递函数为:
');
printsys(num,den)%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.');
grid;ylabel('幅值(db)');title('--Go,-Gc,GoGc');
subplot(2,1,2);semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':
');
grid;
ylabel('相位(0)');xlabel('频率(rad/sec)');
title(['校正前:
幅值裕量=',num2str(20*log10(gm1)),'db','相位裕量=',num2str(pm1),'0';
'校正后:
幅值裕量=',num2str(20*log10(gm)),'db','相位裕量=',num2str(pm),'0']);
结果:
num/den=
2.7973s+1
---------------
0.0060511s+1
校正之后的系统开环传递函数为:
num/den=
67.1354s+24
------------------------------------------------------
0.0060511s^4+1.0182s^3+3.0182s^2+3.0061s+1
校正后的传递函数及Bode图:
2.某单位负反馈控制系统的开环传递函数为
,试设计一个合适的滞后校正网络,使系统阶跃响应的稳态误差约为0.04,相角裕量约为
。
由稳态误差可求出,1/(k+1)=0.04得出k=24
Matlab程序:
num0=24;den0=conv([1,1],conv([1,1],[1,1]));w=logspace(-1,1.2);
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
grid;
结果:
ans=
0.3334-29.14671.73222.7056
Bode图
校正Matlab程序:
e=10;r=45;r0=pm1;
phi=(-180+r+e);
[il,ii]=min(abs(phase1-phi));
wc=w(ii);beit=mag1(ii);T=10/wc;
numc=[T,1];denc=[beit*T,1];
[num,den]=series(num0,den0,numc,denc);%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)%显示校正装置的传递函数
disp('校正之后的系统开环传递函数为:
');
printsys(num,den)%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.');
grid;ylabel('幅值(db)');title('--Go,-Gc,GoGc');
subplot(2,1,2);semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':
');
grid;ylabel('相位(0)');xlabel('频率(rad/sec)');
title(['校正前:
幅值裕量=',num2str(20*log10(gm1)),'db','相位裕量=',num2str(pm1),'0';
'校正后:
幅值裕量=',num2str(20*log10(gm)),'db','相位裕量=',num2str(pm),'0']);
结果:
num/den=
11.4062s+1
-------------
116.386s+1
校正之后的系统开环传递函数为:
num/den=
273.75s+24
---------------------------------------------------------
116.386s^4+350.1579s^3+352.1579s^2+119.386s+1
图如下:
3.某单位负反馈控制系统的开环传递函数为
,试设计一滞后-超前校正装置,使校正后系统的静态速度误差系数
,相位裕量
,增益裕量
。
由
可知k=20
Matlab程序:
num0=20;den0=conv([1,0],conv([1,1],[1,2]));w=logspace(-1,1.2);
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
grid;
结果:
ans=
0.3000-28.08141.41422.4253
Bode图:
选择原系统
的频率为新的截止频率
,则可以确定滞后部分的
和
。
其中
,
。
由原系统,
,此时的幅值为9.12dB。
根据校正后系统在新的幅值交接频率处的幅值必须为0dB,确定超前校正部分的
。
在原系统
,即(1.58,-9.12)处画一条斜率为
的直线,此直线与0dB线及-20dB线的交点分别为超前校正部分的两个转折频率。
num0=20;den0=conv([1,0],conv([1,1],[1,2]));w=logspace(-1,1.2);
[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);
[gm1,pm1,wcg1,wcp1]
margin(num0,den0)
wc=1.58;beit=10;T2=10/wc;
lw=20*log10(w/1.58)-9.12;
[il,ii]=min(abs(lw+20));
w1=w(ii);
numc1=[1/w1,1];denc1=[1/(beit*w1),1];
numc2=[T2,1];denc2=[beit*T2,1];
[numc,denc]=series(numc1,denc1,numc2,denc2);
[num,den]=series(num0,den0,numc,denc);
printsys(numc,denc)
disp('УÕýÖ®ºóµÄϵͳ¿ª»·´«µÝº¯ÊýΪ:
');
printsys(num,den)
[mag2,phase2]=bode(numc,denc,w);
[mag,phase]=bode(num,den,w);
[gm,pm,wcg,wcp]=margin(num,den);
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.');
grid;ylabel('·ùÖµ(db)');title('--Go,-Gc,GoGc');
subplot(2,1,2);semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':
');
grid;ylabel('Ïàλ(0)');xlabel('ƵÂÊ(rad/sec)');
title(['УÕýºó£º·ùÖµÔ£Á¿=',num2str(20*log10(gm)),'db','ÏàλԣÁ¿=',num2str(pm),'0']);
四、实验心得
通过本节课的实验,从直观上增加了对线性系统串联校正的理解,从而加深了线性系统校正的理论知识,掌握了控制系统频域范围内的分析校正方法,学会了用频率特性法进行串联校正设计的思路和步骤。