陈国伟,丁学明
(上海理工大学 光电信息与计算机工程学院,上海 200093)
基于CAN总线的无刷直流电机控制系统设计
陈国伟,丁学明
(上海理工大学 光电信息与计算机工程学院,上海 200093)
传统的无刷直流电机控制系统均是对单一的电机进行控制,然而控制单一的电机工作效率低,无法满足现代工业发展的需求。针对某些领域需要采用多电机进行控制的情况,文中采用STM32与ISO 1050构建多台无刷直流电机CAN总线网络方案。该方案通过采用方波控制无刷直流电机,以及PI算法进行限流从而实现系统稳定工作。实验结果表明,该控制系统能使多台无刷直流电机工作在设定的转速,控制误差在5 r·min-1以内。
CAN总线;无刷直流电机;PI
无刷直流电机具有结构简单、调速性能好、功率密度大等特点,在工业、航空航天等领域得到了日益广泛的应用[1]。随着现代工业的快速发展,单一的电机已经无法满足生产的需求,而需要多台电机进行配合。目前,多电机控制系统大多数采用传统的集散式控制系统(Distributed Control System,DCS)结构。此类系统具有管理与控制分离的核心思想,但是其开放性低,信号传输方式非数字式,控制功能分散程度不够。现场总线控制系统(Fieldbus Control System,FCS)与传统的集散式控制系统相比具有信号传输数据化,系统结构彻底分散化,通信协议开放化等优点。CAN(Control Area Network)即控制器局域网络,是一种高性能,高可靠性,易开发和低成本的现场总线,能有效支持分布控制及实时控制,并采用了带优先级的CSMA/CD协议对总线进行仲裁[2]。文中提出一种基于CAN总线的无刷直流电机控制方案,采用隔离式CAN收发器和STM32构建下位机CAN总线收发电路,上位机通过USB-CAN转换器与下位机进行通讯。利用STM32输出PWM驱动三相全桥式驱动电路对无刷直流电机进行控制,同时利用PI算法对系统电流进行限制。通过这种方式可以实现对多台无刷直流电机稳定运转和实时控制。
基于CAN总线的多电机控制系统由上位机监控计算机、USB- CAN转换器、CAN总线收发器、电机驱动器和无刷直流电机组成。上位机的USB接口与USB-CAN转换器连接,电机控制器通过CAN总线收发器与USB-CAN转换器构成总线各节点,通过双绞线组成总线型拓扑网络,如图1所示。
通过设置电机控制器中带CAN控制器的STM32,使电机控制器可通过CAN总线收发器实现对CAN总线通信信号的接收和发送。USB-CAN转换器将上位机输出的USB信号转换为CAN总线通信信号,信号通过CAN总线传输,以实现上位机与各个基于CAN总线的电机控制器之间进行通信。
图1 系统整体设计结构
2.1 CAN总线接口电路
STM32自带的是bxCAN,即基本扩展CAN(Basic Extended CAN),其支持CAN协议2.0A和2.0B[3-4]。因此可利用CAN总线收发芯片ISO1050设计STM32的CAN总线接口。将STM32 CAN_RX引脚和CAN_TX引脚与ISO1050的RXD引脚和TXD引脚相连。为了实现真正意义上完全的电气隔离,ISO 1050的Vcc1和Vcc2必须通过DC-DC模块或是带有多个隔离输出的开关电源模块进行隔离。为防止过流冲击,ISO 1050的CANH和CANL引脚上各连接一个5.1 Ω的电阻连接到总线上。并在CANH引脚和CANL引脚与地之间并联2个瞬态电压抑制二极管,可起到发生瞬变干扰时的保护作用[5]。另外在CANH和CANL端有一个120 Ω的终端电阻,来做阻抗匹配,以减少回波反射[6]。通过CANH和CANL同外部的CAN总线连接,具体接口电路如图2所示。
图2 ISO1050接口电路
2.2 无刷直流电机驱动电路
为了使无刷直流电机转子旋转起来,必须使定子电枢各相绕组不断的依次换相通电。系统中采用的无刷直流电机,其霍尔式位置传感器的安装位置间隔120°。BLDC换相电路中开关管采用两两导通的方式,每次使不同桥臂的上下开关器件同时导通[7]。共有6种状态,每隔60°改变一次导通状态,每次改变仅切换一个开关管,每个开关管连续导通120°。
无刷直流电机A相驱动电路如图3所示,采用美国IR公司推出的IR2110高压浮动驱动集成模块,用于驱动大功率MOSFET和IGBT。由于IR2110允许驱动信号的电压上升率达±500 V/μs,大幅减少了功率开关器件的损耗。此外IR2110采用自举法实现高压浮动栅极双通道驱动,当Q4导通期间将VS的电位拉低到地,VCC通过自举二极管D3给自举电容C14充电,通过电容C14在VB和VS之间形成一个悬浮电源给上桥臂开关器件Q3供电[8]。因此可驱动500 V以内的同一桥臂的上下两个开关管。
IR2110的HIN和LIN为BLDC换相电路中同一桥臂上下两个功率MOSFET的驱动脉冲信号输入端,分别引脚接STM32的PA8和PB13。SD引脚为保护信号输入端,当此引脚接地时,IR2110的输出引脚HO和HL信号跟随HIN和LIN而变化。
图3 无刷直流电机A相驱动电路
2.3 电机过流保护电路
无刷直流电机在带负载运转时,电机电枢中的电流会随着负载的增大而增大。若电机控制器中没有电流进行限流处理,当负载增加到一定程度,母线中电流值就会超过控制器的耐流值,从而烧毁控制器。因此电机控制器中需要加入过流保护电路,如图4所示。
图4 电机过流保护电路
过流保护电路中采用LM358双运算放大器,电流流过两个并联的0.025 采样电阻,在两个并联电阻上产生电压差[9]。此电压经过运算发大电路后送入PA2引脚,经过ADC转换成数字信号。通过判断输入数字信号的大小可判断出电流是否过流,若电流过流,通过微处理器STM32中的限流算法程序对母线电流进行限制,在无刷直流电机带负载运转中,有效保护了电机和电机控制器。
3.1 CAN总线应用层协议
在本系统中CAN总线采用的是自定义的应用层协议,依据CAN协议2.0A作为协议的设计标准。报文的优先级结合在11位标识符中,具有最低二进制的标识符有最高的优先级[10-11]。由于上位机可接收所有的信息,因此规定上位机主节点的标识符为0。节点ID分配分配如表1所示。
表1 CAN节点ID分配表
通讯协议采用带有数据的标准帧,上位机发送的控制命令帧使用数字域的4 Byte,下位机发送的电机状态帧则用5 Byte。系统通讯的报文帧格式如表2和表3所示。
表2 上位机发送的控制命令格式
表3 下位机发送的电机状态格式
3.2 脉宽调制技术调压
无刷电机的电动势平衡方程为
U=E+Iacpracp+ΔU
(1)
式中,U为电源电压(V);E电枢反电动势(V);Iacp为平均电流(A);racp为电枢绕组平均电阻(Ω);ΔU是功率管的饱和压降(V)。
电枢的反电动势可表示为
E=Ken
(2)
式中,n为电机转速(r/min);Ke为反电动势常数。
由式(1)和式(2)可得
可见,在忽略电枢电阻和开关管的压降下,无刷电机的转速仅与电枢电压及磁场强度有关。
常用的调压调速方法是脉宽调制技术,换相电路一方面收到霍尔位置传感器的控制,另一方面功率器件的导通时间受到占空比的影响,从而实现输出电压的改变[12]。
下位机通过程序设计,使上桥臂的3个开关管对应的STM32输出引脚输出PWM,另一个配对的开关管所对应的引脚输出高电平。通过调节上桥臂PWM占空比相当于改变施加电压来控制电机转速[13]。
3.3 PI限流算法
过流保护电路中采样的电流,要经过PI计算,对系统电流进行限制,才能对电机和控制器起到过流保护的作用。
离散的PI表达式为[14]
式中,u(k)为第k个时刻的控制输出;e(k)为第k个时刻的偏差;KP为比例增益;KI为积分增益。
偏差值等于设置的限流值减去采样的电流值,当偏差值>0,此时无需进行限流,快速消除积分作用。只有当偏差值<0时,积分才起作用,将电流迅速降低到限制电流以下。
3.4 系统工作流程
系统开启后,对各个模块进行初始化,包括设置250 的CAN总线波特率,工作模式采用普通模式。初始化电机控制器的各个输入输出口,以及配置ADC对电流进行采样。如图5(a)所示,系统初始化完成后定时通过CAN总线发送电机状态给上位机,进入中断等待。
图5 系统程序流程图
控制器采用CAN总线中断服务函数来处理CAN节点接收到的信息,流程如图5(b)所示。当接收到上位机通过CAN总线发送的控制命令后,根据控制命令格式,提取解析命令数据并存放在变量中。
在定时中段中,对电流进行采样,通过PI算法进行限流,然后调用PWM换相调压子程序输出电压量驱动无刷直流电机。定时中断流程如图5(c)所示。
实验主要对系统的工作状况进行测试。主要测试系统CAN总线通信的可靠性和稳定性,即通过CAN总线能够快速给多台电机设定转速,并与实际转速的误差较小。
测试方法:系统通过CAN总线通信对3台无刷直流电机进行监控。首先选择1号电机进行单电机控制,通过CAN总线给1号无刷直流电机设定转速为690 r/min和正转方向,电机转速变化曲线如图6所示。
图6 单电机转速变化曲线
然后选择1、2、3号电机进行多电机控制,通过CAN总线分别对3台无刷直流电机进行转速和方向进行设定。1号电机转速1 480 r·min-1、2号电机2 140 r·min-1、3号电机960 r·min-1。电机转速变化曲线如图7所示。1号电机转速数据点标记为三角形,2号电机转速数据点标记为圆形,3号电机转速数据点标记为正方形。
图7 多电机转速变化曲线
对实验进行分析,通过CAN总线无论是对单电机控制,还是对多电机控制,都能快速的对其转速和转向进行设置,并可达到设定转速的要求,误差范围在5 r/min,在合理范围之内。系统运行时的电流也满足预期要求。
本文从硬件结构和软件电机算法控制上介绍了一种基于CAN总线的无刷直流电机控制系统。系统可同时快速的控制多台无刷直流电机进行稳定可靠运转,经测试转速误差在5 r·min-1。在实际应用中,对
系统电流进行限流处理,保证无刷直流电机在带负载运行时,系统各个模块能够稳定的工作。因此该系统可应用于需要多电机控制的领域。
[1] 安群涛,孙立志,刘超,等.无刷直流电机的磁链自控直接转矩控制[J].中国电机工程学报,2010,30(12):86-92.
[2] 王平,江华丽,何花.基于单片机的CAN总线通讯应用设计[J].电子测量技术,2009,32(9):131-135.
[3] 张河新,王晓辉,黄晓东.基于STM32和CAN总线的智能数据采集节点设计[J].化工自动化及仪表,2012,39(1):78-80.
[4] 金兆楠.基于STM32F107微处理器的CAN总线的智能节点的设计[J].可编程控制器与工厂自动化,2015(1):72-74.
[5] 王英志,杨佳,韩太林.基于STM32的RS232-CAN通信协议转换器设计[J].制造业自动化,2013(14):141-143.
[6] 牟笑明,宋茂忠.MCP2515在ATmega16单片机CAN总线扩展中的应用[J].电子技术与软件工程,2014(14):268-271.
[7] 夏长亮,方红伟.永磁无刷直流电机及其控制[J].电工技术学报,2012,27(3):25-34.
[8] 张小鸣,卢方民.基于IR2110的H桥可逆PWM驱动电路应用[J].常州大学学报:自然科学版,2012,24(4):68-72.
[9] 袁题训,董升亮,耿丙群,等.无刷直流电机的保护电路[J].现代电子技术,2011,34(24):41-44.
[10] 王邦继,刘庆想,李相强,等.CAN总线应用层协议的研究与实现[J].计算机工程与应用,2011,47(20):14-16.
[11] 张宏伟,王树新,杨晓华,等.基于CAN总线的自治水下机器人控制系统[J].机器人,2006,28(4):448-452.
[12] 江皓,杜鹏英,任国海.模块化的无刷直流电机PWM调速实验系统[J].实验技术与管理,2007,24(9):53-56.
[13] 李家庆,李芳,叶文.无刷直流电机控制应用-基于STM8S系列单片机[M].北京:北京航空航天大学出版社,2014.
[14] 张红涛,闫林,徐晓辉,等.基于单片机PID算法的无刷直流电机控制系统的研究[J].现代电子技术,2007,30(10):52-54.
Design of BLDCMotor Control System Based on CAN Bus
CHEN Guowei,DING Xueming
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)
Traditionalbrushless dc motor control system is to control a single motor, its low working efficiency, however,cannot meet the needs of modern industrial development.Aiming at some fields which need to control multiple motors,a kind ofmany sets of brushless dc motorCAN bus networkbases on STM32 and ISO1050 was designed.We take advantage of square-wave to control the brushless dc motor and use PI algorithm to limit the current so as to realize system stable work. The experimental results show that the speed of many sets of brushless dc motor can be kept at the set speed in the system with a control precision of within 5 r·min-1.
CAN bus; BLDC; PI
2016- 04- 23
陈国伟(1990-),男,硕士研究生。研究方向:无刷直流电机控制。
10.16180/j.cnki.issn1007-7820.2017.03.042
TP368.1
A
1007-7820(2017)03-153-04