(完整word版)matlab实验十 控制系统的PID校正设计及仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十 控制系统的PID 校正设计及仿真
一、实验目的
1.学会用MA TLAB 对系统进行仿真;
2.应用频率综合法对系统进行PID 校正综合。
二、设计原理与步骤
1.设计原理
超前校正的主要作用是增加相角裕量,改善系统的动态响应特性。滞后校正的作用是改善系统的静态特性,两种校正结合起来就能同时改善系统的动态和静态特性。滞后超前校正(亦称PID 校正)综合了前两种校正的功能。
滞后超前校正(亦称PID 校正)的传递函数为:
)(,)1()1)(1()
1)(1()(121212T T S T S T S T S T S G C ααββα>>≥++++=
它相当于一个滞后校正与一个超前校正相串联,其对数频率特性如
图10-1所示:
2.设计步骤
基于频率法综合滞后-超前校正的步骤是:
(1)根据静态指标要求,确定开环比例系数K ,并按已确定的K 画出系统固有部分的Bode 图;
(2)根据动态指标要求确定c ω,检查系统固有部分在c ω的对数幅频特性的斜率是否为-2,
如果是,求出c ω点的相角;
(3)按综合超前校正的步骤(3)~(6)综合超前部分G C1(S )(注意在确定m θ时要计入滞后校正带来的0012~5的相角滞后量)。在第(6)步时注意,通常)()(c c c g L L ωω+比0高出很多,所以要引进滞后校正;
(4)令βlg 20=)()(c c c g L L ωω+求出β;
(5)按综合滞后校正的步骤(4)~(5)综合滞后部分)(2S G c ;
(6)将滞后校正与超前校正串联在一起,构成滞后超前校正:)()()(21S G S G S G c c c ⋅=
三、实验内容
练习10-1反馈控制系统的开环传递函数为:
)
105.0)(11.0()(++=
S S S K S G 要求:
(1)速度偏差系数Kv 50≥
(2)相位裕度γ%5400±=
(3)增益穿越频率%510±=c ω
要求:
(1)设计满足上述要求的滞后-超前控制器;
(2)用Simulink 进行仿真;
(3)画出校正前后的Bode 图
(4)分析讨论设计过程及结果。
s=tf('s')
g=40/(s*(s+1)*(s+4))
%g=tf(40,[conv([1,1],[1,4]),0])
w=logspace(-1,3,1000);
subplot(2,1,1)
margin(g);grid on
hold on
[mag,phase,w]=bode(g,w);
[gm,pm,wcg,wcp]=margin(mag,phase,w); gama=50;
gama1=gama-pm+5;
gam1=gama1*pi/180;
alfa=(1-sin(gam1))/(1+sin(gam1));
adb=20*log10(mag);
wc=spline(adb,w,10*log(alfa));
t=1/(wc*sqrt(alfa));
gc1=tf([t,1],[t*alfa,1])
sys=g*gc1;
wc=10;
num=sys.num{1};
den=sys.den{1};
na=polyval(num,j*wc);
da=polyval(den,j*wc);
g1=na/da;
g11=abs(g1);
h=20*log10(g11);
beta=10^(h/20);
t=1/(0.1*wc);
bt=beta*t;
gc2=tf([t,1],[bt,1])
sys1=g*gc1*gc2
[mag1,phase1,w]=bode(sys1,w);
[gm1,pm1,wcg1,wcp1]=margin(mag1,phase1,w);
gma1db=20*log10(gm1);
subplot(2,1,2)
margin(sys1);
grid on;
练习10-2 被控对象的传递函数为:
)
4)(1()(++=S S S K S G 要求设计单回路控制系统,满足:
(1)稳态速度误差增益Kv=10 /s
(2)相位裕度0
50=γ
(3)增益裕度db 10≥
要求:
(1)设计满足上述要求的滞后-超前控制器;
(2)用Simulink 进行仿真;
(3)画出校正前后的Bode 图
(4)分析讨论设计结果。
clear
g=tf(10,[conv([1,1],[1,4]),0])
subplot(2,1,1)
margin(g);grid on
hold on
[mag,phase,w]=bode(g);
[gm,pm,wcg,wcp]=margin(mag,phase,w);
gama=50;
gama1=gama-pm;
gam1=gama1*pi/180;
alfa=(1-sin(gam1))/(1+sin(gam1));
adb=20*log10(mag);
wc=spline(adb,w,10*log(alfa));
t=1/(wc*sqrt(alfa));
gc1=tf([t,1],[t*alfa,1])
sys=g*gc1;
gama2=gama+pm-180;