| 1 | \hypertarget{classEKFfixed}{ |
|---|
| 2 | \section{EKFfixed Class Reference} |
|---|
| 3 | \label{classEKFfixed}\index{EKFfixed@{EKFfixed}} |
|---|
| 4 | } |
|---|
| 5 | Extended \hyperlink{classKalman}{Kalman} Filter with full matrices in fixed point arithmetic. |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | {\tt \#include $<$ekf\_\-obj.h$>$} |
|---|
| 9 | |
|---|
| 10 | Inheritance diagram for EKFfixed:\nopagebreak |
|---|
| 11 | \begin{figure}[H] |
|---|
| 12 | \begin{center} |
|---|
| 13 | \leavevmode |
|---|
| 14 | \includegraphics[width=72pt]{classEKFfixed__inherit__graph} |
|---|
| 15 | \end{center} |
|---|
| 16 | \end{figure} |
|---|
| 17 | Collaboration diagram for EKFfixed:\nopagebreak |
|---|
| 18 | \begin{figure}[H] |
|---|
| 19 | \begin{center} |
|---|
| 20 | \leavevmode |
|---|
| 21 | \includegraphics[height=400pt]{classEKFfixed__coll__graph} |
|---|
| 22 | \end{center} |
|---|
| 23 | \end{figure} |
|---|
| 24 | \subsection*{Public Member Functions} |
|---|
| 25 | \begin{CompactItemize} |
|---|
| 26 | \item |
|---|
| 27 | \hypertarget{classEKFfixed_cece920bbf58fc72b25a6417b3ef0259}{ |
|---|
| 28 | void \textbf{init\_\-ekf} (double Tv)} |
|---|
| 29 | \label{classEKFfixed_cece920bbf58fc72b25a6417b3ef0259} |
|---|
| 30 | |
|---|
| 31 | \item |
|---|
| 32 | \hypertarget{classEKFfixed_491e636b259dda3b876b7bd492df6b7c}{ |
|---|
| 33 | void \textbf{ekf} (double ux, double uy, double isxd, double isyd)} |
|---|
| 34 | \label{classEKFfixed_491e636b259dda3b876b7bd492df6b7c} |
|---|
| 35 | |
|---|
| 36 | \item |
|---|
| 37 | \hypertarget{classEKFfixed_e77b35e1a11356dbfb1fdfa3017f60d3}{ |
|---|
| 38 | void \textbf{prediction} (int $\ast$ux)} |
|---|
| 39 | \label{classEKFfixed_e77b35e1a11356dbfb1fdfa3017f60d3} |
|---|
| 40 | |
|---|
| 41 | \item |
|---|
| 42 | \hypertarget{classEKFfixed_83ed56b86a056d7dbdd6ce44145fa5f3}{ |
|---|
| 43 | void \textbf{correction} (void)} |
|---|
| 44 | \label{classEKFfixed_83ed56b86a056d7dbdd6ce44145fa5f3} |
|---|
| 45 | |
|---|
| 46 | \item |
|---|
| 47 | \hypertarget{classEKFfixed_dce43355681cfe8f1905db207b4dde8d}{ |
|---|
| 48 | void \textbf{update\_\-psi} (void)} |
|---|
| 49 | \label{classEKFfixed_dce43355681cfe8f1905db207b4dde8d} |
|---|
| 50 | |
|---|
| 51 | \item |
|---|
| 52 | \hypertarget{classEKFfixed_64d7b1a39c27b1846bcd5628928748ef}{ |
|---|
| 53 | \hyperlink{classEKFfixed_64d7b1a39c27b1846bcd5628928748ef}{EKFfixed} (\hyperlink{classRV}{RV} rvx, \hyperlink{classRV}{RV} \hyperlink{classBMcond_9ba793c8ec453f04d372d17195ed8dec}{rvc})} |
|---|
| 54 | \label{classEKFfixed_64d7b1a39c27b1846bcd5628928748ef} |
|---|
| 55 | |
|---|
| 56 | \begin{CompactList}\small\item\em Default constructor. \item\end{CompactList}\item |
|---|
| 57 | \hypertarget{classEKFfixed_ddf5334bc1207658fd53698fffbac028}{ |
|---|
| 58 | void \hyperlink{classEKFfixed_ddf5334bc1207658fd53698fffbac028}{bayes} (const vec \&dt)} |
|---|
| 59 | \label{classEKFfixed_ddf5334bc1207658fd53698fffbac028} |
|---|
| 60 | |
|---|
| 61 | \begin{CompactList}\small\item\em Here dt = \mbox{[}yt;ut\mbox{]} of appropriate dimensions. \item\end{CompactList}\item |
|---|
| 62 | \hypertarget{classEKFfixed_085cf16c573eda32d8d03619c6c4b518}{ |
|---|
| 63 | \hyperlink{classepdf}{epdf} \& \hyperlink{classEKFfixed_085cf16c573eda32d8d03619c6c4b518}{\_\-epdf} ()} |
|---|
| 64 | \label{classEKFfixed_085cf16c573eda32d8d03619c6c4b518} |
|---|
| 65 | |
|---|
| 66 | \begin{CompactList}\small\item\em dummy! \item\end{CompactList}\item |
|---|
| 67 | \hypertarget{classEKFfixed_c7fee79e75ad7f0c0e96c5a322cbf44e}{ |
|---|
| 68 | void \hyperlink{classEKFfixed_c7fee79e75ad7f0c0e96c5a322cbf44e}{condition} (const vec \&Q0)} |
|---|
| 69 | \label{classEKFfixed_c7fee79e75ad7f0c0e96c5a322cbf44e} |
|---|
| 70 | |
|---|
| 71 | \begin{CompactList}\small\item\em Substitute {\tt val} for {\tt rvc}. \item\end{CompactList}\item |
|---|
| 72 | \hypertarget{classBM_0186270f75189677f390fe088a9947e9}{ |
|---|
| 73 | virtual void \hyperlink{classBM_0186270f75189677f390fe088a9947e9}{bayesB} (const mat \&Dt)} |
|---|
| 74 | \label{classBM_0186270f75189677f390fe088a9947e9} |
|---|
| 75 | |
|---|
| 76 | \begin{CompactList}\small\item\em Batch Bayes rule (columns of Dt are observations). \item\end{CompactList}\item |
|---|
| 77 | \hypertarget{classBM_8554809fec160bee279bcd5fa14ead5c}{ |
|---|
| 78 | virtual const \hyperlink{classepdf}{epdf} \& \hyperlink{classBM_8554809fec160bee279bcd5fa14ead5c}{\_\-epdf} () const =0} |
|---|
| 79 | \label{classBM_8554809fec160bee279bcd5fa14ead5c} |
|---|
| 80 | |
|---|
| 81 | \begin{CompactList}\small\item\em Returns a reference to the \hyperlink{classepdf}{epdf} representing posterior density on parameters. \item\end{CompactList}\item |
|---|
| 82 | \hypertarget{classBM_db500c4836f883c175a3cf3ab5a3ce24}{ |
|---|
| 83 | virtual const \hyperlink{classepdf}{epdf} $\ast$ \hyperlink{classBM_db500c4836f883c175a3cf3ab5a3ce24}{\_\-e} () const =0} |
|---|
| 84 | \label{classBM_db500c4836f883c175a3cf3ab5a3ce24} |
|---|
| 85 | |
|---|
| 86 | \begin{CompactList}\small\item\em Returns a pointer to the \hyperlink{classepdf}{epdf} representing posterior density on parameters. Use with care! \item\end{CompactList}\item |
|---|
| 87 | virtual double \hyperlink{classBM_8a8ce6df431689964c41cc6c849cfd06}{logpred} (const vec \&dt) const |
|---|
| 88 | \item |
|---|
| 89 | \hypertarget{classBM_cd0660f2a1a344b56ac39802708ff165}{ |
|---|
| 90 | vec \hyperlink{classBM_cd0660f2a1a344b56ac39802708ff165}{logpred\_\-m} (const mat \&dt) const } |
|---|
| 91 | \label{classBM_cd0660f2a1a344b56ac39802708ff165} |
|---|
| 92 | |
|---|
| 93 | \begin{CompactList}\small\item\em Matrix version of logpred. \item\end{CompactList}\item |
|---|
| 94 | \hypertarget{classBM_5594d68ee9aa6fc8c1e79019da5c9d56}{ |
|---|
| 95 | virtual \hyperlink{classepdf}{epdf} $\ast$ \hyperlink{classBM_5594d68ee9aa6fc8c1e79019da5c9d56}{predictor} (const \hyperlink{classRV}{RV} \&\hyperlink{classBM_af00f0612fabe66241dd507188cdbf88}{rv}) const } |
|---|
| 96 | \label{classBM_5594d68ee9aa6fc8c1e79019da5c9d56} |
|---|
| 97 | |
|---|
| 98 | \begin{CompactList}\small\item\em Constructs a predictive density (marginal density on data). \item\end{CompactList}\item |
|---|
| 99 | \hypertarget{classBM_126bd2595c48e311fc2a7ab72876092a}{ |
|---|
| 100 | const \hyperlink{classRV}{RV} \& \hyperlink{classBM_126bd2595c48e311fc2a7ab72876092a}{\_\-rv} () const } |
|---|
| 101 | \label{classBM_126bd2595c48e311fc2a7ab72876092a} |
|---|
| 102 | |
|---|
| 103 | \begin{CompactList}\small\item\em access function \item\end{CompactList}\item |
|---|
| 104 | \hypertarget{classBM_87f4a547d2c29180be88175e5eab9c88}{ |
|---|
| 105 | double \hyperlink{classBM_87f4a547d2c29180be88175e5eab9c88}{\_\-ll} () const } |
|---|
| 106 | \label{classBM_87f4a547d2c29180be88175e5eab9c88} |
|---|
| 107 | |
|---|
| 108 | \begin{CompactList}\small\item\em access function \item\end{CompactList}\item |
|---|
| 109 | \hypertarget{classBM_1ffa9f23669aabecc3760c06c6987522}{ |
|---|
| 110 | void \hyperlink{classBM_1ffa9f23669aabecc3760c06c6987522}{set\_\-evalll} (bool evl0)} |
|---|
| 111 | \label{classBM_1ffa9f23669aabecc3760c06c6987522} |
|---|
| 112 | |
|---|
| 113 | \begin{CompactList}\small\item\em access function \item\end{CompactList}\item |
|---|
| 114 | virtual \hyperlink{classBM}{BM} $\ast$ \hyperlink{classBM_eb58c81d6a7b75b05fc6f276eed78887}{\_\-copy\_\-} (bool changerv=false) |
|---|
| 115 | \item |
|---|
| 116 | \hypertarget{classBMcond_3fa60348b2da6b4208bb95b8d146900a}{ |
|---|
| 117 | const \hyperlink{classRV}{RV} \& \hyperlink{classBMcond_3fa60348b2da6b4208bb95b8d146900a}{\_\-rvc} () const } |
|---|
| 118 | \label{classBMcond_3fa60348b2da6b4208bb95b8d146900a} |
|---|
| 119 | |
|---|
| 120 | \begin{CompactList}\small\item\em access function \item\end{CompactList}\end{CompactItemize} |
|---|
| 121 | \subsection*{Public Attributes} |
|---|
| 122 | \begin{CompactItemize} |
|---|
| 123 | \item |
|---|
| 124 | \hypertarget{classEKFfixed_d04ddf049475a15e1ba93161aa5586ab}{ |
|---|
| 125 | int \textbf{Q} \mbox{[}16\mbox{]}} |
|---|
| 126 | \label{classEKFfixed_d04ddf049475a15e1ba93161aa5586ab} |
|---|
| 127 | |
|---|
| 128 | \item |
|---|
| 129 | \hypertarget{classEKFfixed_d914213d413b4d8f8d7bb728c5063d5e}{ |
|---|
| 130 | int \textbf{R} \mbox{[}4\mbox{]}} |
|---|
| 131 | \label{classEKFfixed_d914213d413b4d8f8d7bb728c5063d5e} |
|---|
| 132 | |
|---|
| 133 | \item |
|---|
| 134 | \hypertarget{classEKFfixed_7fd20a80b00e9782da676e48eb5b54b3}{ |
|---|
| 135 | int \textbf{x\_\-est} \mbox{[}4\mbox{]}} |
|---|
| 136 | \label{classEKFfixed_7fd20a80b00e9782da676e48eb5b54b3} |
|---|
| 137 | |
|---|
| 138 | \item |
|---|
| 139 | \hypertarget{classEKFfixed_9518fa723d7324f75df7822a589ee196}{ |
|---|
| 140 | int \textbf{x\_\-pred} \mbox{[}4\mbox{]}} |
|---|
| 141 | \label{classEKFfixed_9518fa723d7324f75df7822a589ee196} |
|---|
| 142 | |
|---|
| 143 | \item |
|---|
| 144 | \hypertarget{classEKFfixed_0b731c546a474433c1ea6f36f0125774}{ |
|---|
| 145 | int \textbf{P\_\-pred} \mbox{[}16\mbox{]}} |
|---|
| 146 | \label{classEKFfixed_0b731c546a474433c1ea6f36f0125774} |
|---|
| 147 | |
|---|
| 148 | \item |
|---|
| 149 | \hypertarget{classEKFfixed_b9ec9cb2d092ca3f4ad2a3b4420867ac}{ |
|---|
| 150 | int \textbf{P\_\-est} \mbox{[}16\mbox{]}} |
|---|
| 151 | \label{classEKFfixed_b9ec9cb2d092ca3f4ad2a3b4420867ac} |
|---|
| 152 | |
|---|
| 153 | \item |
|---|
| 154 | \hypertarget{classEKFfixed_5a8040cdb8bb5dca753485dc67db3287}{ |
|---|
| 155 | int \textbf{Y\_\-mes} \mbox{[}2\mbox{]}} |
|---|
| 156 | \label{classEKFfixed_5a8040cdb8bb5dca753485dc67db3287} |
|---|
| 157 | |
|---|
| 158 | \item |
|---|
| 159 | \hypertarget{classEKFfixed_9292e43fb8e6fedfabb3a9b3c2118e33}{ |
|---|
| 160 | int \textbf{ukalm} \mbox{[}2\mbox{]}} |
|---|
| 161 | \label{classEKFfixed_9292e43fb8e6fedfabb3a9b3c2118e33} |
|---|
| 162 | |
|---|
| 163 | \item |
|---|
| 164 | \hypertarget{classEKFfixed_f754902bb769d3b58b89108c76d9a394}{ |
|---|
| 165 | int \textbf{Kalm} \mbox{[}8\mbox{]}} |
|---|
| 166 | \label{classEKFfixed_f754902bb769d3b58b89108c76d9a394} |
|---|
| 167 | |
|---|
| 168 | \item |
|---|
| 169 | \hypertarget{classEKFfixed_bf4b3d55c8d277673bf77f37f6590217}{ |
|---|
| 170 | int \textbf{PSI} \mbox{[}16\mbox{]}} |
|---|
| 171 | \label{classEKFfixed_bf4b3d55c8d277673bf77f37f6590217} |
|---|
| 172 | |
|---|
| 173 | \item |
|---|
| 174 | \hypertarget{classEKFfixed_8a677b253b54696701c1ca0cb6f7a622}{ |
|---|
| 175 | int \textbf{temp15a} \mbox{[}16\mbox{]}} |
|---|
| 176 | \label{classEKFfixed_8a677b253b54696701c1ca0cb6f7a622} |
|---|
| 177 | |
|---|
| 178 | \item |
|---|
| 179 | \hypertarget{classEKFfixed_6d4354dad09286a7a209983732853c5b}{ |
|---|
| 180 | int \textbf{cA}} |
|---|
| 181 | \label{classEKFfixed_6d4354dad09286a7a209983732853c5b} |
|---|
| 182 | |
|---|
| 183 | \item |
|---|
| 184 | \hypertarget{classEKFfixed_eac752adfb921c1c525f8c3b3fd15dad}{ |
|---|
| 185 | int \textbf{cB}} |
|---|
| 186 | \label{classEKFfixed_eac752adfb921c1c525f8c3b3fd15dad} |
|---|
| 187 | |
|---|
| 188 | \item |
|---|
| 189 | \hypertarget{classEKFfixed_2f35ef3dce13131ae9b4427309a1d005}{ |
|---|
| 190 | int \textbf{cC}} |
|---|
| 191 | \label{classEKFfixed_2f35ef3dce13131ae9b4427309a1d005} |
|---|
| 192 | |
|---|
| 193 | \item |
|---|
| 194 | \hypertarget{classEKFfixed_50b31e70bb17cbdde2e28c83b9612c47}{ |
|---|
| 195 | int \textbf{cG}} |
|---|
| 196 | \label{classEKFfixed_50b31e70bb17cbdde2e28c83b9612c47} |
|---|
| 197 | |
|---|
| 198 | \item |
|---|
| 199 | \hypertarget{classEKFfixed_086e18ad28d139b0a2c0f77badc77a9a}{ |
|---|
| 200 | int \textbf{cH}} |
|---|
| 201 | \label{classEKFfixed_086e18ad28d139b0a2c0f77badc77a9a} |
|---|
| 202 | |
|---|
| 203 | \item |
|---|
| 204 | \hypertarget{classEKFfixed_540046e3ab4d0bed4791f397062a626f}{ |
|---|
| 205 | long \textbf{temp30a} \mbox{[}4\mbox{]}} |
|---|
| 206 | \label{classEKFfixed_540046e3ab4d0bed4791f397062a626f} |
|---|
| 207 | |
|---|
| 208 | \item |
|---|
| 209 | \hypertarget{classEKFfixed_ea92b06e2b66c6771828e689bb727b76}{ |
|---|
| 210 | \hyperlink{classenorm}{enorm}$<$ \hyperlink{classfsqmat}{fsqmat} $>$ \textbf{E}} |
|---|
| 211 | \label{classEKFfixed_ea92b06e2b66c6771828e689bb727b76} |
|---|
| 212 | |
|---|
| 213 | \item |
|---|
| 214 | \hypertarget{classEKFfixed_6e5552506214757d24e59e508f91c8aa}{ |
|---|
| 215 | mat \textbf{Ry}} |
|---|
| 216 | \label{classEKFfixed_6e5552506214757d24e59e508f91c8aa} |
|---|
| 217 | |
|---|
| 218 | \end{CompactItemize} |
|---|
| 219 | \subsection*{Protected Attributes} |
|---|
| 220 | \begin{CompactItemize} |
|---|
| 221 | \item |
|---|
| 222 | \hypertarget{classBM_af00f0612fabe66241dd507188cdbf88}{ |
|---|
| 223 | \hyperlink{classRV}{RV} \hyperlink{classBM_af00f0612fabe66241dd507188cdbf88}{rv}} |
|---|
| 224 | \label{classBM_af00f0612fabe66241dd507188cdbf88} |
|---|
| 225 | |
|---|
| 226 | \begin{CompactList}\small\item\em Random variable of the posterior. \item\end{CompactList}\item |
|---|
| 227 | \hypertarget{classBM_5623fef6572a08c2b53b8c87b82dc979}{ |
|---|
| 228 | double \hyperlink{classBM_5623fef6572a08c2b53b8c87b82dc979}{ll}} |
|---|
| 229 | \label{classBM_5623fef6572a08c2b53b8c87b82dc979} |
|---|
| 230 | |
|---|
| 231 | \begin{CompactList}\small\item\em Logarithm of marginalized data likelihood. \item\end{CompactList}\item |
|---|
| 232 | \hypertarget{classBM_bf6fb59b30141074f8ee1e2f43d03129}{ |
|---|
| 233 | bool \hyperlink{classBM_bf6fb59b30141074f8ee1e2f43d03129}{evalll}} |
|---|
| 234 | \label{classBM_bf6fb59b30141074f8ee1e2f43d03129} |
|---|
| 235 | |
|---|
| 236 | \begin{CompactList}\small\item\em If true, the filter will compute likelihood of the data record and store it in {\tt ll} . Set to false if you want to save computational time. \item\end{CompactList}\item |
|---|
| 237 | \hypertarget{classBMcond_9ba793c8ec453f04d372d17195ed8dec}{ |
|---|
| 238 | \hyperlink{classRV}{RV} \hyperlink{classBMcond_9ba793c8ec453f04d372d17195ed8dec}{rvc}} |
|---|
| 239 | \label{classBMcond_9ba793c8ec453f04d372d17195ed8dec} |
|---|
| 240 | |
|---|
| 241 | \begin{CompactList}\small\item\em Identificator of the conditioning variable. \item\end{CompactList}\end{CompactItemize} |
|---|
| 242 | |
|---|
| 243 | |
|---|
| 244 | \subsection{Detailed Description} |
|---|
| 245 | Extended \hyperlink{classKalman}{Kalman} Filter with full matrices in fixed point arithmetic. |
|---|
| 246 | |
|---|
| 247 | An approximation of the exact Bayesian filter with Gaussian noices and non-linear evolutions of their mean. |
|---|
| 248 | |
|---|
| 249 | \subsection{Member Function Documentation} |
|---|
| 250 | \hypertarget{classBM_8a8ce6df431689964c41cc6c849cfd06}{ |
|---|
| 251 | \index{EKFfixed@{EKFfixed}!logpred@{logpred}} |
|---|
| 252 | \index{logpred@{logpred}!EKFfixed@{EKFfixed}} |
|---|
| 253 | \subsubsection[logpred]{\setlength{\rightskip}{0pt plus 5cm}virtual double BM::logpred (const vec \& {\em dt}) const\hspace{0.3cm}{\tt \mbox{[}inline, virtual, inherited\mbox{]}}}} |
|---|
| 254 | \label{classBM_8a8ce6df431689964c41cc6c849cfd06} |
|---|
| 255 | |
|---|
| 256 | |
|---|
| 257 | Evaluates predictive log-likelihood of the given data record I.e. marginal likelihood of the data with the posterior integrated out. |
|---|
| 258 | |
|---|
| 259 | Reimplemented in \hyperlink{classARX_e7f9e7823aec9bf7ddc3b42d9b3304c4}{ARX}, \hyperlink{classMixEF_424ca64f36d4e41de7a7e7ae921d35ea}{MixEF}, and \hyperlink{classmultiBM_13e26a61757278981fd8cac9a7ef91eb}{multiBM}. |
|---|
| 260 | |
|---|
| 261 | Referenced by BM::logpred\_\-m().\hypertarget{classBM_eb58c81d6a7b75b05fc6f276eed78887}{ |
|---|
| 262 | \index{EKFfixed@{EKFfixed}!\_\-copy\_\-@{\_\-copy\_\-}} |
|---|
| 263 | \index{\_\-copy\_\-@{\_\-copy\_\-}!EKFfixed@{EKFfixed}} |
|---|
| 264 | \subsubsection[\_\-copy\_\-]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf BM}$\ast$ BM::\_\-copy\_\- (bool {\em changerv} = {\tt false})\hspace{0.3cm}{\tt \mbox{[}inline, virtual, inherited\mbox{]}}}} |
|---|
| 265 | \label{classBM_eb58c81d6a7b75b05fc6f276eed78887} |
|---|
| 266 | |
|---|
| 267 | |
|---|
| 268 | Copy function required in vectors, Arrays of \hyperlink{classBM}{BM} etc. Have to be DELETED manually! Prototype: BM$\ast$ \hyperlink{classBM_eb58c81d6a7b75b05fc6f276eed78887}{\_\-copy\_\-()}\{\hyperlink{classBM}{BM} Tmp$\ast$=new Tmp(this$\ast$); return Tmp; \} |
|---|
| 269 | |
|---|
| 270 | Reimplemented in \hyperlink{classARX_5de61fbd4f97fa3216760b1f733f5af0}{ARX}, and \hyperlink{classBMEF_97f5312efe4a5bedb86d2daec59d8651}{BMEF}. |
|---|
| 271 | |
|---|
| 272 | The documentation for this class was generated from the following files:\begin{CompactItemize} |
|---|
| 273 | \item |
|---|
| 274 | work/git/mixpp/pmsm/simulator\_\-zdenek/ekf\_\-example/\hyperlink{ekf__obj_8h}{ekf\_\-obj.h}\item |
|---|
| 275 | work/git/mixpp/pmsm/simulator\_\-zdenek/ekf\_\-example/ekf\_\-obj.cpp\end{CompactItemize} |
|---|