EE学生一枚
从系统架构角度给个思路。FPGA做多电机FOC,建议采用‘集中计算,并行输出’的混合架构。像Clark、Park、反Park、SVPWM这些确定性算法模块,可以实例化多份,每个电机独占一份,这是最直接的并行,资源消耗大但延迟最低。而速度环PID这种计算量相对小、更新频率低的,可以用一个高性能的软核处理器(比如NIOS II)来跑,通过中断或定时查询方式顺序处理各个电机的速度环。数据流设计上,要明确划分流水线阶段:1. 同步采样阶段:触发所有ADC,读取多路电流、电压。2. 并行处理阶段:各电机数据进入自己的FOC算法流水线。3. 输出更新阶段:同时更新所有PWM比较寄存器的值。确保采样到PWM更新的延迟固定,这样环路才稳定。时钟域就两个足够了:一个高速系统时钟(比如100MHz)用于所有数字逻辑和DSP计算;一个ADC采样时钟(由其衍生)。稳定性方面,重点监控PWM更新时刻与ADC采样时刻的关系,避免开关噪声。可以参考Xilinx或Intel的电机控制IP核架构,虽然不一定是多路的,但数据通路设计很有参考价值。
