\hypertarget{classIMpmsm2o}{
\section{IMpmsm2o Class Reference}
\label{classIMpmsm2o}\index{IMpmsm2o@{IMpmsm2o}}
}
State evolution model for a PMSM drive and its derivative with respect to $x$.  


{\tt \#include $<$pmsm.h$>$}

Inheritance diagram for IMpmsm2o:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=59pt]{classIMpmsm2o__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for IMpmsm2o:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=88pt]{classIMpmsm2o__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
\hypertarget{classIMpmsm2o_abdefc0467678a05abf12f5c77eaf49d}{
void \hyperlink{classIMpmsm2o_abdefc0467678a05abf12f5c77eaf49d}{set\_\-parameters} (double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0)}
\label{classIMpmsm2o_abdefc0467678a05abf12f5c77eaf49d}

\begin{CompactList}\small\item\em Set mechanical and electrical variables. \item\end{CompactList}\item 
\hypertarget{classIMpmsm2o_86e04b5118e567ea7a2540059f553f41}{
vec \hyperlink{classIMpmsm2o_86e04b5118e567ea7a2540059f553f41}{eval} (const vec \&x0, const vec \&u0)}
\label{classIMpmsm2o_86e04b5118e567ea7a2540059f553f41}

\begin{CompactList}\small\item\em Evaluates $f(x0,u0)$. \item\end{CompactList}\item 
\hypertarget{classIMpmsm2o_cf66e75d9e532b0a1c2135b34ac57c89}{
vec \hyperlink{classIMpmsm2o_cf66e75d9e532b0a1c2135b34ac57c89}{eval2o} (const vec \&du)}
\label{classIMpmsm2o_cf66e75d9e532b0a1c2135b34ac57c89}

\begin{CompactList}\small\item\em eval 2nd order Taylor expansion, MUST be used only as a follow up AFTER \hyperlink{classIMpmsm2o_86e04b5118e567ea7a2540059f553f41}{eval()}!! \item\end{CompactList}\item 
void \hyperlink{classIMpmsm2o_0a3e125df1e53821e08accbd4960d713}{dfdx\_\-cond} (const vec \&x0, const vec \&u0, mat \&A, bool full=true)
\begin{CompactList}\small\item\em Evaluates $A=\frac{d}{dx}f(x,u)|_{x0,u0}$ and writes result into {\tt A} . \item\end{CompactList}\item 
void \hyperlink{classIMpmsm2o_27f9d89bce832056f747d985df77a726}{dfdu\_\-cond} (const vec \&x0, const vec \&u0, mat \&A, bool full=true)
\begin{CompactList}\small\item\em Evaluates $A=\frac{d}{du}f(x,u)|_{x0,u0}$ and writes result into {\tt A} . \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_188f31066bd72e1bf0ddacd1eb0e6af3}{
vec \hyperlink{classbdm_1_1diffbifn_188f31066bd72e1bf0ddacd1eb0e6af3}{eval} (const vec \&cond)}
\label{classbdm_1_1diffbifn_188f31066bd72e1bf0ddacd1eb0e6af3}

\begin{CompactList}\small\item\em Evaluates $f(x0,u0)$ (VS: Do we really need common eval? ). \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_1b3c8f5949f13d86d2661e191d4b369b}{
int \hyperlink{classbdm_1_1diffbifn_1b3c8f5949f13d86d2661e191d4b369b}{\_\-dimx} () const }
\label{classbdm_1_1diffbifn_1b3c8f5949f13d86d2661e191d4b369b}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_031458f38c97cdb3aecde16f6a06dced}{
int \hyperlink{classbdm_1_1diffbifn_031458f38c97cdb3aecde16f6a06dced}{\_\-dimu} () const }
\label{classbdm_1_1diffbifn_031458f38c97cdb3aecde16f6a06dced}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
\hypertarget{classbdm_1_1fnc_0786e40fade2663a70d654c1dda5d73e}{
virtual void \hyperlink{classbdm_1_1fnc_0786e40fade2663a70d654c1dda5d73e}{condition} (const vec \&val)}
\label{classbdm_1_1fnc_0786e40fade2663a70d654c1dda5d73e}

\begin{CompactList}\small\item\em function substitutes given value into an appropriate position \item\end{CompactList}\item 
\hypertarget{classbdm_1_1fnc_a2277a400fc9f4d6c0bf24dc7156183f}{
int \hyperlink{classbdm_1_1fnc_a2277a400fc9f4d6c0bf24dc7156183f}{\_\-dimy} () const }
\label{classbdm_1_1fnc_a2277a400fc9f4d6c0bf24dc7156183f}

\begin{CompactList}\small\item\em access function \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
\hypertarget{classIMpmsm2o_a6514cda776819b65fd9e41a1a6a798c}{
double \textbf{Rs}}
\label{classIMpmsm2o_a6514cda776819b65fd9e41a1a6a798c}

\item 
\hypertarget{classIMpmsm2o_bef34361d7602b1a75c5b9f701bce40f}{
double \textbf{Ls}}
\label{classIMpmsm2o_bef34361d7602b1a75c5b9f701bce40f}

\item 
\hypertarget{classIMpmsm2o_399e2df590d6425a01e47c6deaa7e838}{
double \textbf{dt}}
\label{classIMpmsm2o_399e2df590d6425a01e47c6deaa7e838}

\item 
\hypertarget{classIMpmsm2o_99af79af69627fae52ec8fa8e167f775}{
double \textbf{Ypm}}
\label{classIMpmsm2o_99af79af69627fae52ec8fa8e167f775}

\item 
\hypertarget{classIMpmsm2o_993cf4903bce863c6b7fb2355411db4a}{
double \textbf{kp}}
\label{classIMpmsm2o_993cf4903bce863c6b7fb2355411db4a}

\item 
\hypertarget{classIMpmsm2o_8644abe49171d006cbf9bff2844816a3}{
double \textbf{p}}
\label{classIMpmsm2o_8644abe49171d006cbf9bff2844816a3}

\item 
\hypertarget{classIMpmsm2o_01a151f4ec2818e39537bebcbb8b152d}{
double \textbf{J}}
\label{classIMpmsm2o_01a151f4ec2818e39537bebcbb8b152d}

\item 
\hypertarget{classIMpmsm2o_38253f515b9b35ab3a536f4871287025}{
double \textbf{Mz}}
\label{classIMpmsm2o_38253f515b9b35ab3a536f4871287025}

\item 
\hypertarget{classIMpmsm2o_5b668744a1e5189f324897a62b9c3ea6}{
double \hyperlink{classIMpmsm2o_5b668744a1e5189f324897a62b9c3ea6}{dia}}
\label{classIMpmsm2o_5b668744a1e5189f324897a62b9c3ea6}

\begin{CompactList}\small\item\em store first derivatives for the use in second derivatives \item\end{CompactList}\item 
\hypertarget{classIMpmsm2o_48e7403b2c5a93d2af64d618df39b7ac}{
double \textbf{dib}}
\label{classIMpmsm2o_48e7403b2c5a93d2af64d618df39b7ac}

\item 
\hypertarget{classIMpmsm2o_46e40d43c0872e8a1fe33d85b2c44a0f}{
double \textbf{dom}}
\label{classIMpmsm2o_46e40d43c0872e8a1fe33d85b2c44a0f}

\item 
\hypertarget{classIMpmsm2o_b2164f89815f3194027fdd562246f238}{
double \textbf{dth}}
\label{classIMpmsm2o_b2164f89815f3194027fdd562246f238}

\item 
\hypertarget{classIMpmsm2o_74954dedce055db9ee50d53790e8341c}{
double \hyperlink{classIMpmsm2o_74954dedce055db9ee50d53790e8341c}{d2t}}
\label{classIMpmsm2o_74954dedce055db9ee50d53790e8341c}

\begin{CompactList}\small\item\em d2t = dt$^\wedge$2/2, cth = cos(th), sth=sin(th) \item\end{CompactList}\item 
\hypertarget{classIMpmsm2o_b013ef9a7017357ccaebf5c023d5ec0f}{
double \textbf{cth}}
\label{classIMpmsm2o_b013ef9a7017357ccaebf5c023d5ec0f}

\item 
\hypertarget{classIMpmsm2o_a246a4f23d0de166041919fed2bd2bf3}{
double \textbf{sth}}
\label{classIMpmsm2o_a246a4f23d0de166041919fed2bd2bf3}

\item 
\hypertarget{classIMpmsm2o_c7a8e9d8815971fd1bf38770ebd2067a}{
double \textbf{iam}}
\label{classIMpmsm2o_c7a8e9d8815971fd1bf38770ebd2067a}

\item 
\hypertarget{classIMpmsm2o_3efbccc942d804ef69270d77c14b7abc}{
double \textbf{ibm}}
\label{classIMpmsm2o_3efbccc942d804ef69270d77c14b7abc}

\item 
\hypertarget{classIMpmsm2o_559e00fa27deb6e2ffca76b889a8a24e}{
double \textbf{omm}}
\label{classIMpmsm2o_559e00fa27deb6e2ffca76b889a8a24e}

\item 
\hypertarget{classIMpmsm2o_49764a5de43ce718cebcaa045a0b40f6}{
double \textbf{thm}}
\label{classIMpmsm2o_49764a5de43ce718cebcaa045a0b40f6}

\item 
\hypertarget{classIMpmsm2o_61b88b671c492021476d7db49b29d0cd}{
double \textbf{uam}}
\label{classIMpmsm2o_61b88b671c492021476d7db49b29d0cd}

\item 
\hypertarget{classIMpmsm2o_3309f761c288a3fc149fae787cad252c}{
double \textbf{ubm}}
\label{classIMpmsm2o_3309f761c288a3fc149fae787cad252c}

\item 
\hypertarget{classbdm_1_1diffbifn_5f56547d8e9378b669d3cc19d7831cbb}{
RV \hyperlink{classbdm_1_1diffbifn_5f56547d8e9378b669d3cc19d7831cbb}{rvx}}
\label{classbdm_1_1diffbifn_5f56547d8e9378b669d3cc19d7831cbb}

\begin{CompactList}\small\item\em Indentifier of the first rv. \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_a8e3e861d5ec2a7ae9524e6338e58320}{
RV \hyperlink{classbdm_1_1diffbifn_a8e3e861d5ec2a7ae9524e6338e58320}{rvu}}
\label{classbdm_1_1diffbifn_a8e3e861d5ec2a7ae9524e6338e58320}

\begin{CompactList}\small\item\em Indentifier of the second rv. \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_a193aa2c4a500139c0c4b669691e588e}{
int \hyperlink{classbdm_1_1diffbifn_a193aa2c4a500139c0c4b669691e588e}{dimx}}
\label{classbdm_1_1diffbifn_a193aa2c4a500139c0c4b669691e588e}

\begin{CompactList}\small\item\em cache for rvx.count() \item\end{CompactList}\item 
\hypertarget{classbdm_1_1diffbifn_30c45617eec89adeb4ebaa763d093fb0}{
int \hyperlink{classbdm_1_1diffbifn_30c45617eec89adeb4ebaa763d093fb0}{dimu}}
\label{classbdm_1_1diffbifn_30c45617eec89adeb4ebaa763d093fb0}

\begin{CompactList}\small\item\em cache for rvu.count() \item\end{CompactList}\item 
\hypertarget{classbdm_1_1fnc_52156cb4a52a62d51fc7455985797a62}{
int \hyperlink{classbdm_1_1fnc_52156cb4a52a62d51fc7455985797a62}{dimy}}
\label{classbdm_1_1fnc_52156cb4a52a62d51fc7455985797a62}

\begin{CompactList}\small\item\em Length of the output vector. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
State evolution model for a PMSM drive and its derivative with respect to $x$. 

\subsection{Member Function Documentation}
\hypertarget{classIMpmsm2o_0a3e125df1e53821e08accbd4960d713}{
\index{IMpmsm2o@{IMpmsm2o}!dfdx\_\-cond@{dfdx\_\-cond}}
\index{dfdx\_\-cond@{dfdx\_\-cond}!IMpmsm2o@{IMpmsm2o}}
\subsubsection[dfdx\_\-cond]{\setlength{\rightskip}{0pt plus 5cm}void IMpmsm2o::dfdx\_\-cond (const vec \& {\em x0}, \/  const vec \& {\em u0}, \/  mat \& {\em A}, \/  bool {\em full} = {\tt true})\hspace{0.3cm}{\tt  \mbox{[}inline, virtual\mbox{]}}}}
\label{classIMpmsm2o_0a3e125df1e53821e08accbd4960d713}


Evaluates $A=\frac{d}{dx}f(x,u)|_{x0,u0}$ and writes result into {\tt A} . 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em full}]denotes that even unchanged entries are to be rewritten. When, false only the changed elements are computed. \item[{\em x0}]numeric value of $x$, \item[{\em u0}]numeric value of $u$ \item[{\em A}]a place where the result will be stored. \end{description}
\end{Desc}


Reimplemented from \hyperlink{classbdm_1_1diffbifn_651184f808a35f236dbfea21aca1b6ac}{bdm::diffbifn}.\hypertarget{classIMpmsm2o_27f9d89bce832056f747d985df77a726}{
\index{IMpmsm2o@{IMpmsm2o}!dfdu\_\-cond@{dfdu\_\-cond}}
\index{dfdu\_\-cond@{dfdu\_\-cond}!IMpmsm2o@{IMpmsm2o}}
\subsubsection[dfdu\_\-cond]{\setlength{\rightskip}{0pt plus 5cm}void IMpmsm2o::dfdu\_\-cond (const vec \& {\em x0}, \/  const vec \& {\em u0}, \/  mat \& {\em A}, \/  bool {\em full} = {\tt true})\hspace{0.3cm}{\tt  \mbox{[}inline, virtual\mbox{]}}}}
\label{classIMpmsm2o_27f9d89bce832056f747d985df77a726}


Evaluates $A=\frac{d}{du}f(x,u)|_{x0,u0}$ and writes result into {\tt A} . 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em full}]denotes that even unchanged entries are to be rewritten. When, false only the changed elements are computed. \item[{\em x0}]numeric value of $x$, \item[{\em u0}]numeric value of $u$ \item[{\em A}]a place where the result will be stored. \end{description}
\end{Desc}


Reimplemented from \hyperlink{classbdm_1_1diffbifn_6ea1dc7a482601b29c5ba36a52d20d07}{bdm::diffbifn}.

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
work/git/mixpp/pmsm/pmsm.h\end{CompactItemize}
