หน้าแรกคู่มือServoเข้าใจ 3 Loop ของ Servo Drive | Position, Speed, Current Loop
Servo
เริ่มต้น
8 นาที

เข้าใจ 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 / ControllerSpeed Loopช้าสุด
Speed Loopความเร็วรอบPosition LoopCurrent Loopกลาง
Current Loop (วงในสุด)กระแส = แรงบิดSpeed Loopภาค Power (IGBT)เร็วสุด (R8 sampling สูงสุด 16 kHz)

ไล่สัญญาณทีละบล็อก

เส้นทางสัญญาณตามแผนภาพของ Samkoon Academy เรียงจากคำสั่งไปถึงมอเตอร์

  1. Deviation Counter (ตัวนับค่าเบี่ยงเบน) — นับ Pulse คำสั่งที่เข้ามา ลบด้วย Pulse feedback จาก Encoder ยอดคงเหลือในตัวนับก็คือค่าผิดพลาดตำแหน่ง (position error) ถ้ามอเตอร์วิ่งตามทันยอดจะเข้าใกล้ศูนย์
  2. Position Loop Gain (Kp) — แปลงค่าผิดพลาดตำแหน่งเป็นคำสั่งความเร็ว ยิ่ง Kp สูงมอเตอร์ยิ่งไล่ตำแหน่งดุ แต่สูงเกินจะแกว่ง
  3. Speed Controller (Kv, Ti) — เทียบคำสั่งความเร็วกับความเร็วจริงจาก Encoder แล้วออกคำสั่งแรงบิด มีทั้ง gain (Kv) และ integral time (Ti) เพื่อลบ error ค้าง
  4. Torque Filter (Tf) — กรองคำสั่งแรงบิดให้เนียนก่อนส่งเข้า Current Loop กันการกระตุ้น resonance ของโครงสร้างเครื่อง
  5. Current Controller — คุมกระแสจริงในขดลวดให้ตรงคำสั่งแรงบิด วงนี้เร็วที่สุดเพราะกระแสคือแรงบิดโดยตรง
  6. Power Converter (IGBT Inverter) — สับ DC Bus เป็นไฟ 3 เฟสความถี่แปรผันจ่ายเข้ามอเตอร์
  7. 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 ControlSpeed + Currentพารามิเตอร์ / Analog / การสื่อสารคุมรอบคงที่ หรือ Controller ภายนอกปิด Position Loop เอง เช่นตัวตามระยะสูงของเครื่องตัดเลเซอร์
Torque ControlCurrent อย่างเดียวพารามิเตอร์ / 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

บทความที่เกี่ยวข้อง

สินค้าที่ใช้ในบทความนี้
1 รายการ
ชุด S8 Servo 400W
ชุด S8 Servo 400W

ชุด S8 Servo Drive + Motor 400W (Terminal Control Pin)

฿8,990

คำถามที่พบบ่อย

ทำไม 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 ต่ำลง