OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 605|回复: 0
打印 上一主题 下一主题

无感无刷电机的零速启动

[复制链接]

13

主题

3459

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8918
金钱
8918
注册时间
2020-5-11
在线时间
4470 小时
跳转到指定楼层
楼主
发表于 2025-7-29 15:03:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LcwSwust 于 2025-7-29 15:24 编辑

接上回:"利用一路ADC作过零检测的无刷电调" http://www.openedv.com/forum.php?mod=viewthread&tid=351401&extra=
这次用到了另一路ADC测电流。

参考资料《基于电感法无刷直流电机起动方法的优化设计》:
基于电感法无刷直流电机起动方法的优化设计 - 豆丁网.pdf (4.74 MB, 下载次数: 8)
根据这个资料研究了无感无刷电机的零速启动;
原理:
1.定子绕组的电感量受转子位置影响;
(但由于N极与S极产生的影响基本相同,所以可能会有180度的误差)

2.转子磁极的NS极会影响定子绕组的饱和;(可确定NS极,纠正180度误差)
----------------------------
电路:和之前差不多,为了测量瞬时电流,将R8改为了1K。

单片机程序: BLDC2.2C程序1.2test _零速启动4_27M.rar (79.62 KB, 下载次数: 4)
串口数据波形查看工具(波形显示器2.2A): 波形显示器2.2A安装包.rar (6.66 MB, 下载次数: 2)
----------------------------
用途:需要低速或大力矩启动的场合,比如小车。
介绍一下程序:
getstep():通过对三个绕组正向通电、反向通电较长时间,测两个电压(AD_Z)值作比较、测两个电流值(AD_IS) 作比
较,得到360度内的6种状态。
为提高效率,可以把getstep()拆分为getvs()和getista(),得到getstep1();
test2():通过getstep1()得到当前位置,驱动电机运转,由于getstep1()耗时较长,导致噪声较大,且不能高速运转。
逐步对程序进行优化,最终得到test5_1():用getstep1()得到初始位置,后续只判断导通相的电感关系进行换相(参考上面“磁动势”那张图)。
实际测试过的电机:1806(KV2280)、新西达2212(KV1000),均能正常运行。
运转:

getvs测量O1,用手缓慢转动电机:

getstep测AD_IS,用手缓慢转动电机:

getstep串口发送6个电压值(用手缓慢转动电机):

getstep串口发送3个电压差(用手缓慢转动电机):

getstep串口发送6个电流值(用手缓慢转动电机):

getstep串口发送3个电流差(用手缓慢转动电机):

代码片段:
  1. U8 getstep(void)
  2. {
  3.         U8 ton=20,toff=100;
  4.         U8 vs,ss;
  5.         U16 v;
  6.         U16 vp0,vp1,vp2;//三相正电压
  7.         U16 vn0,vn1,vn2;//三相负电压
  8.         U16 ip0,ip1,ip2;//三相正电压
  9.         U16 in0,in1,in2;//三相负电压

  10.         MOT_STOP;
  11.         delayus(toff);
  12.         LED_ON;
  13.         //--------------------AB
  14.         MOT_AH;MOT_BL;//正向通电
  15.         vp0=adc_read10(2);delayus(ton);//测电压
  16.         ip0=adc_read10(3);//测电流
  17.         MOT_AZ;MOT_BZ;MOT_CZ;
  18.         delayus(toff);//避免续流影响,toff>ton
  19.         MOT_BH;MOT_AL;//反向通电
  20.         vn0=adc_read10(2);delayus(ton);//测电压
  21.         in0=adc_read10(3);//测电流
  22.         MOT_AZ;MOT_BZ;MOT_CZ;
  23.         delayus(toff);
  24.         //--------------------AC
  25.    ......
复制代码

自问自答:
判断电感的大小关系为什么要对绕组正向通电、反向通电比较二者电压,而不是只通电一次然后与中点电压作比较?
因为转起来之后,绕组反电势会叠加到测量电压,只测一次就可能误判,如果反向拧动电机,电机就可能反转。
为什么AB相通电到AC相通电期间要断电较长时间?
因为换相时有续流影响测量值。



专治疑难杂症
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-10-31 15:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表