无刷直流电机(BLDC,也称为马达驱动)是电机和控制技术相结合的产品,电调控制电机的运行,从电流驱动角度来看,无刷直流电机可分为正弦波驱动和方波驱动。通常,以方波驱动的电机称为无刷直流电机(BLDC),正弦波驱动的电机则为永磁同步电机(PMSM)。无刷直流电机,跟永磁同步电机,基本结构相似,主要区别在于控制器电流的驱动方式不同。产生相位差120度的正弦三相电,要不断的调整三路、或是六路PWM的占空比,这要求较高的处理速度。给电机供相位差120度的方波,电机运转噪音虽大一些,但电机仍可以基本平稳的运转,方波驱动方式对处理器的速度要求低了很多。所以方波驱动方式就广泛应用开来。

一、方波控制理论基础

方波控制也叫六步控制,在一个电周期中,电机只有六种转态,或者说定子电流有六种状态(三相桥臂有六种开关状态)。

每一种电流状态都可看作合成一个方向的矢量力矩,六个矢量有规律地、一步接一步地转换,矢量旋转方向决定了电机旋转方向(顺时针或是逆时针),电机转子会跟着同步旋转。

在方波控制里,主要是对两个量进行控制,一个是电机转子位置对应的开管状态,有Hall时,通过Hall信息获取转子位置,无传感器时,通过反电动势信息获取转子位置,从而决定开管状态;第二个是PWM占空比的控制,通过控制占空比的大小来控制电流大小,从而控制转矩和转速。

二、方波算法实现步骤

(1)Hall 方波控制:

1.读取母线电流采样的AD 值,计算母线电流

2.电流环计算应该给的PWM 占空比,控制电流为给定电流大小

3. 读取hall 状态,根据Hall 状态与三相桥臂开管状态关系数组,得到相应的开管状态,每次hall 状态的跳变沿及为三相桥臂状态切换的时间点(也称为换相点)。

4. Hall 相邻状态间的扇区为一个电周期的六分之一,即为60°,用定时器可记录60°扇区所用的时间,从而计算电流频率,从而得到电机转速。

5. 以电流环作为内环,速度环作为外环,电机进行闭环控制,如Hall 方波控制框图。对于Hall 方波控制来说,电机启动时,就已经知道电机转子位置,直接用hall 状态对的矢量力矩去拉电机,就可启动电机,并可直接进闭环控制。

(2)BEMF 方波控制:

1.读取母线电流采样的AD 值,计算母线电流。

2.电流环计算应该给的PWM 占空比,控制电流为给定电流大小

3. 保持一种开管状态(即保持一个方向矢量定位),定位完成,然后按一定频率改变开管状态,并按规律提升改变频率。到达切换电频率,然后切换到反电动势模式。

4. 用一个较高频率定时器中断读取相比较器输出状态,若相比较器输出电平发生翻转,则说明该相反电动势产生过零,此时,读定时器D 时基计数值,保存,然后清定时器D,并配置定时器D 的比较寄存器0 的比较值,开定时器D 开始计时,直到产生PWMD0 中断,在中断中改变开关管状态,也就是找到过零点延迟30°电角度再换相。

5. 以电流环作为内环,速度环作为外环,电机进行闭环控制,对于BEMF 方波控制来说,电机启动时,是不知道电机转子位置,所以需要用外同步方式启动电机,让定子电流按给定大小和频率拖动电机转子跑,然后电机达到切换电频率,就可切换到反电动势模式跑电机,并运行速度和电流闭环控制。

BLDC无刷直流电机的原理及驱动基础的更多相关文章

  1. BLDC(无刷直流电机)应用相关

    1.基于XC866的直流无刷电机简易正弦波控制 http://blog.gkong.com/hushunlin_219521.ashx 2.无刷直流电机的PWM调制方式介绍 http://blog.g ...

  2. 【电子基础】液晶显示器原理·LCD驱动基础

    LCD显示器概述   ——>液晶显示器,LCD为英文 Liquid Crystal Display的缩写,它是一种数字显示技术,可以通过液晶和彩色过滤光源,并在平面面板上产生图像.   ——&g ...

  3. linux驱动基础系列--Linux mmc sd sdio驱动分析

    前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.块设备驱动.设备模型等也不进行详细说明原 ...

  4. linux驱动基础系列--linux spi驱动框架分析

    前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型等也不进行详细说明原理.如果有任何错误地方,请指出,谢谢! spi ...

  5. linux驱动基础系列--Linux I2c驱动分析

    前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型.sysfs等也不进行详细说明原理,涉及到i2c协议部分也只 ...

  6. 开源纯C#工控网关+组态软件(四)上下位机通讯原理

    一.   网关的功能:承上启下 最近有点忙,更新慢了.感谢园友们给予的支持,现在github上已经有.目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下. ...

  7. Unit01: JDBC原理 、 JDBC基础编程

    Unit01: JDBC原理 . JDBC基础编程 这个文件里面有两块内容: 1.用比较麻烦的方式连接数据库,test1(),test4() 2.创建DBTool,测试DBTool连接数据库 ,tes ...

  8. linux驱动基础系列--Linux 串口、usb转串口驱动分析

    前言 主要是想对Linux 串口.usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动.平台驱动等也不进行详细说明原理.如果有任何错误地方,请指出, ...

  9. linux驱动基础系列--Linux下Spi接口Wifi驱动分析

    前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 .主要是想对spi接口的wifi驱动框架有一个整体的把 ...

随机推荐

  1. C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)

    C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)   窗体缩放是一个困扰我多时的问题,为了解决这个问题,我从网上找了很多相关的资料,很多人说用Anchor和Dock属性,但是我试了 ...

  2. 10 套华丽的 CSS3 按钮推荐

    在过去的Web开发中,通常使用Photoshop来设计按钮的样式.不过随着CSS3技术的发展,你完全可以通过几行代码来定制一个漂亮的按钮,并且还可以呈现渐变.框阴影.文字阴影等效果.此类按钮最大的优势 ...

  3. 用POP动画编写带富文本的自定义动画效果

    用POP动画编写带富文本的自定义动画效果 [源码] https://github.com/YouXianMing/UI-Component-Collection [效果] [特点] * 支持富文本 * ...

  4. Linux入门-8 Linux系统启动详解

    系统启动流程 BIOS MBR GRUB KERNEL INIT 单用户修改root密码 GRUB加密 系统启动流程 BIOS MBR: Boot Code 执行引导程序 - GRUB 加载内核 执行 ...

  5. 关于动态门户WEB博雅互动的源代码(HTML+CSS+javascript)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Windows 下的内存泄漏检测方法

    在 Windows 下,可使用 Visual C++ 的 C Runtime Library(CRT) 检测内存泄漏. 首先,我们在.c或.cpp 文件首行插入这一段代码: #define _CRTD ...

  7. Reporting Service编程----访问Web服务

    将报表服务器 Web 服务的引用添加到项目中后,下一步是创建 Web 服务代理类的实例. 然后,您可以通过调用代理类中的方法来访问 Web 服务的方法. 当你的应用程序调用这些方法时,代理类生成的代码 ...

  8. Scala隐式转换和隐式参数

    隐式转换 Scala提供的隐式转换和隐式参数功能,是非常有特色的功能.是Java等编程语言所没有的功能.它可以允许你手动指定,将某种类型的对象转换成其他类型的对象或者是给一个类增加方法.通过这些功能, ...

  9. Buffers与cached啥区别

    A buffer is something that has yet to be “written” to disk. A cache is something that has been “read ...

  10. archer 安装

    archer 项目地址: https://github.com/jly8866/archer 安装docker版本 Pull Docker docker pull hhyo/archer 启动服务do ...