当前位置: 首页 > news >正文

5.无霍尔BLDC转子预定位及同步加速

1.电机转子预定位

@1.要保证无刷直流电机能够正常启动,首先要确定转载在静止时的位置。在轻载条件下,对于具有梯形反电势波形的无刷直流电机来说,一般采用磁制动转子定位方式。系统启动时,任意给定一组触发脉冲,在气隙中形成一个幅值恒定、方向不变的磁通,只要保证其幅值足够大,那么这一磁通就能在一定时间内将电机转子强行定位这个方向上。在应用中,可以在任意一组绕组上通电一定时间,其中预定位的PWM占空比和预定位的时间的长短设定值可由具体电机特性和负载决定,在实际应用中调试而得。在预定位成功后,转子在启动前可达到预定的位置,为电机启动做好准备。

@2.软件方案实现

step1:设置PWM输出频率,软件上设置为12KHZ。此处说的PWM指控制电机三组上下桥臂导通的timer产生的PWM波形。

step2:设置转子预定位的最小启动占空比duty。当PWM频率固定后,电机输出的驱动能力的其中一项控制条件是占空比值的大小。而占空比的设置值不能随意设置,而是根据电机的特性以及是否带有负载以及负载的大小来实际测试结果来决定的。此处根据笔者的开发的电机类型,电机空载条件下选择了最小启动占空比start_pwm。

step3:有了上述2步的条件,第三步条件是选择电机的6步换向中的其中一个方向,让电机初始强制预定位到这个位置,此处笔者在软件上设置的是根据想让电机正转还是反转的方向来选择一个位置来定位。这个没有必要的要求,根据自己实际的项目使用方式来决定。

step4:执step3后需要等待一定时间让转子到达指定位置。这个等待时间需要根据电机特性和负载特性来决定。

@3.上述的说明就是电机预定位的方案及算法实现。

2.电机转子同步加速

@1.根据上述的说明,我们已经通过电机转子预定位方法,将电机固定在了某一个位置,这样,我们就知道了电机的起始位置。

@2.确定了电机转子的初始位置后,由于此时定子绕组中的反电动势仍然为零,所以必须人为的改变电机的外施电压和换相信号,是电机由静止逐步加速启动,这一过程称为外同步加速。对于不同的外施电压调整方法和换向信号调整方法,外同步加速可以划分为三类:换向信号频率不变,逐步增大外施电压使使电机加速,称为横频升压法。保持外施电压不变,逐渐增高换向信号的频率,使电机逐步加速,称为恒压升频法。在逐步增大外施电压的同时,增高换相的频率,称为升频升压法。

@3.笔者实现的方案是恒频升压法。因为在《电机转子预定位》已经将频率固定,所以频率恒定,调整占空比实际就是调整电机电压。

step1:将每次循环的换相程序实现

先判断是正转还是反转

正转为:

电机正转换向值 : V+U-  W+U-  W+V-  U+V-  U+W-  V+W-

对应换向表下标值: 2         3         1         5         4          6

反转为:

电机反转换向值:V+U-  V+W-  U+W-  U+V-  W+V-  W+U-

对应换向表下标值: 5         1         3         2         6         4

vu8 C_HallSign[] = {5,4,6,2,3,1,5,4};这个数组就是对应的换相表正反转下标值,而换向表数组如下:

/*

P:上半桥

N:下半桥

PWM00:PC5  [UP]

PWM10:PC4  [VP]

PWM20:PC3  [WP]

PWM01:PC2  [UN]

PWM11:PC1  [VN]

PWM21:PC0  [WN]

PMS_Config[0]:0x80, PXC_Config[0]:0xc0:未检测到霍尔信号,不做任何输出,上下臂全部处于悬空状态  

PMS_Config[1]:0x9f, PXC_Config[1]:0xc4:W+V-

PMS_Config[2]:0xb7, PXC_Config[2]:0xc1:V+U-

PMS_Config[3]:0x9f, PXC_Config[3]:0xc1:W+U-

PMS_Config[4]:0xbd, PXC_Config[4]:0xd0:U+W-

PMS_Config[5]:0xbd, PXC_Config[5]:0xc4:U+V-

PMS_Config[6]:0xb7, PXC_Config[6]:0xd0:V+W-

PMS_Config[7]:0x80, PXC_Config[7]:0xc0:霍尔信号检测错误,不做任何输出上下臂全部处于悬空状态

*/

const vu8 PMS_Config[]={0x80,0x9f,0xb7,0x9f,0xbd,0xbd,0xb7,0x80};

const vu8 PXC_Config[]={0xc0,0xc4,0xc1,0xc1,0xd0,0xc4,0xd0,0xc0};

整体转换算法就是 PMS_Config[C_HallSign[HallPhase]];PXC_Config[C_HallSign[HallPhase]];

step2:接下来顺其自然的开始进行升频,升频的方法很简单,就是在启动的最小占空比基础上每次循环进行占空比值增加,可以根据实际的测试效果来决定

上图就是PWM占空比升频算法。每次在增加PwmAddStep值的基础上还进行了(loop>>1)的方式进行增加,这种算法不是每次循环在当前占空比的基础上增加一个固定的PwmAddStep值,而是再增加一个递增变量,相当于是一个等差递增数列,高数忘记的差不多了,好像是这么叫的。这样算法好处是,占空比增加不是一个第一象限的斜率固定的函数,而是像一个指数函数。类似下图这样的

每次设置完成占空比后,需要等待一个时间,让电机换向能够有足够时间到达目标位置。通过分析我们不难发现,占空比值越大,那么电机的换相能力就越强,驱动能力越强。那么每次循环的等待时间也是需要逐渐减小的,否则转速无法做到同步加速。整体示意图如下。等后续有时间了会用Python把算法演示模型添加进去,这里图画的太糙了,勉强能够表达清楚。

下图就是循环等待换向时间算法,和上图的曲线模型吻合。

step3:加速模型的算法就到这里了,此时可以切换到闭环换向的逻辑了,具体请查看《3.无霍尔传感器的BLDC换向原理》章节

相关文章:

  • dubbo 大数据量传输 报错 ,调节默认8M调节成80M解决方案
  • 混合使用设计模式:策略模式+工厂模式+模板方法模式
  • Python对象循环引用垃圾回收算法
  • 基于Web的盾构机盾尾变形远程监测系统
  • Docker网络代理设置
  • 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第4章 离线数据开发
  • springboot+VUE+elementui医院设备仪器维修保养管理系统
  • css:hover用法(1) 一个是伪类选择器前加空格改变所有子元素的样式; 一个是紧挨着的兄弟元素可以使用伪类选择器。
  • Spring+SpringMVC+MyBatis框架整合的配置
  • 神经网络硕士就业前景,神经科学博士就业前景
  • 【python初级】linux系统下anaconda安装
  • c语言数据结构 二叉树下
  • janus videoroom之媒体录制
  • 语义推理的功能组件动态绑定研究
  • HTML5新特性 day_03(8.9)Canvas的路径、动画,Three.js和地理位置
  • [数据结构]链表的实现在PHP中
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Date型的使用
  • flask接收请求并推入栈
  • HTTP--网络协议分层,http历史(二)
  • Median of Two Sorted Arrays
  • Mybatis初体验
  • nodejs:开发并发布一个nodejs包
  • rc-form之最单纯情况
  • Redis中的lru算法实现
  • 阿里云应用高可用服务公测发布
  • 反思总结然后整装待发
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 普通函数和构造函数的区别
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 组复制官方翻译九、Group Replication Technical Details
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 计算机视觉入门
  • # 数据结构
  • #define,static,const,三种常量的区别
  • (1)(1.11) SiK Radio v2(一)
  • (1)(1.13) SiK无线电高级配置(六)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (13):Silverlight 2 数据与通信之WebRequest
  • (C)一些题4
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (学习日记)2024.01.09
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • ***通过什么方式***网吧
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core中Emit的使用
  • .Net IOC框架入门之一 Unity
  • .Net 路由处理厉害了
  • .net 受管制代码
  • .Net(C#)自定义WinForm控件之小结篇