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
Berkas & Bahan Ajar
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.
$$\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^-)$$
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.
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