李 锐,孟 婥,郗欣甫,郑秋桐
(东华大学 机械工程学院,上海 201620)
提花控制器是地毯织机中的核心控制部分,其驱动的步进电动机直接影响织物的质量,因此,对步进电动机的运行速度进行研究具有重要意义。步进电动机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有精度高、运行可靠、无累计误差等优点,被广泛应用于数字控制系统[1]。步进电动机启动时脉冲频率不能高于空载启动频率,否则电动机会发生丢步或堵转。要达到较高的运行频率,电动机必须有加速过程[2]。常见加减速算法有直线加减速、指数曲线加减速等,因其均具有柔性冲击,不适合高速运动[3]。为此,本文提出基 于STM32F407芯片控制平台的步进电动机S型曲线启动算法[4],解决步进电动机加减速过程中存在柔性冲击问题,增强电动机高速运动时的稳定性与可靠性[5]。
地毯织机控制系统中由于步进电动机启动与停止过程存在柔性冲击[6],使得织物质量大大下降;若步进电动机按照S曲线加减速则不存在柔性冲击,且适合高速运动[7]。
步进电动机作为地毯织机提花控制系统中的主要驱动部分[8],不仅直接控制提花轮,也可用来模拟主轴系统,因此步进电动机转速即为主轴实际转速[9]。图1为地毯织机提花控制系统步进电动机。其中:“1”为步进电动机,且受控于不同提花控制器[10],步进电动机“2”间接受控于模拟主轴系统的步进电动机“1”[11]。示波器为Scope View上位机软件,可在该软件中设置需要监测的变量:包括主轴实际转速,控制系统速度比值,编码器位置等[12]。
图1 地毯织机提花控制系统步进电动机
STM32F407ZGT6内核是ARM公司设计的Cortex-M4内核,该内核采用ARMv7-ME架构。芯片内核高达168 M,实际可以超频一点,支持FPU和DSP指令。
STM32F407ZGT6内部集成的定时器多达 17个,其中包括10个通用定时器,2个基本定时器,2个高级定时器,1个系统定时器和2个看门狗定时器。定时器最多具有4个独立通道,可用于输入捕获、输出比较、PWM生成、单脉冲模式输出。
在程序中,设置计数器的时钟频率,即设置分频系数psc,可得计数器的计数频率f,其值为时钟总线频率除以psc,然后根据需要产生的PWM波形的周期设置自动重装载值pre。pre×f即为产生PWM波形的频率,其倒数为周期值。
步进电动机参数如表1所示。
表1 步进电动机参数
假设产生脉冲的定时器的计数频率为ft,第1次计数次数为C0,则:
δt=C0×tt=C0/ft
(1)
通过给出电动机步距角α,位置θ与角速度w,可得步进电动机转1转需要的脉冲数spr;以及当脉冲数为n时,各个变量之间的关系:
α=2π/spr
(2)
θ=nα
(3)
w=θ/δt
(4)
为使步进电动机启动过程平滑,引入加速度与速度,由式(4)可知,步进电动机的速度坡度、每 2个脉冲之间的时间间隔都需通过计算得到,使用定时器的计数次数Cn来离散时间轴,控制步进电动机运动和处理延时。步进电动机运动时间与角速度关系如图2所示。
图2 S曲线的离散化
期望的线性速度坡度是通过定时器的拟合无限接近,通过改变2个脉冲之间的计数次数Cn改变δt。计数值Cn的求解如下:
(5)
(6)
(7)
(8)
(9)
(10)
(11)
由于STM32F407芯片系统的计算能力有限,连续2次计算开方根很费时,因此,须考虑用多项式展开式(11),以减少运算。式(12)为泰勒公式的一个特例——麦克劳林公式:
(12)
第n个脉冲定时器计数器值Cn可使用式(12)简化,见式(13):
(13)
由式(7)、(9)、(10)可知,角加速度与C0、n相关。如需改变角加速度,需重新计算一个n值。时间tn和n作为角加速度、角速度及步距角的参数,由式(5)、(7)可得:
(14)
(15)
联合式(14)和(15)得:
(16)
电动机加速阶段程序为:
case ACCEL:
MSD_PULSE_TIM->CCER|=1《12;
//使能输出
MSD_StepCounter(srd.dir);
step_count++;
srd.accel_count++;
new_step_delay=srd.step_delay-(((2*(long)srd.step_delay)+rest)/(4*srd.accel_count+1));
//保存除不尽的余数参与下1次的计算 new_step_delay//为余数
rest=((2*(long)srd.step_delay)+rest)%(4*srd.accel_count+1);
//检查是否够应该开始减速
if(step_count>=srd.decel_start)
{
srd.accel_count=srd.decel_val;
srd.run_state=DECEL;
}
//检查是否到达期望的最大速度
else if(new_step_delay<=srd.min_delay)
{
last_accel_delay=new_step_delay;
new_step_delay=srd.min_delay;
rest=0;
srd.run_state=RUN;
}
break;
上述程序运行到加速阶段时,new_step_delay和2个参数为改变计数次数Cn值的关键,也是改变加速运行以及整个电动机运行曲线的关键。根据确定的数学关系,设定一个参数rest弥补步进电动机运行中2个脉冲之间的时间延迟。图3为步进电动机启动阶段的算法程序流程图。
图3 步进电动机启动阶段算法程序流程图
实际过程中,由于硬件传动机构等因素需对主轴的实际速度乘以一个速度比值P(简称比值P),比值P为主轴实际速度与设定速度的比值,其是实时变化的。控制系统中与步进电动机相关参数如表2 所示。
表2 步进电动机运行参数
提花控制系统电动机实际转速为:
(17)
送纱量为:
(18)
由式(18)可知在簇绒地毯提花控制系统中,针密h、绒高H、主轴设定速度v2等参数设定不变情况下,改变速度比值P,可直接改变送纱量S。
以编码器值变化时刻为时间起点,以55 ms为时间长度,依次确定t1、t2值,计算出送纱量与时间关系,如表3所示。
表3 送纱量与时间的关系
上位机软件Scope View中设置好要观察的变量:主轴实际转速、速度比值以及编码器位置后,导出数据,利用Matlab软件分析数据。
当编码器动作、主轴实际转速呈现S型坡度快速上升,编码器的位置呈周期性变化时,主轴实际速度基本保持不变,停止阶段,主轴实际速度呈S型快速减小。图4为编码器动作时,主轴实际速度与编码器位置的关系曲线。
图4 编码器与主轴实际转速的关系
图5为编码器与比值P的关系。编码器动作时,速度比值P也呈S型曲线快速增长,编码器位置周期性变化时,比值基本保持不变,步进电动机停止阶段,比值也快速减小。类比图4可知,比值P的变化规律与主轴实际速度一致。
图5 编码器与比值的关系
图6为编码器、主轴实际速度与比值的关系。可以看出,比值P的值始终低于主轴的实际速度,该结果与表2吻合。
图6 编码器、主轴实际速度及比值的关系
由图4、5、6可知,速度比值P与主轴实际速度v1同步变化,且由表2可知P值等于v1/v2,结合式(18)可知,送纱量S为速度比值P与时间积分,即主轴实际转速v1与送纱量S同步变化。因此送纱量直接反映步进电动机运行情况。
为保持送纱量稳定,分析Scope View导出的数据,改变程序中控制器计数频率ft与计数次数Cn,即改变单位时间内脉冲数量n,主轴实际速度v1随即被改变,比值P也同步变化,将得出的比值P实时发送给地毯织机提花控制系统,即可改变送纱量S。
采用4.1节中送纱量计算方法,可得电动机启动、稳定运行、停止阶段送纱量S与时间的关系。图7 为电动机启动、稳定运行、停止阶段送纱量与时间的关系。
图7 电动机启动、稳定运行、停止阶段送纱量与时间的关系
由图7可知,步进电动机加速过程与减速过程均符合S曲线规律,脉冲频率间切换平滑,电动机稳定,且控制系统根据实际送纱量要求,在设定好主轴转速v2不变情况下,主轴实际速度v1与设定速度比值P不断增大。
①根据步进电动机S曲线启动要求,理论推导,可得定时器计数次数Cn离散时间轴,将结果写入程序;下载进控制器,使其输出相应脉冲频率控制步进电动机;步进电动机实际转速即主轴实际转速v1,v1与设定速度v2比值,即速度比值P,得出Cn与P的关系。
②由Cn、v1以及P的关系,得出修改Cn将得到的速度比值P在上位机实时发送给地毯织机提花控制系统,即可得理想送纱量S,实现步进电动机S曲线启动。