基于dsPIC30F4011的BLDC控制剖析.docx
- 文档编号:6982666
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:9
- 大小:165.59KB
基于dsPIC30F4011的BLDC控制剖析.docx
《基于dsPIC30F4011的BLDC控制剖析.docx》由会员分享,可在线阅读,更多相关《基于dsPIC30F4011的BLDC控制剖析.docx(9页珍藏版)》请在冰点文库上搜索。
基于dsPIC30F4011的BLDC控制剖析
1 dsPIC30F4011概述
MICROCHIP公司推出的dsPIC30FXXX系列单片机将16位单片机的控制特点和DSP高速运算的优点相结合,为嵌入式系统设计提供了适合的,单
芯片、单指令流的解决方案。
其内部采用改进型哈佛结构。
dsPIC30F4011是MICROCHIP公司专为电机高速控制设计的一种16位微处理器,具有以下
基本特点。
(1)1个16位CPU和1个DSP内核;
(2)当内部时钟频率为最高120MHz时,进行1次16位乘法运算为8.3ns;
(3)包括2048B的RAM、48kB片内程序空间和1024BE2PROM;
(4)7个中断、21条I/O口线;
(5)1路全双工UART功能模块,1个同步串行SPI功能模块,1个I2C串行通信模块和1个CAN串行通信模块;
(6)1个6通道A/D转换器,工作于10位模式,采样保持时间、转换时间、阀值检测方式和零偏补偿校正均可编程;
(7)5个16位定时器,4路捕捉器,2路比较/标准脉宽调制(PWM)单元模块;
(8)1个6通道的电机专用MCPWM控制器[1]。
dsPIC30F4011片内的MCPWM控制器是其特
色之一。
此装置大大简化了产生脉宽调制(PWM)波形的控制软件和外部硬件,通过编程可产生独立
的、具有相同频率工作方式的三相6路PWM波形,并由RE口直接输出6路PWM信号至逆变器,且三
相互补不重叠。
每个引脚驱动电流达25mA。
为了防止同一桥臂上2个功率管发生直通造成短路,该控制器还通过编程设置了死区互锁时间。
2 无刷直流电机基本工作原理
如图1所示,无刷直流电动机由电机本体、转子位置传感器、电子开关线路三部分组成,电机本体的主转子由永磁钢组成,主要作用是在电动机气隙中产生磁场。
主定子上的线圈通电后产生反应磁场,该磁场方向与转子磁场方向保持90°左右的角度,驱动转子转动。
但是由于无刷电机没有机械换向装置,不能使定子绕组依次通电,所以还要由位置传感器、位置逻辑控制单元、功率开关管共同构成一个保证电机正常运行的换向装置。
电路中,以光电器件作为位置传感器,遮光板的透光部分为120°,三个光电器件相差120°位置,因而其导通角也是120°,随着位置传感器遮光板的转动,定子绕组在位置传感器件Sa、Sb、Sc的控制下,A、B、C三相依次通电,实现了各相绕组电流的换相。
无刷直流电机速度和转矩控制主要依据如下反电动势和转矩工程计算方程:
其中:
N为电机定子每相线圈数;l为转子的长度;r为转子的内径;B为转子的磁通密度;ω为电机的
角速度;i为相电流;θ为转子位置。
从上述方程可以看出,无刷直流电机的反电动势与转速成比例,转矩与相电流也几乎是成比
例的[2]。
3 硬件电路的设计
3.1 硬件组成
基于dsPIC30F4011的无刷直流电机控制系统的原理框图如图2所示。
dsPIC通过捕获单元捕捉电机转子位置传感器上的脉冲信号,计算转子位置,dsPIC根据捕获的霍尔位置传感器脉冲信号的宽度计算出电机的当前速度,与电机的设定速度比较后,产生转速偏差信号。
该偏差信号经PI调节产生电流参考给定;将该给定参考电流与实际电流再作比较,产生电流偏差信号,经PI算法产生适当的PWM信号供给智能功率模块IRAMS10UP60A以控制电机的转速。
dsPIC通过A/D、I/O口采集电机转速设定值和电机的起停、正反转、制动命令来控制电机的运转状态,驱动保护电路可完成电机的过流、过电压、驱动时序异常等故障保护。
3.2 智能功率驱动
功率驱动部分是控制系统的一个重要组成部分,智能功率模块IRAMS10UP60A内部集成了多种功能电路,大大地简化了系统硬件电路,而且同分离元件组成的功率驱动电路相比,它的安全性、
稳定性和可靠性都要更好。
模块的自举电路和过温/过流保护电路需要外围电路协同工作,其它电路都为内置电路,由内外部电路一起实现的自举电路和过温/过流保护电路,这是该模块正常使用的关键,也是保证闭环速度调节控制系统功能实现的重要电路[3]。
3.2.1 自举电路
对于每个给高端IGBTs提供门极的3个高端电路,高端和低端驱动器需要1个浮动的电源供电,
自举电路是一种非常方便地获得浮动电源的方法,图3给出了三相开关逆变器驱动电路的其中一相的
实现方法,并在下面阐述自举工作的原理,该电路适用于每一相。
当低端IGBT导通时,自举电容Cbs
(外置)通过自举二极管Dbs,电阻Rbs和低端开关S2进行充电,因为S7的发射极接近地电位,自
举电容Cbs上的充电电压接近1V。
当低端开关断开时,S7的发射极电位上升,由于自举电容Cbs上
的充电电压接近15V,因而自举二极管Dbs反向截止,自举电容Cbs上的电压为S7提供静态电
压,对输入的开关脉冲信号进在使用这个模块时,首先要看3个外加的自举电容是否都能正常充电,
这是自举电路正常工作的关键。
自举电路的功能保证了功率部分可以由单一电源供电,简化了硬件
电路,增加了功率部分的安全性。
3.2.2 过温/过流保护电路
图4为内外电路构成的过温/过流保护电路,21脚T/Trip有双重功能,输入引脚为过流触发,热敏
电阻所感应出的模拟温度信号是输出引脚。
RNTC为热敏电阻,过温电路一直有效;过流控制晶体管是
常开的。
正常时,21脚加5V输入;过温时,21脚自动从5V下降,外控器工作;过流时,过流控制晶体
管工作,集电极为0V,21脚无外电源工作,电压自动下降,外控器工作。
过温/过流保护电路避免了功
率模块因温度过高或电流过大而引起的故障。
4 软件实现
在本实验的闭环控制实现中,软件主要有初始化程序、电机起动程序、转子位置检测及换相程序、
电压和电流保护程序及运行控制程序等组成。
程序流程图如图5[4]。
程序用C语言编写,通过MPLABC30C编译器
实现,MPLABC30C编译器是一个全功能的优化编译器,可将标准的ANSIC程序翻译为dsPIC汇编语
言源代码。
同时它还支持许多命令行选项和语言扩展,可以对dsPIC器件的硬件功能进行完全访问,
可以更好地控制代码的生成。
4.1 转子位置检测
三相BLDC电机具有3相定子,同一时刻为其中的两相通电,以产生旋转磁场。
此方法较容易实
现,但是为了防止永磁体转子被定子锁住,在知道转子磁体的精确位置的前提下,必须以特定的方式
按顺序为定子通电。
位置信息用霍尔传感器检测转子磁体位置获得。
对于典型的三相带传感器的
BLDC电机,有6个不同的工作区间,每个区间中有特定的两相绕组通电。
如图6所示通过检测霍尔传
感器,可以得到一个3位编码,编码值的范围从1到6。
每个编码值代表转子当前所处的区间。
从而提
供了需要对哪些绕组通电的信息。
因此程序可以使用简单的查表操作来确定要对哪两对特定的绕
组通电以使转子转动。
注意状态“0”和“7”对于霍尔效应传感器而言是无效状态。
软件应该检查出
这些值并相应地禁止PWM。
查表程序如下
以下是低端驱动器表。
在此StateLoTable中,在低端驱动器上施加PWM信号,而高端驱动器为
“导通”或“截止”状态。
在本实验中使用此表。
unsignedintStateLoTable[]={0x0000,0x1002,0x0420,
0x0402,0x0108,0x1008,0x0120,0x0000};
412 PWM信号的产生
PWM信号通过控制功率器件的导通和截止改变加在电机绕组上的平均电流,达到控制电机转速
的目的。
在dsPIC中用一个计数器产生PWM信号三角波,计数器的峰值和载波周期不变,经过驱动
后控制IRAMS10UP60A的导通与关断。
通过改变比较寄存器的值VCOMP,可以改变PWM信号的占
空比,调节电机的平均相电流,实现电机的调速。
PWM信号产生的寄存器设置:
InitMCPWM,对PWM做以下初始化:
(1)FPWM=16000Hz;
(2)独立的PWM;
(3)使用OVDCON控制输出;
(4)使用PI算法和速度误差设置占空比;
(5)将ADC设置为由PWM特殊触发信号
触发。
程序如下:
voidInitMCPWM(void)
{
PTPER=FCY/FPWM-1;
PWMCON1=0x0700;//禁止PWM
OVDCON=0x0000;//允许使用OVD控制
PDC1=100;//将PWM1、PWM2和PWM3初始化为100
PDC2=100;
PDC3=100;
SEVTCMP=PTPER;//特殊触发值等于16个周期值
PWMCON2=0x0F00;//后分频比设为1:
16
PTCON=0x8000;//启动PWM
}
413 速度检测
要测量实际速度,可以使用TMR3作为定时器来选通一个完整的电周期。
由于我们使用的是10
极电机,因此一个机械周期将由5个电周期构成。
如果T(秒)是一个电周期的时间,那么速度S=60/
[(P/2)×T]r/min,其中P是电机的极数。
GetSpeed子程序,通过使用每个机械周期内TMR3
中的值确定电机的精确速度。
voidGetSpeed(void)
{
if(Timer3>23000)//如果TMR3值很大,则忽略此次读取
return;
if(Timer3>0)
Speed=RPMConstant/(long)Timer3;//获得以RPM为单位的
速度
ActualSpeed+=Speed;
ActualSpeed=ActualSpeed>>1;
if(++SpeedCount==1)
{SpeedCount=0;CalculateDC();}
}
4.4 PI参数的设定
电机速度的给定是通过给定电位器来确定。
然后根据要求的速度值和实际的速度值来确定比
例速度误差和积分速度误差。
有了这两个值,就可以使用下面的公式计算出新的占空比:
NewDutyCycle(新的占空比)=Kp(比例速度误差)+Ki(积分速度误差);然后将10位的NewDutyCycle(新占空比值)装
入所有的3个PWM占空比寄存器中。
使用PI算法
来计算新的DutyCycle(占空比)值,该值将被载入
PDCx寄存器。
voidCalculateDC(void)
{
DesiredSpeed=DesiredSpeed33;
Flags.Minus=0;
if(ActualSpeed>DesiredSpeed)
SpeedError=ActualSpeed-DesiredSpeed;
else
{
SpeedError=DesiredSpeed-ActualSpeed;
Flags.Minus=1;
}
SpeedIntegral+=SpeedError;
if(SpeedIntegral>9000)
SpeedIntegral=0;
DutyCycle=(((long)Ksp3(long)SpeedError+(long)Ksi3
(long)SpeedIntegral)>>12);
DesiredSpeed=DesiredSpeed/3;
if(Flags.Minus)
DutyCycle=DesiredSpeed+DutyCycle;
elseDutyCycle=DesiredSpeed-DutyCycle;
if(DutyCycle<100)
DutyCycle=100;
if(DutyCycle>1250)
{DutyCycle=1250;SpeedIntegral=0;}
PDC1=DutyCycle;
PDC2=PDC1;
PDC3=PDC1;
}
5 结论
经过实践应用,基于dsPIC30f系列单片机的无刷直流电机控制系统具有电路简单,调速性能好,
抗干扰性强,可靠性高,稳定性好,性能价格比高等优点。
系统非常适合于小功率无刷电机的控制,
尤其可应用于伺服机构、机电一体化的调速设备。
参 考 文 献
1 MicrochipTechnologyInc.dsPIC30F4011DataSheet.2004
2 张 深.直流无刷电机原理及应用.北京:
机械工业出版社,1996
3 IR公司.IRAMS10UP60ApreliminaryDatasheet.美国IR公司,2002
4 Microchip公司的应用笔记AN957.使用dsPIC30F2010控制带传感器的BLDC电机.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 dsPIC30F4011 BLDC 控制 剖析