You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
363 lines
13 KiB
363 lines
13 KiB
\chapter{Description of \SLAP\ Idealization}\label{theory}
|
|
|
|
The idealization of the body and the numerical algorithms required to
|
|
perform the spatial and temporal integration of the equations of
|
|
motion in \SLAP\ are described in this chapter. The idealized geometry
|
|
is described in the first section; the next section describes the
|
|
algorithms used to determine the spring and frictional forces at the
|
|
impact points. The explicit time integration scheme is explained in
|
|
the final section.
|
|
|
|
\section{Geometry Idealization}\label{s:ideal}
|
|
|
|
The impact response of a deformable body is idealized in \SLAP\ as a
|
|
simple three degree-of-freedom body. The three degrees-of-freedom are
|
|
the vertical, horizontal, and angular velocity at the center of
|
|
gravity (CG) of the body. The nonlinear force-deformation response of
|
|
the deformable body is represented by two piecewise linear ``springs''
|
|
which apply both a vertical force and a moment to the body. The
|
|
springs are located at the initial and secondary impact points. A
|
|
horizontal force and an additional moment are caused by frictional
|
|
forces at the point(s) of impact. The mass of the body is assumed to
|
|
be concentrated at the CG, and the idealization has the same mass
|
|
moment of inertia as the body. Figure~\ref{f:gi} shows a
|
|
cross-section of the geometry being analyzed and the \SLAP\
|
|
idealization.
|
|
|
|
\paragraph*{End Treatment} Two options are available for modeling
|
|
the spring attachment to the body: {\sf SQUARE}
|
|
and {\sf ROUND}. If the {\sf SQUARE} option is used, the spring is
|
|
constrained to be perpendicular to the axis of the rigid body; in
|
|
the {\sf ROUND} option, the spring is perpendicular to the rigid
|
|
surface. Figure~\ref{f:square} illustrates these two configurations.
|
|
In both cases, the force-displacement curve is defined in terms of the
|
|
displacement normal to the rigid surface. The effect of the different
|
|
end treatments is only important for large angle impacts; for shallow
|
|
angle impacts the difference in the response is negligible.
|
|
|
|
\section{Normal and Tangential Force Algorithms}
|
|
The algorithms used to determine the normal and tangential forces
|
|
resulting from the body deformation and friction between the body and
|
|
the rigid surface are described in this section.
|
|
|
|
\subsection{Normal Force---``Springs''}
|
|
The normal force results from the deformation of the body after impact
|
|
with the rigid surface. In \SLAP, a piecewise linear spring
|
|
definition is used to approximate the force-deformation behavior of
|
|
the actual body. An unloading modulus can also be specified which
|
|
represents the force-displacement behavior during rebound of the body.
|
|
In this way a plastic spring can be modeled. If the unloading modulus
|
|
is not specified, the body unloads along the original loading curve
|
|
simulating a non-linear elastic spring. The spring reloads along
|
|
the same path as it unloaded.
|
|
|
|
The algorithm that implements this behavior requires three variables
|
|
in addition to the spring definition: (1)~the current spring
|
|
displacement, \var{DISP}, (2)~the maximum spring displacement,
|
|
\var{DISPMX}, and (3)~a logical variable to determine if the spring
|
|
has rebounded. If the spring has not yet rebounded and is still
|
|
loading, the algorithm simply searches the spring definition until the
|
|
value of \var{DISP} is bounded by the displacement values of one of
|
|
the piecewise linear spring segments. It then linearly interpolates
|
|
to find the corresponding force. If the value of \var{DISP} is larger
|
|
than the maximum displacement in the spring definition, an error
|
|
message is printed and the program stops.
|
|
|
|
If the value of \var{DISP} is less than the value of \var{DISPMX}, the
|
|
spring is unloading. Two options are used to determine the spring
|
|
force. If the unloading modulus (\var{UNLOAD}) is zero, the unloading
|
|
path is along the spring definition curve, and the force calculation
|
|
proceeds as described in the previous paragraph. If the unloading
|
|
modulus is nonzero, the algorithm must unload at that slope from the
|
|
value of the maximum displacement. The force corresponding to the
|
|
maximum displacement \var{DISPMX} is calculated using the method
|
|
described in the previous paragraph. The force is then reduced by the
|
|
product of the unloading modulus and the rebound from the maximum
|
|
spring displacement. The spring force must be non-negative at all
|
|
times; if the calculated force is tensile, then the spring force is
|
|
set to zero.
|
|
|
|
\subsection{Tangential Force---Friction}
|
|
|
|
The tangential force is the result of friction at the point of impact of
|
|
the body with the rigid surface. The tangential force is equal to the
|
|
product of the coefficient of friction, \var{CF}, and the normal force,
|
|
\var{FRC}. The direction of this force is opposite to the direction of
|
|
the horizontal velocity at the impact point; no force is applied if the
|
|
horizontal velocity is zero.
|
|
|
|
The current algorithm has problems with high coefficients of friction
|
|
and when both ends are in contact with the rigid surface. Methods for
|
|
more accurately representing the frictional force are being developed
|
|
and will be implemented when they have been thoroughly tested.
|
|
|
|
\section{Explicit Time Integration}
|
|
\SLAP\ uses a central difference scheme to integrate the equations of
|
|
motion through time. Table~\ref{t:explicit} is a flowchart for the
|
|
explicit algorithm~\cite{Belyt}. In the table, $\dis$, $\vel$, and
|
|
$\acc$ are the displacements, velocities, and accelerations of the
|
|
three degrees-of-freedom, respectively; $\fext$ are the external
|
|
forces due to the deformation of the springs and friction at the
|
|
impact point; ${\bf M}$ is the mass matrix; $N$ is the step number;
|
|
and $\Delta t$ is the time increment. A constant time increment
|
|
$\Delta t$ is used in \SLAP.
|
|
|
|
\begin{table}[ht]
|
|
\begingroup\itemsep 0pt
|
|
\hrule
|
|
\begin{enumerate}
|
|
\item Set initial conditions: $\dis^0 = \dis(0)$, $\vel^{1/2}
|
|
= \vel(0)$, $\fext^0 = {\bf 0}$, $N=0$
|
|
\item\label{stepbeg} Update displacements: $\dis^{N+1} = \dis^N + \Delta
|
|
t\vel^{N+1/2}$
|
|
\item Compute external forces $\fext^{N+1}$ due to ``springs'' and
|
|
friction
|
|
\item Update accelerations: $\acc^{N+1} = {\bf M}^{-1} \fext^{N+1}$
|
|
\item $N \leftarrow N+1$
|
|
\item Update velocities: $\vel^{N+1/2} = \vel^{N-1/2} + \Delta t\acc$
|
|
\item Go to step \ref{stepbeg}
|
|
\end{enumerate}
|
|
\hrule
|
|
\endgroup
|
|
\caption{Flowchart for explicit integration of equations of
|
|
motion}\label{t:explicit}
|
|
\end{table}
|
|
|
|
The central difference method is conditionally stable. The stable time
|
|
step for this method is:
|
|
\begin{displaymath}
|
|
\Delta t
|
|
\le\min\left[\frac{2}{\omega_n}\left(\sqrt{1+\xi^2_n}-\xi_n\right)\right]
|
|
= \Delta t_{\rm stab}
|
|
\end{displaymath}
|
|
where $\omega_n$ is the natural frequency of the system and $\xi_n$ is
|
|
the fraction of critical damping in the $n^{\rm th}$ mode. No damping
|
|
is used in \SLAP\ so the stable time step calculation reduces to:
|
|
\begin{displaymath}
|
|
\Delta t_{\rm stab} = \frac{2}{\omega_{\max}}
|
|
\end{displaymath}
|
|
The value of $\Delta t_{\rm stab}$ is calculated internally in \SLAP; it
|
|
is then reduced by the {\sf TIME STEP SCALE FACTOR} read from the input
|
|
file. The default value of the {\sf TIME STEP SCALE FACTOR} is $0.1$
|
|
(see Table~\ref{tglob}, page~\pageref{tglob}). The reduction is not
|
|
required for stability, rather it is done for added resolution and
|
|
improved accuracy.
|
|
|
|
The following equation is used to determine the value of $\omega_n$
|
|
that is used to calculate the stable time step interval. Note that
|
|
$\lambda = \omega^2$ and $|\cdot|$ represents the determinant. The
|
|
horizontal degree-of-freedom is not used in the calculation.
|
|
\begin{displaymath}
|
|
\left|\begin{array}{ll} k_n + k_t - M\lambda & k_n l_n - k_t l_t \\
|
|
k_n l_n - k_t l_t & k_n l_n^2 + k_t l_t^2 - I\lambda
|
|
\end{array}\right|
|
|
= 0
|
|
\end{displaymath}
|
|
where $k$ is the maximum spring constant in the spring definition, $l$
|
|
is the length from the CG to the impact point, $M$ is the mass, $I$ is
|
|
the moment of inertia, and the subscripts $(\cdot)_n$ and $(\cdot)_t$
|
|
refer to the nose and tail of the body, respectively.
|
|
|
|
This equation is based on the assumption that both springs remain in
|
|
contact with the rigid surface and provide a tensile force when
|
|
stretched. In \SLAP, the springs release from the rigid surface and
|
|
provide no tensile forces. To accommodate this feature, the above
|
|
calculation is repeated three times with different values for $k_n$ and
|
|
$k_t$; the minimum value calculated for $\Delta t_{\rm stab}$ is
|
|
used. The three calculations are: (1)~both ends in contact, (2)~nose in
|
|
contact, tail released $(k_t=0)$, and (3)~tail in contact, nose released
|
|
$(k_n=0)$.
|
|
|
|
The integration is stepped through time using the calculated value of
|
|
$\Delta t$ until either both springs have unloaded, or the velocities
|
|
of both the {\sf NOSE} and {\sf TAIL} are positive. Data are written
|
|
to the {\sf EXODUS} postprocessing file at both the first and last
|
|
time step and every {\sf PLOT} (see Table~\ref{tglob},
|
|
page~\pageref{tglob}) steps throughout the analysis.
|
|
|
|
\begin{figure}
|
|
%\begin{center}
|
|
\unitlength 1in
|
|
\begin{picture}(6.0,8)
|
|
\thicklines
|
|
\put(0.25, 2.5){\framebox(.75,.3){Nose}}
|
|
\put(5.00, 3.5){\framebox(.75,.3){Tail}}
|
|
\put(3.125,2.0){\framebox(.75,.3){CG}}
|
|
\put(1.25, 1){\line(-1,4){0.25}}
|
|
\put(1.00, 2){\line( 4,1){4.0}}
|
|
\put(5.00, 3){\line(0,-1){1.0}}
|
|
\put(3.50, 2.6250){\circle*{.1}}
|
|
\put(5.25, 2.4000){\vector(0,-1){.4}}
|
|
\put(5.25, 2.5000){\makebox(0,0){$R_t$}}
|
|
\put(5.25, 2.6000){\vector(0, 1){.4}}
|
|
%
|
|
% force vectors
|
|
%
|
|
\put(3.50, 2.6250){\vector(0, 1){.5}}
|
|
\put(3.50, 2.6250){\vector(1, 0){.5}}
|
|
%
|
|
\put(5.00, 1.5 ){\vector(0, 1){.5}}
|
|
\put(5.00, 1.5 ){\makebox(0,0)[t]{$F_N^t$}}
|
|
\put(4.50, 2.0 ){\vector(1, 0){.5}}
|
|
\put(4.50, 2.0 ){\makebox(0,0)[r]{$F_T^t$}}
|
|
%
|
|
\put(1.25, 0.5 ){\vector(0, 1){.5}}
|
|
\put(1.25, 0.5 ){\makebox(0,0)[t]{$F_N^n$}}
|
|
\put(0.75, 1.0 ){\vector(1, 0){.5}}
|
|
\put(0.75, 1.0 ){\makebox(0,0)[r]{$F_T^n$}}
|
|
%
|
|
% Dimensions
|
|
%
|
|
\put(1.40, 1.4){\vector(1,-4){.10}}
|
|
\put(1.375,1.5){\makebox(0,0){$R_n$}}
|
|
\put(1.35, 1.6){\vector(-1,4){.10}}
|
|
%
|
|
\put(2.10, 2.5250){\vector(-4,-1){1.10}}
|
|
\put(2.25, 2.5625){\makebox(0,0){$l_n$}}
|
|
\put(2.40, 2.6000){\vector( 4, 1){1.10}}
|
|
%
|
|
\put(4.10, 3.0250){\vector(-4,-1){0.60}}
|
|
\put(4.25, 3.0625){\makebox(0,0){$l_t$}}
|
|
\put(4.40, 3.1000){\vector( 4, 1){0.60}}
|
|
%
|
|
% Rigid surface
|
|
%
|
|
\put(1,1){\line(1,0){4.5}}
|
|
\put(3.5,.8){Rigid Surface}
|
|
%
|
|
\put(1.50,2){\line(1,0){0.5}}
|
|
\put(1.75,2.05){\makebox(0,0)[b]{$\theta$}}
|
|
\thinlines
|
|
%
|
|
%
|
|
% draw the picture outline
|
|
%
|
|
%\thinlines
|
|
%\put(0,0){\line(1,0){6.0}}
|
|
%\put(0,1){\line(1,0){6.0}}
|
|
%\put(0,2){\line(1,0){6.0}}
|
|
%\put(0,3){\line(1,0){6.0}}
|
|
%\put(0,4){\line(1,0){6.0}}
|
|
%\put(0,5){\line(1,0){6.0}}
|
|
%\put(0,6){\line(1,0){6.0}}
|
|
%\put(0,7){\line(1,0){6.0}}
|
|
%\put(0,8){\line(1,0){6.0}}
|
|
%\put(0.0,0){\line(0,1){8.0}}
|
|
%\put(1.0,0){\line(0,1){8.0}}
|
|
%\put(2.0,0){\line(0,1){8.0}}
|
|
%\put(3.0,0){\line(0,1){8.0}}
|
|
%\put(4.0,0){\line(0,1){8.0}}
|
|
%\put(5.0,0){\line(0,1){8.0}}
|
|
%\put(6.0,0){\line(0,1){8.0}}
|
|
\end{picture}
|
|
%\end{center}
|
|
\caption{\SLAP\ Geometry Idealization ({\sf SQUARE} end)}\label{f:gi}
|
|
\end{figure}
|
|
|
|
|
|
|
|
\begin{figure}
|
|
%\begin{center}
|
|
\unitlength 1in
|
|
\begin{picture}(6.0,8)
|
|
\thicklines
|
|
\put(0.15, 1.7){\framebox(.75,.3){Nose}}
|
|
\put(5.10, 2.7){\framebox(.75,.3){Tail}}
|
|
\put(3.125,2.0){\framebox(.75,.3){CG}}
|
|
\put(1.25, 1){\line(-1,4){0.25}}
|
|
\put(1.00, 2){\line( 4,1){4.0}}
|
|
\put(5.00, 3){\line(0,-1){1.0}}
|
|
\put(3.50, 2.6250){\circle*{.1}}
|
|
%
|
|
% force vectors
|
|
%
|
|
\put(3.50, 2.6250){\vector(0, 1){.5}}
|
|
\put(3.50, 2.6250){\vector(1, 0){.5}}
|
|
%
|
|
\put(1.25, 0.5 ){\vector(0, 1){.5}}
|
|
\put(1.25, 0.5 ){\makebox(0,0)[t]{$F_N^n$}}
|
|
\put(0.75, 1.0 ){\vector(1, 0){.5}}
|
|
\put(0.75, 1.0 ){\makebox(0,0)[r]{$F_T^n$}}
|
|
%
|
|
% Moment arm dimension
|
|
%
|
|
\thinlines
|
|
\put(1.25,1.2){\line(0,1){1.925}}
|
|
\thicklines
|
|
\put(2,2.75){\vector(-1,0){0.75}}
|
|
\put(2,2.75){\vector( 1,0){1.50}}
|
|
\put(2.25, 3.0){\makebox(0,0){Moment Arm---{\sf SQUARE}}}
|
|
\put(1.0, 3.7){\framebox(4.0,.3){{\sf SQUARE} Moment Arm $\leq$ {\sf
|
|
ROUND} Moment Arm}}
|
|
%
|
|
% Rigid surface
|
|
%
|
|
\put(1,1){\line(1,0){4.5}}
|
|
\put(4.5,.8){Rigid Surface}
|
|
%
|
|
\put(1.50,2){\line(1,0){0.5}}
|
|
\put(1.75,2.05){\makebox(0,0)[b]{$\theta$}}
|
|
%
|
|
% ROUND End -- Top Half of figure
|
|
%
|
|
\thicklines
|
|
\put(0.15, 5.7){\framebox(.75,.3){Nose}}
|
|
\put(5.10, 6.7){\framebox(.75,.3){Tail}}
|
|
\put(3.125,6.0){\framebox(.75,.3){CG}}
|
|
\put(1.00, 5){\line( 0,1){1.0}}
|
|
\put(1.00, 6){\line( 4,1){4.0}}
|
|
\put(5.00, 7){\line(0,-1){1.0}}
|
|
\put(3.50, 6.6250){\circle*{.1}}
|
|
%
|
|
% force vectors
|
|
%
|
|
\put(3.50, 6.6250){\vector(0, 1){.5}}
|
|
\put(3.50, 6.6250){\vector(1, 0){.5}}
|
|
%
|
|
\put(1.0, 4.5 ){\vector(0, 1){.5}}
|
|
\put(1.0, 4.5 ){\makebox(0,0)[t]{$F_N^n$}}
|
|
\put(0.5, 5.0 ){\vector(1, 0){.5}}
|
|
\put(0.5, 5.0 ){\makebox(0,0)[r]{$F_T^n$}}
|
|
%
|
|
% Moment arm dimension
|
|
%
|
|
\thinlines
|
|
\put(1,6.2){\line(0,1){0.9250}}
|
|
\thicklines
|
|
\put(2,6.75){\vector(-1,0){1.00}}
|
|
\put(2,6.75){\vector( 1,0){1.50}}
|
|
\put(2.25, 7.0){\makebox(0,0){Moment Arm---{\sf ROUND}}}
|
|
%
|
|
% Rigid surface
|
|
%
|
|
\put(1,5){\line(1,0){4.5}}
|
|
\put(4.5,4.8){Rigid Surface}
|
|
%
|
|
\put(1.50,6){\line(1,0){0.5}}
|
|
\put(1.75,6.05){\makebox(0,0)[b]{$\theta$}}
|
|
\thinlines
|
|
%
|
|
%
|
|
% draw the picture outline
|
|
%
|
|
%\thinlines
|
|
%\put(0,0){\line(1,0){6.0}}
|
|
%\put(0,1){\line(1,0){6.0}}
|
|
%\put(0,2){\line(1,0){6.0}}
|
|
%\put(0,3){\line(1,0){6.0}}
|
|
%\put(0,4){\line(1,0){6.0}}
|
|
%\put(0,5){\line(1,0){6.0}}
|
|
%\put(0,6){\line(1,0){6.0}}
|
|
%\put(0,7){\line(1,0){6.0}}
|
|
%\put(0,8){\line(1,0){6.0}}
|
|
%\put(0.0,0){\line(0,1){8.0}}
|
|
%\put(1.0,0){\line(0,1){8.0}}
|
|
%\put(2.0,0){\line(0,1){8.0}}
|
|
%\put(3.0,0){\line(0,1){8.0}}
|
|
%\put(4.0,0){\line(0,1){8.0}}
|
|
%\put(5.0,0){\line(0,1){8.0}}
|
|
%\put(6.0,0){\line(0,1){8.0}}
|
|
\end{picture}
|
|
%\end{center}
|
|
\caption{Effect of {\sf ROUND} and {\sf SQUARE} End Treatment}\label{f:square}
|
|
\end{figure}
|
|
|