Mechanical Simulation

VehicleSim Products

755 Phoenix Drive, Ann Arbor MI, 48108, USA
Phone: 734 668-2930 • Fax: 734 668-2877 • Email: info@carsim.com

carsim.com

Modular Vehicle Models
Michael Sayers, Ph.D., Chief Technology Officer
Modular Multibody Models ...................................................................................1
Multibody Vehicle Models for CarSim and TruckSim ..........................................1
Layout of the Vehicle: Units and Axles ...........................................................2
Additional Suspension Options........................................................................4
Connecting Modules Between Vehicle Units ..................................................4Multiple Vehicles in a Single VS Math Model ................................................4
Multibody Vehicle Models for BikeSim ................................................................ 5CarSim, TruckSim, and BikeSim contain VehicleSim (VS) Solver dynamic libraries withModularity functions that construct VS Math Models for vehicles or other mechanical systems,
based on the specifications set in input files. The VS Math Models then solve the equations ofmotion for the model, and generate output variables of interest.
The general operation of VS Math Models is described in the VS Math Models Reference
Manual; this document describes the modules in CarSim, TruckSim, and BikeSim that areavailable for constructing a custom VS Math Model to simulate one or more vehicles.

Modular Multibody Models
The vehicle models used in BikeSim, CarSim, and TruckSim involve multiple rigid bodies thatare connected. The equations of motion for multibody models are machine-generated at
Mechanical Simulation by a symbolic multibody program called VS Lisp (originally calledAutoSim). With 30 years of continued use and development, VS Lisp is routinely used togenerate highly optimized equations of motion customized for specific 3D multibody systems thatoccur frequently as sub-system modules in full vehicle models for motorcycles, cars, and trucks.
VS Solver libraries include multiple modules made from machine-generated code, plus handwritten multibody code for assembling the modules into a full vehicle model, plus libraries ofmodels of other elements in the vehicle model such as springs, brakes, tires, steering systems,
powertrain components, and controllers. These resources are used to construct a VS Math Modelwith a specific vehicle layout, and possibly selected optional features.

Multibody Vehicle Models for CarSim and TruckSim
CarSim and TruckSim include three types of multibody modules:
1. Lead Unit Sprung Mass. All lead-unit modules have a sprung mass with six degrees offreedom (DOF), aerodynamic effects, no suspensions, possibly actions from a trailing
hitch, and possibly actions from user-defined forces and moments.

CarSim, TruckSim, and BikeSim

1/5

July 2020

2. Trailer Sprung Mass. All semitrailer modules have a sprung mass with a leading hitch,
aerodynamic effects, no suspensions, possibly actions from a trailing hitch, and possibly
actions from user-defined forces and moments.
3. Suspension. All suspension modules a single suspension with four DOF with a means toconnect to a sprung mass. There are two basic suspension types: generic, in which the left
and right move up and down independently (with possible arbitrary coupling of the twosides); and solid axle. Separate suspension modules are provided for suspensions with orwithout full active 3D steering of the wheels.
Both products include an option for representing frame twist. In a model with frame twist,
separate modules are defined that account for two rails in a sprung mass that pitch out-of-phase torepresent the frame twist. These modules have the extra features:·Sprung masses (lead or semitrailer): each sprung mass module includes the two rails
as rigid bodies, constrained to pitch out-of-phase, and adding one DOF to the model.

·Suspensions: the suspension models attach to the frame rails rather than the basic
sprung mass.

Layout of the Vehicle: Units and Axles
Table 1 lists the multibody modules in CarSim and TruckSim.
Table 1. Existing vehicle modules.
ModuleLead unit w. 6 DOF
Lead w. engine
Lead w. rails
Lead w. rails + suspended cab
Semi
Semi w. rails
Solid axle, steered
Solid axle for rails, steered
Generic/independent, steered
Generic/independent for rails, steered
Solid axle, not steered
Solid axle for rails, not steered
Generic/independent, not steered
Generic/independent for rails, not steered
Twist beam (legacy)
Twist beam for rails (legacy)
Virtual steer, independent
X DOF, generic/independent, steered
X DOF, generic/independent, not steered

Codenone
E_F_F_none
F_Product
Specific

TypeCarSim

Lead-unit sprung mass

TruckSim
BothSemitrailer sprung massSI
BothSSuspension

ITVI

There some differences between the two products:

2/5CarSim

·CarSim supports the option to have lead-unit sprung mass with engine mounts and aseparate engine body. This adds 12 DOF to the sprung mass module.

·TruckSim includes a suspended cab on the lead unit sprung mass with frame twist.
This adds four DOF, in addition to the one DOF added by the frame twist.

·CarSim includes a suspension with a virtual steer axis. Wheel motions (includingsteer) are defined with 2D kinematical tables with jounce and steering rack travel as
the independent variables.

·CarSim incudes Generic suspensions with an extra X (longitudinal) DOF, with andwithout steering.

The VS Solver library has a function to define a stripped-down VS Math Model with a minimumof system parameters and a few commands. That model reads a Simfile and Parsfiles, and extends
the model when it reads a command MODEL_LAYOUT with a text description. The text definition
specifies the number of vehicles, the number of vehicle units, the number of suspensions on eachunit, and the category of each suspension. The MODEL_LAYOUT text descriptions is assembled
using the characters shown in the table, along with underscore characters ‘_’ to separate
suspensions that are not part of a tandem or tridem, and double-underscores ‘__’ to separate
vehicle units. Some example MODEL_LAYOUT descriptions:·

I_I specifies a vehicle with generic/independent front and rear suspensions.

·

I_SS specifies a vehicle with generic/independent front and a tandem rear with solidaxles.

·

F_I_S specifies a vehicle with frame twist, a generic/independent front suspension,and a solid rear axle. If the vehicle is in TruckSim, it also has a suspended cab.

·

E_I_I specifies a CarSim vehicle with a suspended engine body andgeneric/independent suspensions front and rear.

·

S_SS__SSS specifies a combination vehicle whose lead unit has a solid front axle
and rear tandem with two solid axles, towing a trailer with a tridem suspension withthree solid axles.

The MODEL_LAYOUT description is used by the VS Math Model to add many keywords to aninternal database for parameters and variables related to the sprung masses, suspensions, wheels,brakes, and other parts of the vehicle model. That database is used to parse more input
information read from Parsfiles, setting values for many of the parameters.
A CarSim or TruckSim VS Solver functions can assemble a VS Math Model for a vehicle using alead unit with two or more suspensions, and multiple semitrailers, each with at least one
suspension. The methods for combining modules allow multiple instances of a module to beadded (e.g., multiple suspensions in a TruckSim vehicle).
The CarSim browser GUI supports two-axle motor vehicles, and semitrailers with one, two, or
three suspensions. The TruckSim GUI supports up to five axles in the motor vehicle, andsemitrailers with up to four axles. The VS Solvers support VS Math Models with almost
unlimited combinations; examples are provided in the TruckSim database showing how vehicles
can be constructed with more than five axles on the lead unit, and more than four semitrailers.
3/5Additional Suspension Options
Other keywords are used to determine which specific module should be used to provide solver
equations for a suspension. For example, Table 1 shows four modules that have the code S (solidaxle suspension), with differences depending on whether the suspension is attached to a sprungmass with frame twist, and whether the suspension has wheels that can be steered.
The four options supported in TruckSim for solid and generic/independent suspensions arehandled after the Parsfiles have been read, but before the initialization is performed. Twoconditions are considered to determine which of the four possible suspension modules are used
for a specific axle:
1. If the sprung mass has frame twist, the choice is reduced to two options (steered orunsteered) that connect the suspension to rails attached to the sprung mass.
2. If this is axle 1, or if the parameter OPT_STEER_EXT for the axle is not 1, then thesuspension is steered. Otherwise, it is unsteered.
These two conditions combine to cover the four possible suspension modules.
For CarSim, an additional consideration for a generic/independent suspension is whether thecommand DEFINE_SUSP_X_DOF had been applied for the axle. If so, one of the X DOF
modules is installed. (This option is not supported for sprung masses with frame twist.)

Connecting Modules Between Vehicle Units
A vehicle with one or more trailers has multiple vehicle units. The hitches that connect hitch
points on the two connected units are modeled with three sets of translational springs anddampers in the X, Y, and Z directions of the sprung mass coordinate system of the trailing unit.
The translational spring-damper pairs exist to keep the distance between the hitch points in thetwo vehicle units small. In most cases, exact displacement is not of interest. The stiffness anddamping should be high enough that the displacement is very small, but not so high that themodel becomes numerically unstable and crashes. Our main concern is how the frequencies of theDOFs relate to the vehicle at large. Accordingly, the spring and damper coefficients are specified
using parameters for frequency and damping ratios: HITCH_FREQ (Hz) and HITCH_ZETA(damping ratio). The default value used for all such connections are 40 Hz for frequencies, and0.1 for damping ratios.
In versions prior to 2018.0, hitches had rigid connections that prevented translational deflection.
When comparing results from 2018.0 and newer to older versions, small differences in themotions will exist due to the hitch deflections (typically a few millimeters).

Multiple Vehicles in a Single VS Math Model
Starting with version 2020.1, CarSim and TruckSim can construct VS Math Models with up tofour vehicles, each with its own lead unit. This capability is not supported by the GUI; examples
shipped in the databases show how to set up a model with multiple vehicles.
The main reasons for including multiple vehicles in a single VS Math Model involve simulations
involving interactions of vehicles, where they can detect each other and respond accordingly.

4/5

Multibody Vehicle Models for BikeSim
BikeSim includes two types of multibody modules:
1. Front Part. The front of the model has everything from the front steering head to thefront wheel, with all connecting linkages and rotations.
2. Rear Part. The rear part of the model includes the sprung mass, the rear suspension, andthe rider.
Table 2 lists the multibody modules in CarSim and TruckSim.
Table 2. Existing vehicle modules.
ModuleTelescopic fork with frame flexibility
Telescopic fork without frame flexibility
Variable-caster fork with frame flexibility
Variable-caster fork without frame flexibility
Two-wheeled front with frame flexibility
Two-wheeled front without frame flexibility
Frame, rider, rear swing arm
Frame, rider, rear swing arm with flexibility

Code
fixed_casterrigid_fixed_castervariable_casterrigid_variable_caster
three_wheeled
rigid_three_wheeled
none_flex

PartFront

Rear

The code used for the vehicle layout is made by combining the front and rear codes. If the rear
module has a swing arm with no flexibility in twist, the code is simply that for the front part, e.g.,
fixed_caster for a bike with a simple telescopic front fork with frame flexibility. If the rearhas flexibility, then the code ends with _flex, e.g., fixed_caster_flex.

5/5