7.3 数字控制器实现:硬件平台、算法离散化与实时性
磁悬浮轴承的控制系统是一个典型的快速、高精度实时闭环系统。将第7.1和7.2节所设计的控制算法从连续的s域理论转化为可在数字硬件上稳定、可靠运行的代码,是实现工程应用的最后也是最为关键的一步。数字控制器的实现涉及硬件平台选型、连续控制算法的离散化、以及满足严格实时性约束的软件架构设计。本节将系统阐述基于主流数字信号处理器和现场可编程门阵列的实现方案、控制算法的离散化方法及其对性能的影响,并深入分析保证系统实时性的关键技术。
7.3.1 硬件平台:DSP与FPGA的选型与架构
现代磁悬浮轴承数字控制器的核心硬件平台主要围绕数字信号处理器和现场可编程门阵列构建,两者在架构和适用场景上各有侧重,常采用DSP+FPGA的异构架构以发挥各自优势。
1. 数字信号处理器
DSP是专门为进行高速数学计算(特别是乘加运算)而优化的微处理器。其核心优势在于:
- 强大的标量/矢量运算能力:单指令多数据流架构和硬件乘法累加器使其能高效执行PID、状态反馈、滤波器等控制算法中的大量矩阵/向量运算。
- 灵活的软件开发环境:采用C/C++等高级语言编程,辅以汇编优化,开发周期相对较短,算法修改和调试方便。
- 丰富的外设接口:通常集成高精度模数转换器、增强型脉宽调制模块、通信接口(如CAN、EtherCAT)等,便于与传感器、功率放大器及上位机连接。
对于控制通道数不多(如5-8通道)、算法复杂度中等(如PID结合多个陷波器)、控制频率在10-50 kHz的磁轴承系统,单颗或多核高性能DSP是常用选择。其瓶颈在于确定的指令执行周期在处理高度并行的多通道任务或极高频控制时可能受限[1]。
2. 现场可编程门阵列
FPGA是一种由用户现场配置的逻辑门阵列。其核心优势在于:
- 极致的并行处理能力:可以构建真正并行的硬件电路,所有控制通道的算法可同时独立执行,处理延迟极低且确定。
- 纳秒级的确定性延时:从信号输入到控制指令输出的整个流水线延时是固定且极短的,通常可控制在1-2个时钟周期内,这对于超高带宽(>5 kHz)或对相位滞后极其敏感的系统至关重要。
- 灵活的I/O与定制逻辑:可直接实现高速ADC/DAC接口、多路PWM生成、定制保护逻辑等,集成度高。
FPGA的缺点是开发难度大,使用硬件描述语言,算法改动相当于修改电路,迭代周期长。它更适用于通道数众多、控制频率极高(可达数百kHz)、或对实时性有苛刻要求的先进磁轴承系统[2]。
3. DSP+FPGA异构架构
在实践中,结合两者优点的异构架构成为主流方案(如图1所示)。典型的任务划分是:
- FPGA作为前端协处理器与I/O引擎:负责所有模拟信号的同步采集与预处理(如数字滤波)、多路高分辨率PWM波的生成、紧急故障保护逻辑(如Watchdog)等对实时性和并行性要求最高的任务。
- DSP作为核心算法处理器:接收FPGA传来的预处理后的传感器数据,运行核心控制算法(如多变量状态反馈、观测器、自适应算法等),并将计算出的控制量发送回FPGA。
这种架构将确定性的高速I/O与灵活的复杂计算分离,既保证了系统的实时性内核,又保持了算法开发的灵活性。
图1 典型的磁轴承数字控制器DSP+FPGA异构架构框图\text{图1 典型的磁轴承数字控制器DSP+FPGA异构架构框图}图1 典型的磁轴承数字控制器DSP+FPGA异构架构框图
(图示:传感器信号 → 信号调理 → ADC(位于或受控于FPGA)→ FPGA(执行高速预处理、保护逻辑) ↔ 高速数据交互 ↔ DSP(执行核心控制算法)→ FPGA(生成PWM)→ 功率放大器。)
7.3.2 控制算法的离散化
离散化的目的是将连续时间的控制器传递函数C(s)C(s)C(s)或状态空间模型,转化为适用于数字计算机执行的差分方程或离散状态空间方程。离散化方法的选择直接影响数字控制器的频率特性、稳定性与连续设计的匹配度。
1. 基本离散化方法
设采样周期为TsT_sTs。连续控制器C(s)C(s)C(s)到离散控制器C(z)C(z)C(z)的常用变换方法有:
- 后向差分法:s=1−z−1Tss = \frac{1 - z^{-1}}{T_s}s=Ts1−z−1。该方法将s左半平面映射到z平面单位圆内的一个圆内,能保持稳定性,但会引入频率畸变,在高频段失真较大。计算简单。
- 双线性变换:s=2Ts1−z−11+z−1s = \frac{2}{T_s} \frac{1 - z^{-1}}{1 + z^{-1}}s=Ts21+z−11−z−1。这是最常用且推荐的方法。它将整个s左半平面映射到z平面单位圆内,保持稳定性,且频率轴存在非线性预畸变关系:ωa=2Tstan(ωdTs2)\omega_a = \frac{2}{T_s} \tan(\frac{\omega_d T_s}{2})ωa=Ts2tan(2ωdT