FOC软件中要处理的问题
1. 电流采样时间及通道
FOC需要通过采集相电流来进行控制,采样时间及通道极为关键,在二或三电阻采样方案中,采用如下方式:
在1、6扇区,B、C为采样通道;
在2、3扇区,A、C为采样通道;
在4、5扇区,A、B为采样通道;
要在下臂导通时间内进行采样,在PWM定时器工作在中心对齐模式下,最佳采样点为PWM定时器过零点,详细分析见FOC中的电流采样
2. 数据处理
FOC算法中涉及到很多运算,为了加快运算或者使用不支持浮点运算的处理器,通常用Q格式标定来把浮点数转换为定点数进行计算
${X_Q} = X*{2^Q}$
${X_Q}$为转换后的定点值
$X$为待转换的浮点数
Q表示小数点所在位置,如12,则表示小数点在第12位
运算法则:
加法:${X_Q} + {X_Q} = {X_Q}$
乘法:${X_Q}*{X_N} = {X_{Q + N}}$
在乘法运算中,为了保证运算结果为同一格式数据,通常将运算结果左移一位再取高16位,如:C=A*B,A、B、C为${X_{15}}$格式,则C=((A*B)<<1)>>16
3. 正余弦运算
在坐标变换中,要用到正余弦运算,而坐标变换是FOC算法的主干部分,FOC算法通常运行于中断中,因此运算速度要足够快。为了保证速度,采用查表法
4. 无感FOC的位置和速度估计
最常用的是滑模估计和PLL估计
5. PWM频率选择更新重复频率
使用stm32 设计的过程中,软件设计为TIM1的通道4触发ADC电流采样,在ADC中断中运行FOC算法。电流采样选择三电阻采样,在TIM1溢出后ADC转换触发要晚(DT+TN-TS)/2,考虑AD转换需要的时间,在最坏情况下,FOC算法是在TIM1计数器溢出之后5us才开始执行。FOC算法执行时间大约20us,在无传感模式下,为了在下个更新事件之前完成新占空比设置,必须保证最小占空比大约为(5+20)us,即能达到的最大FOC执行频率大约是20kHz,此时重复计数器可设定为1.对于高于20kHz的PWM频率,重复计数器必须设定为3