> 文章列表 > Chapter8.3:控制系统校正的根轨迹法

Chapter8.3:控制系统校正的根轨迹法

Chapter8.3:控制系统校正的根轨迹法

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。



3.控制系统校正的根轨迹

3.1 概述
  • 根轨迹法是一种图解法,描述了系统某一参数从零变化到无穷大时,其闭环极点位置的变化;
  • 通过引入适当的校正装置来改变原来系统的根轨迹,以获得期望的系统性能;
  • 引入校正装置即在系统中增加零极点,通过零极点的变化改变根轨迹的形状;
  • 用根轨迹法进行校正的基础,是通过在系统开环传递函数中增加零极点来改变根轨迹的形状,从而使系统根轨迹在sss平面上通过希望的闭环极点;
  • 根轨迹法校正的特征是基于闭环系统具有一对主导闭环极点,零点和附加的极点会影响响应特性;
  • 应用根轨迹进行校正,实质上是通过采用校正装置改变根轨迹,从而将一对主导闭环极点配置到期望的位置上;
  • 在开环传递函数中增加极点,可以使根轨迹向右方移动,从而降低系统的相对稳定性,增大系统调节时间;
  • 在开环传递函数中增加零点,可以使根轨迹向左方移动,从而提高系统的相对稳定性,减小系统调节时间;
  • 当系统性能指标是以最大超调量、上升时间、调节时间、阻尼比,及希望的闭环阻尼比、闭环极点无阻尼频率等表示时,采用根轨迹法进行校正较为方便;
  • 采用根轨迹法确定串联校正参数的条件是:
    • 已确定采用串联校正方案;
    • 给定时域指标:σp、ts、ess(∞)\\sigma_p、t_s、e_{ss}(\\infty)σptsess()
3.2 基于根轨迹法的超前校正

用根轨迹法设计超前校正装置步骤:

  • 先假定系统的控制性能由靠虚轴最近的一对闭环共轭极点sds_dsd主导;

  • 应用二阶系统参量ζ\\zetaζωn\\omega_nωn与时域指标之间的关系,按给定的σp\\sigma_pσptst_sts确定闭环主导极点的位置;

  • 绘制原系统根轨迹,如果根轨迹不能通过希望的闭环主导极点,则表明仅调整增益不能满足给定要求,需要增加校正装置;如果原系统根轨迹位于期望极点的右侧,则应加入超前校正装置;

  • 计算超前校正装置应提供的超前相角;

  • 按下式计算校正装置零极点位置:
    φc=±(2k+1)π−∠G0(sd)\\varphi_c=±(2k+1)\\pi-\\angle{G_0(s_d)} φc=±(2k+1)πG0(sd)

  • 由幅值条件确定校正后系统增益;

  • 校验系统的性能指标,如果系统不能满足要求指标,适当调整零极点位置;如果需要大的静态误差系数,则应采用其他方案;

3.3 基于根轨迹法的滞后校正

用根轨迹法设计滞后校正装置步骤:

  • 绘制出未校正系统的根轨迹;
  • 根据要求的瞬态响应指标,确定希望的闭环主导极点,根据根轨迹的幅值条件,计算与主导极点对应的开环增益;
  • 按给定的性能指标中关于稳态误差的要求,计算应增大的误差系数值;
  • 由应增大的误差系数值确定校正装置β\\betaβ值,通常β\\betaβ取值不超过101010
  • 确定滞后校正装置的零极点,原则是使零极点靠近坐标原点,且两者相距β\\betaβ倍;
  • 绘制校正后系统的根轨迹,并求出希望的主导极点;
  • 由希望的闭环极点,根据幅值条件,适当调整放大器的增益;
  • 校验校正后系统各项性能指标,如不满足要求,则适当调整校正装置零极点位置;
3.4 基于根轨迹法的超前滞后校正

用根轨迹法设计超前滞后校正装置步骤:

  • 根据要求的性能指标,确定希望的主导极点sds_dsd位置;

  • 为使闭环极点位于希望的位置,计算超前滞后校正中超前部分应产生的超前相角:
    φc=±(2k+1)π−∠G0(sd)\\varphi_c=±(2k+1)\\pi-\\angle{G_0(s_d)} φc=±(2k+1)πG0(sd)

  • 超前滞后校正装置的传递函数为:
    φc=±(2k+1)π−∠G0(sd),Gc(s)=Kc(s+1T1s+βT1)(s+1T2s+1T2β)\\varphi_c=±(2k+1)\\pi-\\angle{G_0(s_d)},G_c(s)=K_c\\left(\\frac{s+\\displaystyle\\frac{1}{T_1}}{s+\\displaystyle\\frac{\\beta}{T_1}}\\right)\\left(\\frac{s+\\displaystyle\\frac{1}{T_2}}{s+\\displaystyle\\frac{1}{T_2\\beta}}\\right) φc=±(2k+1)πG0(sd)Gc(s)=Kcs+T1βs+T11s+T2β1s+T21

  • 对超前滞后校正中滞后部分的T2T_2T2选择要足够大,即:
    ∣sd+1T2sd+1T2β∣=1,∣sd+1T1sd+βT1∣∣K1G0(sd)∣=1,∠(sd+1T1)−∠(sd+βT1)=φ\\begin{vmatrix} \\displaystyle\\frac{s_d+\\displaystyle\\frac{1}{T_2}}{s_d+\\displaystyle\\frac{1}{T_2\\beta}} \\end{vmatrix}=1,\\begin{vmatrix} \\displaystyle\\frac{s_d+\\displaystyle\\frac{1}{T_1}}{s_d+\\displaystyle\\frac{\\beta}{T_1}} \\end{vmatrix}\\begin{vmatrix}K_1G_0(s_d)\\end{vmatrix}=1,\\angle\\left(s_d+\\displaystyle\\frac{1}{T_1}\\right)-\\angle\\left(s_d+\\displaystyle\\frac{\\beta}{T_1}\\right)=\\varphi sd+T2β1sd+T21=1sd+T1βsd+T11K1G0(sd)=1(sd+T11)(sd+T1β)=φ

  • 利用求得的β\\betaβ值,选择T2T_2T2,使:
    ∣sd+1T2sd+1T2β∣≈1,0°<∠(sd+1T2sd+1T2β)<3°\\begin{vmatrix} \\displaystyle\\frac{s_d+\\displaystyle\\frac{1}{T_2}}{s_d+\\displaystyle\\frac{1}{T_2\\beta}} \\end{vmatrix}≈1,0°<\\angle\\left(\\frac{s_d+\\displaystyle\\frac{1}{T_2}}{s_d+\\displaystyle\\frac{1}{T_2\\beta}}\\right)<3° sd+T2β1sd+T211<sd+T2β1sd+T21<

  • 检验性能指标。

3.5 MATLAB/SIMULINK在根轨迹法校正中的应用
3.5.1 实战1:超前校正

实验要求:已知控制系统开环传递函数为:G(s)=2.3s(1+0.2s)(1+0.15s)G(s)=\\displaystyle\\frac{2.3}{s(1+0.2s)(1+0.15s)}G(s)=s(1+0.2s)(1+0.15s)2.3,设计超前校正环节,使其校正后系统的静态速度误差系数Kv≤4.6K_v≤4.6Kv4.6,闭环主导极点满足阻尼比ζ=0.2\\zeta=0.2ζ=0.2,自然振荡角频率ωn=12.0rad/s\\omega_n=12.0{\\rm rad/s}ωn=12.0rad/s,绘制校正前后系统的单位阶跃响应曲线、单位脉冲响应曲线和根轨迹。

解:

STEP1{\\rm STEP1}STEP1】:计算串联超前校正环节参数子函数程序设计。

% get_param子函数,文件名:get_param.m
function Gc=get_param(G,s1,kc)
numG=G.num{1};denG=G.den{1};
ngv=polyval(numG,s1);dgv=polyval(denG,s1);
g=ngv/dgv;
theta_G=angle(g);theta_s=angle(s1);
MG=abs(g);Ms=abs(s1);Tz=(sin(theta_s)-kc*MG*sin(theta_G-theta_s))/(kc*MG*Ms*sin(theta_G));
Tp=-(kc*MG*sin(theta_s)+sin(theta_G+theta_s))/(Ms*sin(theta_G));Gc=tf([Tz,1],[Tp,1]);

STEP2{\\rm STEP2}STEP2】:求解系统校正环节传递函数和校正后闭环传递函数及各响应曲线。

% 实例Chapter8.3.5.1
clc;clear;% 建立校正前控制系统开环传递函数
num=2.3;den=conv([1,0],conv([0.2,1],[0.15,1]));
G=tf(num,den);% 校正后系统的性能要求
zeta=0.2;wn=12.0;
[num,den]=ord2(wn,zeta);
s=roots(den);
s1=s(1);kc=2;
Gc=get_param(G,s1,kc);GGc=G*Gc*kc;                    % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b',3.5);hold on;
step(G_bf_close,'r',3.5);grid;
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b',3.5);hold on;
impulse(G_bf_close,'r',3.5);grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);% 超前校正环节传递函数和校正后系统闭环传递函数
Gc,G_af_close
% 校正环节传递函数
Gc = 1.016 s + 1------------0.0404 s + 1% 校正后系统闭环传递函数
G_af_close = 4.672 s + 4.6-------------------------------------------------------0.001212 s^4 + 0.04414 s^3 + 0.3904 s^2 + 5.672 s + 4.6

STEP3{\\rm STEP3}STEP3】:系统校正前后单位阶跃响应曲线。

1

STEP4{\\rm STEP4}STEP4】:系统校正前后单位脉冲响应曲线。

2

STEP5{\\rm STEP5}STEP5】:系统校正前后根轨迹。

3

STEP6{\\rm STEP6}STEP6】:性能分析。

  • 串联超前校正环节传递函数为:Gc(s)=1.016s+10.0404s+1G_c(s)=\\displaystyle\\frac{1.016s+1}{0.0404s+1}Gc(s)=0.0404s+11.016s+1
  • 由单位阶跃响应曲线知,校正前系统超调:σ=17.3%\\sigma=17.3\\%σ=17.3%,上升时间:tr=0.58st_r=0.58{\\rm s}tr=0.58s,调节时间:ts=2.92st_s=2.92{\\rm s}ts=2.92s
  • 由单位阶跃响应曲线知,校正后系统超调:σ=31.7%\\sigma=31.7\\%σ=31.7%,上升时间:tr=0.123st_r=0.123{\\rm s}tr=0.123s,调节时间:ts=2.3st_s=2.3{\\rm s}ts=2.3s
  • 因此,系统经串联超前校正后,系统性能提高;
  • 从根轨迹图知,校正后系统根轨迹左移,提高系统相对稳定性,缩短系统调节时间;
3.5.2 实战2:滞后校正

实验要求:已知系统开环传递函数为:G(s)=4s(s+2.5)G(s)=\\displaystyle\\frac{4}{s(s+2.5)}G(s)=s(s+2.5)4,设计串联滞后校正环节,使其校正后系统的静态速度误差系数:Kv≤6K_v≤6Kv6,闭环主导极点满足阻尼比:ζ=0.407\\zeta=0.407ζ=0.407,绘制校正前后系统单位阶跃响应曲线、单位脉冲响应、根轨迹。

解:

STEP1{\\rm STEP1}STEP1】:计算串联滞后校正环节参数子函数程序设计。

% get_param_02子函数,文件:get_param_02.m
function [Gc,kc]=get_param_02(G,zeta,wc,Tz)
G=tf(G);[r,k]=rlocus(G);
za=zeta/sqrt(1-zeta^2);ri=r(1,find(imag(r(1,:))>0));
ra=imag(ri)./real(ri);
kc=spline(ra,k(find(imag(r(1,:))>0)),1/za);syms x;syms ng;syms dg;
ng=poly2sym(G.num{1});dg=poly2sym(G.den{1});
ess=limit(ng*kc/dg*x);
beta=round(100/sym2poly(ess)/wc);Tp=Tz/beta;
Gc=tf([1,Tz],[1,Tp]);

STEP2{\\rm STEP2}STEP2】:求解系统校正环节传递函数和校正后闭环传递函数及各响应曲线。

% 实例Chapter8.3.5.2
clc;clear;% 建立校正前控制系统开环传递函数
num=4;den=conv([1,0],[1,2.5]);
G=tf(num,den);% 校正后系统的性能要求
zeta=0.407;wc=6;Tz=0.1;
[Gc,Kc]=get_param_02(G,zeta,wc,Tz);GGc=G*Gc*Kc;                    % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b');hold on;
step(G_bf_close,'r');grid;axis([0 15 0 1.4]);
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b');hold on;
impulse(G_bf_close,'r');grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);% 超前校正环节传递函数和校正后系统闭环传递函数
Gc,Kc,G_af_close
% 滞后校正环节传递函数
Gc = s + 0.1---------s + 0.025% 系统增益
Kc =2.3581% 校正后系统闭环传递函数
G_af_close = 9.433 s + 0.9433----------------------------------s^3 + 2.525 s^2 + 9.495 s + 0.9433

STEP3{\\rm STEP3}STEP3】:系统校正前后单位阶跃响应曲线。

4

STEP4{\\rm STEP4}STEP4】:系统校正前后单位脉冲响应曲线。

5

STEP5{\\rm STEP5}STEP5】:系统校正前后根轨迹。

6

STEP6{\\rm STEP6}STEP6】:性能分析。

  • 串联滞后校正环节传递函数为:Gc(s)=s+0.1s+0.025G_c(s)=\\displaystyle\\frac{s+0.1}{s+0.025}Gc(s)=s+0.025s+0.1
  • 由单位阶跃响应曲线知,校正前系统超调:σ=8.08%\\sigma=8.08\\%σ=8.08%,上升时间:tr=0.961st_r=0.961{\\rm s}tr=0.961s,调节时间:ts=2.99st_s=2.99{\\rm s}ts=2.99s
  • 由单位阶跃响应曲线知,校正后系统超调:σ=27.4%\\sigma=27.4\\%σ=27.4%,上升时间:tr=0.478st_r=0.478{\\rm s}tr=0.478s,调节时间:ts=2.3st_s=2.3{\\rm s}ts=2.3s
  • 因此,系统经串联滞后校正后,系统性能提高;
3.5.3 实战3:超前滞后校正环节

实验要求:已知系统开环传递函数为:G(s)=8s(s+0.4)G(s)=\\displaystyle\\frac{8}{s(s+0.4)}G(s)=s(s+0.4)8,设计超前滞后校正环节,使其校正后系统的静态速度误差系数:Kv≤5K_v≤5Kv5,闭环主导极点满足阻尼比:ζ=0.2\\zeta=0.2ζ=0.2和自然振荡角频率:ωn=5rad/s\\omega_n=5{\\rm rad/s}ωn=5rad/s,相角裕度为:50°50°50°,绘制校正前后系统的单位阶跃响应曲线、单位脉冲响应曲线和根轨迹。

解:

STEP1{\\rm STEP1}STEP1】:主函数。

% 实例Chapter8.3.5.3
clc;clear;% 建立控制系统模型
z=[];p=[0,-0.4];k=8;
Gz=zpk(z,p,k);G=tf(Gz);
zeta=0.2;wn=5;
kc=1;Tz=0.1;dPm=50+5;
ng=G.num{1};            % 把G.num中的第一个元胞赋给ng.
[num,den]=ord2(wn,zeta);
s=roots(den);
s1=s(1);Gc1=get_param(G,s1,kc);
G1=G*Gc1*kc;[Gc2,Kc2]=get_param_02(G,zeta,wn,Tz);
GGc=G1*Gc2*Kc2;                 % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b');hold on;
step(G_bf_close,'r');grid;
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b');hold on;
impulse(G_bf_close,'r');grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);% 超前校正环节传递函数和校正后系统闭环传递函数
Gc1,Gc2,G_af_close

STEP2{\\rm STEP2}STEP2】:超前环节传递函数、滞后环节传递函数和校正后闭环传递函数。

% 超前校正环节传递函数
Gc1 = 1.358 s + 1-----------0.425 s + 1% 滞后校正环节传递函数
Gc2 = s + 0.1----------s + 0.0125% 校正后系统闭环传递函数
G_af_close = 1.358 s^2 + 1.136 s + 0.1-------------------------------------------------0.425 s^4 + 1.175 s^3 + 1.773 s^2 + 1.141 s + 0.1

STEP3{\\rm STEP3}STEP3】:单位阶跃响应曲线。

7

STEP4{\\rm STEP4}STEP4】:单位脉冲响应曲线。

8

STEP5{\\rm STEP5}STEP5】:系统根轨迹曲线。

9

STEP6{\\rm STEP6}STEP6】:系统性能分析。

  • 串联超前滞后校正环节传递函数为:Gc(s)=0.125×s+0.1s+0.0125×1.358s+10.425s+1G_c(s)=0.125\\times\\displaystyle\\frac{s+0.1}{s+0.0125}\\times\\displaystyle\\frac{1.358s+1}{0.425s+1}Gc(s)=0.125×s+0.0125s+0.1×0.425s+11.358s+1
  • 由单位阶跃响应曲线知,校正前系统超调:σ=79.9%\\sigma=79.9\\%σ=79.9%,上升时间:tr=0.384st_r=0.384{\\rm s}tr=0.384s,调节时间:ts=19.1st_s=19.1{\\rm s}ts=19.1s
  • 由单位阶跃响应曲线知,校正后系统超调:σ=28.9%\\sigma=28.9\\%σ=28.9%,上升时间:tr=0.907st_r=0.907{\\rm s}tr=0.907s,调节时间:ts=4.19st_s=4.19{\\rm s}ts=4.19s
  • 因此,系统经串联超前滞后校正后,系统性能提高;