倒立摆的PID控制Word文档下载推荐.docx
《倒立摆的PID控制Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《倒立摆的PID控制Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
以摆杆的角度为输出,小车的位移为输入。
导轨中点为坐标轴的中心即零点,右向为坐标值增加的方向,杆偏移其瞬时平衡位置右侧的角度为正值。
在此基础上通过PID控制实现倒立摆系统的稳定。
二、数学模型的建立
运用拉格朗日方法建立倒立摆系统的数学模型。
拉格朗日方程为:
(2-1)
其中L为拉格朗日算子,q为系统的广义坐标,T为系统的动能,V为系统的势能。
(2-2)
其中i=1,2,3……n,fi为系统在第i个广义坐标上的外力。
基于拉格朗日定理分析倒立摆模型如下:
1、计算系统的动能
(1)小车的动能:
(2-3)
(2)杆的动能:
(2-4)
其中
为杆的平动动能,
为杆的转动动能。
设杆的水平坐标为
,垂直坐标为
,则有:
(2-5)
将(2-5)式代入(2-4)并化简得:
(2-6)
则系统的总动能T为:
(2-7)
2、计算系统的势能
系统的势能只有杆的重力势能V,取水平面为重力势能零势能点,则有:
(2-8)
3、运用拉格朗日方程求解
将式(2-7)和式(2-8)代入式(2-1)得:
(2-9)
将上式对
求一阶偏导得:
(2-10)
再将式(2-10)对时间求一阶导得:
(2-11)
再将式(2-9)对
(2-12)
将式(2-11)和(2-12)代入式(2-2),并忽略系统的摩擦得:
(2-13)
接着将系统线性化,为此做如下近似,因为
很小,所以有:
,则式(2-13)变为:
(2-14)
将式(2-14)进行拉斯变换,并将L=1代入得系统的传递函数为:
(2-15)
4、离散系统状态空间表达式
由式(2-15),取采用周期T=0.02s运用matlab编程如下:
(1)当L=0.25时
>
clear
g=9.8;
l=0.25
numl=[-0.7500];
denl=[l0-0.75*g];
sysl=tf(numl,denl);
dt=0.02;
sys=c2d(sysl,dt,'
zoh'
);
[a,b,c,d]=ssdata(sys)
得:
a=
2.0118-1.0000
1.00000
b=
0.2500
0
c=
-0.0706-0.0706
d=
-3
所以可知离散系统状态空间表达式为:
(2)当L=0.5时
l=0.5
2.0059-1.0000
0.1250
-0.0353-0.0353
-1.5000
三、带PID的计算机控制系统
由系统的传递函数(2-15)利用劳斯判据可知系统不稳定。
图2系统框图
1、被控对象稳定性判断
由被控对象连续传递函数(2-15)可得劳斯表如下:
所以可知倒立摆系统不稳定。
2、加入PID控制
PID控制传递函数为:
由系统框图可得出加入PID后的系统传递函数,再通过劳斯判据(对连续系统)或朱利判据即可得出参数KP、KI、KD的取值范围,但这样计算过于复杂,所以采用试凑法。
(1)首先只整定比例部分。
将Kp由小到大变化,并观察相应的系统响应,直到反应快、超调小的响应曲线。
最终得出当Kp=0.56时反应最快,误差最小。
如图3所示:
(a)当L=0.25时
(b)当L=0.5时
(2)再整定积分系数KI,首先置积分时间常数为一个较大的值,并适当调整第一步确定的Kp,然后减小积分时间常数,并使系统在保持良好的动态响应的情况下,消除静差。
这种调整可以根据动态响应,反复改变Kp和KI以期望得到满意的控制过程。
(3)为得到良好的动态过程,再加入微分环节。
在第二步整定的基础上,逐步增大KD,同时相应改变KP和KI,逐步试凑以获得满意的调节效果。
(4)由仿真可得当摆杆长L=0.25时,Kp=0.3,KI=60,KD=0.27时可得到良好的响应曲线,如图4(a)所示;
当摆杆长L=0.5时,Kp=0.56,KI=80,KD=0.11时可得到良好的响应曲线,如图4(b)所示。
(仿真程序见附录)
(a)L=0.25时
(b)L=0.5时
图4加入PID控制时摆角的变化
四、总结
本文主要针对图1所示的倒立摆系统进行了分析建模,并将模型离散化,得到离散系统状态空间表达式。
再通过PID控制使倒立摆系统稳定。
在建模仿真的过程可发现,倒立摆系统是不稳定的,用拉格朗日法可对其进行建模,且PID控制是十分实用的控制算法,在PID控制中主要问题是KP,KI,KD三个参数的确定,可使用试凑法来确定这三个参数,且因杆长的不同这三个参数的值也会不同。
附录:
直线一级倒立摆系统的PID控制仿真程序:
1、当摆杆长为L=0.25时:
clear
a=[2.0118-1.0000;
1.00000];
b=[0.2500;
0];
c=[-0.0706-0.0706];
d=-3;
i=1;
out=zeros(1,501);
t=zeros(1,501);
dt=0.02;
tmax=10;
y=[0;
xout=0;
theta=0.1;
theta_1=0;
e=0;
kp=0.3;
ki=60;
kd=0.27;
fort1=0:
0.02:
tmax
out(i)=theta;
t(i)=0.02*i;
i=i+1;
e=e+theta*dt;
xcout=kp*(-theta)+kd*((theta-theta_1)/dt)+ki*e;
theta=c*y+d*xcout;
y=a*y+b*xcout;
theta_1=theta;
end
plot(t,out);
grid
xlabel('
时间t/s'
ylabel('
摆杆倾角θ'
title('
倒立摆仿真'
)
2、当摆杆长为L=0.5时
a=[2.0059-1.0000;
b=[0.1250;
c=[-0.0353-0.0353];
d=-1.5;
kp=0.56;
ki=80;
kd=0.11;