工作原理
无刷直流电机由电动机主体和驱动器组成,是一种典型的机电一体化
无刷直流电机实物图 [1]
产品。 电动机的定子绕组多做成三相对称星形接法,同三相异步电动机十分相似。电动机的转子上粘有已充磁的永磁体 ,为了检测电动机转子的极性,在电动机内装有位置传感器。驱动器由功率电子器件和集成电路等构成,其功能是:接受电动机的启动、停止、制动信号,以控制电动机的启动、停止和制动;接受位置传感器信号和正反转信号,用来控制逆变桥各功率管的通断,产生连续转矩;接受速度指令和速度反馈信号,用来控制和调整转速;提供保护和显示等等。
直流电机具有响应快速、较大的起动转矩、从零转速至额定转速具备可提供额定转矩的性能,但直流电机的优点也正是它的缺点,因为直流电机要产生额定负载下恒定转矩的性能,则电枢磁场与转子磁场须恒维持90°,这就要藉由碳刷及整流子。碳刷及整流子在电机转动时会产生火花、碳粉因此除了会造成组件损坏之外,使用场合也受到限制。交流电机没有碳刷及整流子,免维护、坚固、应用广,但特性上若要达到相当于直流电机的性能须用复杂控制技术才能达到。现今半导体发展迅速功率组件切换频率加快许多,提升驱动电机的性能。微处理机速度亦越来越快,可实现将交流电机控制置于一旋转的两轴直角坐标系统中,适当控制交流电机在两轴电流分量,达到类似直流电机控制并有与直流电机相当的性能。
此外已有很多微处理机将控制电机必需的功能做在芯片中,而且体积越来越小;像模拟/数字转换器(analog-to-digital converter,adc)、脉冲宽度调制(pulse wide modulator,pwm)…等。直流无刷电机即是以电子方式控制交流电机换相,得到类似直流电机特性又没有直流电机机构上缺失的一种应用。
结构
直流无刷电机是同步电机的一种,也就是说电机转子的转速受电机定子旋转磁场的速度及转子极数(p)影响:
n=60.f / p。在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。也就是说直流无刷电机能够在额定负载范围内当负载变化时仍可以控制电机转子维持一定的转速。
直流无刷驱动器包括电源部及控制部如图 (1) :电源部提供三相电源给电机,控制部则依需求转换输入电源频率。
电源部可以直接以直流电输入(一般为24v)或以交流电输入(110v/220 v),如果输入是交流电就得先经转换器(converter)转成直流。不论是直流电输入或交流电输入要转入电机线圈前须先将直流电压由换流器(inverter)转成3相电压来驱动电机。换流器(inverter)一般由6个功率晶体管(q1~q6)分为上臂(q1、q3、q5)/下臂(q2、q4、q6)连接电机作为控制流经电机线圈的开关。控制部则提供pwm(脉冲宽度调制)决定功率晶体管开关频度及换流器(inverter)换相的时机。直流无刷电机一般希望使用在当负载变动时速度可以稳定于设定值而不会变动太大的速度控制,所以电机内部装有能感应磁场的霍尔传感器(hall-sensor),做为速度之闭回路控制,同时也做为相序控制的依据。但这只是用来做为速度控制并不能拿来做为定位控制。
特点
1、可替代直流电机调速、变频器+变频电机调速、异步电机+减速机调速;
直流无刷电机(3张)
2、具有传统直流电机的优点,同时又取消了碳刷、滑环结构;
3、可以低速大功率运行,可以省去减速机直接驱动大的负载;
4、体积小、重量轻、出力大;
5、转矩特性优异,中、低速转矩性能好,启动转矩大,启动电流小;
6、无级调速,调速范围广,过载能力强;
7、软启软停、制动特性好,可省去原有的机械制动或电磁制动装置;
8、效率高,电机本身没有励磁损耗和碳刷损耗,消除了多级减速耗,综合节电率可达20%~60%。
9、可靠性高,稳定性好,适应性强,维修与保养简单;
10、耐颠簸震动,噪音低,震动小,运转平滑,寿命长;
11、不产生火花,特别适合爆炸性场所,有防爆型;
12、根据需要可选梯形波磁场电机和正弦波磁场电机。
应用
无刷直流电机的应用十分广泛,如汽车、工具、工业工控、自动化以及航空航天等等。总的来说,无刷直流电机可以分为以下三种主要用途:
持续负载应用:主要是需要一定转速但是对转速精度要求不高的领域,比如风扇、抽水机、吹风机等一类的应用,这类应用成本较低且多为开环控制。
可变负载应用:主要是转速需要在某个范围内变化的应用,对电机转速特性和动态响应时间特性有更高的需求。如家用器具中的、甩干机和压缩机就是很好的例子,汽车工业领域中的油泵控制、电控制器、发动机控制等,这类应用的系统成本相对更高些。
定位应用:大多数工业控制和自动控制方面的应用属于这个类别,这类应用中往往会完成能量的输送,所以对转速的动态响应和转矩有特别的要求,对控制器的要求也较高。测速时可能会用上光电和一些同步设备。过程控制、机械控制和运输控制等很多都属于这类应用。
实用性新型无刷电机是与电子技术、微电子技术、数字技术、自控技术以及材料科学等发展紧密联系的。它不仅限于交直流领域,还涉及电动、发电的能量转换和信号传感等领域。在电机领域中新型无刷电机的品种是较多的,但性能优良的无刷电机因受到价格的限制,其应用还不十分广泛。下面分别就主要的新型无刷电机进行探索与研究。
这个是完整的程序哦,建议你别用51,过时了,有些功能还有焊接扩展电路麻烦
用AVR的吧
另外下面的程序是获奖的大学生电子设计作品一等奖呢,电路就不给了,要不你那就没啥意思了,快毕业了就点,有好处
#include<iom16vh>
#include<macrosh>
#define uchar unsigned char
#define uint unsigned int
uchar senserflag=0; //传感器状态标志
uchar count1=0;
uchar jsflag=0; //金属标志
uchar task=1; //任务标志
uint distancedata=0;//路程值
uint distancecount=0;//路程脉冲记数
//数码管字型表,对应0,1,2,3,4,5,6,7,8,9//#pragma data:code
#pragma data:code
const uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
#pragma data:data
static uchar Data[3]={0,0,0}; //显示初始值:0 0 0
uchar CNT=0; //初始计数值:0
uchar Timer[2]={1,10}; //初始时间00:00
uchar disdata[3]={0,0,0}; //路程初值0
//T/C0中断服务函数//
#pragma interrupt_handler Timer0:10
void Timer0(void)
{TCNT0=0x06;
CNT++; //中断次数累加
if(CNT==125)
{CNT=0; //计数到125次,计数值复位
Timer[1]--; //秒加1
if(Timer[1]==255)
{Timer[1]=59;
Timer[0]--;} //分进位
if(Timer[0]==10)
Timer[0]=0;} //计数到达最高位,计数复位
}
void DelayMs(uint i)
{
uint j;
for(;i!=0;i--)
{for(j=4000;j!=0;j--){;}}
}
void Display(uchar p) //动态显示函数,参数p为待显示的数组名
{uchar i,sel;
for(i=0;i<3;i++)
{sel=0x02;
PORTB=~(sel<<i); //选通最右边的数码管
PORTC=Table[p[i]]; //送字型码
DelayMs(1); //显示延时
PORTC=0x00;
//移位以显示前一位
}
}
//计数值处理函数。参数p1:时间数组名;参数p2:显示数组名//
//功能:此函数用于将计数值拆分为BCD码的10分,分,10秒,秒//
void Process(uchar p1,uchar p2)
{
p2[0]=p1[0]%10;
p2[1]=p1[1]/10;
p2[2]=p1[1]%10;
}
//
//处理传感器状态
#pragma interrupt_handler readportA:9
void readportA(void)
{
if(task) js_jc();
if ((PINA&0X3f)==0X00) //没有,检测小车行驶状态
senserflag=0; //不调整
else bianma();
}
//
void js_jc(void)
{if(PINA&0x40)
jsflag=1;
if((jsflag==1)&(!(PINA&0x40)))
jsflag=2;
}
//
void bianma(void)
{uchar readtemp;
readtemp=PINA&0x3f;
switch (readtemp)
{case 0x20 : senserflag=1;break;// 过左偏
case 0x30 : senserflag=1;break;// 过左偏
case 0x28 : senserflag=1;break;// 过左偏
case 0x38 : senserflag=1;break;// 过左偏
case 0x01 : senserflag=2;break; // 过右偏
case 0x03 : senserflag=2;break; // 过右偏
case 0x05 : senserflag=2;break; // 过右偏
case 0x07 : senserflag=2;break; // 过右偏
case 0x10 : senserflag=1;break;//大左偏
case 0x02 : senserflag=2;break;//大右偏
case 0x18 : senserflag=3;break;//左偏
case 0x06 : senserflag=4;break;//右偏
case 0x08 : senserflag=5;break;//微左偏
case 0x04 : senserflag=6;break;//微右偏
default :senserflag=0; break;
}
}
//timer1 initial
void TIMER1_init(int temp_timsk ,int temp_ccra,int temp_ccrb )
{ uchar sreg;
sreg=SREG;
_CLI();
TIMSK=temp_timsk;
TCCR1A= temp_ccra;
TCCR1B= temp_ccrb;
SREG=sreg;
}
//write OCR1A
void set_ocr1A(int tempocr)
{ uchar sreg;
sreg=SREG;
_CLI();
OCR1A=tempocr;
SREG=sreg;
}
//write OCR1B
void set_ocr1B(int tempocr)
{ uchar sreg;
sreg=SREG;
_CLI();
OCR1B=tempocr;
SREG=sreg;
}
//long delay
void delay(int k)
{int i,j;
for(i=0;i<=k;i++)
{for(j=0;j<=5000;j++);}
}
//初始化
void system_set ()
{
DDRA=0X80; //PA7输出,其他输入
PORTA=0X00;
DDRB=0XFE; //PORTB0输入,其它输出
PORTB=0X0E;
DDRC=0x7f;
PORTC=0x7f;
DDRD=0xf0;
PORTD=0xc0;
set_ocr1A(200);
set_ocr1B(200);
TIMER1_init( 0X04, 0XA1, 0X03 );
TCNT1=0Xff;
_SEI();
}
//timer0 initial//
void timer0_init(uchar temp_tcnt0,uchar temp_tccr0)
{TCNT0=temp_tcnt0;
TCCR0=temp_tccr0;
}
//校偏
void speed_revise(void)
{
switch (senserflag)
{case 0: {set_ocr1A(250); set_ocr1B(250);}break;//无偏,向前走
case 1: {set_ocr1B(255); set_ocr1A(0);}break;//大左偏,右电机减速
case 2: {set_ocr1A(255); set_ocr1B(0);}break;//大右偏,左电机减速
case 3: {set_ocr1A(80); set_ocr1B(255);}break;//左偏,右电机减速
case 4: {set_ocr1A(255); set_ocr1B(80);}break;// 右偏,左电机减速
case 5: {set_ocr1B(255); set_ocr1A(150);}break;//微左偏,右电机减速
case 6: {set_ocr1B(150); set_ocr1A(255);}break;//微右偏,左电机减速
default:{set_ocr1A(250); set_ocr1B(250);} break;
}
}
//停车倒转函数
void stop_roll_rob()
{uchar temp=0;
if(jsflag==1)
{
PORTA^=0x80;
}
if(jsflag==2)
{_CLI();
set_ocr1A(0); //如果jsflag==2停车
set_ocr1B(0);
task=0;
PORTA^=0x80;
display_data();//显示数据处理
timer0_init(0x06,0x04);
TIMSK=0x01;
_SEI();
do
{Process(Timer,Data); //计数值处理
Display(Data); //动态扫描显示
}while((Timer[0]!=0)|(Timer[1]!=0));
PORTC=0;
PORTB=0X0E;
_CLI();
TIMSK=0x04;
timer0_init(0,0x06);
PORTD=0x40; //旋转180度
set_ocr1A(150);
set_ocr1B(150);
do
{temp=TCNT0;
}
while (temp<26);
set_ocr1A(0);
set_ocr1B(0);
delay(100);
if(PINC&0x80)
{timer0_init(0,0x06);
PORTD=0X80;//反向旋转360度
set_ocr1A(150);
set_ocr1B(150);
do
{temp=TCNT0;
}
while (temp<55);
}
PORTD=0xc0;
set_ocr1A(0);
set_ocr1B(0);
delay(500);
jsflag=3;
_SEI();
}
}
//停车扫描函数
void stop_scan(void)
{uchar temp;
if(PIND&0x04)
{_CLI();
set_ocr1A(0);
jsflag=4;
while(1)
{
if(PIND&0x08)
{set_ocr1B(0);break;
}
}
delay(200);
timer0_init(0,0x06);
set_ocr1A(100);
set_ocr1B(100);
do
{temp=TCNT0;
}
while (temp<18);
set_ocr1A(0);
set_ocr1B(0);
while(1)
{Display(disdata);}
}
}
//路程测量
void distance(void)
{
if(TIFR&0X01)
{TIFR|=0x01;
TCNT0=0;
distancecount+=256;
}
}
//路程计算显示数据处理
void display_data(void)
{distancecount+=TCNT0;
distancedata=distancecount53/100;
disdata[0]=distancedata/100;
disdata[1]=(distancedata%100)/10;
disdata[2]=distancedata%10;
}
//主函数
void main(void)
{OSCCAL=0xBA;
delay(200);
system_set ();
timer0_init(0,0x06);
while(1)
{if(jsflag!=4)
speed_revise();
if(task)
stop_roll_rob();
if(jsflag==3)
stop_scan();
if(!jsflag)
distance();
}
}
无刷直流电动机采用电子换向装置,代替了传统的机械换向装置(换向器和电刷),不但保留了直流电动机良好的调速与启动特性,而且具有交流电动机结构简单和维修方便等优点,这种电动机性能良好,工作可靠,因此,近年来迅速发展。传统型直流电动机电枢是旋转的,磁极是静止的,但无刷直流电动机于此相反,磁极是旋转的,电枢是静止的,电枢绕组的电流换向可借助位置传感器和电子开关电路来完成。使电机无刷。无刷直流电动机一般由电动机、位置传感器、和电子开关三部分组成。电动机本身由多相(三相、四相、五相不等)电枢绕组定子和一定极对数的永磁体转子组成。AA、BB、CC表示电动机的三相定子绕组,NS是永久磁铁,是电动机的转子,PS是转子位置传感器,它的转子与电动机的转子同轴相连,BG1、BG2、BG3是电子开关线路的功率开关管,三相绕组A、B、C分别于BG1、BG2、BG3相串联后接到电源上。它的动作原理是,由PS发出信号控制BG1、BG2、BG3等开关管的导通与截止,当开关管导通时,相应的定子绕组中,就有电流通过并产生磁场,该磁场与永磁转子磁极相互作用便产生力矩,使电动机转子旋转,由于位置传感器转子与电动机同轴相连,因此它的转子也跟着转动并依次地向BG1、BG2、BG3发出信号,控制其导通与截止,从而电枢绕组中的电流随着转子位置的变化依次序换向,使电枢磁场步进式旋转,电动机的转子就连续不断地旋转下去
伺服电机是指在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。有交流伺服电机与直流伺服电机。他们的区别如下:
一、原理不同:
1、交流伺服电机的定子三相线圈是由伺服编码控制电路供电的,转子是永磁式的、电机的转向、速度、转角都是由编码控制器所决定的。
2、直流伺服电机的转子也是用磁体的,定子绕组则是由表伺服编码脉冲电路供电。
二、维修成本不同:
1、交流伺服电机维护方便。
2、直流伺服电机容易实现调速,控制精度高,但维护成本高 *** 作麻烦。
三、控制方式不同:
1、交流伺服电机控制方式有三种,幅值控制、相位控制和幅相控制。
2、直流伺服电机的控制方式主要有两种:电枢电压控制、励磁磁场控制。
四、性能不同:
1、交流电机的特性是比较软,当达到额定力矩后,如果负载力矩增加,就很容易造成突然的失速。但是直流电动机具有响应快速、较大的起动转矩、从零转速至额定转速具备可提供额定转矩的性能。 交流电机虽然没有碳刷及整流子,免维护、坚固、应用广,但特性上若要达到相当于直流电机的性能须用复杂控制技术才能达到。现今半导体发展迅速功率组件切换频率加快许多,提升驱动电机的性能。
2、直流伺服电机,它包括定子、转子铁芯、电机转轴、伺服电机绕组换向器、伺服电机绕组、测速电机绕组、测速电机换向器,所述的转子铁芯由矽钢冲片叠压固定在电机转轴上构成。直流电机有着良好精确的速度控制特征不说,还有可以再整个速度区内实现平滑控制,几乎没有任何振荡,高效率,不发热。
伺服电机:是在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。伺服电机是可以连续旋转的电-机械转换器。作为液压阀控制器的伺服电机,属于功率很小的微特电机,以永磁式直流伺服电机和并激式直流伺服电机最为常用。
伺服电机的作用:伺服电机可使控制速度,位置精度非常准确。
伺服电机的分类:直流伺服电机和交流伺服电机。
直流伺服电机的输出转速与输入电压成正比,并能实现正反向速度控制。具有起动转矩大,调速范围宽,机械特性和调节特性的线性度好,控制方便等优点,但换向电刷的磨损和易产生火花会影响其使用寿命。近年来出现的无刷直流伺服电机避免了电刷摩擦和换向干扰,因此灵敏度高,死区小,噪声低,寿命长,对周围电子设备干扰小。
直流伺服电机的输出转速/输入电压的传递函数可近似视为一阶迟后环节,其机电时间常数一般大约在十几毫秒到几十毫秒之间。而某些低惯量直流伺服电机(如空心杯转子型、印刷绕组型、无槽型)的时间常数仅为几毫秒到二十毫秒。
小功率规格的直流伺服电机的额定转速在3000r/min以上,甚至大于10000r/min。因此作为液压阀的控制器需配用高速比的减速器。而直流力矩伺服电机(即低速直流伺服电机)可在几十转/分的低速下,甚至在长期堵转的条件下工作,故可直接驱动被控件而不需减速
直流伺服电机分为有刷和无刷电机。
有刷电机成本低,结构简单,启动转矩大,调速范围宽,控制容易,需要维护,但维护方便(换碳刷),产生电磁干扰,对环境有要求。因此它可以用于对成本敏感的普通工业和民用场合。
无刷电机体积小,重量轻,出力大,响应快,速度高,惯量小,转动平滑,力矩稳定。控制复杂,容易实现智能化,其电子换相方式灵活,可以方波换相或正弦波换相。电机免维护,效率很高,运行温度低,电磁辐射很小,长寿命,可用于各种环境。
交流伺服电机也是无刷电机,分为同步和异步电机,目前运动控制中一般都用同步电机,它的功率范围大,可以做到很大的功率。大惯量,最高转动速度低,且随着功率增大而快速降低。因而适合做低速平稳运行的应用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)