基于FPGA的数控机床步进电机高精度控制
2019-10-23刘武常陈锋
刘武常, 陈锋
(1.西安航空职业技术学院 航空制造工程中心, 西安 710889;2.西安飞豹科技有限公司, 西安 710089)
0 引言
数控机床步进电机因控制精度不高,无法对速度参数间的关系进行有效协调对,步进电机可实现控制信号数模转换,具备鲁棒性强、控制误差不累计等优点,随着各方面自动水平的不断发展与完善,步进电机应用领域广泛,包括数控、计量、器械等。在数控领域中因为控制水平比较稳定,步进电机是数控机床中的核心控制设备,现阶段对步进电机高精度控制模块的需求较大,是研究的热点[1]。
1 高精度控制模块设计
1.1 整体方案设计
现场可编程门阵列FPGA(Field-Programmable Gate Array)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
本文所设计的控制模块结合综合线性速度控制函数的使用,其硬件控制核心使用了STM32F103微控制器,缩减了控制误差,使模块响应效果和控制成果得以有效提高,进而实现高精度控制目标,该模块的硬件结构如图1所示[2]。
图1 模块硬件结构图
微控制器主要负责实时监控和修正作用,微控制器给出运行流程的控制指令,根据指令现场可编程门阵列(FPGA)生成控制信号,控制步进电机的初始化和速度,同时微控制器接收并显示步进电机的运行状况。在实际数控机床的应用中会涉及多台步进电机,FPGA能够有效解决这一问题,可同时控制多台数控机床,并可以精准分配控制指令,对模块控制误差的缩减以及响应效果的提高起到决定性作用。
步进电机的正常运行需通过驱动器,FPGA不能同其直接相连,需传输控制信号至步进电机驱动器,根据控制信号位置的排序,将控制电流依次导入步进电机,模块中的光栅传感器采集步进电机的运行流程,再由FPGA完成内容的判断后,将具体运行结果传输给微控制器[3]。
1.2 微控制器设计
微控制器(STM32F103)成本低、携带方便且控制能力较强,是一款32位控制器,是通过优化8位单片机后产生的,显著提高了运算速度和转换效率,微控制器能耗低、通信能力及兼容性较好,电压范围在2 V—3.6 V之间。微控制器通信接口类型较多,可实现多方信号的同时、快速传输,提供了节能工作模块、标准工作模块和休眠工作模块,最大传输频率为70 MHz。微控制器中重要的功能电路是晶振电路和电源电路:微控制器可连接为其提供高速标准计时的晶振电路,或连接为其提供低速精准计时的晶振电路,电容C1和C2负责激励晶振Y(Y的规格为10 MHz),晶振电路如图2所示。
图2 晶振电路
电源电路为微控制器提供了外接蓄电池、数据传输接口以及计算机软件接口三种供能模式。电源电路为5 V(考虑电路中的电能损失),电容C1和C4、C2和C3的规格分别为0.1 μF和10 μF,因此需转换电源电路的电压,本文选择LT1117稳压管作为转换器,电源电路如图3所示[4]。
图3 电源电路
1.3 FPGA设计
本文的高精度控制模块在具体设计时,采用的FPGA控制成果较好且成本低,包括输入/输出端口148个和引脚210个,运行温度范围在0—90 ℃之间,电源输入电压范围在1.2—3.5 V间,FPGA工作模式包括分频测试和内部测试两种,进而实现高精度控制步进电机。FPGA与微控制器的接口连接形式如图4所示[5]。
FPGA包含输入线接口和输出门接口的个数分别为5个、20个,门接口0-7可同时控制8个步进电机,微控制器在控制指令的传输时,需对其传输地址进行控制,这部分功能则由虚拟内存来实现,线接口主要负责对控制指令进行相应操作(包括编译、重置、写入、锁定和只读)。根据实际情况FPGA会结合使用分频测试和内部测试,完成对控制指令的信号转换过程,FPGA输出格式为数字脉冲信号的控制信号。在数控机床实际应用过程中,需步进电机具有初始化、稳定运转、加减速运转和休眠的运行流程,对于晶振电路的计时输出,FPGA需先对其进行分频,然后进行信号转换,步进电机驱动器将接收经转换后获取的控制信号并对其完成相应操作。
图4 FPGA与微控制器的接口连接图
1.4 驱动器设计
FPGA难以激活步进电机(发出的控制信号能量较低),需首先放大其控制信号(需循环进行),这一过程由步进电机驱动器实现。本文选用双相细分驱动器,具备便于携带、精度高、噪音小等优势,为兼顾设计成本与效率,采用光电耦合信号控制器作为电路中的时钟接口,简化了操作流程。步进电机在电源(12 V)输出稳定电流的条件下的运行状态为反相转动,在无电流输出条件下的运行状态为正向转动。步进电机驱动器电路示意图如图5所示[6]。
图5 步进电机驱动器电路示意图
在数控机床中,接口1与接口2直接连接步进电机;方向控制信号器连接分区接口,对于控制信号中控制位置的排序,由方向控制信号器负责依次对其进行读取与准确输送,从而使控制模块实现高精度控制被控对象。
2 控制模块软件设计
数控机床中的传统步进电机控制模块中,步进电机加减速的控制过程一般使用直线或抛物线函数,在模块对被控对象的响应速度方面,运算量较少的直线速度控制函数因其效率较高,可使模块对被控对象的响应效果得以提升,其缺点在于对误差和成果的控制程度较差;抛物线控制函数对模块的控制误差的降低效果较好,但涉及的运算量大,响应效果质量欠佳。为有效协调这些问题,本文在步进电机高精度控制模块的具体设计时,融合直线和抛物线的各自优势,采用了综合线性速度控制函数,实现对被控对象的高精度控制[7]。
步进电机(处于加速运行状态)的加速函数用f(t)表示,整个过程可细分为抛物线用式(1)表示、直线用式(2)表示、抛物线用式(3)表示,具体函数式如下:
其中,直线加速度由a表示,抛物线斜率由b表示,步进电机初始速度由t0表示,t表示加速时间,f0表示第一次加速抛物线的参数,c表示坐标轴与直线方程的交点位移,fc表示第三次加速抛物线的参数,由f表示加速抛物线的总参数,具体式如下:
f=0.05×(fc-f0)
3个加速阶段此时所能获取的控制指令数量P表示为:
当第n个控制指令由微控制器发出时,各加速阶段的加速时间t同该指令间的关系式表示为:
减速运行状态的步进电机的减速曲线运算方式与其相近,表现为和加速曲线呈对称关系。通过对式中各项参数的调节,对高精度控制的实现具有重要作用,可有效协调步进电机的速度关系,提高响应效果,获取良好的控制误差和成果[8]。
3 仿真实验检测与分析
本文实验具体采用对比方式,以机器转速和位移为检测对象,分析本文控制模块的响应效果、控制误差和成果,在同等条件下,完成本文控制模块、逻辑控制器(可编程)控制模块与单片机控制模块对相同机器转速和位移的控制[9]。
(1) 响应效果分析
实验结果表明在响应效果方面,各控制模块对机器转速的控制要优于位移(差值在三秒左右),与其他两个模块相比,本文模块的响应时间更低,且表现出了较强的稳定性,具有良好的响应效果。
(2) 控制误差分析
控制误差的确定是通过步进电机的数据转矩(不确定性较大)实现的,需模块具备较小的控制误差才能提高模块的高精度控制,相比其他两个控制模块,本文设计的基于FPGA的控制模块的输出最接近实验控制指令中的转矩标准,证明所设计的控制模块的控制误差较好。
(3) 控制成果分析
实验机器产生的加工元件的规格同越接近目标规格,模块控制成果越好。实验结果表明本文控制模块的控制成果范围高达[97.5%,99.5%],与其他两个模块相比,控制成果更好,可实现高精度控制。
4 总结
本文完成了基于FPGA的数控机床步进电机高精度控制模块的设计,为提高模块的响应效果,缩减控制误差,模块的硬件控制核心使用微控制器(STM32F103),结合综合步进电机驱动器、现场可编程门阵列等,通过使用线性速度控制函数,有效提升了控制成果,进而实现模块的高精度控制。通过对控制模块进行检测,结果表明该模块响应效果较好,实现了误差和成果控制的目标,能有效完成对被控对象的高精度控制过程。