本篇論文的目的是將一套疊代學習控制模組整合到一個開放原始碼的電腦數值控制軟體:LinuxCNC。LinuxCNC程式同時具有使用者空間與核心空間的執行區塊,本團隊提出了幾種方式來協助疊代學習控制模組與LinuxCNC之間的資料溝通困難,尤其在LinuxCNC中的Motion區域中,我們實作了能夠在核心空間執行的幾個特別函式來進行資料的輸入與輸出。而為了能夠遵守LinuxCNC的即時反應時間限制,我們利用了RAM Disk技術來加速存取儲存裝置的速度。 我們將整合完成的程式於一架真實的五軸工具機台上操作並量測數據,從實驗的結果中發現,疊代學習控制模組在適當的學習次數下確實可以減少測試資料的實際輪廓誤差。除此之外我們還量測了疊代學習控制模組使用RAM Disk技術是否會對檔案的存取速度有影響。實驗結果顯示在同樣的G-code測試資料下,使用RAM Disk技術加速存取檔案,可以為單次學習減少約3.18%的執行時間。
In this thesis, we integrate an iterative learning control (ILC) module into an open source Linux-based CNC software, LinuxCNC. Due to that LinuxCNC contains user-space and kernel-space components, we propose several strategies to handle communication issues between the ILC module and LinuxCNC. Especially, we describe special functions for I/O operations in the Motion part of LinuxCNC, which runs in the kernel-space. In order to conform to the real-time restriction in LinuxCNC, we use RAM Disk technique to accelerate the speed of accessing storages. The whole system was evaluated on a real five-axis machine tool. The experimental results show that the ILC module can reduce the actual contour error after proper learning iterations. In addition, we evaluate the impact of using the ILC module with Ram Disk technique to accelerate the speed of reading or data from files. For the tested G-code, the experimental result shows the ILC module can reduce the single iterative execution time by 3.18% with RAM Disk technique.