---
title: "ระบบควบคุมดิจิทัล: การสุ่ม z-transform และ PID ดิจิทัล"
url: https://modsengineeringmath.com/learn/control-systems/digital-control/
site: "Mod's Engineering Mathematics (อาจารย์มด)"
language: th
updated: 2026-10-12
---

> ระบบควบคุมดิจิทัลบนไมโครคอนโทรลเลอร์ การสุ่มสัญญาณและ aliasing วงจรคงค่าอันดับศูนย์ (ZOH) การแปลง z ฟังก์ชันถ่ายโอนไม่ต่อเนื่อง การแมป z = e^{sT} เสถียรภาพในวงกลมหนึ่งหน่วย เกณฑ์ของจูรี แปลงตัวควบคุมด้วย Euler และ Tustin (bilinear) สมการผลต่างของ PID ดิจิทัล การเลือกคาบสุ่ม และผลของหน่วงเวลาครึ่งคาบต่อเฟสมาร์จิน

ฉบับ Markdown ของ https://modsengineeringmath.com/learn/control-systems/digital-control/ สำหรับผู้ช่วย AI และเครื่องมือค้นหา สูตรเขียนเป็น LaTeX ($…$ และ $$…$$) แล็บโต้ตอบและรูปมีเฉพาะในหน้าเว็บ

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

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


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

สรุปใน 30 วินาที

- $z = e^{sT}$: ฝั่งซ้ายของระนาบ s → ภายในวงกลมหนึ่งหน่วย · เสถียร $\iff |z_i| \lt 1$

- พลานต์ + ZOH: $G(z) = (1 - z^{-1})\mathcal Z\{G(s)/s\}$

- ตัวควบคุม: แทน $s \approx \frac2T\frac{z - 1}{z + 1}$ (Tustin) แล้วเขียนเป็นสมการผลต่าง

- ความถี่สุ่ม 20–30 เท่าของแบนด์วิดท์ · ZOH หน่วงครึ่งคาบ เสียเฟส $\omega_cT/2$

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

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

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

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

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

$$G(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) · ปริภูมิสถานะ: $A_d = e^{AT}$, $B_d = \int_0^Te^{A\tau}d\tau\,B$ (X6)

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

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

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

$$P(1) \gt 0, \qquad P(-1) \gt 0, \qquad |a_0| \lt a_2$$

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

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

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

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

- วงปิด: $z - 0.9048 + 0.09516K = 0 \Rightarrow z = 0.9048 - 0.09516K$

- Y3: $|z| \lt 1 \Rightarrow -1 \lt 0.9048 - 0.09516K \Rightarrow K \lt 20.02$

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

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

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

$$\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 ที่ $\omega_0$) ตรงพอดี ใช้ prewarping: แทน $\frac2T$ ด้วย $\frac{\omega_0}{\tan(\omega_0T/2)}$

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

$$I_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): $\Delta u_k = u_k - u_{k-1}$ ไม่ต้องเก็บอินทิกรัล สลับ manual/auto ไม่กระตุก · ใส่ D จากเอาต์พุตและ anti-windup ตามโค้ดในหน้า PID

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

$$\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 + \frac{1}{s}$ ด้วย Tustin ที่ $T = 0.01$ s เป็นสมการผลต่าง

- Y5: $\dfrac1s \to \dfrac{T}{2}\cdot\dfrac{z + 1}{z - 1}$ ได้ $C(z) = 2 + 0.005\dfrac{z + 1}{z - 1} = \dfrac{2.005z - 1.995}{z - 1}$

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

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

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

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

- $\omega_c = 2\pi \times 5000 = 31416$ rad/s

- 100 kHz: $T = 10\ \mu$s → $28.6 \times 31416 \times 10^{-5} = 9.0^\circ$ Y7

- 50 kHz: $T = 20\ \mu$s → $18^\circ$

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

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

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

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

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

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

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

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

มด

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

## คำถามที่พบบ่อย (FAQ)

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

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

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