前言

上一节给大家分享几篇比较好的介绍无刷电机无传感控制的文章,不知大家学习得怎么样,其实很多芯片公司(比如TI,ST,MICROCHIP,SILICON)都有推出针对他们家控制或驱动芯片的无感无刷电机控制的软硬件方案(软硬件),本节将基于NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH开发板结合ST推出的 X-CUBE-SPN7 三相无刷无感控制库为大家演示三相电机无感控制效果,以及X-CUBE-SPN7库使用的一需注意点。

本节所用电机为2836无刷电机,电机有两组线(hall传感器线和电机三相线),工作电压24V,最大转速12000rpm:

示例详解

本节用到ST官方推出的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH 开发板。

  1. 准备操作

NUCLEO-F103RB开发板资料(含原理图)获取:

方式1,在ST官方网站搜索NUCLEO-F103RB 找到对应资料并下载

方式2,在文中公众号发送 “下载|NUCLEO-F103RB

X-NUCLEO-IHM07M1 3SH开发板资料(含原理图)获取:

方式1,在ST官方网站搜索X-NUCLEO-IHM07M1 找到对应资料并下载

方式2,在文中公众号中发送 “下载|X-NUCLEO-IHM07M1

X-CUBE-SPN7库下载:

方式1,在ST官方网站搜索X-NUCLEO-IHM07M1 在其对应的软件包中找到X-CUBE-SPN7并下载

方式2,在文中公众号中发送 “下载|X-CUBE-SPN7

按下图连接好 NUCLEO-F103RB、X-NUCLEO-IHM07M1和电机根据电机的工作电压提供正确的电源,如我所演示电机工作电压是24V,即需给X-NUCLEO-IHM07M1的J1接口提供24V电源,同时X-NUCLEO-IHM07M1一些跳帽设置为:J5,J6选择1sh, 两个FOC跳帽都不接。

解压X-CUBE-SPN7库文件,得到如下文件目录:

STM32CubeExpansion_SPN7_V1.0.0库支持030R8-Nucleo、103RB-Nucleo、302R8-Nucleo、401RE-Nucleo等多个Nucleo开发板:

本节以STM32F103RB-Nucleo平台作为演示,进入

STM32CubeExpansion_SPN7_V1.0.0\Projects\Multi\Examples\MotorControl\MDK-ARM\STM32F103RB-Nucleo文件夹,打开Project.uvprojx工程:

在MC_SixStep_param.h中根据实际电机的参数修改对应参数,

编译工程后下载到开发板后即可成功驱动电机,按STM32F103RB-Nucleo开发板上的蓝色按键可以启动或停止电机,调节X-NUCLEO-IHM07M1 3SH上蓝色电位器可以对电机进行调速!

下面给出一张电机成功驱动后的效果图:

OK,本期实验完成!通过本节内容,基于X-CUBE-SPN7软件库我们可以很快(需配合X-NUCLEO-IHM07M1 3SH 和 STM32F103RB-Nucleo 开发板)完成对三相无刷电机的无感控制!

后续我们在自己的系统中要实现三相无刷电机无感控制,可以参考X-CUBE-SPN7软件库的实现方式,X-CUBE-SPN7的核心代码主要集中在下图的几个文件中,至于其内部是怎么实现的大家可参看源码。

对了X-CUBE-SPN7库实现的无感控制效果也是有很大的提高空间,包括它在电机启动时有明显的对齐操作(有可能会使电机反转)带来的停顿感,还有启动不成功的机率比较高,这些都是后续可优化的方面。

最后,老规矩,在公众号里给十三发送 “下载|STM32 电机教程32” 即可下载文中资料及程序源码。

微信关注图中张十三的博客公众号:

STM32 电机教程 32 - 基于ST X-CUBE-SPN7 无刷无感电机库的电机驱动实现相关推荐

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

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

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

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

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

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

  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 电机教程 33 - 无刷电机无感控制快速实现

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

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

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

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

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

最新文章

  1. 用TVM在硬件平台上部署深度学习工作负载的端到端 IR 堆栈
  2. linux oracle em使用,案例:五步解决linux操作系统Oracle EM乱码的问题
  3. python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?
  4. Python中的Pandas(1.pandas概述和Series的概述和相关操作)
  5. SAP Fiori 修改catalog group名称的技术实现
  6. 中国电信:全业务IP网络的安全运营
  7. 执行phpinfo();时提示:date_default_timezone_set()
  8. Github git 命令下载加速
  9. 【实习】同方威视南京研发中心招聘图像算法工程师
  10. 某项目中,doubango与NAT服务器的冲突
  11. 使用SESSION实现PHP会话的步骤
  12. Unity Odin从入门到精通(五):自定义处理器
  13. python 反爬虫策略
  14. 产品干货1:如何套用闫荣的产品心法?
  15. Win 10 Visual Studio 2019 C# .net 5 简繁体转换
  16. 设置时区serverTimezone
  17. 查询 MySQL 字段注释的 5 种方法
  18. 华为OD机试 - 硬件产品销售方案(Java JS Python)
  19. Python-int()函数
  20. 直播源码搭建教程5 分钟完成(直播 + 分流 + 画面水印)

热门文章

  1. LR(1)分析表-语法树-四元式
  2. java基本输入类型数据System.out.println()或System.out.print()
  3. 第一人称视角的一种解决方案
  4. bzoj1691 [Usaco2007 Dec]挑剔的美食家
  5. scrollview背景
  6. [排错]运行cocos2d自带的cocos2d-test-ios工程出现错误:找不到libcocos2d.a
  7. Vector和LinkedList源代码阅读笔记
  8. lazyload延迟加载组件
  9. ERP系统的一般构成示意图
  10. WinCE 开始菜单StartMenu_Create()函数代码分析