Chapter 24 | The Momentum Solver
The Momentum Solver
Virtual CRASH includes the amazing Momentum Solver tool. This tool is used to solve both 1-dimensional (collinear) and 2-dimensional configurations. Below, the Momentum Solver is illustrated for staged collisions.
The Algorithm
The Momentum Solver tool works in 3 steps described below:
1. Post-Impact Trajectory Calculation
First, calculate the implied post-impact speed for the 2 vehicles implied by Work-Energy:
$$ v_{k,f} =\sqrt {(v_{k,end})^2 + \sum_{j=1}^{Nsegments} 2 \cdot a_{k,j} \cdot \delta r^{post}_{k,j}} \tag{1} $$
where k is the vehicle number, j is the path segment, \(a_{k,j}\) is the deceleration vehicle k undergoes while on path segment j, \(\delta r_{k,j}^{post}\) is the path segment j length traveled by vehicle k, and \(v_{k,end}\) the terminal speed at the end of the post-impact trajectory, specified by the “v end” input (described below). \(a_{k,j}\) is dependent on the choice of deceleration input options described below. \(\delta r_{k,j}^{post}\) depends on the post-impact trajectory dawn by the user. The values of \(v_{1,f}\) and \(v_{2,f}\) are then used in either the 1-D or 2-D calculation outlined below.
2. COLM Calculation
1-D (Collinear) Calculation:
The 1-dimensional COLM calculation takes the scalar value post-impact speeds from step 1 above and creates 1-D velocity vectors by assigning sign values which are determined by analyzing if the vehicle 1 post-impact and vehicle 2 post-impact trajectory segments just after impact, and vehicle 2 pre-impact trajectory segment just prior to impact, are parallel (positive) or anti-parallel (negative) to the vehicle 1 trajectory segment just prior to impact. Here “parallel” simply means the dot-product of unit-vectors pointing along the line segment directions is positive; otherwise, the segments are considered anti-parallel. This effectively treats vehicle 1’s pre-impact trajectory segment as the local x-axis for the 1-D COLM calculation.
\(v_{1,i}\) (“velocity vehicle 1” at impact) known:
$$ v_{2,i} = v_{2,f} + {m_1 \over m_2} \cdot (v_{1,f}-v_{1,i}) \tag{2} $$
\(v_{2,i}\) (“velocity vehicle 2” at impact) known:
$$ v_{1,i} = v_{1,f} + {m_2 \over m_1} \cdot (v_{2,f}-v_{2,i}) \tag{3} $$
\(v_{Rel,i}\) (“relative speed” at impact) known:
$$ v_{1,i} = v_{1,f} - {m_2 \over m_1 + m_2} \cdot ((v_{1,f}-v_{2,f})-v_{Rel,i}) \tag{4} $$
$$ v_{2,i} = v_{2,f} + {m_1 \over m_1 + m_2} \cdot ((v_{1,f}-v_{2,f})-v_{Rel,i}) \tag{5} $$
\(E_{Lost}\) (“energy lost” just after impact) known:
Solve for 2 unknowns \((v_{1,i}, v_{2,i})\) using 2 equations given by Conservation of Energy and 1-D Conservation of Linear Momentum equations:
$$ {1 \over 2} m_1 v_{1,i}^2 + { 1 \over 2} m_2 v_{2,i}^2 = {1 \over 2} m_1 v_{1,f}^2 + { 1 \over 2} m_2 v_{2,f}^2 + E_{Lost} $$
$$ m_1 v_{1,i} + m_2 v_{2,i} = m_1 v_{1,f} + m_2 v_{2,f} $$
Note, when the “energy lost” option is used, the interface requires the user specify if \(v_{1,i} > v_{2,i}\) by enabling “relative 1 to 2”. For example, in the example below, vehicle 1 rear-impacts vehicle 2, and therefore we see “relative 1 to 2” enabled. Note, prior to the Spring 2021 Software Update, the user interface required placing a “-” sign in front of “energy lost” input value when \(v_{1,i} > v_{2,i}\). Also note, the local x-axis for the 1-D COLM calculation is shown pointing along vehicle 1’s pre-impact trajectory direction.
In the example head-on collision below, where \(v_{1,i} > v_{2,i}\) since \(v_{2,i}\) is a negative value, again “relative 1 to 2” is enabled.
In the final example below, we have vehicle 2 rear-impacting vehicle 1, thus implying that \(v_{2,i} > v_{1,i}\); therefore, “relative 1 to 2” is not enabled.
Also note, when the “relative speed” option is used, the “relative 1 to 2” is enabled in all cases except the one depicted above, where \(v_{2,i} > v_{1,i}\). In such a case, “relative 1 to 2” should not be enabled. Note, prior to the Spring 2021 Software Update, the user interface required placing a “-” sign in front of “relative speed” input value when \(v_{2,i} > v_{1,i}\).
2-D Calculation:
Solve for 2 unknowns \((v_{1,i}, v_{2,i})\) using 2 equations given by decomposition of momentum vectors and 2-D Conservation of Linear Momentum (COLM):
$$ m_1 v_{1,i} \cos\theta_{1,i} + m_2 v_{2,i} \cos\theta_{2,i}= m_1 v_{1,f}\cos\theta_{1,f} + m_2 v_{2,f} \cos\theta_{2,f} $$
$$ m_1 v_{1,i} \sin\theta_{1,i} + m_2 v_{2,i} \sin\theta_{2,i}= m_1 v_{1,f}\sin\theta_{1,f} + m_2 v_{2,f} \sin\theta_{2,f} $$
Here {\(\theta_{1,i}\), \(\theta_{1,f}\), \(\theta_{2,i}\), \(\theta_{2,f}\)} are given by the tangent to the end of the pre-impact trajectory and start of the post-impact trajectory, as projected onto the Momentum Solver tool’s local x-y plane.
3. Pre-Impact Trajectory Calculation
Finally, the velocity at the start of the pre-impact trajectory is given by:
$$ v_{k,start} =\sqrt {(v_{k,i})^2 + \sum_{j=1}^{Nsegments} 2 \cdot a_{k,j} \cdot \delta r^{pre}_{k,j}} \tag{6} $$
2-Dimensional Configuration Example
To explore the functionality of the Momentum Solver tool, we begin by importing and scaling our diagram for RICSAC test #7. Recall from Chapter 12, the Smith and Noga diagrams have slight scaling errors, so CG markers were placed into our scene to depict the vehicle positions at impact and rest as reported by the experimenters.
Next, left-click on Create > Helpers 2D > Linear Momentum.
Left-click anywhere in the scene to place the Momentum Solver tool, then right-click to terminate the command.
You will see an instance of the Momentum Solver in the project menu. The tool is made of 2-dimensional vehicle icons and spline curves. The overall placement of the tool can be changed by either using position-local or by using the “Restrict to Plane XY” cursor control. Users can switch between the 1-D collinear calculation or 2-D calculation using the dropdown in the “method” menu. The color of the vehicle icons can be modified in the “vehicle 1” and “vehicle 2” menus. Once the tool is moved to the desired area within the environment, the yellow dot control grips can be used to position the initial position, impact position, and rest position vehicle icons for vehicle 1 and for vehicle 2.
Because 3-dimensional spline curves are used to build the pre-impact and post-impact trajectories, additional control vertices (CVs) can be introduced as needed – like the path animation tool.
The starting orientation, orientation at impact, and orientation at rest can be set in the “vehicle 1-inputs” and “vehicle 2-inputs” menus. Yaw fast control icons will also appear when the mouse cursor hovers over these positions. In the example below, vehicle 2 comes to rest with yaw 180 degrees relative to its trajectory.
Additional interposition can be included by using the “vehicle 1-interpositions” and “vehicle 2-interpositions” menu. Either left-click on “add interposition” or switch to interposition selection type. Hover the mouse over the trajectory line, then left-click and hold the yaw rotation fast control icon to automatically introduce an interposition. Yellow dot control grip can be used to control the position of the interposition. Note, the interposition’s “distance” value is the distance along the post-impact path segment.
In the “vehicle 1” and “vehicle 2” menus, the vehicle inertial properties, as well as other properties, can be specified.
If you prefer to use the data from an already existing simulated vehicle object, hover your mouse over one of the vehicle icons, left-click on the vehicle link fast control icon and hold, then drag your mouse cursor over the simulated vehicle. You will then see the simulated vehicle object snap over the vehicle icon. You will also see the vehicle input data repopulate with data based on the simulated vehicle object. If you wish to use a simulated vehicle without using its data, then deselect the “inherit data” toggle in the “link” menu. This also forces the 3D vehicle objects to move along the Momentum Solver’s pre- and post-impact trajectories, thereby providing a compelling visual. The Momentum Solver can be used with or without 3D vehicle objects.
After we have roughly laid out our trajectories and linked our simulated vehicles, we then want to specify the remaining parameters necessary for the momentum conservation calculation. “v end” is the final speed at the end of the post-impact trajectory. This can be set to any value. In this case, both vehicles slide to rest, and so we want to use 0 mph for this value. The “friction pre-impact” and “friction post-impact” are the locked wheel drag factors for the pre-impact and post-impact trajectories. The experimenters reported a value of 0.87. If needed, the vehicles can be made to decelerate along the pre-impact trajectories by specifying either “acceleration pre-impact” or “pedal position pre-impact”. In our example case, the vehicles were guided to impact at a constant velocity, therefore these inputs are left at 0 ft/s2. Note, if friction zones are used in the environment, and if either the pre-impact or post-impact trajectory segments overlap with any combination of friction zones, the adhesion value specified for the friction zones may override either one of both the “friction pre-impact” and “friction post-impact” input values. This is useful in cases where complex scene geometry makes it easier to simply draw out friction various zones with filled polyshapes rather than defining path segments in the interpositions menu and using either modify friction or use acceleration. For post-impact path segments defined in the interpositions menu, if either “modify friction” or “use acceleration” is used, the specified friction or acceleration value for the interposition will override both “friction post-impact” and friction zone adhesion values. See the section “Deceleration Priority” below for more details on which options are given higher priority for deceleration rate calculations.
The experimenters reported the post-impact rolling resistance values for each vehicle wheel. Using the “wheels separately post-impact”, we can enter each of the rolling resistance values. “ratio 1” corresponds to the driver side front wheel, “ratio 2” corresponds to the passenger side front wheel, “ratio 3” corresponds to the passenger side rear wheel, and “ratio 4” corresponds to the passenger side rear wheel. Finally, rather than using a single effect drag factor for the post-impact trajectory of our vehicles, we want to use a variable drag factor that depends both on vehicle slip angle and our rolling resistance values. With the “use tire forces” option enabled, Virtual CRASH will use the CRASH formulation [1] (here we use the path segment index \(j\) to indicate values that may be defined locally as a function of position along trajectory):
$$ \mu_j = \mu_{0,j} \sqrt{ \sin^2\alpha_j + f_j^2\cos^2\alpha_j} \tag{7} $$
where \(\mu_{0,j}\) is “friction post-impact” and \(\alpha_j\) is the slip angle estimated as the angle between the vehicle’s heading and the instantaneous direction of travel determined by the shape of the post-impact trajectory. \(f_j\) is the total effective fraction of maximum longitudinal deceleration given by:
$$ f_j = \sum_{n=1}^{Nwheels} ({N_{z’’,n} \over W}) \cdot f_{x’’,n,j} \tag{8} $$
where W is the total vehicle weight, \(f_{x’’,n,j}\) fraction of maximum drag to apply at wheel n (given by ratio 1, 2, 3, and 4), and \(N_{z’’,n}\) is the static normal load at wheel n. The deceleration along segment j is then given by:
$$ a_j = \mu_{0,j} g f’_{j} \tag{9} $$
where
$$f’_j = \sqrt{\sin^2 \alpha_j + f_j^2 \cos^2 \alpha_j} \tag{10} $$
If “wheels separately post-impact” is disabled, the value of \(f_{x’’,n,j}\) is set to the same value for all wheels and is set to “pedal position post-impact” (this also automatically sets “acceleration post-impact” and vice versa).
Note, if “use tire forces” is disabled, then arbitrary roll and pitch angles can be specified for both initial and final and final conditions as well as for interpositions. This is useful in cases where the Momentum Solver is to be used in rollovers or in cases where an object slides on its side from impact to rest. When “use tire forces” is disabled, \(a_j\) is given by the “acceleration pre-impact” and “acceleration post-impact” or the corresponding pedal position inputs; that is:
$$ a_j = \mu_{0,j} g f_j \tag{11} $$
where \(f_j\) is given by equation (8).
Finally, making fine adjustments to the pre-impact and post-impact trajectories, taking care to match the tire trajectory indicators with the tire marks in the diagram, our final results can be obtained by either reading off the initial speed values displaced within the environment, or by reading the “impact velocity” values in the “vehicle 1-results” and “vehicle 2-results” menus. In this example, our implied pre-impact speeds are within 5% of the reported values of 29.1 mph for both vehicles. Note, just like with the Path Animation tool, both the On-screen Dynamics Info and Dynamics Info tools can be used on the vehicle objects themselves. The vehicle sequences entries can also be specified in order to improve the appearance of the final animated motion, for example, by specifying steering angles or by locking wheels using deceleration sequences.
The Momentum Solver works in a similar way to the Path Animation tool in that 3D simulated vehicle objects are constrained to move along the specified spline paths. Before creating a final rendering of our project, we want to enhance the realism by using the “spring effect” option at the bottom of the “vehicle 1” and “vehicle 2” menus. Increasing this value to 100% allows some roll and pitch freedom, helping to give a less rigid appearance to the vehicle motion.
1-Dimensional Configuration Example
For collinear collisions, simply use the type dropdown to “collinear 1-D” in the “method” menu. In the example collinear impact (RICSAC 3) shown below, vehicle 2 begins at rest. Therefore, we use “velocity vehicle 2” for the “known value” dropdown, and set its value to 0 mph. Other options are energy lost, relative velocity, and velocity vehicle 1.
Finally, because vehicle 2 is at rest, we do not need its pre-impact trajectory; therefore, in the “vehicle 2-inputs” menu, “pre-impact motion” is disabled. With “pre-impact motion” disabled, a simple angle control grip is used to set the initial orientation for vehicle 2.
In this example, the Momentum Solver tool yields an estimate for vehicle 1’s pre-impact speed that is within 1.5% of the true value.
“results” and “vehicle results” menu
In the “vehicle 1-results” and “vehicle 2-results” menus, various outputs can be found.
distance pre-impact: the pre-impact travel distance traversed by the vehicle. This value is determined by the user’s design of the pre-impact trajectory.
distance post-impact: the post-impact travel distance traversed by the vehicle. This value is determined by the user’s design of the post-impact trajectory.
duration pre-impact: the time needed for the vehicle to travel distance pre-impact. This value is determined by the user’s design of the pre-impact trajectory as well as the Momentum Solver’s speed versus distance solution.
duration post-impact: the time needed for the vehicle to travel distance post-impact. This value is determined by the user’s design of the post-impact trajectory as well as the Momentum Solver’s speed versus distance solution.
velocity pre-impact: pre-impact speed estimate based on COLM calculation.
velocity post-impact: post-impact speed estimate based on distance pre-impact, v end, and post-impact deceleration characteristics.
delta v: magnitude of velocity post-impact - velocity pre-impact vectors, where vector directions are taken from tangents to pre- and post-impact trajectory lines at impact position vehicle icons (Note, this is how delta v is calculated for both methods type:collinear 1-D and type:linear 2-D).
delta vx: delta v vector projection along the axis created by the pre-impact velocity vector of vehicle 1.
delta vy: delta v vector projection along the axis orthogonal to that created by the pre-impact velocity vector of vehicle 1.
yaw rate pre-impact: pre-impact yaw rate. This is determined by the implied yaw rate resulting from user input pre-impact yaw configurations.
Impulse centroid dependent outputs
With cursor control in “Select, Move and Manipulate” [F3], the yellow and black impulse centroid indicator can be moved anywhere in the scene (see above image). Starting from the common velocity assumption (that is, setting Appendix 1: equation (33) equal to 0), one can solve for the implied impulse on vehicle 1, \(J_{1}\), needed to ensure that common velocity at the impulse centroid is satisfied. The magnitude of this impulse is reported in the “results” menu. The direction of the impulse vector with respect to vehicle 1’s reference frame is given in the “vehicle 1-results” menu as pdof. The equal and opposite impulse pdof is found in “vehicle 2-results”. Note, the pdof is given in SAE convention.
With known \(J_{1}\), Appendix 1: equation (27) can be used to estimate both vehicle’s post-impact yaw rates, found in the “vehicle 1-results” and “vehicle 2-results” menus. In these same menus, Velocity at damage centroid is given by the initial relative velocity vector at the impulse centroid location (this accounts linear and rotation motion pre-impact).
An estimate of implied restitution can be found in the “results” menu. This is estimated by taking the negative ratio of separation-velocity vector projected on the impulse axis to closing-velocity vector projected on the impulse axis. Closing and separation velocities are calculated using initial and final velocity vector estimates from the Momentum Solver tool. Note, to estimate the full impulse, including estimated restitution effect, multiply results:impulse by a factor of (1 + results:restitution). To estimate full post-impact yaw rates, including estimated restitution effect, multiply post-impact yaw rate by a factor of (1 + results:restitution).
In the “results” menu, these outputs can also be found:
energy pre-impact: the total pre-impact linear kinetic energy of the system (linear + rotational if method: type is set to “linear 2D”, where the yaw rates are given by the pre and post-impact values described above).
energy post-impact: the total post-impact linear kinetic energy of the system (linear + rotational if method: type is set to “linear 2D”, where the yaw rates are given by the pre and post-impact values described above).
energy lost: |energy post-impact - energy pre-impact|
Use on 3D Terrains
Just like the Path Animation tool, the vehicle trajectories defined with the Momentum Solver tool are 3D spline curves. For trajectories drawn on 3D terrain surfaces, additional control vertices (CVs) can be introduced in order to resolve the fine details of the mesh geometry. In the example below, the SUV rolls down the shoulder, where the roll angles are controlled by “start roll” and “end roll” in the vehicle inputs menu. Additional roll angles are defined in the interpositions menu. Five CVs are used to define the trajectory shape. The CV-z positions are automatically determined by sampling the terrain mesh elevation beneath the mouse cursor. Additional CVs are introduced by hovering the mouse cursor over the trajectory line, left-clicking and holding the “+” icon, and moving the mouse. Finally, in the example show below, we use set “v end” to 2 mph for our SUV in order to release the SUV to simulation control with non-zero speed just as the SUV comes to rest. This improves the realism as the SUV settles to static equilibrium with some small amount of oscillatory behavior.
To account for slopes, the rotation-local yaw, pitch, and roll values of the Momentum Solver can be adjusted like any object in Virtual CRASH. If you adjust these values, remember, the momentum calculations are performed by using vehicle scalar speed values with impact and departure angles defined relative to the Momentum Tool’s local x-y plane, neglecting external forces during impact, including gravity. Additionally, just like with the Path Animation tool, gravitational acceleration/deceleration due to variations in terrain geometry as the vehicles travel along pre- and post-impact trajectories must be accounted for either by using an effective acceleration or by adjusting friction.
Hand-off to Simulation
By enabling the “continue with kinetics” option, as shown in the above example rollover, the simulated objects will revert to simulation control once the reach the end of the post-impact trajectory. This powerful functionality opens a lot of possibility to the user, much like the “off” sequence type for the Path Animation tool.
Deceleration priority
Deceleration rates are calculated either by using the CRASH model [1] (“use tire forces” enabled) which takes into account slip angle (equations 7 - 10) or without regard to slip angle (“use tire forces” disabled. See equation 11). In either case, the user must specify either the acceleration/pedal position or percent wheel lockup (“wheels separately” enabled).
Pre-impact motion
Deceleration rates can be specified explicitly globally over the full length of the pre-impact trajectory using “acceleration pre-impact” or equivalently using “pedal position pre-impact”. The deceleration rate is applied uniformly unless the coefficient of friction is modified along the pre-impact trajectory as a function of position. For the pre-impact trajectory, the coefficient of friction (\(\mu_{0,j}\)) can only be modified be inserting friction zones. Multiple friction zones can be used. For pre-impact trajectories, the priority for the deceleration rate calculations is determined by:
(highest priority) friction zones: Friction zones modify \(\mu_{0,j}\) locally along the portion of the pre-impact trajectory underneath the friction zone region. The adhesion value defined for any friction zones will supersede “friction pre-impact”.
(lowest priority) “friction pre-impact” and “acceleration pre-impact”. These are applied globally over the full pre-impact trajectory.
Post-impact motion
Deceleration rates can be specified explicitly globally over the full length of the post-impact trajectory using “acceleration post-impact” or equivalently using “pedal position post-impact”. The deceleration rate is applied uniformly unless the coefficient of friction is modified along the post-impact trajectory as a function of position (using friction zones or interpositions) or the acceleration rate is modified (using interpositions). For post-impact trajectories, the priority for the deceleration rate calculations is determined by:
(highest priority) “use acceleration” enabled: In the interpositions menu. Allows user to explicitly specify uniform deceleration rate to apply when vehicle is traveling along interposition path segment. This option supersedes any effects of friction zones, “friction post-impact”, and “acceleration post-impact”.
“modify friction” enabled: In the interpositions menu. Allows user to specify coefficient of friction (\(\mu_{0,j}\)) to be used along path segment j defined by the interposition. This option supersedes any effects of friction zones or “friction post-impact” along path segment j defined by the interposition.
friction zones: Friction zones modify (\(\mu_{0,j}\)) locally along the portion of the post-impact trajectory underneath the friction zone region. The adhesion value defined for any friction zones will supersede “friction post-impact”.
(lowest priority) “friction post-impact” and “acceleration post-impact”. These are applied globally over the full post-impact trajectory.
Limitations
The same limitations apply to the use of the Momentum Solver tool as any Conservation of Linear Momentum (COLM) hand calculation. The end user is expected to be familiar with such limitations as well as with potential sources of calculational sensitivities such as those due to large mass differences between interacting vehicles, pre- and post-impact travel directions (impact and departure angles), as well as external forces.
References
[1] See Traffic Crash Reconstruction, 2nd Edition, Lynn Fricke, Northwester University Center for Public Safety, ISBN 0-912642-03-3.
© 2024 Virtual CRASH, LLC. All Rights Reserved