5.3 PID Regulyatorlar — Nazariya
Hafta: 3 | Masalalar: 35 | Qiyinlik: ⭐⭐⭐
Kirish
PID (Proportional-Integral-Derivative) — eng keng tarqalgan boshqarish algoritmi. Robot, dron, raketa — hammasi PID ishlatadi.
1. Asosiy Tushuncha
Yopiq sikl boshqarish
r(t) e(t) u(t) y(t)
───────►(+)───►[PID]───►[Plant]───┬───►
│- │
└────────────────────────┘
- — reference (maqsad qiymat)
- — xatolik
- — boshqarish signali
- — chiqish (o'lchangan qiymat)
2. PID Formulasi
Vaqt sohasida
Komponentlar
P (Proportional):
- Joriy xatolikka proporsional
- Tezkor javob
- Faqat P → doimo xatolik (steady-state error)
I (Integral):
- Xatolik yig'indisi
- Steady-state error yo'qotadi
- Haddan tashqari → tebranish, windup
D (Derivative):
- Xatolik o'zgarish tezligi
- Overshoot kamaytiradi
- Shovqinga sezgir
3. Transfer Funksiyasi
Laplace sohasida:
Yoki standart shakl:
Bu yerda:
- — integral vaqt
- — derivative vaqt
4. Tuning Usullari
Ziegler-Nichols (Chastota usuli)
- , qo'ying
- ni barqaror tebranish boshlanguncha oshiring
- Kritik va davr ni yozib oling
| Controller | |||
|---|---|---|---|
| P | — | — | |
| PI | — | ||
| PID |
Ziegler-Nichols (Javob usuli)
Step javobdan (delay) va (time constant) o'lchang:
| Controller | |||
|---|---|---|---|
| P | — | — | |
| PI | — | ||
| PID |
Manual Tuning
- , dan boshlang
- oshiring — tezkor javob, lekin tebranish
- qo'shing — overshoot kamayadi
- qo'shing — steady-state error yo'qoladi
- Fine-tune qiling
5. Diskret PID
Mikrokontrollerda:
Pseudokod
class PID:
def __init__(self, Kp, Ki, Kd, dt):
self.Kp = Kp
self.Ki = Ki
self.Kd = Kd
self.dt = dt
self.integral = 0
self.prev_error = 0
def compute(self, setpoint, measured):
error = setpoint - measured
# P
P = self.Kp * error
# I
self.integral += error * self.dt
I = self.Ki * self.integral
# D
derivative = (error - self.prev_error) / self.dt
D = self.Kd * derivative
self.prev_error = error
return P + I + D
6. Anti-Windup
Integral to'planib ketishi muammo:
Clamping
self.integral = max(min(self.integral, max_integral), -max_integral)
Back-calculation
Saturatsiyada integral kamaytirish:
7. Derivative Filtrlash
Shovqinni kamaytirish:
Yoki diskretda:
self.d_filtered = alpha * derivative + (1-alpha) * self.d_filtered_prev
8. Kaskadli PID
Ichki va tashqi sikl:
r ──►[Outer PID]──►[Inner PID]──►[Plant]──┬──► y
│ │ │
└───────────────────┴───────────────┘
Misol: Dron balandlik kontroli
- Tashqi: Balandlik → tezlik reference
- Ichki: Tezlik → thrust
9. Robotikada Qo'llanilish
Dron Attitude Control
Roll, pitch, yaw uchun alohida PID:
Roll PID: θ_error → Motor differential
Pitch PID: φ_error → Motor differential
Yaw PID: ψ_error → Motor differential
Robot Qo'li
Har bir bo'g'in uchun PID:
Motor Tezlik Kontroli
PWM chiqish:
10. Tipik Muammolar
| Muammo | Sabab | Yechim |
|---|---|---|
| Sekin javob | past | oshiring |
| Overshoot | yuqori, past | oshiring, kamaytiring |
| Tebranish | yuqori | kamaytiring |
| Steady-state error | yoki past | qo'shing |
| Shovqin kuchayishi | yuqori | kamaytiring, filtr qo'shing |
Xulosa
| Parametr | Ta'sir |
|---|---|
| Tezkor, lekin overshoot | |
| SS error kamayadi, lekin tebranish | |
| Overshoot kamayadi, lekin shovqinga sezgir |
Keyingi Qadam
📝 Masalalar — 35 ta masala yeching!