“先把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%】
沈青禾後來把這段故障原理做成了一條不涉及設備細節的科普視頻。
評論區有人問︰
“一百七十九到負一百七十九明明只差兩度,程序員不會算嗎?”
雲溪八級鉗工回復︰
“一樓到二樓也只差一層,你怎麼不從窗戶走直線?”
下面有人回答︰“因為會摔死。”
梁師傅又回了一句︰
“機器也一樣,所以別拿會算數學,當成懂機加工。”
這次,陳大川沒有拆穿他。
只是在那條評論下面點了一個贊。
梁師傅很快發來私信。
“別亂點贊。”
“容易暴露。”
……