472 | | |
473 | | }; |
474 | | //void from_setting(); |
| 474 | L.add_vector ( log_level, logDet, RV ("Det", 1 ), prefix ); |
| 475 | L.add_vector ( log_level, logRem, RV ("Rem", 1 ), prefix ); |
| 476 | |
| 477 | }; |
| 478 | void from_setting ( const Setting &set ){ |
| 479 | BM::from_setting(set); |
| 480 | vec dQ,dR; |
| 481 | UI::get ( dQ, set, "dQ", UI::optional ); |
| 482 | UI::get ( dQ, set, "dR", UI::optional ); |
| 483 | if (dQ.length()==2){ |
| 484 | Q[0]=prevod(dQ[0],15); // 1e-3 |
| 485 | Q[3]=prevod(dQ[1],15); // 1e-3 |
| 486 | } |
| 487 | if (dR.length()==2){ |
| 488 | R[0]=prevod(dR[0],15); // 1e-3 |
| 489 | R[3]=prevod(dR[1],15); // 1e-3 |
| 490 | } |
| 491 | } |
| 730 | class ekfChfix: public BM{ |
| 731 | |
| 732 | ekf_data E; |
| 733 | public: |
| 734 | ekfChfix(){ |
| 735 | init_ekfCh2(&E,0.000125);set_dim(2); dimc = 2; |
| 736 | dimy = 2; |
| 737 | } |
| 738 | void bayes ( const vec &val, const vec &cond ) { |
| 739 | int16 ux,uy; |
| 740 | ux=prevod(cond[0]/Uref,15); |
| 741 | uy=prevod(cond[1]/Uref,15); |
| 742 | |
| 743 | int16 yx,yy; |
| 744 | // zadani mereni |
| 745 | yx=prevod(val[0]/Iref,15); |
| 746 | yy=prevod(val[1]/Iref,15); |
| 747 | |
| 748 | int16 detS, rem; |
| 749 | ekfCh2(&E, ux,uy,yx,yy, &detS, &rem); |
| 750 | |
| 751 | Est._mu()=vec_2(E.x_est[0]*Uref/32768., E.x_est[1]*Uref/32768.); |
| 752 | |
| 753 | ll = -0.5*qlog(detS)-0.5*rem; |
| 754 | } |
| 755 | const epdf& posterior() const {return Est;}; |
| 756 | void from_setting ( const Setting &set ){ |
| 757 | BM::from_setting(set); |
| 758 | vec dQ,dR; |
| 759 | UI::get ( dQ, set, "dQ", UI::optional ); |
| 760 | UI::get ( dQ, set, "dR", UI::optional ); |
| 761 | if (dQ.length()==2){ |
| 762 | E.Q[0]=prevod(dQ[0],15); // 1e-3 |
| 763 | E.Q[3]=prevod(dQ[1],15); // 1e-3 |
| 764 | } |
| 765 | if (dR.length()==2){ |
| 766 | E.dR[0]=prevod(dR[0],15); // 1e-3 |
| 767 | E.dR[1]=prevod(dR[1],15); // 1e-3 |
| 768 | } |
| 769 | } |
| 770 | |
| 771 | enorm<fsqmat> Est; |
| 772 | mat Ry; |
| 773 | }; |
| 774 | UIREGISTER(ekfChfix); |
| 775 | |