Kembali ke Beranda
Classical Models
MODUL PERKULIAHAN MINGGU KE-7

Discrete Kalman Filter & Representasi State-Space

Model Ruang Keadaan Stokastik Diskrit, Estimasi State-of-Charge Baterai, dan Denoising Sensor

Capaian Pembelajaran Khusus (Sub-CPMK)

Sub-CPMK 7: Mampu memformulasikan model sistem dinamis ke State-Space dan menurunkan algoritma Discrete Kalman Filter.

Representasi state-space linier diskrit, matriks derau proses Q dan pengukuran R, algoritma 2-tahap (Time Update vs Measurement Update), penentuan bobot optimal Kalman Gain K_k, konvergensi kovarians error P_k, dan estimasi SoC baterai BESS.

Formulasi Matematis & Persamaan Inti

$$\mathbf{K}_k = \mathbf{P}_k^- \mathbf{H}^T (\mathbf{H} \mathbf{P}_k^- \mathbf{H}^T + \mathbf{R})^{-1}, \quad \hat{\mathbf{x}}_k = \hat{\mathbf{x}}_k^- + \mathbf{K}_k(\mathbf{z}_k - \mathbf{H}\hat{\mathbf{x}}_k^-)$$

Pemetaan Taksonomi Bloom (C1–C6)

C1–C2 (Mengingat & Memahami)

Definisi Best Linear Unbiased Estimator (BLUE) dan peran Kalman Gain K_k.

C3–C4 (Menerapkan & Menganalisis)

Kalkulasi numerik 2 iterasi Kalman Filter untuk estimasi tegangan BESS dan analisis rasio Q/R.

C5–C6 (Mengevaluasi & Berkreasi)

Evaluasi DKF vs EKF pada kurva non-linier baterai dan perancangan kelas Python KalmanFilter 2D.

Implementasi Komputasi (Python / Statsmodels)

class KalmanFilter1D:
    def __init__(self, A=1.0, H=1.0, Q=1e-5, R=0.04, x0=0.0, P0=1.0):
        self.A, self.H, self.Q, self.R = A, H, Q, R
        self.x, self.P = x0, P0

    def step(self, z):
        # Time Update
        x_minus = self.A * self.x
        P_minus = self.A * self.P * self.A + self.Q
        # Measurement Update
        K = P_minus * self.H / (self.H * P_minus * self.H + self.R)
        self.x = x_minus + K * (z - self.H * x_minus)
        self.P = (1 - K * self.H) * P_minus
        return self.x, self.P