单摆模型,控制器及其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

 

4. 参考文献

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

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值