我们在调试foc的时候,在学习闭环之前,往往先要进行电机开环旋转,以验证SVPWM算法的正确性。那么常说的开环旋转是什么意思呢?
首先就要先看下电流闭环的情况
电流环就是通过采样电机三相电流,进行clarke变换和park变换后,变成Id和Iq,然后和给定的目标Id_ref和Iq_ref进行比较,通过PI计算后得到Vd和Vq。
到这一步就是闭环做的事,后面再进行的反park变换和SVPWM计算,这两个过程是闭环和开环都会做的事。
也就是说,开环做的事就是下面这个红框范围的事情。
这里需要注意这个theta角。这个角度的来源就决定了开环也可以分成两种,下面来介绍。
1.角度自加
这里的角度自加,就是自己定义一个θ变量,这个变量值在中断中执行自加,以模拟电机自转过程。然后将这个θ送给反park变换,再进行后面的SVPWM计算。具体实现如下参考:
/**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
*/
void TIM6_DAC_IRQHandler(void)
{
/* USER CODE BEGIN TIM6_DAC_IRQn 0 */
TIM6->SR &= ~0x01;//清中断标志
Angle_To_Cos_Sin(theta_test,&transf_cos_sin_test);//正余弦计算
Park_Inverse(0,2,transf_cos_sin_test,&Voltage_alpha_beta_test.Valpha,&Voltage_alpha_beta_test.Vbeta);//反park变换
SVPWM_Calc(Voltage_alpha_beta_test,Ud,16800);//SVPWM计算
theta_test += 0.01745329f;//角度累加
if(theta_test > D_PI) //D_PI即2*π
theta_test -= D_PI;//一圈归零
/* USER CODE END TIM6_DAC_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
/* USER CODE BEGIN TIM6_DAC_IRQn 1 */
/* USER CODE END TIM6_DAC_IRQn 1 */
}
在这个中断中完成这一系列操作,电机如果可以正常旋转,则说明SVPWM算法设计正常。
1.1简单说明
//反park变换
void Park_Inverse(float vd,float vq,TRANSF_COS_SIN_DEF transf_cos_sin_def,float *valpha,float *vbeta)
{
*valpha = vd*transf_cos_sin_def.Cos-vq*transf_cos_sin_def.Sin;
*vbeta = vd*transf_cos_sin_def.Sin+vq*transf_cos_sin_def.Cos;
//SendFloatWave(vd,vq,theta);
//SendFloatWave(*valpha,*vbeta,theta);
}
这个反park变换中的前两个参数: vd和vq就是上图开环过程中的输入反park变换模块的vd和vq。其中vd直接给0,vq从较小值开始给,若电机不转则慢慢增大该值。(算法部分暂时不做介绍)
1.角度通过编码器获取
如果电机接有编码器,则θ角度的值可以直接由编码器获取,而不需要在中断中进行累加。
void foc_algorithm_step(void)
{
Angle_To_Cos_Sin(ENC_Get_Electrical_Angle()-encoder_offset,&Transf_Cos_Sin);//读取编码器角度的函数执行花费时间较多
/*PID Control Part*/
// Current_PID_Calc(ID_REF,Current_Idq.Id,&Voltage_DQ.Vd,&Current_D_PID);//开环测试,需将这里屏蔽,闭环测试需要将这里打开
// Current_PID_Calc(IQ_REF,Current_Idq.Iq,&Voltage_DQ.Vq,&Current_Q_PID);
Park_Inverse(0,1,Transf_Cos_Sin,&Voltage_Alpha_Beta.Valpha,&Voltage_Alpha_Beta.Vbeta);//开环转测试
SVPWM_Calc(Voltage_Alpha_Beta,Ud,16800);
}
计算步骤和方法1中是一致的,只是角度的获取方式变了而已。文章来源:https://www.toymoban.com/news/detail-502954.html
上面说的两种情况就是在foc调试时需要经过的开环调试的步骤,记录自己在调试foc过程中遇到的困扰。文章来源地址https://www.toymoban.com/news/detail-502954.html
到了这里,关于FOC专题--什么是开环转?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!