69 | | <a name="l00024"></a><a class="code" href="classbdm_1_1EKFful__unQR.html#538923d568db236bf5cd7120ae35b22d">00024</a> <a class="code" href="classbdm_1_1EKFful__unQR.html#538923d568db236bf5cd7120ae35b22d" title="Default constructor.">EKFful_unQR</a> ( ) :<a class="code" href="classbdm_1_1EKFfull.html" title="Extended Kalman Filter in full matrices.">EKFfull</a> ( ),<a class="code" href="classbdm_1_1BMcond.html" title="Conditional Bayesian Filter.">BMcond</a> ( ) {}; |
70 | | <a name="l00025"></a><a class="code" href="classbdm_1_1EKFful__unQR.html#17a98c06f5efe38e0da0beb96d6f9584">00025</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFful__unQR.html#17a98c06f5efe38e0da0beb96d6f9584" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &QR0 ) { |
71 | | <a name="l00026"></a>00026 Q=diag(QR0(0,dimx-1)); |
72 | | <a name="l00027"></a>00027 R=diag(QR0(dimx,dimx+dimy-1)); |
73 | | <a name="l00028"></a>00028 }; |
74 | | <a name="l00029"></a>00029 }; |
75 | | <a name="l00030"></a>00030 |
76 | | <a name="l00032"></a><a class="code" href="classbdm_1_1EKFCh__unQ.html">00032</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1EKFCh__unQ.html" title="Extended Kalman filter in Choleski form with unknown Q.">EKFCh_unQ</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> , <span class="keyword">public</span> <a class="code" href="classbdm_1_1BMcond.html" title="Conditional Bayesian Filter.">BMcond</a> { |
77 | | <a name="l00033"></a>00033 <span class="keyword">public</span>: |
78 | | <a name="l00035"></a><a class="code" href="classbdm_1_1EKFCh__unQ.html#9b00134826b10bb93fc34336d6e0f9cd">00035</a> <a class="code" href="classbdm_1_1EKFCh__unQ.html#9b00134826b10bb93fc34336d6e0f9cd" title="Default constructor.">EKFCh_unQ</a> ( ) :<a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> ( ),<a class="code" href="classbdm_1_1BMcond.html" title="Conditional Bayesian Filter.">BMcond</a> ( ) {}; |
79 | | <a name="l00036"></a><a class="code" href="classbdm_1_1EKFCh__unQ.html#701ae97d38e43b1660529868de90706c">00036</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFCh__unQ.html#701ae97d38e43b1660529868de90706c" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &Q0 ) { |
80 | | <a name="l00037"></a>00037 <a class="code" href="classbdm_1_1Kalman.html#70f8bf19e81b532c60fd3a7a152425ee" title="Matrix Q in square-root form.">Q</a>.<a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8" title="Access functions.">setD</a> ( Q0,0 ); |
81 | | <a name="l00038"></a>00038 <span class="comment">//from EKF</span> |
82 | | <a name="l00039"></a>00039 <a class="code" href="classbdm_1_1KalmanCh.html#48611c8582706cfa62e832be0972e75d" title="pre array (triangular matrix)">preA</a>.set_submatrix ( <a class="code" href="classbdm_1_1Kalman.html#d2c36ba01760bf207b985bf321b7817f" title="cache of rvy.count()">dimy</a>+<a class="code" href="classbdm_1_1Kalman.html#ba7699cdb3b1382a54d3e28b9b7517fa" title="cache of rv.count()">dimx</a>,<a class="code" href="classbdm_1_1Kalman.html#d2c36ba01760bf207b985bf321b7817f" title="cache of rvy.count()">dimy</a>,<a class="code" href="classbdm_1_1Kalman.html#70f8bf19e81b532c60fd3a7a152425ee" title="Matrix Q in square-root form.">Q</a>.<a class="code" href="classchmat.html#9c50d31c999d85d8e9d8cf2b69b6ac8c" title="Access function.">_Ch</a>() ); |
83 | | <a name="l00040"></a>00040 }; |
84 | | <a name="l00041"></a>00041 }; |
85 | | <a name="l00042"></a>00042 |
86 | | <a name="l00044"></a><a class="code" href="classbdm_1_1EKFCh__cond.html">00044</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1EKFCh__cond.html" title="Extended Kalman filter with unknown parameters in IM.">EKFCh_cond</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> , <span class="keyword">public</span> <a class="code" href="classbdm_1_1BMcond.html" title="Conditional Bayesian Filter.">BMcond</a> { |
87 | | <a name="l00045"></a>00045 <span class="keyword">public</span>: |
88 | | <a name="l00047"></a><a class="code" href="classbdm_1_1EKFCh__cond.html#fafaf98b79f892fa3fd832e2d89fb11e">00047</a> <a class="code" href="classbdm_1_1EKFCh__cond.html#fafaf98b79f892fa3fd832e2d89fb11e" title="Default constructor.">EKFCh_cond</a> ( ) :<a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> ( ),<a class="code" href="classbdm_1_1BMcond.html" title="Conditional Bayesian Filter.">BMcond</a> ( ) {}; |
89 | | <a name="l00048"></a><a class="code" href="classbdm_1_1EKFCh__cond.html#8c792fe284f4a26e6af9de251323fc52">00048</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFCh__cond.html#8c792fe284f4a26e6af9de251323fc52" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &val ) { |
90 | | <a name="l00049"></a>00049 <a class="code" href="classbdm_1_1EKFCh.html#e1e895f994398a55bc425551fc275ba3" title="Internal Model f(x,u).">pfxu</a>-><a class="code" href="classbdm_1_1fnc.html#0786e40fade2663a70d654c1dda5d73e" title="function substitutes given value into an appropriate position">condition</a> ( val ); |
91 | | <a name="l00050"></a>00050 }; |
92 | | <a name="l00051"></a>00051 }; |
93 | | <a name="l00052"></a>00052 |
94 | | <a name="l00053"></a>00053 } |
95 | | <a name="l00054"></a>00054 <span class="preprocessor">#endif //EKF_TEMP_H</span> |
| 69 | <a name="l00023"></a><a class="code" href="classbdm_1_1EKFful__unQR.html#17a98c06f5efe38e0da0beb96d6f9584">00023</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFful__unQR.html#17a98c06f5efe38e0da0beb96d6f9584" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &QR0 ) { |
| 70 | <a name="l00024"></a>00024 Q=diag(QR0(0,dimx-1)); |
| 71 | <a name="l00025"></a>00025 R=diag(QR0(dimx,dimx+dimy-1)); |
| 72 | <a name="l00026"></a>00026 }; |
| 73 | <a name="l00027"></a>00027 }; |
| 74 | <a name="l00028"></a>00028 |
| 75 | <a name="l00030"></a><a class="code" href="classbdm_1_1EKFCh__unQ.html">00030</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1EKFCh__unQ.html" title="Extended Kalman filter in Choleski form with unknown Q.">EKFCh_unQ</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> { |
| 76 | <a name="l00031"></a>00031 <span class="keyword">public</span>: |
| 77 | <a name="l00032"></a><a class="code" href="classbdm_1_1EKFCh__unQ.html#701ae97d38e43b1660529868de90706c">00032</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFCh__unQ.html#701ae97d38e43b1660529868de90706c" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &Q0 ) { |
| 78 | <a name="l00033"></a>00033 <a class="code" href="classbdm_1_1Kalman.html#70f8bf19e81b532c60fd3a7a152425ee" title="Matrix Q in square-root form.">Q</a>.<a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8" title="Access functions.">setD</a> ( Q0,0 ); |
| 79 | <a name="l00034"></a>00034 <span class="comment">//from EKF</span> |
| 80 | <a name="l00035"></a>00035 <a class="code" href="classbdm_1_1KalmanCh.html#48611c8582706cfa62e832be0972e75d" title="pre array (triangular matrix)">preA</a>.set_submatrix ( <a class="code" href="classbdm_1_1Kalman.html#d2c36ba01760bf207b985bf321b7817f" title="cache of rvy.count()">dimy</a>+<a class="code" href="classbdm_1_1Kalman.html#ba7699cdb3b1382a54d3e28b9b7517fa" title="cache of rv.count()">dimx</a>,<a class="code" href="classbdm_1_1Kalman.html#d2c36ba01760bf207b985bf321b7817f" title="cache of rvy.count()">dimy</a>,<a class="code" href="classbdm_1_1Kalman.html#70f8bf19e81b532c60fd3a7a152425ee" title="Matrix Q in square-root form.">Q</a>.<a class="code" href="classchmat.html#9c50d31c999d85d8e9d8cf2b69b6ac8c" title="Access function.">_Ch</a>() ); |
| 81 | <a name="l00036"></a>00036 }; |
| 82 | <a name="l00037"></a>00037 }; |
| 83 | <a name="l00038"></a>00038 |
| 84 | <a name="l00040"></a><a class="code" href="classbdm_1_1EKFCh__cond.html">00040</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1EKFCh__cond.html" title="Extended Kalman filter with unknown parameters in IM.">EKFCh_cond</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1EKFCh.html" title="Extended Kalman Filter in Square root.">EKFCh</a> { |
| 85 | <a name="l00041"></a>00041 <span class="keyword">public</span>: |
| 86 | <a name="l00042"></a><a class="code" href="classbdm_1_1EKFCh__cond.html#8c792fe284f4a26e6af9de251323fc52">00042</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1EKFCh__cond.html#8c792fe284f4a26e6af9de251323fc52" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &val ) { |
| 87 | <a name="l00043"></a>00043 <a class="code" href="classbdm_1_1EKFCh.html#e1e895f994398a55bc425551fc275ba3" title="Internal Model f(x,u).">pfxu</a>-><a class="code" href="classbdm_1_1fnc.html#0786e40fade2663a70d654c1dda5d73e" title="function substitutes given value into an appropriate position">condition</a> ( val ); |
| 88 | <a name="l00044"></a>00044 }; |
| 89 | <a name="l00045"></a>00045 }; |
| 90 | <a name="l00046"></a>00046 |
| 91 | <a name="l00047"></a>00047 } |
| 92 | <a name="l00048"></a>00048 <span class="preprocessor">#endif //EKF_TEMP_H</span> |