SimpleFOC移植STM32(八)—— 霍尔电机
目录
- 说明
- 一、霍尔电机
- 1.1、电机的种类
- 1.2、霍尔传感器
- 1.3、SimpleFOC的霍尔电机控制原理
- 二、电机驱动板103
- 2.1、读取霍尔角度
- 2.2、驱动霍尔电机M1
- 2.3、驱动霍尔电机M2
- 2.4、驱动双霍尔电机
- 三、电机驱动板405
- 3.1、读取霍尔角度
- 3.2、驱动霍尔电机M0
- 3.3、驱动霍尔电机M1
- 3.4、驱动双霍尔电机
- 四、总结
SimpleFOC、ODrive和VESC 教程链接汇总:请点击
说明
SimpleFOC(九)—— 霍尔电机控制
SimpleFOC之ESP32(七)—— 霍尔电机
之前写过这两篇教程,测试中都表现出了极大的不稳定性,所以霍尔电机部分的代码我一直没有移植,
本次移植后的代码测试稳定性还可以,迄今没有发现问题。
而之前表现的各种不稳定,我总结了下有两种可能:
1、引脚中断需要避开相同中断源,比如STM32的PA11和PB11,都是同一个中断源EXTI_Line11,在霍尔信号的中断代码中是无法区分的。这个问题在移植keil的时候很容易就能发现,但是在官方的SimpleFOC代码中,稍不注意就出错了。
2、arduino环境下的中断不太好用,特别是跨平台的兼容性可能还不够好。
ODrive的操作演示——控制AS5047P、霍尔电机和轮毂电机
当然simpleFOC主打的就是simple,所以电机实际效果和ODrive 的驱动效果相比有一定差距,仅仅适合入门。
需要说明:霍尔电机主要用于做轮子,不适合做高精度控制,虽然FOC可以实现任意角度的控制,但是霍尔信号的分辨率太低,盲区太大。
一、霍尔电机
霍尔电机就是带有霍尔传感器的直流无刷电机。
1.1、电机的种类
因为霍尔传感器的成本低,体积小可以安装在电机内部,所以应用非常广泛,种类非常丰富。
1.2、霍尔传感器
- 常见的霍尔信号是120度和60度安装方式,SimpleFOC只处理120度的霍尔信号。(60度的只需把其中一相的信号取反,就可以得到和120度一样的状态值,这是我花了几百块钱在峰岹科技的代码中看到的处理方式)。据说还有45度的电机,我没有遇到过,本节不做讨论。 120度和60度的更多说明请看这篇文章: 电动机的霍尔信号
- 霍尔传感器的电源一般标注为5V,实际3.3V也可以,大概是现在的霍尔芯片电压兼容性更好了。
- 理论上霍尔信号输出为开漏,所以信号的电压是由上拉电阻决定的,即使霍尔信号电源接5V,输出信号也是3.3V。
- 但实际的情况是有的电机用5V电源,信号的电压为3.7V,说明信号输出不是简单的开漏,有一定的驱动能力,所以最好接3.3V电源。
- 有些电机必须用5V电源,3.3V的电源没有信号输出,都是看起来比较老旧的电机,大概早期的霍尔元件电压兼容性不够。
- 本次移植本人测试了以下电机
1.3、SimpleFOC的霍尔电机控制原理
驱动板103和驱动板405 都使用中断方式处理霍尔信号。霍尔信号发生边沿跳变时进入中断,在中断中读取霍尔状态,判断当前角度。
下面用一个图片说明simpleFOC的驱动原理。
假如霍尔电机是2对极,那么cpr=12,示意图刚好相当于一个钟表,假如当前电机的电角度在12点,q轴如上图,电机的转矩将一直保持这个状态,直到触发到下一个霍尔跳变,代码检测到新的角度,产生新的矢量q1并持续到下一个状态,所以simpleFOC对霍尔电机的控制效果等同于六步换相法。而在ODrive中使用了角度插值的方法,所以q轴会跟随电机的转动而变化,电机更加平稳。当然SimpleFOC提供了一个最简单的控制方法,保证电机能够转起来,你不要一看它的控制效果不好扭头就走,你知道了原理下一步就可以把ODrive的角度插值法移植过来,电机就可以实现ODrive的效果,是不是很简单。
本次移植没有再像之前那样,把所有编码器放到一起通过 myprojcet.h 设置来选择。而是把霍尔电机的代码单列出来,这样代码看起来更简洁一点。
二、电机驱动板103
霍尔信号为开漏输出,所以需要上拉电阻,代码中对应的引脚已经配置为打开内部上拉,外部如果有上拉电阻也尽量使用,驱动板103默认接10K上拉电阻。
2.1、读取霍尔角度
读取霍尔角度目的是为了确认电机的极对数,以便在稍后代码中可以准确的控制电机。如果你已经知道了电机的极对数,也可以跳过本小节。
2.1.1、接线
只需接霍尔信号线,SCL1(PB6)、SDA1(PB7)、PA12和3.3V电源,三个信号随便接,不用区分顺序。下图:
电机驱动板103 购买链接:某宝购买
2.1.2、修改代码
修改极对数,如果极对数正确,那么电机转动一圈,角度变化刚好是6.28;如果不正确,比如电机实际极对数为4,代码中写的是2,那么电机转动一圈,角度变化为12.57。同理,如果是3对极,角度变化为9.42,如果是5对极,角度变化为15.71。
2.1.3、串口查看角度变化
下载完代码后,用手拧动电机转动,刚开始的几个角度值不准确,我估计是没有赋初值,不想再折腾代码了,大家将就着用吧。所以需要先来回转动半圈,然后转动电机让角度归零,观察电机转一圈角度的变化。转动的结果应该是3.1415926的整倍数,如果不是说明手动转的有误差,不是刚好一圈,请自行估算就近极对数。
2.2、驱动霍尔电机M1
2.2.1、接线
2.2.2、修改代码
- 极对数按照实际写入,
- voltage_sensor_align是电机零点校准时的电压值,需要根据电机功率设置,100W以内的电机基本属于小功率,可以设置的大一点,200W以上的属于大功率,设置的小一点。
- 如果不清楚电机功率,可以多试几个值,电源有电流显示的话观察下零点校准时的电流,只要在0.2A — 0.8A这个范围内就行,电流太小电机无力,校准可能不准确,电流太大电机会发热,容易损坏电机。
- 初次调试请选择 Type_voltage 模式,因为可以跳过电流环,电流环的PI参数非常难设置。
- 速度环的PI请自行设置,不清楚可以先把速度I参数设置为0,只用速度P参数,先让电机转起来再说。不同电机的PI参数不相同,具体请百度。
2.2.3、下载代码,观察电机运行
发送指令T6.28,电机以每秒一圈的速度转动,霍尔信号的分辨率低,对于一些电机来说齿槽效应更明显,可以调高速度试试。
2.3、驱动霍尔电机M2
- SCL2(PB10)、SDA2(PB11)和SWD(PA13)接hall信号,三个信号随便接,不用区分。
- 其实最初的设计是打算接PA11引脚的,但是调试代码的时候发现PB11和PA11是同一个中断源EXTI_Line11,并且在中断代码中无法区分,所以用SWD(PA13)来代替。
- SWD(PA13)并没有设计外部上拉电阻,反复测试后确定只要代码中打开了内部上拉也可以的。
- 只是占用SWD后不能再用ST-link下载代码了,请大家使用串口下载。
- 串口下载的方法在 SimpleFOC移植STM32(二)—— 开环控制 的第3.2小节有说明,不清楚的可以去查看。
本小节的其它操作与M1的操作一样,请参考上面的2.2小节。
2.4、驱动双霍尔电机
电机驱动板103 购买链接:某宝购买
请结合上面的2.2和2.3小节操作。
需要注意的是,控制M1的电机发送指令以 A开头,比如 A6.28;控制M2的电机发送指令以 B开头,比如 B6.28。
三、电机驱动板405
霍尔信号为开漏输出,所以需要上拉电阻,代码中对应的引脚已经配置为打开内部上拉,同时驱动板405 的ABZ引脚接有3.3K上拉电阻。霍尔信号和下一篇的ABZ信号都接在ABZ引脚上。
3.1、读取霍尔角度
读取霍尔角度目的是为了确认电机的极对数,以便在稍后代码中可以准确的控制电机。如果你已经知道了电机的极对数,也可以跳过本小节。
3.1.1、接线
只需接霍尔信号线,M0的ABZ三个引脚和3.3V电源,三个信号随便接,不用区分顺序。下图:
电机驱动板405 购买链接:某宝购买
下载代码,手拧电机,观察串口打印的角度变化,具体看上面2.1小节吧,不想重复写了。
3.2、驱动霍尔电机M0
3.2.1、接线
3.2.2、修改代码
- 极对数按照实际写入,
- voltage_sensor_align是电机零点校准时的电压值,需要根据电机功率设置,100W以内的电机基本属于小功率,可以设置的大一点,200W以上的属于大功率,设置的小一点。
- 如果不清楚电机功率,可以多试几个值,电源有电流显示的话观察下零点校准时的电流,只要在0.2A — 0.8A这个范围内就行,电流太小电机无力,校准可能不准确,电流太大电机会发热,容易损坏电机。
- 初次调试请选择 Type_voltage 模式,因为可以跳过电流环,电流环的PI参数非常难设置。
- 速度环的PI请自行设置,不清楚可以先把速度I参数设置为0,只用速度P参数,先让电机转起来再说。不同电机的PI参数不相同,具体请百度。
3.2.3、下载代码,观察电机运行
发送指令T6.28,电机以每秒1圈的速度转动,发送指令T31.4,电机以每秒5圈的速度转动。
串口通信使用USART2的DMA方式接收,空闲中断,所以指令后面可以不用“回车”,当然你输入了也没有错。
3.3、驱动霍尔电机M1
霍尔信号接在M1对应的ABZ排针上,其它操作与上面的M0相同。
3.4、驱动双霍尔电机
请结合上面的3.2和3.3小节操作。
需要注意的是,控制M0的电机发送指令以 A开头,比如 A31.4;控制M1的电机发送指令以 B开头,比如 B31.4。
四、总结
电机驱动板405 购买链接:某宝购买
驱动小电机时感觉还算平稳,大电机振动就比较明显了,再把代码烧写为ODrive,效果立马提升。
SimpleFOC解决了有无问题,但想要更好的性能表现,还得从ODrive中找方法。
(完)
SimpleFOC移植STM32(八)—— 霍尔电机相关推荐
- SimpleFOC移植STM32(九)—— ABZ编码器电机
目录 说明 一.ABZ编码器介绍 1.1.ABZ信号 1.2.光电式编码器 1.3.磁编码器 1.4.差分信号 二.电机驱动板103 2.1.读ABZ信号的cpr 2.1.1.接线 2.1.2.编译, ...
- SimpleFOC移植STM32(二)—— 开环控制
目录 注意事项 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.SimpleFOCShield V2.0.3方案 1.2.硬件连接 1.2.1.原理图 1.2.2. ...
- SimpleFOC移植STM32(六)—— 双电机控制和力矩反馈
目录 一.说明 二.硬件介绍 2.1.原理图 2.2.准备清单 2.3.接线 三.程序演示 3.1.设置参数 3.2.编译下载 3.3.根据设置的控制模式操作 四.双电机控制总结 五.力矩反馈 5.1 ...
- SimpleFOC移植STM32(七)—— 移植STM32F405RGT6
目录 说明 一.点亮LED 1.1.原理图 1.2.硬件准备 1.3.烧写 二.开环控制 2.1.硬件准备 2.2.硬件连接 2.3.打开工程 2.4.修改参数 2.5.编译下载,观察运行 三.角度读 ...
- SimpleFOC移植STM32(三)—— 角度读取 (AS5600、AS5047P、TLE5012B、MA730、MT6701、ABZ)
目录 说明 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.STM32方案 1.2.硬件连接 1.2.1.原理图 1.2.2.接线 二.代码编译下载 2.1.代码解 ...
- SimpleFOC移植STM32(五)—— 电流采样及其变换
目录 一.原理说明 1.1.电流采样 1.1.1.为什么要采样电流 1.1.2.电流采样方式 1.1.2.1.低侧电流采样 1.1.2.2.高侧电流采样 1.1.2.3.内置电流采样 1.2.电流变换 ...
- SimpleFOC(九)—— 霍尔电机控制
目录 一.原理说明 1.1.霍尔电机 1.2.霍尔传感器 1.3.极对数 1.4.霍尔信号的连接 二.读取霍尔角度 2.1.硬件介绍 2.1.1.原理图 2.1.2.SimpleMotor方案 2.1 ...
- SimpleFOC之ESP32(七)—— 霍尔电机
目录 一.霍尔电机介绍 二.ESP32drive控制霍尔电机 2.1.原理图 2.2.读霍尔角度 2.2.1.硬件准备 2.2.2.硬件连接 2.2.3.代码演示 2.3.控制霍尔电机 2.3.1.硬 ...
- 【FOC控制】英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植AS5600 软件IIC
[FOC控制]英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植 [FOC控制]英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植 一.编码器选择 二.通讯方式 ...
最新文章
- UBUNTU安装 Rabbitvsc可视化版本控制客户端软件
- dapper使用时性能优化
- 深入理解 JVM Class文件格式(六)
- 安装VMware tools
- 大众CEO迪斯承认芯片仍短缺
- Flink对比Spark以及流计算发展趋势分析
- 201312-2-ISBN号码
- 解决MyEclipse里Tomcat端口被占用而无法启动的情况
- 程序员听爵士,架构师学做交响指挥
- oracle18cscott,Oracle 18c 数据库中scott用户不存在的解决方法
- 动手学习深度学习——基本简介
- 开发者服务器怎么发送公众号上的消息,微信公众号发送提醒消息
- 【Python爬虫实战】 图片爬虫-淘宝图片爬虫--千图网图片爬虫
- Paddle-Lite 安卓端部署
- 【微信小程序】判断手机号是否合法
- 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布
- 基于SpringBoot在线电影订票系统|影院
- 怎样设置计算机usb端口,USB端口被占用了,怎样将其他USB设备添加到我的计算机?...
- 解决IBM Lenovo x3650M5不开机报错system board fault
- 20中南大学计算机学院公告,中南大学计算机学院2021年优秀大学生提前面试活动的通知...
热门文章
- 吉大计算机学院周丰丰,中国科学技术协会 综合 英才计划计算机学科工作委员会赴吉林调研...
- 分享是奉献的果实,推荐5款高效率的黑科技软件
- 系统辨识专题(二)——多旋翼飞行器建模
- 适合精致女孩使用的APP软件 不容错过的精彩人生
- 通讯录软件测试初学者,通过实例学VB—创建简单的个人通讯录
- 保理业务系统-特点介绍二
- arm搭建云手机教程_arm虚拟化部署的云手机有哪些优缺点
- 计算机办公应用操作试题,计算机office办公软件上机操作试题
- 第十一课用计算机写作教案,五年级下册计算机PowerPoint教案5篇【11-15课】
- 麻省理工学院(MIT)研究生学习指导