Changeset 1468 for applications/pmsm/simulator_zdenek/ekf_example/ekf_obj.h
- Timestamp:
- 12/16/12 23:05:25 (11 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
applications/pmsm/simulator_zdenek/ekf_example/ekf_obj.h
r1466 r1468 581 581 582 582 class mp:public epdf{ 583 LOG_LEVEL(mp,logth );583 LOG_LEVEL(mp,logth,logom); 584 584 public: 585 mp():epdf(){set_dim(3); log_level[logth]=true; 585 mp():epdf(){set_dim(3); log_level[logth]=true;log_level[logom]=true; 586 586 } 587 587 vec sample() const {return zeros(3);} … … 600 600 L.add_vector( log_level, logth, RV ( th_dim ), prefix ); 601 601 } 602 if ( log_level[logom] ) { 603 int th_dim = N; // dimension - dimension of cov 604 L.add_vector( log_level, logom, RV ( th_dim ), prefix ); 605 } 602 606 } 603 607 void log_write() const { … … 609 613 for(int i=0;i<N;i++){th(i)=Th[i];} 610 614 log_level.store( logth, th ); 615 } 616 if ( log_level[logom] ) { 617 floatx Om[N]; 618 mpf_om(Om); 619 vec om(N); 620 for(int i=0;i<N;i++){om(i)=Om[i];} 621 log_level.store( logom, om ); 611 622 } 612 623 } … … 730 741 yy=prevod(val[1]/Iref,15); 731 742 732 int16 detS, rem; 733 ekfCh2(&E, ux,uy,yx,yy, &detS, &rem); 734 735 Est._mu()=vec_2(E.x_est[0]*Uref/32768., E.x_est[1]*Uref/32768.); 736 737 ll = -0.5*qlog(detS)-0.5*rem; 743 int32 detS; 744 int16 rem; 745 ekfCh2(&E, ux,uy,yx,yy, &detS, &rem); //detS,rem asssigned inside 746 747 Est._mu()=vec_2(E.x_est[0]*Wref/32768., E.x_est[1]*Thetaref/32768.); 748 749 ll = 0.99*ll+( -0.5*(double)rem/32767)*10000-0.0*log((double)detS); // detS in q(8+15+15)-(8+8). - multiplicative differece is not important 738 750 } 739 751 const epdf& posterior() const {return Est;}; … … 788 800 yy=prevod(val[1]/Iref,15); 789 801 790 int16 detS, rem; 802 int16 rem; 803 int32 detS; 791 804 ekfCh2(&E, ux,uy,yx,yy, &detS, &rem); 792 805