发新帖本帖赏金 100.00元(功能说明)我要提问
123下一页
返回列表
[工业控制]

开源分享-基于081的hall-foc控制程序

[复制链接]
8812|52
手机看帖
扫描二维码
随时随地手机跟帖
爱装大神的小白|  楼主 | 2022-12-4 17:19 | 显示全部楼层 |阅读模式
#申请原创# 开源分享-基于081的hall-foc控制程序
最近需要一个六步霍尔的FOC程序,恰巧之前做过简单的霍尔处理程序,索性就直接优化了一下拿来用了。程序框架是之前开源的FOC程序,删除了滑膜观测器,同时为了方便后续增加新的编码器,修改了一下工程结构(后面可能还会做其它修改)。相较于之前开源带霍尔的FOC程序的程序,简化了程序结构。
1、硬件平台介绍:
硬件自然还是081的开发板,有需要的同学可以在嘉立创上直接购买。为了信号质量,使用双电阻采样,这里将开发板上电流反馈电阻从20k*2改成了1k*2。
开发板硬件连接如图1-1所示:
1d6f4cea0079bfa7c6266183f0775ff5
图1-1 开发板接线图
2、软件说明:
本软件通过速度插值实现六个角度转成连续角度。同时由于霍尔安装位置造成的误差,为了方便软件处理,需要将某一个霍尔跳变定义为霍尔角度的“零点”,然后通过在“零点”上增加偏置的方式就可以实现精确的角度校准。[1]
为了解决霍尔信号在高速和超高速下,多个中断同时发生引起时序上的问题,程序的结构设计如图2-1:
47f6881fd40c101329b77e15d7676842
图2-1 软件结构
对霍尔缓冲区处理是依靠一个被打断后自动重读的程序实现的,如果在读霍尔缓冲区数据的过程中,霍尔信号发生了变化,这时会优先响应霍尔中断,并在霍尔缓冲区读取结束后,重新从霍尔中断中读取数据。以保证在任意频率的转速下,都可以获得多个准确的数据。
关于霍尔角度计算,为了提高精度并且减少软件以来,角度以HALL_CNT为基础,结合MCPWM_CNT避免程序执行时间引起的误差。角度计算公式如下:
Angle = a*T + b + Hall_InstallErr
其中,T为经过MCPWM_CNT补偿之后的HALL_CNT;a是通过HALL_WIDTH计算得到的速度;b是在霍尔变化时记录的霍尔角度,在霍尔变化时,T会从零开始计时;是安装误差,如果需要正反转,由于开关霍尔纯在迟滞[2],正转安装误差和反转安装误差应该设置成不一样的值。
上述程序只能实现电机在匀速运行下的角度平滑处理,在加减速以及电机禁止的情况下,a会产生较为明显的波动,为了保证角度的误差在合理范围,在正常运行和霍尔跳变时,都会做误差限幅的处理,在电机静止时,直接用过查表的到当前霍尔的理论角度,不再计算连续的电角度,也就是在低速的时候,a为0。
实际运行效果:
电机不加负载,通过电流环跑到最大转速后进入极限电压输出状态。图3-1是启动电流波形;图3-2是缓慢加速的电流波形;图3-3是进入极限电压之后的电流波形,此时电流环Q轴输出电压饱和,D轴正常工作。
3e6ebfbe19cb3420110c3ce944f6d6bb
图3-1 启动电流波形
485cc6f97ff117bae01ff1adb126100c
图3-2 缓慢加速时电流波形
f4bede951bc0ee4d2cb2ded786568d94
图3-3 极限电压下的电流波形
图3-4分别是电流(黄)、角度(蓝)和两次PWM中的角度差(绿)的波形。可以看到在处于加速状态时,角度会在每个霍尔跳变的时候被强制更新。
f0f46dd2b0f6899e4191b69a776f619a
图3-4 角度波形
图3-5是匀速的角度波形。可以看到在处于匀速状态下,角度处于平滑连续的状态。
5fd4466dc91c10d5393b6ff0ee5be4ae
图3-5 匀速的角度波形
4、参考文献
[1]张彬,李震,李垣江,魏海峰,张懿. 开关霍尔安装相位偏差对PMSM性能影响实验研究[J]. 电子测量技术,2022,45(01):8-14.
[2]张逸,章企,陆申龙. 集成开关型霍尔传感器的特性测量和应用[J]. 大学物理实验,2000,(02):1-4.
5、附件说明
测试用的程序见附件,如果需要编译该工程,测试环境为Keil5.36。注意:测试工程中存在一些没用使用的局部或全局变量、部分结构不合理以及没有说明文档的问题。
仅保证是用该程序抓出来的这些波形。如果有需要,请关注后续更新。
测试用到的电机霍尔波形如图5-1所示。其中黄绿蓝对应UVW,紫色对应H_A。
41ba489f5c60fe6ded37c7023fa6ee6a
图5-1 反电动势以及霍尔信号

hall_foc_testv0.1.zip

125.93 KB

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 100.00 元 2022-12-06
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2022-12-6 18:18 回复TA
通过优秀的软件设计,将六霍尔的FOC控制电机完整实现,关键技术解读细致,完成效果较好,优秀的电机控制实操,非常期待后续更新 
谢谢楼主的分享,学习一下

使用特权

评论回复
weifeng90| | 2022-12-7 07:48 | 显示全部楼层
这波形看起来不错

使用特权

评论回复
xu@xupt| | 2022-12-7 16:22 | 显示全部楼层
学习一下

使用特权

评论回复
4agr| | 2022-12-14 20:14 | 显示全部楼层
学习学习

使用特权

评论回复
xu@xupt| | 2022-12-18 00:14 | 显示全部楼层
感谢分享,学习啦

使用特权

评论回复
xu@xupt| | 2023-1-6 23:29 | 显示全部楼层
感谢分享,很有启发的文章

使用特权

评论回复
chuanjiadan| | 2023-1-12 15:34 | 显示全部楼层
角度平滑度不错

使用特权

评论回复
Liaocolson| | 2023-1-12 21:01 | 显示全部楼层
没用过lks的芯片,代码中的hall中断函数中的这几行代码是啥意思啊,直接给寄存器HALL->INFO 赋值BIT16是什么操作,是将第16位置位的意思吗?
        HALL->INFO = BIT16;
        width = (s32)HALL->WIDTH;
        state = HALL->INFO & 7;

使用特权

评论回复
Liaocolson| | 2023-1-13 15:09 | 显示全部楼层
Angle = a*T + b + Hall_InstallErr
其中,T为经过MCPWM_CNT补偿之后的HALL_CNT;
这段代码我不理解,为啥还要补偿MCPWM_CNT?

使用特权

评论回复
東南博士| | 2023-1-20 10:23 | 显示全部楼层
嘉立创上直接购买吗 谢谢

使用特权

评论回复
上下而求索| | 2023-1-31 13:27 | 显示全部楼层
東南博士 发表于 2023-1-20 10:23
嘉立创上直接购买吗 谢谢

可以的,立创商城上有对应的型号

使用特权

评论回复
yuchl| | 2023-2-3 09:09 | 显示全部楼层
这波形看起来不错

使用特权

评论回复

角度平滑度不错

使用特权

评论回复
奈文摩尔jjj| | 2023-2-8 11:34 | 显示全部楼层
学习一下

使用特权

评论回复
七毛钱| | 2023-2-14 10:42 | 显示全部楼层
波形相当好,学习学习吧

使用特权

评论回复
单片小菜| | 2023-2-16 14:35 | 显示全部楼层
这个波形基本上没有什么毛刺。

使用特权

评论回复
guijial511| | 2023-2-20 19:14 | 显示全部楼层
这个波形很完美啊,看起来。

使用特权

评论回复
便携手到老| | 2023-3-22 12:47 | 显示全部楼层
这个波形看起来太漂亮了,感谢楼主的分享。

使用特权

评论回复
名字是啥样| | 2023-3-22 17:53 | 显示全部楼层
为什么我跑例程跑不通?

使用特权

评论回复
发新帖 本帖赏金 100.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

36

帖子

5

粉丝