4. 位置环原理:位置环的作用、数学模型与P控制器设计

好,咱们进入三环控制的最后一环——位置环。说实话,位置环是很多工程师觉得「简单」但又经常出问题的地方。我见过不少项目,速度环和电流环调得漂漂亮亮,一加上位置环就开始抖、超调、甚至丢步。为什么?因为位置环的「慢」和「准」跟速度环的「快」是天然矛盾的。

这一节,咱们就把位置环的底裤扒干净。从它到底干什么,到数学上怎么描述,再到最简单的P控制器怎么设计,一步到位。

4.1 位置环的作用:它到底在管什么?

位置环,顾名思义,就是控制电机最终停在哪儿。你想想看,电流环管力矩,速度环管转速,那位置环就是管「角度」或「位移」。它接收一个目标位置,然后告诉速度环:「嘿,你该往这个方向跑,跑多快,什么时候该减速。」

具体来说,位置环有三个核心任务:

  • 定位精度:最终停下来的位置跟目标位置的误差,要控制在允许范围内。比如数控机床的丝杠定位,差了0.01mm可能就废了。
  • 响应速度:从收到指令到到达目标位置,时间要短。但注意,不是越快越好,太快了容易超调。
  • 无超调或小超调:很多应用场景(比如机械臂抓取、龙门架同步)不允许位置超调,因为超调意味着撞机或撞工件。

核心观点:位置环是「慢工出细活」的环。它的带宽通常只有速度环的1/5到1/10。我习惯把速度环带宽设为100Hz时,位置环带宽先给10-20Hz试试水。

我在一个贴片机项目里遇到过一个问题:位置环响应太快,结果每次到位后机械臂都会反弹一下,导致贴片偏移。后来我把位置环增益降了30%,再配合一个简单的加速度前馈,问题就解决了。嗯,这里要注意——位置环不是越快越好。

4.2 位置环的数学模型:从物理到传递函数

要设计控制器,先得有模型。位置环的模型其实比速度环还简单,因为它本质上就是一个积分关系。

咱们从最基础的物理关系说起:

  • 电机轴的位置 θ(单位:rad 或 deg)
  • 电机轴的角速度 ω(单位:rad/s)

它们之间的关系是:位置是速度的积分。

用数学表达就是:

θ(t) = ∫ ω(t) dt

如果考虑初始位置 θ₀,那就是:

θ(t) = θ₀ + ∫₀ᵗ ω(τ) dτ

在拉普拉斯域(s域)里,积分对应 1/s。所以位置环的传递函数就是:

G_pos(s) = θ(s) / ω(s) = 1/s

就这么简单?对,就这么简单。但实际系统中,位置反馈来自编码器或光栅尺,会有量化误差和延迟。不过咱们先不考虑这些,先把理想模型搞清楚。

如果把速度环也考虑进来(因为位置环的输出就是速度环的输入),那整个位置环的被控对象就是:

G_plant(s) = G_vel(s) * (1/s)

其中 G_vel(s) 是速度环的闭环传递函数。如果速度环已经调好,通常可以近似为一阶惯性环节:

G_vel(s) ≈ 1 / (τ_vel * s + 1)

其中 τ_vel 是速度环的时间常数。那么位置环的被控对象就是:

G_plant(s) = 1 / [s * (τ_vel * s + 1)]

你看,这是一个典型的「I型系统」——一个积分环节加一个惯性环节。这种系统的特点是:对阶跃输入没有稳态误差,但动态响应需要仔细设计。

实用技巧:在实际工程中,我很少去精确辨识 τ_vel。我一般直接用速度环的闭环带宽 ω_bw_vel 来估算:τ_vel ≈ 1 / ω_bw_vel。然后位置环的P增益就从这里开始试。

4.3 位置环的P控制器设计:最简单的往往最有效

位置环最常用的控制器就是——纯比例(P)控制器。你没看错,没有I,没有D。为什么?

  • 不需要I:因为被控对象本身有一个积分环节(1/s),所以对阶跃输入的稳态误差天然为零。加I反而可能引入积分饱和和振荡。
  • 慎用D:位置反馈通常有量化噪声(尤其是低分辨率编码器),微分会放大噪声,导致电机抖动。除非你用高分辨率编码器或做了很好的滤波,否则别轻易加D。

所以,位置环P控制器的形式就是:

ω_ref(t) = K_p * [θ_ref(t) - θ_fb(t)]

其中:

  • ω_ref:速度环的参考输入(位置环的输出)
  • θ_ref:目标位置
  • θ_fb:实际反馈位置
  • K_p:位置环比例增益

在s域里,控制器的传递函数就是:

C_pos(s) = K_p

整个位置环的开环传递函数为:

G_open(s) = K_p * [1 / (s * (τ_vel * s + 1))]

闭环传递函数为:

G_close(s) = K_p / [τ_vel * s² + s + K_p]

这是一个典型的二阶系统。它的自然频率 ω_n 和阻尼比 ζ 分别为:

ω_n = √(K_p / τ_vel)
ζ = 1 / (2 * √(K_p * τ_vel))

你看,K_p 越大,自然频率越高(响应越快),但阻尼比越小(超调越大)。这就是位置环设计的核心矛盾。

避坑指南:我曾经在一个激光切割机项目里,把K_p调得太大,结果每次定位时电机都会「冲过头」然后振荡回来。切割头在工件上画出了一道波浪线——整块板材报废。后来我把K_p降到原来的60%,再配合一个速度前馈,才搞定。

4.4 P增益的整定方法:从理论到实践

理论讲完了,咱们说说实际怎么调。我一般用两种方法:

方法一:基于临界阻尼的公式法

如果你希望位置环没有超调(临界阻尼,ζ=1),那么:

K_p = 1 / (4 * τ_vel)

这个公式怎么来的?从 ζ=1 的条件反推:

1 / (2 * √(K_p * τ_vel)) = 1
→ √(K_p * τ_vel) = 1/2
→ K_p * τ_vel = 1/4
→ K_p = 1 / (4 * τ_vel)

举个例子:如果速度环时间常数 τ_vel = 0.01s(对应带宽约100Hz),那么:

K_p = 1 / (4 * 0.01) = 25

这个值可以作为你的初始值。

方法二:试凑法(我常用的方法)

  1. 先给一个很小的K_p(比如1-5),让系统动起来,观察响应。
  2. 逐步增大K_p,直到出现轻微超调(比如5%-10%)。
  3. 然后退回20%-30%,作为最终值。
  4. 如果允许超调,可以再往上加一点,但要注意机械冲击。

我的习惯:我一般先用示波器看速度环的阶跃响应,估算出τ_vel。然后用公式算出K_p的初始值,再用试凑法微调。这样既快又稳,不会出现「调一整天还在抖」的情况。

4.5 位置环的知识体系总览

为了让你对整个位置环的设计有一个全局视角,我画了一张框架图。你可以看到位置环在整个三环系统中的位置,以及它内部的核心逻辑。

位置环知识体系框架 电流环(内环) 速度环(中环) 位置环(外环) 位置环内部结构 位置给定 θ_ref P控制器 (Kp) 速度环 + 电机 位置反馈 θ_fb 关键说明: • 位置环输出 = 速度环的参考输入(ω_ref) • 被控对象含积分环节(1/s),P控制即可实现无静差 • Kp 越大响应越快,但超调和机械冲击也越大

4.6 位置环P控制器的参数对比

为了让你更直观地理解K_p的影响,我整理了一个对比表。你可以看到不同K_p值下,系统的响应特性会怎么变化。

K_p 值 响应速度 超调量 稳态误差 适用场景
过小(K_p < 1/4τ) 慢 无 无 对响应速度要求不高的场合
临界值(K_p = 1/4τ) 适中 无(临界阻尼) 无 大多数通用场合(推荐起始点)
适中(K_p = 1/2τ) 较快 约5%-10% 无 允许轻微超调的快速定位
过大(K_p > 1/τ) 很快 大(>20%) 无 不推荐,易振荡和机械冲击

重要提醒:上表中的 τ 是速度环的时间常数。如果你不知道速度环的 τ,可以用一个简单方法估算:给速度环一个阶跃指令,用示波器看它从10%上升到90%的时间 t_rise,那么 τ ≈ t_rise / 2.2。