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电机控制测试系统的构建,并生成代码在开发板上运行。

模型链接:https://item.taobao.com/item.htm?id=711066730185&spm=a1z10.1-c.w4004-13354255027.23.41292a1f58UIQV​​​​​​​

  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡洛斯伊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值