Changeset 279 for pmsm/old

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

Transition of pmsm and libKF

Location:
pmsm/old
Files:
1 added
11 moved

Legend:

Unmodified
Added
Removed
  • 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);