[欠驱动机器人]2.单摆

本章目标

通过单摆了解非线性系统,了解相平面、稳定性、不动点等概念,中学时接触的单摆是将单摆在稳定点附近进行泰勒展开,而后简化成了一个线性系统,本章依靠非线性动力学的工具,解开非线性单摆的面纱

2.1 简介

单摆结构如下图所示:
在这里插入图片描述

可以得到该结构的拉格朗日方程**(由于结构简单,有牛顿法也可以)**为:
m l 2 θ ¨ ( t ) + m g l sin ⁡ θ ( t ) = Q m l^{2} \ddot{\theta}(t)+m g l \sin \theta(t)=Q ml2θ¨(t)+mglsinθ(t)=Q

其中Q为:
Q = − b θ ˙ ( t ) + u ( t ) Q=-b \dot{\theta}(t)+u(t) Q=bθ˙(t)+u(t)
等号左边为机构的运动方程,右边为受力方程,u为关节处施加的外力矩,逆时针为正。

2.2非线性动力学

为了简化问题,假设输入力矩为一个常数,整理可得以下公式:
m l 2 θ ¨ + b θ ˙ + m g l sin ⁡ θ = u 0 (1) m l^{2} \ddot{\theta}+b \dot{\theta}+m g l \sin \theta=u_{0} \tag{1} ml2θ¨+bθ˙+mglsinθ=u0(1)
1式是一个相对简单的非线性方程,如果可以通过理论求解,得到θ与时间t的关系,也就得到了单摆在不同时间的旋转角度,但是这样求解过于麻烦,而且存在大量的非线性方程没有解析解。此时只能利用非线性动力学的工具进行求解了。当然,非线性动力学的工具也有它的问题,它更能求解系统的长期表现,或者说稳态表现,对系统瞬态的姿态式无能为力的。

2.2.1过阻尼单摆

先从简单的开始,假设单摆运动的阻尼相当大(比如单摆在蜂蜜里摆),此时系统的惯性力可以忽略,因此可以将1式简化成:
m l 2 θ ¨ + b θ ˙ ≈ b θ ˙ = u 0 − m g l sin ⁡ θ m l^{2} \ddot{\theta}+b \dot{\theta} \approx b \dot{\theta}=u_{0}-m g l \sin \theta ml2θ¨+bθ˙bθ˙=u0mglsinθ
暂时抛弃这个方程的单摆身份(把θ变成x),忽略θ的周期性,将方程改写为:
b x ˙ = u 0 − m g l sin ⁡ x (2) b \dot{x}=u_{0}-m g l \sin x\tag{2} bx˙=u0mglsinx(2)
此时可以画出x_dot和x之间的关系(u=0):

在这里插入图片描述

分析系统的不动点,可以看出,当x=0,2kΠ时,系统是稳定的,对应单摆的重物垂直在下,而x=kΠ(k是奇数)时,系统稍有扰动,系统就会离开这个点,回到旁边的稳定点,根据不动点的稳定性,可以将不动点分为以下几类:

  • 李雅普诺夫稳定
  • 吸引
  • 渐近稳定
  • 指数稳定
  • 不稳定

一个点是吸引点未必是稳定点!李雅普诺夫稳定未必点最后会到达不动点,渐近稳定会到达,指数稳定是指以一个速度收敛到不动点。

最后需要注意,上图是u=0,即无外力情况下的相平面图,如果u不为0,则整个曲线会向上或向下偏移,最终可能会没有稳定点,这个现象叫做分岔,回归到单摆物理系统,即当扭矩过大时,系统永远不会停在一个位置。

2.2.2无阻尼零输入单摆

接下来考虑系统没有阻尼力(b=0),输入的力矩为0的情况。

此时系统为二阶系统,方程如下所示:
m l 2 θ ¨ = u 0 − m g l sin ⁡ θ − b θ ˙ m l^{2} \ddot{\theta}=u_{0}-m g l \sin \theta-b \dot{\theta} ml2θ¨=u0mglsinθbθ˙
此时可以将系统是为两个一阶微分方程组,如下所示:
x ˙ 1 = x 2 x ˙ 2 = f ( x 1 , x 2 , u ) \begin{aligned} \dot{x}_{1} &=x_{2} \\ \dot{x}_{2} &=f\left(x_{1}, x_{2}, u\right) \end{aligned} x˙1x˙2=x2=f(x1,x2,u)
式中,x1=θ,x2=θ_dot,此时可以画出两个变量的相平面,如下图所示(这里有个在线相平面绘制网站):
在这里插入图片描述

事实上,途中的闭合曲线就是单摆的能量曲线,因为在外力输入为0,阻尼为0,则系统的能量不变,画出图就是途中的曲线。

2.2.3无阻尼有输入单摆

系统是一个发散的系统,从能量的角度来看,系统一直在输入能量,就会摆动速度越来越快。

2.2.4 阻尼倒立摆

此时不太在意是否有输入,假设输入为0,得到相平面图如下所示:
u=0

如图是有了输入力矩的相平面曲线,影响主要是不动点的平移。
在这里插入图片描述

加上了阻尼,单摆系统就变成了渐近稳定,如果想知道是否是指数稳定,只需要在稳定点进行线性化看看斜率就知道了。

之前我们一直假设输入力是一个常数,显然控制系统的输入量不可能总是一个常数,如果我们打算控制单摆在竖直平衡,那么输入力要怎么给呢?

2.3 输入力矩受限的单摆

单摆很显然是一个全驱动系统,如果输入力矩没有限制的话,想要把质量块稳定在数值位置时十分简单的,只要输入力矩作用的效应与重力反向,在比重力大那么一点点,就全部解决了,但是如果力矩受限(欠驱动系统),没有办法完成这个效果,又要怎么控制呢?

2.3.1改变能量

单摆的能量如下所示:
E = 1 2 m l 2 θ ˙ 2 − m g l cos ⁡ θ E=\frac{1}{2} m l^{2} \dot{\theta}^{2}-m g l \cos \theta E=21ml2θ˙2mglcosθ
为了了解怎么改变能量,我们求解单摆的功率为:
E ˙ = m l 2 θ ˙ θ ¨ + θ ˙ m g l sin ⁡ θ = θ ˙ [ u − m g l sin ⁡ θ ] + θ ˙ m g l sin ⁡ θ = u θ ˙ \begin{aligned} \dot{E} &=m l^{2} \dot{\theta} \ddot{\theta}+\dot{\theta} m g l \sin \theta \\ &=\dot{\theta}[u-m g l \sin \theta]+\dot{\theta} m g l \sin \theta \\ &=u \dot{\theta} \end{aligned} E˙=ml2θ˙θ¨+θ˙mglsinθ=θ˙[umglsinθ]+θ˙mglsinθ=uθ˙
简单来说,给系统增加的能量就是输入力矩u与速度的乘积。同时为了将单摆摆到最上边,我们有一个需求能量为:
E d = m g l E^{d}=m g l Ed=mgl
则能量的差为:
E ~ = E − E d E ~ ˙ = E ˙ = u θ ˙ \tilde{E}=E-E^{d}\\ \dot{\tilde{E}}=\dot{E}=u \dot{\theta} E~=EEdE~˙=E˙=uθ˙
那么,如果将输入信号u取值为:
u = − k θ ˙ E ~ , k > 0 u=-k \dot{\theta} \tilde{E}, \quad k>0 u=kθ˙E~,k>0
通过调节k使得u满足最大扭矩要求,并带入到上式,可以得到能量差的倒数和能量之间的关系,即为:
E ~ ˙ = − k θ ˙ 2 E ~ \dot{\tilde{E}}=-k \dot{\theta}^{2} \tilde{E} E~˙=kθ˙2E~
此时,能量差的稳定点为0,完成了对单摆的能量控制。

但此时也会有另一个问题,能量达到了指定的要求,但是系统并不会稳定在竖直位置,这也解释了上边的问题,竖直点是一个吸引点(任何位置的点都会被吸引到这个点),但是不稳定(在这个点只要一点点干扰,平衡就破坏了),因此如果真的想让单摆停留在竖直点,我们还需要别的工具,这个我们下回分解。

事实上,这种控制方法是一种非常棒的方法,不仅仅因为它足够简单,计算负担小,还因为算法的鲁棒性非常好。分析如下,这个算法只做了一件事,即调整系统的能量差,写出能量差的实际公式为:
E ~ = 1 2 m l 2 θ ˙ 2 − m g l ( 1 + cos ⁡ θ ) \tilde{E}=\frac{1}{2} m l^{2} \dot{\theta}^{2}-m g l(1+\cos \theta) E~=21ml2θ˙2mgl(1+cosθ)
而唯一的要求是令能量差为0,此时发现系统的质量被消除了,即如果系统质量不太确定,这个算法也能很好的完成任务。

而如果系统是有阻力的,我们也能很轻松的把阻力补偿掉,此时输入力矩表达式如下:
u = − k θ ˙ E ~ + b θ ˙ u=-k \dot{\theta} \tilde{E}+b \dot{\theta} u=kθ˙E~+bθ˙
同样的,由于当能量差为0时,阻尼力并没有被包含进去,所以如果我们为阻尼率b估计有误差也问题不大。

参考文献

@ b o o k u n d e r a c t u a t e d , t i t l e = " U n d e r a c t u a t e d R o b o t i c s " , s u b t i t l e = " A l g o r i t h m s f o r W a l k i n g , R u n n i n g , S w i m m i n g , F l y i n g , a n d M a n i p u l a t i o n " , h o w p u b l i s h e d = " C o u r s e N o t e s f o r M I T 6.832 " , a u t h o r = " T e d r a k e , R u s s " , y e a r = 2022 , u r l = " h t t p : / / u n d e r a c t u a t e d . m i t . e d u " , @book{underactuated, title = "Underactuated Robotics", subtitle = "Algorithms for Walking, Running, Swimming, Flying, and Manipulation", howpublished = "Course Notes for MIT 6.832", author = "Tedrake, Russ", year = 2022, url = "http://underactuated.mit.edu", } @bookunderactuated,title="UnderactuatedRobotics",subtitle="AlgorithmsforWalking,Running,Swimming,Flying,andManipulation",howpublished="CourseNotesforMIT6.832",author="Tedrake,Russ",year=2022,url="http://underactuated.mit.edu",

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lilili~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值