直线一级倒立摆控制

直线一级倒立摆控制
直线一级倒立摆控制

直线一级倒立摆控制

直线一级倒立摆系统输入为小车的加速度,输出为倒立摆系统摆杆的角度,被控对象的传递函数为:

2()0.02725

()0.01021250.26705

s V s s Φ=

- 给系统施加脉冲扰动,输出量为摆杆的角度时,系统框图如下:

图 3-4 直线一级倒立摆闭环系统图(脉动干扰)

1) 绘制直线一级倒立摆开环根轨迹图、Bode 图和奈奎斯特图 clear

num=[0.02725];

den=[0.0102125 0 -0.26705];

sys=tf(num,den); %生成传递函数模型 rlocus(sys);title('根轨迹'); %绘制生成根轨迹 figure(1);bode(sys),hold on;

grid on;title('bode 图'); %绘制bode 图 figure(2);nyquist(sys);hold on;

grid on;title('nyquist 曲线图'); %绘制nyquist 曲线图

根轨迹

Real Axis

I m a g i n a r y A x i s

M a g n i t u d e (d B )10

10

10

P h a s e (d e g )

bode 图

Frequency (rad/sec)

Nyquist Diagram

Real Axis

I m a g i n a r y A x i s

2)用根轨迹法设计控制器,使得校正后系统的要求如下: 调整时间t (2%) s = 0.5s ;最大超调量 M p ≤ 10% 绘制校正后系统的根轨迹图,并给出阶跃响应曲线。

%100%10%4.4

(2%)0.5s n e t πζσζω-?=≤??==??

11Im()1

Re()tan()

c p s p s T θ=-

=+

11Im()1

Re()tan()z z s p s aT θ=-

=+

c K :()11()1c G s G s =

clear

ng=[0.02725];

dg=[0.0102125 0 -0.26705];

G=tf(ng,dg); %建立开环函数

zeta=0.6;omega=14.6667; %设置阻尼比和自然频率

[num,den]=ord2(omega,zeta); %建立二阶系统的分子项和分母项 s=roots(den);s1=s(1); %确定闭环极点s ,取其中一点即可 ng=G.num{1};dg=G.den{1}; ngv=polyval(ng,s1); dgv=polyval(dg,s1);

G=ngv/dgv;Phi=angle(G); %确定s1的相位角 Phi_c=pi-Phi;

Phi=angle(s1); %确定s1的相位角 theta_z=(Phi+Phi_c)/2; %定义theta_z theta_p=(Phi-Phi_c)/2; %定义theta_p

Z_c=real(s1)-imag(s1)/tan(theta_z); %计算超前校正环节的零点Z_c P_c=real(s1)-imag(s1)/tan(theta_p); %计算超前校正环节的极点P_c nk=[1 -Z_c];dk=[1 -P_c]; nkv=polyval(nk,s1); dkv=polyval(dk,s1); kv=nkv/dkv;

Kc=abs(1/G/kv) %根据幅值条件计算Kc Gc=tf(nk,dk) G=tf(ng,dg);

GGc=G*Gc*Kc; %传递函数Gc 和增益Kc 组成超前校正环节 figure(1);step(feedback(GGc,1)); %绘制校正后闭环系统阶跃响应 hold on;title('校正后闭环系统阶跃响应'); figure(2);rlocus(GGc);

hold on;title('校正后的系统的根轨迹');%校正后的系统的根轨迹

校正后的系统的根轨迹

Real Axis

I m a g i n a r y A x i s

Time (sec)

A m p l i t u d

e

00.10.20.30.40.50.60.7

由超调量的计算公式%100%

e πζσ-=得到

%

ζσ-的关系图:

超调量与zeta 关系图

Zeta 和omega 取不同值时系统的超调量和调节时间

Zeta 0.7 0.85 0.85 0.87 0.9 0.88 0.89 0.89 0.895 0.899 omega 14.67 14.7 14.8 14.85 14.85 14.85 14.9 15 15.1 15.1 超调量 19.2 11.3 11.5 10.7 9.39 10.3 9.93 10.1 10.1 9.956 调节时间 0.444 0.504 0.501

0.501 0.516 0.51 0.511 0.508 0.507

0.508

0.89915.1n ζω==

clear

ng=[0.02725];

dg=[0.0102125 0 -0.26705];

G=tf(ng,dg); %建立开环函数 zeta=0.895

omega=15.10; %设置阻尼比和自然频率 [num,den]=ord2(omega,zeta); %建立二阶系统的分子项和分母项 s=roots(den);s1=s(1); %确定闭环极点s ,取其中一点即可 ng=G.num{1};dg=G.den{1}; ngv=polyval(ng,s1); dgv=polyval(dg,s1); G=ngv/dgv;

Phi=angle(G); %确定s1的相位角 Phi_c=pi-Phi;

Phi=angle(s1); %确定s1的相位角 theta_z=(Phi+Phi_c)/2; %定义theta_z theta_p=(Phi-Phi_c)/2; %定义theta_p

Z_c=real(s1)-imag(s1)/tan(theta_z); %计算超前校正环节的零点Z_c P_c=real(s1)-imag(s1)/tan(theta_p); %计算超前校正环节的极点P_c nk=[1 -Z_c];dk=[1 -P_c]; nkv=polyval(nk,s1); dkv=polyval(dk,s1); kv=nkv/dkv;

Kc=abs(1/G/kv);Gc=tf(nk,dk); G=tf(ng,dg);

GGc=G*Gc*Kc; %传递函数Gc 和增益Kc 组成超前校正环节 figure(1);step(feedback(GGc,1)); %绘制校正后闭环系统阶跃响应 hold on;title('校正后闭环系统阶跃响应'); figure(2);rlocus(GGc);

hold on;title('校正后的系统的根轨迹'); %校正后的系统的根轨迹

得到系统增益Kc 以及传递函数Gc 为

s + 6.162Kc = 195.5233Gc=

s + 37

5.328 s + 32.8

GGc=0.01021 s^3 + 0.3779 s^2 - 0.2671 s - 9.882

校正后闭环系统阶跃响应

Time (sec)

A m p l i t u d e

00.10.20.30.40.50.60.70.8

3)通过改变控制器的极点和零点,得到不同的控制效果

clear

ng=0.02725;

dg=[0.0102125 0 -0.26705];

G=tf(ng,dg); %建立开环函数 for m=10:25:40

nk=[1 7.342];dk=[1 m];

Kc=167.5; %根据幅值条件计算Kc Gc=tf(nk,dk);

GGc=G*Gc*Kc; %传递函数Gc 和增益Kc 组成超前校正环节 figure(1);step(feedback(GGc,1)); %绘制校正后闭环系统阶跃响应 title('不同极点下的系统阶跃相应');hold on; end

不同极点下的系统阶跃相应

Time (sec)

A m p l i t u d e

clear

ng=0.02725;

dg=[0.0102125 0 -0.26705];

G=tf(ng,dg); %建立开环函数 for m=4:12:20

nk=[1 m];dk=[1 29.3];

Kc=167.5; %根据幅值条件计算Kc Gc=tf(nk,dk);

GGc=G*Gc*Kc; %传递函数Gc 和增益Kc 组成超前校正环节

figure(1);step(feedback(GGc,1)); %绘制校正后闭环系统阶跃响应 title('不同零点下的系统阶跃相应');hold on; end

00.51 1.52 2.53

0.20.40.60.81

1.2

1.41.61.82不同零点下的系统阶跃相应

Time (sec)

A m p l i t u d e

为使位于右半平面的根轨迹进入左边平面,因此增加一个坐半平面的零点, 假设为-15,得到系统新的根轨迹如下:

2

校正后的系统的根轨迹

Real Axis

I m a g i n a r y A x i s

手动校正后的根轨迹图(增加零点)

校正后闭环系统阶跃响应

Time (sec)

A m p l i t u d e

00.020.040.060.080.10.12

添加零点后的阶跃响应图

给系统增加一个极点,观察极点对系统的影响,增加极点-10

校正后闭环系统阶跃响应

Time (sec)

A m p l i t

u d e

05

1015

24

添加极点后的阶跃响应图

4)用频域响应法设计超前校正控制器G (s ) c ,使得系统的静态位置误差常数为10,相位裕量为50o ,增益裕量等于或大于10 分贝。给出阶跃响应曲线。

确定校正环节的增益c K ,使串联校正环节后的系统满足稳态误差要求,绘制

增益校正后系统()c K G jw 的伯德图;

● 根据所需的相位稳定裕度dPm 及在原幅值交角频率Wcg 处引入的校正环节

有最大相位超前角的设计原则,确定所需校正环节的最大相位超前角m φ;

● 计算校正环节的衰减系数α。,根据1

1sin ()

1m αφα--=+,得到

1sin 1sin m m φαφ+=-; ● 确定了衰减系统,就可以确定超前校正装置

1

w T =和1w aT =,可以看出,最大相位超前角小.发生在两个转角频率的几何中心上,即

10()10log c M G jWcg α==。

● 检查添加校正环节后的系统是否满足要求,如不能满足,则需重新确定新的

稳态误差和相位稳定裕度等,进行重新计算。

m φ的计算方法如下:

超前校正环节的相位角:11()tan ()tan ()m c G jw aTw Tw φ--=∠=-

在原系统的幅值交角频率Wcg 处引人的校正环节有最大相位超前角,因此,在

Wcg 有最大值,此外,超前校正环节在最大相位超前角处有下列关系式:

Wcg =

代入上式,得到所需的相位超前角

:

11()tan tan m c G jw φ--=∠=-

考虑到引人超前校正环节后,除了引入极点外,还引入了零点,它会引起幅值交角频率的升高,并使相位裕度下降,因此,在确定m φ时,通常在计算值上预先增加一定的安全量,例如,通常增加5o 的安全量。

根据根据静态速度误差系数为10,

2

10.027259810.01021250.26705

lim

c p s K aTs K a Ts s →+=??=+-

得到校正环节的增益

98c K

K a =

=

Clear

ng=0.02725;

dg=[0.0102125 0 -0.26705];

G=tf(ng,dg); %生成待校正系统传递函数 Kc=98; %设置校正环节增益Kc

dPm=50+5; %设置所需相位裕度dPm,增加量取5度 [mag,phase,w]=bode(G*Kc); %生成波特图矩阵形式 Mag=20*log10(mag); %生成开环幅值

[GM,Pm,Wcg,Wcp]=margin(G*Kc); %计算未校正系统的相角裕度 phi=(dPm-Pm)*pi/180; %计算网络系数 alpha=(1+sin(phi))/(1-sin(phi)); Mn=-10*log10(alpha);

Wcgn=spline(Mag,w,Mn); %确定校正后系统的截止频率Wcgn T=1/Wcgn/sqrt(alpha);

Tz=alpha*T; %确定校正器的交接频率(1/T 和1/alpha*T ) Gc=tf([Tz 1],[T 1]); %得到校正器传递函数; figure(1);margin(G*Kc); hold on;

margin(G*Kc*Gc); %画出bode 图

[GM1,Pm1,Wcg1,Wcp1]=margin(G*Kc*Gc)%验证校正后系统的相位裕度和相位增益 figure(2);

step(feedback(G*Kc*Gc,1)); %画出校正后系统的阶跃响应相位得到

M a g n i t u d e (d B )10

10

10

10

10

10

P h a s e (d e g )

Bode Diagram

Gm = -20 dB (at 0 rad/sec) , P m = 55 deg (at 28.3 rad/sec)

Frequency (rad/sec)

Nyquist Diagram

Real Axis

I m a g i n a r y A x i s

添加控制器后的直线一级倒立摆 Bode 图和 Nyquist 图(一阶控制器)

5)设计PID 控制器,并给出控制效果。

clear ng=0.02725;

dg=[0.0102125 0 -0.26705];

num2=[19,78.4,29.4];

den2=[1,0];

sys2=tf(num2,den2);

G1=tf(ng,dg);

G=series(G1,sys2);

Kc=98; %设置校正环节增益Kc

dPm=50+5; %设置所需相位裕度dPm,增加量取5度[mag,phase,w]=bode(G*Kc); %生成波特图矩阵形式

Mag=20*log10(mag); %生成开环幅值

[GM,Pm,Wcg,Wcp]=margin(G*Kc); %计算未校正系统的相角裕度

phi=(dPm-Pm)*pi/180; %计算网络系数

alpha=(1+sin(phi))/(1-sin(phi));

Mn=-10*log10(alpha);

Wcgn=spline(Mag,w,Mn); %确定校正后系统的截止频率Wcgn

T=1/Wcgn/sqrt(alpha);

Tz=alpha*T; %确定校正器的交接频率(1/T和1/alpha*T)Gc=tf([Tz 1],[T 1]); %得到校正器传递函数;

figure(1);margin(G*Kc);

hold on;

margin(G*Kc*Gc); %画出bode图

[GM1,Pm1,Wcg1,Wcp1]=margin(G*Kc*Gc)%验证校正后系统的相位裕度和相位增益figure(2);

step(feedback(G*Kc*Gc,1)); %画出校正后系统的阶跃响应相位得到

相关文档
最新文档