Changeset 285 for pmsm/TR2245/unitsteps.cpp
- Timestamp:
- 03/05/09 14:03:33 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pmsm/TR2245/unitsteps.cpp
r283 r285 18 18 19 19 #include <stat/loggers_ui.h> 20 #include <stat/libEF_ui.h> 20 21 21 22 #include "../pmsm.h" … … 38 39 vec Qdiag; 39 40 vec Rdiag; 41 42 mpdf* evolQ ; 40 43 try { 41 44 // Kalman filter … … 43 46 F.lookupValue ( "Npart",Npart ); 44 47 48 UIbuild ( F.lookup ( "Qrw" ),evolQ ); 45 49 Qdiag= getvec ( F.lookup ( "dQ" ) ); //( "1e-6 1e-6 0.001 0.0001" ); //zdenek: 0.01 0.01 0.0001 0.0001 46 50 Rdiag=getvec ( F.lookup ( "dR" ) );// ( "1e-8 1e-8" ); //var(diff(xth)) = "0.034 0.034" 47 51 } 48 52 catch UICATCH; 49 50 51 52 53 53 // internal model 54 55 IMpmsm fxu; 56 // Rs Ls dt Fmag(Ypm) kp p J Bf(Mz) 57 fxu.set_parameters ( 0.28, 0.003465, Nsimstep*h, 0.1989, 1.5 ,4.0, 0.04, 0.0 ); 54 58 // observation model 55 59 OMpmsm hxu; … … 61 65 KFE.set_parameters ( &fxu,&hxu,Q,R ); 62 66 KFE.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 63 KFE.set_rv (rx);67 KFE.set_rv ( rx ); 64 68 65 69 RV rQ ( "{Q }","4" ); … … 67 71 KFEp.set_parameters ( &fxu,&hxu,Q,R ); 68 72 KFEp.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 69 70 migamma_fix evolQ ; 73 71 74 MPF<EKFCh_unQ> M; 72 M.set_parameters ( &evolQ,&evolQ,Npart);75 M.set_parameters ( evolQ,evolQ,Npart ); 73 76 // initialize 74 evolQ.set_parameters ( 0.1, 10*Qdiag, 1.0 ); //sigma = 1/10 mu 75 evolQ.condition ( 10*Qdiag ); //Zdenek default 76 M.set_statistics ( evolQ._e() , &KFEp ); 77 evolQ.set_parameters ( 0.10, 10*Qdiag,0.999 ); //sigma = 1/10 mu 77 evolQ->condition ( 10*Qdiag ); //Zdenek default 78 M.set_statistics ( evolQ->_e() , &KFEp ); 78 79 // 79 80 80 M.set_rv (concat(rQ,rx));81 82 dirfilelog *L; UIbuild (F.lookup("logger"), L);// ( "exp/mpf_test",100 );81 M.set_rv ( concat ( rQ,rx ) ); 82 83 dirfilelog *L; UIbuild ( F.lookup ( "logger" ), L );// ( "exp/mpf_test",100 ); 83 84 int l_X = L->add ( rx, "xt" ); 84 85 int l_D = L->add ( concat ( ry,ru ), "" ); 85 86 int l_Q= L->add ( rQ, "" ); 86 87 KFE.set_options ("logbounds");88 KFE.log_add (L,"KF");89 M.set_options ("logbounds");90 M.log_add (L,"M");87 88 KFE.set_options ( "logbounds" ); 89 KFE.log_add ( L,"KF" ); 90 M.set_options ( "logbounds" ); 91 M.log_add ( L,"M" ); 91 92 L->init(); 92 93 … … 98 99 vec xtm=zeros ( 4 ); 99 100 double Ww=0.0; 100 vec vecW=getvec (F.lookup("profile"));101 vec vecW=getvec ( F.lookup ( "profile" ) ); 101 102 102 103 for ( int tK=1;tK<Ndat;tK++ ) { … … 130 131 L->logit ( l_D,concat ( dt,ut ) ); 131 132 L->logit ( l_Q,Qdiag ); 132 133 KFE.logit (L);134 M.logit (L);133 134 KFE.logit ( L ); 135 M.logit ( L ); 135 136 L->step(); 136 137 }