FOC 参考手册 05 控制与估算

速度环与位置环

几乎没有人真正需要电流,他们需要的是速度或位置。电流环是级联控制中最内层的一环——三个嵌套的环路,每一个都围绕着内部的环路进行闭环。

级联结构:位置环套速度环、速度环套电流环,电机及其积分环节将三者全部闭环。 电流内环 ω* i q * 电压 转矩 转速 电流 转速 位置 位置 给定 + − 位置 PI 10 Hz + − 速度 PI 50 Hz + − 电流 PI 1 kHz 逆变器 SVPWM + 逆变桥 1 / s 转速 → 位置 1 / Js 转矩 → 转速 电机 v → i → 转矩
每个外环都将紧邻的内环视为理想执行机构。环路带宽由外向内依次递增(10 Hz → 50 Hz → 1 kHz),而电机物理模型自带的两次积分——转矩积分为转速、转速积分为位置——正是外环真正控制的对象。

每个环路都对内层环路进行控制,并将其视为理想的执行器。这一假设使设计变得可行,但只有当内环的速度远高于外环时才成立。本页的所有内容都由此推导而来。

为什么要采用级联结构

仅用一个控制器将位置误差映射到电压是可行的,但没有人会这样做。原因有三:

限幅处于恰当的位置。 电流限幅是一项物理硬约束——用于保护逆变桥和永磁体。在级联结构中,它就是速度环的输出限幅,单位直接就是安培。而在单一整体式控制器中,内部根本没有一个代表电流的信号,因此限幅无处安放。

每个环路可以逐级独立调试。 先整定并验证电流环;然后在已知可靠的内环之上闭合速度环;最后闭合位置环。任何一个阶段出现问题,原因都很单一明确。反之,面对一台随时可能失控损坏的电机,同时去调三个相互耦合的环路增益,则是完全不同的体验。

扰动在进入系统的位置即被抑制。 负载转矩扰动直接作用于转速,由速度环直接感知并抑制;反电动势的变化则由电流环就地抑制,速度环甚至无需感知。

速度环

从 q 轴电流到机械转速的传递函数是一阶的,与电气部分完全一致:

对于参考电机, N·m/A。同样的零极点对消原理给出 和 。

只不过这次不应使用它。

在实验台上 机械极点 极小——对于几乎所有实际电机而言都只有零点几赫兹,而对于带典型负载的基准电机更是只有 0.0004 Hz。若照搬零极点对消,算出的积分增益将小到需要好几秒钟才能抑制住一次负载阶跃。

因此,速度环的零点必须人为刻意配置(通常设在穿越频率的五分之一处),设计方法也不再是零极点对消。这在实际工程中是常态:电流环里那套干净利落的对消法,一旦遇到极点几乎在直流(DC)处的被控对象便不再适用。

带宽分离是核心设计准则

外环控制器假定内环是瞬时响应的。在实际的串级系统中进行测量——50 Hz 的速度环套在带宽各异的电流环之上,阶跃输入较小以避免饱和:

电流带宽带宽比转速超调
1500 Hz30×12.4%
500 Hz10×12.4%
250 Hz5×13.5%
150 Hz3×16.5%
100 Hz2×22.9%
75 Hz1.5×29.8%

带宽比达到十倍及以上时几乎没有任何代价——内环确实形同透明。降到五倍时开始付出代价。低于三倍时,内环自身的动态延迟已侵入外环穿越频率之内,导致转速超调量翻倍不止。

每级带宽相差五到十倍就是级联设计的黄金法则,其依据正在于此。以 1 kHz 的电流环为基础,速度环带宽大约可设为 100–200 Hz,而位置环则在 20 Hz 以下。

环路
指令
选项
套在真实电流环之外的真实速度环。上图:转速响应。下图:速度环所请求的电流与电流环实际输出的电流——当两条曲线重合时,级联控制的假设成立。将 电流带宽 向下拖近速度环带宽,观察两条曲线如何逐渐剥离。

速度环在每次启动时都会饱和

这就是速度环与电流环之间的差异,也是最容易让人困惑的地方。

电流环只是偶尔饱和——例如在大阶跃或接近基速时。而速度环在每一次显著的转速变化过程中都会饱和,因为正是电流限幅决定了最大加速度的物理上限。一旦给定 1500 rpm 的阶跃指令,速度环会立即请求极大的电流,撞上电流限幅,并在整个加速阶段一直顶着限幅运行。

因此,这里的抗积分饱和并非一种改进,而是能否正常工作的分界线:

超调调节时间
采用抗积分饱和6.9%140 ms
无抗积分饱和57.8%228 ms

速度指令的超调量达到 58% 并不是通过降低增益就能解决的整定问题——这是积分器在 74 ms 内积累了大量无法消除的误差所致。解决方法与 电流环 所采用的反向计算相同。

在实验台上 这里还有同一陷阱的第二种更隐蔽的形式。当内环饱和(即电流环达到电压限幅)时,速度环所请求的电流实际上已无法兑现,但没有任何机制告知速度环。由于速度环自身的输出并未触及电流限幅,它自己的抗积分饱和永远不会触发,积分器照样发生饱和。

稳健的级联系统会将内环的饱和标志向外传递,使得当下一级环路已失去调节能力时,本级环路即停止积分。这正是图中下方所示的内容:当“请求”与“实际输出”一致时,假设成立;当两者出现偏差时,速度环正在调节一个并未真正发生的现象。

前馈零代价,却常被忽略

反馈仅作用于误差,因此跟踪斜坡信号的闭环总是存在滞后——这就是“误差驱动”的含义。如果加速度已预先知道(在由运动轨迹生成指令时总是如此),则可以直接将所需的电流叠加到目标值上:

这不会改变环路的传递函数,因此也不会引起任何不稳定。它只是让反馈路径的工作量减少。这是串级控制中成本最低、却最常被忽视的性能提升手段。

位置环只需要比例控制

在内含正常工作的速度环路的情况下,从速度给定到位置的系统可视为一个纯积分环节。因此,仅采用比例控制即可构成一阶闭环,且无超调,同时 。

在此处引入积分作用通常是错误的。被控对象本身已经具有积分特性,因此不存在需要 积分器消除的稳态位置误差;而再增加一个积分环节则会额外引入90°相位滞后,并 极易引发伺服驱动器所常见的持续振荡现象。

在实验台上 唯一的例外是存在恒定负载转矩(例如垂直Z轴受重力作用),此时纯比例控制确实会产生稳态位置静差。但即便如此,更好的办法通常也是加入负载转矩前馈,而非引入积分项去慢慢消除它,因为前馈不会牺牲任何相位裕度。

速度的来源

速度环需要转速反馈,但编码器测量的是位置。对量化信号求导,带来的麻烦正如听起来一样棘手。

在固定时间窗口内对脉冲边沿计数(M 法测速),算出的转速必然以固定步长发生量化:

这一量化步长与转速高低完全无关。因此,随着电机转速降低,量化步长占实际转速的比例会越来越恶劣:

编码器量化步长(1 ms 窗口)达到 1% 精度的最低转速
500 CPR120 rpm12000 rpm
1000 CPR60 rpm6000 rpm
4000 CPR15 rpm1500 rpm

一个每毫秒采样一次的 1000 CPR 编码器,其测速分辨率只有 60 rpm。在 100 rpm 下,该转速估计值已几乎不可用,而且任何后端滤波都无法凭空恢复根本未曾采集到的信息。

标准方案是切换测速方法:高速时对脉冲边沿计数(M 法),低速时则改为测量相邻边沿之间的时间间隔(T 法),此时量化变量与连续变量的角色互换。如何妥善处理两种方法之间的切换过渡——以及切换点处噪声特性的不连续跳变——是一项实打实的工程课题,绝非可有可无的注脚。

在实验台上 对转速估计值加低通滤波是最常见的本能反应,但绝非没有代价:任何加在反馈通道上的滤波器都处于闭环回路之内,其相位滞后会直接扣减速度环的相位裕度。一台必须靠重度速度滤波才能压住噪声的驱动器,实际上已经把大部分动态带宽拱手让出了。与其加滤波,不如换更高线数的编码器。

要点回顾

  • 采用串级控制是因为它能将限制放在合适的位置,允许逐个回路进行调试,并在扰动进入的地方予以抑制。
  • 速度环节是一阶系统,但其极点位于直流处。应主动设置控制器零点,而非试图将其抵消。
  • 每级之间应使带宽相差五到十倍。十倍并无额外成本;若低于三倍,超调量将加倍。
  • 速度环在每次启动时都会饱和,因此抗积分饱和是结构性措施,而非后期优化——开启抗积分饱和时超调为 6.9%,关闭时为 57.8%。
  • 将内环的饱和状态向外环传递,否则当内环受限时,外环积分器仍会继续累积饱和。
  • 将加速度和负载前馈引入系统。这不会影响稳定性,并消除了反馈无法消除的滞后。
  • 位置环需要比例控制,而不是比例积分控制。被控对象本身已经具有积分特性。
  • 脉冲计数式编码器以固定步长量化转速,因此在低速区必然失效。滤波无法恢复丢失的分辨率,提高编码器线数(或改用测周期法)才可以。