Changeset 279

Show
Ignore:
Timestamp:
02/24/09 14:12:19 (15 years ago)
Author:
smidl
Message:

Transition of pmsm and libKF

Files:
1 added
1 removed
14 modified
11 moved

Legend:

Unmodified
Added
Removed
  • CMakeLists.txt

    r278 r279  
    4848ENDIF(ACML_FOUND) 
    4949 
    50 # IF(XERCES_FOUND) 
    51 #       INCLUDE_DIRECTORIES(${XERCES_INCLUDE_DIR}) 
    52 #       LINK_DIRECTORIES(${NATIVE_XERCES_LIB_PATH}) 
    53 # ENDIF(XERCES_FOUND) 
    54  
    5550## 
    5651## PREPARE MACROS for building executables 
    5752## 
    5853 
    59 IF(WIN32) 
    60         SET(AddLib libacml_dll) 
    61 ENDIF(WIN32) 
    62  
    6354MACRO(EXEC FN) 
    6455        add_executable (${FN} ${FN}.cpp) 
    65         target_link_libraries (${FN} debug itpp_debug) 
    66         target_link_libraries (${FN} optimized itpp) 
    67         target_link_libraries (${FN} bdm ${AddLib}) 
     56        IF(WIN32) 
     57                target_link_libraries (${FN} debug itpp_debug) 
     58                target_link_libraries (${FN} optimized itpp) 
     59                target_link_libraries (${FN} libacml_dll) 
     60        ELSE(WIN32) 
     61                target_link_libraries (${FN} itpp)       
     62        ENDIF(WIN32) 
     63        target_link_libraries (${FN} bdm) 
    6864        target_link_libraries (${FN} ${ARGN}) ## Additional libraries can be added to a macro 
    6965ENDMACRO(EXEC) 
     
    7975add_subdirectory (bdm) 
    8076add_subdirectory (tests) 
    81 #add_subdirectory (pmsm) 
     77add_subdirectory (pmsm) 
    8278#add_subdirectory (mpdm) 
    8379add_subdirectory (library) 
  • CMake_modules/FindITPP.cmake

    r247 r279  
    1313        ${ITPP_DIR}/include 
    1414        /usr/pkgs64/include 
     15        /usr/include 
    1516  ) 
    1617 
     
    2122  /usr/pkgs64/lib 
    2223  /usr/lib64 
     24  /usr/lib 
    2325  NO_DEFAULT_PATH 
    2426) 
  • bdm/estim/ekf_templ.h

    r254 r279  
    2222public: 
    2323        //! Default constructor 
    24         EKFful_unQR ( RV rx, RV ry,RV ru,RV rQR ) :EKFfull ( rx,ry,ru ),BMcond ( rQR ) {}; 
     24        EKFful_unQR ( ) :EKFfull ( ),BMcond ( ) {}; 
    2525        void condition ( const vec &QR0 ) { 
    2626                Q=diag(QR0(0,dimx-1)); 
     
    3333public: 
    3434        //! Default constructor 
    35         EKFCh_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {}; 
     35        EKFCh_unQ (  ) :EKFCh ( ),BMcond ( ) {}; 
    3636        void condition ( const vec &Q0 ) { 
    3737                Q.setD ( Q0,0 ); 
     
    4545        public: 
    4646        //! Default constructor 
    47                 EKFCh_cond ( RV rx, RV ry,RV ru,RV rC ) :EKFCh ( rx,ry,ru ),BMcond ( rC ) {}; 
     47                EKFCh_cond ( ) :EKFCh ( ),BMcond ( ) {}; 
    4848                void condition ( const vec &val ) { 
    4949                        pfxu->condition ( val ); 
  • bdm/estim/libKF.cpp

    r278 r279  
    164164 
    165165 
    166 EKFCh::EKFCh ( ) : KalmanCh (  ) {} 
    167166 
    168167void EKFCh::set_parameters ( diffbifn* pfxu0,  diffbifn* phxu0,const chmat Q0,const chmat R0 ) { 
     
    170169        phxu = phxu0; 
    171170 
     171        dimx = pfxu0->_dimy(); 
     172        dimy = phxu0->_dimy(); 
     173        dimu = pfxu0->_dimu(); 
     174        // set size of mu - just for constant terms of A and C  
     175        _mu=zeros(dimx); 
     176        A=zeros(dimx,dimx); 
     177        C=zeros(dimy,dimx); 
     178        preA=zeros(dimy+dimx+dimx, dimy+dimx); 
     179         
    172180        //initialize matrices A C, later, these will be only updated! 
    173181        pfxu->dfdx_cond ( _mu,zeros ( dimu ),A,true ); 
  • bdm/estim/libKF.h

    r271 r279  
    229229        diffbifn* phxu; 
    230230public: 
    231         //! Default constructor 
    232         EKFCh (); 
    233231        //! Set nonlinear functions for mean values and covariance matrices. 
    234232        void set_parameters ( diffbifn* pfxu, diffbifn* phxu, const chmat Q0, const chmat R0 ); 
  • bdm/estim/libPF.h

    r271 r279  
    4747                        { par = par0; obs=obs0; est.set_parameters ( ones(n0),epdf0 ); }; 
    4848        void set_parameters ( mpdf *par0, mpdf *obs0, int n0 )  
    49                         { par = par0; obs=obs0; n=n0; }; 
     49                        { par = par0; obs=obs0; n=n0; est.set_n(n);}; 
    5050        void set_statistics (const vec w0, epdf *epdf0){est.set_parameters ( w0,epdf0 );}; 
    5151        //!@} 
     
    8080                                Coms ( _w.length() ) { 
    8181                }; 
    82  
    8382                void set_elements ( int &i, double wi, const epdf* ep ) 
    8483                {_w ( i ) =wi; Coms ( i ) =ep;}; 
    8584 
     85                void set_n(int n){E.set_n(n); Coms.set_length(n);} 
    8686                vec mean() const { 
    8787                        // ugly 
     
    113113        MPF ( mpdf *par0, mpdf *obs0, int n, const BM_T &BMcond0 ) : PF (), jest ( est ) { 
    114114                PF::set_parameters(par0,obs0,n); 
     115                jest.set_n(n); 
    115116                // 
    116117                //TODO test if rv and BMcond.rv are compatible. 
  • bdm/math/chmat.cpp

    r262 r279  
    2020}; 
    2121void chmat::mult_sym ( const mat &C , chmat &U ) const { 
    22         it_error ( "not implemented" ); 
     22        mat Z=C*Ch; 
     23        U.Ch= chol(Z*Z.T()); 
    2324}; 
    2425void chmat::mult_sym_t ( const mat &C ) { 
  • bdm/stat/libBM.h

    r271 r279  
    659659class BMcond :public bdmroot { 
    660660protected: 
     661        //!dimension of the conditioning variable 
     662        int dimc; 
    661663        //! Identificator of the conditioning variable 
    662664        RV rvc; 
  • matlab/pmsm/pmsm_sim_disp.m

    r221 r279  
    11close all 
    2 itload('../pmsm_sim.it') 
     2itload('../../pmsm_sim.it') 
    33figure(1); 
    44for i =1:4 
  • pmsm/CMakeLists.txt

    r257 r279  
    66 
    77# no simulator needed... 
    8 EXEC (pmsm_unkQ ) 
    9 EXEC (pmsm_unkQpf) 
    108EXEC(testbidiff) 
    119 
     
    2220#link_directories (./simulator_zdenek/ekf_example) 
    2321 
    24 EXEC (pmsm_sim pmsmsim) 
    25 EXEC (pmsm_sim2 pmsmsim) 
    26 EXEC (mpf_test pmsmsim) 
    27 EXEC (mpf_u_weight pmsmsim) 
    28 EXEC (mpf_u_delta pmsmsim) 
    29 EXEC (mpf_u_delta_real pmsmsim) 
    30 EXEC (mpf_load pmsmsim) 
    31  
    32 EXEC (sim pmsmsim) 
    33 EXEC (sim_var pmsmsim) 
    34 EXEC (sim_var_arx pmsmsim) 
    35 EXEC (pmsm_mix pmsmsim) 
    36  
     22EXEC (pmsm_estim pmsmsim) 
  • pmsm/mpf_load.cpp

    r278 r279  
    6262        mat Q =diag( Qdiag ); 
    6363        mat R =diag ( Rdiag ); 
    64         EKFfull Efix ( rx,ry,ru ); 
     64        EKFfull Efix; 
    6565        Efix.set_est ( mu0, 1*eye ( 4 )  ); 
    6666        Efix.set_parameters ( &fxu0,&hxu,diag(Qdiag0),R); 
    6767 
    68         RV rMz=RV("{Mz }"); 
    69         mlnorm<ldmat> evolMz(rMz,rMz); 
     68        mlnorm<ldmat> evolMz; 
    7069        evolMz.set_parameters(mat("1"),vec("0"),ldmat(1.0*vec("1"))); 
    7170        evolMz.condition(" 0.0"); 
    7271         
    73         EKFCh_cond Ep ( rx,ry,ru,rMz ); 
     72        EKFCh_cond Ep; 
    7473        Ep.set_est ( mu0, 1*eye ( 4 ) ); 
    7574        Ep.set_parameters ( &fxu,&hxu,Q,R); 
    7675         
    77         MPF<EKFCh_cond> M ( rx,rMz,evolMz,evolMz, Npart, Ep  ); 
    78         M.set_est(evolMz.posterior()); 
     76        MPF<EKFCh_cond> M ( &evolMz, &evolMz, Npart, Ep  ); 
     77        M.set_est(evolMz._epdf()); 
    7978 
    8079        //LOG 
    8180        int X_log = L.add(rx,"X"); 
    8281        int E_log = L.add(rx,"EX"); 
    83         int M_log = L.add(concat(rMz,rx),"MX"); 
     82        int M_log = L.add(concat(RV("Mz",1),rx),"MX"); 
    8483        L.init(); 
    8584 
  • pmsm/mpf_test.cpp

    r278 r279  
    4545        chmat Q ( Qdiag ); 
    4646        chmat R ( Rdiag ); 
    47         EKFCh KFE ( rx,ry,ru ); 
     47        EKFCh KFE ; 
    4848        KFE.set_parameters ( &fxu,&hxu,Q,R ); 
    4949        KFE.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 
    5050 
    5151        RV rQ ( "{Q }","4" ); 
    52         EKFCh_unQ KFEp ( rx,ry,ru,rQ ); 
     52        EKFCh_unQ KFEp ; 
    5353        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    5454        KFEp.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 
    5555 
    5656        //mgamma_fix evolQ ( rQ,rQ ); 
    57         migamma_fix evolQ ( rQ,rQ ); 
    58         MPF<EKFCh_unQ> M ( rx,rQ,evolQ,evolQ,Npart,KFEp ); 
     57        migamma_fix evolQ ; 
     58        MPF<EKFCh_unQ> M ( &evolQ,&evolQ,Npart,KFEp ); 
    5959        // initialize 
    6060        evolQ.set_parameters ( 0.1, 10*Qdiag, 1.0); //sigma = 1/10 mu 
  • pmsm/old/mpf_u_delta.cpp

    r278 r279  
    3030public: 
    3131        //! Default constructor 
    32         EKFCh_du_kQ ( RV rx, RV ry,RV ru,RV rC ) :EKFCh ( rx,ry,ru ),BMcond ( rC ),Qref(rx.count()) {}; 
     32        EKFCh_du_kQ ( ) :EKFCh ( ),BMcond (),Qref() {}; 
    3333        void set_ref(const chmat &Qref0){Qref=Qref0;} 
    3434        void condition ( const vec &val ) { 
     
    9898        mat Q2o=diag(Qdiag); 
    9999        chmat R ( Rdiag ); 
    100         EKFCh KFE ( rx,ry,ru ); 
     100        EKFCh KFE ; 
    101101        KFE.set_parameters ( &fxu0,&hxu,Q,R ); 
    102102        KFE.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    103103 
    104104        RV rUd ( "{ud k}", "2 1" ); 
    105         EKFCh_du_kQ KFEp ( rx,ry,ru,rUd ); 
     105        EKFCh_du_kQ KFEp ; 
    106106        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    107107        KFEp.set_ref(Q); 
    108108        KFEp.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    109109 
    110         mlnorm<ldmat> evolUd ( rUd,rUd ); 
    111         MPF<EKFCh_du_kQ> M ( rx,rUd,evolUd,evolUd,Npart,KFEp ); 
     110        mlnorm<ldmat> evolUd ; 
     111        MPF<EKFCh_du_kQ> M ( &evolUd,&evolUd,Npart,KFEp ); 
    112112        // initialize 
    113113        vec Ud0="0 0 1.0"; 
    114114        evolUd.set_parameters ( eye ( 3 ), zeros(3), ldmat ( vec( "1e-4 1e-4 10e-4" ))); 
    115115        evolUd.condition ( Ud0 ); 
    116         epdf& pfinit=evolUd.posterior(); 
     116        epdf& pfinit=evolUd._epdf(); 
    117117        M.set_est ( pfinit ); 
    118118        evolUd.set_parameters ( eye ( 3 ), zeros(3), ldmat ( vec(" 7e-4 7e-4 1e-5" ))); 
  • pmsm/old/mpf_u_delta_real.cpp

    r278 r279  
    8383        chmat Q ( Qdiag ); 
    8484        chmat R ( Rdiag ); 
    85         EKFCh KFE ( rx,ry,ru ); 
     85        EKFCh KFE ; 
    8686        KFE.set_parameters ( &fxu0,&hxu,Q,R ); 
    8787        KFE.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    8888 
    8989        RV rUd ( "{ud }", "2" ); 
    90         EKFCh_cond KFEp ( rx,ry,ru,rUd ); 
     90        EKFCh_cond KFEp ; 
    9191        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    9292        KFEp.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    9393 
    94         mlnorm<ldmat> evolUd ( rUd,rUd ); 
    95         MPF<EKFCh_cond> M ( rx,rUd,evolUd,evolUd,Npart,KFEp ); 
     94        mlnorm<ldmat> evolUd ; 
     95        MPF<EKFCh_cond> M ( &evolUd,&evolUd,Npart,KFEp ); 
    9696        // initialize 
    9797        vec Ud0="0 0"; 
    9898        evolUd.set_parameters ( eye ( 2 ), vec_2 ( 0.0,0.0 ), ldmat ( 10.0*eye ( 2 ) ) ); 
    9999        evolUd.condition ( Ud0 ); 
    100         epdf& pfinit=evolUd.posterior(); 
     100        epdf& pfinit=evolUd._epdf(); 
    101101        M.set_est ( pfinit ); 
    102102        evolUd.set_parameters ( eye ( 2 ), vec_2 ( 0.0,0.0 ), ldmat ( 0.005*eye ( 2 ) ) ); 
  • pmsm/old/mpf_u_weight.cpp

    r278 r279  
    2828class EKFCh_cond : public EKFCh , public BMcond { 
    2929public: 
    30         //! Default constructor 
    31         EKFCh_cond ( RV rx, RV ry,RV ru,RV rC ) :EKFCh ( rx,ry,ru ),BMcond ( rC ) {}; 
     30        //! condition on value of pfxu 
    3231        void condition ( const vec &val ) { 
    3332                pfxu->condition ( val ); 
     
    9291        chmat Q ( Qdiag ); 
    9392        chmat R ( Rdiag ); 
    94         EKFCh KFE ( rx,ry,ru ); 
     93        EKFCh KFE; 
    9594        KFE.set_parameters ( &fxu0,&hxu,Q,R ); 
    9695        KFE.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    9796 
    9897        RV rW ( "{w }" ); 
    99         EKFCh_cond KFEp ( rx,ry,ru,rW ); 
     98        EKFCh_cond KFEp; 
    10099        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    101100        KFEp.set_est ( mu0, chmat ( ones ( 4 ) ) ); 
    102101 
    103         mgamma_fix evolW ( rW,rW ); 
    104         MPF<EKFCh_cond> M ( rx,rW,evolW,evolW,Npart,KFEp ); 
     102        mgamma_fix evolW ; 
     103        MPF<EKFCh_cond> M (&evolW,&evolW,Npart,KFEp ); 
    105104        // initialize 
    106105        vec W0="0.5"; 
    107106        evolW.set_parameters ( 10.0, W0, 1.0 ); //sigma = 1/10 mu 
    108107        evolW.condition ( W0 ); 
    109         epdf& pfinit=evolW.posterior(); 
     108        epdf& pfinit=evolW._epdf(); 
    110109        M.set_est ( pfinit ); 
    111110        evolW.set_parameters ( 100.0, W0, 0.99 ); //sigma = 1/10 mu 
  • pmsm/old/pmsm_mix.cpp

    r271 r279  
    5757        mat Q =diag( Qdiag ); 
    5858        mat R =diag ( Rdiag ); 
    59         EKFfull Efix ( rx,ry,ru ); 
     59        EKFfull Efix ; 
    6060        Efix.set_est ( mu0, 1*eye ( 4 )  ); 
    6161        Efix.set_parameters ( &fxu,&hxu,Q,R); 
    6262 
    6363        RV rQR( "{Q R }", "4 2 "); 
    64         EKFful_unQR EKU (rx,ry,ru,rQR); 
     64        EKFful_unQR EKU; 
    6565        EKU.set_est ( mu0,  1*ones ( 4 ) ); 
    6666        EKU.set_parameters ( &fxu,&hxu,diag(Qdiag),diag(Rdiag) ); 
    6767 
    6868        //QU model 
    69         egamma Gcom(rQR);Gcom.set_parameters(ones(6),vec("1 1 1e4 1e10 1 1")); 
     69        egamma Gcom;Gcom.set_parameters(ones(6),vec("1 1 1e4 1e10 1 1")); 
    7070/*      cout << Gcom.mean() <<endl; 
    7171        cout << Gcom.sample() <<endl;*/ 
    72         euni Ucom(rQR); Ucom.set_parameters(zeros(6),vec("60 60 453 0.03 100 100")); 
     72        euni Ucom; Ucom.set_parameters(zeros(6),vec("60 60 453 0.03 100 100")); 
    7373/*      cout << Ucom.mean() <<endl; 
    7474        cout << Ucom.sample() <<endl;*/ 
     
    7676        Coms(0) = &Gcom; 
    7777        Coms(1) = &Ucom; 
    78         emix Eevol(rQR);        Eevol.set_parameters("0.1 0.9", Coms); 
     78        emix Eevol;     Eevol.set_parameters("0.1 0.9", Coms); 
    7979//      cout << Eevol.sample() <<endl; 
    8080 
    8181        mepdf evolQR(&Eevol); 
    82         MPF<EKFful_unQR> M ( rx,rQR, evolQR, evolQR, Npar, EKU ); 
    83         M.set_est ( evolQR.posterior() ); 
     82        MPF<EKFful_unQR> M (  &evolQR, &evolQR, Npar, EKU ); 
     83        M.set_est ( evolQR._epdf() ); 
    8484 
    8585        const epdf& Efix_ep = Efix.posterior(); 
  • pmsm/old/pmsm_sim.cpp

    r271 r279  
    2525public: 
    2626        //! Default constructor 
    27         EKF_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {}; 
    2827        void condition ( const vec &Q0 ) { 
    2928                Q.setD ( Q0,0 ); 
     
    5352        chmat Q ( Qdiag ); 
    5453        chmat R ( Rdiag ); 
    55         EKFCh KFE ( rx,ry,ru ); 
     54        EKFCh KFE ; 
    5655        KFE.set_parameters ( &fxu,&hxu,Q,R ); 
    5756        KFE.set_est ( mu0, chmat ( 1*ones ( 4 ) ) ); 
    5857 
    5958        RV rQ ( "{Q }","2" ); 
    60         EKF_unQ KFEp ( rx,ry,ru,rQ ); 
     59        EKF_unQ KFEp; 
    6160        KFEp.set_parameters ( &fxu,&hxu,Q,R ); 
    6261        KFEp.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 
    6362 
    64         mgamma evolQ ( rQ,rQ ); 
    65         MPF<EKF_unQ> M ( rx,rQ,evolQ,evolQ,Npart,KFEp ); 
     63        mgamma evolQ ; 
     64        MPF<EKF_unQ> M (&evolQ,&evolQ,Npart,KFEp ); 
    6665        // initialize 
    67         evolQ.set_parameters ( 10.0 ); //sigma = 1/10 mu 
     66        evolQ.set_parameters ( 10.0, "0.01 0.01" ); //sigma = 1/10 mu 
    6867        evolQ.condition ( "0.01 0.01" ); //Zdenek default 
    69         epdf& pfinit=evolQ.posterior(); 
     68        epdf& pfinit=evolQ._epdf(); 
    7069        M.set_est ( pfinit ); 
    71         evolQ.set_parameters ( 10.0 ); 
     70        evolQ.set_parameters ( 10.0,  "0.01 0.01"); 
    7271 
    7372        // 
  • pmsm/old/pmsm_sim2.cpp

    r271 r279  
    2727public: 
    2828        //! Default constructor 
    29         EKF_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {}; 
    3029        void condition ( const vec &Q0 ) { 
    3130                Q.setD ( Q0,0 ); 
     
    4847class EKF_unQful : public EKFfull , public BMcond { 
    4948public: 
    50         //! Default constructor 
    51         EKF_unQful ( RV rx, RV ry,RV ru,RV rQ ) :EKFfull ( rx,ry,ru ),BMcond ( rQ ) {}; 
    5249        void condition ( const vec &Q0 ) { 
    5350                Q=diag(Q0); 
     
    8986        chmat Q ( Qdiag ); 
    9087        chmat R ( Rdiag ); 
    91         EKFCh KFE ( rx,ry,ru ); 
     88        EKFCh KFE ; 
    9289        KFE.set_est ( mu0, chmat( 1*eye ( 4 ) ) ); 
    9390        KFE.set_parameters ( &fxu,&hxu,Q,R); 
    9491 
    9592        RV rQ ( "{Q}","4" ); 
    96         EKF_unQful KFEp ( rx,ry,ru,rQ ); 
     93        EKF_unQful KFEp ; 
    9794        KFEp.set_est ( mu0,  1*ones ( 4 ) ); 
    9895        KFEp.set_parameters ( &fxu,&hxu,diag(Qdiag),diag(Rdiag) ); 
    9996 
    100         mgamma_fix evolQ ( rQ,rQ ); 
    101         MPF<EKF_unQful> M ( rx,rQ,evolQ,evolQ,Npart,KFEp ); 
     97        mgamma_fix evolQ ; 
     98        MPF<EKF_unQful> M ( &evolQ,&evolQ,Npart,KFEp ); 
    10299        // initialize 
    103100        evolQ.set_parameters ( 1000.0 ,Qdiag, 0.5); //sigma = 1/10 mu 
    104101        evolQ.condition ( Qdiag ); //Zdenek default 
    105         epdf& pfinit=evolQ.posterior(); 
     102        epdf& pfinit=evolQ._epdf(); 
    106103        M.set_est ( pfinit ); 
    107104        evolQ.set_parameters ( 100000.0, Qdiag, 0.9999 ); 
  • pmsm/old/pmsm_unkQ.cpp

    r278 r279  
    4646        chmat Q ( Qdiag ); 
    4747        chmat R ( Rdiag ); 
    48         EKFCh KFE ( rx,ry,ru ); 
     48        EKFCh KFE ; 
    4949        KFE.set_est ( mu0, chmat ( 1000*ones ( 4 ) ) ); 
    5050        KFE.set_parameters ( &fxu,&hxu,Q,R ); 
     
    5757                vec Qid ( Qdiag ); 
    5858                Qid ( 0 ) = vQ ( i ); Qid ( 1 ) = vQ ( i ); 
    59                 kfArray[i]= new EKFCh ( rx,ry,ru ); 
     59                kfArray[i]= new EKFCh; 
    6060                kfArray[i]->set_est ( mu0, chmat ( 1000*ones ( 4 ) ) ); 
    6161                kfArray[i]->set_parameters ( &fxu,&hxu,chmat ( Qid ),R ); 
  • pmsm/old/pmsm_unkQpf.cpp

    r278 r279  
    2424public: 
    2525        //! Default constructor 
    26         EKF_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {}; 
    2726        void condition ( const vec &Q0 ) { 
    2827                Q.setD ( Q0,0 ); 
     
    5352 
    5453        RV rQ ( "{Q}","2" ); 
    55         EKF_unQ KFE ( rx,ry,ru,rQ ); 
     54        EKF_unQ KFE ; 
    5655        KFE.set_parameters ( &fxu,&hxu,Q,R ); 
    5756        KFE.set_est ( mu0, chmat ( 1000*ones ( 4 ) ) ); 
    5857 
    59         mgamma evolQ ( rQ,rQ ); 
     58        mgamma evolQ ; 
    6059        //evolQ.set_parameters ( 10000.0 ); //sigma = 1/10 mu 
    6160 
    62         MPF<EKF_unQ> M ( rx,rQ,evolQ,evolQ,100,KFE ); 
     61        MPF<EKF_unQ> M ( &evolQ,&evolQ,100,KFE ); 
    6362 
    6463        const epdf& KFEep = KFE.posterior(); 
    6564        const epdf& Mep = M.posterior(); 
    6665        // initialize 
    67         evolQ.set_parameters ( 1.0 ); //sigma = 1/10 mu 
     66        evolQ.set_parameters ( 1.0, "0.5 0.5" ); //sigma = 1/10 mu 
    6867        evolQ.condition ( "0.5 0.5" ); 
    69         const epdf& pfinit=evolQ.posterior(); 
     68        const epdf& pfinit=evolQ._epdf(); 
    7069        M.set_est ( pfinit ); 
    71         evolQ.set_parameters ( 1000.0 ); //sigma = 1/10 mu 
     70        evolQ.set_parameters ( 1000.0 , "0.5 0.5"); //sigma = 1/10 mu 
    7271 
    7372        //simulator values 
  • pmsm/old/sim_var.cpp

    r271 r279  
    6363        mat Q =diag( Qdiag ); 
    6464        mat R =diag ( Rdiag ); 
    65         EKFfull Efix ( rx,ry,ru ); 
     65        EKFfull Efix ; 
    6666        Efix.set_est ( mu0, 1*eye ( 4 )  ); 
    6767        Efix.set_parameters ( &fxu,&hxu,Q,R); 
    6868 
    69         EKFfull Eop ( rx,ry,ru ); 
     69        EKFfull Eop ; 
    7070        Eop.set_est ( mu0, 1*eye ( 4 ) ); 
    7171        Eop.set_parameters ( &fxu,&hxu,Q,R); 
    7272 
    73         EKFfull Edi ( rx,ry,ru ); 
     73        EKFfull Edi ; 
    7474        Edi.set_est ( mu0, 1*eye ( 4 ) ); 
    7575        Edi.set_parameters ( &fxu,&hxu,Q,R); 
  • pmsm/pmsm.h

    r254 r279  
    2525 
    2626public: 
    27         IMpmsm() :diffbifn (rx.count(), rx, ru ) {}; 
     27        IMpmsm() :diffbifn ( ) {dimy=4; dimx = 4; dimu=2;}; 
    2828        //! Set mechanical and electrical variables 
    2929        void set_parameters ( double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0 ) {Rs=Rs0; Ls=Ls0; dt=dt0; Ypm=Ypm0; kp=kp0; p=p0; J=J0; Mz=Mz0;} 
     
    8686                double iam, ibm, omm, thm, uam, ubm; 
    8787        public: 
    88                 IMpmsm2o() :diffbifn (rx.count(), rx, ru ) {}; 
     88                IMpmsm2o() :diffbifn () {dimy=4;dimx=4;dimu=2;}; 
    8989        //! Set mechanical and electrical variables 
    9090                void set_parameters ( double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0 ) {Rs=Rs0; Ls=Ls0; dt=dt0; Ypm=Ypm0; kp=kp0; p=p0; J=J0; Mz=Mz0; d2t=dt*dt/2;} 
     
    209209class OMpmsm: public diffbifn { 
    210210public: 
    211         OMpmsm() :diffbifn (2, rx,ru ) {}; 
     211        OMpmsm() :diffbifn () {dimy=2;dimx=4;dimu=2;}; 
    212212 
    213213        vec eval ( const vec &x0, const vec &u0 ) { 
  • pmsm/simulator_zdenek/ekf_example/ekf_obj.h

    r271 r279  
    6464public: 
    6565        //! Default constructor 
    66         EKFfixed ( RV rvx,RV rvc ):BM(rvx),BMcond(rvc),E(rvx),Ry(2,2){ 
     66        EKFfixed ():BM(),BMcond(),E(),Ry(2,2){ 
    6767        int i; 
    6868 for(i=0;i<16;i++){Q[i]=0;}