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

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

// บทที่ 13.21 · ระบบควบคุม · Digital Control

ระบบควบคุมดิจิทัล: การสุ่ม z-transform และ PID ดิจิทัล

ตัวควบคุมเกือบทุกตัวในวันนี้คือโค้ดในไมโครคอนโทรลเลอร์หรือ DSP: อ่าน ADC ทุกคาบ TT คำนวณ แล้วเขียน PWM ค้างไว้จนคาบถัดไป การทำแบบนี้เปลี่ยนโลกต่อเนื่อง (ss) เป็นโลกไม่ต่อเนื่อง (zz) และเพิ่มหน่วงเวลาที่ต้องรู้ทัน หน้านี้พาแปลงทุกอย่างที่เรียนมาเป็นดิจิทัล ตั้งแต่การสุ่ม ความเสถียรในวงกลมหนึ่งหน่วย จนถึงสมการผลต่างของ PID ที่เขียนลงชิปได้ทันที สูตรใช้รหัส Y

เขียนโดย อาจารย์มดอัปเดต
สรุปใน 30 วินาที
  • z=esTz = e^{sT}: ฝั่งซ้ายของระนาบ s → ภายในวงกลมหนึ่งหน่วย · เสถียร   ⟺  ∣zi∣<1\iff |z_i| \lt 1
  • พลานต์ + ZOH: G(z)=(1−z−1)Z{G(s)/s}G(z) = (1 - z^{-1})\mathcal Z\{G(s)/s\}
  • ตัวควบคุม: แทน s≈2Tz−1z+1s \approx \frac2T\frac{z - 1}{z + 1} (Tustin) แล้วเขียนเป็นสมการผลต่าง
  • ความถี่สุ่ม 20–30 เท่าของแบนด์วิดท์ · ZOH หน่วงครึ่งคาบ เสียเฟส ωcT/2\omega_cT/2

การสุ่มและวงจรคงค่า กลาง

Y1 Sampling and aliasing การสุ่มและแอลิแอส

ωs=2πT>2ωmax(ความถี่ไนควิสต์ ωs/2)\omega_s = \frac{2\pi}{T} \gt 2\omega_{max} \qquad (\text{ความถี่ไนควิสต์ } \omega_s/2)

ความถี่เหนือ ωs/2\omega_s/2 จะปรากฏเป็นความถี่ต่ำปลอม (alias) ต้องกรองด้วยฟิลเตอร์แอนติแอลิแอส RC ก่อน ADC · ดูภาพการสุ่มในแล็บสัญญาณ

Y2 ZOH equivalent of the plant พลานต์มองจากคอมพิวเตอร์

G(z)=(1−z−1) Z{G(s)s}เช่น as+a→1−e−aTz−e−aTG(z) = (1 - z^{-1})\,\mathcal Z\left\{\frac{G(s)}{s}\right\} \qquad \text{เช่น } \frac{a}{s + a} \to \frac{1 - e^{-aT}}{z - e^{-aT}}

แม่นตรงที่จังหวะสุ่ม (step invariant) · ปริภูมิสถานะ: Ad=eATA_d = e^{AT}, Bd=∫0TeAτdτ BB_d = \int_0^Te^{A\tau}d\tau\,B (X6)

Y3 s-to-z mapping and stability การแมปและเสถียรภาพ

z=esT:  s=−σ±jωd ↦ ∣z∣=e−σT, ∠z=±ωdT,เสถียร  ⟺  ∣zi∣<1z = e^{sT}: \ \ s = -\sigma \pm j\omega_d \ \mapsto\ |z| = e^{-\sigma T},\ \angle z = \pm\omega_dT, \qquad \text{เสถียร} \iff |z_i| \lt 1

แกน jωj\omega → วงกลมหนึ่งหน่วย · s=0s = 0 → z=1z = 1 · ขั้วใกล้ z=1z = 1 = ช้า · ขั้วบนแกนจริงลบ (z<0z \lt 0) = แกว่งสลับทุกคาบ ไม่มีคู่เทียบในโลกต่อเนื่อง

Y4 Jury test (2nd order) เกณฑ์จูรีสำหรับ P(z)=a2z2+a1z+a0, a2>0P(z) = a_2z^2 + a_1z + a_0,\ a_2 \gt 0

P(1)>0,P(−1)>0,∣a0∣<a2P(1) \gt 0, \qquad P(-1) \gt 0, \qquad |a_0| \lt a_2

เทียบเท่าเราท์ในโลก z · อันดับสูงกว่าใช้ตารางของจูรี หรือแปลง z=1+w1−wz = \frac{1 + w}{1 - w} แล้วใช้เราท์

ตัวอย่าง Y-1 · P ที่เสถียรเสมอ กลายเป็นมีเกนสูงสุด

พลานต์ 1s+1\frac{1}{s + 1} ควบคุมด้วย P ผ่านคอมพิวเตอร์ที่ T=0.1T = 0.1 s หาเกนสูงสุด

  1. Y2: G(z)=1−e−0.1z−e−0.1=0.09516z−0.9048G(z) = \dfrac{1 - e^{-0.1}}{z - e^{-0.1}} = \dfrac{0.09516}{z - 0.9048}

  2. วงปิด: z−0.9048+0.09516K=0⇒z=0.9048−0.09516Kz - 0.9048 + 0.09516K = 0 \Rightarrow z = 0.9048 - 0.09516K

  3. Y3: ∣z∣<1⇒−1<0.9048−0.09516K⇒K<20.02|z| \lt 1 \Rightarrow -1 \lt 0.9048 - 0.09516K \Rightarrow K \lt 20.02

แบบต่อเนื่องเสถียรทุก KK แต่แบบดิจิทัลเสถียรเมื่อ K<20K \lt 20 เท่านั้น ที่ KK ใกล้ 20 ขั้วอยู่ใกล้ z=−1z = -1 เอาต์พุตแกว่งสลับขึ้นลงทุกคาบ · python-control c2d ยืนยัน G(z)G(z) ✓

แปลงตัวควบคุมเป็นดิจิทัล กลาง

Y5 Discretization methods วิธีแปลง C(s)→C(z)C(s) \to C(z)

Forward Euler: s≈z−1T,Backward Euler: s≈z−1Tz,Tustin: s≈2T⋅z−1z+1\text{Forward Euler: } s \approx \frac{z - 1}{T}, \qquad \text{Backward Euler: } s \approx \frac{z - 1}{Tz}, \qquad \text{Tustin: } s \approx \frac{2}{T}\cdot\frac{z - 1}{z + 1}

Tustin รักษาเสถียรภาพเสมอ · ถ้าต้องการให้ความถี่หนึ่ง (เช่น notch ที่ ω0\omega_0) ตรงพอดี ใช้ prewarping: แทน 2T\frac2T ด้วย ω0tan⁡(ω0T/2)\frac{\omega_0}{\tan(\omega_0T/2)}

Y6 Digital PID PID ดิจิทัล (I แบบ Tustin, D แบบ backward + ฟิลเตอร์)

Ik=Ik−1+KIT2(ek+ek−1),Dk=TfTf+TDk−1+KDTf+T(ek−ek−1),uk=KPek+Ik+DkI_k = I_{k-1} + \frac{K_IT}{2}(e_k + e_{k-1}), \qquad D_k = \frac{T_f}{T_f + T}D_{k-1} + \frac{K_D}{T_f + T}(e_k - e_{k-1}), \qquad u_k = K_Pe_k + I_k + D_k

รูปแบบความเร็ว (incremental): Δuk=uk−uk−1\Delta u_k = u_k - u_{k-1} ไม่ต้องเก็บอินทิกรัล สลับ manual/auto ไม่กระตุก · ใส่ D จากเอาต์พุตและ anti-windup ตามโค้ดในหน้า PID

Y7 Choosing the sample rate เลือกความถี่สุ่ม

ωs≈(20 ถึง 30) ωBW,ΔPM≈ωcT2 rad=28.6 ωcT องศา (จาก ZOH)\omega_s \approx (20 \text{ ถึง } 30)\,\omega_{BW}, \qquad \Delta\text{PM} \approx \frac{\omega_cT}{2}\ \text{rad} = 28.6\,\omega_cT \ \text{องศา} \ (\text{จาก ZOH})

บวกหน่วงจากการคำนวณอีก (มักเป็นหนึ่งคาบเต็มถ้าเขียน PWM คาบถัดไป) · ลูปกระแสของไดรฟ์มอเตอร์มักสุ่ม 10–20 kHz พร้อม PWM

ตัวอย่าง Y-2 · PI ลงชิป

แปลง PI C(s)=2+1sC(s) = 2 + \frac{1}{s} ด้วย Tustin ที่ T=0.01T = 0.01 s เป็นสมการผลต่าง

  1. Y5: 1s→T2⋅z+1z−1\dfrac1s \to \dfrac{T}{2}\cdot\dfrac{z + 1}{z - 1} ได้ C(z)=2+0.005z+1z−1=2.005z−1.995z−1C(z) = 2 + 0.005\dfrac{z + 1}{z - 1} = \dfrac{2.005z - 1.995}{z - 1}

  2. คูณไขว้: (z−1)U=(2.005z−1.995)E(z - 1)U = (2.005z - 1.995)E → หารด้วย zz แล้วแปลงเป็นเวลา

uk=uk−1+2.005 ek−1.995 ek−1u_k = u_{k-1} + 2.005\,e_k - 1.995\,e_{k-1} · สามบรรทัดในโค้ด รันทุก 10 ms

ตัวอย่าง Y-3 · พาวเวอร์ซัพพลายดิจิทัล

ลูปแรงดันมีครอสโอเวอร์ 5 kHz ถ้าสุ่มที่ 100 kHz (เท่ากับความถี่สวิตชิ่ง) เสียเฟสเท่าไร และถ้าสุ่ม 50 kHz ล่ะ

  1. ωc=2π×5000=31416\omega_c = 2\pi \times 5000 = 31416 rad/s

  2. 100 kHz: T=10 μT = 10\ \mus → 28.6×31416×10−5=9.0∘28.6 \times 31416 \times 10^{-5} = 9.0^\circ Y7

  3. 50 kHz: T=20 μT = 20\ \mus → 18∘18^\circ

ที่ 100 kHz เสียเฟส 9° (บวกหน่วงคำนวณอีกราว 18° ถ้าอัปเดต PWM คาบถัดไป) ต้องออกแบบตัวชดเชยเผื่อไว้ · ลดความถี่สุ่มลงครึ่งหนึ่งเสียเฟสเพิ่มเท่าตัว

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

ทำไม ROC ของการแปลง Z เป็นวงแหวน: เพราะ X(z)=∑x[n]z−nX(z) = \sum x[n]z^{-n} คืออนุกรมโลรองต์ ดูที่มาและแล็บที่ อนุกรมโลรองต์กับการแปลง Z และตัวกรอง IIR ในรูปอนุกรมเรขาคณิตที่ อนุกรมในงานวิศวกรรม

โลกจริงมีการอิ่มตัว แรงเสียดทาน และพลานต์ที่ไม่ตรงแบบจำลอง ไปที่ระบบไม่เชิงเส้นและการควบคุมแบบทนทาน หรือข้ามไปดูงานจริงที่เมคาทรอนิกส์

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

ควรเลือกความถี่สุ่มเท่าไร?

กฎหัวแม่มือคือ 20 ถึง 30 เท่าของแบนด์วิดท์วงปิด (หรือของความถี่ครอสโอเวอร์) ต่ำกว่า 10 เท่าเฟสมาร์จินจะหายไปมากจากหน่วงเวลาของ ZOH และควรใส่ฟิลเตอร์แอนติแอลิแอสก่อน ADC ที่ตัดความถี่ต่ำกว่าครึ่งหนึ่งของความถี่สุ่ม

ทำไมระบบที่เสถียรแบบต่อเนื่อง จึงไม่เสถียรเมื่อทำเป็นดิจิทัล?

เพราะการสุ่มและคงค่าเพิ่มหน่วงเวลาเฉลี่ยครึ่งคาบสุ่ม ลดเฟสมาร์จิน ยิ่งเกนสูงและคาบสุ่มยาว ยิ่งแย่ ระบบอันดับหนึ่งที่ปิดวงด้วย P ซึ่งเสถียรทุกเกนแบบต่อเนื่อง จะมีเกนสูงสุดเมื่อทำเป็นดิจิทัล

Tustin ต่างจาก Euler อย่างไร?

Euler แทนอนุพันธ์ด้วยผลต่างไปข้างหน้าหรือย้อนหลัง ง่ายแต่บิดเบี้ยวเมื่อคาบสุ่มยาว และ forward Euler อาจทำให้ระบบเสถียรกลายเป็นไม่เสถียร Tustin (bilinear) แมปฝั่งซ้ายของระนาบ s ไปภายในวงกลมหนึ่งหน่วยพอดี จึงรักษาเสถียรภาพเสมอ แม่นกว่าในช่วงความถี่ต่ำถึงกลาง นิยมที่สุดในการแปลงตัวควบคุม

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