(完整版)无刷直流电动机无传感器控制方法
无位置传感器的无刷直流电动机调速控制程序
![无位置传感器的无刷直流电动机调速控制程序](https://img.taocdn.com/s3/m/5b23b0d69e31433239689376.png)
《无位置传感器的无刷直流电动机调速控制程序》.include "240x.h".global _c_int0;--------------------------------------以下定义常数和变量-------------------------------------------------- KP .set 245 ;电流调节比例系数, 0.12的Q11格式KPS .set 100 ;速度调节比例系数.bss CAPT,1 ;换相控制字.bss COMP,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 ;复位INT1 B PHANTOM ;INT1INT2 B PHANTOM ;INT2INT3 B PHANTOM ;INT3INT4 B PHANTOM ;INT4INT5 B PHANTOM ;INT5INT6 B ADCINT ;ADC中断…;略;--------------------------------------以下是程序------------------------------------------------------------- .text;--------------------------------------初始化程序-------------------------------------------------------------- _c_int0SETC CNFCLRC OVMSETC SXM ;符号扩展SETC INTM ;关中断LAR AR1,#STACKLDP #0E0HSPLK #68H, WDCR ;不用看门狗SPLK #0284H,SCSR1 ;10MCLKIN,20MCLKOUTLDP #0E8HSPLK #500,T1PR ;PWM设置,周期50微秒SPLK #0000H,T1CNTSPLK #0FFFH,ACTRA ;PWM1~6全部高电平输出SPLK #01F4H,DBTCONA ;死区1.6微秒SPLK #500,CMPR1 ;占空比为0SPLK #500,CMPR2SPLK #500,CMPR3SPLK #8200H,COMCONA ;允许比较,T1下溢重载SPLK #0840H,T1CON ;连续增减计数,内部时钟,不分频SPLK #0100H,GPTCONA ;T1周期中断标志启动AD转换LDP #0E1HSPLK #0FC0H, MCRA ;引脚设置为PWMLDP #0LACC #020HSACL IMR ;允许INT6中断LACC IFR ;清标志SACL IFRLDP #0E8HLACC EV AIFRA ;清标志SACL EV AIFRALACC EV AIFRBSACL EV AIFRBLACC EV AIFRCSACL EV AIFRCSPLK #0,EV AIMRA ;屏蔽中断SPLK #0,EV AIMRBSPLK #0,EV AIMRCLDP #0E1H ;AD设置SPLK #0500H,ADCTRL2 ;允许EV A启动AD转换SPLK #0900H,ADCTRL1 ;10分频SPLK #0003H,MAXCONV ;4个转换通道SPLK #3210H,CHSELSEQ1 ;ADCIN00-03通道CLRC INTM ;开总中断;--------------------------------------变量初始化--------------------------------------------------------- LDP #0 ;变量初始化SPLK #020H,IDC_REF ;磁定位电流SPLK #0,IDC_ERRORKSPLK #0300H,SPEED_REF ;转速初值SPLK #00112,COMP ;最小占空比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 COMP ;装载比较初值LDP #0E8H ;反相驱动SPLK #03FDH,ACTRA ;PWM1低有效,PWM6低电平,其它高电平SACL CMPR1 ;A相入,C相出,B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3;--------------------------------------等待磁定位结束------------------------------------------------------ MAGSTALLLDP #0LACC STALL ;检测磁定位是否结束BCND MAGSTALL,EQ ;没结束继续等待;--------------------------------------磁定位结束换相---------------------------------------------------- LACC COMPLDP #0E8HSPLK #03DFH,ACTRA ;PWM3低有效,PWM6低电平,其它高电平SACL CMPR2 ;B相入,C相出,A不通电SPLK #0000H,CMPR3SPLK #0000H,CMPR1LDP #0SPLK #4,CAPT ;CAPT初值;--------------------------------------主循环----------------------------------------------------------------- LOOPLDP #0LACC FLAGCUR ;检测是否更新比较值BCND LOOP,EQ ;不更新跳转SPLK #0,FLAGCUR ;更新,清标志CALL SEQUENCE ;调用更新子程序B LOOP ;等待下次更新;--------------------------------------假中断处理------------------------------------------------------------- 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 COMPLDP #0E8HSPLK #0D3FH,ACTRA ;PWM5低有效,PWM4低电平,其它高电平SACL CMPR3 ;C相入,B相出,A相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V1,1 ;没变,检测.V1乘2ADD V1 ;ACC=3*(BEMFA + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFABCND END,LT ;<0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出RISING3LACC COMPLDP #0E8HSPLK #0DF3H,ACTRA ;PWM5低有效,PWM2低电平,其它高电平SACL CMPR3 ;C相入, A相出, B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V2,1 ;没变,检测.V2乘2ADD V2 ;ACC=3*(BEMFB + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFBBCND END,GEQ ;≥0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出FALLING3LACC COMPLDP #0E8HSPLK #03FDH,ACTRA ;PWM1低有效,PWM6低电平,其它高电平SACL CMPR1 ; A相入, C相出, B相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V2,1 ;没变,检测.V2乘2ADD V2 ;ACC=3*(BEMFB + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFBBCND END,LT ;<0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出RISING2LACC COMPLDP #0E8HSPLK #03DFH,ACTRA ;PWM3低有效,PWM6低电平,其它高电平SACL CMPR2 ;B相入, C相出, A相不通电SPLK #0000H,CMPR3SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V1,1 ;没变,检测.V1乘2ADD V1 ;ACC=3*(BEMFA + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFABCND END,GEQ ;≥0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出RISING1LACC COMPLDP #0E8HSPLK #0F3DH,ACTRA ;PWM1低有效,PWM4低电平,其它高电平SACL CMPR1 ;A相入, B相出, C相不通电SPLK #0000H,CMPR2SPLK #0000H,CMPR3LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V3,1 ;没变,检测.V3乘2ADD V3 ;ACC=3*(BEMFC + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFCBCND END,GEQ ;≥0符号没变,退出SPLK #1,FLAG ;否则符号改变,置过零标志LACC BCOUNTSACL B2COUNT ;更新延迟时间B END ;退出FALLING1LACC COMPLDP #0E8HSPLK #0FD3H,ACTRA ;PWM3低有效,PWM2低电平,其它高电平SACL CMPR2 ; B相入, A相出, C相不通电SPLK #0000H,CMPR3SPLK #0000H,CMPR1LDP #0 ;延时过滤干扰LACC ASYM ;延时计数器ADD #1 ;加1SACL ASYMSUB #10 ;检测是否到计数值BCND END,LEQ ;没到,退出SPLK #10,ASYM ;计数值已到,测量感应电动势过零点LDP #0SPLK #0,FLAGUP ;转过一机械转,置标志LACC FLAG ;感应电动势符号变化?BCND END,NEQ ;变了,退出LACC V3,1 ;没变,检测.V3乘2ADD V3 ;ACC=3*(BEMFC + NEUTRAL)SUB NEUTRAL ;ACC=3*BEMFCBCND END,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-SPEEDBCND POS,GEQ ;检测偏差是否超限.≥0跳转ABS ;<0则取绝对值SPLK #-32,SPEED_COUNT ;- 25POSSACL V_ERRORK ;保存速度偏差SUB #03FFH ;检测上限BCND OKPOS,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是否超限BCND RES,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 ;检测磁定位是否完成?BCND VDC_IDC,EQ ;STALL=0(磁定位没完成)禁止速度调节LACC SPEEDFLAG ;禁止速度调节?BCND VDC_IDC,NEQ ;SPEEDFLAG=1,禁止速度调节LACC SPEED_COUNT ;检测是否该速度调节?SUB #2000 ;每100ms进行一次速度调节BCND NO_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 EV AIFRA ;清T1周期中断标志SACL EV AIFRALDP #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 COMP,16SACH COMP ;KP*IDC_ERRORK + COMP(K-1)LACC COMP ;检测是否超限BCND SUP_LIM,GTSPLK #0,COMP ;超过下限,COMP=0B COMP_OKSUP_LIMSUB #0500BCND COMP_OK,LTSPLK #0500,COMP ;超过上限,COMP=500COMP_OK ;在上下限内;--------------------------------------换相准备----------------------------------------------------------------- LDP #0LACC FLAG ;过零?BCND NEU,EQ ;没过零,跳转LACC B2COUNT ;过零,执行延迟时间SUB #1 ;延迟时间减1SACL B2COUNTSETC SXMBCND NEU,NEQ ;延迟时间没到,跳转LACC CAPT ;否则更新换相控制字ADD #2SACL CAPTSUB #0CHBCND 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 ;检查磁定位是否完成BCND SPEEDUP,NEQ ;磁定位已完成,跳转;--------------------------------------磁定位更新比较值------------------------------------------------------ CLRC SXM ;否则进行磁定位LACC COMPLDP #0E8HSACL CMPR1 ;更新A相比较值LDP #0LACC BCOUNT ;磁定位计数器ADD #1 ;加1SACL BCOUNTSUB #0FFFFH ;延时216*50微秒SETC SXMBCND RESTO,NEQ ;磁定位没完成,退出SPLK #0,TIME ;磁定位完成,修改标志和初值SPLK #050H,BCOUNT ;延迟时间初值SPLK #1,STALL ;磁定位完成标志SPLK #1,SPEEDFLAG ;禁止速度调节B RESTO ;退出;--------------------------------------计算延迟时间------------------------------------------------------ SPEEDUPLACC CAPT ;转完一转?SUB #4BCND RESTO,NEQ ;没转完,退出LACC FLAGUP ;是否计算延迟时间?BCND 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。
直流无刷电机无位置传感器控制方法
![直流无刷电机无位置传感器控制方法](https://img.taocdn.com/s3/m/66f8f4e1b8f3f90f76c66137ee06eff9aff8497d.png)
直流无刷电机无位置传感器控制方法摘要:在直流无刷电机的使用过程中,不能很准确的接收换相信号,因此,就导致该电机无法实现对换相良好的控制,为了解决这类问题的出现,本篇文章将对直流无刷电机中无位置传感器进行研究与分析,并且找到有效的控制方法。
具体的方法是利用电机内部的各种装置之间的联系,来建立出一个直观的电机模型,之后通过电机内部反电势力的不断变化来研究反电势对于换相位置的影响,在经过一定的计算从而能够保证换相信号的准确性,最终实现对其良好的控制。
本篇文章通过具体的试验与测试来对控制的方法进行验证,最终得出,通过上述的方法,能够实现对其换相的控制。
关键词:直流无刷电机;传感器;换相位置;控制效果前言随着经济与技术的共同发展,使得各种工业也得到了快速的发展,由于直流无刷电机在使用的过程中效率非常高且其的构成比较简单,使得直流无刷电机在各个领域中都被广泛地应用,其中包括航天、汽车、家电、工具等等。
与以往的有刷的电机来说,直流无刷电机的组成部分少了电刷这一部分,但是直流无刷电机的作用原理却比有刷的更为复杂。
在直流无刷电机的使用过程中,可以适当地将电机的电路进行调整,从而更好地实现对于换相信号的收集,实现对其的控制,并能够有效地缩小该电机的体积。
一、直流无刷电机的主要构造在直流无刷电机的使用过程中,主要是通过内部的传感器来对换相位置进行检测。
传感器的种类非常多样,最常见的一般为电磁式传感器、光电式传感器以及霍尔式传感器这三种类型,根据需求的不同来选择合适的传感器类型。
与其他的传感器相比,霍尔式传感器的使用成本比较低,且具有较强的性能条件,因此,该类型的传感器被使用得更加广泛。
为了保证直流无刷电机使用的效率,需要对其进行有效地控制,从而提高对于换相信号搜集的准确性。
二、背景介绍随着经济与技术的共同发展,使得人们对于电机的需求越来越大,随之对电机也有了更高的标准。
过去,大多数使用的是直流有刷电机,但这种电机存在诸多缺陷,无法满足需求。
无刷直流BLDC电机的无传感器梯形控制
![无刷直流BLDC电机的无传感器梯形控制](https://img.taocdn.com/s3/m/f47f5f0bc281e53a5802ff40.png)
图片列表
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
无刷直流电机无位置传感器控制方法综述
![无刷直流电机无位置传感器控制方法综述](https://img.taocdn.com/s3/m/fc75500376c66137ee061997.png)
无刷直流电机无位置传感器控制方法综述所谓的无位置传感器控制,正确的理解应该是无机械的位置传感器控制。
在电机运转的过程中,作为逆变桥功率器件换向导通时序的转子位置信号仍然是需要的,只不过这种信号不再由位置传感器来提供,而应该由新的位置信号检测措施来代替,即以提高电路和控制的复杂性来降低电机的复杂性。
所以,目前永磁无刷直流电机无位置传感器控制研究的核心和关键就是架构一转子位置信号检测线路,从软硬件两个方面来间接获得可靠的转子位置信号,借以触发导通相应的功率器件,驱动电机运转。
1.反电势过零点法(端电压法):基于反电动势过零点的转子位置检测方法是在忽略永磁无刷直流电机电枢反应影响的前提下。
通过检测断开相反电动势过零点。
依次得到转子的六个关键位置信号。
但是存在如下缺点:反电动势正比于转速,低速时不能通过检测端电压来获得换相信息故这种方法严重影响了电机的调速范围。
使电机起动困难;续流二极管导通引起的电压脉冲可能覆盖反电动势信号。
尤其是在高速、重载、或者绕组电气时间常数很大等情况下,续流二极管导通角度很大,可能使得反电动势法无法检测。
反电势过零检测法的改进策略:针对以上缺点,利用神经网络的非线性任意逼近特性, 提出一种基于神经元网络的电机相位补偿控制。
首先由硬件电路获得有效的反电动势信息, 再利用BP 神经网络进行正确相位补偿, 实现无刷直流电机的无位置传感器控制, 获得了较好的效果[1]。
还有一种采用人工神经元网络的永磁无刷直流电机反电势预测新方法, 采用神经元网络方法对永磁无刷直流电动机反电势波形准确预测的结果进一步用于电机动、静态特性的仿真或预测, 这将比假设电机反电势波形为理想正弦波或梯形波所进行的仿真更接近电机的实际运行结果。
较之传统的路和场的计算方法, 达到了快速性和准确性的统一, 且由于神经元网络的自学习神经元网络成功训练后, 就可以用以预测所研究类型的永磁无刷直流电机的反电势波形[2]。
直接检测法,通过比较逆变器直流环中点电压和电机断开相绕组端电压的关系, 直接检测到断开相绕组反电动势的过零点, 再将该过零点延迟30°电角度即可获得无刷直流电机绕组换相所必须的转子位置信号。
直流无刷电机无位置传感器控制中反电动势过零检测算法及其相位修正
![直流无刷电机无位置传感器控制中反电动势过零检测算法及其相位修正](https://img.taocdn.com/s3/m/516c116c25c52cc58bd6be12.png)
直流无刷电机无位置传感器控制中反电动势过零检测算法及其相位修正上海大学 张相军 陈伯时 朱平平上海新源变频电器有限公司 雷淮刚 摘要:针对具有梯形反电动势波形的直流无刷电机无位置传感器的控制,文章提出了一种软件实现的方法,给出了算法,并通过实验验证了这种方法的正确性和可行性。
关键词:梯形反电动势 直流无刷电机 无位置传感器控制 软件实现Zero-crossing Algorithm and Phase C orrection of BEMF in theSensorless Control of Trapezoidal BLDC MotorsZhang Xiangjun Chen Boshi Zhu Ping ping Lei Huaigang Abstract:In this paper,a softw are method an d an algorithm are put forw ard for th e sensorles s trapezoidal brus hless DC m otor.T he experimen tal results s how that the advanced m ethod is correct and feasib le.Keywords:trapez oidal BEM F br ushles s DC motor sensorless control softw are-realiz e1 引言直流无刷电机实际上是一种永磁同步电机,其转子采用永磁材料励磁,体积小、重量轻、结构简单、维护方便、运行可靠,且具有高效节能、易于控制等一系列优点,已广泛应用于办公自动化设备、计算机外围设备、仪器仪表和家用电器等领域[1]。
无位置传感器控制技术的提出,解决了传感器的难于安装和维修等一系列弊病,在小容量、轻载起动条件下,无位置传感器无刷直流电机成为一种理想的选择,并具有广阔的发展前景。
BLDC无刷直流电机(无传感器)控制有哪些方法?
![BLDC无刷直流电机(无传感器)控制有哪些方法?](https://img.taocdn.com/s3/m/169760a51b37f111f18583d049649b6649d70946.png)
BLDC无刷直流电机(无传感器)控制有哪些方法?无刷直流电机(BLDC)是随着电力电子技术、微型计算机以及稀土永磁材料的发展而出现的新型电机。
无刷直流电机与有刷电机不同,因为没有电刷和换向器,不能进行机械换相。
无刷直流电机是在电机运行过程中,无法完成自动换相,而是通过一定的硬件和软件来获得电机转子位置信号,从而进行电子换相。
无刷直流电机的控制一般会采用两相导通的方波驱动控制,只要求获得准确的换相点实现准确换相,其换相点可以通过位置传感器直接获得,也可以通过检测反电动势等物理量来间接获得换相点。
因此,无位置传感器直流无刷电机控制就是如何间接获取转子位置信号,得到换相点,实现电机换相。
个人归纳,目前无位置传感器无刷直流电机控制主要有以下三种方法。
第一,反电势法。
反电势法是目前最常用的一种转子位置信号检测方法。
无刷直流电机的定子绕组的反电势为正负交变的梯形波,绕组反电势发生过零后,延迟30度的电度角的时间,这个时刻就是电机准确换相时刻。
第二,状态观测器法。
该方法的基本思想将电机的转速、位置角、电枢电压以及电流等物理参量作为状态量,在定义状态变量的基础上建立电机模型,通过一定的数学方法来确定转子位置,实现电机换相。
第三,三次谐波电势法。
这种方法是从定子三相绕组端引出的Y 型连接的网络中心点到电机绕组中心提取电压,从检测三次谐波电势来确定转子位置。
不过此方法要求绕组电感不变,三相参数对称,磁场三次谐波分量等都有要求,因此目前在应用上受到很大程度的限制。
无位置传感器无刷直流电机的控制方式主要是间接获得转子位置的方式,以上三种方式是个人的理解和总结,反电势法是目前相对比较成熟,应用比较广泛的一种。
(完整版)无刷直流电动机无传感器控制方法
![(完整版)无刷直流电动机无传感器控制方法](https://img.taocdn.com/s3/m/f156405e0508763230121274.png)
无刷直流电动机无传感器低成本控制方法关键词:无刷直流电动机无位置传感器控制可编程逻辑器件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的占空比以达到调速的目的。
无刷直流电机的无位置传感器控制
![无刷直流电机的无位置传感器控制](https://img.taocdn.com/s3/m/257d5011f78a6529647d53a5.png)
无位置传感器控制技术是无刷直流电机研究的热点之一,国内外相关研究已经取得阶段性成果。
在无刷直流电机工作过程中,各相绕组轮流交替导通,绕组表现为断续通电。
在绕组不通电时,由于绕组线圈的蓄能释放,会产生感应电动势,该感应电动势的波形在绕组两端有可能被检测出来。
利用感应电动势的一些特点,可有取代转子上的位置传感器功能,来得到需要的换相信息。
由此,就出现了无位置传感器的无刷直流电动机。
尽管无位置传感器控制方式使得转子位置检测的精确度有所降低,但由于取消了位置传感器,电机的结构更加简单,安装更加方便,成本降低,可靠性进一步提高,在对体积和可靠性有要求的领域以及不适合安装位置传感器的场合,无位置传感器无刷直流电机应用广泛。
无位置传感器控制方式下的无刷直流电机具有可靠性高、抗干扰能力强等优点,同时在一定程度上克服了位置传感器安装不准确引起的换相转矩波动。
无位置传感器技术是从控制的硬件和软件两方面着手,以增加控制的复杂性换取电机结构复杂性的降低。
以采用120o电角度两两导通换相方式的三相桥式Y接无刷直流电机为例,讨论基于现代控制理论和智能算法的无刷直流电机无位置传感器控制方法。
转子位置间接检测法目前无刷直流电机中主要采用电磁式、光电式、磁敏式等多种形式的位置传感器,但位置传感器的存在限制了无刷直流电机在某些特定场合的应用,主要体现在:1、位置传感器可使电机系统的体积增大;2、位置传感器使电机与控制系统之间导线增多,使系统易受外界干扰影响;3、位置传感器在高温、高压和湿度较大等恶劣工况下运行时灵敏度变差,系统运行可靠性降低4、位置传感器对安装精度要求较高,机械安装偏差引起的换相不准确直接影响电机的运行性能。
无位置传感器控制技术越来越受到重视,并得到了迅速发展。
依据检测原理的不同,无刷直流电机无位置传感器控制方法主要包括反电势法、磁链法、电感法及人工智能法等。
反电势法反电势法(感应电动势过零点检测法)目前是技术最成熟、应用最广泛的一种位置检测方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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所示。
功率逆变电路采用三相全桥逆变结构,电机定子绕组为Y接法,电机工作模式为三相6状态方式。
在本文无传感器控制方式中采用反电动势过零位置检测方法,位置检测电路根据电机端电压获取3路位置信号,将信号送入PIC单片机进行软件移相后得到3路换相信号,由可编程逻辑器件进行逻辑解码后输出6路驱动开关管的前极信号,通过驱动芯片IR2233产生驱动信号以控制各开关管的导通与关断。
该系统采用速度单闭环方式,通过改变PWM的占空比以达到调速的目的。
本文中选用Microchip 公司的单片机PIC16F874作为控制核心,它内部有8K的FLASH 程序存储器,368字节的数据存储器(RAM),256字节的EEPROM数据存储器,14个中断源,8级深度的硬件堆栈,3个定时/计数器,两个捕捉/比较/PWM (CCP)模块,10位多通道A/D转换器等外围电路和硬件资源⑹。
这些使得运用PIC16F874在设计硬件电路时,控制电路大大简化,可靠性提高,调试更加方便。
PIC16F874单片机的B端口的4~7 口具有电平变化中断的功能,利用RB5~RB7作为反电动势的过零点检测信号的输入,如已开RB 口中断,一旦有过零点出现(发生电平的变化)就进入RB 口中断服务。
利用CCP模块输出占空比可调的信号,可实现直流电机调速。
3控制方法3.1软件相移补偿由于采用脉宽调制技术进行调速,导致无刷电机端电压波形中存在一定的高频调制分量,因此在反电势检测中必须采用有源低通滤波电路以滤除高频分量,避免得到图1系统总体结构硬件框图错误的过零点,但对反电 动势信号产生一定的滞后,同时由于软件执行带 来的延时,故从反电势检测电路输出的反电势信 号比真实的反电势信号要滞后一些。
当电机的转 速较高时,信号滞后所带来的负面影响就比较严 重,电机表现为高速带负载能力差,并且电流增 大许多倍,甚至于电机可能会突然停转⑺。
因而要对反电势信号进行补偿,以得到准确的换相信 号 Pa , Pb ,Pc 。
反电势检测输出信号滞后的电角度跟电机的 转速成正比关系如下所示:arctan ( RC ) arctan (2n p~^RC )60电机的最佳换相时刻是在反电势过零再延迟 30° (电角度)。
在实际应用中合理的设计反电动 势检测电路,使其相角位移在整个调速运行频率 范围内不超过30°。
如图2所示,反电势过零点从m 点移到m'点,检测到反电势过零后,相位延迟角丫应调整为 Y 30- a,即再延迟 丫角度进行换 相。
本文是通过如下方法来实现的,计算延时 30°(电角度)的时间和当前转速下反电势滞后的时 间,二者之差即为检测到的反电势过零点后到正 确换相之间的延时时间。
由于换相偏差角a 与电机的速度相关,因此调速过程中需要动态地进行 补偿。
为了节省微控制器的运算时间,可预先计 算出不同速度下的延时时间,存储在ROM 中,电机在运行过程中查表调用, 以空间来换取时间,提高了系统的实时性。
3.2逻辑换相换相逻辑完全可由 PIC 单片机来完成,但是由于单片机是按串行方式工作,指令在时序上是逐条执 行的,在实际系统的运行过程中,恶劣的工作环境很容易使系统死机或程序飞逸。
因此本文利用PLD 器件的强大的数字逻辑功能来完成逻辑换相,不仅分担了 PIC 的逻辑运算压力,同时提高了系统的稳定性和可靠性,简化了控制系统的外围设置。
PLD 实现逻辑解码的第一步是根据单片机输出换相信号Pa , Pb 和Pc (如表3)和正反转信号判断开关管的工作顺序(G1 , G3, G5为上桥臂开关管,G2, G4, G6为下桥臂开关管)。
再根据换相信号将 PIC 单片机发出的PWM 信号提供给处于工作状态的开关管作为其导通信号。
表34系统的闭环调速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拍的工作方式。
dT e T B J ——dt式中:T e 为电机的电磁转矩;为电机转子电角频率;T l 为负载转矩;J 为转动惯量;B 为阻尼系数。
根据无刷直流电机的数学动态模型建立无刷直流电机与调速环节的MATLAB/SIMKINK 的仿真模型,总体设计如图3所示,其中子系统1〜4分别为中性点对地电压计算模块、 梯形反电动势模块、PWM 调制模块和换相逻辑模块。
针对额定电压为 150 V ,给定转速为1000 r/min ,定子绕组为0.5 Q,自感为0.65 mH ,互感为1.44 mH , 极对数为1的电机进行仿真,在0.5 s, 1.5 s 时系统给定转速突变为1200 r/min , 800 r/min ,得到的转子转速、绕组相电压、电流波形如图4所示。
从仿真结果来看,与理论分析基本一致,在给定转速发生变化的情况下具有很强的跟踪能力,且具有较好的动态、静态响应。
、BLDCM 相电压、电流、中性点电压方程分别为RL (L M)di xU xdt dt xe x U n x a,b,cU nU a U b U c e a e b e c 3 3U x 为各相对地电压, V ; R 为绕组各相电阻,Q ; 式中: 电压,V ;电磁转矩和转子运动方程分别为i x 为绕组各相电流,L 为各相绕组自感, A ; e x 为各相反电动势,V ; U n 为中性点对地 H ;M 为各相绕组间的互感,T e 邑i a 电i be c i'c图3直流无刷电机SIMLINK 仿真模型_L DCw e/w subsystem :g AUb B ibUcC ic theta Subsystemle uia ea/web/w ec/wpwm*Iref SPISubsystem4out1 theta DiscreteSaturation PI ControllerJin >n■uK.IK E+ 52转子转速变化曲线和PWM调速相电压、电流波形本文提出了以PIC+PLD为控制的核心的设计方案,充分利用了PIC单片机的丰富的片内资源,高效的运算处理能力及便捷的PWM功能,同时结合PLD强大的数字逻辑功能来实现对无位置传感器BLDCM 控制,保证了控制的实时性,有效的简化了硬件设计,使系统得结构更加简洁、紧凑。
最后通过仿真验证闭环调速系统设计的正确性。