前言

磁场定向控制又称矢量控制(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” :

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

  1. STM32 电机教程 21 - 基于ST MCLIB无感FOC 与 有感FOC 代码差异分析

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 第19.20讲分别实现了基于N ...

  2. STM32 电机教程 32 - 基于ST X-CUBE-SPN7 无刷无感电机库的电机驱动实现

    前言 上一节给大家分享几篇比较好的介绍无刷电机无传感控制的文章,不知大家学习得怎么样,其实很多芯片公司(比如TI,ST,MICROCHIP,SILICON)都有推出针对他们家控制或驱动芯片的无感无刷电 ...

  3. STM32 电机教程 20 - 基于ST MC Workbench 无感FOC

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 第19讲成功实现了基于NUCL ...

  4. STM32 电机教程 19 - 基于ST MC Workbench 单电阻FOC

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 第17及18讲成功实现了基于N ...

  5. STM32 电机教程 17 - 基于ST MotorControl Workbench的电机调试

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 上一讲详细介绍了磁场定向控制的 ...

  6. STM32 电机教程 1 - 用ST Motor Profiler 测量无刷电机参数

    前言 在对电机进行控制前,往往需要先知道电机的一些参数,但是在实际应用过程中,经常会出现在控制一个电机参,但对电机的参数如相电阻电感的参数不够了解的情况,本节给大家演示基本ST Motor Profi ...

  7. STM32 电机教程 24 - ST MCLIB实战之无感变绝对式位置传感器

    前言 上一节给大讲演示了如何用ST MotorControl Workbench创建基本STM32F103C8T6芯片的FOC工程并根据实际电路成功创建了工程,但是实际电路使用的是绝对式磁编码器作为电 ...

  8. STM32 电机教程 33 - 无刷电机无感控制快速实现

    前言 上一节<STM32 电机教程 32 - 基于ST X-CUBE-SPN7 无刷无感电机库的电机驱动实现>给大家分享了ST的官方的无刷电机无感控制实现方案(基于NUCLEO-F103R ...

  9. STM32 电机教程 23 - ST MCLIB实战之基于stm32f13c8tx构建FOC工程

    前言 前面章节我们介绍了很多关于ST MotorControl Workbench的使用及实例 ,但是所有的实例均是基于ST的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH开发板 ...

最新文章

  1. 使用python中的Matplotlib绘图示例(续)
  2. keras 与tensorflow绑定在一起用的,何以见得
  3. 实现困境突破:中小企业家的三项修炼
  4. tortoisesvn的安装
  5. python小白入门可以参看下
  6. Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决--转载...
  7. 音视频播放、录音、拍照
  8. 给VBox中的linux添加虚拟硬盘(扩容)
  9. eclipse中git分支创建与合并(-)
  10. entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法
  11. Debian Ubuntu/Centos7设置某些软件不自动更新
  12. Excel表格数据生成sql插入语句
  13. 私信(聊天)功能 ajax长轮询实现
  14. JDK7及早期版本Java HotSpot 虚拟机配置选项
  15. Nolan最新版本2.4 Windows和docker安装升级教程, 登陆修复.排除个别需要实名的账号,nvjdc对接青龙面板教程
  16. python实现——文件操作(超详细)
  17. 如何利用蜜蜂剪辑切割音频文件
  18. 笨办法学python 习题46-windows
  19. 基于区块链的大数据交易模式研究与探索
  20. html5 php整站源码下载,HTML5响应式简洁企业织梦模板整站源码 v5.7

热门文章

  1. Mistakes(Updating)
  2. 聚合类新闻client初体验
  3. 【数据库开发】Redis key-value内存数据库介绍
  4. MS SQLServer2000中在还原备份文件时出现的奇怪问题.
  5. UA MATH524 复变函数13 奇点与留数
  6. UA MATH563 概率论的数学基础 中心极限定理22 度量概率空间中的弱收敛 Portmanteau定理
  7. UA MATH567 高维统计I 概率不等式1 Hoeffding不等式与Chernoff不等式
  8. Bing地图REST服务
  9. VC++ 拖放编程简单Demo
  10. DirectX 视口学习