主流演算法分類
| 類別 | 代表演算法 | 特點 |
| **主從同步** | 電子齒輪箱 (EGB)、虛擬主軸 | 飛剪從軸跟隨主軸 (生產線) 速度/位置,精度高、程式相對固定 |
| **預測補償** | 前饋 + PID、模型預測控制 (MPC) | 預測材料彈性變形、刀具磨損,實時修正切斷點 |
| **相位鎖定環 (PLL)** | 軟體 PLL、硬體 PLL | 同步編碼器脈衝相位,抗干擾強 |
| **曲線插補** | S 曲線、梯形曲線、NURBS | 平滑加減速,減少機械衝擊 |
工程實用建議
- **採用成熟運動控制器** (如三菱 QD77、西門子 S7-1500T、台達 DMCNET) 內建飛剪功能塊,配置參數即可,無需從零寫 C。
- 若必須自研 (嵌入式 MCU):
- 雙編碼器輸入 (主軸/從軸) → 高速計數器/捕獲。
- 位置環/速度環 PID (定點/定時中斷 1-4kHz)。
- 電子齒輪比計算:
從軸脈衝 = 主軸脈衝 × (切斷長度/周長) × 齒輪比。
- 同步誤差補償:
誤差 = 目標位置 - 實際位置 → 前饋修正。
參考資源
- 《運動控制技術與應用》 - 機械工業出版社
- 廠商應用手冊:三菱《飛剪應用指南》、西門子《SIMOTION 飛剪》
- 開源專案:LinuxCNC `kinships/comp`、Machinekit `hal/components/cutter.comp`
C 實現骨架
// 1kHz 中斷
void timer_isr() {
int master_pos = read_encoder(MASTER);
int slave_pos = read_encoder(SLAVE);
int target_pos = (int)(master_pos * gear_ratio + offset);
int error = target_pos - slave_pos;
int pwm = pid_calc(&pid, error);
set_motor_pwm(pwm);
}