单摆模型,控制器及其MATLAB图形仿真

1. 单摆的模型

考虑如图所示的单摆:

单摆模型,控制器及其MATLAB图形仿真_第1张图片

l表示摆杆的长度, m表示摆锤的质量。假设杆是硬质的且质量为零。用\theta 表示杆与通过中心点的竖直轴间的夹角。单摆在竖直平面内自由摆动,摆锤以半径为l的圆运动。为了写出单摆的运动方程,先来确定作用在摆锤上的力。有一个向下的重力mgg为重力加速度。还有一个阻碍运动的摩擦力,假设与摆锤的速度成正比,摩擦系数为k。运用牛顿第二运动定律,可写出沿切线方向的运动方程:

ml\ddot{\theta}=-mg\sin \theta - kl \dot{\theta}

为得到单摆的状态模型,我们取状态变量x_1 = \theta, x_2 = \dot{\theta},状态方程为

\begin{align} \dot{x}_1 &= x_2 \notag\\ \dot{x}_2 &= -\dfrac{g}{l} sin x_1 - \frac{k}{m} x_2 \notag \end{align}

假设我们能运用单摆的力矩T,就可以得到单摆的方程如下

\begin{align} \dot{x}_1 &= x_2 \notag\\ \dot{x}_2 &= -\dfrac{g}{l} sin x_1 - \frac{k}{m} x_2 + \dfrac{1}{ml^2}T\notag \end{align}

 

2. 控制器设计

我们期望单摆最终的状态量为\theta = \pi, \dot{\theta} = 0,即单摆最终的状态是摆锤在最高点处静止。

定义期望的状态量为x_e,可得误差为

e_x = x_e-x

定义正实数k_1, k_2 \in \mathbb{R}^+,有

\begin{align} u_x(1) = k_1e_x(1) \notag \\ u_x(2) = k_2e_x(2)\notag \end{align}

可以得控制律

T = ml^2\left(u_x(2)+\frac{g}{l}\sin x_1+\frac{k}{m}u_x(1)\right)

 

3. 仿真结果

基于龙格库塔法对上述模型、控制器进行仿真,初始角度和角速度是随机值。

源码已上传到CSDN。

https://download.csdn.net/download/XSTX1996/12839724

单摆模型,控制器及其MATLAB图形仿真_第2张图片

 

4. 参考文献

[1] Khalil, Hassan K., and Jessy W. Grizzle. Nonlinear systems. Vol. 3. Upper Saddle River, NJ: Prentice hall, 2002.

你可能感兴趣的:(基础概念,算法,控制器,matlab,仿真,单摆)