电控算法-反电动势过零点出现在MOS关断的时候怎么办?

当电机控制中采用PWM策略且占空比非满时,可能出现反电动势检测不连续的问题。NXP电控开发笔记提出一种线性插值方法,通过测量两点反电动势并进行三角形近似计算,来估算过零点时间,从而解决在MOS管关断时无法检测反电动势的状况。算法实现涉及特定的库函数和更新计时器设置。
摘要由CSDN通过智能技术生成

前面

这个问题来自于一个私信(ID:学到老&活到老)

总结来说:就是占空比非满,使用PWM策略进行调制时,检测到另一相的反电动势是非连续的,如果这个时候过零点正好出现在MOS管关断的时候,岂不是检测不到这个时候的反电动势了?

解决办法原理

这个办法来自于NXP电控开发笔记

用一句话来讲的话,嗯,其实就是线性插值

通过测量两个点的反电动势,通过插值的办法,近似找到过零点。

如上图,Tzc就是过零点,但刚好在MOS关断的时候,没办法测量到这时候的反电动势。

假设这个时候电机匀速转动,没有出现加速或者减速的情况。

我们就可以通过测量在Tadc时刻的反电动势值et,以及上一次测量的反电动势值e(t-1)

按照以下公式计算:

用的三角形近似,求得Tzc。

算法实现

if(bemfVoltage >= 0)
{
	/* Rising interpolation */
	delta = bemfVoltage - bemfVoltageOld;
	if((driveStatus.B.AdcSaved == 1) && (delta > bemfVoltage))
	{
		timeBackEmf -= MLIB_Mul(MLIB_Div(bemfVoltage, delta), MLIB_Sub(timeBackEmf, timeOldBackEmf));
	}
	else
	{
		timeBackEmf -= (MLIB_Div(MLIB_Sub(timeBackEmf, timeOldBackEmf), 2));
	}
	lastTimeZC = timeZC;
	timeZC = (uint16_t)timeBackEmf;
	// periodZC = (timeZC - lasTimeZC) + ftm_mod_old(no timer reset)
	periodZC[ActualCmtSector] = (ftm_mod_old - lastTimeZC) + timeZC;
	// Average of the previous and current ZC period
	actualPeriodZC = (actualPeriodZC + periodZC[ActualCmtSector]) >> 1;
	// advancedAngle(0.3815) = 0.5 * Advanced Angle(0.763)
	NextCmtPeriod = MLIB_Mul_F16(actualPeriodZC, advanceAngle);
	// Update commutation period -> FTM0_MOD = timeZC + nextCmtPeriod
	FTM_DRV_CounterStop(INST_FLEXTIMER_MC0);
	FTM_DRV_SetModuloCounterValue(INST_FLEXTIMER_MC0, timeZC + NextCmtPeriod, true);
	FTM_DRV_CounterStart(INST_FLEXTIMER_MC0);
	driveStatus.B.NewZC = 1;
}

公式1就是具体的插值算法实现,使用了NXP内置的一些工具函数库。

if((driveStatus.B.AdcSaved == 1) && (delta > bemfVoltage))
	{
		timeBackEmf -= MLIB_Mul(MLIB_Div(bemfVoltage, delta), MLIB_Sub(timeBackEmf, timeOldBackEmf));//公式1
	}
	else
	{
		timeBackEmf -= (MLIB_Div(MLIB_Sub(timeBackEmf, timeOldBackEmf), 2));
	}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值