大作业平衡杆小球位置控制系统华中科技大学.docx
《大作业平衡杆小球位置控制系统华中科技大学.docx》由会员分享,可在线阅读,更多相关《大作业平衡杆小球位置控制系统华中科技大学.docx(14页珍藏版)》请在冰豆网上搜索。
大作业平衡杆小球位置控制系统华中科技大学
MATLAB语言、控制系统分析与设计
大作业
平衡杆小球位置控制系统
设计与仿真
专业:
电气工程及其自动化
班级:
设计者:
学号:
华中科技大学电气与电子工程学院
2008年1月
平衡杆小球位置控制系统设计与仿真
一、问题描述与实验要求
Aballisplacedonabeam,seefigurebelow,whereitisallowedtorollwith1degreeoffreedomalongthelengthofthebeam.Aleverarmisattachedtothebeamatoneendandaservogearattheother.Astheservogearturnsbyanangletheta,theleverchangestheangleofthebeambyalpha.Whentheangleischangedfromtheverticalposition,gravitycausestheballtorollalongthebeam.Acontrollerwillbedesignedforthissystemsothattheball'spositioncanbemanipulated.
Forthisproblem,wewillassumethattheballrollswithoutslippingandfrictionbetweenthebeamandballisnegligible.Theconstantsandvariablesforthisexamplearedefinedasfollows:
Mmassoftheball0.11kg
Rradiusoftheball0.015m
Dleverarmoffset0.03m
Ggravitationalacceleration9.8m/s^2
Llengthofthebeam1.0m
Jball'smomentofinertia9.99e-6kgm^2
Rballpositioncoordinate
Alphabeamanglecoordinate
Thetaservogearangle
SystemEquations
TheLagrangianequationofmotionfortheballisgivenbythefollowing:
Linearizationofthisequationaboutthebeamangle,alpha=0,givesusthefollowinglinearapproximationofthesystem:
Theequationwhichrelatesthebeamangletotheangleofthegearcanbeapproximatedaslinearbytheequationbelow:
Substitutingthisintothepreviousequation,weget:
Designrequirements
Thedesigncriteriaforthisproblemare:
∙Settlingtimelessthan3seconds
∙Overshootlessthan5%
1.数学模型的建立
将上面推导的简化式做拉普拉斯变换,得到:
变化后得到:
化简为:
2.设计目标
希望能精确小球的位置,即要求小球的稳态误差为零,同时希望因扰动引起的稳态误差也能为零。
对于动态性能的要求,希望小球能较快且平稳,期望调节时间Ts为3s,超调量小于5%。
根据时域和频域指标的关系,可将时域性能指标转换为频率响应的约束条件。
如系统的带宽与闭环系统自然振荡频率ωn和阻尼比ζ有关,而ζωn与调节时间有关。
相角裕度PM和阻尼比ζ有关,进而与超调量相关。
(1-4)
zeta=-log(.05)/sqrt(pi^2+(log(.05))^2);
PM=100*zeta;
wbw=(4/(3*zeta))*sqrt((1-2*zeta^2)+sqrt(4*zeta^4-4*zeta^2+2));
得>0.6901,PM>69.0107deg,wbw>1.9785rad/sec
3.开环响应
首先用MATLAB描述上述模型,并观察开环系统阶跃响应。
J=9.99e-6;
m=0.11;
R=0.015;
g=9.8;
d=0.03;
l=1.0;
num=m*g*d*R*R;
den=[(J+m*R*R)*l00];
ball=tf(num,den)
bode(ball)
margin(ball)
Bode图如下:
图1-1小球位置开环频率特性曲线
由图1-1知原系统的相角裕度为0deg,截止频率为0.458rad/sec,由此判断闭环系统的调节时间不能满足设计要求。
期望的截止频率为1.9785rad/sec,相角裕度为70deg,而校正前系统在1.9785rad/sec处的幅度为-20dB,相角为-180deg。
需增加系统截止频率和相角裕度。
二、闭环系统控制器设计
1.概述
将小球的位置做完控制量,构成闭环,系统闭环控制框图如图2-1所示,控制器设计采用串联校正,设计思想采用开环频率特性设计方法,即根据系统的开环频率性能指标确定校正器参数。
图2-1闭环系统控制框图
设计步骤:
(1)根据稳态误差要求确定系统控制器结构;根据调节时间的要求确定截止频率。
(2)确定未校正系统需增加的最大相位超前角及新的幅值穿越频率;
(3)确定控制器的传递函数;
(4)校验,验算校正后系统性能。
2.控制器设计
(1)确定控制器的结构
由上图可知,为了达到象角要求,需要增加一个积分环节并添加一个零点,构成PI控制器,零点的位置以低于截止频率10倍频程即可。
由期望的截止频率wc所对应的幅值Mag(wc),确定PI的增益Kp,Ki。
()
(2-2)
由此确定PI控制器的传递函数为:
(2-3)
J=9.99e-6;
m=0.11;
R=0.015;
g=9.8;
d=0.03;
l=1.0;
num=m*g*d*R*R;
den=[(J+m*R*R)*l00];
ball=tf(num,den);
w=logspace(0,2,101);
[mag,phase,w]=bode(num,den,w)
L=find(w>5.5);
wc=w(L
(1))
Mag=20*log10(mag(L
(1)))
Kp=10^(-Mag/20)
Ki=0.1*wc*Kp
sysc=tf([KpKi],[10])
bode(sysc*ball);
margin(sysc*ball);
图2-2PI校正后系统BODE图
根据图2-2所示,加PI校正后系统的截止频率为2rad/sec满足要求,但相角裕度PM为-5.7deg,需增加滞后校正环节,欲减小的相角由超调量的要求确定。
(2)确定超前校正环节参数
根据超前校正步骤,已知待补偿相角和计算校正器参数和。
(2-4)
(2-5)
由此确定超前校正控制器的传递函数为:
从上面的图可以看出,相角裕度应该再提高96°。
但是可知,超前校正控制器的加入会影响截止频率,从而减小相角裕度,所以在这里,我们选用大于96°的超前角100°。
PM=100;
a=(1+sin(PM*pi/180))/(1-sin(PM*pi/180));
[mag0,phase0,w0]=bode(sysc*ball);
adb=20*log10(mag0);
am=-10*log10(a);
wgc=spline(adb,w0,am);
T=1/(wgc*sqrt(a));
con2=tf([a*T1],[T1]);
w=logspace(2,3,101);
bode(con2*sysc*ball,w)
margin(con2*sysc*ball)
图形如下:
图2-3加超前校正的系统BODE图
可以看到相角裕度为78.3°,满足相角裕度要求,截止频率比期望的大了一些。
3)确定控制器的零极点和增益
通过调整增益K1使系统的截止频率在指定范围。
[mag1,phase1,w1]=bode(con2*sysc*ball,w)
L1=find(w1>5);
wc1=w1(L1
(1))
Mag1=20*log10(mag1(L1
(1)))
K1=10^(-Mag1/20)
bode(K1*con2*sysc*ball,w)
margin(con2*sysc*ball);
图2-4校正后的系统BODE图
(4)校验,验算校正后系统性能。
这时候的时域响应情况为:
figure
(2)
sys_cl=feedback(K1*sysc*con2*ball,1);%CLOSED-LOOPSYSTEM
t=0:
0.01:
1;
step(sys_cl,t)
图2-5校正后闭环系统阶跃响应
由上图可知,响应时间非常的短,远远低于期望的3sec,但是系统的超调量为33%,也远大于需要的5%。
在这里,反复的调整参数,PM于截止频率Wc。
最后当PM=85,Wc=2rad/sec时,得到如下响应曲线:
图2-6校正后闭环系统阶跃响应
响应的超调量为4%,响应时间为0.66sec,符合设计要求。
校验扰动下的稳态误差:
d_cl=feedback(ball,K1*sysc*con2);%DISTRUBANCESTEP
sys_d=zpk(d_cl)
figure(3)
step(sys_d,t)
图形如下:
图2-7校正后扰动输入系统阶跃响应
三、结论
由以上的仿真和设计可以看到,设计出的系统完全符合要求:
控制器为:
controller=K1*sysc*con2
系统传递函数如下:
0.20946s(s+229)
-----------------------------------------------
(s+0.44)(s+0.2086)(s^2+228.4s+2.484e004)
性能指标为超调量4%,调节时间0.66s,单位阶跃输入和扰动输入的稳态误差均为0。
四、课程学习体会
控制理论作为一门以应用为主的学科,其灵魂在于工业应用。
因此,在长期逗留在书本上的学习中,我们虽然表面上掌握了许多控制理论知识,但是感性认识的缺乏以及控制中许多约定俗成的规范,使得我们脑海中始终没有形成一幅控制理念的图画,感觉课程深奥,难懂。
非常幸运的,我们能够开设一门matlab课程设计的课程,它让我们在一台简单的计算机上,就能够看到控制的过程;简单的换掉几个参数,就能很快仿真出新的控制结果,给我们理解控制理论以及其他种种缺乏感性认识的课程提供了强有力的工具。
让人欣喜!
感谢老师在教学过程中的指导!
五、附录
本文所设计程序清单:
J=9.99e-6;
m=0.11;
R=0.015;
g=9.8;
d=0.03;
l=1.0;
num=m*g*d*R*R;
den=[(J+m*R*R)*l00];
ball=tf(num,den);
bode(num,den)
margin(num,den)
figure
(2)
w=logspace(0,2,101);
[mag,phase,w]=bode(num,den,w)
L=find(w>2);
wc=w(L
(1))
Mag=20*log10(mag(L
(1)))
Kp=10^(-Mag/20)
Ki=0.1*wc*Kp
sysc=tf([KpKi],[10])
bode(sysc*ball,w)
margin(sysc*ball)
figure(3)
PM=85;
a=(1+sin(PM*pi/180))/(1-sin(PM*pi/180));
[mag0,phase0,w0]=bode(sysc*ball);
adb=20*log10(mag0);
am=-10*log10(a);
wgc=spline(adb,w0,am);
T=1/(wgc*sqrt(a));
con2=tf([a*T1],[T1]);
w=logspace(2,3,101);
bode(con2*sysc*ball,w)
margin(con2*sysc*ball)
figure(4)
[mag1,phase1,w1]=bode(con2*sysc*ball,w)
L1=find(w1>2);
wc1=w1(L1
(1))
Mag1=20*log10(mag1(L1
(1)))
K1=10^(-Mag1/20)
bode(K1*con2*sysc*ball,w)
margin(K1*con2*sysc*ball)
figure(5)
sys_cl=feedback(K1*sysc*con2*ball,1);%CLOSED-LOOPSYSTEM
t=0:
0.01:
1;
step(sys_cl,t)
d_cl=feedback(ball,K1*sysc*con2);%DISTRUBANCESTEP
sys_d=zpk(d_cl)
figure(6)
t=0:
0.01:
30;
step(sys_d,t)