【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
一、相关参数
1. 01Hz:用来表示转速,在速度模式和用户界面层使用,单位dHz,0.1Hz = 0.1 RPS
则有 1 [dHz] = 0.1 [Hz] = 0.1 [rps]
(直接记住dhz就是0.1每秒弧度就OK)
2. dpp:表示每个FOC周期内转子角度变化量(s16degree)角度值做积分即是转子电角度
跟高中数学一样,当时是把360度化成2pi*系数,现在dpp是把360度化成 系数/65535*2pi
用来表示一个FOC执行周期(中断间隔)变化了多少个s16(65535max)系数。
其实很简单吧
由于(1)RPS和01Hz存在以下关系
可以推导出dpp和01Hz的关系
(3)霍尔测速方法回顾
我们利用的是输入捕获中断取计数值的方法来进行平均值估计,
首先,我们需要设定一个定时器计数频率作为计数值累加的基础
其次,我们利用输入捕获中断在每次霍尔出现边沿时,取得本次计数值并清零。
这样,我们就可以通过多次采样求出霍尔频率在时间域的加权平均值。
在进行控制时,我们常直接用霍尔频率为计算量
二、补偿法解决安装误差
在六步方波控制中,我们使用的是离散换相逻辑,换相直接与霍尔信号绑定,所以不需要考虑中断周期的延迟问题。
在FOC中,SDK库不仅需要把霍尔频率算出来,还需要让它与FOC控制周期(中断周期)相关联
计算公式如下:
换算为dpp格式为
因为FOC频率比霍尔信号要高很多(通常设定为PWM周期),所以实际应用中sensorspeed无法被准确测出来。
所以我们常采用补偿法进行霍尔频率估计
我们从时序上分析,如果FOC频率过高,偏差时如何产生的
比如上图这种情况,第一次虚线霍尔信号为60度,到第二次虚线时,其实电角度已经是120了 ,但是我们并没有采样出霍尔信号的变化
对于这种问题的补偿法,给出以下公式:
补偿霍尔频率 = FOC测出电角度 - 采样测出电角度 / (FOC频率/速度采样频率)
反馈霍尔频率 = 定时器捕获出的霍尔频率 + 补偿频率
推导过程过于复杂且与工程实践没有密切联系,大家只需要记得在FOC时进行霍尔安装误差校准即可