STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法

原文:STM32 电机教程 22 - 基于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算法实验就完成了。也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

 

文中源码及资料下载,关注十三公众号:

在公众号里给十三发送 “下载|STM32 电机教程 22” :

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值