1. 课程导入

在工业自动化、机器人、数控机床、电动汽车与消费电子中,电机控制是最典型的“实时控制”任务之一。传统MCU方案在单电机、低动态要求下足够成熟,但当系统需要多轴同步、纳秒级PWM分辨率、并行采样与复杂电流环运算时,MCU的串行执行模型会逐渐成为瓶颈。FPGA(现场可编程门阵列)以硬件并行、确定性时序和可定制外设接口的特性,成为高性能电机控制的重要实现平台。本课程围绕“时序”与“定点优化”两条主线,帮助学习者建立从算法到硬件落地的完整能力。

一、学习目标:从会写到会算、会调、会验

本课程不是单纯的Verilog语法课,也不是纯电机理论课,而是面向工程落地的交叉课程。完成学习后,应达到以下目标:

  • 理解控制链路:能说清从编码器/霍尔采样、Clarke/Park变换、电流PI、反Park、SVPWM到功率级驱动的完整信号流。
  • 掌握时序约束:能编写合理的时钟约束、输入输出延迟约束,理解建立时间、保持时间与亚稳态对控制环的影响。
  • 掌握定点化方法:能根据电流、电压、转速的动态范围选择Q格式,评估量化误差与溢出风险。
  • 具备优化能力:能通过流水线、并行化、资源共享和时序重排,在资源与频率之间取得平衡。
  • 具备验证意识:能用仿真、在线逻辑分析仪和台架实验定位时序与数值问题。
核心判断:FPGA电机控制的难点往往不在“算法是否懂”,而在“时序是否收敛、定点是否溢出、采样与PWM是否对齐”。本课程将把这三件事贯穿始终。

二、核心概念:并行、时序、定点与闭环

要进入FPGA电机控制,先要建立四个核心概念。

1. 硬件并行:FPGA中的多个运算单元可以同时工作。例如三相电流的Clarke变换可以并行计算,而不是像MCU那样逐条指令执行。并行带来吞吐率提升,但也带来资源消耗和时序路径变长的问题。

2. 确定性时序:电机控制对采样时刻、PWM更新时刻和中断响应有严格要求。FPGA可以用计数器精确生成载波周期,在固定时刻触发ADC采样,并在下一个周期开始时更新占空比,避免抖动。

3. 定点数表示:FPGA中浮点运算资源昂贵,工程上常用Q格式定点数。例如Q15表示1位符号位加15位小数,范围约为[-1, 1)。电流标幺化后,需根据最大电流和精度要求选择Q格式。

4. 闭环控制:电机控制本质是负反馈系统。采样、计算、输出三个环节的延迟会降低相位裕度,因此FPGA设计必须关注“计算延迟”和“PWM更新延迟”。

典型电流环时序(以20kHz载波为例):
T0         : PWM周期开始,触发ADC采样
T0 + 1us   : ADC转换完成,读取ia/ib/ic
T0 + 2us   : Clarke/Park变换
T0 + 3us   : PI运算
T0 + 4us   : 反Park + SVPWM占空比计算
T0 + 5us   : 占空比寄存器更新(下一周期生效)
T0 + 50us  : 下一周期开始

三、整体框架:从功率级到算法级的四层结构

FPGA电机控制系统可以划分为四个层次:功率与驱动层、采样与接口层、控制算法层、通信与监控层。下图展示了典型的三相永磁同步电机(PMSM)FPGA控制框架,包括ADC采样、Clarke/Park变换、双电流环PI、反Park、SVPWM以及编码器接口。

FPGA 三相 PMSM 电流环控制框架 功率与驱动层 三相逆变桥 栅极驱动 / 死区 PMSM 电机 采样与接口层 ADC 采样 ia/ib/ic 编码器 / 霍尔接口 母线电压采样 控制算法层(FPGA 并行) Clarke → Park → 双 PI → 反 Park → SVPWM 定点 Q 格式运算 / 流水线 速度环与位置环(可选) 通信与监控层 UART / CAN / EtherCAT 上位机参数下发 在线逻辑分析仪 / 波形观测 数字量 SVPWM 占空比 → 驱动信号 电流/位置 一个 PWM 周期内的关键时序节点(20 kHz,50 μs) T0 ADC完成 变换完成 PI完成 SVPWM完成 T0+50μs 采样 Clarke/Park PI 运算 反Park/SVPWM 更新占空比

该框架中,FPGA承担了采样时序生成、坐标变换、PI调节、SVPWM调制和通信接口等任务。功率级仍由MOSFET/IGBT和驱动芯片完成,FPGA输出的是PWM逻辑信号。理解这一分层,有助于在后续章节中定位“问题出在哪一层”。

四、典型应用场景与参数对照

不同应用对FPGA电机控制的需求差异很大。下表给出四类典型场景的关键参数对比,帮助建立工程直觉。

应用场景 控制频率 PWM 分辨率 典型定点格式 FPGA 关注重点
无人机电调 20–40 kHz 11–12 bit Q12 / Q15 低延迟、高转速换相
工业伺服 10–20 kHz 12–14 bit Q15 / Q20 多轴同步、编码器接口
电动汽车主驱 8–12 kHz 12–14 bit Q15 / Q24 高可靠性、功能安全
数控机床进给 16–32 kHz 14–16 bit Q20 / Q24 高精度位置环、低纹波

五、常见误区与学习建议

误区一:把FPGA当MCU用。用状态机逐条“执行”算法,虽然能跑通,但失去了并行优势,时序也难以收敛。应优先考虑并行数据通路和流水线。
误区二:忽视定点溢出。PI积分项在启动或堵转时容易饱和,若未做限幅和抗饱和处理,会出现电流失控。
误区三:采样与PWM不同步。若ADC采样时刻随机落在开关噪声上,电流采样会严重失真,导致控制抖动。
误区四:只做仿真不上板。时序问题往往在综合、布局布线后才暴露,必须结合在线逻辑分析仪和实际台架验证。
学习建议:每学一个算法模块,都问三个问题——它在一个PWM周期内占多少时间?它用什么Q格式?它的输入输出延迟是多少?把这三个问题回答清楚,FPGA电机控制就真正入门了。

本课程后续将沿着“时序设计—定点优化—算法实现—系统验证”的路径展开。第一章建立的整体框架和参数意识,将作为后续所有章节的参照系:无论是写一个Clarke变换模块,还是优化一个PI控制器,都可以回到这张框架图和时序条上,判断自己处在哪一层、影响哪一段时序、消耗哪一类资源。