“高频注入”初探

“高频注入”(HFI,High Frequency Injection)在永磁同步电机离线参数辨识以及低速运行的应用较为广泛。TI的InstaSPIN-FOC对HFI进行了一些介绍,其采用的是脉振高频电压注入,如下图所示。 
对于注入频率的选取,其在Projects and Labs User’s Guide中有如下描述,不难发现,所注入的频率是freq_pwm/2k,

(k=1,2……)。 对于注入频率的选取,其在Projects and Labs User’s Guide中有如下描述,不难发现,所注入的频率是freq_pwm/2k,(k=1,2……)。 

 

由PWM触发的中断服务函数中的相关代码如下,采用HFI时,为d轴电压设置偏置。

// run IPD-HFI
if(IPD_HFI_isEnabled(ipdHandle))
{
  // run the IPD algorithm
  IPD_HFI_run(ipdHandle,&Iab_pu);

  // set the Vdq bias
  Vdq_offset_pu.value[0] = HPD_HFI_getVdValue(ipdHandle);
  Vdq_offset_pu.value[1] = _IQ(0.0);

  // get the reference angle and frequency values
  angle_pu = IPD_HFI_getAngle_pu(ipdHandle);
  speed_pu = IPD_HFI_getSpeed_lp_pu(ipdHandle);
}
else
{
  // zero the Vdq bias
  Vdq_offset_pu.value[0] = _IQ(0.0);
  Vdq_offset_pu.value[1] = _IQ(0.0);

  // get the estimator angle and frequency values
  angle_pu = EST_getAngle_pu(estHandle);
  speed_pu = EST_getFm_pu(estHandle);
}

// run IPD-HFI
if(IPD_HFI_isEnabled(ipdHandle))
{
  // run the IPD algorithm
  IPD_HFI_run(ipdHandle,&Iab_pu);

  // set the Vdq bias
  Vdq_offset_pu.value[0] = HPD_HFI_getVdValue(ipdHandle);
  Vdq_offset_pu.value[1] = _IQ(0.0);

  // get the reference angle and frequency values
  angle_pu = IPD_HFI_getAngle_pu(ipdHandle);
  speed_pu = IPD_HFI_getSpeed_lp_pu(ipdHandle);
}
else
{
  // zero the Vdq bias
  Vdq_offset_pu.value[0] = _IQ(0.0);
  Vdq_offset_pu.value[1] = _IQ(0.0);

  // get the estimator angle and frequency values
  angle_pu = EST_getAngle_pu(estHandle);
  speed_pu = EST_getFm_pu(estHandle);
}
--------------------- 

在控制器的相关函数中,将前述d轴电压的偏置叠加到d轴电压上,用以计算PWM的占空比。

// add voltage offsets

CTRL_addVdq_offset(handle);

笔者发现在很多关于HFI的论文中,PWM频率并不是注入频率的倍数关系,觉得很奇怪,这是怎么做到的?着实有点想不通。

--------------------- 
作者:Ronnie_Hu 
来源:CSDN 
原文:https://blog.csdn.net/ronnie_hu/article/details/71698187 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(“高频注入”初探)