目录
霍尔角度估算原理
霍尔角度估算FOC模型和仿真
代码生成软件调试
总结
霍尔角度估算原理
PMSM在定子侧以互差120°电角度的位置安装3个霍尔元件Ha, Hb, Hc。当转子转动时,霍尔元件会产生3个相位差120°电角度的高低电平信号。霍尔信号会将一个电周期划分为6个扇区,每个扇区60°电角度,通过单片机的定时器捕获可以获得每个扇区运行的时间t。 为了获得准确的转子角度,电机绕组A相接电源正极,BC两相接电源负极,定子磁场与转子磁场相互作用,最终定位到转子零位点,也就是A相绕组的轴线位置。确定零位点后,根据霍尔的信号顺序,可以得到霍尔信号与转子位置的对应关系,如下表所示:
扇区 | 霍尔ABC状态 | 基准角度 | 扇区范围 |
1 | 001 | 0° | 0°~60° |
2 | 011 | 60° | 60°~120° |
3 | 010 | 120° | 120°~180° |
4 | 110 | 180° | 180°~240° |
5 | 100 | 240° | 240°~300° |
6 | 101 | 300° | 300°~0° |
从上表可知,通过6个位置的霍尔,只能得到6个准确的位置角度,而FOC控制需要的角度是0°~360°(0-2π). 就需要采用一定的手段把6个位置拟合成连续的位置。
这里采用平均加速度法通过6个位置点估算出电机的角度。平均加速度法中假设电机的机械时间常数远大于电气时间常数,认为每个扇区内速度恒定不变,并且忽略从上一扇区到下一扇区的速度突变。原理如下:
通过MCU中断可以捕获霍尔的6个位置,角速度可计算:
代表当前的角速度,可以通过霍尔中断计算得到6个位置的角速度。平均加速度法假设在每个扇区内角加速度不变,并且扇区切换时角加速度不突变。角加速度如下:
实时角速度可以计算:
电角度可以表示为:
霍尔角度估算FOC模型和仿真
根据以上的计算原理,搭建仿真模型:
Hall模型的构建需要搭建Hall信号,模拟MCU的定时计数器模块,Hall中断,ADC中断。
通过模拟MCU的计数器仿真实际硬件的计时方式,这里可以调整计数频率和实际MCU匹配,也可以通过改生成后代码的参数。计数值的计数频率就是模型的仿真步长,在实际硬件中如果时间换算不正确可能会引起转速估算不对。角度估算模块如下:
系统仿真效果:
估算角度和实际角度
速度环控制
代码生成软件调试
通过MCU定时器2的中断,读取霍尔引脚电平,得到电机扇区,并读取到定时器5进入霍尔中断时的计数值传入模型生成的代码接口。
Demo板的电机接线和霍尔序列对应的角度顺序如下,不同的电机顺序可能不一样,接线顺序不一样Hall扇区也会不一样,MCU不一样计数器的频率也有可能不一样,需要针对实际的硬件和MCU底层合理调整。除此之外,还有补偿角度也有可能不一样。
如下图,手拨动电机转动,如果角度超前或者滞后就可调整Hall_AngleShift参数,使其和编码器的角度(这里编码器等于真实角)保持一致,也可以通过无感跑起来后在线调整。也可以通过恒定负载微调使相电流减小找到最合适的值。
总结
从仿真效果和实际运行效果可以看出,霍尔在速度极低的时候角度估算误差是挺大的,这也是目前霍尔FOC面临的难题。本实例通过Simulink建模模拟Hall信号和 MCU定时器,实现了霍尔FOC电机控制测试系统的构建,并生成代码在开发板上运行。