570 |
|
\dot x = J(x)\nabla _x H \label{introEquation:poissonHamiltonian} |
571 |
|
\end{equation} |
572 |
|
The most obvious change being that matrix $J$ now depends on $x$. |
573 |
– |
The free rigid body is an example of Poisson system (actually a |
574 |
– |
Lie-Poisson system) with Hamiltonian function of angular kinetic |
575 |
– |
energy. |
576 |
– |
\begin{equation} |
577 |
– |
J(\pi ) = \left( {\begin{array}{*{20}c} |
578 |
– |
0 & {\pi _3 } & { - \pi _2 } \\ |
579 |
– |
{ - \pi _3 } & 0 & {\pi _1 } \\ |
580 |
– |
{\pi _2 } & { - \pi _1 } & 0 \\ |
581 |
– |
\end{array}} \right) |
582 |
– |
\end{equation} |
583 |
– |
|
584 |
– |
\begin{equation} |
585 |
– |
H = \frac{1}{2}\left( {\frac{{\pi _1^2 }}{{I_1 }} + \frac{{\pi _2^2 |
586 |
– |
}}{{I_2 }} + \frac{{\pi _3^2 }}{{I_3 }}} \right) |
587 |
– |
\end{equation} |
573 |
|
|
574 |
|
\subsection{\label{introSection:exactFlow}Exact Flow} |
575 |
|
|
934 |
|
method using quaternion representation was developed by Omelyan. |
935 |
|
However, both of these methods are iterative and inefficient. In |
936 |
|
this section, we will present a symplectic Lie-Poisson integrator |
937 |
< |
for rigid body developed by Dullweber and his coworkers\cite{}. |
938 |
< |
|
954 |
< |
\subsection{\label{introSection:lieAlgebra}Lie Algebra} |
937 |
> |
for rigid body developed by Dullweber and his |
938 |
> |
coworkers\cite{Dullweber1997} in depth. |
939 |
|
|
940 |
|
\subsection{\label{introSection:constrainedHamiltonianRB}Constrained Hamiltonian for Rigid Body} |
941 |
< |
|
941 |
> |
The motion of the rigid body is Hamiltonian with the Hamiltonian |
942 |
> |
function |
943 |
|
\begin{equation} |
944 |
|
H = \frac{1}{2}(p^T m^{ - 1} p) + \frac{1}{2}tr(PJ^{ - 1} P) + |
945 |
|
V(q,Q) + \frac{1}{2}tr[(QQ^T - 1)\Lambda ]. |
960 |
|
Differentiating \ref{introEquation:orthogonalConstraint} and using |
961 |
|
Equation \ref{introEquation:RBMotionMomentum}, one may obtain, |
962 |
|
\begin{equation} |
963 |
< |
Q^t PJ^{ - 1} + J^{ - 1} P^t Q = 0 . \\ |
963 |
> |
Q^T PJ^{ - 1} + J^{ - 1} P^T Q = 0 . \\ |
964 |
|
\label{introEquation:RBFirstOrderConstraint} |
965 |
|
\end{equation} |
966 |
|
|
972 |
|
\frac{{dq}}{{dt}} = \frac{p}{m} \label{introEquation:RBMotionPosition}\\ |
973 |
|
\frac{{dp}}{{dt}} = - \nabla _q V(q,Q) \label{introEquation:RBMotionMomentum}\\ |
974 |
|
\frac{{dQ}}{{dt}} = PJ^{ - 1} \label{introEquation:RBMotionRotation}\\ |
975 |
< |
\frac{{dP}}{{dt}} = - \nabla _q V(q,Q) - 2Q\Lambda . \label{introEquation:RBMotionP}\\ |
975 |
> |
\frac{{dP}}{{dt}} = - \nabla _Q V(q,Q) - 2Q\Lambda . \label{introEquation:RBMotionP}\\ |
976 |
|
\end{array} |
977 |
|
\] |
978 |
|
|
979 |
+ |
In general, there are two ways to satisfy the holonomic constraints. |
980 |
+ |
We can use constraint force provided by lagrange multiplier on the |
981 |
+ |
normal manifold to keep the motion on constraint space. Or we can |
982 |
+ |
simply evolve the system in constraint manifold. The two method are |
983 |
+ |
proved to be equivalent. The holonomic constraint and equations of |
984 |
+ |
motions define a constraint manifold for rigid body |
985 |
+ |
\[ |
986 |
+ |
M = \left\{ {(Q,P):Q^T Q = 1,Q^T PJ^{ - 1} + J^{ - 1} P^T Q = 0} |
987 |
+ |
\right\}. |
988 |
+ |
\] |
989 |
|
|
990 |
+ |
Unfortunately, this constraint manifold is not the cotangent bundle |
991 |
+ |
$T_{\star}SO(3)$. However, it turns out that under symplectic |
992 |
+ |
transformation, the cotangent space and the phase space are |
993 |
+ |
diffeomorphic. Introducing |
994 |
|
\[ |
995 |
< |
M = \left\{ {(Q,P):Q^T Q = 1,Q^t PJ^{ - 1} + J^{ - 1} P^t Q = 0} |
997 |
< |
\right\} . |
995 |
> |
\tilde Q = Q,\tilde P = \frac{1}{2}\left( {P - QP^T Q} \right), |
996 |
|
\] |
997 |
+ |
the mechanical system subject to a holonomic constraint manifold $M$ |
998 |
+ |
can be re-formulated as a Hamiltonian system on the cotangent space |
999 |
+ |
\[ |
1000 |
+ |
T^* SO(3) = \left\{ {(\tilde Q,\tilde P):\tilde Q^T \tilde Q = |
1001 |
+ |
1,\tilde Q^T \tilde PJ^{ - 1} + J^{ - 1} P^T \tilde Q = 0} \right\} |
1002 |
+ |
\] |
1003 |
|
|
1004 |
< |
\subsection{\label{introSection:DLMMotionEquation}The Euler Equations of Rigid Body Motion} |
1004 |
> |
For a body fixed vector $X_i$ with respect to the center of mass of |
1005 |
> |
the rigid body, its corresponding lab fixed vector $X_0^{lab}$ is |
1006 |
> |
given as |
1007 |
> |
\begin{equation} |
1008 |
> |
X_i^{lab} = Q X_i + q. |
1009 |
> |
\end{equation} |
1010 |
> |
Therefore, potential energy $V(q,Q)$ is defined by |
1011 |
> |
\[ |
1012 |
> |
V(q,Q) = V(Q X_0 + q). |
1013 |
> |
\] |
1014 |
> |
Hence, the force and torque are given by |
1015 |
> |
\[ |
1016 |
> |
\nabla _q V(q,Q) = F(q,Q) = \sum\limits_i {F_i (q,Q)}, |
1017 |
> |
\] |
1018 |
> |
and |
1019 |
> |
\[ |
1020 |
> |
\nabla _Q V(q,Q) = F(q,Q)X_i^t |
1021 |
> |
\] |
1022 |
> |
respectively. |
1023 |
|
|
1024 |
< |
\subsection{\label{introSection:symplecticDiscretizationRB}Symplectic Discretization of Euler Equations} |
1024 |
> |
As a common choice to describe the rotation dynamics of the rigid |
1025 |
> |
body, angular momentum on body frame $\Pi = Q^t P$ is introduced to |
1026 |
> |
rewrite the equations of motion, |
1027 |
> |
\begin{equation} |
1028 |
> |
\begin{array}{l} |
1029 |
> |
\mathop \Pi \limits^ \bullet = J^{ - 1} \Pi ^T \Pi + Q^T \sum\limits_i {F_i (q,Q)X_i^T } - \Lambda \\ |
1030 |
> |
\mathop Q\limits^{{\rm{ }} \bullet } = Q\Pi {\rm{ }}J^{ - 1} \\ |
1031 |
> |
\end{array} |
1032 |
> |
\label{introEqaution:RBMotionPI} |
1033 |
> |
\end{equation} |
1034 |
> |
, as well as holonomic constraints, |
1035 |
> |
\[ |
1036 |
> |
\begin{array}{l} |
1037 |
> |
\Pi J^{ - 1} + J^{ - 1} \Pi ^t = 0 \\ |
1038 |
> |
Q^T Q = 1 \\ |
1039 |
> |
\end{array} |
1040 |
> |
\] |
1041 |
> |
|
1042 |
> |
For a vector $v(v_1 ,v_2 ,v_3 ) \in R^3$ and a matrix $\hat v \in |
1043 |
> |
so(3)^ \star$, the hat-map isomorphism, |
1044 |
> |
\begin{equation} |
1045 |
> |
v(v_1 ,v_2 ,v_3 ) \Leftrightarrow \hat v = \left( |
1046 |
> |
{\begin{array}{*{20}c} |
1047 |
> |
0 & { - v_3 } & {v_2 } \\ |
1048 |
> |
{v_3 } & 0 & { - v_1 } \\ |
1049 |
> |
{ - v_2 } & {v_1 } & 0 \\ |
1050 |
> |
\end{array}} \right), |
1051 |
> |
\label{introEquation:hatmapIsomorphism} |
1052 |
> |
\end{equation} |
1053 |
> |
will let us associate the matrix products with traditional vector |
1054 |
> |
operations |
1055 |
> |
\[ |
1056 |
> |
\hat vu = v \times u |
1057 |
> |
\] |
1058 |
> |
|
1059 |
> |
Using \ref{introEqaution:RBMotionPI}, one can construct a skew |
1060 |
> |
matrix, |
1061 |
> |
\begin{equation} |
1062 |
> |
(\mathop \Pi \limits^ \bullet - \mathop \Pi \limits^ \bullet ^T |
1063 |
> |
){\rm{ }} = {\rm{ }}(\Pi - \Pi ^T ){\rm{ }}(J^{ - 1} \Pi + \Pi J^{ |
1064 |
> |
- 1} ) + \sum\limits_i {[Q^T F_i (r,Q)X_i^T - X_i F_i (r,Q)^T Q]} - |
1065 |
> |
(\Lambda - \Lambda ^T ) . \label{introEquation:skewMatrixPI} |
1066 |
> |
\end{equation} |
1067 |
> |
Since $\Lambda$ is symmetric, the last term of Equation |
1068 |
> |
\ref{introEquation:skewMatrixPI} is zero, which implies the Lagrange |
1069 |
> |
multiplier $\Lambda$ is absent from the equations of motion. This |
1070 |
> |
unique property eliminate the requirement of iterations which can |
1071 |
> |
not be avoided in other methods\cite{}. |
1072 |
> |
|
1073 |
> |
Applying hat-map isomorphism, we obtain the equation of motion for |
1074 |
> |
angular momentum on body frame |
1075 |
> |
\begin{equation} |
1076 |
> |
\dot \pi = \pi \times I^{ - 1} \pi + \sum\limits_i {\left( {Q^T |
1077 |
> |
F_i (r,Q)} \right) \times X_i }. |
1078 |
> |
\label{introEquation:bodyAngularMotion} |
1079 |
> |
\end{equation} |
1080 |
> |
In the same manner, the equation of motion for rotation matrix is |
1081 |
> |
given by |
1082 |
> |
\[ |
1083 |
> |
\dot Q = Qskew(I^{ - 1} \pi ) |
1084 |
> |
\] |
1085 |
> |
|
1086 |
> |
\subsection{\label{introSection:SymplecticFreeRB}Symplectic |
1087 |
> |
Lie-Poisson Integrator for Free Rigid Body} |
1088 |
> |
|
1089 |
> |
If there is not external forces exerted on the rigid body, the only |
1090 |
> |
contribution to the rotational is from the kinetic potential (the |
1091 |
> |
first term of \ref{ introEquation:bodyAngularMotion}). The free |
1092 |
> |
rigid body is an example of Lie-Poisson system with Hamiltonian |
1093 |
> |
function |
1094 |
> |
\begin{equation} |
1095 |
> |
T^r (\pi ) = T_1 ^r (\pi _1 ) + T_2^r (\pi _2 ) + T_3^r (\pi _3 ) |
1096 |
> |
\label{introEquation:rotationalKineticRB} |
1097 |
> |
\end{equation} |
1098 |
> |
where $T_i^r (\pi _i ) = \frac{{\pi _i ^2 }}{{2I_i }}$ and |
1099 |
> |
Lie-Poisson structure matrix, |
1100 |
> |
\begin{equation} |
1101 |
> |
J(\pi ) = \left( {\begin{array}{*{20}c} |
1102 |
> |
0 & {\pi _3 } & { - \pi _2 } \\ |
1103 |
> |
{ - \pi _3 } & 0 & {\pi _1 } \\ |
1104 |
> |
{\pi _2 } & { - \pi _1 } & 0 \\ |
1105 |
> |
\end{array}} \right) |
1106 |
> |
\end{equation} |
1107 |
> |
Thus, the dynamics of free rigid body is governed by |
1108 |
> |
\begin{equation} |
1109 |
> |
\frac{d}{{dt}}\pi = J(\pi )\nabla _\pi T^r (\pi ) |
1110 |
> |
\end{equation} |
1111 |
> |
|
1112 |
> |
One may notice that each $T_i^r$ in Equation |
1113 |
> |
\ref{introEquation:rotationalKineticRB} can be solved exactly. For |
1114 |
> |
instance, the equations of motion due to $T_1^r$ are given by |
1115 |
> |
\begin{equation} |
1116 |
> |
\frac{d}{{dt}}\pi = R_1 \pi ,\frac{d}{{dt}}Q = QR_1 |
1117 |
> |
\label{introEqaution:RBMotionSingleTerm} |
1118 |
> |
\end{equation} |
1119 |
> |
where |
1120 |
> |
\[ R_1 = \left( {\begin{array}{*{20}c} |
1121 |
> |
0 & 0 & 0 \\ |
1122 |
> |
0 & 0 & {\pi _1 } \\ |
1123 |
> |
0 & { - \pi _1 } & 0 \\ |
1124 |
> |
\end{array}} \right). |
1125 |
> |
\] |
1126 |
> |
The solutions of Equation \ref{introEqaution:RBMotionSingleTerm} is |
1127 |
> |
\[ |
1128 |
> |
\pi (\Delta t) = e^{\Delta tR_1 } \pi (0),Q(\Delta t) = |
1129 |
> |
Q(0)e^{\Delta tR_1 } |
1130 |
> |
\] |
1131 |
> |
with |
1132 |
> |
\[ |
1133 |
> |
e^{\Delta tR_1 } = \left( {\begin{array}{*{20}c} |
1134 |
> |
0 & 0 & 0 \\ |
1135 |
> |
0 & {\cos \theta _1 } & {\sin \theta _1 } \\ |
1136 |
> |
0 & { - \sin \theta _1 } & {\cos \theta _1 } \\ |
1137 |
> |
\end{array}} \right),\theta _1 = \frac{{\pi _1 }}{{I_1 }}\Delta t. |
1138 |
> |
\] |
1139 |
> |
To reduce the cost of computing expensive functions in e^{\Delta |
1140 |
> |
tR_1 }, we can use Cayley transformation, |
1141 |
> |
\[ |
1142 |
> |
e^{\Delta tR_1 } \approx (1 - \Delta tR_1 )^{ - 1} (1 + \Delta tR_1 |
1143 |
> |
) |
1144 |
> |
\] |
1145 |
> |
|
1146 |
> |
The flow maps for $T_2^r$ and $T_2^r$ can be found in the same |
1147 |
> |
manner. |
1148 |
> |
|
1149 |
> |
In order to construct a second-order symplectic method, we split the |
1150 |
> |
angular kinetic Hamiltonian function can into five terms |
1151 |
> |
\[ |
1152 |
> |
T^r (\pi ) = \frac{1}{2}T_1 ^r (\pi _1 ) + \frac{1}{2}T_2^r (\pi _2 |
1153 |
> |
) + T_3^r (\pi _3 ) + \frac{1}{2}T_2^r (\pi _2 ) + \frac{1}{2}T_1 ^r |
1154 |
> |
(\pi _1 ) |
1155 |
> |
\]. |
1156 |
> |
Concatenating flows corresponding to these five terms, we can obtain |
1157 |
> |
an symplectic integrator, |
1158 |
> |
\[ |
1159 |
> |
\varphi _{\Delta t,T^r } = \varphi _{\Delta t/2,\pi _1 } \circ |
1160 |
> |
\varphi _{\Delta t/2,\pi _2 } \circ \varphi _{\Delta t,\pi _3 } |
1161 |
> |
\circ \varphi _{\Delta t/2,\pi _2 } \circ \varphi _{\Delta t/2,\pi |
1162 |
> |
_1 }. |
1163 |
> |
\] |
1164 |
> |
|
1165 |
> |
The non-canonical Lie-Poisson bracket ${F, G}$ of two function |
1166 |
> |
$F(\pi )$ and $G(\pi )$ is defined by |
1167 |
> |
\[ |
1168 |
> |
\{ F,G\} (\pi ) = [\nabla _\pi F(\pi )]^T J(\pi )\nabla _\pi G(\pi |
1169 |
> |
) |
1170 |
> |
\] |
1171 |
> |
If the Poisson bracket of a function $F$ with an arbitrary smooth |
1172 |
> |
function $G$ is zero, $F$ is a \emph{Casimir}, which is the |
1173 |
> |
conserved quantity in Poisson system. We can easily verify that the |
1174 |
> |
norm of the angular momentum, $\parallel \pi |
1175 |
> |
\parallel$, is a \emph{Casimir}. Let$ F(\pi ) = S(\frac{{\parallel |
1176 |
> |
\pi \parallel ^2 }}{2})$ for an arbitrary function $ S:R \to R$ , |
1177 |
> |
then by the chain rule |
1178 |
> |
\[ |
1179 |
> |
\nabla _\pi F(\pi ) = S'(\frac{{\parallel \pi \parallel ^2 |
1180 |
> |
}}{2})\pi |
1181 |
> |
\] |
1182 |
> |
Thus $ [\nabla _\pi F(\pi )]^T J(\pi ) = - S'(\frac{{\parallel \pi |
1183 |
> |
\parallel ^2 }}{2})\pi \times \pi = 0 $. This explicit |
1184 |
> |
Lie-Poisson integrator is found to be extremely efficient and stable |
1185 |
> |
which can be explained by the fact the small angle approximation is |
1186 |
> |
used and the norm of the angular momentum is conserved. |
1187 |
|
|
1188 |
+ |
\subsection{\label{introSection:RBHamiltonianSplitting} Hamiltonian |
1189 |
+ |
Splitting for Rigid Body} |
1190 |
|
|
1191 |
+ |
The Hamiltonian of rigid body can be separated in terms of kinetic |
1192 |
+ |
energy and potential energy, |
1193 |
+ |
\[ |
1194 |
+ |
H = T(p,\pi ) + V(q,Q) |
1195 |
+ |
\] |
1196 |
+ |
The equations of motion corresponding to potential energy and |
1197 |
+ |
kinetic energy are listed in the below table, |
1198 |
+ |
\begin{center} |
1199 |
+ |
\begin{tabular}{|l|l|} |
1200 |
+ |
\hline |
1201 |
+ |
% after \\: \hline or \cline{col1-col2} \cline{col3-col4} ... |
1202 |
+ |
Potential & Kinetic \\ |
1203 |
+ |
$\frac{{dq}}{{dt}} = \frac{p}{m}$ & $\frac{d}{{dt}}q = p$ \\ |
1204 |
+ |
$\frac{d}{{dt}}p = - \frac{{\partial V}}{{\partial q}}$ & $ \frac{d}{{dt}}p = 0$ \\ |
1205 |
+ |
$\frac{d}{{dt}}Q = 0$ & $ \frac{d}{{dt}}Q = Qskew(I^{ - 1} j)$ \\ |
1206 |
+ |
$ \frac{d}{{dt}}\pi = \sum\limits_i {\left( {Q^T F_i (r,Q)} \right) \times X_i }$ & $\frac{d}{{dt}}\pi = \pi \times I^{ - 1} \pi$\\ |
1207 |
+ |
\hline |
1208 |
+ |
\end{tabular} |
1209 |
+ |
\end{center} |
1210 |
+ |
A second-order symplectic method is now obtained by the composition |
1211 |
+ |
of the flow maps, |
1212 |
+ |
\[ |
1213 |
+ |
\varphi _{\Delta t} = \varphi _{\Delta t/2,V} \circ \varphi |
1214 |
+ |
_{\Delta t,T} \circ \varphi _{\Delta t/2,V}. |
1215 |
+ |
\] |
1216 |
+ |
Moreover, \varphi _{\Delta t/2,V} can be divided into two sub-flows |
1217 |
+ |
which corresponding to force and torque respectively, |
1218 |
+ |
\[ |
1219 |
+ |
\varphi _{\Delta t/2,V} = \varphi _{\Delta t/2,F} \circ \varphi |
1220 |
+ |
_{\Delta t/2,\tau }. |
1221 |
+ |
\] |
1222 |
+ |
Since the associated operators of $\varphi _{\Delta t/2,F} $ and |
1223 |
+ |
$\circ \varphi _{\Delta t/2,\tau }$ are commuted, the composition |
1224 |
+ |
order inside \varphi _{\Delta t/2,V} does not matter. |
1225 |
+ |
|
1226 |
+ |
Furthermore, kinetic potential can be separated to translational |
1227 |
+ |
kinetic term, $T^t (p)$, and rotational kinetic term, $T^r (\pi )$, |
1228 |
+ |
\begin{equation} |
1229 |
+ |
T(p,\pi ) =T^t (p) + T^r (\pi ). |
1230 |
+ |
\end{equation} |
1231 |
+ |
where $ T^t (p) = \frac{1}{2}p^T m^{ - 1} p $ and $T^r (\pi )$ is |
1232 |
+ |
defined by \ref{introEquation:rotationalKineticRB}. Therefore, the |
1233 |
+ |
corresponding flow maps are given by |
1234 |
+ |
\[ |
1235 |
+ |
\varphi _{\Delta t,T} = \varphi _{\Delta t,T^t } \circ \varphi |
1236 |
+ |
_{\Delta t,T^r }. |
1237 |
+ |
\] |
1238 |
+ |
Finally, we obtain the overall symplectic flow maps for free moving |
1239 |
+ |
rigid body |
1240 |
+ |
\begin{equation} |
1241 |
+ |
\begin{array}{c} |
1242 |
+ |
\varphi _{\Delta t} = \varphi _{\Delta t/2,F} \circ \varphi _{\Delta t/2,\tau } \\ |
1243 |
+ |
\circ \varphi _{\Delta t,T^t } \circ \varphi _{\Delta t/2,\pi _1 } \circ \varphi _{\Delta t/2,\pi _2 } \circ \varphi _{\Delta t,\pi _3 } \circ \varphi _{\Delta t/2,\pi _2 } \circ \varphi _{\Delta t/2,\pi _1 } \\ |
1244 |
+ |
\circ \varphi _{\Delta t/2,\tau } \circ \varphi _{\Delta t/2,F} .\\ |
1245 |
+ |
\end{array} |
1246 |
+ |
\label{introEquation:overallRBFlowMaps} |
1247 |
+ |
\end{equation} |
1248 |
+ |
|
1249 |
|
\section{\label{introSection:langevinDynamics}Langevin Dynamics} |
1250 |
|
|
1251 |
|
\subsection{\label{introSection:LDIntroduction}Introduction and application of Langevin Dynamics} |