应荣辉
(浙江省绍兴市上虞区职业中等专业学校,浙江 上虞 312300)
步进电机在生产自动化控制中起到关键作用,是重要的执行部件之一。正常情况下,其转速、启停位置仅仅和脉冲信号数量、频率有关,与负载关系不大。长期以来,步进电机主要采用单片机、DSP芯片作为控制核心,通过定时器形成脉冲信号,从而实现电机控制。这样的控制方式需占用较多的系统资源,脉冲信号频率受微机、控制系统、驱动设计的限制,相关控制电路结构成本较高,同时系统扩展性差、难以灵活调整,无法进行高效的人机交互[1]。而以现场可编程门阵列(Field Programmable Gate Array,FPGA)作为步进电机控制系统的控制核心,通过控制电机转矩与电机电流的方式对两相步进电机进行动态闭环控制,从而提高步进电机绕组电流控制精确度,最终实现步进电机的精准高效控制。
为实现两相步进电机的高效控制,需要基于实际控制需求确定合理可行的控制方案。本次设计采用电机转矩控制方案,其中电磁转矩发挥的作用最大。电机电磁转矩公式[2]如下:
式中,Te表示电机电磁转矩;Ld表示d相电感系数;Lq表示q相电感系数;id表示d相电流;iq表示q相电流;Im表示励磁电流;Msr表示定子、转子之间的最大互感值。根据式(1)可知,电机电磁转矩Te的大小取决于d、q相电流,需得到合理的d、q相电流关系才能合理控制电磁转矩,从而实现电机控制。电机转矩与电机电流之间的关系可通过查表确定。基于电机转子位置、工况求得需要的电机转矩,然后通过查表得到对应的电流值,用于进行闭环控制。逆变器采用脉冲宽度调制(Pulse Width Modulation,PWM)模式,通过PWM斩波驱动输出驱动信号。两相步进电机控制系统基本架构见图1。
图1 步进电机控制系统框架
系统采用双控制环,包括电机转子位置控制环和电机转速控制环,均为PI控制模式,以保障系统控制的可靠性。电流控制器同样是PI控制模式,尽可能缩短闭环控制周期,确保系统控制的实时性[3]。系统基于给定电机转矩调整d、q相电流,从而动态控制步进电机。电机电流反馈为两相绕组电流值,具体值通过相电流Park变换求得。
为精简硬件电路,本次设计的控制系统通过FPGA实现全部的控制功能,辅以其他功能模块对步进电机进行实时高效控制。系统首先要做到实时获取电机转子位置、电流等重要参数,其次通过FPGA输出相应的驱动信号,最后对信号进行放大以驱动电机。此外,还需要设置通信接口与上位机通信。上位机负责输出电机控制指令,FPGA向上位机返回电机位置、电流等信息,方便用户使用。图2为步进电机控制系统硬件架构。
图2 步进电机控制系统
在该控制系统中,FPGA发挥着控制核心作用。FPGA接收传感器发送的电机转子位置、电机电流等关键参数,然后输出脉冲信号,以控制电机运行。FPGA具有可反复编程的特点,专为满足灵活多变的控制需求而设计。用户可以基于个性化控制需求开发FPGA,也可以快速更新FPGA电路。本次设计的步进电机控制系统FPGA芯片选用Xilinx的Spartan6,该型FPGA芯片可以实现分频以及不同电机状态之间的相互转换。Spartan6芯片是Spartan系列中的中小型器件,成本低,采用TQFP封装,工作温度为0 ~ 85℃[4]。
2.3.1 电源模块
该步进电机控制系统输入电压为28 V,包括数字电源电路、模拟电源电路。数字电源电路的主要作用是进行A/D转换以及为FPGA接口电路供电,模拟电源电路则是为A/D转换器中的运放提供电源。电源电路原理见图3。
图3 电源电路
电源电路为+28 V稳压电源供电,采用过压保护电路(Over Voltage Protection,OVP)防止过压。电机运行时会产生强共模信号,因此需添加外部存储器控制器(External Memory Controlle,EMC)模块抑制共模信号的干扰。EMC模块包括一个瞬变电压抑制二极管(Transient Voltage Suppressor,TVS)和 6 个储能电容,组成次级外部存储器控制器滤波电路。TVS管可以有效消除电路产生的冲击脉冲,为电路中的精密电子元件提供安全保护[5],当两端受到高能反向脉冲影响时,可迅速降低两端阻抗,吸收浪涌功率,稳定电压。
2.3.2 电机驱动电路
本次设计的步进电机控制系统驱动电路采用L298驱动器。L298是一款双全桥驱动器,兼容标准TTL逻辑,可对继电器、电机等感性负载进行有效驱动。L298N由4个逻辑驱动电路构成,可轻松驱动一个两相步进电机。由于本次设计的步进电机控制系统需要实现步进电机的闭环控制,因此还需要监测两相绕组的电流值,这里使用串联采样电阻方法。串联检测电阻对电流有一定影响,但如果电阻值选择正确,就能够获得比较准确的绕组电流值。
2.3.3 A/D转换电路
系统的电流检测电阻为0.05 Ω,如果绕组电流为1 A,则电压为0.05 V。通过差分放大电路放大电压信号,再通过低通滤波器去除噪声信号。为提高控制精度,本次设计通过双AD976A/D转换器同步采集两相绕组电流值。AD976电采用单电源+5 V,电路设计简单,功耗不超过100 mW。
基于自顶向下的设计思想设计控制系统软件,结合具体的控制功能需求,将控制系统软件架构分为如下功能模块。
(1)载波周期同步信号生成。该模块用于确定PWM驱动信号、电流环闭环的周期,确保系统的各个功能模块符合时序要求[6]。
(2)串口通信模块。该模块用于控制系统与上位机之间的数据通信,完成控制指令的传输与系统状态反馈,例如将电机功率、电机转速、电机转子位置等信息发送给上位机。
(3)电流信号采集。控制系统需采集绕组电流值。电流反馈采集模块的主要功能是基于AD976的采样时序图产生相应的采样信号,修正绕组电流值。
(4)位置信号采集。电机转子位置信号反馈通过增量编码器完成。该模块主要作用是对增量式编码器的A、B、Z相信号进行解码,完成编码器脉冲计数,并对采集到的脉冲进行转换,将位置值转换为16位二进制数发送到寄存器模块以进行电机控制。
(5)步进电机控制模块。该模块首先需要接收控制寄存器发送的控制参数和控制命令信号,然后根据相关控制指令生成控制序列,用作电流环、速度环以及位置环计算的开始标志。根据指令选择相应的控制模式,包括转矩控制模式、速度控制模式、位置控制模式。将电流采样模块采集到的绕组电流值转换为闭电流环旋转坐标系中的d、q相电流,用于闭环电流控制。
(6)生成PWM驱动信号。该模块将载波周期同步信号作为启动标志,基于步进电机控制模块给出给定电压,通过比较生成PWM控制信号来控制两相H桥逆变器开关管的通断,从而实现电机驱动。
综上所述,本次设计的步进电机控制系统充分发挥FPGA控制器接口灵活、逻辑资源丰富以及可扩展性强等优势,有效提高电机闭环控制效率,优化控制系统性能。与传统的开环控制相比,该闭环控制系统的位置控制精度更高,采用转矩矢量控制代替细分控制,有效解决了传统步进电机丢步、损耗大、低频震荡等问题。采用编码器精确采集当前电机转子位置、电机电流信号,生成PWM控制波形从而实现电机驱动,不仅能够提高步进电机的控制精度,而且还能打破载波频率对电机运行速度的限制。