Sesi 03 dari 16

Fondasi Teori
Kontrol Adaptif

Memahami "mengapa sistem harus bisa belajar dan menyesuaikan diri" — motivasi, klasifikasi, dan konsep kunci kontrol adaptif dari awal hingga sekarang.

Motivasi Klasifikasi Direct vs Indirect MRAC vs STR vs Robust & Optimal Konsep Kunci Sejarah Python Demo
🤔
Topik 3.1
Motivasi: Mengapa Sistem Harus Adaptif?
🧑‍🏫 Analogi — Guru yang Kaku vs Guru yang Adaptif

Bayangkan dua jenis guru. Guru A selalu mengajar dengan metode yang sama, tempo yang sama, tidak peduli muridnya cepat atau lambat menangkap. Guru B mengamati reaksi murid, menyesuaikan kecepatan, mengganti metode jika murid bingung. Kontrol PID statis = Guru A. Kontrol Adaptif = Guru B yang terus belajar dari situasi!

Ada tiga sumber utama ketidakpastian yang membuat kontrol statis tidak memadai:

Sumber KetidakpastianContoh Nyata di InfrastrukturDampak ke Kontrol
Perubahan parameter seiring waktuPompa air aus: efisiensi turun 20% per tahun. Kabel transmisi listrik: resistansi naik saat panas.Gain kontrol yang optimal di tahun ke-1 menjadi tidak optimal di tahun ke-5
🌦️ Perubahan lingkungan/kondisi operasiBeban listrik: 2 GW siang hari vs 0.5 GW malam hari. Suhu air sungai musim kemarau vs hujan.Satu set parameter tidak bisa optimal di semua kondisi
🔬 Model tidak sempurnaSimulasi reaktor kimia tidak memperhitungkan pengotor. Turbin angin: model aerodinamika disederhanakan.Kontroller dirancang untuk model ideal, tapi realita berbeda

💡 Ide Dasar Kontrol Adaptif

Kontrol adaptif menjawab semua ketidakpastian di atas dengan satu strategi: "Jika kita tidak tahu persis kondisi sistem, biarkan sistem belajar sendiri dari pengamatan dan menyesuaikan parameternya secara otomatis."

🗂️
Topik 3.2
Peta Besar: Klasifikasi Kontrol Adaptif
🗺️ Analogi — GPS Navigasi Berbeda-Beda

Semua GPS punya tujuan sama: navigasi ke tujuan. Tapi caranya berbeda — ada yang real-time update rute (mirip direct), ada yang dulu hitung ulang peta baru lalu navigasi (indirect). Ada yang ikuti jalur model GPS referensi (MRAC), ada yang terus self-tune berdasarkan kondisi jalan (STR). Semua itu klasifikasi kontrol adaptif!

🔵 Direct Adaptive Control

Parameter kontroller diperbarui langsung tanpa estimasi model. Output error digunakan langsung untuk update gain kontroller.

Analogi: Langsung putar setir lebih keras jika mobil melenceng — tanpa menghitung dulu berapa derajat.

✅ Cepat | ⚠️ Bisa tidak stabil jika gangguan besar

🟢 Indirect Adaptive Control

Pertama estimasi parameter sistem, lalu hitung parameter kontroller berdasarkan estimasi tersebut.

Analogi: Ukur dulu seberapa licin jalan (estimasi), baru tentukan seberapa hati-hati mengemudi (desain kontrol).

✅ Lebih stabil | ⚠️ Lebih lambat karena dua tahap

⚖️
Topik 3.3
Direct vs Indirect: Perbandingan Mendalam

Direct

  • Update parameter θ langsung
  • Loop adaptasi lebih pendek
  • Cocok: sistem sederhana, SISO
  • Contoh: MRAC dengan MIT Rule
  • Risiko: parameter drift
VS

Indirect

  • Estimasi model dulu (θ̂), lalu desain kontrol
  • Dua loop: estimasi + kontrol
  • Cocok: sistem kompleks, MIMO
  • Contoh: Self-Tuning Regulator
  • Lebih transparan (kita tahu model)
📐 Skema Direct Adaptive Control
e(t) = y(t) − y_ref(t)     ← error antara output dan referensi
θ̇(t) = −γ · e(t) · φ(t)   ← update langsung parameter kontroller
u(t) = θᵀ(t) · φ(t)       ← sinyal kontrol
🔀
Topik 3.4
Model Reference vs Self-Tuning

Model Reference Adaptive Control (MRAC)

🏃 Analogi — Pelari yang Mengikuti Pace-Setter

Dalam maraton, ada pace-setter — pelari profesional yang larinya di kecepatan target. Pelari lain mengikutinya. Jika tertinggal, mereka mempercepat. Jika terlalu cepat, mereka melambat. MRAC persis begini: ada "reference model" (pace-setter ideal), dan sistem nyata berusaha mengikutinya dengan menyesuaikan parameter secara online.

🔑 Komponen MRAC

  • Reference Model: Model ideal yang mendefinisikan perilaku yang diinginkan
  • Plant (sistem nyata): Sistem yang dikontrol (parameternya tidak diketahui persis)
  • Adaptive Law: Aturan update parameter agar output plant = output reference model
  • Controller: Menggunakan parameter yang terus di-update

Self-Tuning Regulator (STR)

🩺 Analogi — Dokter yang Terus Memonitor Pasien

Dokter ICU tidak hanya memberi obat lalu pergi. Dia terus memonitor kondisi pasien (estimasi parameter), lalu menyesuaikan dosis obat berdasarkan respons terbaru. STR bekerja sama: pertama estimasi parameter sistem dari data observasi, lalu desain ulang controller berdasarkan estimasi terbaru — berulang terus setiap saat.

MRACSTR
KategoriDirect adaptiveIndirect adaptive
MekanismeIkuti reference model idealEstimasi model → desain kontrol
KelebihanRespon cepat, desain intuitifTransparan, kita tahu parameter
KekuranganPerlu reference model yang baikLebih lambat, butuh identifikasi
AplikasiKontrol suhu, kecepatan motorProses industri lambat (kimia, air)
MateriSesi 4Sesi 5
🆚
Topik 3.5
Adaptif vs Robust vs Optimal: Apa Bedanya?
🚗 Analogi — Tiga Gaya Pengemudi

🔴 Kontrol Robust = pengemudi yang selalu sangat hati-hati (rem maksimal, kecepatan rendah) — siap untuk kondisi terburuk meski jalannya bagus. Aman tapi tidak efisien.

🟡 Kontrol Optimal = pengemudi yang sudah tahu persis kondisi jalan (peta sempurna) dan menghitung rute paling efisien. Efisien tapi hanya bekerja jika kondisi sesuai harapan.

🟢 Kontrol Adaptif = pengemudi yang terus melihat kondisi jalan nyata dan menyesuaikan gaya menyetir secara real-time. Fleksibel untuk kondisi yang berubah-ubah!

AspekKontrol RobustKontrol OptimalKontrol Adaptif
Pengetahuan modelBatas ketidakpastian diketahuiModel diketahui persisModel tidak perlu diketahui
Adaptasi online❌ Tidak❌ Tidak (offline)✅ Ya, real-time
Perubahan parameterTahan dalam batas tertentuTidak tahan✅ Mengatasi perubahan
KompleksitasSedangTinggi (komputasi berat)Tinggi (mekanisme adaptasi)
Contoh metodeH∞, μ-synthesisLQR, MPCMRAC, STR, Fuzzy Adaptive

⚠️ Catatan Penting

Dalam praktik infrastruktur kritis, ketiga pendekatan sering dikombinasikan. Contoh: Adaptive + Robust = sistem yang adaptif tapi tetap stabil di kondisi terburuk. Adaptive + Optimal = sistem yang belajar sambil mengoptimalkan performa.

🔑
Topik 3.6
Tiga Konsep Kunci Kontrol Adaptif

1. Identifikasi Parameter Online

🔬 Analogi — Dokter yang Terus Cek Darah

Dokter tidak hanya cek darah sekali saat masuk rumah sakit. Dia cek setiap jam untuk memantau kondisi terkini. Identifikasi online = terus-menerus mengestimasi parameter sistem dari data real-time, bukan hanya sekali saat commissioning.

📐 Prinsip Identifikasi Online
θ̂(k+1) = θ̂(k) + K(k) · [y(k) − ŷ(k)]
θ̂ = estimasi parameter, K = gain adaptasi
y(k) = output terukur, ŷ(k) = output prediksi model

2. Mekanisme Adaptasi (Adaptation Law)

🎯 Analogi — Kalibrasi Senapan Otomatis

Penembak jitu profesional tidak hanya menembak. Setelah setiap tembakan, dia mengkoreksi bidikan berdasarkan di mana peluru mendarat (error). Mekanisme adaptasi = aturan matematis yang menentukan seberapa besar dan seberapa cepat parameter berubah berdasarkan error yang terukur.

MekanismeRumus SingkatSifat
Gradient Descentθ̇ = −γ · ∂J/∂θSederhana, bisa terjebak lokal minima
MIT Ruleθ̇ = −γ · e · ∂e/∂θPopuler untuk MRAC, mudah implementasi
Lyapunov-basedBerdasarkan V̇ ≤ 0Jaminan stabilitas, lebih kompleks
Recursive Least Squaresθ̂ = (ΦᵀΦ)⁻¹Φᵀy (rekursif)Optimal untuk noise Gaussian

3. Jaminan Stabilitas (Stability Guarantee)

✈️ Analogi — Autopilot Pesawat

Autopilot pesawat boleh beradaptasi terhadap turbulensi, tapi tidak boleh sampai pesawat terjungkal. Sistem adaptif harus punya bukti matematis bahwa meskipun parameter terus berubah, sistem tidak akan tidak stabil. Ini dijamin dengan teori stabilitas Lyapunov (Sesi 7).

✅ Syarat Minimal Stabilitas Kontrol Adaptif

  • Semua sinyal dalam sistem tetap terbatas (bounded)
  • Error output cenderung mendekati nol (konvergen)
  • Sistem tidak mengalami parameter drift atau bursting
  • Dipenuhi kondisi Persistent Excitation (PE) agar parameter konvergen
📅
Topik 3.7
Sejarah & Evolusi Kontrol Adaptif
1950-an
Lahirnya Ide Adaptif
MIT mengembangkan autopilot adaptif untuk pesawat X-15 yang terbang di atmosfer tipis — kondisi yang terus berubah drastis. Ini kebutuhan militer nyata, bukan sekadar teori.
1958
MIT Rule — Whitaker, Yamron, Kezer
Dirumuskan hukum adaptasi pertama yang sistematis. Dasar MRAC modern. Sederhana tapi tidak ada bukti stabilitas formal.
1966
Self-Tuning Regulator — Åström & Wittenmark
Dikembangkan di Swedia untuk proses industri lambat (kertas, kimia). Kombinasi estimasi parameter + desain kontrol otomatis. Revolusi industri.
1970–80-an
Teori Stabilitas Formal
Narendra, Morse, Landau membuktikan stabilitas MRAC menggunakan teori Lyapunov. Kontrol adaptif menjadi ilmu yang rigorous, bukan sekadar heuristik.
1990-an
Fuzzy & Neural Adaptive Control
Logika fuzzy dan jaringan saraf tiruan diintegrasikan ke kontrol adaptif. Tidak perlu model matematis eksak — cocok untuk sistem sangat nonlinier.
2010-kini
Reinforcement Learning & Data-Driven
Deep RL, model-free adaptive control. Kontrol adaptif berbasis data tanpa model fisik sama sekali. Konvergensi AI dan kontrol klasik.
🐍
Topik 3.8
Demo Python: Identifikasi Parameter Online Sederhana

Kita simulasikan identifikasi parameter online paling sederhana — estimasi gain sebuah sistem orde-1 dari data pengamatan secara real-time.

🔦 Skenario: Estimasi Efisiensi Pompa yang Aus

Pompa air baru punya gain K=1.0 (1 Volt → 1 L/s). Setelah aus, K turun ke 0.7. Sistem harus mendeteksi perubahan ini secara online tanpa kita beritahu.

Python 🐍 — online_identification.py
import numpy as np
import matplotlib.pyplot as plt

# ==========================================
# IDENTIFIKASI PARAMETER ONLINE SEDERHANA
# Estimasi gain K dari sistem y(k) = K*u(k) + noise
# ==========================================

np.random.seed(42)
N    = 300         # jumlah sampel
K_true = np.ones(N) * 1.0
K_true[150:] = 0.7  # pompa "aus" di t=150, gain turun

# Sinyal input (sinyal eksitasi bervariasi)
u = 0.5 + 0.5*np.sin(2*np.pi*np.arange(N)/30)

# Output sistem nyata + noise sensor
y = K_true * u + 0.03*np.random.randn(N)

# ==========================================
# ALGORITMA 1: Gradient Descent Online
# ==========================================
K_est_gd = [0.5]   # tebakan awal gain = 0.5
gamma = 0.3        # learning rate
for k in range(1, N):
    y_pred = K_est_gd[-1] * u[k]          # prediksi output
    error  = y[k] - y_pred                  # error prediksi
    K_new  = K_est_gd[-1] + gamma * error * u[k]  # update parameter
    K_est_gd.append(K_new)

# ==========================================
# ALGORITMA 2: Recursive Least Squares (RLS)
# ==========================================
K_est_rls = [0.5]  # estimasi awal
P = 10.0           # variance estimasi awal (besar = tidak yakin)
lam = 0.98         # forgetting factor (ingat data lama dengan bobot λ)
for k in range(1, N):
    phi = u[k]
    K_gain = P * phi / (lam + phi * P * phi)
    error  = y[k] - K_est_rls[-1] * phi
    K_new  = K_est_rls[-1] + K_gain * error
    P      = (P - K_gain * phi * P) / lam
    K_est_rls.append(K_new)

# --- PLOT ---
fig, axes = plt.subplots(2, 1, figsize=(11, 7))
t = np.arange(N)

axes[0].plot(t, K_true, 'k--', lw=2, label='K true (parameter asli)')
axes[0].plot(t, K_est_gd, 'tomato', lw=1.5, label='Estimasi Gradient Descent')
axes[0].plot(t, K_est_rls, 'cyan', lw=1.5, label='Estimasi RLS')
axes[0].axvline(150, color='orange', ls=':', lw=2, label='Pompa aus (k=150)')
axes[0].set_ylabel('Estimasi Gain K'); axes[0].set_title('Identifikasi Parameter Online: Pompa yang Aus')
axes[0].legend(); axes[0].grid(alpha=0.3)
axes[0].set_ylim(0.3, 1.4)

axes[1].plot(t, y, 'gray', alpha=0.5, label='Output terukur (y)')
axes[1].plot(t, np.array(K_est_rls)*u, 'orange', lw=1.5, label='Prediksi RLS')
axes[1].axvline(150, color='red', ls=':', lw=2)
axes[1].set_xlabel('Waktu (k)'); axes[1].set_ylabel('Output (L/s)')
axes[1].set_title('Perbandingan: Output Aktual vs Prediksi Model')
axes[1].legend(); axes[1].grid(alpha=0.3)

plt.tight_layout(); plt.show()

print(f"Estimasi K akhir (GD) : {K_est_gd[-1]:.4f} (true: 0.7)")
print(f"Estimasi K akhir (RLS): {K_est_rls[-1]:.4f} (true: 0.7)")
print(f"\nKesimpulan: RLS lebih cepat konvergen ke nilai baru setelah perubahan!")

📊 Interpretasi Output

  • Sebelum t=150: kedua metode konvergen ke K≈1.0 (benar)
  • Setelah t=150: pompa aus, K turun ke 0.7. RLS lebih cepat mendeteksi karena forgetting factor λ memberi bobot lebih besar pada data terbaru
  • Gradient Descent lebih lambat tapi lebih stabil terhadap noise
  • Ini adalah fondasi Self-Tuning Regulator yang akan dipelajari di Sesi 5!

🧠 Kuis Pemahaman Sesi 3

1. Apa perbedaan utama Direct vs Indirect Adaptive Control?

2. MRAC (Model Reference Adaptive Control) termasuk kategori?

3. Forgetting factor (λ) dalam RLS berfungsi untuk?