Simulink 自动代码生成电机控制:基于霍尔FOC模型和代码生成

目录

霍尔角度估算原理

霍尔角度估算FOC模型和仿真

代码生成软件调试

总结


霍尔角度估算原理

PMSM在定子侧以互差120°电角度的位置安装3个霍尔元件Ha, Hb, Hc。当转子转动时,霍尔元件会产生3个相位差120°电角度的高低电平信号。霍尔信号会将一个电周期划分为6个扇区,每个扇区60°电角度,通过单片机的定时器捕获可以获得每个扇区运行的时间t。 为了获得准确的转子角度,电机绕组A相接电源正极,BC两相接电源负极,定子磁场与转子磁场相互作用,最终定位到转子零位点,也就是A相绕组的轴线位置。确定零位点后,根据霍尔的信号顺序,可以得到霍尔信号与转子位置的对应关系,如下表所示:

扇区

霍尔ABC状态

基准角度

扇区范围

1

001

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个位置,角速度可计算:

 wi代表当前的角速度,可以通过霍尔中断计算得到6个位置的角速度。平均加速度法假设在每个扇区内角加速度不变,并且扇区切换时角加速度不突变。角加速度a如下:

 

 实时角速度可以计算:

 电角度可以表示为:

 

 

霍尔角度估算FOC模型和仿真

根据以上的计算原理,搭建仿真模型:

Hall模型的构建需要搭建Hall信号,模拟MCU的定时计数器模块,Hall中断,ADC中断。

 通过模拟MCU的计数器仿真实际硬件的计时方式,这里可以调整计数频率和实际MCU匹配,也可以通过改生成后代码的参数。计数值的计数频率就是模型的仿真步长,在实际硬件中如果时间换算不正确可能会引起转速估算不对。角度估算模块如下:

系统仿真效果:

估算角度和实际角度

 速度环控制

 

代码生成软件调试

通过MCU定时器2的中断,读取霍尔引脚电平,得到电机扇区,并读取到定时器5进入霍尔中断时的计数值传入模型生成的代码接口。

 

Demo板的电机接线和霍尔序列对应的角度顺序如下,不同的电机顺序可能不一样,接线顺序不一样Hall扇区也会不一样,MCU不一样计数器的频率也有可能不一样,需要针对实际的硬件和MCU底层合理调整。除此之外,还有补偿角度也有可能不一样。

 

 如下图,手拨动电机转动,如果角度超前或者滞后就可调整Hall_AngleShift参数,使其和编码器的角度(这里编码器等于真实角)保持一致,也可以通过无感跑起来后在线调整。也可以通过恒定负载微调使相电流减小找到最合适的值。

总结

从仿真效果和实际运行效果可以看出,霍尔在速度极低的时候角度估算误差是挺大的,这也是目前霍尔FOC面临的难题。本实例通过Simulink建模模拟Hall信号和 MCU定时器,实现了霍尔FOC电机控制测试系统的构建,并生成代码在开发板上运行。

物联沃分享整理
物联沃-IOTWORD物联网 » Simulink 自动代码生成电机控制:基于霍尔FOC模型和代码生成

发表评论