This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HVPM_Sensored程序问题



请教一下TMDSHVMTRPFCKIT(version2.0)问题!

最近我们这里买了几套TMDSHVMTRPFCKIT套件,我们现在需要控制永磁同步电机,我们现在在研究带传感器的永磁同步电机控制,其中程序中有几点不是很明白。

疑问1、一般永磁同步电机的启动必要条件就是要知道转子初始角。可是在该程序中并没有看到这个控制,我看了pmsm3_1可以加直流电压然后给angle一个角度让转子和A相角度相重合。

疑问2、程序中很多是标幺值的,那这个标幺值的基准值是如何选择的呢,我看在HVPM_Sensored-Settings.h里面有

#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_CURRENT 10 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_TORQUE // Base torque (N.m)
#define BASE_FLUX // Base flux linkage (volt.sec/rad)
#define BASE_FREQ 200 // Base electrical frequency (Hz)

这几句话就是基准值吧,那这个是怎么选的呢,是最大值作为基准值吗?如果是的话,那么转速基准值就是200x60/8=1500(我的电机极对数是8),难道转速最大值才是1500转吗?

疑问3、ADC是如何采集数据的?程序中就看到了宏ADC初始化也有计算,但中断程序里面没有ADC采样啊,就是没有调用ADC_cal,只有这些

clarke1.As = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT1)-offsetA); // Phase A curr.
clarke1.Bs = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT2)-offsetB); // Phase B curr.

这是什么意思呢,难道说转换完了就已经将结果放在AdcResult.ADCRESULT1了吗?

疑问4、程序时如何进行中断的,怎么没有eqep中断呢?

  • 疑问1,通常的做法就是您说的那样,有一个Force Angle。您可以将PMSM3_1这个部分移植过去;

    疑问2,电压和电流、频率基值都是与硬件相关的,都是可以修改的!您可以修改Base_Freq这个值,根据您的电机。

    疑问3,ADC采样完了后,采样结果是在AdcResult.ADCRESULT1中,这个地方是进行了标幺化,然后将偏差减去;

    疑问4,程序ISR是由PWM或者ADC采样触发的,可以设置eqep的中断。