学习目标:
1.推导直线型一级倒立摆的数学建模公式,得到状态空间表达式和传递函数,并分析系统的稳定性
2.采用控制算法将系统从不稳定调整到稳定状态,并用matlab和simulink仿真实现
学习内容:
1.建立直线型一级倒立摆的数学模型
(参考(完整版)直线一级倒立摆建模 - 百度文库 https://wenku.baidu.com/view/ca36bbba152ded630b1c59eef8c75fbfc67d9413.html)
倒立摆系统的控制问题一直是控制领域中的一个经典问题,控制的目标是通过在小车底部施加一个力u(控制量),使小车停留在预定的位置,且不超过已预先设定好的垂直偏离角度范围。一级倒立摆系统是一个不稳定的系统,需要建立其数学模型并采用控制算法调控到稳定状态。因为其为非线性问题,处理起来较为困难,因此计算过程中需要将其线性化处理。
基本参数:
小车质量M;摆杆质量m;杆长2L;转角 θ \theta θ;小车与地面之间的摩擦系数 μ \mu μ;重力加速度 g g g
在研究过程中,应忽略空气摩擦等,而后可将倒立摆系统进行抽象化,认为其由小车和匀质刚性杆两部分组成并对这两部分进行如图所示的受力分析:
1.1.牛顿第二定理
小车X方向: F − F x − f = M x ¨ (1) F-Fx-f=M\ddot{x} \tag{1} F−Fx−f=Mx¨(1)
摆杆X方向: F x = m d 2 d t 2 ( x − L s i n θ ) = m d d t ( x ˙ − L c o s θ θ ˙ ) = m x ¨ + m L s i n θ θ ˙ 2 − m L c o s θ θ ¨ (2) Fx=m\frac{\mathrm{d^2} }{\mathrm{d} t^2}(x-Lsin \theta ) = m\frac{\mathrm{d} }{\mathrm{d} t}(\dot{x}-Lcos \theta\dot{\theta}) =m\ddot{x}+mLsin \theta{\dot{\theta}}^2-mLcos \theta\ddot{\theta} \tag{2} Fx=mdt2d2(x−Lsinθ)=mdtd(x˙−Lcosθθ˙)=mx¨+mLsinθθ˙2−mLcosθθ¨(2)
摆杆Y方向: m g − F y = m d 2 d t 2 ( L c o s θ ) = m d d t ( − L s i n θ θ ˙ ) = − m L c o s θ θ ˙ 2 − m L s i n θ θ ¨ (3) mg-Fy=m\frac{\mathrm{d^2} }{\mathrm{d} t^2}(Lcos \theta ) =m\frac{\mathrm{d} }{\mathrm{d} t}(-Lsin \theta\dot{\theta}) =-mLcos \theta{\dot{\theta}}^2-mLsin \theta\ddot{\theta} \tag{3} mg−Fy=mdt2d2(Lcosθ)=mdtd(−Lsinθθ˙)=−mLcosθθ˙2−mLsinθθ¨(3)
摆杆力矩平衡: I θ ¨ = F y L s i n θ + F x L c o s θ (4) I\ddot{\theta}=FyLsin\theta +FxLcos\theta \tag{4} Iθ¨=FyLsinθ+FxLcosθ(4)
由于控制的目的是保持倒立摆直立,此处假设摆杆转角较小,则可以得到如下假设 s i n θ = θ sin\theta =\theta sinθ=θ, c o s θ = 1 cos\theta =1 cosθ=1 。
式(2)(3)(4)变为
F x = m x ¨ + m L θ θ ˙ 2 − m L θ ¨ F y = m g + m L θ ˙ 2 + m L θ θ ¨ I θ ¨ = F x L + F y L θ \begin{matrix} Fx=m\ddot{x}+mL\theta{\dot{\theta}}^2-mL\ddot{\theta}\\ Fy=mg+mL{\dot{\theta}}^2+mL\theta\ddot{\theta}\\ I\ddot{\theta}=FxL+FyL\theta\end{matrix} Fx=mx¨+mLθθ˙2−mLθ¨Fy=mg+mLθ˙2+mLθθ¨Iθ¨=FxL+FyLθ
以上方程都是非线性方程,为求得解析解,需做线性化处理,有 θ 2 = 0 、 θ ˙ = 0 、 θ ˙ 2 = 0 {\theta}^2=0、\dot{\theta}=0、{\dot{\theta}}^2=0 θ2=0、θ˙=0、θ˙2=0。设置摩擦力为 f = μ x ˙ f=\mu \dot{x} f=μx˙。设置输入控制量为u,则系统的平衡控制方程为
(2)带入(1),(2)(3)带入(4)
{ ( M + m ) x ¨ + μ x ˙ − m L θ ¨ = u ( I + m L 2 ) θ ¨ − m L x ¨ − m g L θ = 0 (5) \left\{\begin{matrix} (M+m)\ddot{x}+\mu\dot{x} -mL\ddot{\theta}=u \\ (I+mL^2)\ddot{\theta}-mL\ddot{x}-mgL\theta=0 \end{matrix}\right. \tag{5} {
(M+m)x¨+μx˙−mLθ¨=u(I+mL2)θ¨−mLx¨−mgLθ=0(5)
θ ¨ = − μ m L ( M + m ) I + M m L 2 x ˙ + ( M + m ) m g L ( M + m ) I + M m L 2 θ + m L ( M + m ) I + M m L 2 u x ¨ = − μ ( I + m L 2 ) ( M + m ) I + M m L 2 x ˙ + m 2 g L 2 ( M + m ) I + M m L 2 θ + I + m L 2 ( M + m ) I + M m L 2 u (6) \begin{matrix} \ddot{\theta}=-\frac{\mu mL}{(M+m)I+MmL^2}\dot x+\frac{(M+m)mgL}{(M+m)I+MmL^2}\theta+\frac{mL}{(M+m)I+MmL^2}u \\ \ddot{x}=-\frac{\mu (I+mL^2)}{(M+m)I+MmL^2}\dot x+\frac{m^2gL^2}{(M+m)I+MmL^2}\theta+\frac{I+mL^2}{(M+m)I+MmL^2}u \end{matrix}\tag{6} θ¨=−(M+m)I+MmL2μmLx˙+(M+m)I+MmL2(M+m)mgLθ+(M+m)I+MmL2mLux¨=−(M+m)I+MmL2μ(I+mL2)x˙+(M+m)I+MmL2m2gL2θ+(M+m)I+MmL2I+mL2u(6)
状态方程:
{ X ˙ = A X + B U Y = C X + D U \left\{\begin{matrix} \dot{X}=AX+BU \\ Y=CX+DU \end{matrix}\right. {
X˙=AX+BUY=CX+DU
X = [ x x ˙ θ θ ˙ ] X=\left [ \begin{matrix} x & \dot x & \theta & \dot{\theta} \end{matrix} \right ] X=[xx˙θθ˙]
状态空间表达式:
[ x ˙ x ¨ θ ˙ θ ¨ ] = [ 0 1 0 0 0 − μ ( I + m L 2 ) ( M + m ) I + M m L 2 m 2 g L 2 ( M + m ) I + M m L 2 0 0 0 0 1 0 − μ m L ( M + m ) I + M m L 2 ( M + m ) m g L ( M + m ) I + M m L 2 0 ] . [ x x ˙ θ θ ˙ ] + [ 0 I + m L 2 ( M + m ) I + M m L 2 0 m L ( M + m ) I + M m L 2 ] . u (7) \left [ \begin{matrix} \dot x \\ \ddot x \\ \dot{ \theta} \\ \ddot{\theta} \end{matrix} \right ] = \left [ \begin{matrix} 0 & 1 & 0 & 0 \\ 0 & -\frac{\mu (I+mL^2)}{(M+m)I+MmL^2} & \frac{m^2gL^2}{(M+m)I+MmL^2} & 0 \\ 0 & 0 & 0 & 1 \\ 0 & -\frac{\mu mL}{(M+m)I+MmL^2} & \frac{(M+m)mgL}{(M+m)I+MmL^2} & 0 \end{matrix} \right ] . \left [ \begin{matrix} x \\ \dot x \\ \theta \\ \dot{\theta} \end{matrix} \right ] + \left [ \begin{matrix} 0 \\ \frac{I+mL^2}{(M+m)I+MmL^2} \\ 0 \\ \frac{mL}{(M+m)I+MmL^2} \end{matrix} \right ] .u \tag{7} ⎣⎢⎢⎡x˙x¨θ˙θ¨⎦⎥⎥⎤=⎣⎢⎢⎢⎡00001−(M+m)I+MmL2μ(I+mL2)0−(M+m)I+MmL2μmL0(M+m)I+MmL2m2gL20(M+m)I+MmL2(M+m)mgL0010⎦⎥⎥⎥⎤.⎣⎢⎢⎡xx˙θθ˙⎦⎥⎥⎤+⎣⎢⎢⎢⎡0(M+m)I+MmL2I+mL20(M+m)I+MmL2mL⎦⎥⎥⎥⎤.u(7)
Y = [ x θ ] = [ 1 0 0 0 0 0 1 0 ] . [ x x ˙ θ θ ˙ ] + [ 0 0 ] . u (8) Y= \left [ \begin{matrix} x \\ { \theta} \end{matrix} \right ] = \left [ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{matrix} \right ] . \left [ \begin{matrix} x \\ \dot x \\ \theta \\ \dot{\theta} \end{matrix} \right ] + \left [ \begin{matrix} 0 \\ 0 \end{matrix} \right ] .u \tag{8} Y=[xθ]=[10000100].⎣⎢⎢⎡xx˙θθ˙⎦⎥⎥⎤+[00].u(8)
式中, x x x是小车的位移; x ˙ \dot x x˙是小车的速度; θ \theta θ是摆杆的角度; θ ˙ \dot \theta θ˙是摆杆的角速度;u是输入;Y是输出。
1.2.拉格朗日法
从能量的角度出发建立系统的运动方程,即系统的动能、势能以及外力。定义第二类拉格朗日方程为:
L = T − V d d t ∂ L ∂ q ˙ i − ∂ L ∂ q i = W i ( i = 1 , . . . , k ) (9) \begin{matrix} L=T-V\\ \frac{\rm d}{\rm d t}\frac{\partial L}{\partial \dot q_i}-\frac{\partial L}{\partial q_i}=W_i (i=1,...,k) \end{matrix} \tag{9} L=T−Vdtd∂q˙i∂L−∂qi∂L=Wi(i=1,...,k)(9)
其中, T T T是系统的动能, V V V是系统的势能, W i W_i Wi对应于广义坐标 q i q_i qi的非有势力的广义力。(有势力是指作用在物体的力所做功仅与力作用点的起始位置和终了位置有关,而与其作用点经过的路径无关的力。)
动能:
T c = 1 2 M x ˙ 2 T b = 1 2 I θ ˙ 2 + 1 2 m { [ d d t