黄工无刷电机学习
登录
直播中
张览秀
7年用户
1140经验值
擅长:可编程逻辑 电源/新能源
私信
关注
[问答]
如何去实现一种基于ST的单电阻FOC有感hall算法
开启该帖子的消息推送
STM32
算法
FOC
磁场定向控制是什么?
如何去实现一种基于ST的单电阻FOC有感hall算法?
回帖
(1)
王华梅
2021-9-22 15:00:28
前言
磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩。 PMSM的磁场定向控制框图如下图所示:
第21讲对比分析了基于ST MotorControl Workbench实现的单电阻FOC有感(hall)算法及单电阻FOC无感算法在代码上的具体差异,知道了其核心差异在MC_Task.C文件中对电机转子位置及转速计算上的差异,那么是否将可将无感FOC的代码手动修改成有感(HALL或其它位置传感器)代码呢,答案是肯定的。本节就让我们一起将20讲的无感FOC代码手动修改成19讲有感(HALL)算法,并让电机成功运转起来。
本节同样用到Beyond Compare文件对比分析工具,对第19、20讲的代码进行差异分析。并用Beyond Compare工具快速将第20讲的代码修改成有感(HALL)FOC算法,好了,直接进入主题。
上一讲我们对比分析后发现第19讲的有感FOC算法和第20讲的无感FOC算法在程序代码上的差异主要集中于INC和SRC两个文件夹中,其中inc文件夹中的主要不同集中在drive_parameters.h、main.h、mc_config.h、parameters_conversion.h、pmsm_motor_parameters.h五个文件;Src文件夹中的主要不同集中在main.c、mc_config.c、mc_tasks.c、stm32f1xx_hal_msp.c、stm32f10x_mc_it.c、user_interface.c六个文件中。
直接复制第20讲的工程文件夹,并重命名为Motor22,将其中的文件名也改成Motor22:
用Beyond Compare工具以文件夹比如方式载入motor19和motor20两个文件夹:
以motor19中main.h为模板文件,完成对Motor22中main.h文件的修改:
按照main.h的修改模式,完成mc_config.h、parameters_conversion.h两个文件的修改操作drive_parameters.h和pmsm_motor_parameters.h中一些配置参数在有感(HALL)FOC算法中同样适用,所以这两个文件可以不进行修改即可。
以同样的方式对Src文件夹中的main.c、mc_config.c、mc_tasks.c、stm32f1xx_hal_msp.c、stm32f10x_mc_it.c、user_interface.c进行修改,其中user_interface.c不进行修改亦可:
修改完成后打开KEILL工程文件,将工程目标名改成Motor22(非必需):
直接编译工程,提示一些链接错误:
对于motor19的KEILL工程发现,motor19KEILL工程比motor22KEILL工程多包含了Hall_speed_pos_fdbk.c文件,该文件位置/MCSDK_v5.3.3/MotorControl/MCSDK/MCLib/Any/Src/文件夹中:
手动给motor12KEILL工程增加Hall_speed_pos_fdbk.c文件:
给motor22KEILL工程增加Hall_speed_pos_fdbk.C文件后重新编译,编译成功:
烧录固件到开发板,并启动程序 :
按开发板上的电机启动按键,可以看到电机成功运转:
用MotorControl Workbench工具进行控制与查看波形,功能也正常,电机表机也没有了之前纯无感FOC算法中从正速度切换到负速度时电机易死机问题:
到此,基于ST MCLIB的无感FOC算法代码变有感(hall)FOC算法实验就完成了。也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
前言
磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩。 PMSM的磁场定向控制框图如下图所示:
第21讲对比分析了基于ST MotorControl Workbench实现的单电阻FOC有感(hall)算法及单电阻FOC无感算法在代码上的具体差异,知道了其核心差异在MC_Task.C文件中对电机转子位置及转速计算上的差异,那么是否将可将无感FOC的代码手动修改成有感(HALL或其它位置传感器)代码呢,答案是肯定的。本节就让我们一起将20讲的无感FOC代码手动修改成19讲有感(HALL)算法,并让电机成功运转起来。
本节同样用到Beyond Compare文件对比分析工具,对第19、20讲的代码进行差异分析。并用Beyond Compare工具快速将第20讲的代码修改成有感(HALL)FOC算法,好了,直接进入主题。
上一讲我们对比分析后发现第19讲的有感FOC算法和第20讲的无感FOC算法在程序代码上的差异主要集中于INC和SRC两个文件夹中,其中inc文件夹中的主要不同集中在drive_parameters.h、main.h、mc_config.h、parameters_conversion.h、pmsm_motor_parameters.h五个文件;Src文件夹中的主要不同集中在main.c、mc_config.c、mc_tasks.c、stm32f1xx_hal_msp.c、stm32f10x_mc_it.c、user_interface.c六个文件中。
直接复制第20讲的工程文件夹,并重命名为Motor22,将其中的文件名也改成Motor22:
用Beyond Compare工具以文件夹比如方式载入motor19和motor20两个文件夹:
以motor19中main.h为模板文件,完成对Motor22中main.h文件的修改:
按照main.h的修改模式,完成mc_config.h、parameters_conversion.h两个文件的修改操作drive_parameters.h和pmsm_motor_parameters.h中一些配置参数在有感(HALL)FOC算法中同样适用,所以这两个文件可以不进行修改即可。
以同样的方式对Src文件夹中的main.c、mc_config.c、mc_tasks.c、stm32f1xx_hal_msp.c、stm32f10x_mc_it.c、user_interface.c进行修改,其中user_interface.c不进行修改亦可:
修改完成后打开KEILL工程文件,将工程目标名改成Motor22(非必需):
直接编译工程,提示一些链接错误:
对于motor19的KEILL工程发现,motor19KEILL工程比motor22KEILL工程多包含了Hall_speed_pos_fdbk.c文件,该文件位置/MCSDK_v5.3.3/MotorControl/MCSDK/MCLib/Any/Src/文件夹中:
手动给motor12KEILL工程增加Hall_speed_pos_fdbk.c文件:
给motor22KEILL工程增加Hall_speed_pos_fdbk.C文件后重新编译,编译成功:
烧录固件到开发板,并启动程序 :
按开发板上的电机启动按键,可以看到电机成功运转:
用MotorControl Workbench工具进行控制与查看波形,功能也正常,电机表机也没有了之前纯无感FOC算法中从正速度切换到负速度时电机易死机问题:
到此,基于ST MCLIB的无感FOC算法代码变有感(hall)FOC算法实验就完成了。也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
算法
FOC
如何对
FOC
算法
进行simulink仿真呢
2021-11-19
1731
怎样使用
ST
FOC
电机
去
控制同步电角度
2021-09-24
2051
如何
去
实现
一种
方波控制
算法
2021-08-10
1084
FOC
有感
中,通过
HALL
只能获取0,60°,等6个角度信息,那0-60度区间的角度信息要怎么计算呢
2019-09-12
5011
FOC
SDK+
HALL
不在TIMx上
2018-11-23
2599
怎样
去
设计
一种
正弦波部分的
FOC
2.0开发板的硬件电路?
2021-07-27
974
如何
去
实现
一种
错误控制编码的
算法
?
2021-06-21
1539
如何
实现
FOC
算法
?
2022-02-23
1533
如何利用
ST
MCSDK
去
实现
直流无刷电机控制?
2021-07-19
2529
如何
去
实现
一种
基于stateflow图形化编程的控制
算法
?
2021-07-21
1125
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分