在工业自动化与高精度运动控制领域,设备的停止过程往往比运动过程更考验系统的控制性能。传统运动控制方式在临近目标位置时仍维持较高速度,导致机械系统承受较大惯性冲击,引起设备振动、定位偏差、零件磨损甚至工件损伤。
软着陆功能作为一种先进的运动控制策略,通过智能化的速度规划与平滑切换机制,显著提升了设备在停止阶段的控制品质与可靠性。
软着陆本质上是一种基于分段速度曲线的运动控制方法。其核心思想是将整个定位过程划分为如下两个主要阶段:
(1)高速趋近阶段
在此阶段,运动轴以系统允许的最高效率速度向目标位置移动,确保整体运动过程具备良好的时间性能与生产效率。
(2)低速精停阶段
在接近目标位置某一设定距离(即“切换点”)时,控制系统自动切换至预先设定的低速模式,以极小且可控的速度完成最终阶段的位移。此举极大降低了系统动能,从而实现接近无冲击的停止效果。
该控制结构不仅在机械层面减少冲击,也可在需要力控制的场合(如精密装配、半导体压合、光学对位等)实现终端力的精确管理。
实现高性能的软着陆控制,离不开以下几类关键参数的精细配置与底层算法的支持:
(1)FORCE_SPEED
软着陆阶段的运行速度,通常设置为较低值,是影响接触力与平稳性的直接因素。
(2)MOVELIMIT
运动系统在最终阶段所允许的最大速度上限,用于约束末段运动能量,防止过冲。
(3)切换点
系统由高速转为低速的关键位置参数。其设置需综合考虑运动惯量、系统响应时间与负载特性,通常需在实际应用中通过调试优化确定。
(4)S型加减速曲线
采用S型算法规划加减速过程,使得速度变化连续平滑,避免阶跃变化引起的机械振荡与冲击噪声,进一步提升运动的平稳性与定位精度。
在正运动控制器中,软着陆功能常通过复合运动指令或参数化方式实现。
例如,可使用MOVESP指令组合,将整个运动分解为:
(1)前半段以FORCE_SPEED及较高加速度进行规划。
(2)后半段则受MOVELIMIT限制,并以S型曲线平滑过渡至目标点。
此类指令通常允许用户直接设置软着陆区间、末端速度及过渡点等参数,具有良好的可配置性与应用灵活性。

如上图所示,重点想实现的功能为最大速度结束时能以一个很低速度靠近结束点。
将运动过程分为两段,将MOVESP分为两段,第一段以FORCE_SPEED进行规划加速到Vm,第二段以最大速度MOVELIMIT进行规划,使用软着陆速度Vp低速运行。
采用S型算法规划加减速过程,使得速度变化连续平滑。
以下是基于C#平台的软着陆功能实现关键代码:
private void button6_Click(object sender, EventArgs e)
{
if (g_handle == (IntPtr)0)
{
MessageBox.Show("未链接到控制器!", "提示");
}
else
{
int[] axislist = { m_axisnum };
float[] poslist1 = { Convert.ToSingle(textBox21.Text) };
float[] poslist2 = { Convert.ToSingle(textBox31.Text) };
//设置轴参数
zmcaux.ZAux_Direct_SetUnits(g_handle, m_axisnum, Convert.ToSingle(C_AxisUnits.Text));
zmcaux.ZAux_Direct_SetSpeed(g_handle, m_axisnum, Convert.ToSingle(C_AxisSpeed.Text));
zmcaux.ZAux_Direct_SetAccel(g_handle, m_axisnum, Convert.ToSingle(C_AxisAcc.Text));
zmcaux.ZAux_Direct_SetSramp(g_handle, m_axisnum, Convert.ToSingle(C_Axis_sramp.Text));
zmcaux.ZAux_Direct_SetLspeed(g_handle, 0, Convert.ToSingle(C_Axis_lspeed.Text));
zmcaux.ZAux_Direct_SetMerge(g_handle, 0, 1);
//触发示波器
zmcaux.ZAux_Trigger(g_handle);
zmcaux.ZAux_Direct_SetForceSpeed(g_handle, m_axisnum, Convert.ToSingle(textBox22.Text));//快速段速度设置
zmcaux.ZAux_Direct_MoveSp(g_handle, 1, axislist, poslist1);//运动距离设置
zmcaux.ZAux_Direct_MoveLimit(g_handle, m_axisnum, Convert.ToSingle(textBox23.Text));//限制速度
zmcaux.ZAux_Direct_SetForceSpeed(g_handle, m_axisnum, Convert.ToSingle(textBox32.Text));//软着陆速度设置
zmcaux.ZAux_Direct_MoveSp(g_handle, 1, axislist, poslist2);//运动距离设置
zmcaux.ZAux_Direct_MoveLimit(g_handle, m_axisnum, Convert.ToSingle(textBox33.Text));//限制速度
}
}1.选择控制器LOCAL连接方式。填入LOCAL+卡号连接后,点击连接。
2.对总线进行初始化。调用已经配置好的RTSys项目,点击打开项目,打开后下载ROM,初始化成功会在初始化状态显示,并且识别节点数量和轴数量。
3.对轴进行参数设置。根据驱动器一圈脉冲数和螺距设置好脉冲当量,设置合理的速度与加减速度,例程中减速度默认与加速度一致。
4.根据实际情况,选择驱动器回零模式进行回零。
5.接下来对软着陆轨迹进行规划。如下图,分成两段规划:
第一段为高速运动,靠近加工点,运动距离40,运行速度为300,结束速度为50;
第二段为软着陆加工段,以50速度加工距离为10,加工完成减速到0。

同时,利用MotionRT750的快速交互优点,basic程序中编写了驱动器的力矩检测,当运动前将TABLE(100)置1,开始检测到超过设置的最大值,会停止运动。

通过示波器采集的运动曲线可以清晰展示软着陆效果:
(1)运动初期以较高速度运行,提高效率;
(2)接近目标位置时自动切换至低速模式;
(3)速度平滑过渡,无突变或冲击;
(4)最终以极低速度精确到达目标位置。
