พิมพ์คำที่ต้องการค้นหา ทั้งภาษาไทยและอังกฤษ

  1. หน้าแรก
  2. คลังความรู้
  3. ระบบควบคุม
  4. ออกแบบด้วยรูทโลคัส

// บทที่ 13.10 · ระบบควบคุม · Design by Root Locus

ออกแบบด้วยรูทโลคัส: เลือกเกน เพิ่มขั้วหรือศูนย์ และตัวชดเชย

วาดรูทโลคัสได้แล้ว คำถามต่อไปคือ “ใช้ทำอะไร” คำตอบคือออกแบบ: ถ้าโลคัสผ่านจุดที่ต้องการ ก็แค่เลือก KK ถ้าไม่ผ่าน ก็ดัดโลคัสด้วยการเพิ่มศูนย์ (ดึงไปซ้าย) หรือขั้ว (ผลักไปขวา) ให้ผ่านจุดนั้น หน้านี้คือหัวใจของการออกแบบในโดเมนเวลา สูตรใช้รหัส J

เขียนโดย อาจารย์มดอัปเดต
สรุปใน 30 วินาที
  • สเปก → จุด sds_d → ผ่านโลคัสไหม (เงื่อนไขมุม) → ผ่าน: หา KK ด้วยเงื่อนไขขนาด
  • ไม่ผ่าน: มุมที่ขาด ϕc\phi_c เติมด้วยศูนย์ (PD) หรือคู่ศูนย์-ขั้ว (lead)
  • ความผิดพลาดค้าง: คู่ขั้วที่ 0 + ศูนย์ใกล้ 0 (PI) โลคัสเดิมแทบไม่เปลี่ยน
  • K<0K \lt 0: กฎมุม 0° · พารามิเตอร์อื่น: จัดรูป 1+α F(s)=01 + \alpha\,F(s) = 0 แล้ววาดตามปกติ

ขั้น 1: เลือก K เมื่อโลคัสผ่านจุดที่ต้องการ พื้นฐาน

J1 Gain selection เลือกเกนจากสเปก

sd=−ζωn±jωn1−ζ2,K=∏∣sd−pj∣∏∣sd−zi∣s_d = -\zeta\omega_n \pm j\omega_n\sqrt{1 - \zeta^2}, \qquad K = \frac{\prod|s_d - p_j|}{\prod|s_d - z_i|}

ถ้ากำหนดแค่ ζ\zeta: หาจุดตัดของเส้น ζ\zeta กับโลคัส · ถ้ากำหนดทั้ง ζ\zeta และ ωn\omega_n (หรือ tst_s) ต้องตรวจเงื่อนไขมุมก่อนว่าจุดอยู่บนโลคัส

ตัวอย่าง J-1 · P ได้แค่ไหน

พลานต์ G(s)=1(s+1)(s+5)G(s) = \dfrac{1}{(s+1)(s+5)} หา KK ที่ให้ ζ=0.6\zeta = 0.6 และหาความผิดพลาดค้าง

  1. โลคัส: ชนกันที่ −3 แล้วขึ้นลงตามเส้น σ=−3\sigma = -3 · จุดบนเส้น ζ=0.6\zeta = 0.6: ωn=3/0.6=5\omega_n = 3/0.6 = 5 ได้ sd=−3±j4s_d = -3 \pm j4

  2. J1: K=∣sd+1∣∣sd+5∣=∣−2+j4∣∣2+j4∣=2020=20K = |s_d + 1||s_d + 5| = |-2 + j4||2 + j4| = \sqrt{20}\sqrt{20} = 20

  3. ess=11+20/5=0.2e_{ss} = \dfrac{1}{1 + 20/5} = 0.2

K=20K = 20: overshoot 9.5%, tst_s ≈ 1.2 s แต่ความผิดพลาดค้าง 20% (เอาต์พุตไปได้แค่ 0.8) ต้องแก้ด้วย PI ในตัวอย่าง J-3

ผลของการเพิ่มขั้วและศูนย์ต่อรูปร่างโลคัส พื้นฐาน

J2 Adding poles and zeros เพิ่มขั้วและศูนย์

เพิ่มศูนย์ z: n−m↓,  σa→∑p−∑z−zn−m−1(ดึงไปซ้าย),เพิ่มขั้ว: n−m↑ (ผลักไปขวา)\text{เพิ่มศูนย์ } z:\ n - m \downarrow,\ \ \sigma_a \to \frac{\sum p - \sum z - z}{n - m - 1} \quad\text{(ดึงไปซ้าย)}, \qquad \text{เพิ่มขั้ว: } n - m \uparrow \ \text{(ผลักไปขวา)}

ศูนย์ยิ่งใกล้จุดกำเนิด ยิ่งดึงแรง แต่ต้องระวังศูนย์ไปโผล่ในวงปิดเพิ่ม overshoot (T9) · ขั้วที่เพิ่มยิ่งใกล้จุดกำเนิด ยิ่งผลักแรง (lag และ I ทำให้แกว่งขึ้น)

−4−3−2−101−2j−1j1j2jσjω
เพิ่มศูนย์ที่ −3 ให้ K/[s(s+1)(s+2)]K/[s(s+1)(s+2)]: จากเดิมที่ไม่เสถียรเมื่อ K>6K \gt 6 กลายเป็นเสถียรทุก KK

ออกแบบ PD ด้วยการชดเชยมุม กลาง

J3 PD by angle compensation วางศูนย์ PD

ϕc=−180∘−∠G(sd),z=σd+ωdtan⁡ϕc  (ศูนย์ที่ −z),C(s)=KD(s+z)\phi_c = -180^\circ - \angle G(s_d), \qquad z = \sigma_d + \frac{\omega_d}{\tan\phi_c} \ \ \text{(ศูนย์ที่ } -z\text{)}, \qquad C(s) = K_D(s + z)

σd,ωd\sigma_d, \omega_d = ขนาดส่วนจริงและส่วนจินตภาพของ sds_d · ใช้ได้เมื่อ 0<ϕc<90∘0 \lt \phi_c \lt 90^\circ ถ้ามากกว่านั้นใช้ lead สองตัวหรือ PD สองตัว

ตัวอย่าง J-2 · PD ให้เซอร์โวเร็วขึ้น 2 เท่า

พลานต์ G(s)=1s(s+5)G(s) = \dfrac{1}{s(s+5)} ต้องการขั้วที่ ζ=0.5, ωn=10\zeta = 0.5,\ \omega_n = 10

  1. sd=−5±j8.66s_d = -5 \pm j8.66 · โลคัสเดิมเป็นเส้นดิ่ง σ=−2.5\sigma = -2.5 ไม่ผ่าน

  2. มุมพลานต์ที่ sds_d: จาก 0 คือ 120∘120^\circ จาก −5 คือ 90∘90^\circ ได้ −210∘-210^\circ → ϕc=30∘\phi_c = 30^\circ J3

  3. z=5+8.66tan⁡30∘=5+15=20z = 5 + \dfrac{8.66}{\tan30^\circ} = 5 + 15 = 20 (ศูนย์ที่ −20)

  4. KD=∣sd∣∣sd+5∣∣sd+20∣=10×8.6617.32=5K_D = \dfrac{|s_d||s_d + 5|}{|s_d + 20|} = \dfrac{10 \times 8.66}{17.32} = 5

C(s)=5(s+20)=100+5sC(s) = 5(s + 20) = 100 + 5s วงปิด s2+10s+100s^2 + 10s + 100 ได้ ζ=0.5, ωn=10\zeta = 0.5,\ \omega_n = 10 พอดี · overshoot จริง 19.1% (ศูนย์ที่ −20 ในวงปิด เพิ่มจาก 16.3%)

python-control: ขั้ว −5±j8.66-5 \pm j8.66 ✓ · เทียบ C-3 ที่ใช้ lead กับพลานต์คล้ายกัน

ออกแบบ PI: คู่ขั้ว-ศูนย์ใกล้จุดกำเนิด กลาง

J4 PI by dipole placement วาง PI แบบคู่ขั้ว-ศูนย์

C(s)=Ks+zIs,zI≈∣Re⁡sd∣10C(s) = K\frac{s + z_I}{s}, \qquad z_I \approx \frac{|\operatorname{Re}s_d|}{10}

มุมที่ sds_d เปลี่ยนน้อยมาก โลคัสเดิมแทบไม่ขยับ แต่เกิดขั้ววงปิดใหม่ใกล้ −zI-z_I (เกือบหักล้างกับศูนย์) ทำให้มีหางช้า ขนาดหางเล็กลงเมื่อ zIz_I เล็ก แต่ช้าลง

ตัวอย่าง J-3 · ต่อจาก J-1

เพิ่ม PI ให้ G=1(s+1)(s+5)G = \dfrac{1}{(s+1)(s+5)} ที่ K=20K = 20 เพื่อกำจัดความผิดพลาดค้าง เลือก zIz_I อย่างไร

zIz_Iขั้ววงปิดOvershootts (2%)
(P อย่างเดียว)−3±j4-3 \pm j49.5%1.2 s (แต่ค้างที่ 0.8)
0.1−2.96±j3.97, −0.082-2.96 \pm j3.97,\ -0.0820%27.5 s
0.3−2.87±j3.91, −0.255-2.87 \pm j3.91,\ -0.2550%8.2 s
0.5−2.78±j3.85, −0.444-2.78 \pm j3.85,\ -0.4440.4%4.2 s
1 (หักล้างขั้ว −1)−2.5±j3.97-2.5 \pm j3.9712.0%1.3 s

ทุกตัวเลือกกำจัดความผิดพลาดค้างได้ ขั้วเด่นแทบไม่ขยับ แต่ zIz_I เล็กมากทำให้เอาต์พุตค่อย ๆ คลานจาก 0.8 ไป 1 นานมาก · การหักล้างขั้วช้าของพลานต์ (zI=1z_I = 1) เร็วที่สุดเมื่อรู้ค่าขั้วแม่น

จำลองด้วย python-control · แถวสุดท้าย: L=20s(s+5)L = \frac{20}{s(s+5)} วงปิด s2+5s+20s^2 + 5s + 20 (ζ=0.56\zeta = 0.56)

รูทโลคัสเมื่อ K ติดลบ และรูทโลคัสพารามิเตอร์ ขั้นสูง

J5 Complementary (0°) root locus รูทโลคัสเมื่อ K<0K \lt 0

∑∠(s−zi)−∑∠(s−pj)=0∘+360∘q,θa=360∘qn−m\sum\angle(s - z_i) - \sum\angle(s - p_j) = 0^\circ + 360^\circ q, \qquad \theta_a = \frac{360^\circ q}{n - m}

แกนจริง: จำนวนขั้ว+ศูนย์ทางขวาเป็นเลขคู่ · มุมออก/เข้าใช้ 0° แทน 180° · จุดแยกคือรากของ dK/ds=0dK/ds = 0 ที่ให้ K<0K \lt 0 (ที่ทิ้งไปในกรณีปกติ) · ลองกดปุ่ม “K < 0” ในแล็บ

J6 Parameter root locus รูทโลคัสของพารามิเตอร์อื่น

A(s)+αB(s)=0 ⇒ 1+αB(s)A(s)=0A(s) + \alpha B(s) = 0 \ \Rightarrow\ 1 + \alpha\frac{B(s)}{A(s)} = 0

จัดสมการลักษณะเฉพาะให้พารามิเตอร์ α\alpha ที่สนใจ (ตำแหน่งขั้ว เกนแทโค ค่าคงเวลา) อยู่หน้า แล้วใช้กฎทุกข้อกับ B/AB/A

ตัวอย่าง J-4 · ปรับการหน่วงแทน K

ระบบ s2+as+10=0s^2 + as + 10 = 0 (มอเตอร์ที่ปรับการหน่วง aa ได้ เช่น ด้วยเกนแทโค) ขั้วเดินอย่างไรเมื่อ aa เพิ่มจาก 0

  1. J6: 1+ass2+10=01 + a\dfrac{s}{s^2 + 10} = 0 ขั้วของ FF ที่ ±j10\pm j\sqrt{10} ศูนย์ที่ 0

  2. คู่ขั้วเชิงซ้อนกับศูนย์จริงหนึ่งตัว: โลคัสเป็นวงกลมรอบศูนย์ (0) รัศมี 10\sqrt{10} เข้าแกนจริงที่ −10-\sqrt{10} เมื่อ a=210=6.32a = 2\sqrt{10} = 6.32

เมื่อ aa เพิ่ม ขั้วเดินตามวงกลม ∣s∣=10|s| = \sqrt{10} (ωn\omega_n คงที่ ζ=a/(210)\zeta = a/(2\sqrt{10}) เพิ่ม) จนหน่วงวิกฤตที่ a=6.32a = 6.32 แล้วแยกบนแกนจริง ตรงกับตัวอย่างแทโคในB-3

แล็บออกแบบ

เส้นสีม่วงคือ ζ=0.5\zeta = 0.5 และ 0.6 ลองเพิ่มศูนย์ (“+ ศูนย์จริง”) แล้วลากไปมาเพื่อให้โลคัสผ่านจุดที่ต้องการ แล้วคลิกบนโลคัสเลือก KK ดูผลตอบสนองทันที

กำลังโหลดแล็บ (ต้องเปิด JavaScript)

ต่อยอดไปหน้าถัดไป

รูทโลคัสมองในโดเมนเวลา อีกมุมหนึ่งที่วิศวกรทั่วโลกใช้มากที่สุดคือผลตอบสนองความถี่ ซึ่งวัดจากระบบจริงได้โดยตรง และนำไปสู่การออกแบบ lead lag ด้วยโบด

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

ทำไมเพิ่มศูนย์แล้วระบบเสถียรขึ้น?

ศูนย์ลดจำนวนเส้นกำกับ (n − m ลดลง) และดึงจุดตัดเส้นกำกับไปทางซ้าย กิ่งที่เคยข้ามไปฝั่งขวาจึงถูกดึงกลับมา ในภาษาความถี่คือศูนย์เพิ่มเฟสบวก ทำให้เฟสมาร์จินมากขึ้น

วางศูนย์ของ PI ไว้ตรงไหนดี?

ใกล้จุดกำเนิดเมื่อเทียบกับขั้วเด่น (ประมาณ 1/10 ของส่วนจริงขั้วเด่น) เพื่อให้รูทโลคัสเดิมแทบไม่เปลี่ยน แต่ยิ่งใกล้มากยิ่งเกิดขั้ววงปิดช้าที่ทำให้หางยาว จึงต้องแลกเปลี่ยน หรือวางศูนย์หักล้างขั้วช้าของพลานต์ถ้ารู้ค่าแม่นพอ

รูทโลคัสเมื่อ K ติดลบใช้เมื่อไร?

เมื่อระบบเป็นป้อนกลับบวก เมื่อพลานต์มีเกนติดลบ (เช่น บางระบบที่มีศูนย์ฝั่งขวาเมื่อจัดรูปแล้วได้เครื่องหมายลบ) หรือเมื่อต้องการดูว่าจะเกิดอะไรถ้าต่อสายกลับขั้ว กฎเปลี่ยนเป็นเงื่อนไขมุม 0° แทน 180°

อาจารย์มด · ธีรวุฒิ แสวงบุญ
อาจารย์สาขาวิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยราชภัฏธนบุรี สมุทรปราการ · ดูโปรไฟล์