Show
Ignore:
Timestamp:
11/28/09 14:38:48 (15 years ago)
Author:
smidl
Message:

Working unitsteps and controlloop + corresponding fixes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/estim/ekf_template.h

    r477 r744  
    2222public: 
    2323        void condition ( const vec &QR0 ) { 
    24                 Q = diag ( QR0 ( 0, dimx - 1 ) ); 
    25                 R = diag ( QR0 ( dimx, dimx + dimy - 1 ) ); 
     24                Q = diag ( QR0 ( 0, dimension() - 1 ) ); 
     25                R = diag ( QR0 ( dimension(), dimension() + dimy - 1 ) ); 
    2626        }; 
    2727}; 
     
    3030class EKFCh_dQ : public EKFCh { 
    3131public: 
    32         void condition ( const vec &Q0 ) { 
    33                 Q.setD ( Q0, 0 ); 
     32        BM* _copy_() const {return new EKFCh_dQ(*this);} 
     33        //! new bayes, expects cond = [ut, Qt] 
     34        void bayes( const vec &yt , const vec &cond) { 
     35                vec ut=cond.left(dimc-dimension()); 
     36                vec dQt=cond.right(dimension()); 
     37                Q.setD ( dQt, 0 ); 
    3438                //from EKF 
    35                 preA.set_submatrix ( dimy + dimx, dimy, Q._Ch() ); 
     39                preA.set_submatrix ( dimy + dimension(), dimy, Q._Ch() ); 
     40                 
     41                EKFCh::bayes(yt,ut); 
    3642        }; 
     43        void validate() { 
     44                EKFCh::validate(); 
     45                dimc += dimension(); 
     46        } 
    3747}; 
    3848 
     
    4353                Q.setCh ( chQ0 ); 
    4454                //from EKF 
    45                 preA.set_submatrix ( dimy + dimx, dimy, Q._Ch() ); 
     55                preA.set_submatrix ( dimy + dimension(), dimension(), Q._Ch() ); 
    4656        }; 
    4757};