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

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

[复制链接]
6941|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创# 开源分享-基于081的hall-foc控制程序
最近需要一个六步霍尔的FOC程序,恰巧之前做过简单的霍尔处理程序,索性就直接优化了一下拿来用了。程序框架是之前开源的FOC程序,删除了滑膜观测器,同时为了方便后续增加新的编码器,修改了一下工程结构(后面可能还会做其它修改)。相较于之前开源带霍尔的FOC程序的程序,简化了程序结构。
1、硬件平台介绍:
硬件自然还是081的开发板,有需要的同学可以在嘉立创上直接购买。为了信号质量,使用双电阻采样,这里将开发板上电流反馈电阻从20k*2改成了1k*2。
开发板硬件连接如图1-1所示:

图1-1 开发板接线图
2、软件说明:
本软件通过速度插值实现六个角度转成连续角度。同时由于霍尔安装位置造成的误差,为了方便软件处理,需要将某一个霍尔跳变定义为霍尔角度的“零点”,然后通过在“零点”上增加偏置的方式就可以实现精确的角度校准。[1]
为了解决霍尔信号在高速和超高速下,多个中断同时发生引起时序上的问题,程序的结构设计如图2-1:

图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轴正常工作。

图3-1 启动电流波形

图3-2 缓慢加速时电流波形

图3-3 极限电压下的电流波形
图3-4分别是电流(黄)、角度(蓝)和两次PWM中的角度差(绿)的波形。可以看到在处于加速状态时,角度会在每个霍尔跳变的时候被强制更新。

图3-4 角度波形
图3-5是匀速的角度波形。可以看到在处于匀速状态下,角度处于平滑连续的状态。

图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。

图5-1 反电动势以及霍尔信号

hall_foc_testv0.1.zip

125.93 KB

使用特权

评论回复

打赏榜单

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

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

使用特权

评论回复
板凳
weifeng90| | 2022-12-7 07:48 | 只看该作者
这波形看起来不错

使用特权

评论回复
地板
xu@xupt| | 2022-12-7 16:22 | 只看该作者
学习一下

使用特权

评论回复
5
4agr| | 2022-12-14 20:14 | 只看该作者
学习学习

使用特权

评论回复
6
xu@xupt| | 2022-12-18 00:14 | 只看该作者
感谢分享,学习啦

使用特权

评论回复
7
xu@xupt| | 2023-1-6 23:29 | 只看该作者
感谢分享,很有启发的文章

使用特权

评论回复
8
chuanjiadan| | 2023-1-12 15:34 | 只看该作者
角度平滑度不错

使用特权

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

使用特权

评论回复
10
Liaocolson| | 2023-1-13 15:09 | 只看该作者
Angle = a*T + b + Hall_InstallErr
其中,T为经过MCPWM_CNT补偿之后的HALL_CNT;
这段代码我不理解,为啥还要补偿MCPWM_CNT?

使用特权

评论回复
11
東南博士| | 2023-1-20 10:23 | 只看该作者
嘉立创上直接购买吗 谢谢

使用特权

评论回复
12
上下而求索| | 2023-1-31 13:27 | 只看该作者
東南博士 发表于 2023-1-20 10:23
嘉立创上直接购买吗 谢谢

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

使用特权

评论回复
13
yuchl| | 2023-2-3 09:09 | 只看该作者
这波形看起来不错

使用特权

评论回复
14
微信13267226716| | 2023-2-6 13:26 | 只看该作者

角度平滑度不错

使用特权

评论回复
15
奈文摩尔jjj| | 2023-2-8 11:34 | 只看该作者
学习一下

使用特权

评论回复
16
七毛钱| | 2023-2-14 10:42 | 只看该作者
波形相当好,学习学习吧

使用特权

评论回复
17
单片小菜| | 2023-2-16 14:35 | 只看该作者
这个波形基本上没有什么毛刺。

使用特权

评论回复
18
guijial511| | 2023-2-20 19:14 | 只看该作者
这个波形很完美啊,看起来。

使用特权

评论回复
19
便携手到老| | 2023-3-22 12:47 | 只看该作者
这个波形看起来太漂亮了,感谢楼主的分享。

使用特权

评论回复
20
名字是啥样| | 2023-3-22 17:53 | 只看该作者
为什么我跑例程跑不通?

使用特权

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

本版积分规则

8

主题

36

帖子

5

粉丝