Changeset 283
- Timestamp:
- 02/24/09 14:14:01 (16 years ago)
- Files:
-
- 23 modified
Legend:
- Unmodified
- Added
- Removed
-
CMakeLists.txt
r280 r283 78 78 #add_subdirectory (mpdm) 79 79 add_subdirectory (library) 80 #add_subdirectory (doprava)80 add_subdirectory (doprava) -
bdm/estim/arx.cpp
r270 r283 44 44 } 45 45 46 ARX* ARX::_copy_ ( ) {46 ARX* ARX::_copy_ ( ) const { 47 47 ARX* Tmp=new ARX ( *this ); 48 48 return Tmp; -
bdm/estim/arx.h
r271 r283 55 55 ARX ( const double frg0=1.0 ) : BMEF ( frg0 ),est (), V ( est._V() ), nu ( est._nu() ) {}; 56 56 ARX ( const ARX &A0 ) : BMEF (),est ( A0.est ), V ( est._V() ), nu ( est._nu() ) {}; 57 ARX* _copy_() ;57 ARX* _copy_() const; 58 58 void set_parameters ( double frg0 ) {frg=frg0;} 59 59 void set_statistics ( int dimx0, const ldmat V0, double nu0=-1.0 ) {est.set_parameters ( dimx0,V0,nu0 );last_lognc=est.lognc();dimx=dimx0;} -
bdm/estim/ekf_templ.h
r279 r283 19 19 20 20 //!Extended Kalman filter with unknown \c Q and \c R 21 class EKFful_unQR : public EKFfull , public BMcond{21 class EKFful_unQR : public EKFfull { 22 22 public: 23 //! Default constructor24 EKFful_unQR ( ) :EKFfull ( ),BMcond ( ) {};25 23 void condition ( const vec &QR0 ) { 26 24 Q=diag(QR0(0,dimx-1)); … … 30 28 31 29 //!Extended Kalman filter in Choleski form with unknown \c Q 32 class EKFCh_unQ : public EKFCh , public BMcond{30 class EKFCh_unQ : public EKFCh { 33 31 public: 34 //! Default constructor35 EKFCh_unQ ( ) :EKFCh ( ),BMcond ( ) {};36 32 void condition ( const vec &Q0 ) { 37 33 Q.setD ( Q0,0 ); … … 42 38 43 39 //!Extended Kalman filter with unknown parameters in \c IM 44 class EKFCh_cond : public EKFCh , public BMcond{40 class EKFCh_cond : public EKFCh { 45 41 public: 46 //! Default constructor47 EKFCh_cond ( ) :EKFCh ( ),BMcond ( ) {};48 42 void condition ( const vec &val ) { 49 43 pfxu->condition ( val ); -
bdm/estim/libKF.cpp
r279 r283 69 69 70 70 dimx = pfxu0->_dimx(); 71 dimy = phxu0-> _dimy();71 dimy = phxu0->dimension(); 72 72 dimu = pfxu0->_dimu(); 73 73 … … 169 169 phxu = phxu0; 170 170 171 dimx = pfxu0-> _dimy();172 dimy = phxu0-> _dimy();171 dimx = pfxu0->dimension(); 172 dimy = phxu0->dimension(); 173 173 dimu = pfxu0->_dimu(); 174 174 // set size of mu - just for constant terms of A and C … … 249 249 } 250 250 251 void KFcondQR::condition ( const vec &QR ) { 252 it_assert_debug ( QR.length() == ( dimx+dimy ),"KFcondRQ: conditioning by incompatible vector" ); 253 254 Q.setD ( QR ( 0, dimx-1 ) ); 255 R.setD ( QR ( dimx, -1 ) ); 256 }; 257 258 void KFcondR::condition ( const vec &R0 ) { 259 it_assert_debug ( R0.length() == ( dimy ),"KFcondR: conditioning by incompatible vector" ); 260 261 R.setD ( R0 ); 262 }; 263 264 265 } 251 } -
bdm/estim/libKF.h
r279 r283 19 19 #include "../math/chmat.h" 20 20 21 namespace bdm {21 namespace bdm { 22 22 23 23 /*! … … 49 49 friend std::ostream &operator<< ( std::ostream &os, const KalmanFull &kf ); 50 50 //! For EKFfull; 51 KalmanFull() {};51 KalmanFull() {}; 52 52 }; 53 53 … … 56 56 * \brief Kalman filter with covariance matrices in square root form. 57 57 58 Parameter evolution model:\f[ x_t = A x_{t-1} + B u_t + Q^{1/2} e_t \f] 58 Parameter evolution model:\f[ x_t = A x_{t-1} + B u_t + Q^{1/2} e_t \f] 59 59 Observation model: \f[ y_t = C x_{t-1} + C u_t + Q^{1/2} w_t. \f] 60 Where $e_t$ and $w_t$ are independent vectors Normal(0,1)-distributed disturbances. 60 Where $e_t$ and $w_t$ are independent vectors Normal(0,1)-distributed disturbances. 61 61 */ 62 62 template<class sq_T> … … 77 77 mat A; 78 78 //! Matrix B 79 mat B; 79 mat B; 80 80 //! Matrix C 81 81 mat C; … … 112 112 //! Set estimate values, used e.g. in initialization. 113 113 void set_est ( const vec &mu0, const sq_T &P0 ) { 114 sq_T pom (dimy);114 sq_T pom ( dimy ); 115 115 est.set_parameters ( mu0,P0 ); 116 P0.mult_sym (C,pom);116 P0.mult_sym ( C,pom ); 117 117 fy.set_parameters ( C*mu0, pom ); 118 118 }; … … 133 133 Trivial example: 134 134 \include kalman_simple.cpp 135 136 */ 137 class KalmanCh : public Kalman<chmat> {135 136 */ 137 class KalmanCh : public Kalman<chmat> { 138 138 protected: 139 139 //! pre array (triangular matrix) 140 mat preA;140 mat preA; 141 141 //! post array (triangular matrix) 142 mat postA; 143 144 public: 145 //! Default constructor 146 KalmanCh ():Kalman<chmat>(),preA(),postA(){}; 142 mat postA; 143 144 public: 145 //! copy constructor 146 BM* _copy_() const { 147 KalmanCh* K=new KalmanCh; 148 K->set_parameters ( A,B,C,D,Q,R ); 149 K->set_statistics ( _mu,_P ); 150 return K; 151 } 147 152 //! Set parameters with check of relevance 148 153 void set_parameters ( const mat &A0,const mat &B0,const mat &C0,const mat &D0,const chmat &Q0,const chmat &R0 ); … … 150 155 est.set_parameters ( mu0,P0 ); 151 156 }; 152 153 157 158 154 159 /*!\brief Here dt = [yt;ut] of appropriate dimensions 155 160 156 161 The following equality hold::\f[ 157 \left[\begin{array}{cc}158 R^{0.5}\\159 P_{t|t-1}^{0.5}C' & P_{t|t-1}^{0.5}CA'\\160 161 R_{y}^{0.5} & KA'\\162 163 \\\end{array}\right]\f]164 165 Thus this object evaluates only predictors! Not filtering densities.162 \left[\begin{array}{cc} 163 R^{0.5}\\ 164 P_{t|t-1}^{0.5}C' & P_{t|t-1}^{0.5}CA'\\ 165 & Q^{0.5}\end{array}\right]<\mathrm{orth.oper.}>=\left[\begin{array}{cc} 166 R_{y}^{0.5} & KA'\\ 167 & P_{t+1|t}^{0.5}\\ 168 \\\end{array}\right]\f] 169 170 Thus this object evaluates only predictors! Not filtering densities. 166 171 */ 167 172 void bayes ( const vec &dt ); … … 179 184 //! Observation Model h(x,u) 180 185 diffbifn* phxu; 181 182 enorm<fsqmat> E; 186 187 enorm<fsqmat> E; 183 188 public: 184 189 //! Default constructor … … 189 194 void bayes ( const vec &dt ); 190 195 //! set estimates 191 void set_est ( vec mu0, mat P0){mu=mu0;P=P0;};196 void set_est ( vec mu0, mat P0 ) {mu=mu0;P=P0;}; 192 197 //!dummy! 193 const epdf& posterior() const{return E;};194 const enorm<fsqmat>* _e() const{return &E;};195 const mat _R() {return P;}198 const epdf& posterior() const{return E;}; 199 const enorm<fsqmat>* _e() const{return &E;}; 200 const mat _R() {return P;} 196 201 }; 197 202 … … 210 215 //! Default constructor 211 216 EKF ( RV rvx, RV rvy, RV rvu ); 217 //! copy constructor 218 EKF<sq_T>* _copy_() const { return new EKF<sq_T>(this); } 212 219 //! Set nonlinear functions for mean values and covariance matrices. 213 220 void set_parameters ( diffbifn* pfxu, diffbifn* phxu, const sq_T Q0, const sq_T R0 ); … … 223 230 224 231 class EKFCh : public KalmanCh { 225 232 protected: 226 233 //! Internal Model f(x,u) 227 234 diffbifn* pfxu; … … 229 236 diffbifn* phxu; 230 237 public: 238 //! copy constructor duplicated - calls different set_parameters 239 BM* _copy_() const { 240 EKFCh* E=new EKFCh; 241 E->set_parameters ( pfxu,phxu,Q,R ); 242 E->set_statistics ( _mu,_P ); 243 return E; 244 } 231 245 //! Set nonlinear functions for mean values and covariance matrices. 232 246 void set_parameters ( diffbifn* pfxu, diffbifn* phxu, const chmat Q0, const chmat R0 ); … … 239 253 */ 240 254 241 class KFcondQR : public Kalman<ldmat> , public BMcond{255 class KFcondQR : public Kalman<ldmat> { 242 256 //protected: 243 257 public: 258 void condition ( const vec &QR ) { 259 it_assert_debug ( QR.length() == ( dimx+dimy ),"KFcondRQ: conditioning by incompatible vector" ); 260 261 Q.setD ( QR ( 0, dimx-1 ) ); 262 R.setD ( QR ( dimx, -1 ) ); 263 }; 264 }; 265 266 /*! 267 \brief Kalman Filter with conditional diagonal matrices R and Q. 268 */ 269 270 class KFcondR : public Kalman<ldmat> { 271 //protected: 272 public: 244 273 //!Default constructor 245 KFcondQR ( ) : Kalman<ldmat> ( ),BMcond ( ) {}; 246 247 void condition ( const vec &RQ ); 248 }; 249 250 /*! 251 \brief Kalman Filter with conditional diagonal matrices R and Q. 252 */ 253 254 class KFcondR : public Kalman<ldmat>, public BMcond { 255 //protected: 256 public: 257 //!Default constructor 258 KFcondR ( ) : Kalman<ldmat> ( ),BMcond ( ) {}; 259 260 void condition ( const vec &R ); 274 KFcondR ( ) : Kalman<ldmat> ( ) {}; 275 276 void condition ( const vec &R0 ) { 277 it_assert_debug ( R0.length() == ( dimy ),"KFcondR: conditioning by incompatible vector" ); 278 279 R.setD ( R0 ); 280 }; 281 261 282 }; 262 283 … … 267 288 dimx ( K0.dimx ), dimy ( K0.dimy ),dimu ( K0.dimu ), 268 289 A ( K0.A ), B ( K0.B ), C ( K0.C ), D ( K0.D ), 269 Q (K0.Q), R(K0.R),270 est ( K0.est ), fy ( K0.fy ), _yp (fy._mu()),_Ry(fy._R()), _mu(est._mu()), _P(est._R()) {290 Q ( K0.Q ), R ( K0.R ), 291 est ( K0.est ), fy ( K0.fy ), _yp ( fy._mu() ),_Ry ( fy._R() ), _mu ( est._mu() ), _P ( est._R() ) { 271 292 272 293 // copy values in pointers … … 279 300 280 301 template<class sq_T> 281 Kalman<sq_T>::Kalman ( ) : BM (), est ( ), fy (), _yp (fy._mu()), _Ry(fy._R()), _mu(est._mu()), _P(est._R()) {302 Kalman<sq_T>::Kalman ( ) : BM (), est ( ), fy (), _yp ( fy._mu() ), _Ry ( fy._R() ), _mu ( est._mu() ), _P ( est._R() ) { 282 303 }; 283 304 … … 287 308 dimy = C0.rows(); 288 309 dimu = B0.cols(); 289 310 290 311 it_assert_debug ( A0.cols() ==dimx, "Kalman: A is not square" ); 291 312 it_assert_debug ( B0.rows() ==dimx, "Kalman: B is not compatible" ); … … 307 328 it_assert_debug ( dt.length() == ( dimy+dimu ),"KalmanFull::bayes wrong size of dt" ); 308 329 309 sq_T iRy (dimy);330 sq_T iRy ( dimy ); 310 331 vec u = dt.get ( dimy,dimy+dimu-1 ); 311 332 vec y = dt.get ( 0,dimy-1 ); … … 328 349 sq_T pom ( ( int ) Pfull.rows() ); 329 350 iRy.mult_sym_t ( C*Pfull,pom ); 330 ( _P ) -= pom; // P = P -PC'iRy*CP;331 ( _yp ) = C* _mu +D*u; //y prediction332 ( _mu ) += _K* ( y- _yp);351 ( _P ) -= pom; // P = P -PC'iRy*CP; 352 ( _yp ) = C* _mu +D*u; //y prediction 353 ( _mu ) += _K* ( y- _yp ); 333 354 334 355 … … 340 361 341 362 }; 342 363 343 364 344 365 … … 369 390 it_assert_debug ( dt.length() == ( dimy+dimu ),"KalmanFull::bayes wrong size of dt" ); 370 391 371 sq_T iRy (dimy,dimy);392 sq_T iRy ( dimy,dimy ); 372 393 vec u = dt.get ( dimy,dimy+dimu-1 ); 373 394 vec y = dt.get ( 0,dimy-1 ); … … 393 414 sq_T pom ( ( int ) Pfull.rows() ); 394 415 iRy.mult_sym_t ( C*Pfull,pom ); 395 ( _P ) -= pom; // P = P -PC'iRy*CP;416 ( _P ) -= pom; // P = P -PC'iRy*CP; 396 417 _yp = phxu->eval ( _mu,u ); //y prediction 397 418 ( _mu ) += _K* ( y-_yp ); -
bdm/estim/libPF.cpp
r278 r283 1 1 #include "libPF.h" 2 2 3 namespace bdm {3 namespace bdm { 4 4 5 5 using std::endl; … … 13 13 for ( i=0;i<n;i++ ) { 14 14 //generate new samples from paramater evolution model; 15 _samples ( i ) = par->samplecond ( _samples ( i ) );16 lls (i )= par->_e()->evallog(_samples(i));15 _samples ( i ) = par->samplecond ( _samples ( i ) ); 16 lls ( i ) = par->_e()->evallog ( _samples ( i ) ); 17 17 lls ( i ) *= obs->evallogcond ( dt,_samples ( i ) ); 18 18 … … 30 30 _w ( i ) /=sum; //? 31 31 32 ind = est.resample( );32 ind = est.resample(resmethod); 33 33 34 34 } 35 35 36 void PF::set_est ( const epdf &epdf0 ) { 37 int i; 36 // void PF::set_est ( const epdf &epdf0 ) { 37 // int i; 38 // 39 // for ( i=0;i<n;i++ ) { 40 // _samples ( i ) = epdf0.sample(); 41 // } 42 // } 38 43 39 for ( i=0;i<n;i++ ) {40 _samples ( i ) = epdf0.sample();41 }42 }43 44 44 45 } -
bdm/estim/libPF.h
r281 r283 40 40 mpdf *obs; 41 41 42 //! which resampling method will be used 43 RESAMPLING_METHOD resmethod; 44 42 45 //! \name Options 43 46 //!@{ 44 47 45 //! Log resampling times46 bool opt_L_res;47 48 //! Log all samples 48 49 bool opt_L_smp; 50 //! Log all samples 51 bool opt_L_wei; 49 52 //!@} 50 53 … … 52 55 //! \name Constructors 53 56 //!@{ 54 PF ( ) :est(), _w ( est._w() ),_samples ( est._samples() ) {};55 PF ( mpdf *par0, mpdf *obs0, epdf *epdf0, int n0 ) :56 est ( ),_w ( est._w() ),_samples ( est._samples())57 { set_parameters ( par0,obs0,n0 ); set_statistics ( ones ( n0 ),epdf0 ); };58 void set_parameters ( mpdf *par0, mpdf *obs0, int n0 )59 { par = par0; obs=obs0; n=n0; est.set_n ( n );};60 void set_statistics ( const vec w0, epdf *epdf0 ) {est.set_ parameters ( w0,epdf0 );};57 PF ( ) :est(), _w ( est._w() ),_samples ( est._samples() ), opt_L_smp ( false ), opt_L_wei ( false ) {LIDs.set_size ( 5 );}; 58 /* PF ( mpdf *par0, mpdf *obs0, epdf *epdf0, int n0 ) : 59 est ( ),_w ( est._w() ),_samples ( est._samples() ),opt_L_smp(false), opt_L_wei(false) 60 { set_parameters ( par0,obs0,n0 ); set_statistics ( ones ( n0 ),epdf0 ); };*/ 61 void set_parameters ( mpdf *par0, mpdf *obs0, int n0, RESAMPLING_METHOD rm=SYSTEMATIC ) 62 { par = par0; obs=obs0; n=n0; resmethod= rm;}; 63 void set_statistics ( const vec w0, epdf *epdf0 ) {est.set_statistics ( w0,epdf0 );}; 61 64 //!@} 62 65 //! Set posterior density by sampling from epdf0 63 void set_est ( const epdf &epdf0 ); 64 void set_options(const string &opt){ 65 opt_L_res= ( s.find ( "logres" ) !=string::npos ); 66 opt_L_smp= ( s.find ( "logsmp" ) !=string::npos ); 66 // void set_est ( const epdf &epdf0 ); 67 void set_options ( const string &opt ) { 68 BM::set_options(opt); 69 opt_L_wei= ( opt.find ( "logweights" ) !=string::npos ); 70 opt_L_smp= ( opt.find ( "logsamples" ) !=string::npos ); 67 71 } 68 72 void bayes ( const vec &dt ); … … 78 82 79 83 template<class BM_T> 80 81 84 class MPF : public PF { 82 BM_T* Bms[10000];85 Array<BM_T*> BMs; 83 86 84 87 //! internal class for MPDF providing composition of eEmp with external components … … 94 97 Coms ( _w.length() ) { 95 98 }; 99 //! read statistics from MPF 100 void read_statistics ( Array<BM_T*> &A ) { 101 dim = E.dimension() +A ( 0 )->posterior().dimension(); 102 for ( int i=0; i<_w.length() ;i++ ) {Coms ( i ) = A ( i )->_e();} 103 } 104 //! needed in resampling 96 105 void set_elements ( int &i, double wi, const epdf* ep ) 97 106 {_w ( i ) =wi; Coms ( i ) =ep;}; 98 107 99 void set_n ( int n ) {E.set_n ( n ); Coms.set_length ( n );} 108 void set_parameters ( int n ) { 109 E.set_parameters ( n, false ); 110 Coms.set_length ( n ); 111 } 100 112 vec mean() const { 101 113 // ugly … … 114 126 return concat ( E.variance(),pom2-pow ( pom,2 ) ); 115 127 } 128 void qbounds ( vec &lb, vec &ub, double perc=0.95 ) const { 129 //bounds on particles 130 vec lbp; 131 vec ubp; 132 E.qbounds ( lbp,ubp ); 133 134 //bounds on Components 135 int dimC=Coms ( 0 )->dimension(); 136 int j; 137 // temporary 138 vec lbc(dimC); 139 vec ubc(dimC); 140 // minima and maxima 141 vec Lbc(dimC); 142 vec Ubc(dimC); 143 Lbc = std::numeric_limits<double>::infinity(); 144 Ubc = -std::numeric_limits<double>::infinity(); 145 146 for ( int i=0;i<_w.length();i++ ) { 147 // check Coms 148 Coms ( i )->qbounds ( lbc,ubc ); 149 for ( j=0;j<dimC; j++ ) { 150 if ( lbc ( j ) <Lbc ( j ) ) {Lbc ( j ) =lbc ( j );} 151 if ( ubc ( j ) >Ubc ( j ) ) {Ubc ( j ) =ubc ( j );} 152 } 153 } 154 lb=concat(lbp,Lbc); 155 ub=concat(ubp,Ubc); 156 } 116 157 117 158 vec sample() const {it_error ( "Not implemented" );return 0;} … … 125 166 //! Log means of BMs 126 167 bool opt_L_mea; 127 168 128 169 public: 129 170 //! Default constructor. 130 MPF ( mpdf *par0, mpdf *obs0, int n, const BM_T &BMcond0 ) : PF (), jest ( est ) { 131 PF::set_parameters ( par0,obs0,n ); 132 jest.set_n ( n ); 133 // 134 //TODO test if rv and BMcond.rv are compatible. 135 // rv.add ( rvlin ); 136 // 137 138 if ( n>10000 ) {it_error ( "increase 10000 here!" );} 139 140 for ( int i=0;i<n;i++ ) { 141 Bms[i] = new BM_T ( BMcond0 ); //copy constructor 142 const epdf& pom=Bms[i]->posterior(); 143 jest.set_elements ( i,1.0/n,&pom ); 144 } 171 MPF () : PF (), jest ( est ) {}; 172 void set_parameters ( mpdf *par0, mpdf *obs0, int n0, RESAMPLING_METHOD rm=SYSTEMATIC ) { 173 PF::set_parameters ( par0, obs0, n0, rm ); 174 jest.set_parameters ( n0 );//duplication of rm 175 BMs.set_length ( n0 ); 176 } 177 void set_statistics ( epdf *epdf0, const BM_T* BMcond0 ) { 178 179 PF::set_statistics ( ones ( n ) /n, epdf0 ); 180 // copy 181 for ( int i=0;i<n;i++ ) { BMs ( i ) = new BM_T ( *BMcond0 ); BMs ( i )->condition ( _samples ( i ) );} 182 183 jest.read_statistics ( BMs ); 184 //options 145 185 }; 146 147 ~MPF() {148 }149 186 150 187 void bayes ( const vec &dt ); 151 188 const epdf& posterior() const {return jest;} 152 189 const epdf* _e() const {return &jest;} //Fixme: is it useful? 153 //! Set postrior of \c rvc to samples from epdf0. Statistics of B ms are not re-computed! Use only for initialization!154 void set_est ( const epdf& epdf0 ) {155 PF::set_est ( epdf0 ); // sample params in condition156 // copy conditions to BMs157 158 for ( int i=0;i<n;i++ ) {Bms[i]->condition ( _samples ( i ) );}159 }160 void set_options (const string &opt){161 PF: set_options(opt);162 opt_L_mea = ( s.find ( "logmeans" ) !=string::npos );163 } 164 190 //! Set postrior of \c rvc to samples from epdf0. Statistics of BMs are not re-computed! Use only for initialization! 191 /* void set_est ( const epdf& epdf0 ) { 192 PF::set_est ( epdf0 ); // sample params in condition 193 // copy conditions to BMs 194 195 for ( int i=0;i<n;i++ ) {BMs(i)->condition ( _samples ( i ) );} 196 }*/ 197 void set_options ( const string &opt ) { 198 PF::set_options ( opt ); 199 opt_L_mea = ( opt.find ( "logmeans" ) !=string::npos ); 200 } 201 165 202 //!Access function 166 BM* _BM ( int i ) {return B ms[i];}203 BM* _BM ( int i ) {return BMs ( i );} 167 204 }; 168 205 … … 180 217 _samples ( i ) = par->samplecond ( _samples ( i ) ); 181 218 llsP ( i ) = par->_e()->evallog ( _samples ( i ) ); 182 B ms[i]->condition ( _samples ( i ) );183 B ms[i]->bayes ( dt );184 lls ( i ) = B ms[i]->_ll(); // lls above is also in proposal her must be lls(i) =, not +=!!219 BMs ( i )->condition ( _samples ( i ) ); 220 BMs ( i )->bayes ( dt ); 221 lls ( i ) = BMs ( i )->_ll(); // lls above is also in proposal her must be lls(i) =, not +=!! 185 222 if ( lls ( i ) >mlls ) mlls=lls ( i ); //find maximum likelihood (for numerical stability) 186 223 } … … 204 241 double eff = 1.0/ ( _w*_w ); 205 242 if ( eff < ( 0.3*n ) ) { 206 ind = est.resample ();243 ind = est.resample ( resmethod ); 207 244 // Resample Bms! 208 245 … … 215 252 // poor-man's solution: replicate constructor here 216 253 // copied from MPF::MPF 217 delete B ms[i];218 B ms[i] = new BM_T ( *Bms[ind ( i ) ]); //copy constructor219 const epdf& pom=B ms[i]->posterior();254 delete BMs ( i ); 255 BMs ( i ) = new BM_T ( *BMs ( ind ( i ) ) ); //copy constructor 256 const epdf& pom=BMs ( i )->posterior(); 220 257 jest.set_elements ( i,1.0/n,&pom ); 221 258 } -
bdm/estim/merger.cpp
r278 r283 33 33 it_assert_debug ( rv.equal ( g0->_rv() ),"Incompatible g0" ); 34 34 //Empirical density - samples 35 eSmp.set_ parameters ( ones ( Ns ), g0 );35 eSmp.set_statistics ( ones ( Ns ), g0 ); 36 36 Array<vec> &Smp = eSmp._samples(); //aux 37 37 vec &w = eSmp._w(); //aux -
bdm/estim/merger.h
r278 r283 71 71 } 72 72 //! Set internal parameters used in approximation 73 void set_parameters ( double beta0, int Ns0, int Nc0 ) {beta=beta0;Ns=Ns0;Nc=Nc0;eSmp.set_ n(Ns0,false);}73 void set_parameters ( double beta0, int Ns0, int Nc0 ) {beta=beta0;Ns=Ns0;Nc=Nc0;eSmp.set_parameters(Ns0,false);} 74 74 //!Initialize the proposal density. This function must be called before merge()! 75 75 void init() { ////////////// NOT FINISHED -
bdm/stat/libBM.h
r281 r283 126 126 int length() const {return len;} ; 127 127 int id ( int at ) const{return ids ( at );}; 128 int size ( int at ) const {return RV_SIZES ( ids (at) );};128 int size ( int at ) const {return RV_SIZES ( ids ( at ) );}; 129 129 int time ( int at ) const{return times ( at );}; 130 std::string name ( int at ) const {return RV_NAMES ( ids (at) );};130 std::string name ( int at ) const {return RV_NAMES ( ids ( at ) );}; 131 131 void set_time ( int at, int time0 ) {times ( at ) =time0;}; 132 132 //!@} … … 204 204 205 205 //! access function 206 int _dimy() const{return dimy;}206 int dimension() const{return dimy;} 207 207 }; 208 208 … … 259 259 //! return expected variance (not covariance!) 260 260 virtual vec variance() const {it_error ( "not implemneted" );return vec ( 0 );}; 261 //! Lower and upper bounds of \c percentage % quantile, returns mean-2*sigma as default 262 virtual void qbounds ( vec &lb, vec &ub, double percentage=0.95 ) const { 263 vec mea=mean(); vec std=sqrt(variance()); 264 lb = mea-2*std; ub=mea+2*std; 265 }; 261 266 //!@} 262 267 … … 592 597 /*! \brief Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities. 593 598 599 This object represents exact or approximate evaluation of the Bayes rule: 600 \f[ 601 f(\theta_t | d_1,\ldots,d_t) = \frac{f(y_t|\theta_t,\cdot) f(\theta_t|d_1,\ldots,d_{t-1})}{f(y_t|d_1,\ldots,d_{t-1})} 602 \f] 603 604 Access to the resulting posterior density is via function \c posterior(). 605 606 As a "side-effect" it also evaluates log-likelihood of the data, which can be accessed via function _ll(). 607 It can also evaluate predictors of future values of \f$y_t\f$, see functions epredictor() and predictor(). 608 609 Alternatively, it can evaluate posterior density conditioned by a known constant, \f$ c_t \f$: 610 \f[ 611 f(\theta_t | c_t, d_1,\ldots,d_t) \propto f(y_t,\theta_t|c_t,\cdot, d_1,\ldots,d_{t-1}) 612 \f] 613 614 The value of \f$ c_t \f$ is set by function condition(). 615 594 616 */ 595 617 … … 606 628 //! @{ 607 629 608 BM () :ll ( 0 ),evalll ( true ) {};630 BM () :ll ( 0 ),evalll ( true ), LIDs ( 3 ), opt_L_bounds ( false ) {}; 609 631 BM ( const BM &B ) : drv ( B.drv ), ll ( B.ll ), evalll ( B.evalll ) {} 610 632 //! Copy function required in vectors, Arrays of BM etc. Have to be DELETED manually! 611 //! Prototype: \code BM* _copy_() {return new BM(*this);} \endcode612 virtual BM* _copy_ () {return NULL;};633 //! Prototype: \code BM* _copy_() const {return new BM(*this);} \endcode 634 virtual BM* _copy_ () const {return NULL;}; 613 635 //!@} 614 636 … … 634 656 //!@} 635 657 658 //! \name Extension to conditional BM 659 //! This extension is useful e.g. in Marginalized Particle Filter (\ref bdm::MPF). 660 //! Alternatively, it can be used for automated connection to DS when the condition is observed 661 //!@{ 662 663 //! Name of extension variable 664 RV rvc; 665 //! access function 666 const RV& _rvc() const {return rvc;} 667 668 //! Substitute \c val for \c rvc. 669 virtual void condition ( const vec &val ) {it_error ( "Not implemented!" );}; 670 671 //!@} 672 673 636 674 //! \name Access to attributes 637 675 //!@{ … … 646 684 //!@} 647 685 648 }; 649 650 /*! 651 \brief Conditional Bayesian Filter 652 653 Evaluates conditional filtering density \f$f(rv|rvc,data)\f$ for a given \c rvc which is specified in each step by calling function \c condition. 654 655 This is an interface class used to assure that certain BM has operation \c condition . 656 657 */ 658 659 class BMcond :public bdmroot { 660 protected: 661 //!dimension of the conditioning variable 662 int dimc; 663 //! Identificator of the conditioning variable 664 RV rvc; 665 public: 666 //! Substitute \c val for \c rvc. 667 virtual void condition ( const vec &val ) =0; 668 //! Default constructor 669 BMcond ( ) :rvc ( ) {}; 670 //! Destructor for future use 671 virtual ~BMcond() {}; 672 //! access function 673 const RV& _rvc() const {return rvc;} 686 //! \name Logging of results 687 //!@{ 688 689 //! Set boolean options from a string 690 void set_options ( const string &opt ) { 691 opt_L_bounds= ( opt.find ( "logbounds" ) !=string::npos ); 692 } 693 //! IDs of storages in loggers 694 ivec LIDs; 695 696 //! Option for logging bounds 697 bool opt_L_bounds; 698 //! Add all logged variables to a logger 699 void log_add ( logger *L, const string &name="" ) { 700 // internal 701 RV r; 702 if ( posterior().isnamed() ) {r=posterior()._rv();} 703 else{r=RV ( "est", posterior().dimension() );}; 704 705 // Add mean value 706 LIDs ( 0 ) =L->add ( r,name ); 707 if ( opt_L_bounds ) { 708 LIDs ( 1 ) =L->add ( r,name+"_lb" ); 709 LIDs ( 2 ) =L->add ( r,name+"_ub" ); 710 } 711 } 712 void logit ( logger *L ) { 713 L->logit ( LIDs ( 0 ), posterior().mean() ); 714 if ( opt_L_bounds ) { 715 vec ub,lb; 716 posterior().qbounds(lb,ub); 717 L->logit ( LIDs ( 1 ), lb ); 718 L->logit ( LIDs ( 2 ), ub ); 719 } 720 } 721 //!@} 674 722 }; 675 723 -
bdm/stat/libDS.h
r271 r283 28 28 */ 29 29 class MemDS : public DS { 30 protected: 30 31 //! internal matrix of data 31 32 mat Data; … … 45 46 void step(); 46 47 //!Default constructor 48 MemDS () {}; 47 49 MemDS ( mat &Dat, ivec &rowid, ivec &delays ); 50 }; 51 52 /*! Read Data Matrix from an IT file 53 54 */ 55 class FileDS: public MemDS { 56 57 public: 58 FileDS ( const string &fname, const string &varname ) :MemDS() { 59 it_file it ( fname ); 60 it << Name ( varname ); 61 it >> Data; 62 time =0; 63 //rowid and delays are ignored 64 } 65 void getdata ( vec &dt ) { 66 it_assert_debug ( dt.length() ==Data.rows(),"" ); 67 dt = Data.get_col(time); 68 }; 69 void getdata ( vec &dt, const ivec &indeces ){ 70 it_assert_debug ( dt.length() ==indeces.length(),"" ); 71 vec tmp(indeces.length()); 72 tmp = Data.get_col(time); 73 dt = tmp(indeces); 74 }; 75 //! returns number of data in the file; 76 int ndat(){return Data.cols();} 48 77 }; 49 78 … … 96 125 { model.set_parameters ( Th0, mu0, sqR0 );}; 97 126 //! Set 98 void set_drv (RV &yrv, RV &urv, RV &rrv){127 void set_drv ( RV &yrv, RV &urv, RV &rrv ) { 99 128 Rrv = rrv; 100 129 Urv = urv; 101 dt_size = yrv._dsize() +urv._dsize();102 103 RV drv = concat (yrv,urv);130 dt_size = yrv._dsize() +urv._dsize(); 131 132 RV drv = concat ( yrv,urv ); 104 133 Drv = drv; 105 134 int td = rrv.mint(); 106 H.set_size (drv._dsize()*(-td+1));107 U.set_size (Urv._dsize());108 for ( int i=-1;i>=td;i--){109 drv.t (-1);110 Drv.add (drv); //shift u1135 H.set_size ( drv._dsize() * ( -td+1 ) ); 136 U.set_size ( Urv._dsize() ); 137 for ( int i=-1;i>=td;i-- ) { 138 drv.t ( -1 ); 139 Drv.add ( drv ); //shift u1 111 140 } 112 rgrlnk.set_connection (rrv,Drv);113 141 rgrlnk.set_connection ( rrv,Drv ); 142 114 143 dtsize = Drv._dsize(); 115 144 utsize = Urv._dsize(); … … 121 150 virtual void log_add ( logger &L ) { 122 151 //DS::log_add ( L ); too long!! 123 L_dt=L.add ( Drv (0,dt_size),"" );152 L_dt=L.add ( Drv ( 0,dt_size ),"" ); 124 153 L_ut=L.add ( Urv,"" ); 125 154 … … 131 160 virtual void logit ( logger &L ) { 132 161 //DS::logit ( L ); 133 L.logit ( L_dt, H.left(dt_size));134 L.logit (L_ut, U);135 162 L.logit ( L_dt, H.left ( dt_size ) ); 163 L.logit ( L_ut, U ); 164 136 165 mat &A =model._A(); 137 166 mat R =model._R(); -
bdm/stat/libEF.cpp
r281 r283 183 183 }; 184 184 185 ivec eEmp::resample ( RESAMPLING_METHOD method) {185 ivec eEmp::resample (RESAMPLING_METHOD method) { 186 186 ivec ind=zeros_i ( n ); 187 187 ivec N_babies = zeros_i ( n ); … … 268 268 } 269 269 270 void eEmp::set_ parameters ( const vec &w0, const epdf* epdf0 ) {270 void eEmp::set_statistics ( const vec &w0, const epdf* epdf0 ) { 271 271 //it_assert_debug(rv==epdf0->rv(),"Wrong epdf0"); 272 272 dim = epdf0->dimension(); -
bdm/stat/libEF.h
r281 r283 94 94 // virtual void flatten ( double nu0 ) {it_error ( "Not implemented" );} 95 95 96 BMEF* _copy_ ( bool changerv=false ) {it_error ( "function _copy_ not implemented for this BM" ); return NULL;};96 BMEF* _copy_ ( bool changerv=false ) const {it_error ( "function _copy_ not implemented for this BM" ); return NULL;}; 97 97 }; 98 98 … … 348 348 \f] 349 349 350 Vector \f$\beta\f$ has different meaning (in fact it is 1/beta as used in definition of iG) 351 350 352 Inverse Gamma can be converted to Gamma using \f[ 351 353 x\sim iG(a,b) => 1/x\sim G(a,1/b) … … 354 356 */ 355 357 356 class eigamma : public eEF { 357 protected: 358 //!internal egamma 359 egamma eg; 360 //! Vector \f$\alpha\f$ 361 vec α 362 //! Vector \f$\beta\f$ (in fact it is 1/beta as used in definition of iG) 363 vec β 358 class eigamma : public egamma { 359 protected: 364 360 public : 365 361 //! \name Constructors 366 //!@{ 367 eigamma ( ) :eEF ( ), eg(),alpha ( eg._alpha() ), beta ( eg._beta() ) {}; 368 eigamma ( const vec &a, const vec &b ) :eEF ( ), eg(),alpha ( eg._alpha() ), beta ( eg._beta() ) {eg.set_parameters ( a,b );}; 369 void set_parameters ( const vec &a, const vec &b ) {eg.set_parameters ( a,b );}; 370 //!@} 371 372 vec sample() const {return 1.0/eg.sample();}; 373 //! TODO: is it used anywhere? 374 // mat sample ( int N ) const; 375 double evallog ( const vec &val ) const {return eg.evallog ( val );}; 376 double lognc () const {return eg.lognc();}; 362 //! All constructors are inherited 363 //!@{ 364 //!@} 365 366 vec sample() const {return 1.0/egamma::sample();}; 377 367 //! Returns poiter to alpha and beta. Potentially dangerous: use with care! 378 368 vec mean() const {return elem_div ( beta,alpha-1 );} 379 369 vec variance() const {vec mea=mean(); return elem_div ( elem_mult ( mea,mea ),alpha-2 );} 380 vec& _alpha() {return alpha;}381 vec& _beta() {return beta;}382 370 }; 383 371 /* … … 490 478 mgnorm() :mu ( epdf._mu() ) {ep=&epdf;} 491 479 //!set mean function 492 void set_parameters ( fnc* g0, const sq_T &R0 ) {g=g0; epdf.set_parameters ( zeros ( g-> _dimy() ), R0 );}480 void set_parameters ( fnc* g0, const sq_T &R0 ) {g=g0; epdf.set_parameters ( zeros ( g->dimension() ), R0 );} 493 481 void condition ( const vec &cond ) {mu=g->eval ( cond );}; 494 482 }; … … 686 674 687 675 //! Set samples and weights 688 void set_parameters ( const vec &w0, const epdf* pdf0 ); 676 void set_statistics ( const vec &w0, const epdf* pdf0 ); 677 //! Set samples and weights 678 void set_statistics ( const epdf* pdf0 , int n ) {set_statistics ( ones ( n ) /n,pdf0 );}; 689 679 //! Set sample 690 680 void set_samples ( const epdf* pdf0 ); 691 681 //! Set sample 692 void set_ n( int n0, bool copy=true ) {n=n0; w.set_size ( n0,copy );samples.set_size ( n0,copy );};682 void set_parameters ( int n0, bool copy=true ) {n=n0; w.set_size ( n0,copy );samples.set_size ( n0,copy );}; 693 683 //! Potentially dangerous, use with care. 694 684 vec& _w() {return w;}; … … 700 690 const Array<vec>& _samples() const {return samples;}; 701 691 //! Function performs resampling, i.e. removal of low-weight samples and duplication of high-weight samples such that the new samples represent the same density. 702 ivec resample ( RESAMPLING_METHOD method =SYSTEMATIC );692 ivec resample ( RESAMPLING_METHOD method=SYSTEMATIC ); 703 693 //! inherited operation : NOT implemneted 704 694 vec sample() const {it_error ( "Not implemented" );return 0;} … … 714 704 for ( int i=0;i<n;i++ ) {pom+=pow ( samples ( i ),2 ) *w ( i );} 715 705 return pom-pow ( mean(),2 ); 706 } 707 //! For this class, qbounds are minimum and maximum value of the population! 708 void qbounds ( vec &lb, vec &ub, double perc=0.95 ) const { 709 // lb in inf so than it will be pushed below; 710 lb.set_size(dim); 711 ub.set_size(dim); 712 lb = std::numeric_limits<double>::infinity(); 713 ub = -std::numeric_limits<double>::infinity(); 714 int j; 715 for ( int i=0;i<n;i++ ) { 716 for ( j=0;j<dim; j++ ) { 717 if ( samples ( i ) ( j ) <lb ( j ) ) {lb ( j ) =samples ( i ) ( j );} 718 if ( samples ( i ) ( j ) >ub ( j ) ) {ub ( j ) =samples ( i ) ( j );} 719 } 720 } 716 721 } 717 722 }; -
doprava/k1.cpp
r278 r283 12 12 13 13 14 #include <stat/libFN.h>15 14 #include <estim/ekf_templ.h> 16 #include <stat/loggers.h> 15 #include <stat/loggers_ui.h> 16 #include <stat/libDS_ui.h> 17 17 18 18 //include dopravni model … … 21 21 using namespace bdm; 22 22 23 int main() { 24 // Pocet dat 25 int Ndat = 900; 26 27 // Objekt pro ukladani vysledku 28 memlog L(Ndat); 29 23 int main( int argc, char* argv[] ) { 24 /* const char *fname; 25 if ( argc>1 ) {fname = argv[1]; } 26 else { fname = "k1.cfg"; } 27 UIFile F ( fname ); //protected by exceptions, should complain if not found*/ 28 29 FileDS DS("data.it","Data"); // Data Source 30 int ndat = DS.ndat(); // number of data 31 memlog L(ndat); // Logger 32 string resfile="k1_results.it"; // name of output file 33 vec dQ="0.1 0.1"; 34 vec dR="0.2 0.2"; // TODO: read from config file <== broken on windows 35 30 36 //model vyvoje stavu 31 37 IMk1 fxu; … … 37 43 38 44 // ESTIMATOR --- EKF 39 vec mu0= "0.0 0.0 0.0 0.0";40 45 // Priprava covariancnich matic pro EKF 41 vec Qdiag ( "1.0 10. 10 10" ); 42 vec Rdiag ( "1 1" ); //var(diff(xth)) = "0.034 0.034" 43 mat Q =diag( Qdiag ); 44 mat R =diag ( Rdiag ); 45 EKFfull Efix ( RVstav,RVpozor,RVut ); 46 // pocatecni podminky 47 Efix.set_est ( mu0, 1*eye ( 4 ) ); // nulova 48 // nastaveni modelu pro EKF 49 Efix.set_parameters ( &fxu,&hxu,Q,R); 46 EKFCh Efix; //Extended KF s fix. variancemi 47 Efix.set_parameters ( &fxu,&hxu,diag(dQ),diag(dR)); 48 Efix.set_statistics ( zeros(fxu.dimension()), 100*eye ( fxu.dimension() ) ); // nulova 50 49 51 int L_xt = L.add(RVstav, "xt"); // Tady se rika jak velky vektor (pomoci obj. RV) se bude logovat 52 // A jak se bude jsmenovat vysledek 53 int L_ut = L.add(RVut, "ut"); // Tady se rika jak velky vektor (pomoci obj. RV) se bude logovat 54 // A jak se bude jsmenovat vysledek 55 int L_mean = L.add(RVstav, "odh_xt"); // Tady se rika jak velky vektor (pomoci obj. RV) se bude logovat 56 // A jak se bude jsmenovat vysledek 57 50 // Definovat co se bude logovat 51 Efix.log_add(&L,"E"); 58 52 L.init(); // <<==== allocate memory for results 59 // Priprava poli pro simulaci 60 vec ut(RVut.count()); 61 vec xt(RVstav.count()); 62 vec dt(RVpozor.count()); 63 // minuly stav 64 vec xtm=zeros(RVstav.count()); // nulovy pocatecni stav 65 for ( int t=1;t<Ndat;t++ ) { 66 // Nastaveni vstupu 67 ut(0) = 1+sin((double)t/10); // V ut jsou same jednicky 68 ut(1) = 1+cos((double)t/10); // V ut jsou same jednicky 69 70 // Generovani DAT modelem 71 xt = fxu.eval(xtm,ut); 72 dt = hxu.eval(xt,ut); 73 xtm = xt; //save xt for the next step 74 75 //ESTIMATE 76 Efix.bayes(concat(dt,ut)); 53 54 vec dt; 55 for ( int t=1;t<ndat;t++ ) { 56 DS.getdata(dt); // dt is allocated 57 Efix.bayes(dt); //ESTIMATE 77 58 78 59 //LOG results 79 L.logit(L_mean, Efix.posterior().mean() ); 80 L.logit(L_xt, xt ); 81 L.logit(L_ut, ut ); 60 Efix.logit(&L); 82 61 83 62 L.step(); 63 DS.step(); 84 64 } 85 65 L.finalize(); 86 L.itsave( "k1.it");66 L.itsave(resfile.c_str()); 87 67 return 0; 88 68 } -
doprava/model.h
r278 r283 5 5 6 6 using namespace bdm; 7 8 //Tady se naplni "popis" jednotlivych nahodnych velicin na kterych se pracuje9 // Moznosti je velmi mnoho (viz doc/html/index.html): napriklad10 RV RVstav ( "{stav }", "4"); // Vyrabim stav velikosti 411 RV RVut ( "{ut }", "2"); // Vstup velikosti 212 RV RVpozor ( "{I1 O1 }"); //Vystup je intenzita a obsazenost13 7 14 8 //! Model stredni hodnoty vyvoje stavu pro k1 … … 19 13 public: 20 14 //! Constructor 21 IMk1() :diffbifn ( RVstav.count(), RVstav, RVut ) {};15 IMk1() :diffbifn () {dimy=4; dimx=3; dimu=1;}; 22 16 //! set CONSTANT parameters 23 17 void set_parameters ( double alp10, double alp20) {alp1=alp10; alp2=alp20;} … … 25 19 vec eval ( const vec &x0, const vec &u0 ) { 26 20 // napln stav nulami 27 vec xk=zeros ( RVstav.count());21 vec xk=zeros ( dimy ); 28 22 29 23 xk ( 0 ) = 0.2* x0(1) - 0.1* x0(2)+ u0(0); // vycucane z prstu … … 39 33 40 34 if (full) { // priznak full se nastavi na zacatku => je treba naplnit celou matici 41 A = eye( RVstav.count());35 A = eye(dimy); 42 36 A(0,1) = 0.2; 43 37 A(0,2) = -0.1; … … 54 48 public: 55 49 //! Constructor 56 OMk1() :diffbifn ( RVpozor.count(), RVstav, RVut ) {};50 OMk1() :diffbifn ( ) {dimy=2;dimx=3;dimu=2;}; //<======= TODO 57 51 // Model pozorovani je trivialni jen se zkopiruji stavy 58 52 vec eval(const vec &x0, const vec &u0 ){ 59 vec dt( RVpozor.count());53 vec dt(dimy); 60 54 // Pozoruji pouze prvni dva stavy 61 55 dt(0) = x0(0); … … 68 62 69 63 if (full) { // priznak full se nastavi na zacatku => je treba naplnit celou matici 70 A = zeros( RVpozor.count(),RVstav.count());64 A = zeros(dimy,dimx); 71 65 A(0,0)=1.0; 72 66 A(1,1)=1.0; -
pmsm/TR2245/exp/unitstep.kst
r281 r283 8 8 <graphicsautosave time="1" enabled="false" format="PNG" xsize="600" ysize="480" display="1" square="true" /> 9 9 <kstfile> 10 <tag>DS- mpf_test</tag>10 <tag>DS-unitstep</tag> 11 11 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 12 12 <type>Directory of Binary Files</type> … … 15 15 <tag>P1/XMin</tag> 16 16 <orphan/> 17 <value> 0</value>17 <value>2926.358392435</value> 18 18 </scalar> 19 19 <scalar> 20 20 <tag>P1/XMax</tag> 21 21 <orphan/> 22 <value> 8996</value>22 <value>3606.906855792</value> 23 23 </scalar> 24 24 <scalar> 25 25 <tag>P1/YMin</tag> 26 26 <orphan/> 27 <value>- 4.5157036326817</value>27 <value>-0.048334607484026</value> 28 28 </scalar> 29 29 <scalar> 30 30 <tag>P1/YMax</tag> 31 31 <orphan/> 32 <value> 7.1059942008359</value>32 <value>0.51400228173259</value> 33 33 </scalar> 34 34 <scalar> 35 35 <tag>P2/XMin</tag> 36 36 <orphan/> 37 <value> 0</value>37 <value>2926.358392435</value> 38 38 </scalar> 39 39 <scalar> 40 40 <tag>P2/XMax</tag> 41 41 <orphan/> 42 <value> 8996</value>42 <value>3606.906855792</value> 43 43 </scalar> 44 44 <scalar> 45 45 <tag>P2/YMin</tag> 46 46 <orphan/> 47 <value>- 8.7889029972173</value>47 <value>-0.39028880388336</value> 48 48 </scalar> 49 49 <scalar> 50 50 <tag>P2/YMax</tag> 51 51 <orphan/> 52 <value> 2.9406777090262</value>52 <value>0.28756055295362</value> 53 53 </scalar> 54 54 <scalar> 55 55 <tag>P3/XMin</tag> 56 56 <orphan/> 57 <value> 0</value>57 <value>2926.358392435</value> 58 58 </scalar> 59 59 <scalar> 60 60 <tag>P3/XMax</tag> 61 61 <orphan/> 62 <value> 8996</value>62 <value>3606.906855792</value> 63 63 </scalar> 64 64 <scalar> 65 65 <tag>P3/YMin</tag> 66 66 <orphan/> 67 <value> -9.9507440023583</value>67 <value>2.9364401415802</value> 68 68 </scalar> 69 69 <scalar> 70 70 <tag>P3/YMax</tag> 71 71 <orphan/> 72 <value> 10.112057855496</value>72 <value>6.8935369383091</value> 73 73 </scalar> 74 74 <scalar> 75 75 <tag>P4/XMin</tag> 76 76 <orphan/> 77 <value> 0</value>77 <value>2926.358392435</value> 78 78 </scalar> 79 79 <scalar> 80 80 <tag>P4/XMax</tag> 81 81 <orphan/> 82 <value> 8996</value>82 <value>3606.906855792</value> 83 83 </scalar> 84 84 <scalar> 85 85 <tag>P4/YMin</tag> 86 86 <orphan/> 87 <value> -3.2349482477224</value>87 <value>1.3025848670891</value> 88 88 </scalar> 89 89 <scalar> 90 90 <tag>P4/YMax</tag> 91 91 <orphan/> 92 <value>1. 950493542042</value>92 <value>1.8398220026564</value> 93 93 </scalar> 94 94 <scalar> 95 95 <tag>P5/XMin</tag> 96 96 <orphan/> 97 <value> 0</value>97 <value>2926.358392435</value> 98 98 </scalar> 99 99 <scalar> 100 100 <tag>P5/XMax</tag> 101 101 <orphan/> 102 <value> 8996</value>102 <value>3606.906855792</value> 103 103 </scalar> 104 104 <scalar> 105 105 <tag>P5/YMin</tag> 106 106 <orphan/> 107 <value>- 4.5157024034826</value>107 <value>-0.04833941248617</value> 108 108 </scalar> 109 109 <scalar> 110 110 <tag>P5/YMax</tag> 111 111 <orphan/> 112 <value> 7.1060502918641</value>112 <value>0.51402942484196</value> 113 113 </scalar> 114 114 <scalar> 115 115 <tag>P6/XMin</tag> 116 116 <orphan/> 117 <value> 0</value>117 <value>2926.358392435</value> 118 118 </scalar> 119 119 <scalar> 120 120 <tag>P6/XMax</tag> 121 121 <orphan/> 122 <value> 8996</value>122 <value>3606.906855792</value> 123 123 </scalar> 124 124 <scalar> 125 125 <tag>P6/YMin</tag> 126 126 <orphan/> 127 <value>- 8.7889142376003</value>127 <value>-0.3902866183156</value> 128 128 </scalar> 129 129 <scalar> 130 130 <tag>P6/YMax</tag> 131 131 <orphan/> 132 <value> 2.940623098786</value>132 <value>0.2875552509328</value> 133 133 </scalar> 134 134 <scalar> 135 135 <tag>P7/XMin</tag> 136 136 <orphan/> 137 <value> 0</value>137 <value>2926.358392435</value> 138 138 </scalar> 139 139 <scalar> 140 140 <tag>P7/XMax</tag> 141 141 <orphan/> 142 <value> 8996</value>142 <value>3606.906855792</value> 143 143 </scalar> 144 144 <scalar> 145 145 <tag>P7/YMin</tag> 146 146 <orphan/> 147 <value> -9.9423377081818</value>147 <value>2.8955198144056</value> 148 148 </scalar> 149 149 <scalar> 150 150 <tag>P7/YMax</tag> 151 151 <orphan/> 152 <value> 10.167729809906</value>152 <value>6.8845837989307</value> 153 153 </scalar> 154 154 <scalar> 155 155 <tag>P8/XMin</tag> 156 156 <orphan/> 157 <value> 0</value>157 <value>2926.358392435</value> 158 158 </scalar> 159 159 <scalar> 160 160 <tag>P8/XMax</tag> 161 161 <orphan/> 162 <value> 8996</value>162 <value>3606.906855792</value> 163 163 </scalar> 164 164 <scalar> 165 165 <tag>P8/YMin</tag> 166 166 <orphan/> 167 <value> -3.1990055876149</value>167 <value>1.3045812312785</value> 168 168 </scalar> 169 169 <scalar> 170 170 <tag>P8/YMax</tag> 171 171 <orphan/> 172 <value> 2.0317543342644</value>172 <value>1.9219107533158</value> 173 173 </scalar> 174 174 <scalar> 175 175 <tag>P9/XMin</tag> 176 176 <orphan/> 177 <value> 0</value>177 <value>2926.358392435</value> 178 178 </scalar> 179 179 <scalar> 180 180 <tag>P9/XMax</tag> 181 181 <orphan/> 182 <value> 8996</value>182 <value>3606.906855792</value> 183 183 </scalar> 184 184 <scalar> 185 185 <tag>P9/YMin</tag> 186 186 <orphan/> 187 <value>- 4.5157373665507</value>187 <value>-0.048337870582494</value> 188 188 </scalar> 189 189 <scalar> 190 190 <tag>P9/YMax</tag> 191 191 <orphan/> 192 <value> 7.1060009663093</value>192 <value>0.51406761152853</value> 193 193 </scalar> 194 194 <scalar> 195 195 <tag>P10/XMin</tag> 196 196 <orphan/> 197 <value> 0</value>197 <value>2926.358392435</value> 198 198 </scalar> 199 199 <scalar> 200 200 <tag>P10/XMax</tag> 201 201 <orphan/> 202 <value> 8996</value>202 <value>3606.906855792</value> 203 203 </scalar> 204 204 <scalar> 205 205 <tag>P10/YMin</tag> 206 206 <orphan/> 207 <value>- 8.7889175939615</value>207 <value>-0.39028810807047</value> 208 208 </scalar> 209 209 <scalar> 210 210 <tag>P10/YMax</tag> 211 211 <orphan/> 212 <value> 2.9407047630982</value>212 <value>0.28761404165682</value> 213 213 </scalar> 214 214 <scalar> 215 215 <tag>P11/XMin</tag> 216 216 <orphan/> 217 <value> 0</value>217 <value>2926.358392435</value> 218 218 </scalar> 219 219 <scalar> 220 220 <tag>P11/XMax</tag> 221 221 <orphan/> 222 <value> 8996</value>222 <value>3606.906855792</value> 223 223 </scalar> 224 224 <scalar> 225 225 <tag>P11/YMin</tag> 226 226 <orphan/> 227 <value> -9.9423985713648</value>227 <value>2.9290394221155</value> 228 228 </scalar> 229 229 <scalar> 230 230 <tag>P11/YMax</tag> 231 231 <orphan/> 232 <value> 10.156071405218</value>232 <value>6.8868281881701</value> 233 233 </scalar> 234 234 <scalar> 235 235 <tag>P12/XMin</tag> 236 236 <orphan/> 237 <value> 0</value>237 <value>2926.358392435</value> 238 238 </scalar> 239 239 <scalar> 240 240 <tag>P12/XMax</tag> 241 241 <orphan/> 242 <value> 8996</value>242 <value>3606.906855792</value> 243 243 </scalar> 244 244 <scalar> 245 245 <tag>P12/YMin</tag> 246 246 <orphan/> 247 <value> -3.2332263813866</value>247 <value>1.3064345453176</value> 248 248 </scalar> 249 249 <scalar> 250 250 <tag>P12/YMax</tag> 251 251 <orphan/> 252 <value>1. 9992572404254</value>252 <value>1.8885338031887</value> 253 253 </scalar> 254 254 <scalar> 255 255 <tag>P13/XMin</tag> 256 256 <orphan/> 257 <value> 0</value>257 <value>2926.358392435</value> 258 258 </scalar> 259 259 <scalar> 260 260 <tag>P13/XMax</tag> 261 261 <orphan/> 262 <value> 8996</value>262 <value>3606.906855792</value> 263 263 </scalar> 264 264 <scalar> 265 265 <tag>P13/YMin</tag> 266 266 <orphan/> 267 <value>- 2.4976711470358e-07</value>267 <value>-5.1884392049895e-08</value> 268 268 </scalar> 269 269 <scalar> 270 270 <tag>P13/YMax</tag> 271 271 <orphan/> 272 <value> 2.093709004069e-05</value>272 <value>7.396627640389e-06</value> 273 273 </scalar> 274 274 <scalar> 275 275 <tag>P14/XMin</tag> 276 276 <orphan/> 277 <value> 0</value>277 <value>2926.358392435</value> 278 278 </scalar> 279 279 <scalar> 280 280 <tag>P14/XMax</tag> 281 281 <orphan/> 282 <value> 8996</value>282 <value>3606.906855792</value> 283 283 </scalar> 284 284 <scalar> 285 285 <tag>P14/YMin</tag> 286 286 <orphan/> 287 <value>- 5.4365964898493e-07</value>287 <value>-2.4282594344782e-06</value> 288 288 </scalar> 289 289 <scalar> 290 290 <tag>P14/YMax</tag> 291 291 <orphan/> 292 <value> 3.2021199309101e-05</value>292 <value>0.00010541853909026</value> 293 293 </scalar> 294 294 <scalar> 295 295 <tag>P15/XMin</tag> 296 296 <orphan/> 297 <value> 0</value>297 <value>2926.358392435</value> 298 298 </scalar> 299 299 <scalar> 300 300 <tag>P15/XMax</tag> 301 301 <orphan/> 302 <value> 8996</value>302 <value>3606.906855792</value> 303 303 </scalar> 304 304 <scalar> 305 305 <tag>P15/YMin</tag> 306 306 <orphan/> 307 <value>-0.000 37357938771325</value>307 <value>-0.00017880685614156</value> 308 308 </scalar> 309 309 <scalar> 310 310 <tag>P15/YMax</tag> 311 311 <orphan/> 312 <value>0.01 812882974232</value>312 <value>0.0107775025083</value> 313 313 </scalar> 314 314 <scalar> 315 315 <tag>P16/XMin</tag> 316 316 <orphan/> 317 <value> 0</value>317 <value>2926.358392435</value> 318 318 </scalar> 319 319 <scalar> 320 320 <tag>P16/XMax</tag> 321 321 <orphan/> 322 <value> 8996</value>322 <value>3606.906855792</value> 323 323 </scalar> 324 324 <scalar> 325 325 <tag>P16/YMin</tag> 326 326 <orphan/> 327 <value>- 0.00015311709117417</value>327 <value>-2.8901098199394e-05</value> 328 328 </scalar> 329 329 <scalar> 330 330 <tag>P16/YMax</tag> 331 331 <orphan/> 332 <value>0.00 66825740776078</value>332 <value>0.0013375207853002</value> 333 333 </scalar> 334 334 <vector> 335 <tag>DS- mpf_test/INDEX</tag>336 <provider>DS- mpf_test</provider>335 <tag>DS-unitstep/INDEX</tag> 336 <provider>DS-unitstep</provider> 337 337 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 338 338 <field>INDEX</field> … … 341 341 </vector> 342 342 <vector> 343 <tag>DS- mpf_test/xt_ia</tag>344 <provider>DS- mpf_test</provider>343 <tag>DS-unitstep/xt_ia</tag> 344 <provider>DS-unitstep</provider> 345 345 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 346 346 <field>xt_ia</field> … … 349 349 </vector> 350 350 <vector> 351 <tag>DS- mpf_test/xt_ib</tag>352 <provider>DS- mpf_test</provider>351 <tag>DS-unitstep/xt_ib</tag> 352 <provider>DS-unitstep</provider> 353 353 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 354 354 <field>xt_ib</field> … … 357 357 </vector> 358 358 <vector> 359 <tag>DS- mpf_test/xt_om</tag>360 <provider>DS- mpf_test</provider>359 <tag>DS-unitstep/xt_om</tag> 360 <provider>DS-unitstep</provider> 361 361 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 362 362 <field>xt_om</field> … … 365 365 </vector> 366 366 <vector> 367 <tag>DS- mpf_test/xt_th</tag>368 <provider>DS- mpf_test</provider>367 <tag>DS-unitstep/xt_th</tag> 368 <provider>DS-unitstep</provider> 369 369 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 370 370 <field>xt_th</field> … … 373 373 </vector> 374 374 <vector> 375 <tag>DS- mpf_test/xtE_ia</tag>376 <provider>DS- mpf_test</provider>375 <tag>DS-unitstep/KF_ia</tag> 376 <provider>DS-unitstep</provider> 377 377 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 378 <field> xtE_ia</field>378 <field>KF_ia</field> 379 379 <start>-1</start> 380 380 <num>89996</num> 381 381 </vector> 382 382 <vector> 383 <tag>DS- mpf_test/xtE_ib</tag>384 <provider>DS- mpf_test</provider>383 <tag>DS-unitstep/KF_ib</tag> 384 <provider>DS-unitstep</provider> 385 385 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 386 <field> xtE_ib</field>386 <field>KF_ib</field> 387 387 <start>-1</start> 388 388 <num>89996</num> 389 389 </vector> 390 390 <vector> 391 <tag>DS- mpf_test/xtE_om</tag>392 <provider>DS- mpf_test</provider>391 <tag>DS-unitstep/KF_om</tag> 392 <provider>DS-unitstep</provider> 393 393 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 394 <field> xtE_om</field>394 <field>KF_om</field> 395 395 <start>-1</start> 396 396 <num>89996</num> 397 397 </vector> 398 398 <vector> 399 <tag>DS- mpf_test/xtE_th</tag>400 <provider>DS- mpf_test</provider>399 <tag>DS-unitstep/KF_th</tag> 400 <provider>DS-unitstep</provider> 401 401 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 402 <field> xtE_th</field>402 <field>KF_th</field> 403 403 <start>-1</start> 404 404 <num>89996</num> 405 405 </vector> 406 406 <vector> 407 <tag>DS- mpf_test/xtM_ia</tag>408 <provider>DS- mpf_test</provider>407 <tag>DS-unitstep/M_ia</tag> 408 <provider>DS-unitstep</provider> 409 409 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 410 <field> xtM_ia</field>410 <field>M_ia</field> 411 411 <start>-1</start> 412 412 <num>89996</num> 413 413 </vector> 414 414 <vector> 415 <tag>DS- mpf_test/xtM_ib</tag>416 <provider>DS- mpf_test</provider>415 <tag>DS-unitstep/M_ib</tag> 416 <provider>DS-unitstep</provider> 417 417 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 418 <field> xtM_ib</field>418 <field>M_ib</field> 419 419 <start>-1</start> 420 420 <num>89996</num> 421 421 </vector> 422 422 <vector> 423 <tag>DS- mpf_test/xtM_om</tag>424 <provider>DS- mpf_test</provider>423 <tag>DS-unitstep/M_om</tag> 424 <provider>DS-unitstep</provider> 425 425 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 426 <field> xtM_om</field>426 <field>M_om</field> 427 427 <start>-1</start> 428 428 <num>89996</num> 429 429 </vector> 430 430 <vector> 431 <tag>DS- mpf_test/xtM_th</tag>432 <provider>DS- mpf_test</provider>431 <tag>DS-unitstep/M_th</tag> 432 <provider>DS-unitstep</provider> 433 433 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 434 <field> xtM_th</field>434 <field>M_th</field> 435 435 <start>-1</start> 436 436 <num>89996</num> 437 437 </vector> 438 438 <vector> 439 <tag>DS- mpf_test/xtM_Q_0</tag>440 <provider>DS- mpf_test</provider>439 <tag>DS-unitstep/M_Q_0</tag> 440 <provider>DS-unitstep</provider> 441 441 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 442 <field> xtM_Q_0</field>442 <field>M_Q_0</field> 443 443 <start>-1</start> 444 444 <num>89996</num> 445 445 </vector> 446 446 <vector> 447 <tag>DS- mpf_test/xtM_Q_1</tag>448 <provider>DS- mpf_test</provider>447 <tag>DS-unitstep/M_Q_1</tag> 448 <provider>DS-unitstep</provider> 449 449 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 450 <field> xtM_Q_1</field>450 <field>M_Q_1</field> 451 451 <start>-1</start> 452 452 <num>89996</num> 453 453 </vector> 454 454 <vector> 455 <tag>DS- mpf_test/xtM_Q_2</tag>456 <provider>DS- mpf_test</provider>455 <tag>DS-unitstep/M_Q_2</tag> 456 <provider>DS-unitstep</provider> 457 457 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 458 <field> xtM_Q_2</field>458 <field>M_Q_2</field> 459 459 <start>-1</start> 460 460 <num>89996</num> 461 461 </vector> 462 462 <vector> 463 <tag>DS- mpf_test/xtM_Q_3</tag>464 <provider>DS- mpf_test</provider>463 <tag>DS-unitstep/M_Q_3</tag> 464 <provider>DS-unitstep</provider> 465 465 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 466 <field> xtM_Q_3</field>466 <field>M_Q_3</field> 467 467 <start>-1</start> 468 468 <num>89996</num> 469 469 </vector> 470 470 <vector> 471 <tag>DS- mpf_test/Q_0</tag>472 <provider>DS- mpf_test</provider>471 <tag>DS-unitstep/Q_0</tag> 472 <provider>DS-unitstep</provider> 473 473 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 474 474 <field>Q_0</field> … … 477 477 </vector> 478 478 <vector> 479 <tag>DS- mpf_test/Q_1</tag>480 <provider>DS- mpf_test</provider>479 <tag>DS-unitstep/Q_1</tag> 480 <provider>DS-unitstep</provider> 481 481 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 482 482 <field>Q_1</field> … … 485 485 </vector> 486 486 <vector> 487 <tag>DS- mpf_test/Q_2</tag>488 <provider>DS- mpf_test</provider>487 <tag>DS-unitstep/Q_2</tag> 488 <provider>DS-unitstep</provider> 489 489 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 490 490 <field>Q_2</field> … … 493 493 </vector> 494 494 <vector> 495 <tag>DS- mpf_test/Q_3</tag>496 <provider>DS- mpf_test</provider>495 <tag>DS-unitstep/Q_3</tag> 496 <provider>DS-unitstep</provider> 497 497 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 498 498 <field>Q_3</field> … … 500 500 <num>89996</num> 501 501 </vector> 502 <vector> 503 <tag>DS-unitstep/M_ub_Q_0</tag> 504 <provider>DS-unitstep</provider> 505 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 506 <field>M_ub_Q_0</field> 507 <start>-1</start> 508 <num>89996</num> 509 </vector> 510 <vector> 511 <tag>DS-unitstep/M_ub_Q_1</tag> 512 <provider>DS-unitstep</provider> 513 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 514 <field>M_ub_Q_1</field> 515 <start>-1</start> 516 <num>89996</num> 517 </vector> 518 <vector> 519 <tag>DS-unitstep/M_ub_Q_2</tag> 520 <provider>DS-unitstep</provider> 521 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 522 <field>M_ub_Q_2</field> 523 <start>-1</start> 524 <num>89996</num> 525 </vector> 526 <vector> 527 <tag>DS-unitstep/M_ub_Q_3</tag> 528 <provider>DS-unitstep</provider> 529 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 530 <field>M_ub_Q_3</field> 531 <start>-1</start> 532 <num>89996</num> 533 </vector> 534 <vector> 535 <tag>DS-unitstep/M_lb_Q_0</tag> 536 <provider>DS-unitstep</provider> 537 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 538 <field>M_lb_Q_0</field> 539 <start>-1</start> 540 <num>89996</num> 541 </vector> 542 <vector> 543 <tag>DS-unitstep/M_lb_Q_1</tag> 544 <provider>DS-unitstep</provider> 545 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 546 <field>M_lb_Q_1</field> 547 <start>-1</start> 548 <num>89996</num> 549 </vector> 550 <vector> 551 <tag>DS-unitstep/M_lb_Q_2</tag> 552 <provider>DS-unitstep</provider> 553 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 554 <field>M_lb_Q_2</field> 555 <start>-1</start> 556 <num>89996</num> 557 </vector> 558 <vector> 559 <tag>DS-unitstep/M_lb_Q_3</tag> 560 <provider>DS-unitstep</provider> 561 <filename>/home/smidl/work/git/mixpp/pmsm/TR2245/exp/unitstep/</filename> 562 <field>M_lb_Q_3</field> 563 <start>-1</start> 564 <num>89996</num> 565 </vector> 502 566 <curve> 503 567 <tag>xt_ia</tag> 504 <xvectag>DS- mpf_test/INDEX</xvectag>505 <yvectag>DS- mpf_test/xt_ia</yvectag>568 <xvectag>DS-unitstep/INDEX</xvectag> 569 <yvectag>DS-unitstep/xt_ia</yvectag> 506 570 <legend></legend> 507 571 <interp>0</interp> … … 517 581 <curve> 518 582 <tag>xt_ib</tag> 519 <xvectag>DS- mpf_test/INDEX</xvectag>520 <yvectag>DS- mpf_test/xt_ib</yvectag>583 <xvectag>DS-unitstep/INDEX</xvectag> 584 <yvectag>DS-unitstep/xt_ib</yvectag> 521 585 <legend></legend> 522 586 <interp>0</interp> … … 532 596 <curve> 533 597 <tag>xt_om</tag> 534 <xvectag>DS- mpf_test/INDEX</xvectag>535 <yvectag>DS- mpf_test/xt_om</yvectag>598 <xvectag>DS-unitstep/INDEX</xvectag> 599 <yvectag>DS-unitstep/xt_om</yvectag> 536 600 <legend></legend> 537 601 <interp>0</interp> … … 547 611 <curve> 548 612 <tag>xt_th</tag> 549 <xvectag>DS- mpf_test/INDEX</xvectag>550 <yvectag>DS- mpf_test/xt_th</yvectag>613 <xvectag>DS-unitstep/INDEX</xvectag> 614 <yvectag>DS-unitstep/xt_th</yvectag> 551 615 <legend></legend> 552 616 <interp>0</interp> … … 561 625 </curve> 562 626 <curve> 563 <tag> xtE_ia</tag>564 <xvectag>DS- mpf_test/INDEX</xvectag>565 <yvectag>DS- mpf_test/xtE_ia</yvectag>627 <tag>KF_ia</tag> 628 <xvectag>DS-unitstep/INDEX</xvectag> 629 <yvectag>DS-unitstep/KF_ia</yvectag> 566 630 <legend></legend> 567 631 <interp>0</interp> … … 576 640 </curve> 577 641 <curve> 578 <tag> xtE_ib</tag>579 <xvectag>DS- mpf_test/INDEX</xvectag>580 <yvectag>DS- mpf_test/xtE_ib</yvectag>642 <tag>KF_ib</tag> 643 <xvectag>DS-unitstep/INDEX</xvectag> 644 <yvectag>DS-unitstep/KF_ib</yvectag> 581 645 <legend></legend> 582 646 <interp>0</interp> … … 591 655 </curve> 592 656 <curve> 593 <tag> xtE_om</tag>594 <xvectag>DS- mpf_test/INDEX</xvectag>595 <yvectag>DS- mpf_test/xtE_om</yvectag>657 <tag>KF_om</tag> 658 <xvectag>DS-unitstep/INDEX</xvectag> 659 <yvectag>DS-unitstep/KF_om</yvectag> 596 660 <legend></legend> 597 661 <interp>0</interp> … … 606 670 </curve> 607 671 <curve> 608 <tag> xtE_th</tag>609 <xvectag>DS- mpf_test/INDEX</xvectag>610 <yvectag>DS- mpf_test/xtE_th</yvectag>672 <tag>KF_th</tag> 673 <xvectag>DS-unitstep/INDEX</xvectag> 674 <yvectag>DS-unitstep/KF_th</yvectag> 611 675 <legend></legend> 612 676 <interp>0</interp> … … 621 685 </curve> 622 686 <curve> 623 <tag> xtM_ia</tag>624 <xvectag>DS- mpf_test/INDEX</xvectag>625 <yvectag>DS- mpf_test/xtM_ia</yvectag>687 <tag>M_ia</tag> 688 <xvectag>DS-unitstep/INDEX</xvectag> 689 <yvectag>DS-unitstep/M_ia</yvectag> 626 690 <legend></legend> 627 691 <interp>0</interp> … … 636 700 </curve> 637 701 <curve> 638 <tag> xtM_ib</tag>639 <xvectag>DS- mpf_test/INDEX</xvectag>640 <yvectag>DS- mpf_test/xtM_ib</yvectag>702 <tag>M_ib</tag> 703 <xvectag>DS-unitstep/INDEX</xvectag> 704 <yvectag>DS-unitstep/M_ib</yvectag> 641 705 <legend></legend> 642 706 <interp>0</interp> … … 651 715 </curve> 652 716 <curve> 653 <tag> xtM_om</tag>654 <xvectag>DS- mpf_test/INDEX</xvectag>655 <yvectag>DS- mpf_test/xtM_om</yvectag>717 <tag>M_om</tag> 718 <xvectag>DS-unitstep/INDEX</xvectag> 719 <yvectag>DS-unitstep/M_om</yvectag> 656 720 <legend></legend> 657 721 <interp>0</interp> … … 666 730 </curve> 667 731 <curve> 668 <tag> xtM_th</tag>669 <xvectag>DS- mpf_test/INDEX</xvectag>670 <yvectag>DS- mpf_test/xtM_th</yvectag>732 <tag>M_th</tag> 733 <xvectag>DS-unitstep/INDEX</xvectag> 734 <yvectag>DS-unitstep/M_th</yvectag> 671 735 <legend></legend> 672 736 <interp>0</interp> … … 681 745 </curve> 682 746 <curve> 683 <tag>xtM_Q_0</tag> 684 <xvectag>DS-mpf_test/INDEX</xvectag> 685 <yvectag>DS-mpf_test/xtM_Q_0</yvectag> 686 <legend></legend> 687 <interp>0</interp> 688 <hasMinus/> 689 <color>#004040</color> 690 <hasLines/> 691 <lineWidth>0</lineWidth> 692 <lineStyle>0</lineStyle> 693 <pointType>0</pointType> 694 <pointDensity>0</pointDensity> 695 <barStyle>0</barStyle> 696 </curve> 697 <curve> 698 <tag>xtM_Q_1</tag> 699 <xvectag>DS-mpf_test/INDEX</xvectag> 700 <yvectag>DS-mpf_test/xtM_Q_1</yvectag> 701 <legend></legend> 702 <interp>0</interp> 703 <hasMinus/> 704 <color>#008080</color> 705 <hasLines/> 706 <lineWidth>0</lineWidth> 707 <lineStyle>0</lineStyle> 708 <pointType>0</pointType> 709 <pointDensity>0</pointDensity> 710 <barStyle>0</barStyle> 711 </curve> 712 <curve> 713 <tag>xtM_Q_2</tag> 714 <xvectag>DS-mpf_test/INDEX</xvectag> 715 <yvectag>DS-mpf_test/xtM_Q_2</yvectag> 716 <legend></legend> 717 <interp>0</interp> 718 <hasMinus/> 719 <color>#00c0c0</color> 720 <hasLines/> 721 <lineWidth>0</lineWidth> 722 <lineStyle>0</lineStyle> 723 <pointType>0</pointType> 724 <pointDensity>0</pointDensity> 725 <barStyle>0</barStyle> 726 </curve> 727 <curve> 728 <tag>xtM_Q_3</tag> 729 <xvectag>DS-mpf_test/INDEX</xvectag> 730 <yvectag>DS-mpf_test/xtM_Q_3</yvectag> 731 <legend></legend> 732 <interp>0</interp> 733 <hasMinus/> 734 <color>#00ffff</color> 735 <hasLines/> 736 <lineWidth>0</lineWidth> 737 <lineStyle>0</lineStyle> 738 <pointType>0</pointType> 739 <pointDensity>0</pointDensity> 740 <barStyle>0</barStyle> 741 </curve> 742 <curve> 743 <tag>Q_0</tag> 744 <xvectag>DS-mpf_test/INDEX</xvectag> 745 <yvectag>DS-mpf_test/Q_0</yvectag> 747 <tag>M_Q_0</tag> 748 <xvectag>DS-unitstep/INDEX</xvectag> 749 <yvectag>DS-unitstep/M_Q_0</yvectag> 746 750 <legend></legend> 747 751 <interp>0</interp> … … 756 760 </curve> 757 761 <curve> 758 <tag> Q_1</tag>759 <xvectag>DS- mpf_test/INDEX</xvectag>760 <yvectag>DS- mpf_test/Q_1</yvectag>762 <tag>M_Q_1</tag> 763 <xvectag>DS-unitstep/INDEX</xvectag> 764 <yvectag>DS-unitstep/M_Q_1</yvectag> 761 765 <legend></legend> 762 766 <interp>0</interp> … … 771 775 </curve> 772 776 <curve> 773 <tag> Q_2</tag>774 <xvectag>DS- mpf_test/INDEX</xvectag>775 <yvectag>DS- mpf_test/Q_2</yvectag>777 <tag>M_Q_2</tag> 778 <xvectag>DS-unitstep/INDEX</xvectag> 779 <yvectag>DS-unitstep/M_Q_2</yvectag> 776 780 <legend></legend> 777 781 <interp>0</interp> … … 786 790 </curve> 787 791 <curve> 788 <tag> Q_3</tag>789 <xvectag>DS- mpf_test/INDEX</xvectag>790 <yvectag>DS- mpf_test/Q_3</yvectag>792 <tag>M_Q_3</tag> 793 <xvectag>DS-unitstep/INDEX</xvectag> 794 <yvectag>DS-unitstep/M_Q_3</yvectag> 791 795 <legend></legend> 792 796 <interp>0</interp> … … 796 800 <lineWidth>0</lineWidth> 797 801 <lineStyle>0</lineStyle> 802 <pointType>0</pointType> 803 <pointDensity>0</pointDensity> 804 <barStyle>0</barStyle> 805 </curve> 806 <curve> 807 <tag>Q_0</tag> 808 <xvectag>DS-unitstep/INDEX</xvectag> 809 <yvectag>DS-unitstep/Q_0</yvectag> 810 <legend></legend> 811 <interp>0</interp> 812 <hasMinus/> 813 <color>#00ff00</color> 814 <hasLines/> 815 <lineWidth>0</lineWidth> 816 <lineStyle>0</lineStyle> 817 <pointType>0</pointType> 818 <pointDensity>0</pointDensity> 819 <barStyle>0</barStyle> 820 </curve> 821 <curve> 822 <tag>Q_1</tag> 823 <xvectag>DS-unitstep/INDEX</xvectag> 824 <yvectag>DS-unitstep/Q_1</yvectag> 825 <legend></legend> 826 <interp>0</interp> 827 <hasMinus/> 828 <color>#000080</color> 829 <hasLines/> 830 <lineWidth>0</lineWidth> 831 <lineStyle>0</lineStyle> 832 <pointType>0</pointType> 833 <pointDensity>0</pointDensity> 834 <barStyle>0</barStyle> 835 </curve> 836 <curve> 837 <tag>Q_2</tag> 838 <xvectag>DS-unitstep/INDEX</xvectag> 839 <yvectag>DS-unitstep/Q_2</yvectag> 840 <legend></legend> 841 <interp>0</interp> 842 <hasMinus/> 843 <color>#0000c0</color> 844 <hasLines/> 845 <lineWidth>0</lineWidth> 846 <lineStyle>0</lineStyle> 847 <pointType>0</pointType> 848 <pointDensity>0</pointDensity> 849 <barStyle>0</barStyle> 850 </curve> 851 <curve> 852 <tag>Q_3</tag> 853 <xvectag>DS-unitstep/INDEX</xvectag> 854 <yvectag>DS-unitstep/Q_3</yvectag> 855 <legend></legend> 856 <interp>0</interp> 857 <hasMinus/> 858 <color>#0000ff</color> 859 <hasLines/> 860 <lineWidth>0</lineWidth> 861 <lineStyle>0</lineStyle> 862 <pointType>0</pointType> 863 <pointDensity>0</pointDensity> 864 <barStyle>0</barStyle> 865 </curve> 866 <curve> 867 <tag>M_ub_Q_0</tag> 868 <xvectag>DS-unitstep/INDEX</xvectag> 869 <yvectag>DS-unitstep/M_ub_Q_0</yvectag> 870 <legend></legend> 871 <interp>0</interp> 872 <hasMinus/> 873 <color>#404000</color> 874 <hasLines/> 875 <lineWidth>0</lineWidth> 876 <lineStyle>2</lineStyle> 877 <pointType>0</pointType> 878 <pointDensity>0</pointDensity> 879 <barStyle>0</barStyle> 880 </curve> 881 <curve> 882 <tag>M_ub_Q_1</tag> 883 <xvectag>DS-unitstep/INDEX</xvectag> 884 <yvectag>DS-unitstep/M_ub_Q_1</yvectag> 885 <legend></legend> 886 <interp>0</interp> 887 <hasMinus/> 888 <color>#808000</color> 889 <hasLines/> 890 <lineWidth>0</lineWidth> 891 <lineStyle>2</lineStyle> 892 <pointType>0</pointType> 893 <pointDensity>0</pointDensity> 894 <barStyle>0</barStyle> 895 </curve> 896 <curve> 897 <tag>M_ub_Q_2</tag> 898 <xvectag>DS-unitstep/INDEX</xvectag> 899 <yvectag>DS-unitstep/M_ub_Q_2</yvectag> 900 <legend></legend> 901 <interp>0</interp> 902 <hasMinus/> 903 <color>#c0c000</color> 904 <hasLines/> 905 <lineWidth>0</lineWidth> 906 <lineStyle>2</lineStyle> 907 <pointType>0</pointType> 908 <pointDensity>0</pointDensity> 909 <barStyle>0</barStyle> 910 </curve> 911 <curve> 912 <tag>M_ub_Q_3</tag> 913 <xvectag>DS-unitstep/INDEX</xvectag> 914 <yvectag>DS-unitstep/M_ub_Q_3</yvectag> 915 <legend></legend> 916 <interp>0</interp> 917 <hasMinus/> 918 <color>#ffff00</color> 919 <hasLines/> 920 <lineWidth>0</lineWidth> 921 <lineStyle>2</lineStyle> 922 <pointType>0</pointType> 923 <pointDensity>0</pointDensity> 924 <barStyle>0</barStyle> 925 </curve> 926 <curve> 927 <tag>M_lb_Q_0</tag> 928 <xvectag>DS-unitstep/INDEX</xvectag> 929 <yvectag>DS-unitstep/M_lb_Q_0</yvectag> 930 <legend></legend> 931 <interp>0</interp> 932 <hasMinus/> 933 <color>#004040</color> 934 <hasLines/> 935 <lineWidth>0</lineWidth> 936 <lineStyle>2</lineStyle> 937 <pointType>0</pointType> 938 <pointDensity>0</pointDensity> 939 <barStyle>0</barStyle> 940 </curve> 941 <curve> 942 <tag>M_lb_Q_1</tag> 943 <xvectag>DS-unitstep/INDEX</xvectag> 944 <yvectag>DS-unitstep/M_lb_Q_1</yvectag> 945 <legend></legend> 946 <interp>0</interp> 947 <hasMinus/> 948 <color>#008080</color> 949 <hasLines/> 950 <lineWidth>0</lineWidth> 951 <lineStyle>2</lineStyle> 952 <pointType>0</pointType> 953 <pointDensity>0</pointDensity> 954 <barStyle>0</barStyle> 955 </curve> 956 <curve> 957 <tag>M_lb_Q_2</tag> 958 <xvectag>DS-unitstep/INDEX</xvectag> 959 <yvectag>DS-unitstep/M_lb_Q_2</yvectag> 960 <legend></legend> 961 <interp>0</interp> 962 <hasMinus/> 963 <color>#00c0c0</color> 964 <hasLines/> 965 <lineWidth>0</lineWidth> 966 <lineStyle>2</lineStyle> 967 <pointType>0</pointType> 968 <pointDensity>0</pointDensity> 969 <barStyle>0</barStyle> 970 </curve> 971 <curve> 972 <tag>M_lb_Q_3</tag> 973 <xvectag>DS-unitstep/INDEX</xvectag> 974 <yvectag>DS-unitstep/M_lb_Q_3</yvectag> 975 <legend></legend> 976 <interp>0</interp> 977 <hasMinus/> 978 <color>#00ffff</color> 979 <hasLines/> 980 <lineWidth>0</lineWidth> 981 <lineStyle>2</lineStyle> 798 982 <pointType>0</pointType> 799 983 <pointDensity>0</pointDensity> … … 812 996 <margin>0</margin> 813 997 <padding>0</padding> 814 <xscalemode> 0</xscalemode>815 <yscalemode> 5</yscalemode>998 <xscalemode>2</xscalemode> 999 <yscalemode>2</yscalemode> 816 1000 <xscalemodedefault>0</xscalemodedefault> 817 1001 <yscalemodedefault>5</yscalemodedefault> 818 <xmin> 0</xmin>819 <xmax> 8996</xmax>820 <ymin>- 4.5157036326817</ymin>821 <ymax> 7.1059942008359</ymax>1002 <xmin>2926.358392435</xmin> 1003 <xmax>3606.906855792</xmax> 1004 <ymin>-0.048334607484026</ymin> 1005 <ymax>0.51400228173259</ymax> 822 1006 <xreversed>0</xreversed> 823 1007 <yreversed>0</yreversed> … … 845 1029 </ylabel> 846 1030 <xticklabel> 847 <text> 8000</text>1031 <text>3600</text> 848 1032 <interpret/> 849 1033 <rotation>0</rotation> … … 852 1036 </xticklabel> 853 1037 <yticklabel> 854 <text> 6</text>1038 <text>0.5</text> 855 1039 <interpret/> 856 1040 <rotation>0</rotation> … … 923 1107 <margin>0</margin> 924 1108 <padding>0</padding> 925 <xscalemode> 0</xscalemode>926 <yscalemode> 5</yscalemode>1109 <xscalemode>2</xscalemode> 1110 <yscalemode>2</yscalemode> 927 1111 <xscalemodedefault>0</xscalemodedefault> 928 1112 <yscalemodedefault>5</yscalemodedefault> 929 <xmin> 0</xmin>930 <xmax> 8996</xmax>931 <ymin>- 8.7889029972173</ymin>932 <ymax> 2.9406777090262</ymax>1113 <xmin>2926.358392435</xmin> 1114 <xmax>3606.906855792</xmax> 1115 <ymin>-0.39028880388336</ymin> 1116 <ymax>0.28756055295362</ymax> 933 1117 <xreversed>0</xreversed> 934 1118 <yreversed>0</yreversed> … … 956 1140 </ylabel> 957 1141 <xticklabel> 958 <text> 8000</text>1142 <text>3600</text> 959 1143 <interpret/> 960 1144 <rotation>0</rotation> … … 963 1147 </xticklabel> 964 1148 <yticklabel> 965 <text> 2</text>1149 <text>0.2</text> 966 1150 <interpret/> 967 1151 <rotation>0</rotation> … … 1034 1218 <margin>0</margin> 1035 1219 <padding>0</padding> 1036 <xscalemode> 0</xscalemode>1037 <yscalemode> 5</yscalemode>1220 <xscalemode>2</xscalemode> 1221 <yscalemode>2</yscalemode> 1038 1222 <xscalemodedefault>0</xscalemodedefault> 1039 1223 <yscalemodedefault>5</yscalemodedefault> 1040 <xmin> 0</xmin>1041 <xmax> 8996</xmax>1042 <ymin> -9.9507440023583</ymin>1043 <ymax> 10.112057855496</ymax>1224 <xmin>2926.358392435</xmin> 1225 <xmax>3606.906855792</xmax> 1226 <ymin>2.9364401415802</ymin> 1227 <ymax>6.8935369383091</ymax> 1044 1228 <xreversed>0</xreversed> 1045 1229 <yreversed>0</yreversed> … … 1067 1251 </ylabel> 1068 1252 <xticklabel> 1069 <text> 8000</text>1253 <text>3600</text> 1070 1254 <interpret/> 1071 1255 <rotation>0</rotation> … … 1074 1258 </xticklabel> 1075 1259 <yticklabel> 1076 <text> 10</text>1260 <text>6</text> 1077 1261 <interpret/> 1078 1262 <rotation>0</rotation> … … 1145 1329 <margin>0</margin> 1146 1330 <padding>0</padding> 1147 <xscalemode> 0</xscalemode>1148 <yscalemode> 5</yscalemode>1331 <xscalemode>2</xscalemode> 1332 <yscalemode>2</yscalemode> 1149 1333 <xscalemodedefault>0</xscalemodedefault> 1150 1334 <yscalemodedefault>5</yscalemodedefault> 1151 <xmin> 0</xmin>1152 <xmax> 8996</xmax>1153 <ymin> -3.2349482477224</ymin>1154 <ymax>1. 950493542042</ymax>1335 <xmin>2926.358392435</xmin> 1336 <xmax>3606.906855792</xmax> 1337 <ymin>1.3025848670891</ymin> 1338 <ymax>1.8398220026564</ymax> 1155 1339 <xreversed>0</xreversed> 1156 1340 <yreversed>0</yreversed> … … 1178 1362 </ylabel> 1179 1363 <xticklabel> 1180 <text> 8000</text>1364 <text>3600</text> 1181 1365 <interpret/> 1182 1366 <rotation>0</rotation> … … 1185 1369 </xticklabel> 1186 1370 <yticklabel> 1187 <text>1 </text>1371 <text>1.8</text> 1188 1372 <interpret/> 1189 1373 <rotation>0</rotation> … … 1256 1440 <margin>0</margin> 1257 1441 <padding>0</padding> 1258 <xscalemode> 0</xscalemode>1259 <yscalemode> 5</yscalemode>1442 <xscalemode>2</xscalemode> 1443 <yscalemode>2</yscalemode> 1260 1444 <xscalemodedefault>0</xscalemodedefault> 1261 1445 <yscalemodedefault>5</yscalemodedefault> 1262 <xmin> 0</xmin>1263 <xmax> 8996</xmax>1264 <ymin>- 4.5157024034826</ymin>1265 <ymax> 7.1060502918641</ymax>1446 <xmin>2926.358392435</xmin> 1447 <xmax>3606.906855792</xmax> 1448 <ymin>-0.04833941248617</ymin> 1449 <ymax>0.51402942484196</ymax> 1266 1450 <xreversed>0</xreversed> 1267 1451 <yreversed>0</yreversed> … … 1282 1466 </xlabel> 1283 1467 <ylabel> 1284 <text> xtE\_ia</text>1468 <text>KF\_ia</text> 1285 1469 <interpret/> 1286 1470 <rotation>270</rotation> … … 1289 1473 </ylabel> 1290 1474 <xticklabel> 1291 <text> 8000</text>1475 <text>3600</text> 1292 1476 <interpret/> 1293 1477 <rotation>0</rotation> … … 1296 1480 </xticklabel> 1297 1481 <yticklabel> 1298 <text> 6</text>1482 <text>0.5</text> 1299 1483 <interpret/> 1300 1484 <rotation>0</rotation> … … 1311 1495 <xlogbase>10</xlogbase> 1312 1496 <ylogbase>10</ylogbase> 1313 <curvetag> xtE_ia</curvetag>1497 <curvetag>KF_ia</curvetag> 1314 1498 <xmajorgrid>0</xmajorgrid> 1315 1499 <ymajorgrid>0</ymajorgrid> … … 1367 1551 <margin>0</margin> 1368 1552 <padding>0</padding> 1369 <xscalemode> 0</xscalemode>1370 <yscalemode> 5</yscalemode>1553 <xscalemode>2</xscalemode> 1554 <yscalemode>2</yscalemode> 1371 1555 <xscalemodedefault>0</xscalemodedefault> 1372 1556 <yscalemodedefault>5</yscalemodedefault> 1373 <xmin> 0</xmin>1374 <xmax> 8996</xmax>1375 <ymin>- 8.7889142376003</ymin>1376 <ymax> 2.940623098786</ymax>1557 <xmin>2926.358392435</xmin> 1558 <xmax>3606.906855792</xmax> 1559 <ymin>-0.3902866183156</ymin> 1560 <ymax>0.2875552509328</ymax> 1377 1561 <xreversed>0</xreversed> 1378 1562 <yreversed>0</yreversed> … … 1393 1577 </xlabel> 1394 1578 <ylabel> 1395 <text> xtE\_ib</text>1579 <text>KF\_ib</text> 1396 1580 <interpret/> 1397 1581 <rotation>270</rotation> … … 1400 1584 </ylabel> 1401 1585 <xticklabel> 1402 <text> 8000</text>1586 <text>3600</text> 1403 1587 <interpret/> 1404 1588 <rotation>0</rotation> … … 1407 1591 </xticklabel> 1408 1592 <yticklabel> 1409 <text> 2</text>1593 <text>0.2</text> 1410 1594 <interpret/> 1411 1595 <rotation>0</rotation> … … 1422 1606 <xlogbase>10</xlogbase> 1423 1607 <ylogbase>10</ylogbase> 1424 <curvetag> xtE_ib</curvetag>1608 <curvetag>KF_ib</curvetag> 1425 1609 <xmajorgrid>0</xmajorgrid> 1426 1610 <ymajorgrid>0</ymajorgrid> … … 1478 1662 <margin>0</margin> 1479 1663 <padding>0</padding> 1480 <xscalemode> 0</xscalemode>1481 <yscalemode> 5</yscalemode>1664 <xscalemode>2</xscalemode> 1665 <yscalemode>2</yscalemode> 1482 1666 <xscalemodedefault>0</xscalemodedefault> 1483 1667 <yscalemodedefault>5</yscalemodedefault> 1484 <xmin> 0</xmin>1485 <xmax> 8996</xmax>1486 <ymin> -9.9423377081818</ymin>1487 <ymax> 10.167729809906</ymax>1668 <xmin>2926.358392435</xmin> 1669 <xmax>3606.906855792</xmax> 1670 <ymin>2.8955198144056</ymin> 1671 <ymax>6.8845837989307</ymax> 1488 1672 <xreversed>0</xreversed> 1489 1673 <yreversed>0</yreversed> … … 1504 1688 </xlabel> 1505 1689 <ylabel> 1506 <text> xtE\_om</text>1690 <text>KF\_om</text> 1507 1691 <interpret/> 1508 1692 <rotation>270</rotation> … … 1511 1695 </ylabel> 1512 1696 <xticklabel> 1513 <text> 8000</text>1697 <text>3600</text> 1514 1698 <interpret/> 1515 1699 <rotation>0</rotation> … … 1518 1702 </xticklabel> 1519 1703 <yticklabel> 1520 <text> 10</text>1704 <text>6</text> 1521 1705 <interpret/> 1522 1706 <rotation>0</rotation> … … 1533 1717 <xlogbase>10</xlogbase> 1534 1718 <ylogbase>10</ylogbase> 1535 <curvetag> xtE_om</curvetag>1719 <curvetag>KF_om</curvetag> 1536 1720 <xmajorgrid>0</xmajorgrid> 1537 1721 <ymajorgrid>0</ymajorgrid> … … 1589 1773 <margin>0</margin> 1590 1774 <padding>0</padding> 1591 <xscalemode> 0</xscalemode>1592 <yscalemode> 5</yscalemode>1775 <xscalemode>2</xscalemode> 1776 <yscalemode>2</yscalemode> 1593 1777 <xscalemodedefault>0</xscalemodedefault> 1594 1778 <yscalemodedefault>5</yscalemodedefault> 1595 <xmin> 0</xmin>1596 <xmax> 8996</xmax>1597 <ymin> -3.1990055876149</ymin>1598 <ymax> 2.0317543342644</ymax>1779 <xmin>2926.358392435</xmin> 1780 <xmax>3606.906855792</xmax> 1781 <ymin>1.3045812312785</ymin> 1782 <ymax>1.9219107533158</ymax> 1599 1783 <xreversed>0</xreversed> 1600 1784 <yreversed>0</yreversed> … … 1615 1799 </xlabel> 1616 1800 <ylabel> 1617 <text> xtE\_th</text>1801 <text>KF\_th</text> 1618 1802 <interpret/> 1619 1803 <rotation>270</rotation> … … 1622 1806 </ylabel> 1623 1807 <xticklabel> 1624 <text> 8000</text>1808 <text>3600</text> 1625 1809 <interpret/> 1626 1810 <rotation>0</rotation> … … 1629 1813 </xticklabel> 1630 1814 <yticklabel> 1631 <text> 2</text>1815 <text>1.9</text> 1632 1816 <interpret/> 1633 1817 <rotation>0</rotation> … … 1644 1828 <xlogbase>10</xlogbase> 1645 1829 <ylogbase>10</ylogbase> 1646 <curvetag> xtE_th</curvetag>1830 <curvetag>KF_th</curvetag> 1647 1831 <xmajorgrid>0</xmajorgrid> 1648 1832 <ymajorgrid>0</ymajorgrid> … … 1700 1884 <margin>0</margin> 1701 1885 <padding>0</padding> 1702 <xscalemode> 0</xscalemode>1703 <yscalemode> 5</yscalemode>1886 <xscalemode>2</xscalemode> 1887 <yscalemode>2</yscalemode> 1704 1888 <xscalemodedefault>0</xscalemodedefault> 1705 1889 <yscalemodedefault>5</yscalemodedefault> 1706 <xmin> 0</xmin>1707 <xmax> 8996</xmax>1708 <ymin>- 4.5157373665507</ymin>1709 <ymax> 7.1060009663093</ymax>1890 <xmin>2926.358392435</xmin> 1891 <xmax>3606.906855792</xmax> 1892 <ymin>-0.048337870582494</ymin> 1893 <ymax>0.51406761152853</ymax> 1710 1894 <xreversed>0</xreversed> 1711 1895 <yreversed>0</yreversed> … … 1726 1910 </xlabel> 1727 1911 <ylabel> 1728 <text> xtM\_ia</text>1912 <text>M\_ia</text> 1729 1913 <interpret/> 1730 1914 <rotation>270</rotation> … … 1733 1917 </ylabel> 1734 1918 <xticklabel> 1735 <text> 8000</text>1919 <text>3600</text> 1736 1920 <interpret/> 1737 1921 <rotation>0</rotation> … … 1740 1924 </xticklabel> 1741 1925 <yticklabel> 1742 <text> 6</text>1926 <text>0.5</text> 1743 1927 <interpret/> 1744 1928 <rotation>0</rotation> … … 1755 1939 <xlogbase>10</xlogbase> 1756 1940 <ylogbase>10</ylogbase> 1757 <curvetag> xtM_ia</curvetag>1941 <curvetag>M_ia</curvetag> 1758 1942 <xmajorgrid>0</xmajorgrid> 1759 1943 <ymajorgrid>0</ymajorgrid> … … 1811 1995 <margin>0</margin> 1812 1996 <padding>0</padding> 1813 <xscalemode> 0</xscalemode>1814 <yscalemode> 5</yscalemode>1997 <xscalemode>2</xscalemode> 1998 <yscalemode>2</yscalemode> 1815 1999 <xscalemodedefault>0</xscalemodedefault> 1816 2000 <yscalemodedefault>5</yscalemodedefault> 1817 <xmin> 0</xmin>1818 <xmax> 8996</xmax>1819 <ymin>- 8.7889175939615</ymin>1820 <ymax> 2.9407047630982</ymax>2001 <xmin>2926.358392435</xmin> 2002 <xmax>3606.906855792</xmax> 2003 <ymin>-0.39028810807047</ymin> 2004 <ymax>0.28761404165682</ymax> 1821 2005 <xreversed>0</xreversed> 1822 2006 <yreversed>0</yreversed> … … 1837 2021 </xlabel> 1838 2022 <ylabel> 1839 <text> xtM\_ib</text>2023 <text>M\_ib</text> 1840 2024 <interpret/> 1841 2025 <rotation>270</rotation> … … 1844 2028 </ylabel> 1845 2029 <xticklabel> 1846 <text> 8000</text>2030 <text>3600</text> 1847 2031 <interpret/> 1848 2032 <rotation>0</rotation> … … 1851 2035 </xticklabel> 1852 2036 <yticklabel> 1853 <text> 2</text>2037 <text>0.2</text> 1854 2038 <interpret/> 1855 2039 <rotation>0</rotation> … … 1866 2050 <xlogbase>10</xlogbase> 1867 2051 <ylogbase>10</ylogbase> 1868 <curvetag> xtM_ib</curvetag>2052 <curvetag>M_ib</curvetag> 1869 2053 <xmajorgrid>0</xmajorgrid> 1870 2054 <ymajorgrid>0</ymajorgrid> … … 1922 2106 <margin>0</margin> 1923 2107 <padding>0</padding> 1924 <xscalemode> 0</xscalemode>1925 <yscalemode> 5</yscalemode>2108 <xscalemode>2</xscalemode> 2109 <yscalemode>2</yscalemode> 1926 2110 <xscalemodedefault>0</xscalemodedefault> 1927 2111 <yscalemodedefault>5</yscalemodedefault> 1928 <xmin> 0</xmin>1929 <xmax> 8996</xmax>1930 <ymin> -9.9423985713648</ymin>1931 <ymax> 10.156071405218</ymax>2112 <xmin>2926.358392435</xmin> 2113 <xmax>3606.906855792</xmax> 2114 <ymin>2.9290394221155</ymin> 2115 <ymax>6.8868281881701</ymax> 1932 2116 <xreversed>0</xreversed> 1933 2117 <yreversed>0</yreversed> … … 1948 2132 </xlabel> 1949 2133 <ylabel> 1950 <text> xtM\_om</text>2134 <text>M\_om</text> 1951 2135 <interpret/> 1952 2136 <rotation>270</rotation> … … 1955 2139 </ylabel> 1956 2140 <xticklabel> 1957 <text> 8000</text>2141 <text>3600</text> 1958 2142 <interpret/> 1959 2143 <rotation>0</rotation> … … 1962 2146 </xticklabel> 1963 2147 <yticklabel> 1964 <text> 10</text>2148 <text>6</text> 1965 2149 <interpret/> 1966 2150 <rotation>0</rotation> … … 1977 2161 <xlogbase>10</xlogbase> 1978 2162 <ylogbase>10</ylogbase> 1979 <curvetag> xtM_om</curvetag>2163 <curvetag>M_om</curvetag> 1980 2164 <xmajorgrid>0</xmajorgrid> 1981 2165 <ymajorgrid>0</ymajorgrid> … … 2033 2217 <margin>0</margin> 2034 2218 <padding>0</padding> 2035 <xscalemode> 0</xscalemode>2036 <yscalemode> 5</yscalemode>2219 <xscalemode>2</xscalemode> 2220 <yscalemode>2</yscalemode> 2037 2221 <xscalemodedefault>0</xscalemodedefault> 2038 2222 <yscalemodedefault>5</yscalemodedefault> 2039 <xmin> 0</xmin>2040 <xmax> 8996</xmax>2041 <ymin> -3.2332263813866</ymin>2042 <ymax>1. 9992572404254</ymax>2223 <xmin>2926.358392435</xmin> 2224 <xmax>3606.906855792</xmax> 2225 <ymin>1.3064345453176</ymin> 2226 <ymax>1.8885338031887</ymax> 2043 2227 <xreversed>0</xreversed> 2044 2228 <yreversed>0</yreversed> … … 2059 2243 </xlabel> 2060 2244 <ylabel> 2061 <text> xtM\_th</text>2245 <text>M\_th</text> 2062 2246 <interpret/> 2063 2247 <rotation>270</rotation> … … 2066 2250 </ylabel> 2067 2251 <xticklabel> 2068 <text> 8000</text>2252 <text>3600</text> 2069 2253 <interpret/> 2070 2254 <rotation>0</rotation> … … 2073 2257 </xticklabel> 2074 2258 <yticklabel> 2075 <text>1 </text>2259 <text>1.8</text> 2076 2260 <interpret/> 2077 2261 <rotation>0</rotation> … … 2088 2272 <xlogbase>10</xlogbase> 2089 2273 <ylogbase>10</ylogbase> 2090 <curvetag> xtM_th</curvetag>2274 <curvetag>M_th</curvetag> 2091 2275 <xmajorgrid>0</xmajorgrid> 2092 2276 <ymajorgrid>0</ymajorgrid> … … 2144 2328 <margin>0</margin> 2145 2329 <padding>0</padding> 2146 <xscalemode> 0</xscalemode>2147 <yscalemode> 5</yscalemode>2330 <xscalemode>2</xscalemode> 2331 <yscalemode>2</yscalemode> 2148 2332 <xscalemodedefault>0</xscalemodedefault> 2149 2333 <yscalemodedefault>5</yscalemodedefault> 2150 <xmin> 0</xmin>2151 <xmax> 8996</xmax>2152 <ymin>- 2.4976711470358e-07</ymin>2153 <ymax> 2.093709004069e-05</ymax>2334 <xmin>2926.358392435</xmin> 2335 <xmax>3606.906855792</xmax> 2336 <ymin>-5.1884392049895e-08</ymin> 2337 <ymax>7.396627640389e-06</ymax> 2154 2338 <xreversed>0</xreversed> 2155 2339 <yreversed>0</yreversed> … … 2170 2354 </xlabel> 2171 2355 <ylabel> 2172 <text> xtM\_Q\_0 and Q\_0</text>2356 <text></text> 2173 2357 <interpret/> 2174 2358 <rotation>270</rotation> … … 2177 2361 </ylabel> 2178 2362 <xticklabel> 2179 <text> 8000</text>2363 <text>3600</text> 2180 2364 <interpret/> 2181 2365 <rotation>0</rotation> … … 2184 2368 </xticklabel> 2185 2369 <yticklabel> 2186 <text> 2e-05</text>2370 <text>7e-06</text> 2187 2371 <interpret/> 2188 2372 <rotation>0</rotation> … … 2199 2383 <xlogbase>10</xlogbase> 2200 2384 <ylogbase>10</ylogbase> 2201 <curvetag> xtM_Q_0</curvetag>2385 <curvetag>M_Q_0</curvetag> 2202 2386 <curvetag>Q_0</curvetag> 2387 <curvetag>M_ub_Q_0</curvetag> 2388 <curvetag>M_lb_Q_0</curvetag> 2203 2389 <xmajorgrid>0</xmajorgrid> 2204 2390 <ymajorgrid>0</ymajorgrid> … … 2256 2442 <margin>0</margin> 2257 2443 <padding>0</padding> 2258 <xscalemode> 0</xscalemode>2259 <yscalemode> 5</yscalemode>2444 <xscalemode>2</xscalemode> 2445 <yscalemode>2</yscalemode> 2260 2446 <xscalemodedefault>0</xscalemodedefault> 2261 2447 <yscalemodedefault>5</yscalemodedefault> 2262 <xmin> 0</xmin>2263 <xmax> 8996</xmax>2264 <ymin>- 5.4365964898493e-07</ymin>2265 <ymax> 3.2021199309101e-05</ymax>2448 <xmin>2926.358392435</xmin> 2449 <xmax>3606.906855792</xmax> 2450 <ymin>-2.4282594344782e-06</ymin> 2451 <ymax>0.00010541853909026</ymax> 2266 2452 <xreversed>0</xreversed> 2267 2453 <yreversed>0</yreversed> … … 2282 2468 </xlabel> 2283 2469 <ylabel> 2284 <text> xtM\_Q\_1 and Q\_1</text>2470 <text></text> 2285 2471 <interpret/> 2286 2472 <rotation>270</rotation> … … 2289 2475 </ylabel> 2290 2476 <xticklabel> 2291 <text> 8000</text>2477 <text>3600</text> 2292 2478 <interpret/> 2293 2479 <rotation>0</rotation> … … 2296 2482 </xticklabel> 2297 2483 <yticklabel> 2298 <text> 3e-05</text>2484 <text>0.0001</text> 2299 2485 <interpret/> 2300 2486 <rotation>0</rotation> … … 2311 2497 <xlogbase>10</xlogbase> 2312 2498 <ylogbase>10</ylogbase> 2313 <curvetag> xtM_Q_1</curvetag>2499 <curvetag>M_Q_1</curvetag> 2314 2500 <curvetag>Q_1</curvetag> 2501 <curvetag>M_ub_Q_1</curvetag> 2502 <curvetag>M_lb_Q_1</curvetag> 2315 2503 <xmajorgrid>0</xmajorgrid> 2316 2504 <ymajorgrid>0</ymajorgrid> … … 2368 2556 <margin>0</margin> 2369 2557 <padding>0</padding> 2370 <xscalemode> 0</xscalemode>2371 <yscalemode> 5</yscalemode>2558 <xscalemode>2</xscalemode> 2559 <yscalemode>2</yscalemode> 2372 2560 <xscalemodedefault>0</xscalemodedefault> 2373 2561 <yscalemodedefault>5</yscalemodedefault> 2374 <xmin> 0</xmin>2375 <xmax> 8996</xmax>2376 <ymin>-0.000 37357938771325</ymin>2377 <ymax>0.01 812882974232</ymax>2562 <xmin>2926.358392435</xmin> 2563 <xmax>3606.906855792</xmax> 2564 <ymin>-0.00017880685614156</ymin> 2565 <ymax>0.0107775025083</ymax> 2378 2566 <xreversed>0</xreversed> 2379 2567 <yreversed>0</yreversed> … … 2394 2582 </xlabel> 2395 2583 <ylabel> 2396 <text> xtM\_Q\_2 and Q\_2</text>2584 <text></text> 2397 2585 <interpret/> 2398 2586 <rotation>270</rotation> … … 2401 2589 </ylabel> 2402 2590 <xticklabel> 2403 <text> 8000</text>2591 <text>3600</text> 2404 2592 <interpret/> 2405 2593 <rotation>0</rotation> … … 2408 2596 </xticklabel> 2409 2597 <yticklabel> 2410 <text>0.01 8</text>2598 <text>0.01</text> 2411 2599 <interpret/> 2412 2600 <rotation>0</rotation> … … 2423 2611 <xlogbase>10</xlogbase> 2424 2612 <ylogbase>10</ylogbase> 2425 <curvetag> xtM_Q_2</curvetag>2613 <curvetag>M_Q_2</curvetag> 2426 2614 <curvetag>Q_2</curvetag> 2615 <curvetag>M_ub_Q_2</curvetag> 2616 <curvetag>M_lb_Q_2</curvetag> 2427 2617 <xmajorgrid>0</xmajorgrid> 2428 2618 <ymajorgrid>0</ymajorgrid> … … 2480 2670 <margin>0</margin> 2481 2671 <padding>0</padding> 2482 <xscalemode> 0</xscalemode>2483 <yscalemode> 5</yscalemode>2672 <xscalemode>2</xscalemode> 2673 <yscalemode>2</yscalemode> 2484 2674 <xscalemodedefault>0</xscalemodedefault> 2485 2675 <yscalemodedefault>5</yscalemodedefault> 2486 <xmin> 0</xmin>2487 <xmax> 8996</xmax>2488 <ymin>- 0.00015311709117417</ymin>2489 <ymax>0.00 66825740776078</ymax>2676 <xmin>2926.358392435</xmin> 2677 <xmax>3606.906855792</xmax> 2678 <ymin>-2.8901098199394e-05</ymin> 2679 <ymax>0.0013375207853002</ymax> 2490 2680 <xreversed>0</xreversed> 2491 2681 <yreversed>0</yreversed> … … 2506 2696 </xlabel> 2507 2697 <ylabel> 2508 <text> xtM\_Q\_3 and Q\_3</text>2698 <text></text> 2509 2699 <interpret/> 2510 2700 <rotation>270</rotation> … … 2513 2703 </ylabel> 2514 2704 <xticklabel> 2515 <text> 8000</text>2705 <text>3600</text> 2516 2706 <interpret/> 2517 2707 <rotation>0</rotation> … … 2520 2710 </xticklabel> 2521 2711 <yticklabel> 2522 <text>0.00 6</text>2712 <text>0.0012</text> 2523 2713 <interpret/> 2524 2714 <rotation>0</rotation> … … 2535 2725 <xlogbase>10</xlogbase> 2536 2726 <ylogbase>10</ylogbase> 2537 <curvetag> xtM_Q_3</curvetag>2727 <curvetag>M_Q_3</curvetag> 2538 2728 <curvetag>Q_3</curvetag> 2729 <curvetag>M_ub_Q_3</curvetag> 2730 <curvetag>M_lb_Q_3</curvetag> 2539 2731 <xmajorgrid>0</xmajorgrid> 2540 2732 <ymajorgrid>0</ymajorgrid> … … 2582 2774 <window> 2583 2775 <tag>W1</tag> 2584 <restore x="4" y="4" w="1008" h="5 32" />2585 <internal x="4" y="4" w="1008" h="5 32" />2776 <restore x="4" y="4" w="1008" h="556" /> 2777 <internal x="4" y="4" w="1008" h="556" /> 2586 2778 <columns>4</columns> 2587 2779 <name>W1</name> … … 2636 2828 <border color="#000000" width="2" padding="0" margin="0" /> 2637 2829 <border color="#000000" width="2" padding="0" margin="0" /> 2638 <tag>Object 440</tag>2830 <tag>Object 561</tag> 2639 2831 <aspect x="0.1" y="0.1" w="0.2" h="0.1" /> 2640 2832 <idealsize w="1" h="1" /> … … 2653 2845 <vertical>true</vertical> 2654 2846 <title></title> 2655 <curvetag> xtM_Q_0</curvetag>2847 <curvetag>M_Q_0</curvetag> 2656 2848 <curvetag>Q_0</curvetag> 2849 <curvetag>M_ub_Q_0</curvetag> 2850 <curvetag>M_lb_Q_0</curvetag> 2657 2851 </Legend> 2658 2852 </Plot> … … 2662 2856 <border color="#000000" width="2" padding="0" margin="0" /> 2663 2857 <border color="#000000" width="2" padding="0" margin="0" /> 2664 <tag>Object 441</tag>2858 <tag>Object 562</tag> 2665 2859 <aspect x="0.1" y="0.1" w="0.2" h="0.1" /> 2666 2860 <idealsize w="1" h="1" /> … … 2679 2873 <vertical>true</vertical> 2680 2874 <title></title> 2681 <curvetag> xtM_Q_1</curvetag>2875 <curvetag>M_Q_1</curvetag> 2682 2876 <curvetag>Q_1</curvetag> 2877 <curvetag>M_ub_Q_1</curvetag> 2878 <curvetag>M_lb_Q_1</curvetag> 2683 2879 </Legend> 2684 2880 </Plot> … … 2688 2884 <border color="#000000" width="2" padding="0" margin="0" /> 2689 2885 <border color="#000000" width="2" padding="0" margin="0" /> 2690 <tag>Object 442</tag>2886 <tag>Object 563</tag> 2691 2887 <aspect x="0.1" y="0.1" w="0.2" h="0.1" /> 2692 2888 <idealsize w="1" h="1" /> … … 2705 2901 <vertical>true</vertical> 2706 2902 <title></title> 2707 <curvetag> xtM_Q_2</curvetag>2903 <curvetag>M_Q_2</curvetag> 2708 2904 <curvetag>Q_2</curvetag> 2905 <curvetag>M_ub_Q_2</curvetag> 2906 <curvetag>M_lb_Q_2</curvetag> 2709 2907 </Legend> 2710 2908 </Plot> … … 2714 2912 <border color="#000000" width="2" padding="0" margin="0" /> 2715 2913 <border color="#000000" width="2" padding="0" margin="0" /> 2716 <tag>Object 443</tag>2914 <tag>Object 564</tag> 2717 2915 <aspect x="0.1" y="0.1" w="0.2" h="0.1" /> 2718 2916 <idealsize w="1" h="1" /> … … 2731 2929 <vertical>true</vertical> 2732 2930 <title></title> 2733 <curvetag> xtM_Q_3</curvetag>2931 <curvetag>M_Q_3</curvetag> 2734 2932 <curvetag>Q_3</curvetag> 2933 <curvetag>M_ub_Q_3</curvetag> 2934 <curvetag>M_lb_Q_3</curvetag> 2735 2935 </Legend> 2736 2936 </Plot> -
pmsm/TR2245/unitsteps.cpp
r281 r283 61 61 KFE.set_parameters ( &fxu,&hxu,Q,R ); 62 62 KFE.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 63 KFE.set_rv(rx); 63 64 64 65 RV rQ ( "{Q }","4" ); … … 66 67 KFEp.set_parameters ( &fxu,&hxu,Q,R ); 67 68 KFEp.set_est ( mu0, chmat ( zeros ( 4 ) ) ); 68 69 //mgamma_fix evolQ ( rQ,rQ ); 69 70 70 migamma_fix evolQ ; 71 MPF<EKFCh_unQ> M ( &evolQ,&evolQ,Npart,KFEp ); 71 MPF<EKFCh_unQ> M; 72 M.set_parameters( &evolQ,&evolQ,Npart); 72 73 // initialize 73 74 evolQ.set_parameters ( 0.1, 10*Qdiag, 1.0 ); //sigma = 1/10 mu 74 75 evolQ.condition ( 10*Qdiag ); //Zdenek default 75 M.set_ est ( *evolQ._e());76 M.set_statistics ( evolQ._e() , &KFEp ); 76 77 evolQ.set_parameters ( 0.10, 10*Qdiag,0.999 ); //sigma = 1/10 mu 77 78 // 78 79 79 const epdf& KFEep = KFE.posterior(); 80 const epdf& Mep = M.posterior(); 81 80 M.set_rv(concat(rQ,rx)); 81 82 82 dirfilelog *L; UIbuild(F.lookup("logger"), L);// ( "exp/mpf_test",100 ); 83 83 int l_X = L->add ( rx, "xt" ); 84 84 int l_D = L->add ( concat ( ry,ru ), "" ); 85 int l_XE= L->add ( rx, "xtE" );86 int l_XM= L->add ( concat ( rQ,rx ), "xtM" );87 int l_VE= L->add ( rx, "VE" );88 int l_VM= L->add ( concat ( rQ,rx ), "VM" );89 85 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"); 90 91 L->init(); 91 92 … … 126 127 M.bayes ( concat ( dt,ut ) ); 127 128 128 vec mea=Mep.mean();129 if (max(mea)>1e3){130 cout << "here"<<endl;131 }132 129 L->logit ( l_X,xt ); 133 130 L->logit ( l_D,concat ( dt,ut ) ); 134 L->logit ( l_XE,KFEep.mean() );135 L->logit ( l_XM, mea);136 L->logit ( l_VE,KFEep.variance() );137 L->logit ( l_VM,Mep.variance() );138 131 L->logit ( l_Q,Qdiag ); 132 133 KFE.logit(L); 134 M.logit(L); 139 135 L->step(); 140 136 } -
pmsm/pmsm.h
r280 r283 31 31 vec eval ( const vec &x0, const vec &u0 ) { 32 32 // last state 33 doubleiam = x0 ( 0 );34 doubleibm = x0 ( 1 );35 doubleomm = x0 ( 2 );36 doublethm = x0 ( 3 );37 doubleuam = u0 ( 0 );38 doubleubm = u0 ( 1 );33 const double &iam = x0 ( 0 ); 34 const double &ibm = x0 ( 1 ); 35 const double &omm = x0 ( 2 ); 36 const double &thm = x0 ( 3 ); 37 const double &uam = u0 ( 0 ); 38 const double &ubm = u0 ( 1 ); 39 39 40 40 vec xk( 4 ); … … 53 53 54 54 void dfdx_cond ( const vec &x0, const vec &u0, mat &A, bool full=true ) { 55 doubleiam = x0 ( 0 );56 doubleibm = x0 ( 1 );57 doubleomm = x0 ( 2 );58 doublethm = x0 ( 3 );55 const double &iam = x0 ( 0 ); 56 const double &ibm = x0 ( 1 ); 57 const double &omm = x0 ( 2 ); 58 const double &thm = x0 ( 3 ); 59 59 // d ia 60 60 A ( 0,0 ) = ( 1.0- Rs/Ls*dt ); A ( 0,1 ) = 0.0; -
pmsm/simulator_zdenek/ekf_example/ekf_obj.h
r279 r283 30 30 An approximation of the exact Bayesian filter with Gaussian noices and non-linear evolutions of their mean. 31 31 */ 32 class EKFfixed : public BM , public BMcond{32 class EKFfixed : public BM { 33 33 public: 34 34 void init_ekf(double Tv); … … 64 64 public: 65 65 //! Default constructor 66 EKFfixed ():BM(), BMcond(),E(),Ry(2,2){66 EKFfixed ():BM(),E(),Ry(2,2){ 67 67 int i; 68 68 for(i=0;i<16;i++){Q[i]=0;} -
tests/testKF_QR.cpp
r278 r283 61 61 evolQR.set_parameters(10.0,"1 1 1"); //sigma = 1/10 mu 62 62 63 MPF<KFcondQR > KF_QR(&evolQR,&evolQR,100,KF); 63 MPF<KFcondQR> KF_QR; 64 KF_QR.set_parameters(&evolQR,&evolQR,100); 64 65 evolQR.condition("1 1 1"); 65 epdf& pfinit=evolQR._epdf(); 66 KF_QR.set_est(pfinit); 66 KF_QR.set_statistics(evolQR._e(), &KF); 67 67 const epdf& mpost=KF_QR.posterior(); 68 68 const epdf& mposttr=KFtr.posterior(); -
tests/testPF.cpp
r278 r283 23 23 euni eun; 24 24 eun.set_parameters("0","1"); 25 emp.set_ parameters(ones(10),&eun);25 emp.set_statistics(ones(10),&eun); 26 26 vec &v=emp._w(); 27 27 Array<vec> &S=emp._samples(); -
tests/testResample.cpp
r278 r283 23 23 euni eun; 24 24 eun.set_parameters("0","1"); 25 emp.set_ parameters(ones(10),&eun);25 emp.set_statistics(ones(10),&eun); 26 26 vec &v=emp._w(); 27 27 Array<vec> &S=emp._samples();