孙亚军,王宜怀,王 林,彭 涛,刘贤德
(苏州大学计算机科学与技术学院,江苏苏州 215000)
永磁无刷直流电机(brushless direct current motor,BLDCM)具备传统直流电机高效率、低噪声,同时兼备交流电机结构简单、运行可靠、无换向火花、使用寿命长等优点,逐渐被广泛用于家电、工业控制领域[1-3]。因此针对BLDCM的控制系统成为热门研究领域。如文献[4]使用增量PID在传统DSP芯片上进行控制,但增量式PID很难满足BLDCM的动态需求;文献[5]使用模糊PID在FPGA上实现智能控制,但FPGA的电路复杂,设计成本较高;文献[6]实现神经网络PID控制,但实现较复杂,对于硬件的计算能力要求较高,对电机的实时性会产生影响。本文采用S32K144[7]作为主控芯片,其既具有微控制器(microcontroller unit,MCU)低功耗、外设丰富的特征,又同时内嵌DSP和FPU,计算能力足以满足电机智能控制需求。硬件电路上添加光耦隔离以提高控制系统的稳定性和抗干扰能力,软件上使用mbedOS[8]实时嵌入式操作系统,设计专家PID的速度电流双闭环控制,提高无刷直流电机控制系统的控制精度和鲁棒性,增强系统的可靠性,最后在油气泵电机进行实验验证,实验证明,该控制系统具有良好的动态性能和控制精度,具有工程参考价值。
S32K144是基于ARM Cortex-M4内核的32位微控制器,S324144提供高达144 MHz的CPU性能,同时具有DSP和FPU,计算能力足以满足控制系统的实时性要求。并且具有512 KB的Flash和60 KB的SRAM。此外S32K144包括多个脉宽调制器、4个通用16位高级定时器等外设,通过软件配置脉宽调制器即可输出中心点脉宽CPWM信号,且支持死区时间设置,支持互补输出,极大满足电机控制需求。此外芯片上集成多种通信外设,如UART、SPI、I2C、CAN等,方便连接到不同接口信号的上位机或者液晶显示屏,增强人机交互。
无刷直流电机本质上是将直流电源输出的直流电经过逆变器后转换为可以驱动电机运行的交流电[9]。文中的无刷直流电机采用三相星形桥式接法,如图1所示。
图1 无刷直流电机三相星形桥式接法
通过控制全桥电路中的功率MOSFET开关,达到给指定绕组施加电压,实现任意时刻只有两相绕组导通,剩余一相处于悬空,使电流能够在不同时刻流过不同的绕组,产生方向变化磁场,推动转子旋转[10]。电机能够同步运行并产生恒定的电磁转矩,就需要保持定子磁场与转子磁场在空间上的相对静止,使得产生的定子磁场的方向根据转子位置的变化而变化。所以转子磁场方向是连续变化的,而定子磁场方向是不变的[11]。
由以上原理可知,无刷直流电机的电枢供电是由三相桥式逆变器供给的,因此就需要实现6个MOSFET的有序导通。在一个电周期内,位置传感器输出6种有效状态,分别对应转子的6个位置,再依据换向逻辑,对三相桥式逆变器输出相应的控制信号,使三相定子绕组按照一定顺序依次通电,使转子能在持续平稳的磁场中转动[12-13]。电机转速可以通过调节定子绕组的输入电压实现。因此可以通过调节PWM占空比实现电机转速的调节[14]。
无刷直流电机控制系统结构图如图2所示,主要包括位置信号处理电路、电机驱动电路、S32K144最小核心系统、母线电流检测电路等。其中电机驱动电路以及位置信号电路通过光耦进行隔离,实现弱电和强电分离,提高信号输出的抗干扰能力,增强系统的稳定性。
图2 无刷直流电机控制系统结构
位置信号由位置传感器提供,但因为外界因素的干扰和安装原因,其输出信号通常带有许多毛刺,若直接接入主控芯片引脚上,会影响输出的PWM信号,易出现电机抖动现象,严重会导致堵转问题。对此设计转子位置信号过滤电路,去除其中毛刺,使得位置信号更加平整,也可以减少软件扫描,降低主控芯片的计算量,保证控制系统的实时性。位置信号处理电路如图3所示,其中R1、R2和R3为上拉电阻,R4、R5和R6与C1、C2和C3组成低通滤波器,74HCT14为施密特触发器。
图3 位置信号处理电路
电机驱动电路主要包括全桥逆变电路和功率预驱动电路。
5.1.1 全桥逆变电路
全桥电路由6个N型MOSFET管IRF3205[15]构成。Q1、Q2和Q3为桥上臂,Q4、Q5和Q6为桥下臂,功率管依次导通顺序为:Q1Q6→Q1Q5→Q2Q4→Q2Q6→Q3Q5→Q3Q4。电路图如图4所示。
5.1.2 功率预驱动电路
全桥逆变电路要能够正常驱动无刷直流电机,就必须保证上下桥臂的功率管能够正确地按照主控芯片输出的PWM信号切换。IRF3205的导通的条件为VGS有2~4 V压差。由图4可知,上桥臂的MOSFET源极输入电压为36 V,若要导通上桥臂MOSFET,其栅极就需要超过36 V的电压,而S32K144输出的PWM高电平最高为3.3 V,远远不能够驱动上桥臂MOSFET,因此必须把上桥臂的栅极输入升高到36 V以上才能正常驱动MOSFET。这里选择栅极智能驱动芯片DRV8323SRAT[16],该驱动芯片可以驱动3个高侧和3个低侧N型MOSFET,使用集成电荷泵为高侧MOSFET 生成合适的栅极驱动电压,使用线性稳压器为低侧MOSFET生成合适的栅极驱动电压,具有MOSFET过流保护、热警告和热关断以及其他故障指示,3个可选集成式可调增益的电流检测放大器,可以实现相电流或母线电流的检测。DRV8323SRAT最小系统如图5所示。
图4 全桥逆变电路
图5 DRV8323SRAT最小系统
S32K144最小系统如图6所示。S32K144为整个控制系统的核心,主要实现PWM信号输出、转子位置信号检测、母线电流检测、转速计算以及异常处理等。PWM信号由内部高级定时器FTM产生,并且附带死区时间设置,可以避免上下桥臂导通。通过3个带有双边沿中断的I/O口捕获转子位置信号。
图6 S32K144最小系统
母线电流检测采用低边检测法,即在全桥电路的低边输出串联检测电阻,检测电阻的大小需要根据电机实际相间电阻进行选择,本实验使用检测电阻为1 mΩ的精密电阻R7,结合DRV8323SRAT内部自带电流增益放大器,实现母线电流采集。电流检测电路如图7所示。
图7 电流检测电路
硬件电路是控制系统的基础,无刷直流电机运行稳定性依赖于软件系统设计。在软件设计时采用软件工程中构件化和面向对象的概念,对BLDCM要素进行提取,包括目标转速和实际转速、目标电流与实际电流等。操作系统选择mbedOS,mbedOS是针对Cortex-M系列推出的嵌入式实时操作系统。该操作系统代码精简、可移植性好,且支持多线程操作以及抢占式,很契合电机控制实时性要求。控制系统的下位机设计主要实现2种控制:一是转速控制,通过调节PWM占空比控制电机转速;二是换向控制,即根据位置传感器反馈的位置信号进行换相操作。
控制系统采用电机速度电流双闭环控制,框架如图8所示。电流环能够保证电机转矩输出;速度环可以保证速度精度。母线电流经过放大滤波处理后输入到微控制器的AD引脚进行采集,可以直接读取A/D通道值获取并采集多次进行均值滤波处理,处理后得到的电流值作为电流环PID控制的反馈值。同时在双闭环调节过程中保护系统一直存在,可以设置电流阈值、电压阈值,若检测到电机处于过流或过压状态,控制系统立刻停止PWM输出,并且关闭电源,以保护系统。
图8 无刷直流电机控制结构框图
7.1.1 实时转速计算
电机转速计算是通过I/O口捕获霍尔信号边沿中断,利用定时器计算相邻2次中断时间间隔记Δt。根据式(1)获取到霍尔信号频率。
(1)
式中:T为霍尔时间周期,s;f为霍尔信号频率,Hz。
因为使用双边沿中断,并且同时捕获A、B、C霍尔信号,因此相邻两次中断时间间隔Δt为整个霍尔周期T的1/6,即可得到T的值为
T=6Δt
(2)
电机实时转速和霍尔信号频率关系式为
(3)
式中:S为实时转速,r/min;P为电机的极对数。
由式(1)、式(2)和式(3)得电机的实时转速表达式为
(4)
7.1.2 母线电流计算
母线电流计算是闭环电路中重要的一部分,同时根据母线电流可以对电流进行监测,当电流过大时,可以及时采取措施保护控制器,防止出现电机电流故障,控制器烧毁等。图7中构建了一个母线电流检测方案,即将三相的低边不直接接入地,其中添加一个阻值较小的检测电阻,本次使用的电阻为1 mΩ,将电阻两端接入DRV8323SRAT的电流检测引脚上,经其内部放大电路后输出A/D信号,主控芯片根据采集到的A/D信号值Vad,由式(5)可计算出当前母线电流值。
I=(Vref-Vad)/[(2X-1)QR]
(5)
式中:I为电流,A;Vref为A/D参考电压,实验采用3.3 V参考电压值;X为A/D转换精度,采用12位转换精度;Q为放大器增益倍数,可以选择40、20、10等不同增益,具体参考文献[16]对寄存器的配置;R为电阻阻值,Ω。
基于MCU的无刷直流电机控制系统会因为资源受限,选择较复杂的控制策略时,由于计算量过大,往往会牺牲控制系统实时性,使得电机的运行效果不仅没有改善,反而添加了许多不稳定性。S32K144既具备MCU的低功耗,支持多种外设,同时又具有DSP,并且加入FPU,加快了浮点数的运算速率。传统PID控制思想非常简单,其主要难点在于比例、积分、微分环节上的参数整定过程,对于执行器控制模型确定或者控制模型简单的系统而言,参数整定可以通过计算获得,对于一般精度要求的执行器系统,可以采用拼凑的方法进行实验型的整定。然而,在实际的控制系统中,线性系统毕竟是少数,大部分的系统属于非线性系统,无刷直流电机控制属于非线性系统,如果控制精度要求较高的话,那么对于参数的整定过程是有难度的,为满足这方面的需求而设计专家PID。专家算法归属于智能算法的范畴,智能算法最大的优点就是在控制模型未知的情况下,可以对模型进行控制。专家系统不是对原有的控制器进行简单加和,是对PID控制器参数整定上的应用。传统的增量式PID离散化表达式如下:
Uk=Uk-1+Kp(ek-ek-1)+Kiek+Kd(ek-2ek-1+ek-2)
(6)
式中:Uk为第k次输出结果;Uk-1为第k-1次输出结果;Kp、Ki和Kd分别为比例、积分和微分参数;ek、ek-1和ek-2分别为第k次、第k-1次和第k-2次误差。
专家PID控制是根据误差及误差变化率设计其中的Kp、Ki和Kd,增强其动态特性。该控制器主要可分为5种情况,首先规定一个误差的极限值,假设为Max;规定一个误差的比较大的值,假设为Mid;规定一个误差的较小值,假设为Min;同时添加2个误差变化Δek和Δek-1,分别表示第k次误差变化以及第k-1次误差变化。
Δek=ek-ek-1
(7)
Δek-1=ek-1-ek-2
(8)
(1)若|ek|>Max,则表示当前实际值和目标值之间的误差超出了最大范围,为了能够保证精度以及调整的实时性,控制器的输出选择最大或者最小值。
(2)若ek·Δek>0,则表示误差绝对值在不断增大。且此时|ek|>Mid,则表示误差较大,可以选择较强的PID控制输出;如果|ek| (3)若ek·Δek<0且Δek·Δek-1>0或ek=0时,则表示误差绝对值逐渐变小,或者已经进入饱和状态,此时无需进行PID调节,直接按原样输出即可。 (4)若ek·Δek<0且Δek·Δek-1<0或ek=0时,则表示误差绝对值逐渐变小,说明此时的误差处于极限状态,若此时的误差绝对值大于Mid,可以使用较强的PID控制;若误差绝对值较小,可以使用调节较弱的PID控制。 (5)若|ek| 上面的逻辑判断过程,实际上就是对于控制系统的一个专家判断过程。其中较强PID控制即使用的比例系数大一些,较弱PID控制即使用的比例系数小一些。 由上述分析可知,软件控制主要实现双闭环控制以及专家PID控制策略设计。因此将工程主要分成2个线程和多个中断。线程一主要处理速度环和电流环控制以及电流的获取,线程二为上下位机通信线程,用于接收上位机的命令以及向上位机发送电机运行信息。中断主要包括霍尔信号接收中断、故障信息中断、上位机信息接收中断。霍尔信号接收中断主要是用于处理换向;故障信息中断是当DRV8323SRAT检测到有过流、过温或者欠压时进行及时处理。其流程图如图9所示。 图9 软件总体实现流程图 选取试验电机为油气泵无刷直流电机,测试器件如图10所示。 图10 控制驱动板和油气泵电机 油气泵电机参数如表1所示。 表1 油气泵电机参数表 图11为600 r/min转速下U、V、W端线电压,由上至下分别为U、V、W三相端电压。其波形光滑平整,满足电机运行要求。图12为在该转速下A、B、C霍尔信号(由上至下)以及母线电流,从图12看出母线电流平稳。 图11 U、V、W端电压 图12 A、B、C霍尔信号以及电流信号 图13为上位机电机实时转速折线图,上位机每秒向下位机获取一次实时转速。从图13可以看出电机运行平稳,在接收到上位机的加速和减速指令后能快速响应。 图13 上位机实时转速折线图 表2为在使用电机控制板驱动油气泵电机运行结果。从表2可以看出在电机达到稳定状态时,其实际转速和目标转速之间的误差区间基本在±0.5%之内,能够在1 s的时间内达到稳态,基本可以满足电机驱动要求。 表2 电机实验结果 本文设计以S32K144为核心的无刷直流电机控制系统,运用mbedOS嵌入式实时操作系统,设计专家PID实现速度电流双闭环控制。实际测试结果表明:该系统能够对无刷直流电机进行实时调节,调速更加稳定,响应速度加快,超调降低,电机抖动现象减少,能够较好地满足工业控制需求。7.3 软件控制整体流程
8 实验
9 结论