二阶倒立摆: 系统建模
控制二阶倒立摆的第一步在于建模。在这个问题中,我们将尝试建立一个关于二阶倒立摆的微分方程。下图是二阶倒立摆的抽象模型
在复杂的物理系统中使用 Lagrange 方法可以更加方便且不易出错地得到系统的运动方程。
显然三个自由度分别是三个转角。记为 \(q(t)^{\top}=\left[\begin{array}{lll}\theta(t) & \alpha(t) & \phi(t)\end{array}\right]\) 自然有
三个变量的拉格朗日方程为: $$ \begin{aligned} & \frac{\partial^2 L}{\partial t \partial \dot{\theta}}-\frac{\partial L}{\partial \theta}=Q_1 \ & \frac{\partial^2 L}{\partial t \partial \dot{\alpha}}-\frac{\partial L}{\partial \alpha}=Q_2 \ & \frac{\partial^2 L}{\partial t \partial \dot{\phi}}-\frac{\partial L}{\partial \phi}=Q_3 \end{aligned} $$
广义力 \(Q_i\) 用于描述相对于广义坐标施加到系统的非保守力 (例如摩擦力)。在这种情况下, 作用在旋转臂上的广义力为:
作用在底部和顶部摆上的是:
计算系统的动能和势能, 即可得到系统的非线性运动方程。
施加在旋转臂底部 (即负载齿轮处) 的扭矩由伺服电机产生, 如下式所示:
我们要对非线性的运动方程线性化,以便于控制器设计。下面是如何线性化称为 \(f(z)\) 的二变量非线性函数的示例。变量 \(z\) 已定义:
\(f(z)\) 将关于点 \(z_0^{\mathrm{T}}=\left[\begin{array}{ll}a & b\end{array}\right]\) 借助于泰勒展开进行线性化, 线性化函数是:
最终,可以得到一个线性状态空间方程:
此时,系统内状态与输出为: $$ \begin{aligned} & x^{\mathrm{T}}=\left[\begin{array}{llllll} \theta & \alpha & \phi & \dot{\theta} & \dot{\alpha} & \dot{\phi} \end{array}\right] \ & y^{\mathrm{T}}=\left[\begin{array}{lll} x_1 & x_2 & x_3 \end{array}\right] \end{aligned} $$