เข้าใจ 3 Loop ของ Servo Drive | Position, Speed, Current Loop
อธิบายการทำงานของ Position Loop, Speed Loop และ Current Loop ใน Servo Drive กฎการจูนทั้ง 3 วงจร โหมดควบคุมทั้ง 3 แบบ (Position / Speed / Torque) และการเลือกโหมดให้ตรงกับงาน
Servo Drive ควบคุมมอเตอร์ด้วยวงจรควบคุม 3 ชั้นซ้อนกัน — Position Loop คุมตำแหน่ง, Speed Loop คุมความเร็ว, Current Loop คุมกระแส (= แรงบิด) โดยเอาต์พุตของวงนอกคือคำสั่งของวงใน กฎการจูนคือวงในต้องตอบสนองเร็วกว่าวงนอกเสมอ (Current เร็วสุด > Speed > Position) ส่วนโหมดควบคุมทั้ง 3 แบบต่างกันตรงที่ปิดวงจรถึงชั้นไหน — Position Mode ปิดครบ 3 วง (ใช้กับ PLC ส่ง Pulse), Speed Mode ปิด 2 วง, Torque Mode ปิดเฉพาะ Current Loop
อัพเดทล่าสุด: 1/8/2569
Servo Drive ควบคุมด้วยวงจร 3 ชั้นซ้อนกัน
หัวใจของ Servo Drive คือวงจรควบคุมแบบปิด (Closed-Loop) 3 วงซ้อนกัน โดยเอาต์พุตของวงนอกคือคำสั่งของวงใน — ค่าผิดพลาดตำแหน่งกลายเป็นคำสั่งความเร็ว ค่าผิดพลาดความเร็วกลายเป็นคำสั่งแรงบิด และแรงบิดก็คือกระแสที่จ่ายเข้าขดลวดมอเตอร์
| Loop | คุมอะไร | รับคำสั่งจาก | ส่งคำสั่งให้ | ความเร็วตอบสนอง |
|---|---|---|---|---|
| Position Loop (วงนอกสุด) | ตำแหน่ง | Pulse จาก PLC / Controller | Speed Loop | ช้าสุด |
| Speed Loop | ความเร็วรอบ | Position Loop | Current Loop | กลาง |
| Current Loop (วงในสุด) | กระแส = แรงบิด | Speed Loop | ภาค Power (IGBT) | เร็วสุด (R8 sampling สูงสุด 16 kHz) |
ไล่สัญญาณทีละบล็อก
เส้นทางสัญญาณตามแผนภาพของ Samkoon Academy เรียงจากคำสั่งไปถึงมอเตอร์
- Deviation Counter (ตัวนับค่าเบี่ยงเบน) — นับ Pulse คำสั่งที่เข้ามา ลบด้วย Pulse feedback จาก Encoder ยอดคงเหลือในตัวนับก็คือค่าผิดพลาดตำแหน่ง (position error) ถ้ามอเตอร์วิ่งตามทันยอดจะเข้าใกล้ศูนย์
- Position Loop Gain (Kp) — แปลงค่าผิดพลาดตำแหน่งเป็นคำสั่งความเร็ว ยิ่ง Kp สูงมอเตอร์ยิ่งไล่ตำแหน่งดุ แต่สูงเกินจะแกว่ง
- Speed Controller (Kv, Ti) — เทียบคำสั่งความเร็วกับความเร็วจริงจาก Encoder แล้วออกคำสั่งแรงบิด มีทั้ง gain (Kv) และ integral time (Ti) เพื่อลบ error ค้าง
- Torque Filter (Tf) — กรองคำสั่งแรงบิดให้เนียนก่อนส่งเข้า Current Loop กันการกระตุ้น resonance ของโครงสร้างเครื่อง
- Current Controller — คุมกระแสจริงในขดลวดให้ตรงคำสั่งแรงบิด วงนี้เร็วที่สุดเพราะกระแสคือแรงบิดโดยตรง
- Power Converter (IGBT Inverter) — สับ DC Bus เป็นไฟ 3 เฟสความถี่แปรผันจ่ายเข้ามอเตอร์
- Encoder (PG) — วัดตำแหน่งจริงป้อนกลับให้ทุกวง — ตำแหน่งให้ Deviation Counter และความเร็ว (จากการคำนวณ) ให้ Speed Loop
กฎการจูน: วงในต้องเร็วกว่าวงนอกเสมอ
หลักการที่ Samkoon สรุปไว้ในสไลด์เดียวกัน
Current Loop ตอบสนองเร็วสุด > Speed Loop > Position Loop
เหตุผลตรงไปตรงมา — วงนอกออกคำสั่งให้วงใน ถ้าวงในตามไม่ทัน วงนอกจะเห็นว่ายังไม่ถึงเป้าแล้วสั่งแรงขึ้นอีก ผลคือการแกว่ง (hunting/oscillation) แบบกราฟฟันปลาในสไลด์ ซึ่งเป็นภาพของกรณีตั้ง Position Gain สูงกว่าที่ Speed Loop จะรับได้
ลำดับการจูนที่ถูกต้องจึงเป็นจากในออกนอก — Current Loop มาจากโรงงานไม่ต้องยุ่ง จูน Speed Loop ให้แน่นก่อน (ค่า inertia ratio มีผลตรงนี้มากที่สุด) แล้วค่อยขยับ Position Gain ขึ้นจนก่อนจุดที่เริ่มสั่น
ฝั่ง R8 มีตัวช่วยครบ — Inertia Identification (F-003) วัด load inertia ratio จริงให้อัตโนมัติ และการตั้ง stiffness ด้วยพารามิเตอร์เดียวที่คำนวณ gain ทั้งชุดให้สัมพันธ์กันเอง จึงไม่ต้องไล่จูนทีละค่าถ้างานไม่โหดจริง
ตรงนี้เชื่อมกับ เครื่องมือคำนวณขนาด Servo โดยตรง — ถ้า inertia ratio เกิน 3-5 เท่า Speed Loop จะถูกบีบให้ช้าลงจนจูนยังไงก็ไม่แน่น และถ้าเกินราว 30 เท่า ต้องใช้เกียร์ทดเท่านั้น
โหมดควบคุม 3 แบบ = ปิดวงจรถึงชั้นไหน
| โหมด | วงจรที่ปิดใน Drive | คำสั่งมาจาก | ตัวอย่างงาน |
|---|---|---|---|
| Position Control | ครบ 3 วง | Pulse — จำนวน = ระยะทาง, ความถี่ = ความเร็ว | งานกำหนดตำแหน่ง: แขนกล, เครื่อง Pick-and-Place |
| Speed Control | Speed + Current | พารามิเตอร์ / Analog / การสื่อสาร | คุมรอบคงที่ หรือ Controller ภายนอกปิด Position Loop เอง เช่นตัวตามระยะสูงของเครื่องตัดเลเซอร์ |
| Torque Control | Current อย่างเดียว | พารามิเตอร์ / Analog / การสื่อสาร | งานคุมแรง: Tension Control ม้วน/คลายวัสดุ |
Position Mode — โหมดหลักเวลาใช้กับ PLC
ก่อนเข้าสู่ 3 Loop มีบล็อกเตรียมคำสั่งเรียงกัน: แหล่งคำสั่งและทิศทาง → Electronic Gear Ratio (ปรับ Pulse ต่อรอบ — ตัวเดียวกับที่ใช้แก้ปัญหาความถี่ชน 200 kHz ของ PLC) → ตัวกรองคำสั่ง → Deviation Counter
มี Speed Feedforward เป็นทางลัด — ส่งอนุพันธ์ของคำสั่งตำแหน่งข้ามไปเข้า Speed Loop ตรงๆ ช่วยลด following error ระหว่างเคลื่อนที่โดยไม่ต้องดัน Kp สูง และมี Encoder Divided Output ส่ง Pulse feedback แบบหารความถี่แล้วออกไปให้ PLC หรือ Counter ภายนอกใช้
การใช้กับ Samkoon PLC ผ่านคำสั่ง EDRVI/EDRVA คือโหมดนี้ทั้งหมด — PLC บอกแค่ไปไหนเร็วเท่าไหร่ Drive จัดการ dynamics ที่เหลือเอง
Speed Mode — เมื่อ Controller ภายนอกอยากคุมเอง
แทนที่ front-end ของ Pulse ด้วย Ramp Function (สร้าง accel/decel เองเพราะไม่มี trapezoid จาก PLC) และ ตัวจำกัดคำสั่ง พร้อม Torque Feedforward เข้า Current Loop กรณีใช้บ่อยคือ Motion Controller ภายนอกปิด Position Loop เองแล้วสตรีมคำสั่งความเร็วมาให้ Drive
Torque Mode — สั้นที่สุดแต่ต้องระวังที่สุด
เหลือแค่ แหล่งคำสั่ง → ตัวกรอง → Torque Limit → Current Loop ไม่มีอะไรคุมความเร็วเลย — ถ้าไม่มีโหลดต้าน มอเตอร์จะเร่งจนถึง speed limit ดังนั้นค่า limit ทั้งสองตัวคือเส้นชีวิตของโหมดนี้ งาน Tension Control อยู่ได้เพราะแรงตึงวัสดุต้านแรงบิดพอดีตลอดเวลา
สรุปสั้นๆ
- Servo คุมเป็นชั้น: ตำแหน่ง → ความเร็ว → กระแส(แรงบิด) เอาต์พุตวงนอกคือคำสั่งวงใน
- จูนจากในออกนอก และวงในต้องเร็วกว่าวงนอกเสมอ — ฝืนกฎนี้คือที่มาของอาการสั่น
- โหมดควบคุมต่างกันแค่ปิดวงจรถึงชั้นไหน — ใช้ PLC ส่ง Pulse = Position Mode ปิดครบ 3 วง
- Inertia ratio สูงทำให้ Speed Loop ช้า ทั้งระบบเลยจูนไม่แน่น — เลือกขนาดมอเตอร์กับอัตราทดให้ถูกตั้งแต่แรกด้วยเครื่องมือ Servo Sizing
บทความที่เกี่ยวข้อง
คำถามที่พบบ่อย
- ทำไม Current Loop ต้องตอบสนองเร็วที่สุด?
- เพราะวงนอกออกคำสั่งให้วงใน — Position Loop สั่งความเร็ว, Speed Loop สั่งแรงบิด ถ้าวงในตามคำสั่งไม่ทัน วงนอกจะสั่งซ้ำแล้วเกิดการแกว่ง (oscillation) หลักการคือ bandwidth ต้องลดหลั่นจากในออกนอก: Current Loop เร็วสุด > Speed Loop > Position Loop
- ตั้ง Position Gain (Kp) สูงเกินไปแล้วเกิดอะไรขึ้น?
- มอเตอร์จะสั่นหรือแกว่งรอบตำแหน่งเป้าหมาย (hunting) เพราะ Position Loop ออกคำสั่งความเร็วที่ Speed Loop ตามไม่ทัน วิธีแก้คือลด Kp ลง หรือจูน Speed Loop ให้เร็วขึ้นก่อน (ลด load inertia ratio, เพิ่ม stiffness) แล้วค่อยขยับ Kp ตาม
- ใช้ PLC ส่ง Pulse ควบคุม Servo ต้องใช้โหมดไหน?
- Position Control Mode — จำนวน Pulse ทั้งหมดกำหนดระยะทาง ส่วนความถี่ Pulse กำหนดความเร็ว Servo Drive ปิดวงจรครบทั้ง 3 Loop ภายในตัวเอง PLC มีหน้าที่แค่บอกว่าไปที่ไหนเร็วแค่ไหน เช่นคำสั่ง EDRVI/EDRVA ของ Samkoon PLC
- Torque Mode ทำไมมอเตอร์หมุนเร็วขึ้นเรื่อยๆ?
- เพราะ Torque Mode ปิดเฉพาะ Current Loop — ไม่มีวงจรไหนคุมความเร็วเลย ถ้าโหลดต้านน้อยกว่าแรงบิดที่สั่ง มอเตอร์จะเร่งไปเรื่อยๆ จนถึง speed limit ที่ตั้งไว้ งาน Tension Control ใช้ได้เพราะแรงตึงของวัสดุต้านแรงบิดพอดี และต้องตั้ง speed limit กันวัสดุขาดเสมอ
- Electronic Gear Ratio คืออะไร ใช้ทำอะไร?
- ตัวคูณ/หารจำนวน Pulse ภายใน Servo Drive — กำหนดว่ากี่ Pulse ต่อมอเตอร์ 1 รอบ ใช้ลดความถี่ Pulse ที่ PLC ต้องส่ง เช่นถ้า PLC มีขีดจำกัด 200 kHz แต่ต้องการความเร็วรอบสูง ให้ตั้ง Electronic Gear ให้ Pulse ต่อรอบน้อยลง ความเร็วรอบเท่าเดิมแต่ความถี่ Pulse ต่ำลง
มีคำถาม? ติดต่อทีมงาน
