您可能知道,对于电机控制,三个相电流和位置在一个瞬间首先使用ADC进行采样。
采样信号首先用于Park变换以获得I_d / I_q,并进行电流调节以产生电压命令Ud / Uq。
Ud / Uq与位置信号一起用于逆Park变换。
由于
FPGA的性质,Ud / Uq计算需要几个周期才能用于逆Park变换。
但是,逆Park变换可以直接使用该位置,因为此信号没有处理。
但是必须使用与相位电流相对应的Ud / Uq,该相电流与位置信号相同。
我知道我可以在位置信号上手动添加一些延迟,以弥补位置和Ud / Uq信号之间的时间差。
但是,我不认为这可能是一般方式。
我想知道是否有一些通用的方法来同步信号。
目前使用FPGA进行电机控制或其他应用的做法是什么。
BTY,我正在使用Kintex和Simulink以及System Generator for DSP。
提前感谢您的帮助。
以上来自于谷歌翻译
以下为原文
As you may know, for motor control, three phase currents and posi
tion first sampled with ADC at one time instant. The sampled signals are first used to in Park Transform to get the I_d/I_q, and do the current regulation to generate voltage commands Ud/Uq. The Ud/Uq together with the position signal are used in the inverse Park Transform.
Due to the FPGA nature, it takes several cycles for the Ud/Uq calculation before they can be used for inverse Park Transform. However, the inverse Park Transform can use the position directly as there is no processing on this signal. But it is necessary to use the Ud/Uq corresponding to the phase currents which are sampled at the same as the position signal.
I know I can add some delays manually on the position signal to make up the time difference among the position and Ud/Uq signals. However, I don't think this could be a general way. I am wondering whether there are some general ways to synchronize the signals. What are the current practices in using FPGA for motor control or other applications.
BTY, I am using Kintex with Simulink and System Generator for DSP.
Thank you in advance for your kind help.