Skip to content

Latest commit

 

History

History
13 lines (12 loc) · 2.06 KB

README.md

File metadata and controls

13 lines (12 loc) · 2.06 KB

kf-data-assimilation

Data assimilation implementation using Kalman Filter for the CFD simulation of a turbulent wind flow in a finite cylinder. A thorough review of the Kalman Filter theory (along with ARIMA and SSM formulations) can be found in our article, submitted to be graded as part of Machine Learning (ML) 2022 course of the Data Science master course by University of Barcelona (UB). The details of the implementation can be found in the commented script summary, but it is also highlighted below:

  1. Register the observed velocity flow in the point A and store it in a dataframe called $\texttt{velA}$.
  2. Simulate the velocity flow in the point A with $\texttt{COMSOL}$ and store it in a dataframe called $\texttt{mmA}$.
  3. Find the best SSM through an ARMA model. Concretely using $\texttt{auto.arima}$ and in our case the best distribution was an $\texttt{ARIMA}(0, 0, 2)$, i.e. $\texttt{MA}(2)$, with parameters $(0.8504, 0.2416)$ for the 'normalized' velocity flow $velA_{mit}$ dataframe (being $\texttt{mitjana}$ its only column)
        velA_mit <- mmA$mitjana[59:178] - 1.0566
  1. Build the SSM model and storing its matrices in an array $\texttt{m1.dlm}$ using $\texttt{dlmModARMA}( ma= c(0.8504, 0.2416))$ with the best parameters found before.
  2. Apply the KF and we save it in $\texttt{A3mean}$. We use $\texttt{dlmFilter(y, mod)}$ being $\texttt{y}$ the 'normalized' data at point $A$, i.e. $v_A - \overline{v_A}$; and being $\texttt{mod}= \texttt{m1.dlm}$ the SSM parameters. At practice, it can be an object of class $\texttt{dlm}$ or a list with components m0, C0, FF, V, GG, W.
    • The dlm notation for the SSM parameters diverges with respect to the used in the article. The disambiguation can be found here: $\texttt{FF} \longleftrightarrow M_t$, $\texttt{GG} \longleftrightarrow F_t$, $\texttt{V} \longleftrightarrow R_t$, $\texttt{W} \longleftrightarrow Q_t$, and $m_0 \longleftrightarrow X_0$ & $C_0 \longleftrightarrow \Sigma_0$.}