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

offsetA是怎么计算的

28035电机套件中有offset的补偿程序

offsetA= K1*offsetA + K2*(AdcMirror.ADCRESULT1)*0.00024414;        //Phase A offset
offsetB= K1*offsetB + K2*(AdcMirror.ADCRESULT2)*0.00024414;      //Phase B offset
offsetC= K1*offsetC + K2*(AdcMirror.ADCRESULT3)*0.00024414;     //Phase C offset

运行时显示的是offsetA=0.5,我想问一下这个0.5是怎么计算得到的,为什么我把这段程序移植到别的地方,offsetA=0

Susan Yang:请您参考下面帖子的回复

e2echina.ti.com/…/120682

offsetA= _IQmpy(K1,offsetA)+_IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT1)); 可以按照低通滤波来理解,K1, K2是一阶低通滤波的两个系数,这个滤波器的带宽被设计的很低,来让进入主中断前采到的通道偏置稳定。

另外,ADC模块是一直在执行的,也就是说,不管进不进主中断,ADCRESULT寄存器的值都是在不断刷新的。

计算电压的offset,可以参考TI motorware InstaSpin FOC 算法对电压offset的处理。

思路是,在电机运转前,三相先发50%占空比pwm,这样,U/V/W三相输出电压约为 母线电压的一半,将这个值采进来作为电压offset,之后的电机运行中一直用这个值作为电压offset。

在线电压offset检测,比较难高精度实现,可以考虑近似的用母线电压一半作为在线的电压offset值来用。

赞(0)
未经允许不得转载:TI中文支持网 » offsetA是怎么计算的
分享到: 更多 (0)