跳到主要内容
Sandbox Physics

控制与力学 · 推力上限

小车倒立摆

小车电机能接住要倒的杆,再把小车带回起点吗? 能,前提是初始倾角不大、电机推力够用。杆向右倒,小车得先向右加速,回到杆底下把它接住。推力同时参考小车的位置和速度,杆站稳后,小车会被慢慢带回起点。需要的推力一旦超过电机上限,杆就倒了。

把三维小车倒立摆歪一点再松手。看反馈控制怎样接住摆杆、把小车拉回原处;电机推力跟不上时,再看平衡怎样被打破。

交互模型小车倒立摆
相对直立的倾角00
杆角速度00
实际小车推力00
请求小车推力00
小车位置00
系统水平动量00
电机有符号做功00
步状态最大功—能残差00

物理教程

接住摆杆,再让小车归位

背景直立是不稳定平衡,稍有偏离就会越偏越大。要把它稳住,反馈必须跟着实际运动调整,而执行器能出的力是有限的。

为什么值得理解装置怎么动、控制器要求多大的驱动、电机做了多少机械功,要放在一起看,它们属于同一个实验。

先抓重点

核心问题
杆向右倒,为什么先要把小车往右推?
一句话直觉
杆的下端连在小车上,小车水平加速,杆就跟着转。控制器同时盯着小车的位置和速度,让小车回到原处。

核心数学模型

非线性小车倒立摆动力学

(M+m)x¨+mlcos⁡θ θ¨−mlsin⁡θ θ˙2=F,lθ¨+cos⁡θ x¨=gsin⁡θ(M+m)\ddot x+ml\cos\theta\,\ddot\theta-ml\sin\theta\,\dot\theta^2=F,\qquad l\ddot\theta+\cos\theta\,\ddot x=g\sin\theta

倾角从竖直向上的位置算起,向右为正。杆没有质量,摆球是质点。

直立附近的全状态反馈

Fd=kxx+kvx˙+kθθ+kωθ˙,F=clip⁡(Fd,−Fmax⁡,Fmax⁡)F_d=k_xx+k_v\dot x+k_\theta\theta+k_\omega\dot\theta,\qquad F=\operatorname{clip}(F_d,-F_{\max},F_{\max})

改变杆长或响应率,增益就重新计算,让线性化、未饱和系统的四个极点都落在负的响应率上。所有增益的正负号都按上面的倾角约定来取。

机械能与电机做功

E=12(M+m)x˙2+mlx˙θ˙cos⁡θ+12ml2θ˙2+mgl(cos⁡θ−1),E˙=Fx˙E=\tfrac12(M+m)\dot x^2+ml\dot x\dot\theta\cos\theta+\tfrac12ml^2\dot\theta^2+mgl(\cos\theta-1),\qquad\dot E=F\dot x

小车和杆之间的耦合项不能省。势能以直立为零点;拿来和电机做功比较的是能量的变化,零点怎么取不影响结果。

常见难点

反馈不是万能的

容易误解只要打开反馈,不管从什么状态松手都能救回来。

正确理解比较几个上限预设。这些控制器只在直立附近起作用,驱动能力也有限,不是起摆算法。

杆稳住了,小车也要控制

容易误解只反馈角度,小车自己就会回到原处。

正确理解推力的大小同时取决于小车的位置、速度,以及杆的倾角和角速度。

动手实验

  1. 01

    倾斜后松手

    拖动金色手柄设定初始倾角,再点播放。

    你会看到: 看摆杆怎么动,再看控制器要求电机朝哪个方向、出多大的驱动。
  2. 02

    找到电机的极限

    选“推力不足”,再调高推力上限。

    你会看到: 留意从哪一刻起,电机实际给出的驱动跟不上控制器的要求。
  3. 03

    比较能量和电机做功

    把回放拉到最后,导出记录,再比较标准积分和精细积分。

    你会看到: 电机做的功可正可负,机械能的变化正好等于它。

一手理论资料:MIT · Cart-Pole · ETH Zürich · 1D reaction-wheel model, Section II

反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策