无刷直流电机无位置传感器控制技术
- 格式:pdf
- 大小:414.16 KB
- 文档页数:3
《无位置传感器的无刷直流电动机调速控制程序》.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。
直流无刷电机无位置传感器控制方法摘要:在直流无刷电机的使用过程中,不能很准确的接收换相信号,因此,就导致该电机无法实现对换相良好的控制,为了解决这类问题的出现,本篇文章将对直流无刷电机中无位置传感器进行研究与分析,并且找到有效的控制方法。
具体的方法是利用电机内部的各种装置之间的联系,来建立出一个直观的电机模型,之后通过电机内部反电势力的不断变化来研究反电势对于换相位置的影响,在经过一定的计算从而能够保证换相信号的准确性,最终实现对其良好的控制。
本篇文章通过具体的试验与测试来对控制的方法进行验证,最终得出,通过上述的方法,能够实现对其换相的控制。
关键词:直流无刷电机;传感器;换相位置;控制效果前言随着经济与技术的共同发展,使得各种工业也得到了快速的发展,由于直流无刷电机在使用的过程中效率非常高且其的构成比较简单,使得直流无刷电机在各个领域中都被广泛地应用,其中包括航天、汽车、家电、工具等等。
与以往的有刷的电机来说,直流无刷电机的组成部分少了电刷这一部分,但是直流无刷电机的作用原理却比有刷的更为复杂。
在直流无刷电机的使用过程中,可以适当地将电机的电路进行调整,从而更好地实现对于换相信号的收集,实现对其的控制,并能够有效地缩小该电机的体积。
一、直流无刷电机的主要构造在直流无刷电机的使用过程中,主要是通过内部的传感器来对换相位置进行检测。
传感器的种类非常多样,最常见的一般为电磁式传感器、光电式传感器以及霍尔式传感器这三种类型,根据需求的不同来选择合适的传感器类型。
与其他的传感器相比,霍尔式传感器的使用成本比较低,且具有较强的性能条件,因此,该类型的传感器被使用得更加广泛。
为了保证直流无刷电机使用的效率,需要对其进行有效地控制,从而提高对于换相信号搜集的准确性。
二、背景介绍随着经济与技术的共同发展,使得人们对于电机的需求越来越大,随之对电机也有了更高的标准。
过去,大多数使用的是直流有刷电机,但这种电机存在诸多缺陷,无法满足需求。
无刷直流电动机无传感器低成本控制方法关键词:无刷直流电动机无位置传感器控制可编程逻辑器件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转换器等外围电路和硬件资源⑹。
无传感器bldc控制与应用技巧无传感器BLDC(无刷直流电机)控制是一种常用的电机控制技术,其主要应用于需要高效、精确、可靠的电机驱动系统中。
相比传统的开环控制方法,无传感器BLDC控制具有更好的动态响应和性能特征。
本文将介绍无传感器BLDC控制的原理和应用技巧。
无传感器BLDC控制是指在电机驱动系统中不使用传统的霍尔传感器或编码器等传感器来检测电机的转子位置。
传统的BLDC控制需要通过传感器来检测转子位置,然后根据位置信息来控制电机的相序和通断时机。
而无传感器BLDC控制则通过观测电机绕组的电流和电动势等信号来估算转子位置,从而实现对电机的控制。
无传感器BLDC控制的原理主要基于电机绕组的电流和电动势之间的关系。
在电机绕组中,当电流经过绕组时,会在绕组中产生电动势。
通过观测电动势的波形和幅值变化,可以估算出转子位置。
根据转子位置的估算结果,可以确定电机的相序和通断时机,从而实现对电机的控制。
无传感器BLDC控制的优点之一是简化了电机驱动系统的结构。
传统的BLDC控制需要使用额外的传感器来检测转子位置,增加了系统的复杂度和成本。
而无传感器BLDC控制不需要额外的传感器,只需要通过观测电动势等信号来估算转子位置,从而减少了系统的复杂度和成本。
无传感器BLDC控制还具有更好的动态响应和性能特征。
传统的BLDC控制需要通过传感器来检测转子位置,由于传感器的固有延迟和精度限制,会导致控制系统的动态性能受到一定的限制。
而无传感器BLDC控制通过观测电动势等信号来估算转子位置,可以实时地调整控制策略,提高系统的动态响应和性能特征。
在无传感器BLDC控制中,转子位置的估算是关键的一步。
一种常用的转子位置估算方法是基于电动势波形的比较法。
该方法通过观测电动势波形的变化,将电机的一个电极作为参考,根据电动势波形与参考电极的相位差来估算转子位置。
另一种常用的转子位置估算方法是基于电流波形的换向法。
该方法通过观测电流波形的变化,根据电流波形的变化趋势来估算转子位置。
无位置传感器无刷直流电机转子位置检测传统的获取无刷直流电机转子位置信息的方法是采用电子式、机电式、光电式等位置传感器直接测量,如霍尔效应器件(HED),光学编码器,旋转变压器等位置传感器。
然而,这些位置传感器有的分辨率低或运行特性不好,有的对环境条件敏感,如震动、潮湿和温度变化等都会使性能下降,使得整个传动系统的可靠性难以得到保证。
传感器还大大增加了电气连接线数目,给抗干扰设计带来一定困难。
略去无刷电动机的位置传感器而用其他方法检测转子的位置,是一项具有实际意义的工作,能进一步扩大无刷直流电动机的应用领域和生产规模。
无位置传感器无刷直流电机,顾名思义,就是省去了无刷直流电机中的转子位置传感器。
虽然,无位置传感器无刷直流电机不需要直接安装转子位置传感器,但在电机运转过程中,控制电机换相的转子位置信号还是需要的,因此,无位置传感器无刷直流电机控制技术的关键是架构一转子位置信号检测电路,通过软硬件间接获得可靠的转子位置信号。
就无刷直流电动机而言,目前国内外对无位置传感器无刷直流电动机做了不少的研究,提出了不少转子位置检测方法,按其原理分为以下几种:(1)利用反电势检测转子位置;(2)利用绕组电感检测转子位置;(3)利用瞬时电压的方程检测转子位置;(4)利用绕组端电压检测转子位置;(5)利用相电流检测转子位置;下面对几种典型无位置检测的方法进行比较1.1利用电机反电势信号控制电机的换向有三种检测电机反电势的方法:零交叉法、锁相环法和反电势积分法:a)零交叉法:当检测到未导通项绕组的反电势过零时,触发定时器,在定时时间结束时,逆变器实现下一个相序的换向。
该方法简单,价格便宜。
缺点是静止或低速时反电势信号为零或很小,难以准确检测绕组的反电势,因而无法得到有效的转子位置信号,系统低速性能比较差;另外,为消除干扰信号,需要对反电势信号进行深度滤波,这样造成与电机转速有关的信号相移,为了保证正确的换相需要对此相移进行补偿。
基于STM32无位置传感器无刷直流电机控制器设计一、本文概述本文主要探讨了基于STM32无位置传感器无刷直流电机控制器的设计。
随着现代科技的不断进步,电机控制技术也在日益成熟。
无刷直流电机(Brushless DC Motor, BLDC)作为一种高效、低噪音的电机类型,被广泛应用于各种工业和消费电子产品中。
然而,传统的无刷直流电机控制器通常需要位置传感器来监测电机的运行状态,这不仅增加了系统的复杂性和成本,还可能因为传感器的故障或误差影响电机的控制效果。
针对这一问题,本文提出了一种基于STM32的无位置传感器无刷直流电机控制器设计方案。
该方案利用STM32微控制器强大的处理能力和灵活的编程接口,结合先进的电机控制算法,实现了对无刷直流电机的无位置传感器控制。
文章首先介绍了无刷直流电机的基本原理和控制方法,然后详细阐述了基于STM32的无位置传感器控制器的硬件和软件设计,包括电机驱动电路、电流采样电路、控制算法等关键部分。
通过实验验证了所设计的无位置传感器无刷直流电机控制器的有效性和可靠性,为无刷直流电机的无位置传感器控制提供了一种新的解决方案。
本文的研究不仅有助于推动无刷直流电机控制技术的发展,还可为相关领域的研究人员和工程师提供有益的参考和借鉴。
通过深入研究和不断优化无位置传感器无刷直流电机控制器的设计,有望进一步提高电机的控制精度和效率,降低系统成本和维护难度,推动无刷直流电机在更多领域的应用。
二、无刷直流电机基本原理无刷直流电机(Brushless Direct Current,简称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转换器等外围电路和硬件资源⑹。
无刷直流电机反电势过零法无传感器控制无刷直流电机具有良好的线性调速、高质高效平滑运转特性,结构简单,体积小,重量轻,效率高,功率因素高,转矩/重量比高,转动惯量低,易于散热,易于维护保养等优点,因此应用范围相当广泛。
随着电力电子器件的迅速发展,直流无刷电机利用电子换相器件取代了机械电刷和换向片,极大地提高了工业制造以及相关自动化电力系统部门的生产效率与质量,同时也伴随着应用领域需求的不断扩大,对无刷直流电机设计要求也越来越高。
这些无位置传感器位置检测技术各有优缺点和适用场合,但因反电势检测法具有线路简单、技术成熟、成本低、简单易行、可靠等众多优点,所以反电势检测法成为比较理想且应用最多的无位置传感器无刷直流电机控制方法。
2 无刷直流电机概述应对环境保护标准,汽车的能效法规日益严格;消费者对节能、安全、便捷和舒适度提出更高的要求,都推动汽车功能电子化趋势日益加强。
目前的汽车已不再是当初单纯的机械产品,已成为复杂度足够高的机电一体化产品。
国际汽车权威组织预测,至2020年,一辆豪华车中的电机数量可多达120台。
无刷直流1/ 4电机具有优异的性能,能实现更高的能效和性价比,在数字电子技术飞速发展过程中,无刷直流电机被整合至汽车的执行元件中,如散热风扇、暖通空调(HVAC)、刮水器、燃油泵、水泵、油泵、座椅风扇和混合动力系统等部件里。
无刷直流电机(英文为Brush less DC Motor,简写为BLDC)属于一种极典型的机电一体化的基础产品,作为执行元件的电机与其控制装置紧密关联,构成能完成复杂功能的自动化器械。
无刷电机中无电刷和换向器或集电环一类的机械构件,由晶体管电路电子换向将交流转换为直流,以及直流逆变为交流。
无须顾忌磨损、粉尘、噪声、火花和高强度的电磁干扰,并为汽车内特定的应用提供良好的无级变速控制。
国际汽车权威组织称,无刷电机显著地提升燃油能效和燃油经济性,节省60%~70%的能耗;无刷电机用于电动助力转向(EPS),行驶距离会增加3%~5%;用于电动水泵(EWP)及电动油泵(EOP),提升约1%~3%的能效。