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换向原理》章节

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

  1. 电控—关于电机转子预定位的一些理解

    目录 前面 转子拉到什么位置? 转子怎么拉? 转子拉多长时间? 实测预定位电流波形-两次预定位 前面 大家都知道在电机控制策略与算法中,电机从静止到低速中间有一个不可忽略的步骤,那就是--转子预定位! ...

  2. 3.无霍尔传感器的BLDC换向原理

    要想了解此章节,最好熟悉第2章节的内容.感谢正点原子电机教程专题文档. 1.什么是无霍尔BLDC? @1.顾名思义,就是直流无刷电机是不带霍尔传感器的. @2.有霍尔的BLDC控制称为有感方波控制,无 ...

  3. 无刷无霍尔BLCD电机控制

    声明:本文出自百度文库无刷无霍尔电机控制,因为该文为繁体,看起来特别别扭,特此翻译. 文库网址: https://wenku.baidu.com/view/b99217dca0116c175f0e48 ...

  4. 无刷无霍尔BLCD电机控制(转)

    1.概述 无霍尔的BLDC控制方案与有霍尔BLDC的基本原理相似,都是用所谓"六步换向法",根据转子当前的位置,按照一定的顺序给定子绕组通电使BLDC电机转动.所不同的是无霍尔BL ...

  5. 学习无霍尔传感器的BLDC方波调速

    无霍尔传感器的BLDC方波调速 基本原理 反电动势法 无感BLDC的转子位置检测 无感BLDC换相 在功率开关管关断状态时采样 无感BLDC的"三段式"启动 程序应用 按键读取 六 ...

  6. 基于 EG6831 的无感 BLDC 控制方案

    屹晶微电子有限公司 版本号:V1.11 电机控制解决 方案 Motor Control Solution ---------基于 EG6831 的无感 BLDC 控制方案屹晶微电子有限公司 基于 EG ...

  7. 无传感器BLDC和FOC堵转检测方法

    基于S12ZVM的车用无传感器BLDC堵转检测方法探讨 介绍了车用无传感器BLDC堵转检测的重要性以及实现的方法,分别讲述了六步方波堵转检测以及FOC正弦波堵转检测的方法.重点介绍了基于S12ZVM的 ...

  8. 霍尔FOC转子位置估计算法

    3.1研究现状 目前,针对开关霍尔拟合转子位置研究技术主要分为两类: 第一类方案是非模型法,主要围绕处理霍尔传感器信号,通常利用信号处理技术拟合转子位置.现有多种数据处理方法,如基于一阶或高阶逼近的方 ...

  9. A5931三相无传感器 BLDC 风扇驱动器 IC

    描述: A5931 三相无传感器 BLDC 风扇驱动器 IC 集成了正弦信号驱动功能,可以最大限度减小可闻噪声和振动. 将灵活的闭环速度控制系统整合到 IC 内.这消除了对基于微处理器的系统的要求,并 ...

最新文章

  1. itmz文件如何打开_如何使用proteus8打开低版本proteus7的仿真文件?
  2. linux格式化文件,无需格式化就可以转换文件系统
  3. linux配置时间同步
  4. hdu 3879(最小割模型求解最大权闭合图)
  5. CodeForces - 1220E Tourism(边双缩点+树形dp)
  6. 第10章 指针(二) 首地址----------指针
  7. [vue] 你认为vue的核心是什么?
  8. C# 的一些便捷用法
  9. 继英伟达、三星后,育碧也遭攻击,员工密码重置
  10. c语言求一个数的位数不用循环_LeetCode基础算法题第181篇:将数字减少为零的步骤数...
  11. 《Effective C#》快速笔记(三)- 使用 C# 表达设计
  12. 后端开发都应该掌握的Redis基础
  13. Odoo 去掉 恼人的 上午和下午
  14. Linux系统不同颜色文件代表什么意思?绿色、蓝色、白色、红色等代表的意义是什么?
  15. leetcode 1175. Prime Arrangements(python)
  16. “华为杯”第十七届中国研究生 数学建模竞赛-【华为杯】D题:无人机集群协同对抗(附优秀论文及python代码实现)
  17. win10系统文件拖拽卡顿_windows10鼠标拖动窗口有延迟如何修复
  18. 信用卡号码的解析(转)
  19. C语言数据结构——环形队列
  20. Windows10关机时出现 等待应用程序响应 / ETDCtrlHelper 影响关机

热门文章

  1. Gitlib团队开发仓库配置
  2. django+mysql图书推荐系统-计算机毕业设计源码89399
  3. 高中数学导数+不等式压轴题(解析版)
  4. 江苏省计算机学业水平测试模拟软件,基于江苏省普通高中物理学业水平测试的学生在线自主模拟测试系统研发...
  5. 金刚菩提子开裂自动修复此计算机,金刚开裂了怎么办?一个鸡蛋就可完美修复...
  6. win10计算机临时网络设置,win10系统添加设置无线临时网络的操作方法
  7. android 微信播放语音文件,如何将微信语音导出为MP3音频文件-Android平台
  8. 15位或18位长度身份证号码JS验证
  9. 视频编解码技术发展趋势
  10. cocoscreator layabox 使用jszip.js