(完整版)无刷直流电动机无传感器控制方法

合集下载

无刷无传感器直流电机控制原理

无刷无传感器直流电机控制原理

揭秘无刷无传感器直流电机控制原理目前常用的无刷直流电机控制方法可分为开环控制、转速负反馈控制和电压负反馈加电流正反馈控制等3 类。

其中开环控制方式适合于转速精度要求不高的场合,转速负反馈方式适合于机械特性要求比较硬、转速精度比较高的场合,而电压负反馈电流正反馈方式则应用于动态性能要求比较高的场合。

对于航模用的无刷直流电机,转速精度要求并不很高,使用开环控制方式就可满足要求。

图1 是无刷直流电机的电路原理图采用二相导通星形三相六状态控制策略时,其工作过程如下:wt = 0º电流:电源(+ )→T1→U→V→T4→电源(- )wt = 60º电流:电源(+ )→T1→U→W→T6→电源(- )wt = 120º电流:电源(+ )→T3→V→W→T6→电源(- )wt = 180º电流:电源(+ )→T3→V→U→T2→电源(- )wt = 240º电流:电源(+ )→T5→W→U→T2→电源(- )wt = 300º电流:电源(+ )→T5→W→V→T4→电源(- )wt = 360º电流:电源(+ )→T1→U→V→T4→电源(- )由此可看出,只要转子在合适的位置及时准确地切换相应的开关管进行换流,电机就能平稳旋转并获得最大的转矩。

1. 无位置传感器无刷直流电机位置检测方法选择无位置传感器无刷直流电机控制的一个关键点就是电机转子位置信息的检测与估计。

作者在设计中使用了反电动势过零法[4]对转子位置进行检测。

该方法具有线路简单、技术成熟、成本低廉等优点,当然也存在电机不转及转速很低时反电势无法检测的缺点。

对于这些不足,作者使用了软件优化等方法予以克服。

反电势过零法的工作原理如图2 所示,在任何时刻,电动机三相绕组只有两相导通,每相绕组正反相分别导通120º电角度。

通过测量三相绕组端子及中性点相对于直流母线负端(或正端)的电位,当某端点电位与中性点电位相等时,则此时刻该相绕组反电动势过零,再过30º电角度就必须对功率器件进行换相。

直流无刷电机无位置传感器控制方法

直流无刷电机无位置传感器控制方法

直流无刷电机无位置传感器控制方法摘要:在直流无刷电机的使用过程中,不能很准确的接收换相信号,因此,就导致该电机无法实现对换相良好的控制,为了解决这类问题的出现,本篇文章将对直流无刷电机中无位置传感器进行研究与分析,并且找到有效的控制方法。

具体的方法是利用电机内部的各种装置之间的联系,来建立出一个直观的电机模型,之后通过电机内部反电势力的不断变化来研究反电势对于换相位置的影响,在经过一定的计算从而能够保证换相信号的准确性,最终实现对其良好的控制。

本篇文章通过具体的试验与测试来对控制的方法进行验证,最终得出,通过上述的方法,能够实现对其换相的控制。

关键词:直流无刷电机;传感器;换相位置;控制效果前言随着经济与技术的共同发展,使得各种工业也得到了快速的发展,由于直流无刷电机在使用的过程中效率非常高且其的构成比较简单,使得直流无刷电机在各个领域中都被广泛地应用,其中包括航天、汽车、家电、工具等等。

与以往的有刷的电机来说,直流无刷电机的组成部分少了电刷这一部分,但是直流无刷电机的作用原理却比有刷的更为复杂。

在直流无刷电机的使用过程中,可以适当地将电机的电路进行调整,从而更好地实现对于换相信号的收集,实现对其的控制,并能够有效地缩小该电机的体积。

一、直流无刷电机的主要构造在直流无刷电机的使用过程中,主要是通过内部的传感器来对换相位置进行检测。

传感器的种类非常多样,最常见的一般为电磁式传感器、光电式传感器以及霍尔式传感器这三种类型,根据需求的不同来选择合适的传感器类型。

与其他的传感器相比,霍尔式传感器的使用成本比较低,且具有较强的性能条件,因此,该类型的传感器被使用得更加广泛。

为了保证直流无刷电机使用的效率,需要对其进行有效地控制,从而提高对于换相信号搜集的准确性。

二、背景介绍随着经济与技术的共同发展,使得人们对于电机的需求越来越大,随之对电机也有了更高的标准。

过去,大多数使用的是直流有刷电机,但这种电机存在诸多缺陷,无法满足需求。

无刷直流电机控制方法

无刷直流电机控制方法

无刷直流电机控制方法
无刷直流电机(Brushless DC Motor,BLDC)是一种基于电子换相技术来驱动的电机,它具有高效率、高功率密度、高可靠性等优点。

以下是几种常见的无刷直流电机控制方法:
1. 基于霍尔传感器的六步换相控制方法:BLDC电机通常内置三个霍尔传感器,可以用来检测转子位置。

控制方法通过监测霍尔传感器的状态,来确定哪个绕组需要通电。

该方法只需简单的逻辑门电路即可实现。

2. 无霍尔传感器的电子换相控制方法:这种方法采用传感器无关的技术,通过测量三相电流和电动势来确定转子的位置。

通常需要使用一个称为电机控制器或无刷电机驱动器来完成电子换相功能。

3. 磁场导向控制方法(Field-Oriented Control,FOC):该方法是一种高级控制技术,通过将三相电流分解为坐标轴上的直流分量和交流分量,将电机控制问题转化为直流电机的控制问题。

这种控制方法可以提供更高的动态性能和控制精度。

4. 直流电压控制方法:这种方法基于直流电压的控制原理,通过改变电机的电压来控制电机的转速和转矩。

该方法简单易实现,但通常不能提供高精度和高动态性能。

以上仅为常见的几种无刷直流电机控制方法,实际应用中还有其他高级控制技术和方法,例如逆变器驱动技术、空间矢量调制控制等。

具体选择何种控制方法,需根据电机应用要求、控制精度和成本等因素综合考虑。

无刷直流BLDC电机的无传感器梯形控制

无刷直流BLDC电机的无传感器梯形控制

图片列表
1 具有一个永磁对极转子的三相同步电机................................................................................... 3 2 针对一个 BLDC 电机的速度和电流控制环路配置 ....................................................................... 5 3 两相打开运行和转矩纹波内的电气波形................................................................................... 6 4 正弦波电机内的转矩纹波被控制为一个 BLDC........................................................................... 6 5 三相反相器 ................................................................................................................... 6 6 依据 PWM 占空比的分流电阻器压降(软斩波)........................................................................ 7 7 HDMC 套件上的反电动势感测............................................................................................. 8 8 定子端子电气模型 ........................................................................................................... 9 9 典型电流和反电动势波形正弦波 BLDC 电机驱动 ....................................................................... 9 10 一个 3 相 BLDC 驱动实现 ................................................................................................ 13 11 BLDC 电机霍尔传感器控制的总体方框图 .............................................................................. 13 12 软件流 ....................................................................................................................... 14 13 使用交流电源生成直流总线电源 ......................................................................................... 16 14 使用外部直流电源为反相器生成直流总线 .............................................................................. 17 15 PWM 输出:PWM 1(黄色),PWM 2(粉色)和 PWM 5(绿色),PWM 6(蓝色)........................ 20 16 1 级 - 递增系统构建方框图 ............................................................................................... 21

无刷直流电机无位置传感器控制方法综述

无刷直流电机无位置传感器控制方法综述

无刷直流电机无位置传感器控制方法综述所谓的无位置传感器控制,正确的理解应该是无机械的位置传感器控制。

在电机运转的过程中,作为逆变桥功率器件换向导通时序的转子位置信号仍然是需要的,只不过这种信号不再由位置传感器来提供,而应该由新的位置信号检测措施来代替,即以提高电路和控制的复杂性来降低电机的复杂性。

所以,目前永磁无刷直流电机无位置传感器控制研究的核心和关键就是架构一转子位置信号检测线路,从软硬件两个方面来间接获得可靠的转子位置信号,借以触发导通相应的功率器件,驱动电机运转。

1.反电势过零点法(端电压法):基于反电动势过零点的转子位置检测方法是在忽略永磁无刷直流电机电枢反应影响的前提下。

通过检测断开相反电动势过零点。

依次得到转子的六个关键位置信号。

但是存在如下缺点:反电动势正比于转速,低速时不能通过检测端电压来获得换相信息故这种方法严重影响了电机的调速范围。

使电机起动困难;续流二极管导通引起的电压脉冲可能覆盖反电动势信号。

尤其是在高速、重载、或者绕组电气时间常数很大等情况下,续流二极管导通角度很大,可能使得反电动势法无法检测。

反电势过零检测法的改进策略:针对以上缺点,利用神经网络的非线性任意逼近特性, 提出一种基于神经元网络的电机相位补偿控制。

首先由硬件电路获得有效的反电动势信息, 再利用BP 神经网络进行正确相位补偿, 实现无刷直流电机的无位置传感器控制, 获得了较好的效果[1]。

还有一种采用人工神经元网络的永磁无刷直流电机反电势预测新方法, 采用神经元网络方法对永磁无刷直流电动机反电势波形准确预测的结果进一步用于电机动、静态特性的仿真或预测, 这将比假设电机反电势波形为理想正弦波或梯形波所进行的仿真更接近电机的实际运行结果。

较之传统的路和场的计算方法, 达到了快速性和准确性的统一, 且由于神经元网络的自学习神经元网络成功训练后, 就可以用以预测所研究类型的永磁无刷直流电机的反电势波形[2]。

直接检测法,通过比较逆变器直流环中点电压和电机断开相绕组端电压的关系, 直接检测到断开相绕组反电动势的过零点, 再将该过零点延迟30°电角度即可获得无刷直流电机绕组换相所必须的转子位置信号。

BLDC无刷直流电机(无传感器)控制有哪些方法?

BLDC无刷直流电机(无传感器)控制有哪些方法?

BLDC无刷直流电机(无传感器)控制有哪些方法?无刷直流电机(BLDC)是随着电力电子技术、微型计算机以及稀土永磁材料的发展而出现的新型电机。

无刷直流电机与有刷电机不同,因为没有电刷和换向器,不能进行机械换相。

无刷直流电机是在电机运行过程中,无法完成自动换相,而是通过一定的硬件和软件来获得电机转子位置信号,从而进行电子换相。

无刷直流电机的控制一般会采用两相导通的方波驱动控制,只要求获得准确的换相点实现准确换相,其换相点可以通过位置传感器直接获得,也可以通过检测反电动势等物理量来间接获得换相点。

因此,无位置传感器直流无刷电机控制就是如何间接获取转子位置信号,得到换相点,实现电机换相。

个人归纳,目前无位置传感器无刷直流电机控制主要有以下三种方法。

第一,反电势法。

反电势法是目前最常用的一种转子位置信号检测方法。

无刷直流电机的定子绕组的反电势为正负交变的梯形波,绕组反电势发生过零后,延迟30度的电度角的时间,这个时刻就是电机准确换相时刻。

第二,状态观测器法。

该方法的基本思想将电机的转速、位置角、电枢电压以及电流等物理参量作为状态量,在定义状态变量的基础上建立电机模型,通过一定的数学方法来确定转子位置,实现电机换相。

第三,三次谐波电势法。

这种方法是从定子三相绕组端引出的Y 型连接的网络中心点到电机绕组中心提取电压,从检测三次谐波电势来确定转子位置。

不过此方法要求绕组电感不变,三相参数对称,磁场三次谐波分量等都有要求,因此目前在应用上受到很大程度的限制。

无位置传感器无刷直流电机的控制方式主要是间接获得转子位置的方式,以上三种方式是个人的理解和总结,反电势法是目前相对比较成熟,应用比较广泛的一种。

电动车用无刷直流电机无位置传感器控制

电动车用无刷直流电机无位置传感器控制
wa d a k n fh r w r e in w ih c n c mp eey r p a e Halp s i n s n o n o d rt v r o h r i d o a d a e d sg h c a o lt l e lc l o i o e s ri r e o o e c me te t s o t o n so a i o a e s re s c n r l t t ge ,s c sl r e a u t fc lu a in, lw r l b l y h r mig ft dt n ls n o l s o t r e i s u h a g mo n a c l t c r i o sa a o o o ei i t , a i a d 3 。s f r ea s n 0 ot e d l y .At h a me h s o e s t n cr u t sd s n d t v r o e p o — wa e s met ,a p a ec mp n a i i i wa e i e o o e c me t r b t i o c g h

221) 103
要 :针对传统无传感器控制策略计算量大 、可靠性不高 、3 。 0 软件延 时等 缺点 ,基 于无刷 直流 电机反 电势过零
检测 的原理 ,分析 了三相端 电压与中性点的关 系 ,提出一种 可完 全替换 3相霍尔位 置传感器 的硬 件设计方案 ,实 现
电机 的无传感器运行 。同时在硬件电路中设计了相位 自补偿电路 ,克服以往传统方 法相位补偿不 准确 ,电机无法稳
l ms t a h h s o e h tt e p a e c mpe s t n i o c u a e a h y tm a o f c e ty r . De e o e r t— n a i s n ta c r t nd t e s se c n n tef in l un o i v lp d a p o o tp l t r by CY8C2 3 rc n rlc p a d d x e i n s,t e e p rme t lr s ls v rfe h tt y e p a f m o 45 3 f o to hi n o e p rme t o h x e i n a e u t ei d t a he i

无传感器BLDC控制与应用技巧

无传感器BLDC控制与应用技巧

无传感器BLDC控制与应用技巧无传感器无刷直流电机(BLDC)控制是现代控制领域中的一项重要技术。

传统的BLDC控制方法需要安装霍尔传感器以检测转子位置,然后采用相应的控制算法来控制电机运行。

然而,安装传感器增加了成本和复杂性,并且有时传感器可能会出错。

1.简化的控制算法:传统的BLDC控制算法有时很复杂,需要对传感器信号进行处理和校准。

无传感器BLDC控制算法可以通过简化反电势测量和位置估算来减少计算负担。

例如,可以使用反电势过零点来确定转子位置,并使用插补方法计算转子角度。

2.直接电流测量:传统的BLDC控制方法使用传感器测量电流,然后进行反电势测量和位置估计。

无传感器BLDC控制可以通过直接测量电流来省略传感器。

这可以通过在电机驱动器中添加简单的电流传感器来实现。

3.传感器故障检测和补偿:无传感器BLDC控制可以通过监测反电势和电流的变化来检测传感器故障。

当检测到传感器故障时,可以采取相应的补偿措施,如使用位置估计算法替代传感器信号。

4.自适应控制策略:无传感器BLDC控制可以通过采用自适应控制策略来提高系统性能。

自适应控制可以根据电机特性和负载要求自动调整控制参数,以实现更好的控制性能。

1.异步电机驱动:无传感器BLDC控制可以用于驱动异步电机,以实现高效的电机控制。

传统的异步电机控制通常需要复杂的硬件电路和控制算法,而无传感器BLDC控制可以提供更简单和有效的解决方案。

2.电动汽车:无传感器BLDC控制在电动汽车中得到了广泛应用。

电动汽车需要高效和精确的电机控制,以提供良好的动力性能和节能性能。

无传感器BLDC控制可以通过减少传感器的使用来降低成本和复杂性,同时提高系统可靠性。

3.空调压缩机:无传感器BLDC控制可以用于控制空调压缩机的转速。

空调压缩机通常需要根据负载需求来调整转速,以提供适当的冷却效果。

无传感器BLDC控制可以根据负载要求自动调整控制参数,以实现高效的压缩机控制。

总之,无传感器BLDC控制是一项重要的技术,可以提供简化的控制算法、直接电流测量、传感器故障检测和补偿等优势。

无刷直流电机的无位置传感器控制

无刷直流电机的无位置传感器控制

无位置传感器控制技术是无刷直流电机研究的热点之一,国内外相关研究已经取得阶段性成果。

在无刷直流电机工作过程中,各相绕组轮流交替导通,绕组表现为断续通电。

在绕组不通电时,由于绕组线圈的蓄能释放,会产生感应电动势,该感应电动势的波形在绕组两端有可能被检测出来。

利用感应电动势的一些特点,可有取代转子上的位置传感器功能,来得到需要的换相信息。

由此,就出现了无位置传感器的无刷直流电动机。

尽管无位置传感器控制方式使得转子位置检测的精确度有所降低,但由于取消了位置传感器,电机的结构更加简单,安装更加方便,成本降低,可靠性进一步提高,在对体积和可靠性有要求的领域以及不适合安装位置传感器的场合,无位置传感器无刷直流电机应用广泛。

无位置传感器控制方式下的无刷直流电机具有可靠性高、抗干扰能力强等优点,同时在一定程度上克服了位置传感器安装不准确引起的换相转矩波动。

无位置传感器技术是从控制的硬件和软件两方面着手,以增加控制的复杂性换取电机结构复杂性的降低。

以采用120o电角度两两导通换相方式的三相桥式Y接无刷直流电机为例,讨论基于现代控制理论和智能算法的无刷直流电机无位置传感器控制方法。

转子位置间接检测法目前无刷直流电机中主要采用电磁式、光电式、磁敏式等多种形式的位置传感器,但位置传感器的存在限制了无刷直流电机在某些特定场合的应用,主要体现在:1、位置传感器可使电机系统的体积增大;2、位置传感器使电机与控制系统之间导线增多,使系统易受外界干扰影响;3、位置传感器在高温、高压和湿度较大等恶劣工况下运行时灵敏度变差,系统运行可靠性降低4、位置传感器对安装精度要求较高,机械安装偏差引起的换相不准确直接影响电机的运行性能。

无位置传感器控制技术越来越受到重视,并得到了迅速发展。

依据检测原理的不同,无刷直流电机无位置传感器控制方法主要包括反电势法、磁链法、电感法及人工智能法等。

反电势法反电势法(感应电动势过零点检测法)目前是技术最成熟、应用最广泛的一种位置检测方法。

(完整版)无刷直流电动机无传感器控制方法

(完整版)无刷直流电动机无传感器控制方法

无刷直流电动机无传感器低成本控制方法关键词:无刷直流电动机无位置传感器控制可编程逻辑器件1引言无刷直流电机的无传感器控制是近年来电机驱动领域关注的一项技术。

无位置传感器控制的关键在于获得可靠的转子位置信号,即从软、硬件两个方面间接获得可靠的转子位置信号来代替传统的位置传感器[1~3]。

采用无传感器控制技术的无刷电机具有结构简单、体积小、可靠性高和可维护性强等优点,使其在多个领域内得到了充分的利用[4]。

目前对于无传感器无刷电机的控制多采用单纯依靠DSP软件控制的方法[5],但是由于控制算法计算量大,执行速度较慢,且DSP成本较高,不利于以后向市场推广。

同时也出现了应用于无传感器BLDCM控制的一些专用的集成电路[6],但由于这些芯片可扩展性和通用性较低,而且价格昂贵,只适用于低压、小功率领域。

为了扩展无传感器BLDCM应用领域,降低其控制系统的成本,扩充控制系统的功能,增加控制系统的灵活性,本文以MCU+PLD方式组成控制系统的核心,利用PLD数字逻辑功能,分担MCU 的逻辑运算压力,使MCU和PLD的功能都得到了最大程度的发挥。

对于无位置传感器BLDCM控制系统,本文着重分析了换相控制策略和闭环调速,最后通过仿真和实验,验证了控制系统的合理性和可行性。

2系统的总体硬件设计本文中所设计系统是以8位PIC单片机和PLD构成的硬件平台,硬件结构框图如图1所示。

功率逆变电路采用三相全桥逆变结构,电机定子绕组为Y接法,电机工作模式为三相6状态方式。

在本文无传感器控制方式中采用反电动势过零位置检测方法,位置检测电路根据电机端电压获取3路位置信号,将信号送入PIC单片机进行软件移相后得到3路换相信号,由可编程逻辑器件进行逻辑解码后输出6路驱动开关管的前极信号,通过驱动芯片IR2233产生驱动信号以控制各开关管的导通与关断。

该系统采用速度单闭环方式,通过改变PWM的占空比以达到调速的目的。

本文中选用Microchip 公司的单片机PIC16F874作为控制核心,它内部有8K的FLASH 程序存储器,368字节的数据存储器(RAM),256字节的EEPROM数据存储器,14个中断源,8级深度的硬件堆栈,3个定时/计数器,两个捕捉/比较/PWM (CCP)模块,10位多通道A/D转换器等外围电路和硬件资源⑹。

无位置传感器的无刷直流电动机调速控制程序

无位置传感器的无刷直流电动机调速控制程序

《无位置传感器的无刷直流电动机调速控制程序》.include "240x.h".global _c_int0;--------------------------------------以下定义常数和变量--------------------------------------------------KP .set 245 ;电流调节比例系数, 0.12的Q11格式KPS .set 100 ;速度调节比例系数.bss CAPT,1 ;换相控制字.bss P,1 ;更新占空比的比较值,由电流调节输出.bss IDC_REF,1 ;电流参考值,由速度调节输出.bss IDC_ERRORK,1 ;电流偏差.bss FLAGCUR,1 ;更新比较值和换相标志,1-允许更新,0-不允许.bss SPEED_REF,1 ;给定速度参考.bss V_ERRORK,1 ;速度偏差.bss SPEED_COUNT,1 ;速度调节环计数器.bss V1,1 ;相电压1.bss V2,1 ;相电压2.bss V3,1 ;相电压3.bss NEUTRAL,1 ;中性点电压.bss FLAG,1 ;感应电动势变符号标志,1-变了;0-没变.bss FLAGUP,1 ;转过一机械转标志,1-没转过,0-转过.bss BCOUNT,1 ;延迟时间更新值,磁定位时临时变量.bss B2COUNT,1 ;延迟时间.bss STALL,1 ;磁定位结束标志,1-结束,0-没结束.bss ASYM,1 ;延时计算感应电动势计数器.bss SPEEDFLAG,1 ;第一转时禁止速度调节标志,1-禁止,0-允许.bss TIME,1 ;每转时间计数器.bss STACK,6 ;软堆栈区;--------------------------------------定义主向量-------------------------------------------------------------.sect "vectors"RSVECT B_c_int0 ;复位INT1B PHANTOM ;INT1INT2 B PHANTOM ;INT2INT3 B PHANTOM ;INT3INT4 B PHANTOM ;INT4INT5 B PHANTOM ;INT5INT6 B ADCINT ;ADC中断…;略;--------------------------------------以下是程序-------------------------------------------------------------.text;--------------------------------------初始化程序--------------------------------------------------------------_c_int0SETC FCLRC OVMSETC SXM ;符号扩展SETCINTM ;关中断LAR AR1,#STACKLDP #0E0HSPLK #68H, WDCR ;不用看门狗SPLK#0284H,SCSR1 ;10MCLKIN,20MCLKOUTLDP #0E8HSPLK #500,T1PR ;PWM设置,周期50微秒SPLK #0000H,T1TSPLK #0FFFH,ACTRA ;PWM1~6全部高电平输出SPLK #01F4H,DBTCONA ;死区1.6微秒SPLK#500,CMPR1 ;占空比为0SPLK #500,CMPR2SPLK #500,CMPR3SPLK #8200H,CONA ;允许比较,T1下溢重载SPLK #0840H,T1CON ;连续增减计数,内部时钟,不分频SPLK#0100H,GPTCONA ;T1周期中断标志启动AD转换LDP #0E1HSPLK #0FC0H, MCRA ;引脚设置为PWMLDP#0LACC #020HSACL IMR ;允许INT6中断LACC IFR ;清标志SACL IFRLDP #0E8HLACC EVAIFRA ;清标志SACLEVAIFRALACC EVAIFRBSACL EVAIFRBLACC EVAIFRCSACL EVAIFRCSPLK #0,EVAIMRA;屏蔽中断SPLK #0,EVAIMRBSPLK #0,EVAIMRCLDP#0E1H ;AD设置SPLK#0500H,ADCTRL2 ;允许EVA启动AD转换SPLK #0900H,ADCTRL1 ;10分频SPLK #0003H,MAXCONV ;4个转换通道SPLK #3210H,CHSELSEQ1 ;ADCIN00-03通道CLRCINTM ;开总中断;--------------------------------------变量初始化---------------------------------------------------------LDP #0;变量初始化SPLK #020H,IDC_REF ;磁定位电流SPLK #0,IDC_ERRORKSPLK #0300H,SPEED_REF ;转速初值SPLK #00112,P ;最小占空比SPLK #0000H,FLAGCURSPLK #0000H,SPEED_COUNTSPLK #0000H,CAPTSPLK #0000H,V1SPLK #0000H,V2SPLK #0000H,V3SPLK #0000H,NEUTRALSPLK #0000H,FLAGSPLK #0001H,FLAGUP ;没转过一转SPLK #0001H,SPEEDFLAG ;禁止速度调节SPLK #0000H,BCOUNTSPLK #0000H,B2COUNTSPLK #0000H,STALLSPLK #0000H,ASYMSPLK #0000H, V_ERRORKSPLK #0000H,TIME;--------------------------------------准备磁定位-------------------------------------------------------------LDP #0LACC P ;装载比较初值LDP #0E8H ;反相驱动SPLK #03FDH,ACTRA;PWM1低有效,PWM6低电平,其它高电平SACL CMPR1 ;A相入,C相出,B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3;--------------------------------------等待磁定位结束------------------------------------------------------MAGSTALLLDP #0LACC STALL ;检测磁定位是否结束BDMAGSTALL,EQ ;没结束继续等待;--------------------------------------磁定位结束换相----------------------------------------------------LACC PLDP #0E8HSPLK #03DFH,ACTRA ;PWM3低有效,PWM6低电平,其它高电平SACL CMPR2 ;B相入,C相出,A不通电SPLK#0000H,CMPR3SPLK #0000H,CMPR1LDP #0SPLK #4,CAPT ;CAPT初值;--------------------------------------主循环-----------------------------------------------------------------LOOPLDP #0LACC FLAGCUR ;检测是否更新比较值BD LOOP,EQ ;不更新跳转SPLK #0,FLAGCUR ;更新,清标志CALL SEQUENCE ;调用更新子程序BLOOP ;等待下次更新;--------------------------------------假中断处理-------------------------------------------------------------PHANTOMCLRC INTMRET;--------------------------------------更新比较值或换相子程序-----------------------------------------SEQUENCELDP #0LACC TIME ;每转时间计数器ADD #1SACL TIMELACC CAPT ;换相控制字ADD #CAPT_DETER ;加起始地址BACCCAPT_DETERB RISING1 ;相当于H1上升沿B FALLING3 ;相当于H3下降沿B RISING2 ;相当于H2上升沿B FALLING1 ;相当于H1下降沿B RISING3 ;相当于H3上升沿FALLING2 ;相当于H2下降沿LACC PLDP #0E8HSPLK #0D3FH,ACTRA;PWM5低有效,PWM4低电平,其它高电平SACL CMPR3 ;C相入,B相出,A相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BDEND,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LACC FLAG ;感应电动势符号变化?BDEND,NEQ ;变了,退出LACC V1,1 ;没变,检测.V1乘2ADD V1 ;ACC=3*(BEMFA + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFABD END,LT ;<0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出RISING3LACC PLDP #0E8HSPLK #0DF3H,ACTRA ;PWM5低有效,PWM2低电平,其它高电平SACL CMPR3 ;C相入, A相出, B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BDEND,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BDEND,NEQ ;变了,退出LACC V2,1 ;没变,检测.V2乘2ADD V2 ;ACC=3*(BEMFB + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFBBDEND,GEQ ;≥0符号没变,退出SPLK #1,FLAG;否则符号改变,置过零标志LACC BCOUNTSACLB2COUNT ;更新延迟时间B END ;退出FALLING3LACC PLDP #0E8HSPLK #03FDH,ACTRA ;PWM1低有效,PWM6低电平,其它高电平SACL CMPR1 ; A相入, C相出, B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BD END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BDEND,NEQ ;变了,退出LACC V2,1 ;没变,检测.V2乘2ADD V2 ;ACC=3*(BEMFB + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFBBDEND,LT ;<0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACLB2COUNT ;更新延迟时间B END ;退出RISING2LACC PLDP #0E8HSPLK #03DFH,ACTRA ;PWM3低有效,PWM6低电平,其它高电平SACL CMPR2 ;B相入, C相出, A相不通电SPLK #0000H,CMPR3SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BDEND,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BDEND,NEQ ;变了,退出LACC V1,1 ;没变,检测.V1乘2ADD V1 ;ACC=3*(BEMFA + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFABDEND,GEQ ;≥0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出RISING1LACC PLDP #0E8HSPLK #0F3DH,ACTRA ;PWM1低有效,PWM4低电平,其它高电平SACL CMPR1 ;A相入, B相出, C相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BD END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BD END,NEQ ;变了,退出LACC V3,1 ;没变,检测.V3乘2ADD V3 ;ACC=3*(BEMFC + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFCBD END,GEQ ;≥0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出FALLING1LACC PLDP #0E8HSPLK #0FD3H,ACTRA ;PWM3低有效,PWM2低电平,其它高电平SACL CMPR2 ; B相入, A相出, C相不通电SPLK #0000H,CMPR3SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BDEND,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0SPLK #0,FLAGUP ;转过一机械转,置标志LACC FLAG ;感应电动势符号变化?BDEND,NEQ ;变了,退出LACC V3,1 ;没变,检测.V3乘2ADD V3;ACC=3*(BEMFC + NEUTRAL)SUB NEUTRAL;ACC=3*BEMFCBDEND,LT ;<0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间ENDRET;--------------------------------------速度计算和调节子程序------------------------------------------------SPEED_REGLDP #0SPLK #32,SPEED_COUNT ;25CLRC SXMLACC #0OR #0FFFFH ;ACC=FFFFH无符号数RPT #15SUBC BCOUNT ;除1/12机械转时间AND #0FFFFH ;屏蔽高位SETC SXMSUB SPEED_REFNEG ;速度偏差= SPEED_REF-SPEEDBD POS,GEQ ;检测偏差是否超限.≥0跳转ABS ;<0则取绝对值SPLK #-32,SPEED_COUNT ;- 25POSSACL V_ERRORK ;保存速度偏差SUB #03FFH ;检测上限BDOKPOS,LEQ ;不超上限则跳转SPLK #03FFH, V_ERRORK ;否则=3FFHOKPOSLT V_ERRORK ;-1024 <速度偏差< 1024MPY SPEED_COUNT ;乘25PACSACL V_ERRORK ;速度偏差<<5LT V_ERRORK;速度比例调节MPY #KPS ;乘比例系数PACADD IDC_REF,16SACH IDC_REF ;IDC_REF(K)=IDC_REF(K-1) + KPS*V_ERRORKLACC IDC_REF ;检测IDC_REF是否超限BDRES,GEQ ;≥0跳转SPLK #0,IDC_REF ;超下限则=0RESSPLK #0,SPEED_COUNT ;速度调节环计数器清0RET;--------------------------------------ADC中断子程序---------------------------------------------------ADCINT ;每50微秒转换一次MAR *,AR1 ;保存现场MAR *+SST #1, *+ ;保存ST1SST #0, *+ ;保存ST0SACH *+ ;保存ACC高16位SACL * ;保存ACC低16位;--------------------------------------速度调节与否---------------------------------------------------------------LDP #0LACC STALL ;检测磁定位是否完成?BD VDC_IDC,EQ ;STALL=0(磁定位没完成)禁止速度调节LACC SPEEDFLAG ;禁止速度调节?BDVDC_IDC,NEQ ;SPEEDFLAG=1,禁止速度调节LACC SPEED_COUNT ;检测是否该速度调节?SUB #2000 ;每100ms进行一次速度调节BDNO_SPEED_REG,NEQ ;时间没到,跳转CALL SPEED_REG ;时间到,调速度调节子程序NO_SPEED_REGLACC SPEED_COUNTADD #1SACL SPEED_COUNT ;SPEED_COUNT+1;--------------------------------------读ADC转换结果-------------------------------------------------------VDC_IDCLDP #0E0HLACC PIVR ;清ADC中断标志LDP #0E8HLACC EVAIFRA ;清T1周期中断标志SACL EVAIFRALDP #0E1HLACC ADCTRL2OR #0202HSACL ADCTRL2LACC RESULT0,10 ;读电流值LDP #0SACH IDC_ERRORKLDP #0E1HLACC RESULT1,10 ;读A相电压LDP #0SACH V1LDP #0E1HLACC RESULT2,10 ;读B相电压LDP #0SACH V2LDP #0E1HLACC RESULT3,10 ;读C相电压LDP #0SACH V3;--------------------------------------电流比例调节-----------------------------------------------------------SETC SXMLACC IDC_ERRORK,5 ;Q5格式SUB IDC_REF,5SACL IDC_ERRORK ;保存电流偏差,Q5格式LT IDC_ERRORK ;电流比例调节MPY #KP ;Q11格式PAC ;ACC = KP*IDC_ERRORKADD P,16SACH P ;KP*IDC_ERRORK + P(K-1)LACC P ;检测是否超限BD SUP_LIM,GTSPLK #0,P ;超过下限,P=0B P_OKSUP_LIMSUB #0500BD P_OK,LTSPLK #0500,P ;超过上限,P=500P_OK ;在上下限内;--------------------------------------换相准备-----------------------------------------------------------------LDP #0LACC FLAG ;过零?BDNEU,EQ;没过零,跳转LACC B2COUNT ;过零,执行延迟时间SUB #1 ;延迟时间减1SACL B2COUNTSETC SXMBD NEU,NEQ;延迟时间没到,跳转LACC CAPT ;否则更新换相控制字ADD #2SACL CAPTSUB #0CHBD OKCAPT,NEQ ;没超过12,跳转SPLK #0,CAPT ;超过12,CAPT=0OKCAPTSPLK #0,FLAG ;置过零标志SPLK #0,ASYM ;延时计数器清0,准备延时;--------------------------------------中性点电压计算----------------------------------------------------------NEULACC V1ADD V2ADD V3SACL NEUTRAL ;保存3*NEUTRALSPLK #1,FLAGCUR ;允许更新比较值LACC STALL ;检查磁定位是否完成BD SPEEDUP,NEQ ;磁定位已完成,跳转;--------------------------------------磁定位更新比较值------------------------------------------------------CLRC SXM ;否则进行磁定位LACC PLDP #0E8HSACL CMPR1 ;更新A相比较值LDP #0LACC BCOUNT ;磁定位计数器ADD #1 ;加1SACL BCOUNTSUB #0FFFFH ;延时216*50微秒SETC SXMBD RESTO,NEQ;磁定位没完成,退出SPLK #0,TIME ;磁定位完成,修改标志和初值SPLK #050H,BCOUNT ;延迟时间初值SPLK #1,STALL ;磁定位完成标志SPLK #1,SPEEDFLAG ;禁止速度调节B RESTO ;退出;--------------------------------------计算延迟时间------------------------------------------------------SPEEDUPLACC CAPT ;转完一转?SUB #4BD RESTO,NEQ;没转完,退出LACC FLAGUP ;是否计算延迟时间?BD RESTO,NEQ ;不计算,退出SPLK #0,SPEEDFLAG ;否则计算,允许速度调节CLRC SXMLACC TIME;每转时间计数器SPLK #12,BCOUNTRPT #15SUBC BCOUNT ;除12,得到转30º所用的时间AND #0FFFFHSACL BCOUNT ;保存作为延迟时间更新值SETC SXMSPLK #0,TIME ;每转时间计数器清0SPLK #1,FLAGUP ;改标志RESTOMAR *, AR1 ;恢复现场LACL *-ADDH *-LST #0, *-LST #1, *-CLRC INTM ;开中断RET.end。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无刷直流电动机无传感器低成本控制方法关键词:无刷直流电动机无位置传感器控制可编程逻辑器件1 引言无刷直流电机的无传感器控制是近年来电机驱动领域关注的一项技术。

无位置传感器控制的关键在于获得可靠的转子位置信号,即从软、硬件两个方面间接获得可靠的转子位置信号来代替传统的位置传感器[1~3]。

采用无传感器控制技术的无刷电机具有结构简单、体积小、可靠性高和可维护性强等优点,使其在多个领域内得到了充分的利用[4]。

目前对于无传感器无刷电机的控制多采用单纯依靠DSP软件控制的方法[5],但是由于控制算法计算量大,执行速度较慢,且DSP 成本较高,不利于以后向市场推广。

同时也出现了应用于无传感器BLDCM控制的一些专用的集成电路[6],但由于这些芯片可扩展性和通用性较低,而且价格昂贵,只适用于低压、小功率领域。

为了扩展无传感器BLDCM应用领域,降低其控制系统的成本,扩充控制系统的功能,增加控制系统的灵活性,本文以MCU+PLD方式组成控制系统的核心,利用PLD数字逻辑功能,分担MCU 的逻辑运算压力,使MCU和PLD的功能都得到了最大程度的发挥。

对于无位置传感器BLDCM 控制系统,本文着重分析了换相控制策略和闭环调速,最后通过仿真和实验,验证了控制系统的合理性和可行性。

2 系统的总体硬件设计本文中所设计系统是以8位PIC单片机和PLD构成的硬件平台,硬件结构框图如图1所示。

图1 系统总体结构硬件框图功率逆变电路采用三相全桥逆变结构,电机定子绕组为Y接法,电机工作模式为三相6状态方式。

在本文无传感器控制方式中采用反电动势过零位置检测方法,位置检测电路根据电机端电压获取3路位置信号,将信号送入PIC单片机进行软件移相后得到3路换相信号,由可编程逻辑器件进行逻辑解码后输出6路驱动开关管的前极信号,通过驱动芯片IR2233产生驱动信号以控制各开关管的导通与关断。

该系统采用速度单闭环方式,通过改变PWM的占空比以达到调速的目的。

本文中选用Microchip公司的单片机PIC16F874作为控制核心,它内部有8K的FLASH 程序存储器,368字节的数据存储器(RAM),256字节的EEPROM数据存储器,14个中断源,8级深度的硬件堆栈,3个定时/计数器,两个捕捉/比较/PWM(CCP)模块,10位多通道A/D转换器等外围电路和硬件资源[6]。

这些使得运用PIC16F874在设计硬件电路时,控制电路大大简化,可靠性提高,调试更加方便。

PIC16F874单片机的B端口的4~7口具有电平变化中断的功能,利用RB5~RB7作为反电动势的过零点检测信号的输入,如已开RB口中断,一旦有过零点出现(发生电平的变化)就进入RB 口中断服务。

利用CCP模块输出占空比可调的信号,可实现直流电机调速。

*3 控制方法3.1 软件相移补偿由于采用脉宽调制技术进行调速,导致无刷电机端电压波形中存在一定的高频调制分量,因此在反电势检测中必须采用有源低通滤波电路以滤除高频分量,避免得到错误的过零点,但对反电动势信号产生一定的滞后,同时由于软件执行带来的延时,故从反电势检测电路输出的反电势信号比真实的反电势信号要滞后一些。

当电机的转速较高时,信号滞后所带来的负面影响就比较严重,电机表现为高速带负载能力差,并且电流增大许多倍,甚至于电机可能会突然停转[7]。

因而要对反电势信号进行补偿,以得到准确的换相信号P a ,P b ,P c 。

反电势检测输出信号滞后的电角度跟电机的转速成正比关系如下所示:arctan()arctan(2)60nRC p RC αωπ== 电机的最佳换相时刻是在反电势过零再延迟30°(电角度)。

在实际应用中合理的设计反电动势检测电路,使其相角位移在整个调速运行频率范围内不超过30°。

如图2所示,反电势过零点从m 点移到m '点,检测到反电势过零后,相位延迟角γ应调整为γ=30-α,即再延迟γ角度进行换相。

本文是通过如下方法来实现的,计算延时30°(电角度)的时间和当前转速下反电势滞后的时间,二者之差即为检测到的反电势过零点后到正确换相之间的延时时间。

由于换相偏差角α与电机的速度相关,因此调速过程中需要动态地进行补偿。

为了节省微控制器的运算时间,可预先计算出不同速度下的延时时间,存储在ROM 中,电机在运行过程中查表调用,以空间来换取时间,提高了系统的实时性。

图2 反电动势相位延迟3.2 逻辑换相换相逻辑完全可由PIC 单片机来完成,但是由于单片机是按串行方式工作,指令在时序上是逐条执行的,在实际系统的运行过程中,恶劣的工作环境很容易使系统死机或程序飞逸。

因此本文利用PLD 器件的强大的数字逻辑功能来完成逻辑换相,不仅分担了PIC 的逻辑运算压力,同时提高了系统的稳定性和可靠性,简化了控制系统的外围设置。

PLD 实现逻辑解码的第一步是根据单片机输出换相信号P a ,P b 和P c (如表3)和正反转信号判断开关管的工作顺序(G1,G3,G5为上桥臂开关管,G2,G4,G6为下桥臂开关管)。

再根据换相信号将PIC 单片机发出的PWM 信号提供给处于工作状态的开关管作为其导通信号。

Pa Pb Pc 正转 反转 0 0 0 X X 1 0 1 G1G4 G3G2 1 0 0 G1G6 G3G6 1 1 0 G3G6 G1G6 0 1 0 G3G2 G1G4 0 1 1 G5G2 G5G4 0 0 1 G5G4 G5G2 111XX4 系统的闭环调速4.1 调速策略由于无刷直流电动机具有普通有刷直流电动机的机械性能,所以通常采用PWM 调压调速的方法。

其π方法是单片机CPU 根据采集速度给定值和速度反馈实际值,计算得出的速度误差控制量,经过数字PID 调节来控制输出PWM 信号的占空比,送入逻辑综合分配单元,控制三相桥式逆变器。

通过调节转速给定值,单片机内部调节PWM 的占空比,也就调节了加在电机上的脉冲电压,从而实现了电机转速的无极平滑调速。

为了实现速度无静差控制,速度闭环采用PI 控制器,其中比例环节可以使电机转速快速跟随给定转速,积分环节可有效实现速度的无静差精确控制,且稳定高。

电机速度采用软件T 法测速,单片机可自动地捕获到位置信号的两个上升沿,可通过计算得出两个上升沿间隔的时间T ,及在T 内计得的时钟脉冲Φ的个数m ,则通过f =1/T =1/m Φ,即可求出电机的转速。

外部转速的给定通过外部电位器,调节电位器可以得到一个0~5 V 连续变化的标准电压信号,将该信号送入单片机的AD 转换口,转换位10位的二进制数字量。

4.2 调速系统的分析以具有梯形反电动势波形的三相直流无刷电机建立数学动态模型,系统工作在二二导通、三相6拍的工作方式。

BLDCM 相电压、电流、中性点电压方程分别为x x x n U Ri e U =+ ,,x a b c =0a b c i i i ++=33a b c a b cn U U U e e e U ++++=-式中:x U 为各相对地电压,V ;x i 为绕组各相电流,A ;x e 为各相反电动势,V ;n U 为中性点对地电压,V ;R 为绕组各相电阻,Ω;L 为各相绕组自感,H ;M 为各相绕组间的互感,H 。

电磁转矩和转子运动方程分别为abce a b c e e e T i i i ωωω=++e l d T T B Jdtωω--=式中:e T 为电机的电磁转矩;ω为电机转子电角频率;l T 为负载转矩;J 为转动惯量;B 为阻尼系数。

根据无刷直流电机的数学动态模型建立无刷直流电机与调速环节的MATLAB/SIMKINK 的仿真模型,总体设计如图3所示,其中子系统1~4分别为中性点对地电压计算模块、梯形反电动势模块、PWM 调制模块和换相逻辑模块。

针对额定电压为150 V ,给定转速为1000 r/min ,定子绕组为0.5 Ω,自感为0.65 mH ,互感为1.44 mH ,极对数为1的电机进行仿真,在0.5 s ,1.5 s 时系统给定转速突变为1200 r/min ,800 r/min ,得到的转子转速、绕组相电压、电流波形如图4所示。

从仿真结果来看,与理论分析基本一致,在给定转速发生变化的情况下具有很强的跟踪能力,且具有较好的动态、静态响应。

、Saturationout1thetaIrefpwmPItheta we e/weuun1/L-MTLiaibic gA B C DCwNnnKiwK11/JBSubsystem1Subsystem2Subsystem3RDiscrete PI ControllerSubsystem4Ua Ub Ucea/web/w ec/w-s1-s1-s1图3 直流无刷电机SIMLINK 仿真模型图4 转子转速变化曲线和PWM 调速相电压、电流波形本文提出了以PIC+PLD 为控制的核心的设计方案,充分利用了PIC 单片机的丰富的片内资源,高效的运算处理能力及便捷的PWM 功能,同时结合PLD 强大的数字逻辑功能来实现对无位置传感器BLDCM 控制,保证了控制的实时性,有效的简化了硬件设计,使系统得结构更加简洁、紧凑。

最后通过仿真验证闭环调速系统设计的正确性。

相关文档
最新文档