二进制制控制模拟器 返回
控制工程

二进制制控制模拟器 — 时间最优控制

双积分系统 ẍ = u 在输入上下限 |u| ≤ u_max 约束下,最短时间到达原点的"二进制制"可视化工具。改变初始位置、初始速度、最大输入,切换曲线、位相平面轨道、最短到达时间、切换时刻实时显示。

参数设置
初始位置 x₀
与原点的初始偏差(无量纲)
初始速度 v₀
启动时的速度(无量纲)
最大控制输入 u_max
输入的上下限(加速度最大值)
该系统为双积分系统(双积分器)。控制输入 u 相当于加速度,只能取 +u_max(全力加速)或 −u_max(全力制动)之一,最多切换一次即可最短时间到达原点 (0,0)。
计算结果
最短到达时间 t_final (s)
切换时刻 t_switch (s)
第1控制输入
第2控制输入
切换点速度 v_sw
控制输入幅度 u_max
位相平面 — 切换曲线与二进制制轨道

横轴为位置 x,纵轴为速度 v。S形切换曲线;初始点沿抛物线弧线到达切换曲线,然后反转控制沿曲线滑向原点。标记在轨道上循环。

位置·速度的时间响应
控制输入 u(t) — 方形波
理论·主要公式

$$\ddot x = u,\qquad |u|\le u_{max}$$

双积分系统的状态方程。位置 x、速度 v=ẋ、控制输入 u 相当于加速度,受上下限 ±u_max 约束。

$$x = -\frac{v\,|v|}{2\,u_{max}}$$

切换曲线(切换表面)。曲线上的状态无需切换即可到达原点。曲线上方施加 u=−u_max,下方施加 u=+u_max。

$$u^{*}(t)=\pm u_{max}\quad(\text{最多一次切换})$$

根据庞特里亚金最小原理,双积分系统的时间最优输入具有二进制制结构,切换次数最多一次。

什么是二进制制

🙋
"二进制制"这个名字听起来很奇怪。这是什么样的控制?
🎓
名字来自于"砰!砰!"击打开关的意象。简单地说,就是不使用控制输入的中间值,总是施加上限 +u_max 或下限 −u_max 之一的控制方式。用油门和刹车来比喻,从不半踩油门,总是"全力踩油门"或"全力踩刹车"之一。因为只有开和关两个选择,所以叫 bang-bang。
🙋
只有全力或全力两个选择,听起来很粗糙。这样做有什么好处吗?
🎓
恰恰相反,从"最短时间到达目标"的角度看,二进制制就是最优解。想象一个有输入上下限的系统。要让它尽快运动,就没理由保留力量不用。因此"去时全力加速,回来全力制动"才是答案。这个工具处理的双积分系统 ẍ = u,数学上也能证明这一点。半力加速反而更慢。
🙋
明白了。但什么时候该从全力加速切换到全力制动呢?时机很难掌握啊。
🎓
这就是"切换曲线"出场的时候。看上面的位相平面(横轴是位置,纵轴是速度)。有一条S形的曲线,就是切换曲线,用公式表示为 x = −v·|v|/(2·u_max)。"沿着这条曲线,就能仅用制动而无需切换地到达原点"。所以控制规律很简单。曲线上方施加 u=−u_max,下方施加 u=+u_max。状态沿抛物线到达切换曲线的时刻,就是切换的时机。
🙋
为什么是抛物线呢?图上也看到从初始点开始弧线接触曲线。
🎓
如果输入 u 恒定,加速度就恒定,就是等加速度运动。把位置 x 和速度 v 的关系绘出来,恰好就是 v² = 常数×x 的抛物线。所以在位相平面上,+u_max 时和 −u_max 时各为一条方向不同的抛物线弧线。第一条弧线到达切换曲线,第二条(=切换曲线本身)到达原点。切换最多一次这个性质,就来自于这"两条抛物线"的结构。
🙋
理论上理解了。实际的电梯或机器人也直接使用这种二进制制吗?
🎓
思路是用的,但直接全力⇔全力有缺点。输入会瞬间从 +u_max 跳到 −u_max,机械受到巨大冲击;坐电梯的人会感到不适。而且切换时刻稍微偏差或模型误差,就会超过原点然后产生抖振(反复微小振荡)。所以实务中,电梯、硬盘等采取的是在切换附近平滑过渡,靠近目标时切换到反馈控制的方案。"知道理论最快方案"后,有现实地做出让步,这才是设计的功夫所在。

常见问题

二进制制(bang-bang control)是将控制输入 u 限制在允许范围的上限 +u_max 或下限 −u_max 的一种控制方式。不使用中间值,就像开关的"开/关"一样切换。对于双积分系统 ẍ = u 和输入约束 |u| ≤ u_max 的系统,最短时间到达目标的"时间最优控制"的解就是这种二进制制。本工具计算从初始状态到原点,需要多少次切换才能最快到达。
根据庞特里亚金最小(最大)原理,当输入 u 对哈密顿函数线性时,最优输入在每个时刻取使哈密顿函数最小的端点 ±u_max。中间值只在伴随变量恰好为零的奇异区间内最优。双积分系统没有奇异区间,所以最优输入总是 +u_max 或 −u_max 之一,而且切换最多一次。最短到达就是"全速加速,临界时刻全速制动",直观上也易理解。
切换曲线是位相平面(横轴 x·纵轴 v)上"从该点无需切换就能到达原点的状态集合"所描绘的曲线。双积分系统中为 x = −v·|v|/(2·u_max) 的S形曲线。当前状态在曲线上方时施加 u = −u_max,下方时施加 u = +u_max。状态沿抛物线到达切换曲线时反转控制,沿曲线滑向原点。切换曲线是最优控制的"地图"。
理论上最快,但直接使用有缺点。首先,输入从 +u_max 瞬间跳跃到 −u_max,对执行器和结构产生巨大冲击和振动。其次,切换时刻的微小误差或模型误差易导致超调并产生抖振(快速振荡)。实践中电梯和硬盘磁头定位等采用"近似二进制制"方案,在切换附近平滑过渡,目标附近切换至反馈控制,以此平衡速度和平稳性。

实世界应用

硬盘、光盘磁头定位:硬盘磁头的"寻道控制"是二进制制的典型例子。为了减少访问时间甚至一毫秒,音圈电机被驱使以电流上限加速,途中切换到全力减速。实际使用中,切换附近被平滑化为"准时间最优"轮廓,之后切换到反馈控制来完成定位。

电梯、输送机械的运行曲线:电梯、起重机、半导体制造装置的搬运台希望"尽快但无冲击"地运行。理想是全力加减速的二进制制,但加速度的急变(急跃)造成乘坐不适和货物滑移。因此采用梯形或S形速度曲线,即故意圆滑二进制制的尖角,实现"抗冲击的时间最优"。

航天器姿态控制·推力喷射:轨道机动装置本质上只能开或关,正是二进制制的化身。卫星姿态变更和轨道修正中,喷气时间和切换时刻由时间最优控制理论决定。在节约推进剂的同时,用双积分系统的切换曲线思想直接指导轨迹设计。

机器人、工作机械的高速定位:工业机器人的机臂或机床送料轴要在点间最短时间到位(point-to-point 运动),基本采用逼近二进制制的轮廓。因为循环时间直接影响生产力,扭矩和速度约束下的时间最优轨迹生成广泛被研究和实施。

常见误解和注意事项

最常见的误解是"二进制制最快,所以总是最好的控制"。二进制制最优仅限于选择"最小化到达时间"作为目标函数的情况。如果改为"最小化能耗"或"最小化加速度变化",最优解就不再是二进制制。实际机械中,输入的急变产生振动、磨损、噪音,所以常常在时间最优和平稳性之间取舍,选择平稳输入。"想优化什么"是控制设计的出发点。

其次,"只要计算出切换时刻,按时切换控制就行"的想法也有问题。精确计算切换时刻的前提是模型(ẍ=u、u_max)与现实完全一致。但实机总有摩擦、扰动、模型误差,即使按计算时刻切换,也到不了原点正中。超调的状态会在切换曲线附近摇摆,输入快速在 +u_max 和 −u_max 间往复,造成"抖振"。实现时需在切换曲线周围设不感应带,或靠近目标时切换到线性反馈,防止振动。

最后,"切换总是恰好一次"不能推广。切换最多一次是此二阶系统的特性。更高阶或多极点系统的时间最优控制,切换次数随系统阶数增加(n阶系统最多n−1次是一个粗略估计)。"二进制制=一次切换"记死了,用于复杂系统就会出错。本工具只处理最基础的双积分系统,这点需留意。

使用指南

  1. 设置初始位置x0(米)和初始速度v0(米/秒)。例如位置10米、速度0米/秒的情况下从原点到达的控制
  2. 用N/kg指定最大控制输入umax。工业机器人手臂的标准值为3~8米/秒²
  3. 运行模拟后,位相平面上显示最优轨迹和切换曲线,可确认t_switch时刻的切换动作
  4. 验证结果的最短到达时间t_final和第1、第2控制输入的符号反转

具体计算例

初值x0=5米、v0=2米/秒、umax=4米/秒²的情况:第1阶段以u=-4米/秒²的加速度控制开始,工作约1.2秒直到到达切换曲线上的点(x≈1.5米、v≈-2.6米/秒)。然后u切换为+4米/秒²,用剩余0.9秒到达原点。总最短到达时间t_final≈2.1秒。切换时刻t_switch=1.2秒处的速度v_sw=-2.6米/秒满足最优条件

实务中的注意事项

  1. 数控机床送轴控制:umax设为机械最大加速度限制值(通常5~10米/秒²),确认实现可行的时间轨迹
  2. 若输入饱和未发生在抛物形切换曲线上,则需切换到线性反馈控制
  3. 实机若有摩擦和粘性阻尼,理论值会延迟10~20%,应乘以安全系数1.3
  4. 伺服电机控制时需考虑电流饱和延迟,umax设为动特性的95%