摘要:在设计和调试生产机器中的定位轴时,以下问题特别令人感兴趣,比如定位需要多长时间?需要多长时间才能达到目标速度?当改变指令速度时,行进的距离是多少?需要什么加速度和冲击(Jerk)才能在特定时间内完成定位?何时必须开始停止移动以避免碰撞(进行碰撞监控)?如何在机器上实现最小的磨损?本文从起始加速度和速度等于零的定位过程出发,介绍如何计算和评估运动轮廓细节,进而介绍一种基于S7-1500(T)的起始速度和加速度不为零的运动轮廓的计算和编程方法.
1 介绍
通过SIMATICS7-1500(T)的运动控制工艺对象(TO)来控制伺服电动机及其机构进行定位时,可以事前通过计算机程序比如SIZER来执行概略计算,获得电动机的动态特性,比如加速转矩,以及驱动器的制动功率,定位时间等信息,但是用计算机程序来执行这些计算,无法体现在内的工艺程序执行过程中,在程序运行时很多情况下需要准确的判断加速和减速过程需要的距离,并且需要在程序中给定合适的参数值以满足工艺要求,常规的调试工程师设置工艺对象参数均凭借现场的调试效果来设置.如果通过SIMATICS7-1500(T)的程序能够在程序执行前自动计算出定位时间以及计算出合适的动态参数,则对设备调试和工程实施起到非常大的帮助作用,使调试的工作轻松简便许多,而且还可以取得更好的效果.
2 位置控制基准给定形成的影响以及相关参数计算
通过形成位置控制的基准给定量,传递到运动的工艺轴,使控制的伺服系统能够按所要求的加速度和速度变化特性曲线来进行运动.由于位置调节的被控对象的非线性,滞后以及控制回路自身的多阶特性,导致基准给定量的信号传递存在畸变,因而会产生动态的轨迹偏差.通过限制基准给定量的形成特性可以有效的减小这些动态轨迹偏差,一方面可以避免驱动系统的电流限幅不会达到,同时伺服电动机工作在其能力范围之内.另一方面基准给定量的限幅的还可以降低对传动系统以及机械传递元件的刚性和惯量等要求.
如果对冲击(Jerk)、加速度和速度等这些可影响的基准给定量值加以限制,当在任何瞬间时刻都使这三个量值中的一个处于其极限值时,每个运动步距就都以时间最优方式进行。虽然通过基准给定量的参数调节可以改善轨迹精度和降低对传动系统的要求,但是于此同时会引起运动时间延长.如果一个轴的机械刚性不能提高,那么就可以以定位时间为代价通过加速度限制和冲击限制来改善超调特性.运动中的加减速度限制值很容易确定,即由电动机和驱动的输出能力以及制动能力决定.而冲击(Jerk)则和运动机构的固有频率、阻尼以及期望的超调量和定位时间之间互相影响,因此正确地整定冲击(Jerk)限制值是相对较为困难的。工程技术人员可以通过使用EXCEL或者使用SIMATICS7-1500(T)直接进行计算,计算的公式(以EXCEL为例)如下图所示,其计算公式基于二阶系统的给定值斜坡特性确定,利用下图公式同样可以计算超调量的数值:
图1通过给定机构阻尼,加速度,和机械固有频率以及需求的超调量计算冲击(Jerk)
3 起始加速度和速度为零的运动轮廓计算过程
起始加速度和速度为零的运动轮廓类型计算时计算量较小,并且容易实现.在SIMATICS7-1500(T)内计算定位时间均以七段为计算.
图2通用七段加速度轮廓
当计算时以输入的速度,加速度,冲击(Jerk)参数和给定距离进行合成计算,如果出现的极限值使给定的参数无法达到则缩减计算的段数,比如没有恒加速度段,恒减速段以及恒速度段,形成四段的定位加减速度轮廓.
加减速的极限值和轮廓内的速度最大值判断的SCL语句如下:
IF(0.5*#setDistance*(#setJerk*#setJerk))**(1.0/3.0)>SQRT(#setVelocity*#setJerk)THEN
#AccDecMax:=SQRT(#setVelocity*#setJerk);
ELSE
#AccDecMax:=(0.5*#setDistance*(#setJerk*#setJerk))**(1.0/3.0);
END_IF;
#VelMax:=(0.25*#setJerk*(#setDistance*#setDistance))**(1.0/3.0);
//在SIMATICS7-1500(T)内指令**(1.0/3.0)等于开立方计算.
通过如上的计算指令可以得到最大的限制值,进而获得七段加速轮廓中存在的实际的段落.并且得到了最大限制值则可顺利的推断出后续的每一段的运行时间和总体的运行时间.电机的转矩利用情况等隐含在内的信息可以一并获得.为了便于广泛的工程技术人员使用,西门子公司为SIMATICS7-1500(T)封装了包含如上程序的功能库LCalcMC,利用其可以直接正向计算时间和距离或者根据距离反向计算动态参数.
4 起始加速度和速度不为零的运动轮廓计算过程
通过LCalcMC库可以计算静止到静止的基准量相关参数,但是很多应用是起始速度和加速度不为零的情况,比如在运行中新给定另一组目标位置和动态参数,因此需要另行计算相关的轮廓段数和极限数值.
为获得准确的计算数值,首先需要对运行中的运动矢量数值和新给定的参数进行比较,划定计算的十六种区间(表格1内的缩写说明:V=速度,S=距离,a=加速度,m=最大值,at0=当加速度减为零时变化的数值,atm=加速度变化到最大值时的数值,mt0=从最大值到零,vt0=速度减到零时的数值,比如Vat0时加速度减到零时的速度值).
表1基于当前加速度和给定加速度进行区间判别
对于以上的每一个区间均分为四种不同的情形,以区间1为例,如表2所示:
表2基于给定目标距离对于区间进一步划分
其中,四个区间的子区间三均需要单独计算,因为存在一个新的目标值用于满足给定距离的需求,计算方法可以采用卡尔丹公式进行直接求解,或者使用二分法对新的速度进行查找,因为查找方向和范围均可确定,因此在计算精度0.001的情况下在SIMATICS7-1500(T)内循环二十次左右即可完成数值查找,其公式由三个一元三次方程组成,方程可以通过标准七段定位矢量计算公式获得.在编程时可以首先准备一系列的子程序用于计算每一段的位置和速度值,以七段加速度中的第五段的位移和区间三的第三子区间为例,如下图所示:
图3标准七段公式举例
随后可以组合利用以上子程序计算区间三的第三子区间的新的目标速度值:
图4二分法计算第三子区间举例
在完成16段子区间的计算后,则可以在SIMATICS7-1500(T)内执行完整的时间和运动轮廓计算,利用软件仿真的结果如下图所示:
图5利用PLCSIM进行仿真(执行周期为4ms)
结语
单轴定位是多轴同步控制和运动机构的路径控制基础,能够对单轴定位的信息和参数获得深入的了解是进一步更精确快速完成同步和路径控制的必经之路.通过SIMATICS7-1500(T)LCalcMC库以及起始速度和加速度不为零的运动轮廓计算方案,可以使调试和运行定位程序时获取更多的信息,并且利用对冲击(Jerk)的准确计算可以使调试时的参数设置有了明确的区间和方向.进一步的研究说明可以在SIMATICS7-1500(T)的IPO周期内对以上的七段运动轮廓计算值进行插补,然后利用位置偏差和速度预控功能在支持DSC的驱动器上实现效果极佳的运动控制功能.