“先把c轴机械制动锁住。”
“任何人不要直接重启程序。”
昆岳一号虽然及时停止,但刚才的指令跳变已经说明,现有五轴算法无法安全通过奇异区域。
从一百七十九度变成负一百七十九度,数学上只相差两度。
控制器却可能将它理解为反向旋转三百五十八度。
对电脑来说,两种计算都能得到相同刀具姿态。
对九吨重的摆角铣头来说,后者足以引发事故。
林浩把发生跳变前后的一百组数据全部提取出来。
b轴远离零度时,c轴解算连续。
进入正负两度范围,可能解的数量迅速增加。
b轴越接近零度,c轴角度对刀具方向的影响越小。
等到b轴完全回零,c轴无论处于多少度,主轴方向都保持垂直。
这就是奇异点。
不是控制器算不出答案。
而是正确答案突然变得太多。
“给所有答案加一个选择条件。”
周野说道,“优先选择距离上一时刻最近的姿态。”
“上一时刻是一百七十九度。”
“下一时刻即使计算结果显示负一百七十九度,也应该展开成一百八十一度。”
“机械上只移动两度。”
这是最基础的角度连续展开。
修改后再次模拟,三百五十八度跳变消失。
可新问题很快出现。
一条复杂轨迹连续经过奇异区域三次。
c轴每次都选择最近方向。
最终角度从零度累计到五百四十多度。
昆岳一号的c轴虽然可以连续旋转,内部电缆和冷却管路却不能无限缠绕。
“只追求眼前移动最短不行。”
林浩说道,“还要考虑后面轨迹。”
“不能为了现在少转十度,把自己绕死在下一段。”
控制器必须提前阅读未来一段刀路。
在多组等价姿态中,同时考虑四个条件。
当前运动距离最短。
旋转轴不接近极限。
电缆累计扭转最少。
各轴速度与加速度连续。
这不再是单点计算。
而是一段轨迹的整体规划。
林浩带着控制团队连续工作三天。
第一版前瞻算法只读取未来五十毫秒轨迹。
时间太短,遇到长曲面仍然可能选择错误方向。
第二版提高到五百毫秒。
效果改善,计算负载却明显增加。
第三版使用分层判断。
普通区域只做快速计算。
进入b轴正负三度奇异区后,才启动更长轨迹前瞻。
既保证速度,也避免无意义计算。
系统开始进行百万条随机路径验证。
【五轴奇异区连续解算算法】
【验证路径数量:条】
【c轴指令跳变次数:0】
【最大单周期角度变化:0.08度】
【累计缠绕风险降低:96%】
【当前算法完成度:91%】
还剩一个问题。
算法为了避免c轴快速转动,会在奇异区域主动降低进给速度。
速度突然下降,刀具受力也会变化。
即使轨迹没有偏移,工件表面仍可能留下接刀痕。
“姿态减速,刀尖不能减速。”
周野说道,“c轴少动的部分,由x、Y轴重新分配。”
“保证刀尖沿工件表面的实际进给速度不变。”
五轴联动的难点就在这里。
某一个轴慢下来,不代表刀具必须整体慢下来。
只要其他轴能够补上,刀尖速度仍可保持连续。
经过重新分配,奇异区域的c轴速度下降百分之六十。
刀尖实际进给速度变化却不超过百分之一点二。
低速空运行通过。
中速通过。
高速通过。
c轴从一百七十九度平稳跨过到一百八十一度。
b轴穿过零度。
x、Y、Z三个直线轴同步完成补偿。
没有报警。
没有角度跳变。
测试棒刀尖轨迹误差,零点零二五毫米。
【五轴运动学奇异区异常已消除】
【c轴最大异常跳变:0度】
【奇异区刀尖速度波动:1.2%】
【奇异区刀尖轨迹误差:0.025毫米】
【昆岳一号五轴控制完成度提升至89%】
沈青禾后来把这段故障原理做成了一条不涉及设备细节的科普视频。
评论区有人问:
“一百七十九到负一百七十九明明只差两度,程序员不会算吗?”
云溪八级钳工回复:
“一楼到二楼也只差一层,你怎么不从窗户走直线?”
下面有人回答:“因为会摔死。”
梁师傅又回了一句:
“机器也一样,所以别拿会算数学,当成懂机加工。”
这次,陈大川没有拆穿他。
只是在那条评论下面点了一个赞。
梁师傅很快发来私信。
“别乱点赞。”
“容易暴露。”
……