在此篇論文中,著重在兩個工作,第一個工作是先將五軸學習控制 演算法的實作和優化效能。我們參考了Matlab程式,必且實作用C++去實 作他,再透過除去多餘的運算、使用OpenMP來平行化程式和編譯器的優 化來提升程式的效能。在單次學習下,提升了7.6倍的效能。 第二個工作則是將實做出來的五軸學習控制程式整合到一個開放原始 碼的電腦數值控制軟體:LinuxCNC。本團隊在LinuxCNC上開發一個新 的GUI,來協助ILC與LinuxCNC整合。 我們將整合完成的程式放到一架真實的五軸工具機台上操作並測量數 據,從實驗的結果可以發現,五軸學習控制程式能夠在數次學習後,減少 加工上產生的實際輪廓誤差。
This thesis focuses on two works. The first one is to implement the five-axis iterative learning control(ILC) algorithm and to optimize it. We reference a Matlab program and implement a corresponding C++ version. Eliminating redundant computation, parallelizing programs using OpenMP, and adapting compiler optimizations are used to enhance the program’s performance. For the execution time of a single learning iteration, the experimental result shows the optimized program has a 7.6 times speedup compared to non-optimized version. The second work is to integrate the five-axis ILC program into an open-source CNC software, LinuxCNC. A new GUI is developed and added into LinuxCNC to assistant the use of ILC in LinuxCNC. The whole system is evaluated on a real five-axis CNC machine tool. The experimental result shows it can correctly work and the ILC program can decrease actual contour errors after several learning iterations.