1. 伺服控制基础:伺服系统概述、三环控制原理、FPGA在伺服控制中的角色

1.1 伺服系统到底是什么?

先聊聊伺服系统。很多人一听到「伺服」就觉得高大上,其实没那么玄乎。

伺服系统,说白了就是一个能精确跟随指令的自动控制系统。你让它转1圈,它不会转0.9圈;你让它停在某个位置,它不会抖来抖去。我做过一个项目,客户要求定位精度到0.01度,当时心里也没底,后来发现只要把三环调好了,这事儿真能成。

伺服系统通常包含这几个部分:

  • 控制器:大脑,负责算位置、算速度、算电流
  • 驱动器:执行器,把控制信号变成电机能用的功率
  • 电机:干活的主力,常见的有永磁同步电机(PMSM)、直流无刷电机(BLDC)
  • 反馈装置:眼睛,编码器、霍尔传感器这些

你想想看,如果没有反馈,那就是开环控制。开环控制能干啥?步进电机那种,丢步了它自己都不知道。伺服就不一样,闭环控制,实时纠偏。

核心要点:伺服系统的本质是「测量-比较-纠正」的循环。这个循环跑得越快,系统性能就越好。

1.2 三环控制原理:位置环、速度环、电流环

三环控制是伺服系统的灵魂。我刚开始学的时候,总觉得这三环是分开的,后来做项目才明白——它们是嵌套的,一层套一层。

先看这张图,一目了然:

位置环 频率:1~10 kHz 速度环 频率:10~50 kHz 电流环 频率:50~200 kHz 位置给定 速度给定 反馈(编码器/电流采样) 位置给定 → 位置误差 → 速度给定 速度给定 → 速度误差 → 电流给定 电流给定 → 电流误差 → PWM输出

1.2.1 电流环——最内层,最快

电流环是三个环里跑得最快的。为什么?因为电流变化快啊。电机线圈里的电流,微秒级就能变一次。

电流环的任务很简单:让电机实际电流紧紧跟随给定电流。一般用PI控制器,比例项管响应速度,积分项管稳态精度。

我的经验:电流环的PI参数,我一般先调比例项。比例项调好了,电流响应基本就快了。积分项加太多反而容易震荡。有一次我调一个200kHz的电流环,积分系数设大了,电流波形抖得像心电图,后来减了一半才稳下来。

1.2.2 速度环——中间层,不快不慢

速度环在电流环外面。它给电流环发指令:「喂,电流环,你让电机转这么快!」

速度环的输入是速度给定实际速度的差值,输出是电流给定。速度环的频率一般在10~50 kHz,比电流环慢一些。

这里有个坑:速度反馈的延迟。编码器采样有延迟,算速度也有延迟。我曾经用M法测速,低速的时候速度值跳得厉害,后来换成T法才解决。

1.2.3 位置环——最外层,最慢

位置环在最外面。它给速度环发指令:「速度环,你让电机跑到这个位置!」

位置环的频率最低,一般1~10 kHz就够了。为什么?因为位置变化慢啊。你想想看,电机转一圈,位置才变360度,速度都变了好多次了。

位置环的控制器,我建议用P控制器就够了。加积分项容易产生超调,位置超调了再拉回来,那抖动看着就难受。

注意:三环的带宽必须逐级递减。电流环带宽 > 速度环带宽 > 位置环带宽。如果速度环比电流环还快,系统会不稳定。这个原则我在项目里验证过好几次,违反一次炸一次。

1.3 FPGA在伺服控制中的角色

说到FPGA,很多人第一反应是「这玩意儿不是做通信的吗?」其实FPGA在伺服控制里,优势非常明显。

1.3.1 为什么用FPGA?

传统的伺服控制器用MCU或DSP。MCU便宜,但算力有限。DSP算力强,但指令流水线有延迟。

FPGA呢?硬件并行执行。电流环、速度环、位置环,三个环可以同时算,互不干扰。我做过对比:同样一个三环算法,在DSP上跑需要5微秒,在FPGA上只需要1微秒。

对比项 MCU DSP FPGA
控制周期 50~100 μs 10~50 μs 1~10 μs
并行能力 弱(单核) 中(流水线) 强(全并行)
灵活性 高(软件可改) 高(硬件可重构)
功耗 中高
典型应用 简单位置控制 中高端伺服 超高速/高精度伺服

1.3.2 FPGA具体做什么?

在伺服系统里,FPGA主要负责这几块:

  • 电流环加速:Clark变换、Park变换、PI运算,全部用硬件流水线实现。我做过一个设计,电流环从采样到输出PWM,总共只用了8个时钟周期。
  • 编码器解码:增量式编码器的正交解码、绝对值编码器的SSI/EnDat协议解析,FPGA做这个简直是降维打击。
  • PWM生成:空间矢量调制(SVPWM),FPGA可以精确控制死区时间、互补输出,比MCU的PWM模块灵活多了。
  • 故障保护:过流、过压、堵转检测,FPGA可以在纳秒级响应,直接封锁PWM输出。

一句话总结:FPGA把伺服控制中最耗时的计算和接口任务硬件化了,让控制周期从微秒级降到纳秒级。这就是硬件加速的价值。

1.3.3 一个实际案例

我记得有个项目,客户要求电机在1000转/分钟的时候,速度波动小于0.1%。用DSP做,速度环跑到20kHz,波动在0.3%左右,死活降不下来。

后来换成FPGA,速度环跑到100kHz,电流环跑到200kHz。你猜怎么着?速度波动直接降到0.05%。为什么?因为控制周期快了,系统对扰动的响应也快了。

避坑指南:FPGA不是万能的。如果你只需要一个简单的伺服,MCU就够了。FPGA的优势在于极致性能高度定制。如果你的控制周期要求小于10微秒,或者需要同时控制多个轴,那FPGA就是最佳选择。

1.4 本章小结

伺服控制的基础,说白了就是三环嵌套。电流环最快,速度环居中,位置环最慢。FPGA的角色,就是把这三环用硬件实现,跑得更快、更稳。

嗯,这一章的内容就到这里。下一章我们会深入电流环的FPGA实现,包括Clark变换、Park变换的硬件设计,到时候我会分享一些具体的代码和时序图。


公众号:蓝海资料掘金营,微信deep3321