电子说
1 引言
随着制造业朝着生产规模化、产品个性化的方向发展,产品型号变化加快,生产批量相对变小,多种型号共线生产、覆盖件大型化,一体化的趋势日益明显,要求压力机不仅能够高速度、高精度、大负载的运转,而且应具有更大的柔性,能迅速、方便地改变输出运动规律。以上这些不断提高的加工工艺和生产条件的多样化都促进了锻压设备行业的重大变革。在需求的推动下,目前,世界上出现伺服电机直接驱动的伺服压力机,能够满足塑性加工、难成形材料成形、复杂形状零件成形、复合成形以及高精度成形等成形工艺的要求。伺服压力机采用交流伺服电机代替普通交流电机,去除传统曲柄压力机上的飞轮和离合器,使得压力机机械结构得以简化,可靠性增强。所以研制适合不同材料加工要求的压力机数字控制系统, 对提高材料加工技术的水平和加工装备的数字化能力具有十分重要的现实意义[1]。
伺服压力机的基本结构及对控制系统的要求与传统压力机比较,伺服压力机取消了原有压力机的飞轮和离合器,保留了曲柄滑块驱动机构,其传动系统采用一级齿轮减速系统,将其运动和动力传递给压力机的曲轴,由曲轴的转动实现压力机的往返运动。
同时,伺服压力机对控制系统有更高的要求,一般要求控制系统满足:可编程的滑块运动曲线,适应不同的加工对象、不同材质的加工工艺;滑块位置和速度的精确控制;快速的响应[2]。
2 控制系统总体方案设计
根据上述伺服压力机的功能要求,本系统选用了“工控机+ARM运动控制卡"的硬件设计方案。工控机负责系统的非实时部分的工作,完成运动曲线的读取和设置,工艺的优化以及运行状态参数的显示,ARM运动
控制卡负责系统的实时部分,完成伺服压力机的实时运动控制和数据逻辑的处理。ARM运动控制卡与工控机之间、采用成熟的串行通信进行通信。采用stm32系列的ARM芯片,STM32是意法半导体推出的一款32位的微控制器,该控制器所用微处理器是ARM 公司开发的Cortex2M3内核。CortexM3进行了多项技术改进,使得代码执行速度更快,同时能耗更低。在外设方面,该型号包含有两个12位逐次逼近型的模拟/数字转换器,转换时间最高为1ms ; 3个USART通讯接口,支持全双工的数据交换,提供宽范围波特率的选择,最高可达到415Mbps; 两个SPI通讯口,支持18MHz的主从控制模式;两个I2C总线接口,支持芯片间的通讯与传输;3个16位的通用定时器,每个定时器都有4路通道,每个通道有3种工作模式选择,即输入捕获模式、输出比较模式、PWM控制模式;一个16位的高级定时器专门用于电机向量驱动,其中有6个功能通道,并且能设置死区时间。此外还有常用的USB和CAN总线接口以及7个DMA通道,用于数据的自动传输[3]。基于STM32的伺服电机控制系统的系统框图如图1所示。
图1 控制系统框图
根据系统的工作原理,该控制系统可以分为PWM产生,脉冲计数,IO控制和串口通信四个部分。由于本系统采用伺服驱动器控制伺服电机,控制信号包括PWM脉冲信号,电机方向信号和伺服使能信号等,PWM脉冲信号由STM32专用的定时器产生,STM32支持PWM脉冲的频率和占空比在线调整,其预装在寄存器可以将新设定值在计数溢出后自动装载影子寄存器,同时更新周期计数器和预分频器。方向和使能信号由普通IO口产生,STM32产生的数字信号经过光耦隔离输出,一方面防止了电气干扰,同时完成电平转换,提高了IO口的驱动能力[4];
增量式脉冲编码器输出A、B、Z三路差分信号,经过光电隔离送入STM32的定时器,本系统中通过对一定时间内的产生的反馈脉冲计数,获取电机的位置和速度,完实现速度和位置的闭环控制;
IO控制模块包括输入IO和输出IO,输入输出IO经过继电器将信号送入stm32的普通IO口,输入IO主要包括电机的使能和失能,伺服激磁等信号,输出IO用作电机运行异常的报警信号,异常信号经继电器送入IO口产生中断信号,主控制器根据相应的中断信号,转入中断子程序执行;
STM32有3个USART通讯接口,支持全双工的数据交换,提供宽范围波特率的选择,可以满足此处的通信要求,采用串口与上位机通信,获取上位机的指令和运动参数,并返回滑块的运动状态。
3 控制系统的软件实现
3.1 软件的总体结构
软件部分采用Real2View MDK(Microcon-troller Development Kit)进行程序代码编写 ,采用模块化的编程思想,独立完成系统设置模块,编码器反馈模块,定时器模块,通信模块和PID闭环控制模块的程序设置,程序的整体结构如图2所示:
图2 软件结构图
图3 主程序流程
3.2 主程序流程
在电机的运动部分,由于采用串口通信传递电机的控制参数,因而需要定义串口通信的数据格式,在此处的程序设计中,把数据帧划分为命令控制字、状态查询字(需下位机返回数据)和电机参数字。以上位机传递运动参数为例,上位机发送位置指令,控制器检测是否收到数据,根据收到的数据给驱动器发送信号,控制电机精确的运行到指定位置,如果出现误差,则进行误差补偿,系统程序的流程如图3所示。
3.3 转子位置、角速度检测
脉冲编码器模块主要完成位置和速度的计算,实现位移和速度的闭环控制。增量式编码器其输出信号为脉冲信号,其脉冲个数与相对旋转位移有关,而与旋转的绝对位置无关,其精度较高,而且其成本相对较低。如果预先设定一个基准位置,则可以利用增量式编码器实现绝对式编码器的功能,即可以测出旋转的绝对位置。而速度的计算有两种方法,一种是采用f/v转换电路,将频率转换为电压信号实现测速,另一种是在给定的时间内对脉冲计数直接完成速度的计算,考虑到实现的复杂性,本处采用后一种方法实现。
3.4 定时器模块
在整个控制程序中,PWM脉冲的产生和控制是最关键的环节,能否可靠的产生实时可调的PWM脉冲关系到整个系统的灵活性和精确度。在STM32中有2种定时器:通用定时器和高级定时器,其中T1M1为高级定时器,TI M2、TI M3和TIM4为通用定时器。通用定时器由一个16位自动装载计数器构成,该计数器可以通过可编程预分频器进行驱动。通用定时器可设置成16位向上、向下、中心3种自动装载的计数模式。通用定时器最高可以配置72MHz的系统时钟,每个通用定时器有4个16位高精度的捕获/比较通道,可以配置输出6路互补的PWM脉冲。
该控制系统采用向上计数的PWM模式脉冲驱动电机。脉冲宽度调制是一种对脉冲信号的电平宽度进行数字编码的方法。通过高精度定时器的应用,脉冲周期中的高电平和低电平的持续时间皆可由基础高精度定时器的是高频率的整数倍数表示出来。在确定输出电压的条件下,单段完整的PWM脉冲信号包含3个参数: 脉冲频率、脉冲占空比、脉冲个数。前2个参数决定脉冲的形状,后1个参数确定脉冲维持的时间。PWM产生部分程序流程图如图4所示。
图4 脉冲产生流程图
3.4.1 脉冲信号的端口配置
脉冲信号的端口配置包括3路定时器PWM的输出、3路使能信号,3路方向信号,定时器的PWM脉冲信号的输出口配置成复用推挽输出模式,方向信号和能使信号的输出口配置成推挽输出模式,而编码器的捕获输入口配置成浮空输入模式。GPIO根据连接速度的需要可以配置成2MHz、10MHz和50MHz3种类型。
3.4.2 脉冲频率和占空比的设置
在STM32控制芯片中,与定时器相关的寄存器有计数器寄存器(TMCNT)、预分频器寄存器(TMPSC)、捕获/比较寄存器(TMCCR)、自动装载寄存器(TMARR)。要产生指定参数的PWM脉冲, 主要就是对这些寄存器进行配置。下面介绍PWM信号配置步骤:
(1) 基频的设置。在STM32中TIM1高级定时器的时钟基频由ABP1桥时钟确定,而通用定时器的时钟基频由ABP2桥时钟确定。在系统模块中ABP1桥和ABP2桥时钟都配置成最高的72MHz系统时钟。由于16位的定时器表示的脉冲频率范围有限,为了扩大其输出脉冲的频率范围,需要通过设置预分频器寄存器,降低输入时的频率,配置成72MHz/TMPSC的基频。这样设置后,计数器寄存器和自动装载寄存器皆以分频后的基频为单位进行比较和计数。
(2) 基频的设置。在向上计数模式中,计数器寄存器从0开始计数到自动装载寄存器设置的值,然后重新从0开始计数同时产生一个计数器溢出中断。通过设置自动装载寄存器,调整溢出中断产生的时间,溢出中断产生后,系统会自动实现一次电平转换,开启下一个脉冲周期。因此由72MHz/TMARR可以确定了PWM信号的频率。
(3) 占空比的设置。在计数器寄存器从0增加计数到自动装置寄存器设置值的过中,可以通过设置比较寄存器,改变比较寄存器与计数寄存器之间的大小关系, 实现一次电平跳变,其中因此通过为了扩大可以产生的脉冲范围,可能需要对72MHz的系统时钟进行预分频。所以实际程序中先需要判断是否需要预分频,如若需要配置,那么还需计算最小的预分频系数。
3.4.3 脉冲计数
STM32可以直接设置 PWM脉冲信号的周期和占空比,确定脉冲信号的形状,但需要通过对脉冲计数来确定发送脉冲个数,决定定时器的起停。在生成PWM过程中,当计数寄存器当前数值大于比较寄存器设置值时,将产生比较中断。当计数寄存器值增加到自动装载寄存器设置值时,将产生溢出中断,2个中断皆采用边沿触发,比较中断将在下降沿触发,而溢出中断将在上升沿触发,在中断触发的时刻即可实现脉冲的计数。
4 结束语
本文应用STM32建立了伺服压力机的控制系统,
并提出了伺压力机控制系统的实现模式。控制滑块实现任意的速率和运动曲线,提高材料可成形性,降低噪音,节约能源。从建立的伺服压力机控制系统中可以看出完善伺服电机的控制、计算能量的极小化、获得精确的冲压能量是有待进一步研究的问题[5]。
全部0条评论
快来发表一下你的评论吧 !