Changeset 229 for pmsm/mpf_test.cpp

Show
Ignore:
Timestamp:
01/15/09 10:53:54 (15 years ago)
Author:
smidl
Message:

epdf has a new function: variance()

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pmsm/mpf_test.cpp

    r227 r229  
    1515#include <estim/libKF.h> 
    1616#include <estim/libPF.h> 
     17#include <estim/ekf_templ.h> 
    1718#include <stat/libFN.h> 
    1819 
     
    2223 
    2324using namespace itpp; 
    24 //!Extended Kalman filter with unknown \c Q 
    25 class EKF_unQ : public EKFCh , public BMcond { 
    26 public: 
    27         //! Default constructor 
    28         EKF_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {}; 
    29         void condition ( const vec &Q0 ) { 
    30                 Q.setD ( Q0,0 ); 
    31                 //from EKF 
    32                 preA.set_submatrix ( dimy+dimx,dimy,Q._Ch() ); 
    33         }; 
    34 }; 
    35  
    3625 
    3726int main() { 
     
    5948 
    6049        RV rQ ( "{Q }","4" ); 
    61         EKF_unQ KFEp ( rx,ry,ru,rQ ); 
     50        EKFCh_unQ KFEp ( rx,ry,ru,rQ ); 
    6251        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    6352        KFEp.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 
     
    6554        //mgamma_fix evolQ ( rQ,rQ ); 
    6655        migamma_fix evolQ ( rQ,rQ ); 
    67         MPF<EKF_unQ> M ( rx,rQ,evolQ,evolQ,Npart,KFEp ); 
     56        MPF<EKFCh_unQ> M ( rx,rQ,evolQ,evolQ,Npart,KFEp ); 
    6857        // initialize 
    6958        evolQ.set_parameters ( 0.1, Qdiag, 1.0); //sigma = 1/10 mu 
     
    8574        mat Dt=zeros ( Ndat,2+2 ); //observation 
    8675        mat XtE=zeros ( Ndat, 4 ); 
     76        mat VarE=zeros ( Ndat, 4 ); 
    8777        mat Qtr=zeros ( Ndat, 4 ); 
    8878        mat XtM=zeros ( Ndat,4+4 ); //Q + x 
     79        mat VarM=zeros ( Ndat,4+4 ); //Q + x 
    8980 
    9081        // SET SIMULATOR 
     
    129120                Qtr.set_row ( tK, Qdiag); 
    130121                XtE.set_row ( tK,KFEep.mean() ); 
     122                VarE.set_row ( tK,KFEep.variance() ); 
    131123                XtM.set_row ( tK,Mep.mean() ); 
     124                VarM.set_row ( tK,Mep.variance() ); 
    132125        } 
    133126 
     
    139132        fou << Name ( "xthE" ) << XtE; 
    140133        fou << Name ( "xthM" ) << XtM; 
     134        fou << Name ( "VarE" ) << VarE; 
     135        fou << Name ( "VarM" ) << VarM; 
    141136        //Exit program: 
    142137