TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-28069M D轴电压检测的问题

您好,用贵公司的LAUNCHXL-28069M开发板加上BOOSTXL-DRV8305做永磁同步电机的控制,在D轴和Q轴电压检测方面遇到了一些问题,描述如下:

1  BOOSTXL-DRV8305带有三相电压检测电路,我在每个控制周期内采集三相电压,通过坐标变换得到D轴和Q轴电压,代码如下

     

     AD_VA = AdcResult.ADCRESULT3;
     AD_VB = AdcResult.ADCRESULT4;
     AD_VC = AdcResult.ADCRESULT5;

     VA = (AD_VA -AD_VA_BIAS)* ADC_VOL_RATIO;
     VB = (AD_VB -AD_VB_BIAS)* ADC_VOL_RATIO;
     VC = (AD_VC -AD_VC_BIAS)* ADC_VOL_RATIO;

      

     VN = (VA+VB+VC)/3.0;
     VAN = VA -VN;
     VBN = VB -VN;
     VCN = VC -VN;

     

     V_Alpha   = VAN ;
     V_Beta     = (VAN + 2 * VBN) * 0.57735;                      // 1 / sqrt(3) = 0.57735

      

     SinElec = sin(eTheta);                                        // eTheta为转子电角度
     CosElec = cos(eTheta);

     VdReal = V_Alpha *CosElec + V_Beta * SinElec;
     VqReal = V_Beta *CosElec – V_Alpha * SinElec ;

   (上电后给电机A相绕组通电,将转子吸引到一个角度,通过EQEP单元读取该角度值作为偏移值,每次电流环控制周期读取转子位置,减去偏移值得到转子机械角度,再乘以极对数得到eTheta)  

      通过上位机检测发现D轴电压似乎不太正确。

      

                                                                     图1    转速响应和D轴电压给定

       采用ID=0的控制方式,电流环使用PI控制器,实际检测D轴电流确实为0。图1蓝色曲线是电机2000rpm转速响应曲线,绿色曲线是电流PI控制器计算出来的D轴电压给定,可以看出,D轴电压给定跟模型是能对上的,在稳态Ud = Rs*Id -w*Lq*Iq,转速越高理应Ud负越多。可是按照上述代码检测到的实际D轴电压不是这样,见图2。

      

                                                                         图2  转速响应和D轴电压检测

      图2中蓝色曲线是电机转速响应,绿色曲线是变换得到的D轴实际电压反馈(忽略纵坐标具体值,看变化趋势),跟给定对不上,跟公式也对不上。

      

                                                              图3 电机转速和Q轴电压给定

      

                                                                          图4   电机转速和Q轴电压反馈

       从图3和图4中可以看出Q轴电压检测好像没问题,至少大体趋势是对的,转速越高,反电动势越高,Q轴电压理应越高。

       PWM采用的SPWM法,代码如下:

     

V_AlphaCtrl  =   VdCtrl * CosElec – VqCtrl * SinElec;
V_BetaCtrl    =   VqCtrl * CosElec + VdCtrl * SinElec;

Va = V_AlphaCtrl  ;
Vb = -0.5 * V_AlphaCtrl  + 0.866 * V_BetaCtrl    ; // 0.8660254 = sqrt(3)/2
Vc = -0.5 * V_AlphaCtrl   – 0.866 * V_BetaCtrl    ; // 0.8660254 = sqrt(3)/2

if ( Va>1 )
{
Va = 1;
}
else if( Va<-1)
{
Va = -1;
}
if ( Vb>1 )
{
Vb = 1;
}
else if( Vb<-1)
{
Vb = -1;
}
if ( Vc>1 )
{
Vc = 1;
}
else if( Vc<-1)
{
Vc = -1;
}

Ta = -0.5*Va + 0.5;
Tb = -0.5*Vb + 0.5;
Tc = -0.5*Vc + 0.5;

PWM_CMP_A= PWM_TBPRD * Ta ;
PWM_CMP_B= PWM_TBPRD * Tb ;
PWM_CMP_C= PWM_TBPRD * Tc ;

EPwm1Regs.CMPA.half.CMPA = PWM_CMP_A;
EPwm2Regs.CMPA.half.CMPA = PWM_CMP_B;
EPwm3Regs.CMPA.half.CMPA = PWM_CMP_C;

      

     可能是什么问题造成上述原因呢?或者是我方法有问题,在这套实验平台上如何检测D轴和Q轴电压呢?有无例程可以参考?已经困扰很久了,望不吝指点,非常感谢!!

     

WEI CHEN19:

回复 Igor An:

谢谢您指明了方向,我再仔细查查,谢谢。

关于电压反馈减去VN,是参考的TI 的DMC库的说明文件Phase Voltage Reconstruction

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-28069M D轴电压检测的问题
分享到: 更多 (0)