/*! \file \brief Models for synchronous electric drive using IT++ and BDM \author Vaclav Smidl. ----------------------------------- BDM++ - C++ library for Bayesian Decision Making under Uncertainty Using IT++ for numerical operations ----------------------------------- */ #include #include using namespace itpp; vec getPsi ( int t, mat &D, mat &Q ); int main() { // Kalman filter int Ndat = 90000; mat Q; mat R; mat D; it_file itf ( "sim_var.it" ); itf >> Name ( "Q" ) >> Q; itf >> Name ( "R" ) >> R; itf >> Name ( "D" ) >> D; Array Names = "{ia ib ua ub iam ibm uam ubm iamm ibmm uamm ubmm r }"; int rglen = Names.length(); //Regressor RV rgr ( linspace ( 1,rglen ),Names,ones_i ( rglen ),zeros_i ( rglen ) ); mat V0 = 0.0001*eye ( rglen ); V0 ( 0,0 ) *=10; double nu0 = rglen+1; //Autoregressive model ARX Ar ( rgr,V0,nu0 ); epdf& ARep = Ar._epdf(); vec Psi ( rglen ); for ( int t=2; t