Skip to content

Data assimilation implementation using Kalman Filter for the CFD simulation of a turbulent wind flow in a finite cylinder.

Notifications You must be signed in to change notification settings

gcastro-98/kf-data-assimilation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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$.}

About

Data assimilation implementation using Kalman Filter for the CFD simulation of a turbulent wind flow in a finite cylinder.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages