PID 实践——倒立摆
动态系统建模与分析 · 学习笔记
2024年8月15日
1. 物理模型与运动方程
不考虑阻力。设水平方向上杆对车的力为 P,竖直方向删杆对车的力为 N。车受到水平方向上的外力 F。
对车(水平方向受力)
F−P=Mx¨
对杆(平动)
质心坐标(L=l/2 为转轴到质心距离):
xc=x+Lsinθ,yc=−Lcosθ
质心加速度:
x¨c=x¨+Lcosθ⋅θ¨−Lsinθ⋅θ˙2
y¨c=Lsinθ⋅θ¨+Lcosθ⋅θ˙2
杆的受力:
mx¨c=P(水平),my¨c=N−mg(竖直)
转动
以质心为参考,惯性力矩为 0,转动惯量:
Jc=121ml2
代入得运动方程组
⎩⎨⎧(M+m)x¨+2lm(θ¨cosθ−θ˙2sinθ)=FJcθ¨+2lmgsinθ+2lmx¨cosθ+4l2mθ˙2sinθ=0
令 L=l/2(连接处到质心位置),简化为:
{(M+m)x¨+mLθ¨cosθ−mLθ˙2sinθ=FJcθ¨+mgLsinθ+mLx¨cosθ+mL2θ˙2sinθ=0


2. 线性化
可见上述方程组不是线性方程,需线性化。令
φ=π−θ
表示杆偏离竖直向上的小角度。小角度近似(φ 很小时):
sinθ=sin(π−φ)=sinφ≈φ
cosθ=cos(π−φ)=−cosφ≈−1
θ=π−φ≈π⇒θ˙=−φ˙,θ¨=−φ¨
忽略二阶小量(如 θ˙2sinθ 等),得到线性化方程组:
{(M+m)x¨+mLφ¨=FJcφ¨+mLx¨−mgLφ=0
3. 拉普拉斯变换与传递函数
零初始条件下作拉氏变换:
{(M+m)s2X(s)+mLs2Φ(s)=F(s)(Jc+mL2)s2Φ(s)+mLs2X(s)=0
由第二式解出 X(s)Φ(s):
X(s)Φ(s)=(Jc+mL2)s2−mgL−mLs2
开环传递函数(约去 s2,输入 X(s) 到摆角 Φ(s)):
G1(s)=X(s)Φ(s)=(Jc+mL2)s2−mgL−mL
4. 闭环系统与 PID 控制器设计

闭环传递函数:
T(s)=R(s)Φ(s)=1+K(s)G(s)K(s)G(s)
PID 控制器:
K(s)=Kp+sKi+Kds=sKd(s+zi)2,zi=KdKi
由上一节,被控对象可化为 G(s)=s2−ab(此处取 b=2.5,a=24.5,负号在反馈处吸收),开环传递函数:
L(s)=K(s)G(s)=s(s2−a)b(Kds2+Kps+Ki)
特征方程
1+L(s)=0
s3+bKds2+(bKp−a)s+bKi=0
Routh-Hurwitz 稳定性判据
劳斯表:
| s3 |
1 |
bKp−a |
0 |
| s2 |
bKd |
bKi |
0 |
| s1 |
bKp−a−Ki/Kd |
0 |
|
| s0 |
bKi |
|
|
第一列全正 ⇒ 稳定条件:
Kd>0,Ki>0,Kp>ba+KdKi>ba
极点配置:三重实根
这里没有指标要求,先使极点为三重实根 s=−ωn(无超调、响应速度快、易调):
(s+ωn)3=s3+3ωns2+3ωn2s+ωn3=0
与特征方程对比系数:
⎩⎨⎧3ωn=bKd⇒Kd=b3ωn3ωn2=bKp−a⇒Kp=b3ωn2+aωn3=bKi⇒Ki=bωn3
之后在 MATLAB 中调参(用方程 [(Jc+mL2)s2−mgL]Φ(s)+mL2X(s)=0 仿真验证)。
5. 非零初始条件的处理
系统方程(拉氏域,含初始条件):
[(Jc+mL2)s2−mgL]Φ(s)=−mLs2X(s)+(Jc+mL2)sΦ(0)
非零初始条件可看作多个系统的叠加:
① Φ(0)=0(零初始条件,零状态响应):
Φ1(s)=(Jc+mL2)s2−mgL−mLs2X(s)
② X(s)=0(零输入响应):
Φ2(s)=(Jc+mL2)s2−mgL(Jc+mL2)sΦ(0)
总响应:
Φ(s)=Φ1(s)+Φ2(s)=(Jc+mL2)s2−mgL−mLs2X(s)+(Jc+mL2)s2−mgL(Jc+mL2)sΦ(0)