孙 虎,梁 伟,赵 麒,周 骅
(1.贵州大学大数据与信息工程学院,贵阳550000;2.贵州民族大学机械电子学院,贵阳550000)
无刷电机具有调速范围广、低电压特性好、启动转矩大(堵转特性)等优点,在工业领域已有广泛应用。研究直流无刷电机控制技术,设计直流无刷控制器在工业领域有极高的应用价值。直流无刷电机硬件上通常采用三相逆变电路,软件上配合脉冲宽度调制实现。根据直流无刷电机的原理及特点,在此设计一种基于ARM Cortex-M4 处理器的有感无刷电机控制器,主要介绍硬件电路组成、系统软件实现,并结合PID 闭环控制算法提高控制系统的动态性能。
直流无刷电机主要由定子和转子组成,其电枢绕组固定于定子,转子为永磁体。根据电流的磁效应,只需给定子的电枢线圈通电便可产生磁场,使转子朝磁场方向运动。三相逆变电路导通U+、U-、V+、V-、W+、W-六线中不同相的两线,即可驱动电机旋转π/3 rad[1]。由于电机重启时转子位置未知,因此驱动前还需判断电机转子位置,然后预先配置桥臂的通断。BLDCM 内部集成有三个霍尔传感器,电机连续旋转时,霍尔值会按照001→101→100→110→010→011 的规律变化,根据霍尔值的改变控制MOS管通断顺序,便可使电机连续转动。
设计采用6 步方波驱动,用霍尔传感器的输出电平获取转子位置,配合微处理器的高频特性快速进行六步换相,驱动电机旋转。STM32F407 高级定时器可产生六路互补PWM 输出,内部实现了编码器接口和霍尔传感器接口。外围扩展电路包括三相逆变电路、霍尔接口电路、编码器电路等[2]。系统用编码器对电机进行位置定位,利用它的反馈信号实现PID 位置环[3]。同时采集周期内霍尔传感器换相次数,实现PID 速度环。系统总体方案如图1 所示。
图1 系统总体方案设计
BLDC 驱动电路由逆变电路和IRFS3607 功率场效应管组成,电路如图2 所示。微控制器输出的PWM 信号经过TLP715 高速光耦进行信号隔离及升压,确保主控制芯片不受电机高压影响。微处理器输出电压为3.3 V 低压,使其经过IR2110S 芯片转换输出为15 V 作为IRFS3607 的输入。IR2110S 芯片具有芯片失能引脚,配合STM32 微控制器死区插入功能,用于紧急情况保护。
BLDCM 自带有三个霍尔传感器,采用STM32 输入捕获对霍尔传感器进行采集,根据霍尔值确定转子位置,并以此位置为反馈作为主控制器3 对互补PWM 输出的依据。霍尔位置检测电路如图3 所示。CN1 为主控制器和霍尔传感器的连接接口,采用上拉电阻 R10、R11、R12 和电容 C5、C6、C7 做滤波处理,减免信号干扰[4]。HALL-W、HALL-V、HALL-U 为霍尔信号采集接口。
图2 BLDC 驱动电路设计
图3 霍尔位置检测电路
为保证电机旋转的位置精度及实现PID 位置闭环控制,设计了编码器接口。STM32 定时器内部设计的编码器模式可以自动实现信号滤波,保证编码器输出脉冲信号精确性。编码器检测电路如图4所示。图中,ENCODER1、ENCODER2 为一对编码器输入,编码器每旋转一圈,主控制器会捕获到相应的脉冲数。
图4 编码器检测电路
PID 闭环控制器由比例单元P、积分单元I 和微分单元D 组成。闭环控制是指将控制量信息经过PID 控制器处理后反馈给主控制器并改变实际输出,实现执行机构的自适应调节[5]。PID 控制原理框图如图5 所示。
图5 PID 控制原理图
PID 控制算法的输出与系统的过去状态相关,有利于提高系统的动态特性[6]。系统采用PID 位置速度双闭环控制,由位置环提高电机行驶中的位置精度,速度环增强电机抗负载扰动的能力。使用软件编程实现的PID 控制器灵活性高且便于修正。PID 双闭环控制流程如图6 所示。
图6 PID 双环控制原理框图
位置检测采用编码器。STM32 通过定时器,把编码器输出脉冲所捕获的位置信息与位置环的给定值做比较,产生位置环输出即速度环设定。速度值通过霍尔传感器在固定周期内的脉冲数差计算获得并使用滑动滤波函数进行滤波处理。经过PID速度控制器计算后,控制PWM 占空比改变电机旋转速度。系统设计中,周期定时器50 ms 中断一次,有效避免了频繁调节引起的系统抖动。PID 控制器中若位置环输出和速度环输出均小于设定值,则不进行计算调节,避免系统振荡。
软件采用Keil μVision5 开发平台设计,包括外设初始化、六步换相、中断处理程序等。用C 语言编写实现PID 控制器,实现位置反馈和速度反馈双闭环控制。系统软件主要由main 函数和ISR 函数组成。系统软件流程如图7 所示。
主函数为整个系统软件的入口,主要实现外设、通用I/O 口、中断优先级分组、定时器基本配置以及PID 参数的初始化。主函数按照顺序语句执行,遇见中断程序优先处理中断程序, 中断程序执行完后再返回至主函数中。
图7 系统软件开发流程图
中断服务函数实现了BLDCM 主要控制功能,包括换向逻辑查询、位置反馈调节、速度反馈调节、编码器捕获等[7]。设计采用H-PWM-L-ON 模式驱动逆变电路,并插入了死区时间,保证同相上下桥臂不会同时导通。定时器4 配置采用霍尔接口模式,三个霍尔传感器任意值发生变化都会触发高级定时器COM 事件中断,在此中断服务函数中进行换相处理[8]。周期定时器中断主要用于记录固定周期内霍尔脉冲数的变化获取速度值。PID 位置速度双闭环控制算法驱动电机根据编码器反馈的位置信息自动调节转速。
采用STLink 将软件代码下载到主控制器中,设置电机目标位置为50 mm,目标速度为7 mm/s,启动电机并通过串口发送位置和转速数据,通过MATLAB绘制动态响应曲线[9-11]。位置闭环控制曲线如图8所示,PID 位置速度双闭环控制曲线如图9 所示。
图8 位置环PID 控制图
图9 速度环位置环PID 双闭环控制
由数据曲线分析可得,相较于位置环控制,位置速度双闭环控制的速度变换率更加平缓,可以根据编码器反馈信息调节最佳行驶速度,避免由于速度过大引起的电机震动,保证系统的稳定性。双闭环控制输出速度与目标速度误差小至0.11, 远低于位置环单环控制时的误差0.65。
介绍了基于STM32F407IGT6 主控芯片设计的有感直流无刷电机PID 双闭环系统,采用位置环和速度环双闭环控制的策略,根据电机行驶的目标距离自动调节在某一特定位置的旋转速度,实现电机的加减速运动。相较于传统的加减速算法和PID 单环控制,PID 双闭环控制具有系统运行稳定,响应速度快,电机位置精确度高,速度变化率平缓,超调量小等优点。设计已应用到轨道式巡检机器人控制系统中,获得了良好的实用效果。