FOC开环遇到的问题
首先说下,我在配置好FOC相关模块之后,通电后电机没有启动,电流也没变化,花了半天时间,没有找到相关问题出在哪里,后面接着看吊哥的视频,发现没有在定时器中断里面添加 – Motor1FocControl() ,也就相当于没有开启开启这个模块,看下这具体包含哪些内容
FocConfig.c包含的Motor1FocControl模块
void Motor1FocControl(void)
{
FocContorl(&gMotor1FOC);
}
FOC.c文件中包含的FocContorl 模块
void FocContorl(PFOC_Struct pFOC)
{
//0.获取电气角度
GetElectricalAngle(pFOC);
//1.0电流重构
CurrentReconstruction(pFOC);
//1.1Clarke变换
ClarkeTransform(pFOC);
//1.2Park变换
ParkTransform(pFOC);
//2.做PID闭环
CurrentPIControlID(pFOC);
CurrentPIControlIQ(pFOC);
//设定输出值的时候才会用
pFOC->idPID.out = 0.0;
pFOC->iqPID.out = 1.0;
//3.计算输出值iα i贝塔
ParkAntiTransform(pFOC);
//4.输出SVPWM, 在SVPWM中
pFOC->SvpwmGenerate(pFOC->iαSVPWM,pFOC->iβSVPWM);
}
stm32f3xx_it.c包含的tim中断文件
void TIM1_UP_TIM16_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 0 */
Motor1FocControl();
/* USER CODE END TIM1_UP_TIM16_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 1 */
/* USER CODE END TIM1_UP_TIM16_IRQn 1 */
}