---
title: "ป้อนกลับสถานะ: วางขั้ว ตัวสังเกต และ LQR"
url: https://modsengineeringmath.com/learn/control-systems/state-feedback/
site: "Mod's Engineering Mathematics (อาจารย์มด)"
language: th
updated: 2026-10-12
---

> ออกแบบตัวควบคุมป้อนกลับสถานะ u = −Kx + N̄r วางขั้ววงปิดด้วยการเทียบสัมประสิทธิ์และสูตร Ackermann เกนอ้างอิง N̄ เพิ่มอินทิเกรเตอร์เพื่อกำจัดความผิดพลาดค้าง ตัวสังเกตสถานะแบบ Luenberger หลักการแยกส่วน ตัวควบคุมที่เหมาะสมที่สุดแบบ LQR สมการริคคาติ และแนวคิดตัวกรองคาลมาน พร้อมตัวอย่างเซอร์โวมอเตอร์ที่ตรวจด้วย python-control

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

# ป้อนกลับสถานะ: วางขั้ว ตัวสังเกต และ LQR

// บทที่ 13.20 · ระบบควบคุม · State Feedback, Observers & LQR


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

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

- $u = -K\mathbf x + \bar Nr$ → วงปิด $\dot{\mathbf x} = (A - BK)\mathbf x + B\bar Nr$ เลือก $K$ ให้ $\det(sI - A + BK)$ ตรงกับพหุนามที่ต้องการ

- ตัวสังเกต: $\dot{\hat{\mathbf x}} = A\hat{\mathbf x} + Bu + L(y - C\hat{\mathbf x})$ ขั้ว $A - LC$ เร็วกว่าตัวควบคุม 2–6 เท่า

- หลักการแยกส่วน: ขั้วรวม = ขั้วของ $A - BK$ ∪ ขั้วของ $A - LC$

- LQR: ลด $\int(\mathbf x^TQ\mathbf x + u^TRu)dt$ ได้ $K = R^{-1}B^TP$

## วางขั้วด้วยป้อนกลับสถานะ กลาง

V1 State feedback ป้อนกลับสถานะและการวางขั้ว

$$u = -K\mathbf x + \bar Nr, \qquad \dot{\mathbf x} = (A - BK)\mathbf x + B\bar Nr, \qquad \det(sI - A + BK) = \prod(s - p_i^{\text{ต้องการ}})$$

ระบบอันดับต่ำ: กระจายดีเทอร์มิแนนต์แล้วเทียบสัมประสิทธิ์ · ทำได้ทุกตำแหน่งขั้วก็ต่อเมื่อ $(A, B)$ ควบคุมได้

V2 Ackermann's formula สูตรแอคเคอร์มันน์ (อินพุตเดียว)

$$K = \begin{bmatrix} 0 & \cdots & 0 & 1 \end{bmatrix}\mathcal C^{-1}\,\alpha_c(A), \qquad \alpha_c(s) = s^n + \alpha_{n-1}s^{n-1} + \cdots + \alpha_0$$

$\alpha_c(A)$ คือแทน $A$ ลงในพหุนามที่ต้องการ (เคย์ลีย์-แฮมิลตัน) · $\mathcal C$ จาก O1

V3 Reference gain เกนอ้างอิง

$$\bar N = \frac{-1}{C(A - BK)^{-1}B}$$

ทำให้ $y \to r$ ในสถานะอยู่ตัว · ไม่ทนต่อพลานต์ที่เปลี่ยน ถ้าต้องการทนทานใช้อินทิเกรเตอร์ V4

V4 Integral action เพิ่มอินทิเกรเตอร์

$$\dot x_I = r - y, \qquad u = -K\mathbf x - k_Ix_I$$

ขยายสถานะเป็น $n + 1$ ตัวแล้ววางขั้วทั้งหมด · กำจัดความผิดพลาดค้างแม้พลานต์เปลี่ยนหรือมีการรบกวน

ตัวอย่าง V-1 · เซอร์โวมอเตอร์

### มอเตอร์ตำแหน่ง $\frac{10}{s(s+2)}$: $x_1 = \theta,\ x_2 = \omega$, $A = \begin{pmatrix} 0 & 1 \\ 0 & -2 \end{pmatrix},\ B = \begin{pmatrix} 0 \\ 10 \end{pmatrix}$ วางขั้วที่ $-4 \pm j4$

- พหุนามที่ต้องการ: $(s + 4)^2 + 16 = s^2 + 8s + 32$ ($\zeta = 0.707,\ \omega_n = 5.66$)

- $A - BK = \begin{pmatrix} 0 & 1 \\ -10k_1 & -2 - 10k_2 \end{pmatrix}$ ได้ $s^2 + (2 + 10k_2)s + 10k_1$ V1

- เทียบ: $10k_1 = 32 \Rightarrow k_1 = 3.2$ · $2 + 10k_2 = 8 \Rightarrow k_2 = 0.6$

- $\bar N$: DC gain จาก $r$ ไป $\theta$ คือ $10\bar N/32 = 1 \Rightarrow \bar N = 3.2$ V3

$K = (3.2\ \ 0.6)$, $\bar N = 3.2$: $u = 3.2(r - \theta) - 0.6\,\omega$ ซึ่งคือ PD ที่ใช้ความเร็ววัดจริง (ไม่มีศูนย์ในวงปิด) · overshoot 4.3% ตาม $\zeta = 0.707$

python-control place: $K = [3.2,\ 0.6]$ ✓

## ตัวสังเกตสถานะ (Observer) กลาง

V5 Luenberger observer ตัวสังเกตของลูเอนเบอร์เกอร์

$$\dot{\hat{\mathbf x}} = A\hat{\mathbf x} + Bu + L(y - C\hat{\mathbf x}), \qquad \mathbf e = \mathbf x - \hat{\mathbf x}:\ \ \dot{\mathbf e} = (A - LC)\mathbf e$$

เลือก $L$ ให้ขั้วของ $A - LC$ เร็วกว่าขั้วตัวควบคุม 2–6 เท่า (เร็วเกินไปจะขยายสัญญาณรบกวนเซนเซอร์) · ต้องสังเกตได้ · ออกแบบได้ด้วยสูตรเดียวกับ V1–V2 กับ $(A^T, C^T)$

V6 Separation principle หลักการแยกส่วน

$$\text{ขั้ววงปิดรวม} = \operatorname{eig}(A - BK)\ \cup\ \operatorname{eig}(A - LC)$$

ออกแบบ $K$ และ $L$ แยกกันได้ · ตัวควบคุมรวม ($K$ + ตัวสังเกต) เทียบเท่ากับตัวชดเชยแบบไดนามิกอันดับ $n$

ตัวอย่าง V-2 · วัดแค่ตำแหน่ง

### ระบบ V-1 มีแต่เอนโค้ดเดอร์ ($C = (1\ \ 0)$) ออกแบบตัวสังเกตที่ขั้ว $-20, -20$

- $A - LC = \begin{pmatrix} -l_1 & 1 \\ -l_2 & -2 \end{pmatrix}$ ได้ $s^2 + (2 + l_1)s + (2l_1 + l_2)$ V5

- ต้องการ $(s + 20)^2 = s^2 + 40s + 400$: $l_1 = 38$, $l_2 = 400 - 76 = 324$

$L = (38\ \ 324)^T$ ตัวสังเกตเร็วกว่าตัวควบคุม ($-4 \pm j4$) 5 เท่า ได้ความเร็วประมาณ $\hat\omega$ ที่สะอาดกว่าการหาอนุพันธ์ของตำแหน่งตรง ๆ

python-control place กับ $(A^T, C^T)$: $L = [38,\ 324]$ ✓

## LQR: ตัวควบคุมที่เหมาะสมที่สุด ขั้นสูง

V7 Linear–quadratic regulator LQR

$$J = \int_0^\infty(\mathbf x^TQ\mathbf x + u^TRu)\,dt, \qquad A^TP + PA - PBR^{-1}B^TP + Q = 0, \qquad K = R^{-1}B^TP$$

$Q \succeq 0$ ลงโทษสถานะ $R \succ 0$ ลงโทษพลังงานอินพุต · รับประกัน GM ∞ (เพิ่มได้) / −6 dB (ลดได้ครึ่งหนึ่ง) และ PM ≥ 60° สำหรับอินพุตเดียว · คู่ของมันคือตัวกรองคาลมาน (ตัวสังเกตที่เหมาะสมที่สุดเมื่อมีสัญญาณรบกวน) รวมกันเรียก LQG

ตัวอย่าง V-3 · LQR สเกลาร์

### พลานต์ไม่เสถียร $\dot x = x + u$ ใช้ $Q = 3,\ R = 1$

- ริคคาติ V7: $2p - p^2 + 3 = 0 \Rightarrow p = 3$ (เลือกรากบวก)

- $K = p = 3$ · วงปิด $\dot x = (1 - 3)x = -2x$

$K = 3$ ขั้ววงปิดที่ −2 · ทั่วไป $K = 1 + \sqrt{1 + Q}$ ขั้วที่ $-\sqrt{1 + Q}$: ยิ่งให้น้ำหนักสถานะมาก ยิ่งเร็ว

python-control lqr: K = 3, ขั้ว −2 ✓ · หุ่นยนต์ทรงตัวสองล้อในโรโบติกส์นิยมใช้ LQR

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

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

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

ป้อนกลับสถานะต่างจาก PID อย่างไร?
PID ใช้ความผิดพลาดของเอาต์พุตเดียว ส่วนป้อนกลับสถานะใช้ทุกสถานะ (ตำแหน่ง ความเร็ว กระแส ฯลฯ) จึงวางขั้ววงปิดได้ทุกตัวตามต้องการ ระบบอันดับสองที่ป้อนกลับตำแหน่งและความเร็วคือ PD ในอีกรูปหนึ่ง แต่สำหรับระบบอันดับสูงและหลายอินพุต ป้อนกลับสถานะทรงพลังกว่ามาก

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

LQR เลือก Q และ R อย่างไร?
เริ่มจากกฎของไบรสัน (Bryson): Q เป็นทแยงมุม 1/(ค่าสูงสุดที่ยอมรับได้ของสถานะ)² และ R = 1/(ค่าสูงสุดของอินพุต)² แล้วปรับ เพิ่ม Q ทำให้สถานะเข้าเร็วขึ้นแต่ใช้อินพุตมาก เพิ่ม R ประหยัดอินพุตแต่ช้าลง

มด

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

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

**ป้อนกลับสถานะต่างจาก PID อย่างไร?**
PID ใช้ความผิดพลาดของเอาต์พุตเดียว ส่วนป้อนกลับสถานะใช้ทุกสถานะ (ตำแหน่ง ความเร็ว กระแส ฯลฯ) จึงวางขั้ววงปิดได้ทุกตัวตามต้องการ ระบบอันดับสองที่ป้อนกลับตำแหน่งและความเร็วคือ PD ในอีกรูปหนึ่ง แต่สำหรับระบบอันดับสูงและหลายอินพุต ป้อนกลับสถานะทรงพลังกว่ามาก

**ไม่ได้วัดทุกสถานะ จะใช้ป้อนกลับสถานะได้อย่างไร?**
ใช้ตัวสังเกต (observer) ซึ่งเป็นแบบจำลองที่วิ่งขนานกับระบบจริงในไมโครคอนโทรลเลอร์ แก้ด้วยความต่างระหว่างเอาต์พุตที่วัดกับที่ประมาณ แล้วป้อนกลับสถานะที่ประมาณได้ หลักการแยกส่วนรับประกันว่าออกแบบตัวควบคุมและตัวสังเกตแยกกันได้

**LQR เลือก Q และ R อย่างไร?**
เริ่มจากกฎของไบรสัน (Bryson): Q เป็นทแยงมุม 1/(ค่าสูงสุดที่ยอมรับได้ของสถานะ)² และ R = 1/(ค่าสูงสุดของอินพุต)² แล้วปรับ เพิ่ม Q ทำให้สถานะเข้าเร็วขึ้นแต่ใช้อินพุตมาก เพิ่ม R ประหยัดอินพุตแต่ช้าลง
