Académique Documents
Professionnel Documents
Culture Documents
Cover
Reference Manual
Version 2.1
2
The information in this document is furnished for informational use only, may be revised
from time to time, and should not be construed as a commitment by IPG Automotive GmbH.
IPG Automotive GmbH assumes no responsibility or liability for any errors or inaccuracies
that may appear in this document.
This document contains proprietary and copyrighted information and may not be copied,
reproduced, translated, or reduced to any electronic medium without prior consent, in writ-
ing, from IPG Automotive GmbH.
© 1999 - 2006 by IPG Automotive GmbH – www.ipg-automotive.com
All rights reserved.
FailSafeTester, IPG-CAR, IPG-CONTROL, IPG-DRIVER, IPG-ENGINE, IPG-GRAPH, IPG-
KINEMATICS, IPG-LOCK, IPG-MOTORCYCLE, IPG-MOVIE, IPG-ROAD, IPG-ROADDA-
TA, IPG-TIRE, IPG-TRAILER, IPG-TRUCK are trademarks of IPG Automotive GmbH.
CarMaker, TruckMaker, MotorcycleMaker, MESA VERDE are
registered trademarks of IPG Automotive GmbH.
All other product names are trademarks of their respective companies.
Contents
1 Introduction 9
1.1 General Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 CarMaker Axis Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 CarMaker Geometry Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Conventions defining CarMaker Objects . . . . . . . . . . . . . . . . . . 12
Guidelines defining CarMaker Objects . . . . . . . . . . . . . . . . . . . 12
1.4 CarMaker Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . 14
CarMaker Subsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Classification of Quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Meaning of Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 CarMaker Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6 About Parameter Files and Datasets . . . . . . . . . . . . . . . . . . . . 20
Database Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
FileIdent, Description and FileCreator . . . . . . . . . . . . . . . . . . . 20
Model Kind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
CarMaker Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7 ‘SimParameters’ File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Application Parameters of CarMaker/HIL . . . . . . . . . . . . . . . . . 22
CarMaker Environment Parameters . . . . . . . . . . . . . . . . . . . . . 23
Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Maneuver Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Start of test run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2 Driving Maneuvers 32
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2 Longitudinal Dynamics Maneuvers . . . . . . . . . . . . . . . . . . . . . . 34
Speed Control (VelControl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 Lateral Dynamics Maneuvers . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Special Maneuvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
The first Mini Maneuver (Duration 0 Seconds) . . . . . . . . . . . . . 36
The last Mini Maneuver (Duration 0 Seconds) . . . . . . . . . . . . . 36
2.5 User Accessible Quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3 Vehicle Body 38
3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Configuration of the vehicle model . . . . . . . . . . . . . . . . . . . . . . 39
Finding the equilibrium state . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Vehicle Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Interaction with other modules . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2 General Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Mass Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 User Accessible Quantities for Vehicle Body . . . . . . . . . . . . . . 45
68
5.2 Kinematics and Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3 Kinematics Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
“Linear” and “Linear2D” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
“MapNL” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
“SetZero” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4 Compliance Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
“CoeffConstFr1” and “CoeffConstFr2” . . . . . . . . . . . . . . . . . . . . 77
“SetZero” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
“CoeffLin1DFr1” and “CoeffLin1DFr2” . . . . . . . . . . . . . . . . . . . . 80
“DisplaceLinFr1” and “DisplaceLinFr2” . . . . . . . . . . . . . . . . . . . 81
Example: Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6 Aerodynamics 84
6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 General Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
‘Coeff6x1’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7 Steering System 88
7.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Steer by Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Steer by Torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.2 Steering System Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 92
General Steering System Parameters . . . . . . . . . . . . . . . . . . . . 92
Steering System ’Classic’ Parameters . . . . . . . . . . . . . . . . . . . 92
7.3 User Accessible Quantities for Steering Systems . . . . . . . . . . . 93
7.4 Steering System Software Interface . . . . . . . . . . . . . . . . . . . . . 94
8 PowerTrain 95
8.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Interface Powertrain – Vehicle . . . . . . . . . . . . . . . . . . . . . . . . . . 95
PowerTrain Subsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Interfaces of Powertrain Subsystems . . . . . . . . . . . . . . . . . . . . 97
General Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2 Powertrain ’Generic’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
General Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Model ‘Generic’ Differential Parameters . . . . . . . . . . . . . . . . . 105
10 Tire 188
10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Tire Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Tire load (normal force) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Tire Model Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.2 General Tire Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
10.3 Tire Model RT-Tire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Rolling Resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Importing Tire Measurements . . . . . . . . . . . . . . . . . . . . . . . . . 196
10.4 Tire Model Magic Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
The basics of Magic Formula . . . . . . . . . . . . . . . . . . . . . . . . . 197
Tire Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Scale factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Effective tire rolling radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Slip computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Longitudinal force (pure longitudinal slip): . . . . . . . . . . . . . . . . 207
Lateral force (pure side slip): . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Aligning Torque (pure side slip) . . . . . . . . . . . . . . . . . . . . . . . . 213
Longitudinal Force (combined slip) . . . . . . . . . . . . . . . . . . . . . 218
Lateral force (combined slip) . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Aligning Torque (combined slip) . . . . . . . . . . . . . . . . . . . . . . . 223
Overturning Couple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Rolling Resistance Moment . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Transient Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Gyroscopic couple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Friction coefficient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.4 Suspension Force Elements . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Damper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Stabilizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
11.5 Suspension Kinematics and Compliance . . . . . . . . . . . . . . . . 239
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Sleeve Axle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Crank Axle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Semi Trailing Arm Axle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
General Suspension Model Parameters . . . . . . . . . . . . . . . . . 242
Additional Parameters for Suspension Model “Sleeve” . . . . . . 243
Additional Parameters for Suspension Model “Crank” . . . . . . 243
Additional Parameters for Suspension Model “SemiTrailingArm” . .
244
Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
11.6 Hitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Additional Parameters for Hitch “Ball” . . . . . . . . . . . . . . . . . . . 249
Additional Parameters for Hitch “Trapez” . . . . . . . . . . . . . . . . 249
Additional Parameters for Hitch “BallFric” . . . . . . . . . . . . . . . . 250
Additional Parameters for Hitch “BallDamp” . . . . . . . . . . . . . . 250
11.7 Brake System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Additional Parameters for Brake Model “Overrun” . . . . . . . . . 251
Additional Parameters for Brake Model “Overrun1” . . . . . . . . 252
11.8 Aerodynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
11.9 User Accessible Quantities for Trailer . . . . . . . . . . . . . . . . . . . 254
General User Accessible Quantities: Trailer . . . . . . . . . . . . . . 254
Appendix 281
B Traffic-Obstacles 291
B.1 Parameters and Quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Motion of an Obstacle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Output Quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
B.2 Functions, Types and Variables . . . . . . . . . . . . . . . . . . . . . . . 299
Obsts_New() - create a new obstacle management . . . . . . 300
Obsts_ObstclNew() - create an new obstacle . . . . . . . . . . 300
Obsts_iGetObstcl() - get obstacle from infofile . . . . . . . . 300
Obsts_ObstclAdd() - add a new obstacle . . . . . . . . . . . . 300
Obsts_ObstclGetInfo()-getsinformationaboutdefinedobstacle
301
Obsts_ObstclDelete() - delete an obstacle . . . . . . . . . . . 301
Obsts_EndOfInput() - no additional obstacles . . . . . . . . 301
Obsts_ObstVecNew() - get a obstacle output vector . . . . . 302
C IPG-MOVIE 310
C.1 IPG-MOVIE-INFO – Meta Information in Geometry Files . . . . 310
Chapter 1
Introduction
This is the CarMaker Reference Manual. It contains definitive informations about the usage
of the different tools and modules bundled in the CarMaker software package.
z y
z
Fr1 Fr2
Mntrl y
f ( q 0, q 1 ) x
Mntrr
f (t)
f ( q 0, q 1 ) z
z Fr2
Fr2 f ( q 0, q 1 ) y
y
x
x Mntfl
x
z Mntfr
Fr2 f ( q 0, q 1 )
z y
y x
Fr0
x
Figure 1.1: CarMaker Coordinate systems
Frame Fr0
The CarMaker inertial axis system is called Fr0 (pronounced: frame zero). This is the earth
fixed origin of the ‘virtual world’.
Fr0 is defined as follows:
• (O) is the origin, (X), (Y), (Z) are the 3 axis.
• (O, X, Y) is the horizontal driving plane (road).
• (Z) is directed upwards (mathematically: ( X ) × ( Y ) ).
• The position of any point, if not mentioned explicitly otherwise, is expressed in Fr0.
Frame Fr1
Moving objects in the virtual world are based on their own accompanied axis system which
is called Fr1. This axis system is fixed to the moving object. This means that the axis system
performs all movements of the attached object like translations and rotations.
Fr1 is defined as follows:
• (X) points in forward driving direction.
• (Y) points to the left.
• (Z) is directed upwards (mathematically: ( X ) × ( Y ) ).
• In case of a vehicle no part of the outer skin is situated behind the (O, Y, Z)-plane. At
least one point of the outer skin has a vanishing X-coordinate. (see section 1.3)
• In case of a trailer no part of the outer skin is situated before the (O, Y, Z)-plane. (see
section 1.3)
Frame FrX
The frame FrX (pronounced: cross frame) represents a road surface axis system. The (O,
X, Y) -plane approximately describes the current orientation of the road surface. Like Fr1
this is a accompanied axis system as well and moves uniformly to Fr1.
FrX is defined as follows:
• (O) is located in the middle between the two road surface contact points of the rear
wheels.
• (X) is orientated from (O) to the middle of the two road surface points of the front
wheels.
• (Y) is orientated along the connection from the rear left to the rear right road surface
contact point.
• (Z) is oriented upwards (mathematically: ( X ) × ( Y ) ).
Frame FrD
The FrD (pronounced: design-frame) is a parallel axis system to Fr1 with different origin. It
is used to specify geometry input coordinates which are based on a different origin than Fr1
without recomputing them. See section 1.3.2 ’Guidelines defining CarMaker Objects’ on
page 12.
FrD is defined as follows:
• (O) is arbitrary
• (X) is parallel to Fr1 (X) axis.
• (Y) is parallel to Fr1 (Y) axis.
• (Z) is parallel to Fr1 (Z) axis.
loads engine
trimloads
Fr2FrontLeft
vehicle body
Fr2RearLeft
MntRearRight MntFrontRight
CoM
Fr2RearRight FrD
Fr2FrontRight
r1
in F
orig
Fr1
Fr0
Figure 1.2: CarMaker geometry input for a vehicle
The position and orientation of any point/frame is given in design configuration (‘drawing
sheet of the designer of the car’). As shown in Figure 1.2 the axis FrD (called design-frame)
is a parallel axis system to Fr1 with different origin.
The configurations specified in FrD must be linked to the Fr1 by a vector pointing to the origin
of Fr1 (expressed in FrD coordinates).
In the special case where FrD ≡ Fr1 the link vector is the zero vector.
• The bin directory contains the CarMaker executable or executables. It might also con-
tain custom applications or tools that were created specifically for the project.
• The doc directory would contain documentation that would apply to the project.
CarMaker documentation, e.g this document, does not reside in the doc directory but is
included in the CarMaker installation directory along with library files and most of the
CIT applications.
• The src directory includes the C source files that can be modified by the user. By mak-
ing changes to the source files new CarMaker executables can be built that would
incorporate modifications and additional functionality needed for a particular project.
• The data directory includes all the vehicle parameter files, user and IPG defined
testruns, configuration data, and other data used by CarMaker.
• The movie directory includes files needed for IPG-MOVIE. For example, if a custom car
body is used in the animation then the file would be here.
• The SimInput directory contains simulation data files that are used when CarMaker
runs by using file input.
• The SimOutput directory contains the simulation results that are optionally saved when
a testrun is performed.
Installation Directory
It also might be useful to show the CarMaker installation directory, i.e. where the CarMaker
tools have been installed, along with the CarMaker libraries and documentation. Shown
below is an example of the installation directory of the LynxOS or realtime version of
CarMaker, installed in the unix environment.
Listing 1.2:
Infofile FileIdent
TestRun CarMaker-TestRun <VersionID>
TestSeries CarMaker-TestSeries <VersionID>
Tire CarMaker-Tire-<Kind> <VersionID>
Car CarMaker-Car <VersionID>
Suspension (kinematics CarMaker-SuspMapping <VersionID>
and compliance)
Trailer CarMaker-Trailer <VersionID>
Brake CarMaker-Brake-<Kind> <VersionID>
ECUParameters CarMaker-ECUParameters <VersionID>
SimParameters CarMaker-SimParameters <VersionID>
Description : DescriptionText
FileCreator = String
This entry answers the question: Which tool creates this parameter set? How can it be char-
acterized?
File Purpose
SimParameters All parameters influencing the simulation flow.
ECUParameters Parameters and calibration settings for ECU´s used with a
test stand.
OutputQuantities Specifies list of quantities for saving results in CarMaker.
Example Data/Config/SimParameters
Data/Config/ECUParameters.rt1
If a file with hostname matches it has priority over a file without a specific hostname.
Cycle.dtLimitHigh = DeltaT
Cycle.dtLimitLow = DeltaT
Cycle.tCTViolationWarn = DeltaT
Cycle.tCTViolationErr = DeltaT
Cycle.maxtCTViolation = DeltaT
Optional.
FirstInit.TestRun = TestRunName
Test-run to initialize the application the first time, before a test run is started. Default: ““ to
use internal defaults.
TestRunEnd.DVA_ReleaseAll = DoIt
At the end of a test run, all active direct variable write access can be closed.
Default: 0, don’t release all, keep write access active.
DStore.dtFile = deltaT
Optional. Time step between two data vectors for storage. Default 0.02 s.
DStore.OutQuantFName = OutQuantFilename
Optional, Configuration file for selecting quantities to be written to file. Filename relative to
Data/Config/<HostName>. Default “OutputQuantities”.
DStore.OutSubDir = DirectoryName
DStore.OutFNameWithTime = WithTime
Optional. Append simulation start time to the result file name. Default 1.
DStore.BufSize_kB = Size_in_kBytes
DrivMan.Engine.AutoStart = AutoStart
Optional, default 1.
DrivMan.Engine.tWaitAfterEngineOn =deltaT
Road.VhclStartPos_TrailerMin = MinStartPos_m
Optional, default 10 m. Minimal vehicle road start coordinat when driving with a trailer.
DrivMan.GetIdle.BrakePark = Activation
DrivMan.GetIdle.BrakePark.d_dt = Velocity
DrivMan.GetIdle.BrakeLever = Activation
DrivMan.GetIdle.BrakeLever.d_dt = Velocity
DrivMan.GetIdle.Brake.vVhcl_BrakeEnd = MaxVhclVelocity
Optional, default 0.1 m/s. Vehicle velocity to end braking while state GetIdle.
DrivMan.GetIdle.dSteerAngledt = SteerAngleVelocity_deg/s
DrivMan.GetIdle.SelectorCtrl = SelectorCtrl
Optional, default 0.
DrivMan.IsIdle.BrakeLever = Activation
DrivMan.IsIdle.BrakePark = Activation
DrivMan.IsIdle.SelectorCtrl = Position
Optional, default 0.
DrivMan.IsIdle.SetNeutral = SetNeutral
DrivMan.AutoShift.GasReduction = Reduction
DrivMan.AutoShift.dt_declutch = DeltaT
DrivMan.AutoShift.dt_keepclutch = DeltaT
DrivMan.VelCtrl.tClutchRelease = value
SimStart.TimeLimit = TimeLimit
DrivMan.Start.ExtInp_SteerVel = SteerVelMax_deg
Used for external inputs maneuvers to build up the steering angle at start of input.
GetIdle.TimeLimit = TimeLimit
GetIdle.Skip = Skip
GetIdle.Kl15Off = SwitchOff
Example Brake.Trq_FL
Brake.Trq_*
Car.*FL
Ambient.Temperature = Temperature_K
Ambient.AirDensity = value
Ambient.AirPressure = value
Ambient.AirHumidity = value
1: int
2: Brake_Register_HydESP (void)
3: {
4: tModelClassDescr m;
5:
6: /* clear model class description structure */
7: memset (&m, 0, sizeof(m));
8:
9: /* assign model interface functions */
10: m.Brake.VersionId = ThisVersionId;
11: m.Brake.CompatVersionId = CompatVersionId;
12: m.Brake.New = Brake_HydESP_New;
13: m.Brake.Calc = Brake_HydESP_Calc;
14: m.Brake.Delete = Brake_HydESP_Delete;
15: m.Brake.DeclQuants = Brake_HydESP_DeclQuants;
16:
17: /* register the model, kind string and interface functions */
18: return Model_Register (ModelClass_Brake, "HydESP", &m);
19: }
Listing 1.3:
The model manager supports the following car submodels, called model classes:c
1: typedef enum {
2: ModelClass_PTEngine,
3: ModelClass_PTClutch,
4: ModelClass_PTGearBox,
5: ModelClass_PTDriveLine,
6: ModelClass_PowerTrain,
7: ModelClass_PTGenCoupling,
8: ModelClass_Steering,
9: ModelClass_Brake,
10: ModelClass_Tire,
11:
12: } tModelClass;
Listing 1.4: Model Classes
1: int
2: Model_Init (void);
Models are registered at program start, before the first simulation starts with
3: int
4: Model_Register (
5: tModelClass ModelClass,
6: const char *KindStr,
7: tModelClassDescr *MD
8: );
9: int
10: Model_Cleanup (void);
11: tModelClassDescr*md;
12: const char *ModelKind;
13:
14: ModelKind = iGetStr(Inf, KindKey);
15:
16: if ((md=Model_LookUp(ModelClass_Brake, ModelKind)) == NULL) {
17: LogErrF (EC_Init, "Brake: Unknown kind ’%s’",KindKey);
18: goto ErrorReturn;
19: }
20:
21: brake.param = md->Brake.New(inf, ““);
22: if (brake.param == NULL)
23: goto ErrorReturn;
24:
25: if (md->Brake.DeclQuants != NULL)
26: md->Brake.DeclQuants (brake.param);
27:
28:
29: brake.md.Brake.Calc = md->Brake.Calc;
30: brake.md.Brake.Delete = md->Brake.Delete;
31:
Chapter 2
Driving Maneuvers
2.1 Overview
The CarMaker testrun is build by one or more maneuver steps, called “mini maneuvers”.
The mini maneuver events are composed by
• longitudinal dynamics actions: accelerating, braking, gear shifting, ...
• lateral dynamics actions: steering
• additional actions, defined by a list of mini maneuver commands
Parameters
The driving maneuvers and driving behavior can be configured
• in the test run (test run specific)
• in the vehicle model parameter set (vehicle specific in)
• in the SimParameters parameter set (global).
A prefix is build up for each mini maneuver by the string “DrivMan.”, followed by the mini
maneuver number. The keys of all parameters for each maneuver starts with this prefix.
DrivMan.<i>.<xyz> ...
DrivMan.nDMan = NumberOfMiniMan
This entry defines the number of minimaneuvers of this test run. The first maneuver is the
maneuver 0 (zero).
PowerTrain.ET.tWaitAfterEngineOn = deltaT
DrivMan.nShift : GearNo_nUp_nDown_table
Optional. Configures the auto shifting module of the speed controller. Each line contains the
following values:
• Gear number GearNo, positive for forward, negative for backward gears
• engine speed to shift up, unit rpm.
• engine speed to shift down, unit rpm.
In case of
• first maneuver in the test run
• duration time is set to 0.0
this maneuver has a special meaning. It defines longitudinal starting conditions.
In the GUI: Entry fieled “Speed” gives vehicle starting speed, “Max. Deviation” gives the
gear number.
Steering Maneuvers
A smooth transition mode was added for Sinus and Steer Step. The mode can be enabled
with a checkbox in the CarMaker GUI’s Maneuver dialog, under Lateral Dynamics.
Chapter 3
Vehicle Body
3.1 Overview
The simulated vehicle is a multi body system which is characterized through different bod-
ies. They are generated and optimized with MESA VERDE.
Description of the bodies:
Additionally the vehicle model supports the feature to calculate body fixed sensors for
acceleration, velocity, rotational acceleration and rotational velocity.
mq-equilibrium
multiple steps
mq-equilibrium
Static equilibrium
Steady state
Start-off configuration
Figure 3.1: Finding steady state for the vehicle model
For computation coordinates q and parameters p are distinguished. Parameters are time
invariant, coordinates are not. Parameters need not be geometrical, but also include mass-
es, stiffnesses, etc.
The design configuration has the coordinates and parameters ( q d, p d ) . To find the steady
state position of the vehicle a procedure called Modify-q-equilibrium (mq-equilibrium) is
used.
Mq-equilibrium modifies some of the coordinates q such that:
• Parameters p obtain prescribed values.
• The configuration is an equilibrium configuration.However, at this stage no additional
charges (trimloads, vehicle loads) are added to the system.
p = p0
( q d, p d ) ⇒ ( q e, p e ) (EQ 1)
modify q
The start-off configuration is a configuration that matches the initial conditions of a particu-
lar test-run. It differs from a nominal configuration (static equilibrium) by taking into account:
• Trim-loads, vehicle loads
• Start-off (or initial) driving velocity.
• Aerodynamics.
The start-off configuration is obtained from the nominal configuration by modifying q , keep-
ing p fixed:
keep p const
( q e, p e ) ⇒ ( q s, p s ) . (EQ 2)
modify q
Vehicle Body
Tire
Interface
Figure 3.2: Modules interfering with the vehicle body
Each module has an interface to the vehicle body module. By this interfaces parameters
and coordinates of the vehicle body are modified.
RefPointInputSystem = x y z
This parameter specifies the origin of the Fr1 (in FrD coordinates). The coordinates XYZ
point from the origin of FrD to the origin of Fr1. (see section 1.2 ’CarMaker Axis Systems’).
Hitch.pos = x y z
Hitch (trailer coupling device) position at the vehicle expressed in FrD coordinates.
Virtual.PoA = x y z
Virtual.PoA_1 = x y z
Picture.PicFName = FName
File name of the Tcl/Tk Picture you see in the main HIL application. The file is searched in
the Data/Pic folder. Unimportant for simulation results.
Movie.Skin.FName = FName
Vehicles outer skin box, defined by the points rear lower left (rll) and front upper right (fur).
Jack.fl.pos = x y z
Jack.fr.pos = x y z
Jack.rl.pos = x y z
Jack.rr.pos = x y z
SimParamFName = FName
ECUParamFName = FName
Optional. Name of the file containing parameters of Electronic Control Units (ECU) IO-Sig-
nal calibrations. File is searched in <CMProjectDir>/Data/Config.
Default ECUParameters or ECUParameters.<hostname>.
The usage of the parameters ECUParamFName and SimParamFName may lead to incon-
sistencies with IO initialization. For experts only!
∫ ∫ ∫
2
( y + z 2 ) dm – xy dm – xz dm
Body Body Body
A F E
∫ ∫
2
F B D = symmetry ( z + x 2 ) dm – yz dm (EQ 3)
Body Body
E D C
∫
2
symmetry symmetry ( x + y 2 ) dm
Body
3.3.2 Parameters
Parameters The following parameters are required for this model:
Body.pos
Body.mass
Body.I
The vehicle body without engine. Its center of mass is placed in the design frame at
Body.Pos. The vehicle body has the mass Body.mass and the inertia tensor Body.I. The ele-
ments of the inertia tensor are given in the order A B C D E F. It is sufficient to give the
elements A B C (main diagonal elements) only.
A vehicle body with inertia A=360 kg*m2, B=800 kg*m2, C=1800 kg*m2:
Body.mass = 375.0
Body.Pos = 1.5 0.0 0.45
Body.I = 360 800 1800
Engine.pos
Engine.mass
Engine.I
The engine body. The engine is fixed on the Body of the vehicle. For details, see vehicle
body.
WheelCarrier.fl.pos
WheelCarrier.fl.mass
WheelCarrier.fl.I
Wheel carrier front left. Represents all unsprung mass in the suspension (except the
wheel).
WheelCarrier.fr.pos
WheelCarrier.fr.mass
WheelCarrier.fl.r
Wheel carrier front right. For details, see wheel carrier front left.
WheelCarrier.rl.pos
WheelCarrier.rl.mass
WheelCarrier.rl.I
Wheel carrier rear left. For details, see wheel carrier front left.
WheelCarrier.rr.pos
WheelCarrier.rr.mass
WheelCarrier.rr.I
Wheel carrier rear right. For details, see wheel carrier front left.
Wheel.fl.pos
Wheel.fl.mass
Wheel.fl.I
Wheel front left. The wheel and all other rotating components (parts of the brake, ...) .
Wheel.fr.pos
Wheel.fr.mass
Wheel.fl.r
Wheel.rl.pos
Wheel.rl.mass
Wheel.rl.I
Wheel.rr.pos
Wheel.rr.mass
Wheel.rr.I
TrimLoad.<i>.pos
TrimLoad.<i>.mass
TrimLoad.<i>.I
Bodies to trim mass contribution to that of a reference vehicle. Trim loads are fixed to vehicle
body. <i> := 0, 1, 2, ...
Do not confuse TrimLoads with test run specific additional charges you may want to put on
your vehicle.
Chapter 4
Suspension Force Elements
The contribution of each suspension force element results in the wheel contact force. Four
types of force elements are modeled:
• the suspension spring (Spring),
• the suspension damper (DampPull, DampPush),
• the suspension buffer (BufPull, BufPush) and
• the stabilizer or anti-roll bar or stabilizer bar (Stabi).
spring
damper
buffer push
wheel center
stabilizer
compression tz
z
x
y
buffer pull
There is multiple usage for external suspension forces (according to (EQ 4)):
• Replace suspension forces by external forces. This is used when a custom suspension
model (e. g. simulink model) should replace the CarMaker built in model for some or all
suspension forces. The original forces have to be set to zero by the “amplify” parame-
ters (<Pre>.XXX.Amplify = 0).
• Add forces to forces calculated by the built in model. This can be used to simulate forc-
es from a active suspension device which are superpositioned to the conventional forc-
es.
ExtSuspFrcs.FName = FileName or
ExtSuspFrcs.Kind = ModelKind
The model is selected by the Kind entry ModelKind. Instead of using the Kind key, an exter-
nal parameter set can be referenced by its filename FileName. FileName is the path relative
to the miscellaneous directory.
General Remarks
• Suspension models has to be registered by CarMakers model management mecha-
nism. Each model needs
- a unique kind key to reference exactly this model from the pool of suspension mod-
els.
- interface functions to initialize, calculate and delete a model instance
• All parameters other than (*.FName and *.Kind) are model specific. Their keys has to
start with the prefix "ExtSuspFrcs."
• Known from earlier CarMaker version (before 2.1) the amplify parameters
*.Spring_ext.Amplify, *.Damp_ext.Amplify, *.Stabi_ext.Amplify doesn’t exist any longer.
If they are needed they have to be implemented in the suspension model itselfe.
4.2 Springs
This module simulates a conventional spring suspension. It calculates the spring compo-
nent force F Spring .
As shown in Figure 4.3 there is a relation between the deflection of the wheel and the
spring. There is a translation between the forces F z and F Spring and between the travel of
the wheel t z and the spring x∗ .
ng
pri
FS
x0
tz
FZ x*
When the suspension gets compressed the spring length x is decreasing and the resulting
spring force is increasing. To accommodate this the following calculation is applied:
*
F Spring = amp ⋅ f ( x )
. (EQ 5)
*
x = –( x – x0 )
The factor amp in (EQ 5) can be used to modify the the spring forces by a given factor. Usu-
ally this is for test purposes only and the factor should remain set to one.
The quantity x 0 is called relaxed (or unstretched) length of the spring. The resultant spring
force depends on the difference between the relaxed length x 0 and the actual length x . The
actual length is the current distance between lower and upper attachment point of the
spring.
According to (EQ 5) the calculation of x∗ needs the actual spring length x . It is obtained
from the suspension kinematics module according to Figure 4.4. q represents the general-
ized coordinates of the suspension.
suspension
kinematics spring
module component
q x
f (q)
F q, Spring F = f ( x∗ )
∂x F Spring
-----
∂q
Figure 4.4: Transformation of spring deflections and forces
Parameters
SuspF means front axle, SuspR means rear axle
*.Spring.Amplify = Factor
*Spring.l0 = UnstrechedLength
*.Spring: DataTable
*
This characteristic translates compression ( x from (EQ 5)) to spring force.
4.3 Dampers
This module simulates a suspension damper. It calculates the force F Damp .
The suspension dampers force F Damp depends on the velocity ẋ . Different characteristics
are taken into account by defining different functions for “pull” ( ẋ > 0 ) and “push” ( ẋ ≤ 0 ).
p
am
FD
tz ẋ
FZ
The amp factor in (EQ 6) can be used to to modify the results of the calculation by a given
factor. Usually this is for test purposes only and the factor should remain set to one.
The dampers pull/push characteristics are defined seperately. Pull is when the damper is
getting longer, push is when the damper is getting shorter.
The velocity ẋ is calculated by differentiation of the damper length x . It is obtained from the
suspension kinematics module according to Figure 4.6. q represents the generalized coor-
dinates of the suspension.
suspension
kinematics damper
module component
q ẋ
f (q) push or pull?
F q, Damp F = f ( ẋ )
∂x F Damp
-----
∂q
Figure 4.6: Transformation of damper deflections and forces
All characteristics have to be defined in first quadrant. CarMaker takes care of the correct
signs.
F
definition in
1st quadrant
ẋ
Parameters
*.Damp_Push.Amplify = Factor
*.Damp_Push: DataTable
Example SuspF.Damp_Push:
0 0
0.05 90
0.13 140
0.26 250
0.39 330
0.52 410
1.04 790
*.Damp_Push.Amplify = Factor
*.Damp_Push: DataTable
This characteristic translates extention velocitiy ẋ to damper pull force. It has to be defined
in first quadrant (positive velocities, positive forces). F Damp ( 0 ) = 0 should be obeyed. The
table has two columns, velocity in m/s in the first, the damper forces in N the second.
tz
x 0Push FBufPush
t z0Push buffer push
t z0Pull x 0Pull
The suspension buffers forces F BufPull , F BufPush depend on the buffer compression x :
F BufPush = amp ⋅ f ( x∗ )
* *
x = x 0, Push – x x >0
(EQ 7)
*
F BufPush = 0 x <0
F BufPull = amp ⋅ ( – f ) ( x∗ )
* *
x = x – x 0, Pull x >0
. (EQ 8)
*
F BufPull = 0 x <0
x 0, Push , x 0, Pull are the relaxed (or unstretched) length of the upper/lower bump-stop.
For the calculation of the buffer forces according to (EQ 7) and (EQ 8) the actual buffer com-
pression x is needed. It is obtained from the suspension kinematics module according to
Figure 4.9. q represents the generalized coordinates of the suspension.
suspension
kinematics buffer
module component
q x
f (q) push or pull?
F q, Buf F = f ( x∗ )
∂x F Buf
-----
∂q
Figure 4.9: Transformation of buffers deflections and forces
The following figure illustrates the calculation of the buffer compression from the non-linear
kinematics file:
tz
max ( t z ) values not important for
calculation of buffers
Push buffer active
max ( x Pull )
t z0, Push
x 0, Pull
push buffer
compression
p u l l b u f fe r
x 0, Push
x
max ( x Push )
compression
t z0, Pull
Pull buffer active
min ( t z )
The two paramters t z0, Push and t z0, Pull have correspponding buffer compression zero offset
values x 0, Push and x 0, Pull .The absolut values are unimportant since there is always the dif-
ference calculated from the current compression value to its zero offset.
Of importance is that the gradient of the compression curve is always negative, so that
according to (EQ 7) and (EQ 8) a positive buffer compression is calculated. Values given
between x 0, Push and x 0, Pull are ignored from CarMaker and therefore are not important.
The amp factor in (EQ 7) and (EQ 8) can be used to to modify the results of the calculation
function by a given factor. Usually this is for test purposes only and the factor should remain
set to one.
The buffers pull/push characteristics are defined seperately.
Parameters
SuspF means front axle, SuspR means rear axle
SuspF.Buf_Push.Amplify
SuspR.Buf_Push.Amplify
SuspF.Buf_Push.tz0
SuspR.Buf_Push.tz0
Syntax
Susp<F|R>.Buf_Push.tz0 = val Unit: m
Push buffer position (defines ride clearance). According to (EQ 7) and Figure 4.8 the push
buffer only acts for vertical displacements tz (of wheel carrier) greater than tz0(=x0Push).
SuspF.Buf_Push
SuspR.Buf_Push
Example SuspF.Buf_Pushl:
0.002 32.0
0.004 88.0
0.006 167.0
0.008 269.0
0.010 393.0
0.012 596.0
0.015 1085.0
SuspF.Buf_Pull.Amplify
SuspR.Buf_Pull.Amplify
SuspF.Buf_Pull.tz0
SuspR.Buf_Pull.tz0
Pull buffer mount position (defines rebound clearance). According to (EQ 8) and
Figure 4.10 the pull buffer only acts for vertical displacements tz (of wheel carrier) smaller
than tz0(=x0Pull).
SuspF.Buf_Pull
SuspR.Buf_Pull
Example SuspF.Buf_Push:
0.002 32.0
0.004 88.0
0.006 167.0
0.008 269.0
0.010 393.0
0.012 596.0
0.015 1085.0
F Stabi2Susp, r
tz
F Stabi, l
t zl
xl
αl
αr xr
stabilizer
F Stabi2Susp, l t zr
F Stabi, r
In general, according to Figure 4.11, the wheel compression ratio is not equal to the stabi-
lizer deflection difference ( t∗ ≠ x∗ ).
The stabilizer deflection difference x∗ can be defined either by a deflection length difference
(EQ 9) or by a deflection angle difference (EQ 10):
t∗ = t zr – t zl
x∗ = x r – x l
, (EQ 9)
t∗ = t zr – t zl
x∗ = α r – α l
. (EQ 10)
The constant c Stabi has to fit to the selected definition of x∗ . The forces F Stabi,l,r calculate to:
F Stabi , r = – F Stabi , l
, (EQ 11)
with the amplification factor amp. Under normal circumstances the amplification factor
should be set to 1 (only for testing and scaling).
∂x l
F Stabi2Susp, l = F Stabi , l ⋅ -------
∂q l
∂x r
F Stabi2Susp,r = F Stabi , r ⋅ -------
∂q r
. (EQ 12)
For the calculation of the stabilizer forces according to (EQ 11) the actual stabilizer deflec-
tion difference x∗ is needed. It is obtained from the suspension kinematics module accord-
ing to Figure 4.12. q represents the generalized coordinates of the suspension.
suspension
kinematics stabilizer
module component
q x zr , x zl or
f (q)
α zr, α zl
F q, Stabi, l F = f ( x∗ )
∂x F Stabi, l, F Stabi, r
-----
F q, Stabi, r ∂q
Figure 4.12: Transformation of stabilizers deflections and forces
Parameters
SuspF means front axle, SuspR means rear axle
SuspF.Stabi.Amplify = value
SuspR.Stabi.Amplify = value
SuspF.Stabi. = value
SuspR.Stabi = value
x∗
x∗ = ------ .
alt
(EQ 13)
2
alt
Stabilizer constants cStabi determined by this alternative definition have to be convert-
ed to the CarMaker definition of c Stabi :
alt
cStabi
c Stabi = --------------
- (EQ 14)
2
• Depending on the definition of x∗ (length difference (EQ 9) or angle difference (EQ 10))
the unit of c Stabi changes to:
Chapter 5
Suspension Kinematics and Compliance
5.1 Overview
Kinematics describes the spacial movements of a wheel due to compression and steer
action. Two cases of kinematics are distinguished:
• Suspension kinematics (due to pure wheel compression).
• Steering kinematics (due to pure steer actions).
In reality a superposition of those two isolated cases exists.
Compliance describes the spacial movements of a wheel due to wheel forces which cause
elastic deformations of the wheel suspension. Because of the complex construction of a
vehicle suspension forces and torques can produce movements of the wheel in other direc-
tions than in their effective direction.
Movements are described through coordinates in a axis system. The center of this axis sys-
tem is the wheel center. Coordinates for translations and rotations of this axis system are
used.
kinematics compliance
Figure 5.1 shows the context of kinematics and compliance. Wheel compression and steer
actions are called primary coordinates of a wheel. A change in the primary coordinates has
an effect on the secondary coordinates. Kinematics is defined as force free movements of
the wheel suspension and is measured as a function of the primary coordinates.
Contrary to the kinematics the compliance investigates in change of secondary coordinates
as a result of external forces act upon the wheel. External forces (and torques) can arise
from the wheel contact point the brakes and the power transmission. They are transferred
to the wheel carrier. These forces yield to changes of the secondary coordinates of the
wheel because of elasticities of the suspension.
To describe the position of the wheel usually terms from the vehicle dynamics vernacular
are used (like in the middle section of Figure 5.1). For parametrization of wheel suspen-
sions CarMaker uses more general, simulation technical terms.
The spacial movements of a wheel carrier in CarMaker is equal to the movements of the
wheel carrier axis system Fr2 (see section 2.2 ’CarMaker Axis Systems’).
The following figures explain the relations of the different viewpoints and their conversions:
–rz +r z
driving direction
x
+
rz
y
A positive toe angle at the right wheel carrier equals a positive rotation r z of the Fr2
axis system.
+r x –rx
z
+ rx
y
left wheel right wheel
A positive camber angle at the right wheel carrier equals a positive rotation r x of the
Fr2 axis system.
+r y
z
+ ry
x
driving direction
A positive spin angle equals a positive rotation r y of the Fr2 axis system.
Translation t y :
+
y ty
+t y –ty
left wheel right wheel
The translations t y of left and right wheel are parametrized independently. The change
of wheel track is a result of both, the change of the left and the right wheel.
Translation t x :
driving direction
+
x tx
wheel base
+t x –tx
front wheel back wheel
The translations t x of front and back wheel are parametrized independently. The
change of wheel base is a result of both, the change of the front and the back wheel.
+
positive compression tz
y
negative compression
i = 6N – k (EQ 15)
N number of bodies
k number of holonomic constraints
Requirements for generalized coordinates are:
• All states of a system can be described with one set of generalized coordinates
respecting all holonomic constraints.
• No holonomic constraints exist for generalized coordinates.
The last statement especially means that one coordinate can have any value without affect-
ing the value of another coordinate.
Applied to the kinematics e. g. of a front axle this means that usually two generalized coor-
dinates exist to describe the kinematic movements of this axle. This is already implied in
Figure 5.1 as:
• A generalized coordinate q 0 to describe the degree of freedom for wheel compression.
• A generalized coordinate q 1 to describe the degree of freedom for the steer influence.
CarMaker gives no restrictions for the choice of the generalized coordinates q 0, q 1 . In other
words the user is responsible to choose generalized coordinates that fulfil the requirements
mentioned above.
q 0, q̇ 0 q 1, q̇ 1
parameters for suspension kinematics
determine values from given kinematics characteristics for q 0, q 1
transl.: p = x, y, z rot. angles: ϕ 1, ϕ 2, ϕ 3 comp. length: x Spring, x Damp, x Buf, x Stabi
Solver
M ⋅ q̇˙i = Q i + Q i∗ ( q i, q̇ i )
q 0, q̇ 0 q 1, q̇ 1
Figure 5.8: Kinematics calculation
The first box in Figure 5.8 shows the quantities acquired from the user defined characteris-
tics for the given generalized coordinates q 0, q 1 . The vector p represents the three transla-
tion offsets and the rotation angles ϕ 1, ϕ 2, ϕ 3 specify three cardan angles. Additionally the
component lengths of spring, damper, buffers and stabilizer are acquired.
With the second step the cardan angles ϕ 1, ϕ 2, ϕ 3 are transformed by the joint definition to
the transformation matrix A . A specific rotation sequence (e. g. ‘ZXY’) is provoked by the
joint definition.
For calculation of the generalized forces the free directions of motion in directions of q 0, q 1
are needed. This is done with the third step by partial differentiation of p and A .
In the fourth step for each generalized coordinate a generalized force is computed. External
forces and torques are respected in direction of the free direction of motion t i and r i for
each coordinate. External forces and torques result from tires, brakes, gravity, etc. Also the
internal forces of spring, damper, buffers and stabilizers are respected pro rata in the direc-
tion of the generalized coordinate.
As a final step the solver computes and integrates the generalized accelerations q̇˙0, q̇˙1 .
Beside the generalized forces Q i pseudo forces Q i∗ resulting from coriolis forces are taken
into account. These pseudo forces Q i∗ depend form q i, q̇ i instead from q̇˙i .
Front Axle For a front axle a generalized coordinate q 0 is needed to describe the degree of freedom
for wheel compression and a generalized coordinate q 1 is needed to describe the degree
of freedom for the steer influence. A good recommendation is:
The reason why q 0 is chosen as t z, 0 for steer angle zero is based on the fact that the steer
influence changes the compression of the two controlled wheels. This effect is called self-
alignment due to lift of the suspension subframe. Such a definition for q 0 is necessary
because of the self-alignment the wheel compression t z depends from both coordinates q 0
and q 1 . With the definition above the requirements for generalized coordinates are ful-
filled. Both coordinates are independent.
• Independent rear axle: The orientation of one wheel only depends on the compression
of this wheel. (e. g. independent rear suspension). Good choice:
Name Definition
Reference System As reference system a axis system similar to the CarMaker Fr0 axis
system is used (See section 1.2). The Vehicle is symmetrically
aligned, nose pointing to increasing values of the X-axis.
Static Equilibrium Means equilibrium position of the (empty) vehicle on even
Configuration (SEC) ground. The body is not fixed relative to the reference frame. The
suspension travel must be symmetrical (left/right). The SEC com-
pression can be measured.
Wheel Travel Translation of wheel center in Z-direction.
Compression Travel Travel from SEC to max. compression (wheel carrier near to body)
= up to metal-to metal position, in general
Rebound Travel Travel from SEC to max. decompression (wheel carrier far away
from body)
Wheel Load (Fz) Vertical force acting from environment onto wheel carrier, positive
if directed upwards. Forces are applied (point of attack) to the
wheel center or the tyre/road contact point (=tire patch). The
point of attack must be documented.
SWA Steering wheel angle
Deflection The expression deflection procedure is used synonymously for the
Procedure (DP) following test sequence:
• Start from SEC.
• Slowly increase Fz (= compress suspension) up to wheel load
max. value (e.g. 10000 N) = compression travel.
• Slowly decrease Fz (=decompress suspension, rebound) up to
wheel load min value (e.g. 100 N) = rebound travel.
• Go back to SEC.
• Compression and rebound speed should be slow and identical
in both direction (thereby eliminating velocity depended effects)
• Front axle: Keep steering rack fixed (eliminate them, if possible
effects coming from steering compliance, steering backlash,
...).
• No horizontal (Fx, Fy) force (ground to tyre) is transmitted.
• No torque (Mx, My, Mz) (ground to tyre) is transmitted.
• Wheels are rigidly fixed to wheel carrier (braking conditions).
Wheel Replacement Set of artificial wheels replacing real wheels during measure-
System ments.
Advantage: Higher forces (Fy, Fz) during elastokinematic mea-
surements (no slip). More exact, in general
Measurements are therefore preferably done with wheel replace-
ment system
The following lists describes two procedures to be accomplished to acquire the required
data for the CarMaker K&C characteristics:
t =
r
∑
K in ( q 0, q 1 ) + ∑
Com ( q 0, q 1, F, … ) (EQ 16)
i j
The suspension kinematics and compliance can be defined by a number of models or
parameter sets, which are calculated in the order of there definition.
An additional outward shift of the wheel can be defined in the tire parameter set, see section
10.2 ’General Tire Parameters’.
Parameters The following parameters are required for suspension kinematics and suspension compli-
ance:
All model parameters have a prefix, depending on the corresponding suspension and the
number of the model definition. The prefix can be an empty string or a string, ending with a
dot ("SuspF.", "SuspF.Kin.3." for kinematics, "SuspR.Com.2." for compliance).
SuspKey.KnC.N = N
The kinematics or compliance definition consists of N superimposed models, see (EQ 16).
The suspension is selected by SuspKey which can be SuspF or SuspR. The string KnC is
Kin for kinematics or Com for compliance.
It is an optional entry, the default is 1.
SuspKey.KnC.i.FName = FileName or
SuspKey.KnC.i.Kind = ModelKind
The i-th model is selected by the Kind entry ModelKind. Instead of using the Kind key, an
external parameter set can be referenced by filename FileName. The reference to an exter-
nal parmeter set is supported only on toplevel and in case of only one model at toplevel, not
in a parameter set referenced iself. FileName is the path relative to the suspension kine-
matics directory.
SuspKey.KnC.i.ValidSide = ValidSide
The i-th model is valid for ValidSide. If suspension side and ValidSide doesn’t match, this
model is skipped for this suspension side.
ValidSide is exactly one of left, left+right and right. It’s an optional entry, the default is
left+right.
SuspKey.KnC.i.InputSide = InputSide
The i-th model is defined by parameters for the suspension on side ValidSide.
The model parameters for the actual suspension side has to be deduced from the input
parameters for side InputSide.
InputSide is exactly one of left, left+right and right. It is an optional entry, the default is left.
SuspKey.KnC.i.L.param = ...
SuspKey.KnC.i.R.param = ...
Parameters for the left suspension starts with “L.”, for the right with “R.”.
dk 1
dq 1 dk
c 1 = -------1-
c Off dq 1
q 0, q 1
dk 0
dq 0 dk
c 0 = -------0-
dq 0
Figure 5.9: Kinematics ‘linear2D’ for coordinates q 0, q 1
This means (steered) front axles use the model ‘Linear2D’ because they have two degrees
of freedom which influence the kinematics of the wheel carrier.
Independent rear suspensions use the model ’Linear’ because the kinematics only
depends on the wheel compression of the considered wheel carrier.
For instance, for a twist beam rear axle, where kinematics also depends on the compres-
sion of the opposite wheel carrier, the model ‘Linear2D’ has to be used.
A simple linear equation is used for each coordinate.
The model ‘Linear2D’ uses a superposition of two linear equations one for each general-
ized coordinate.
with:
Parameters The following parameters are required for this model. The asterix “*“ is an abbreviation for
the suspension, for kinematics or compliance, for the model number and the paramter side,
see section 5.2 ’Kinematics and Compliance’ on page 70.
All Kinematics parameters are optional. This means CarMaker will not complain about
missing parameters. Due to the fact that all defaults are zero CarMaker probably will com-
plain about a non functional vehicle.
Optional. Wheel (-carrier) translations. Translation is calculated by the offset and two racios
dependending on the generalized coordinates of the suspensions (see (EQ 17)).
Defaults: 0 0 0 and for tz 0 1 0. Units: m m/q0 m/q1.
Deflection or length of the force elements spring, damper, buffer and roll stabilizer depend-
ing on generalized coordinates.
Remark: For the roll stabilizer the units of this coordinate and the units of the roll stiffness
has to fit together.
Defaults: 0 -1 0. Units: m m/q0 m/q0.
5.3.2 “MapNL”
Description Nonlinear 1-dimensional (1D) or 2-dimensional (2D) mapping, depending on suspension
DOFs.
t = c self ( q0 ) or
t = c self ( q0, q1 ) (EQ 19)
r self r self
High fidelity K&C uses lookup-tables to describe the spacial movements of the wheel. This
implies huge amounts of data for each degree of freedom.
Location and The K&C parameter files are stored under <CarMakerRoot>/Data/Chassis. The high
Activation fidelity K&C Parameters are activated in the vehicle file (see section 5.1 ’Overview’.
Units All quantities, if not explicitly mentioned otherwise are SI-Units. Particularly the following
quantities are used in the K&C parameter files.
Table 5.1: SI Units used with CarMaker High Fidelity K&C Parameters
Table Concept The characteristics for high fidelity kinematics are stored in a specific indexed table format.
Characteristics can be one or two dimensional depending on the number of generalized
quantities. The vectors Arg 0 ) and vector Arg 1 ) hold the values of all sample points for the
following two dimensional lookup table. Which values are given for each sample point is
specified in a list.
Define the dimension of kinematics mapping, one keyword for 1D, two names for 2D.
The first name NameDoF0 can be “comp”. The second name NameDoF0 can be an empty
string (for 1D), “comp” or “steer”.
*.Data.Name = DataNameList
*.Data.Offset = OffsetList
*.Data.dArg0 = dData_dArg0_List
*.Data.dArg1 = dData_dArg1_List
*.Data.Fac2SI = Fac2SI_List
Each data coordinate can have an offset, one or two linear gradients depending on the num-
ber of DOFs. All values are multiplied with their factor Fac2SI from Fac2SI_List. The calcu-
lation of a suspension coordinate is done by the formula:
dData dData
value = Data + Offset + ----------------- ⋅ Arg0 + ----------------- ⋅ Arg1 (EQ 20)
dArg0 dArg1
*.Data: TableWithValues
Values for the selected coordinates from DataNameList. Ordering: Each line contains the
number of values, which are defined in DataNameList. The first DOF is kept constant, the
second is varied first. Example: The compression is kept constant while steering is varied.
Than the same for the next compression and so on.
5.3.3 “SetZero”
Description Model to suppress previous displacements for selected quantities
t = 0 (EQ 21)
r
Parameters The following parameters are required for this model:
*.Data.Name = DataNameList
The suspension displacements by kinematics effects of the selected quantities are set to
zero. The quantities are selected by the blank seperated list DataNameList of the keys tx,
ty, tz, rx, ry, rz, lSpring, lDamp, lBuf, lStabi.
´
t = c W ⋅ W self + c W ⋅ W opp (EQ 22)
self opp
r self
Parameters The following parameters are required for this model:
*.Data.Name = DataNameList
The suspension displacements by compliance effects of the selected quantities. The quan-
tities are selected by the blank seperated list DataNameList of the keys tx, ty, tz, rx, ry, rz.
Remark: Usually it is meaningful to leave out forces in z direction and tz movements.
*.Frc.x = Values
*.Frc.y = Values
*.Frc.z = Values
*.FrcOpp.x = Values
*.FrcOpp.y = Values
*.FrcOpp.z = Values
Compliance coefficients depending on forces (along x, y, z axis) to the actual (*.Frc.*) or the
opposite (*.FrcOpp.*) suspension. Point of attack is the wheel center.
*.Frc.Fac2SI = Fac2SI_List
*.Trq.Fac2SI = Fac2SI_List
All coefficients are multiplied by the factors from Fac2SI_List, from *.Frc.Fac2SI for forces
and from *.Trq.Fac2SI for torques.
*.Trq.x = Values
*.Trq.y = Values
*.Trq.z = Values
*.TrqOpp.x = Values
*.TrqOpp.y = Values
*.TrqOpp.z = Values
*.FrcDamp = Values
*.FrcOppDamp = Values
Compliance coefficients depending on the damper force to the actual (*.Frc.*) or the oppo-
site (*.FrcOpp.*) suspension.
5.4.2 “SetZero”
Description Model to suppress previous displacements for selected quantities
t = 0 (EQ 23)
r self
Parameters The following parameters are required for this model:
*.Data.Names = DataNamesList
The suspension displacements by compliance effects of the selected quantities are set to
zero.
The quantities are selected by the blank seperated list DataNameList of the keys tx, ty, tz,
rx, ry, rz, lSpring, lDamp, lBuf, lStabi. Unknown keys are skipped and the values from the
corresponding column in the data table are ignored. Typically unknown or commented out
keys should start with a "%" charscter.
*.Data.Name = DataNameList
The quantities are selected by the blank seperated list DataNameList of the keys tx, ty, tz,
rx, ry, rz, lSpring, lDamp, lBuf, lStabi. Unknown keys are skipped and the values from the
corresponding column in the data table are ignored. Unknown or commented out keys typ-
ically should start with a "%" charscter.
*.Frc.Fac2SI = Fac2SI_List
*.Trq.Fac2SI = Fac2SI_List
All coefficients are multiplied by the factors from Fac2SI_List, from *.Frc.Fac2SI for forces
and from *.Trq.Fac2SI for torques.
*.Frc.x.Data : TableWithValues
*.Frc.y.Data : TableWithValues
*.Frc.z.Data : TableWithValues
*.Trq.x.Data : TableWithValues
*.Trq.y.Data : TableWithValues
*.Trq.z.Data : TableWithValues
*.FrcDamp.Data : TableWithValues
Compliance coefficients depending on the damper force to the actual (*.Frc.*) suspension.
*.Arg = ArgName
The quantity, the displacement relationship depends on, is selected by ArgName. Known
keys are Frc.x, Frc.y, Frc.z, Trq.x, Trq.y, Trq,z, FrcDamp.
The forces (along x, y, z axis) or torques (arround x, y, z axis) attacks the actual suspension
in the wheel center.
*.Data.Name = DataNameList
The quantities are selected by the blank seperated list DataNameList of the keys tx, ty, tz,
rx, ry, rz, lSpring, lDamp, lBuf, lStabi. Unknown keys are skipped and the values from the
corresponding column in the data table are ignored. Typically unknown or commented out
keys should start with a "%" character.
*.Data : TableWithValues
*.Data.Fac2SI = Fac2SI_List
Example This parameter set is for the front axle and for the left suspension only. The compliance
depends on Frc.x, given in unit "kN". It defines compliance effects for suspension coordi-
nates ty and rz, both given in SI units.
SuspF.Com.0.Kind = "DisplaceLinFr1"
SuspF.Com.0.ValidSide = left
SuspF.Com.0.InputSide = left
SuspF.Com.0.L.Arg = Frc.x
SuspF.Com.0.L.Arg0 = 0.0 1.0 2.0 3.0 4.0 4.5 4.6 4.7
SuspF.Com.0.L.Arg0.Fac2SI = 1.0e3
SuspF.Com.0.L.Data.Name = ty rz
SuspF.Com.0.L.Data.Fac2SI = 1.0 1.32456
SuspF.Com.0.L.Data:
0.000 0.000
0.001 0.006
0.002 0.011
0.004 0.015
0.008 0.018
0.016 0.020
0.032 0.021
0.032 0.021
SuspF.Com.2.Kind = DisplaceLinFr1
SuspF.Com.2.ValidSide =left
SuspF.Com.2.InputSide =left
SuspF.Com.2.L.Arg = Frc.y
SuspF.Com.2.L.....
SuspF.Com.3.Kind = DisplaceLinFr1
SuspF.Com.3.ValidSide =right
SuspF.Com.3.InputSide =right
SuspF.Com.3.R.Arg = Frc.y
SuspF.Com.3.R.....
SuspF.Com.4.Kind = DisplaceLinFr1
SuspF.Com.4.ValidSide =left+right
SuspF.Com.4.InputSide =left+right
SuspF.Com.4.L.Arg = Trq.z
SuspF.Com.4.L.....
SuspF.Com.4.R.Arg = Trq.z
SuspF.Com.4.R.....
Chapter 6
Aerodynamics
6.1 Overview
CarMaker takes into account forces and torques due to external wind loads. All data is con-
form with the SAE norm J1594.
L L
RM
PM
S y x D
z b/2 z l/2
b
l
y
S
YM
VF
τ x D
VS
V∞
According to this norm the SAE Road Vehicle Aerodynamics commission defined the fol-
lowing frame (SAE-frame):
• X: positive forward
• Y: positive right
• Z: positive downward
• The origin of the SAE-frame usually in the wheel contact plane at the intersection point
of the symmetry lines of track base and wheel base (in design configuration).
Aerodynamic forces and torques depend on:
• Relative wind speed between wind and vehicle ( V ∞ ).
• Angle of attack of wind τ ( τ is given in degrees)
- τ = 0, if the wind is coming from front
- τ > 0, if the wind is slightly coming from front left.
CarMaker incorporates wind loads as 3 forces and 3 torques on the vehicle body:
ρ 2 ρ 2 ρ 2
F D = – F x = --- c D Av ∞ F S = F y = --- c Av ∞ F L = – F z = --- c Av ∞
2 2 S 2 L (EQ 24)
with
FD drag force (positive rearward)
cD drag coefficient (no dimension)
FS side force (positive to right)
cS side force coefficient (no dimension)
FL lift force (positive upward)
cL lift coefficient (no dimension)
ρ ambient air density
A vehicle reference area
v∞ relative wind speed
ρ 2 ρ 2 ρ 2
M RM = M x = --- c lAv ∞ M PM = M y = --- c lAv ∞ M YM = M z = --- c lAv ∞
2 RM 2 PM 2 YM
(EQ 25)
with
M RM rolling moment (positive right side down)
c RM rolling coefficient (no dimension)
M PM pitching moment (positive nose up)
c PM pitching coefficient (no dimension)
M YM yawing moment (positive nose right)
c YM yawing coefficient (no dimension)
l wheel base used as reference length
ρ ambient air density
A vehicle reference area
v∞ relative wind speed
AeroMarker.pos = x y z
This coordinate specified in FrD axis system (see section 1.2 ’CarMaker Axis Systems’)
determines the impact of external wind loads. This means when this virtual point reaches
the distance of a wind machine the wind takes effect.
Aero.Kind = KindStr
6.3 Models
6.3.1 ‘Coeff6x1’
Aero.pos = x y z
Specifies the position of origin of the SAE-frame expressed in the FrD axis system (see
section 1.2 ’CarMaker Axis Systems’).
Aero.Ax = Area
The vehicle reference area Area [m^2] is the projected frontal area including tires and
underbody parts.
Aero.Coeff : TableWithValues
this characteristic specifies the 3 force coefficients (EQ 24) and the 3 torque coefficients
(EQ 25) depending on the angle of attack of the wind τ (given in degrees!).
The tau-mapping should cover the whole field of angles, ranging from tau = -180 [deg] to
tau = +180 [deg]..
Example Aero.mapping:
-180 -0.4 0.0 0.1 0.0 -0.01 0.0
-90 0.0 -1.7 0.9 -0.2 0.0 0.0
0 0.2 0.0 0.1 0.0 -0.03 0.0
90 0.0 1.7 0.9 0.2 0.0 0.0
180 -0.4 0.0 0.1 0.0 -0.01 0.0
Aero.lReference = Length
Optional reference length. The default value for cars is the wheel base, for trailers the hitch
length.
Chapter 7
Steering System
7.1 Overview
The task of a steer system is to define the driver’s “steer influence” to the (front-) suspen-
sion. The steering system has an interface that serves two parts. One part is the designated
to the driving maneuver module (DrivMan simulates human interactions with the vehicle),
the other part interferes to the vehicles suspension module.
Driver
Vehicle (Suspension)
Steer Interface
Steer Interface
DrivMan
Steer Model
Basically steering systems for CarMaker are distinguished by the type of input (control) sig-
nals used. The control signal is the output of the driving maneuver module and is an input
requirement of the steer system.
Input requirement
Description
(Steer by...)
Angle The steering wheel angle is used as input to the steer model. No mass
dynamic effects are regarded. This means that the update to new val-
ues of steer angles happens infinitely fast (no differential equation).
Torque Input is the steering torque from the driving maneuver module. A
differential equation has to be used to calculate the steering wheel
angle. Mass dynamic effects should be regarded by the model. Infini-
tively fast changes of steering wheel angles are not possible.
T H,S = i σ → q ⋅ ( F L + F R )
Vehicle Suspension Left
mL ( qL ) mR ( qR )
T H,S σ H, σ̇ H, σ̇˙ H
Figure 7.2 shows the basic functionality of a steer by angle model. The steering wheel
angle σ H and its derivatives are inputs to the steer model. The steering wheel angle is
translated to the generalized quantity q = q L = q R . The same way for the derivatives. The
translation is defined as follows:
1 q̇
i q → σ ( σ H ) = ------------------------------- = ------- (EQ 26)
H iσ → q ( σH ) σ̇ H
H
(EQ 26) clarifies that the translation might depend on the steering wheel angle. Such a vari-
able steer translation is commonly used with modern steer systems.
Because there is no differential equation calculated only the static steering wheel torque
T H, S is returned by the model. The inputs of the two masses are not regarded by the steer
model (they have no effect on the steer system).
m ( L, H, R ) ⋅ q̇˙L = F ( L, H, R )
FL FR
m ( R, H, L ) ⋅ q̇˙R = F ( R, H, L )
m ( H, L, R ) ⋅ σ̇˙ H = F ( H, L, R )
Vehicle Suspension Left
mL ( qL ) mR ( qR )
A steer by torque model is characterized by the input of the steering wheel torque to the
steer model and that the steer angle and velocity and acceleration is returned by the steer
model. In this case differential equations as depicted in Figure 7.2 have to be calculated.
If a stiff rack steering system is modeled the generalized steer coordinates reduce to one
q Steer = q L = q R . Then the differential equations can be written as
This simple approach of steer by torque model can be extended by detailed models with
steering boosters or with extra functionality like active steering mechanisms.
Steering.Kind = KindStr
Specify the steering model to be used. The CarMaker steering model library provides the
following models:
Steering.Kind Description
Classic Standard steer by angle model.
q = qL = qR
σH rack
+
iσ → q ( σH )
H
This model simulates a simple rack steering system. The whole steering system is
assumed to be stiff. The generalized coordinates on the left and the right side are equal
q Steer = q L = q R .
The rack position ( q Steer ) is calculated with the steering gear ratio:
σH
q Steer = --------------------------
- (EQ 29)
i σH → q ( σ H )
Steering.Rack2StWhl = value
struct tSteerIFLR {
/*** Input Quantities: (Car/Driver to Steering) */
doubleFrc; /* force (external to steer system) */
doubleInert; /* inertia (external to steer system) */
} tSteerIF;
Calculation Function
Chapter 8
PowerTrain
8.1 Overview
The powertrain which acts as a global system within the CarMaker VVE is divided into a
number of subsystems with well defined interfaces. In the following the basic concept of the
subsystems and interfaces is described.
To observe and to drive the vehicle, additional output signals like the engine speed are
needed and provided from the corresponding powertrain submodules.
Model Description
Engine The ‘‘origin of all motion´´
Clutch The agent between producer and consumer of driving energy
Gearbox The converter of drive torque
There are different ways to look at powertrain submodules. One is the structural view how
powertrain modules are configured and connected to a complete system. This is shown in
Figure 8.2.
PowerTrain
PowerTrain
Components
E1 E2 C1 C2 GB1
Library
The topmost layer is the selected powertrain model. Here a specific powertrain model is
selected which is the central computation unit for the whole powertrain. This means the
binding of all components and the interfacing to the Vehicle-Model and the DrivMan-Model
is done within this model. The driveline is computed with this central unit. A powertrain
library called powertrain ‘Generic’ is provided with CarMaker for the most common used
powertrain versions. But there is a possibility to add custom models for special needs to the
ones offered from the library.
The Powertrain models have interfaces to other components needed to obtain a complete
powertrain. There are interfaces to the components Engine, Clutch and Gearbox form the
next layer in Figure 8.2. Similar to the Powertrain models a library called PowerTrain Com-
ponents Library is included with CarMaker and offers models for each individual compo-
nent. At this level it is also possible to add custom models to extend the library with
components for special needs.
As visible in Figure 8.2 the integration of custom models is seamless. As long as the spec-
ified interface of each module is regarded custom modules can be mixed with standard
modules as desired.
∑T
1
q̇˙x = ----------- x (EQ 30)
J Pro j˙
J Proj is the projected inertia of all connected parts reassessed by transmissions. These cal-
culations beside others are done in the Powertrain-Module which acts as a master unit for
all other powertrain submodules (see Figure 8.3).
Another way to look at powertrain submodules is concerned with the interfacing between
the powertrain modules themselves and the Vehicle-Model. Table 8.1: lists the types of
quantities being exchanged between powertrain subsystems and the Vehicle-Model.
q rotation angle
q̇ angular velocity
T from → to torque from system <from> to system <to>
i transmission
Figure 8.3 shows each powertrain subsystem and describes the required quantities
exchanged between the different submodules:
Driveline Model
The driveline model transfers the torque from the gearbox output to all driven wheels. The
calculation of wheel speeds and other rotation speeds is done in the computation part of
this master module.
ECU
Signals
T Support2Vehicle
T GearBox2Driveline q, q̇Wheel
ΣT i Integration of
Gearbox Driveline
˙ rotation speeds
q i, q i
q, q̇Driveshaft T Brake
T Tire
Figure 8.4: Driveline Mode
PowerTrain.Kind = KindStr
With this parameter a powertrain model is selected. The powertrain library provides the fol-
lowing models:
PowerTrain.Kind Description
GenFront standard front drive vehicle
GenRear standard rear drive vehicle
Gen2p2Front front driven vehicle with rear axle hanged on
Gen2p2Rear rear driven vehicle with front axle hanged on
Gen4WD four wheel drive vehicle
...
Supported configurations
PowerTrain.Kind Description
GenFront standard front drive vehicle
GenRear standard rear drive vehicle
Gen2p2Front front driven vehicle with rear axle hanged on
Gen2p2Rear rear driven vehicle with front axle hanged on
Gen4WD four wheel drive vehicle
Basically powertrain configurations are distinguished by the number of driven wheels and
in addition to this by the number of differential gears used. Figure 8.5 gives an overview of
the available configurations:
Front Drive:
GenFront Gen2p2Front
Rear Drive:
Gen4WD
GenRear Gen2p2Rear
Figure 8.5: Configurations overview
The standard front and rear drive configurations use one differential gear to distribute the
torque from the drive shaft to the wheels (either at the front or at the rear axle). The 4WD
configuration uses one differential gear for every axle and a center differential gear for dis-
tributing torque to the front and rear axle. The hanged on configurations also have differen-
tial gears for front and rear axle but use a coupling for transferring torque to the hanged on
axle. This means that with opened center coupling this configuration acts like a standard
front or rear drive.
Front:
i
Center: i
Rear:
There are several types of couplings for different purposes available. They can be config-
ured for each individual coupling shown in Figure 8.6:
Visco Coupling As a matter of principle a visco coupling is only able to transfer torque if there is a rotation
speed difference between both sides of the coupling. This is because a fluid is used for
torque transmission like in a hydrodynamic torque converter (Föttinger-Coupling). This
means there is no state where a visco coupling is sticking, there has to be slip for torque
transmission.
For simulation purposes a torque characteristic as a function of rotating speed difference is
used. The coupling torque is calculated by:
T
transferred torque
0 ∆ω̇
rotation speed difference
Torque Sensing The coupling torque (locking torque) depends on the torque difference between the two
Coupling coupled shafts.
The torque sensing coupling is only useful for the mount positions left2right and front2rear.
Figure 8.8 displays the mount position left2right.
TCage
TLow THigh
TLock
With torque sensing couplings there are two common characteristic values. The torque bias
and locking ratio are defined as:
T High
TB = ------------
- (EQ 32)
T Low
T Lock
LR = ------------
- (EQ 33)
T Cage
1
If T Lock = 0 then T High = T Low = --- T Cage applies for a standard differential gear. If T Lock
2
exists the torques calculate to:
1
T Low = --- ( T Cage – T Lock )
2
1
T High = --- ( T Cage + T Lock )
2 (EQ 34)
With (EQ 32), (EQ 33) and (EQ 34) a relationship between torque bias and locking ratio can
be determined:
TB – 1
LR = ----------------- (EQ 35)
TB + 1
The CarMaker implementation of a torque sensing coupling uses a torque bias value as
input for each the driven ( T Cage ≥ 0 ) and undriven ( T Cage < 0 ) case.
Locked Coupling This is not a real coupling. It acts like a rigid connection between input and output shaft. It
is useful for simulating a locked differential or testing purposes. No matter which mount
position is chosen the differential is lock in either case. There are no parameters needed for
this coupling.
DVA Locked With this coupling the locking torque for the configured couplings can be given via modifi-
cation of DVA quantities.
PowerTrain.Kind = KindStr
With this parameter a powertrain model is selected. The powertrain ‘Generic’ library pro-
vides the following models:
PowerTrain.Kind Description
GenFront standard front drive vehicle
GenRear standard rear drive vehicle
Gen2p2Front front driven vehicle with rear axle hanged on
Gen2p2Rear rear driven vehicle with front axle hanged on
Gen4WD four wheel drive vehicle
PowerTrain.ET.Kind = ETKindStr
PowerTrain.Clutch.Kind = ClutchKindStr
PowerTrain.GearBox.Kind = GearBoxKindStr
Inertias
PowerTrain.Engine.I = value
PowerTrain.Clutch.I_in = value
All parts of the clutch which should be added up to the engine mass substitute.
PowerTrain.Clutch.I_out = value
All parts of the clutch which should be added up to the wheel mass substitute if the trans-
mission is in gear.
PowerTrain.GearBox.I_in = value
All parts of the gearbox which are not added up to the wheel mass substitute. Measured
when transmission is in neutral.
PowerTrain.GearBox.I_out = value
All parts of the gearbox which are added up to the wheel mass substitute. Measured when
transmission is in neutral.
PowerTrain.DriveLine.I_in = value
PowerTrain.DL.FDiff.I_in = value
PowerTrain.DL.RDiff.I_in = value
PowerTrain.DL.FDiff.I_out = value
PowerTrain.DL.RDiff.I_out = value
PowerTrain.DL.FDiff.I_Cage = value
PowerTrain.DL.RDiff.I_Cage = value
PowerTrain.DL.FDiff.i = value
PowerTrain.DL.RDiff.i = value
PowerTrain.DL.FDiff.Cpl.Kind = KindStr
PowerTrain.DL.RDiff.Cpl.Kind= KindStr
PowerTrain.DL.FDiff.Cpl.Mounting = MountPos
PowerTrain.DL.RDiff.Cpl.Mounting= MountPos
PowerTrain.DL.FDiff.Cpl.k
PowerTrain.DL.RDiff.Cpl.k
Optional. Stiffness used for numerical stability when switching from stick to slip. Default: 10
PowerTrain.DL.CDiff.I_in = value
PowerTrain.DL.CDiff.I_out_front = value
PowerTrain.DL.CDiff.I_out_rear = value
PowerTrain.DL.CFDiff.I_Cage = value
PowerTrain.DL.CDiff.i_in2cent = value
PowerTrain.DL.CDiff.TrqRatio_front = value
Selects the torque distribution between front and rear axle. This paramter specifies how the
percentage of the input torque which is transfered to the front axle (the remaining torque
goes to the rear axle). The input range is from 0..1 excluding both extremal values.
PowerTrain.DL.CDiff.Cpl.Kind = KindStr
PowerTrain.DL.CDiff.Cpl.Mounting = MountPos
PowerTrain.DL.CDiff.Cpl.k = value
Optional. Stiffness used for numerical stability when switching from stick to slip. Default: 10
PowerTrain.DL.FDiff.Cpl.Trq_Amplify = value
PowerTrain.DL.RDiff.Cpl.Trq_Amplify = value
PowerTrain.DL.CDiff.Cpl.Trq_Amplify = value
PowerTrain.DL.HangOn.Cpl.Trq_Amplify =value
PowerTrain.DL.FDiff.Cpl.Trq_drotv = value
PowerTrain.DL.RDiff.Cpl.Trq_drotv = value
PowerTrain.DL.CDiff.Cpl.Trq_drotv = value
PowerTrain.DL.HangOn.Cpl.Trq_drotv = value
PowerTrain.DL.FDiff.Cpl.TrqBias_Driven = value
PowerTrain.DL.RDiff.Cpl.TrqBias_Driven = value
PowerTrain.DL.CDiff.Cpl.TrqBias_Driven = value
Specify torque bias value for drive case driven. Value has to be >= 1.
PowerTrain.DL.FDiff.Cpl.TrqBias_Dragged = value
PowerTrain.DL.RDiff.Cpl.TrqBias_Dragged = value
PowerTrain.DL.CDiff.Cpl.TrqBias_Dragged = value
Specify torque bias value for drive case dragged. Value has to be >= 1.
PowerTrain.DL.HangOn.I_in = value
PowerTrain.DL.HangOn.I_out = value
PowerTrain.DL.HangOn.i = value
PowerTrain.DL.HangOn.Cpl.Kind = KindStr
PowerTrain.DL.HangOn.rotv_open = value
Only for configuration Gen2p2Front! Optional. With this parameter it is possible to imple-
ment a disconnect unit for the rear axle. When the vehicle is dragged and the rotation speed
is above the specified value the disconnect unit applies. Default: 1e38 (this means no dis-
connect unit is installed)
PowerTrain.DL.HangOn.Cpl.k = value
Optional. Stiffness used for numerical stability when switching from stick to slip. Default: 10.
ECU
Signals
q, q̇ Engine T Engine
Engine Clutch
Accelerator Pedal
Starter activated
Ignition on/off
Figure 8.10: Engine Model
As shown in Figure 8.10 the main task of the engine model is to act as a torque source. The
output T Engine of the engine model can be calculated with different approaches. This is why
several subsystem types for the engine model are distinguished.
PowerTrain.ET.Kind = KindStr
Selection of the engine subsystem to use. The powertrain components library provides the
following engine torque models:
200
torque [Nm]
150
100
50
-50
-100
0 1000 2000 3000 4000 5000 6000 7000 8000
CarMaker
Engine Torque
Model Check
Wed May 26 11:58:32 AM CEST 2004, Page 1
The engine idle speed is designated to be approximately 900 rpm. In reality the engine has
an idle speed controller to keep the engine running at the desired idle speed. To accomplish
this behavior with CarMaker the drag load characteristic should have an area of positive
torque values between 600 and 900 rpm.
TEngine / Nm
10
0
1000 nEngine / rpm
-10
Figure 8.12 shows a cutout of the engine idle speed characteristic to establish a idle speed
of approximately 900 rpm. Due to the zero crossing of the torque characteristics at 900 rpm
higher speeds are slowed down due to negative torque and lower speeds are increased by
the small amount of positive torque. Like in reality the engine stalls due to negative torque
below 600 rpm. For other throttle values a smooth fading should be used (like in
Figure 8.11).
Parameters
PowerTrain.ET.Mapping.Kind = KindStr
PowerTrain.ET.Kind Description
linear2D A two dimensional engine characteristic map is used. Depends on
engine speed and (driver-)gas.
DragFullLoad Two characteristic lines are used. One for full throttle and one for
minimal throttle (depending from engine speed)
PowerTrain.ET.nIdle = value
Optional. If not defined the engine idle speed is determined out of the given characteristics.
This is only an informational parameter for the engine model. It is not determined to set the
engine idle speed. This is done by modifying the engine drag characteristic. See section on
page 110.
PowerTrain.ET.Starter.Trq = value
PowerTrain.ET.Starter.rotvOff = value
Optional. Turn off engine speed of the starter. If not given determined out of the given char-
acteristics.
PowerTrain.ET.TrqKl15Off = value
PowerTrain.ET.Mapping.Amplify = value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
PowerTrain.ET.Mapping.Data : value
Two dimensional characteristic for the engine torque mapping. Specifies blocks for equal
speed and vary gas from min to max.
Example PowerTrain.ET.Mapping.Data:
500 0.0 -90
500 0.5 -70
500 1 -50
.....
1000 0.0 0
1000 0.5 80
1000 1 150
....
PowerTrain.ET.Exponent = value
Transition from full load to drag load characteristic with a exponential function depending on
throttle position.
• gas = 0 ... 1.0
• Exponent = 1 → linear
• Exponent > 1→ parabolic
• Exponent < 1 → root shaped
Exponent Exponent
x = TDrag ⋅ ( 1.0 – gas ) + TFull ⋅ gas
PowerTrain.ET.DragPower.Amplify =value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
PowerTrain.ET.DragPower = value
Example PowerTrain.ET.DragPower:
500.0 -10.0
600.0 0.0
700.0 5.0
800.0 0.0
1000.0 -10.0
2000.0 -20.0
3000.0 -30.0
4000.0 -40.0
5000.0 -50.0
6000.0 -60.0
7000.0 -70.0
8000.0 -80.0
PowerTrain.ET.FullLoadPower.Amplify = value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
PowerTrain.ET.FullLoadPower
Example PowerTrain.ET.FullLoadPower:
500.0 10.0
1000.0 140.0
2000.0 155.0
3000.0 165.0
4000.0 180.0
4500.0 185.0
5000.0 182.0
6000.0 168.0
7000.0 130.0
8000.0 0.0
PowerTrain.ET.nIdle = value
PowerTrain.ET.Starter.Trq = value
PowerTrain.ET.Starter.rotvOff = value
Optional. Turn off engine speed of the starter. If not given determined out of the given char-
acteristics.
PowerTrain.ET.TrqKl15Off = value
Optional. Specifies the minimal and maximal Engine Speed. Below and above those
speeds the engine torque is regulated down. A ramp function is used.
PowerTrain.ET.PowerRatio = value
This specifies the maximum engine torque with full throttle. It is independently of the engine
speed.
The engine speed is calculated by Trq = PowerRatio ⋅ Gas .
Parameters
PowerTrain.ET.Trq_Ext2A = value
The engine output torque directly depends on the driver gas pedal position (standardized)
and is calculated by:
PowerTrain.ET.TrqKl15Off = value
Engine Controller
Usually vehicle dynamic controllers communicate with the engine controller. One reason is
to make modifications to the present engine torque in order to increase driving stability. In
an CarMaker/HIL approach without a having a real engine controller a functionality has to
be implemented as a model that simulates the intervention of the vehicle dynamic controller
to the engine torque.
This is realized in CarMaker with a user code function (usually in module User.c)
Listing 8.1: Usage of user code function EngineControl in User.c
8.4 Clutch
Overview
The clutch calculates the torque transfer from the engine to the gearbox input shaft consid-
ering the clutch pedal or ECU signals.
ECU
Signals
T Engine T Clutch2GearBox
Clutch Pedal
Figure 8.13: Clutch Model
PowerTrain.Clutch.Kind = KindStr
Selection of the clutch subsystem to use. The powertrain components library provides the
following submodels:
Powertrain.Clutch.Kind Description
Converter torque converter model usually used in combination with automatic
transmissions
Manual manual clutch model usually hand-operated by the driver
DVA Clutch torque is modified via DVA access
...
T ω, ω̇
friction plate
ω Fp, ω̇ Fp
input plate output plate
T In2Fp
ω In, ω̇ In ω Out, ω̇ Out
Engine Gearbox
⇒ T Fp2In
⇒
{
{Case: open Case: closed
Figure 8.14 shows the non physical approach of this model which uses three plates for
transmitting the torque from the engine to the gearbox. The plates form engine side to gear-
box side are called “input-”, “friction-” and “output-plate”. The “input-” and the “friction-plate”
form a system with pure friction which is used to cover the case clutch is opened respec-
tively is slipping. The remaining two plates form the counterpart for the closed clutch where
a spring loaded force element is added to the friction part.
Both parts of this clutch system contribute their moment to the resulting clutch moment
which is transmitted through the clutch:
To determine how much every system is contributing (or which case applies the most at one
stage) a weighting function is used.
Internally a normalized pedal position within ConnectPos and DisconnectPos is used.
Below ConnectPos no torque is transmitted and above DisconnectPos the clutch is fully
closed.
The factor x in (EQ 38) is estimated so that the range [0 .. 1] is adhered. A simple weighting
function is derived from the normalized pedal position:
T fmax is the maximum transmittable torque for the case clutch open. The real transmit-
ted torque calculates to:
With
Parameters
PowerTrain.Clutch.ConnectPos = value
Optional. At this clutch pedal position the clutch starts transferring torque. Default: 0.3 [0 ..
1].
PowerTrain.Clutch.DisconnectPos = value
Optional. At this clutch pedal position the clutch starts slipping when opening. Default: 0.7
[0 .. 1]
PowerTrain.Clutch.Trq_max = value
Optional. Sets maximum transmissible torque equally for both cases, clutch is slipping and
clutch is closed
Alternatively the maximum transmissible torque can be set independently with the following
two parameters.
PowerTrain.Clutch.Trq_max_fric = value
PowerTrain.Clutch.Trq_max_kd = value
PowerTrain.Clutch.d_fric = value
PowerTrain.Clutch.k_FP = value
PowerTrain.Clutch.d_FP = value
Optional, unit: Nm s/deg. Friction coefficient for the case clutch is closed. Default: 0.1167
2
T In = k In ω In ω Out
k In, k Out = f ( s ) mit s = -----------
-
2
ω In
T Out = k Out ω Out
(EQ 47)
The relation between the converter output- and the input-torque is often described with the
torque ratio µ.
T Out k Out
µ = ----------
- = ---------- (EQ 48)
T In k In
So, two characteristics kIn (s) and µ (s) respectively kOut(s) are used to represent the trans-
mission behavior of the converter.
Those characteristics use the following parameter names in CarMaker input files:
kIn PowerTrain.Clutch.k_E
µ PowerTrain.Clutch.mue
Figure 8.15 shows a typical gradient of the converter factor kIn over the speed ratio nOut/nIn:
1.7 e-3
converter factor kIn (Nms2)
1 e-4
0 1
rotation speed ratio nOut /nIn 0.98
Figure 8.15: converter factor kIn as a function of the rotation speed ratio
As depicted in Figure 8.16 the maximum torque ratio (usually 1.9 to 2.5) for the driveway
reduces with increasing rotation speed ratios. Above a certain speed ratio the torque ratio
remains constantly shortly below 1 (because of losses). This case is called clutch mode.
2.3
0.98
0 0.88 1
rotation speed ratio nout/nin
Parameters
PowerTrain.Clutch.Adjust = value
This parameter needs to be 1 to obtain the given characteristic! Otherwise the characteristic
for PowerTrain.Clutch.k_E is altered by this factor
PowerTrain.Clutch.k_E = Table
Example PowerTrain.Clutch.k_E:
0.0 3.3e-4
0.3 3.2e-4
0.6 3.0e-4
0.9 2.2e-4
0.95 1.8e-4
0.975 1.2e-4
0.995 1.7e-5
1.0 0
PowerTrain.Clutch.mue : = Table
Example PowerTrain.Clutch.mue:
0.0 2.1
0.8 0.98
0.9 0.98
1.0 0.98
T Clutch2Gearbox
PT.Clutch.DVA.Trq_A2B
DVA Clutch Gearbox
q, q̇Gerarbox
This model decouples the engine model since only the user specified torque is transferred
to the gearbox input shaft.
Parameters
ECU
Signals
T Gearbox2DL
T Clutch2GearBox iGearBox
Gear Selector
Figure 8.18: Gearbox Model
PowerTrain.GearBox.Kind = KindStr
Selection of the gearbox subsystem to use. The powertrain components library provides the
following gearbox models:
Powertrain.GearBox.Kind Description
Manual currently only a manual transmission is available
DVA Transmission ratio is modified via DVA access
...
The change from one gear ratio to another has to proceed in a certain time period because
it is impossible to accelerate the transmission input inertia unlimited. This synchronization
process is modeled through a constant gear change duration (parameterizable). The trans-
mission rate is adjusted continuously during this procedure.
PowerTrain.GearBox.iForwardGears = GearRatioList
PowerTrain.GearBox.iBackwardGears = GearRatioList
PowerTrain.GearBox.nFit = value
OPtional. This defines the number of cycle times (or milliseconds) used for the synchroni-
zation process. Default: 50
Example PowerTrain.GearBox.nFit = 50
PT.GearBox.DVA.i
T Gearbox2DL
T Clutch2Gearbox iGearbox
Parameters
This model has no parameters.
Inputs Outputs
DrivMan Engine
DrivMan.Gas PowerTrain.Engine_on
DrivMan.Clutch PowerTrain.Engine_rotv
DrivMan.GearNo
DrivMan.StarterCtrl GearBox
DrivMan.Ignition PowerTrain.GearBox_rotv_in
Car Wheel
Car.Trq_T2W<i> PowerTrain.W<i>.rotv
PowerTrain PowerTrain.W<i>.rot
PowerTrain.W<i>.Trq_B2W
PowerTrain
PowerTrain.Trq2Bdy1
Brake
Brake.Trq_<i>
Legend
<i>=FL/FR/RL/RR
Listing 2.3 shows the framework of the powertrain data structure from header file Power-
Train.h. For further details please refer to this file.
Listing 8.2: Interface Data Structure
struct tPowerTrain {
struct tPTEngine {
} Engine;
struct tPTClutch {
} Clutch;
struct tPTGearBox {
} GearBox;
struct tPTDriveLine {
} DriveLine;
struct tPTWheel {
} WFL, WFR, WRL, WRR;
double Trq_Supp2Bdy1[3];
};
Chapter 9
Brake System
9.1 Overview
CarMaker offers for every purpose an appropriate brake system model. There are different
interests for using a specific brake system model.
A simple brake model is sufficient if the main interest of investigation is not concerned with
the brake system and no electronic brake controller is used. It is good for driving maneuvers
with simple braking tasks.
If the interest is based on the brake system itself or if a brake ECU has to be satisfied there
is a high resolution brake model available which is exclusively parameterizable. The aim is
to represent the real braking system as closely as possible in combination with real time
computing constraints.
DrivMan.Brake
Trq[4]
DrivMan.BrakePark
(Output-Quantities)
IO.HydValve[12] Calculation
(Input-Quantities)
IO.PumpIsOn The user selected
Brake Model is calcu-
IO.BooSignal lated with this func- Pump
tion return volt.
ExtInp_IF.PactUnit.Value
Ambient.Temperature
The box in the middle shows the changeable brake model which can be a simple or a high
resolution brake model from the CarMaker brake library or any customer specific brake
model which satisfies the brake interface structure.
The input from the interaction controls of the brake system are provided from the DrivMan
module and displayed DrivMan.x quantities.
For a brake ECU in the Loop the information about valve positions and other output of the
brake ECU is needed as input into the brake model. Those signals are acquired from the
CarMaker IO module and shown as the IO.x input signals in Figure 9.1
For special purposes, e. g. control the master cylinder pressure with data records from an
external input file, there is a separate input for the pressure of the master cylinder
(ExtInp_IF.PactUnit.Value).
For several reasons the environment temperature is needed for some calculations within
brake models. this is why there is a separate input for the ambient temperature
(Ambient.Temperature).
In terms of embedding the brake model within the CarMaker vehicle environment only the
estimated brake torque for each wheel are needed as output values. But there are a number
of other output quantities as indicated by the arrows characterizing the output quantities (for
details see header fileBrake.h or section 9.2 on page 137). Depending on the brake model
used not all output quantities are calculated and therefore not updated.
Calculation Function
int (*Eval) (void *BP, /* Modellparameter/Instanzpointer */
tBrakeIF *IF, /* Interface structure */
double dt); /* time step */
Brake.Kind = KindStr
Specifies which brake model is used. Used if brake parameters are specified in the Vehicle
Data File.
Possible values are:
Brake.Kind Description
PresDistrib simple brake model, for details see section 9.5 on page 142
HydESP high resolution brake model, for details see section 9.6 on page 144
Brake.FName = FName
This references a brake model from a file including all other (not listed here) brake param-
eters. The file is read from the subdirectory Data/Misc. The model type is determined from
the FileIdent parameter (should be the first line in the external file). Currently this is only
available for the model HydESP (FileIdent = CarMaker-Brake-HydESP 3).
Brake.Torque.Amplify = ValueList
Multiplies the specific brake torque of the wheel, which has been calculated by the brake
model with this factor [-]. Four factors in the order front left, front right, rear left, rear right.
Parking Brake
CarMaker distinguishes between brake and parking brake. The parking brake model is not
contained in the changeable brake module selected with Brake.Kind or Brake.FName and
remains for all models the same. It is implemented as a fixed system within the CarMakers
car model.
Brake.Park.Trq_max = ValueList
Maximum parking brake torque at each wheel [Nm]. Four values in the order front left, front
right, rear left, rear right.
master-
brake- brake
Tfr cylinder pedal Trr
force
or
pMC
position
Tfl Trl
A master brake pressure is build proportional to the input value of the brake pedal.
or
Brake.pMC_based_on
Brake.pMC_Based_on Description
PedalPos Master brake pressure depends on brake pedal position (Default).
PedalForce Master brake pressure depends on brake pedal force.
The Brake pressure in the master cylinder is proportional to either pedal position or pedal
force.
Brake.PedalPos2pMC
This parameter is valid if ‘PedalPos’ is selected with Brake.pMC_Based_on. This factor deter-
mines the master brake cylinder pressure according to (EQ 53) [bar].
Brake.PedalForce2pMC
Brake.pWB2Trq
Ratio wheel pressure to brake torque, see (EQ 54) [-]. Specify 4 values for fl, fr, rl, rr wheel.
brake booster
drive signal
brake booster master cylinder
pilot valve
suction valve
hydraulic pump
line attenuator
or
volume line volume
low pressure
accumulator
outlet inlet
valve valve
Functional Description
Figure 9.3 shows the simplified model of a ESP controlled brake system. The following is a
brief description of such a system and how it features are modeled.
The brake force applied to the brake pedal by the driver is mechanically transformed into a
input force of the brake booster. The brake booster itself amplifies the input force and pass-
es its output to the pistons of the master brake cylinder. There the piston rod force is trans-
lated into a master cylinder pressure.
The master cylinder has two hydraulic connectors one for each brake circuit. It is assumed
that the master cylinder pressure is equal for both brake circuits.
The hydraulic part is modeled as a system of alternating volume and connection elements
(connecting lines including valves, hydraulic pumps, etc.). This means that from every vol-
ume element there is a flow of brake fluid through connection elements to another volume
element (depicted in Figure 9.4).
Volume Element 3
p 3, V 3
Figure 9.4: Hydraulic model with alternating volume and connection elements
Each volume element is characterized with the state variables pressure and volume. The
system tries to equalize pressure differences with a flow from the high pressure to the low
pressure volume element. The flow rate is limited by the hydraulic resistance which is a
attribute of the connection element. The hydraulic resistance is a combination of the resis-
tance of the connecting line and the current resistance of the valves (which often is a func-
tion of time and/or pressure difference). In case of a hydraulic pump this is reversed and the
pump transports fluid from the low pressure side to the high pressure side.
As a counterpart to the master brake cylinder the wheel brake cylinder transforms its cur-
rent pressure into a brake lining force. This force is transformed into a brake torque by the
wheel brake itself.
The goal of the system of valves, pumps, connection lines and volume elements in case of
a ESP system is to control the brake torque of each single wheel by regulating the pressure
of its wheel brake cylinder. This is done by opening and closing the inlet and outlet valves
for a certain amount of time to increase or decrease the brake pressure. To hold the current
pressure inlet and outlet valves remain closed at the same time.
The hydraulic pump is used to pump fluid back from the low pressure accumulator (where
brake fluid is temporarily stored) to the reservoir of the master brake cylinder. In special
operation modes of the system when the driver is not actuating the brake pedal the pump
is used to generate pressure for autonomous brake interventions. For those operation
modes of a ESP system two more controlled valves are needed for each brake circuit
(named suction and pilot valves in Figure 9.3). See technical literature for more information
how the suction and pilot valves are used and how specific actions are operated.
ABS systems have basically the same structure as ESP systems but the suction and pilot
valves are omitted. They are not needed because ABS systems do not perform autono-
mous brake interventions.
CircuitConfig
Optional. This parameter specifies the brake circuit configuration X- vs. II-pattern. (X-pat-
tern = diagonal split, II-pattern = one circuit for one axle). Default: X-pattern.
Brake Circuit
CircuitConfig Brake Circuit Description
Index
X 0 FR/RL Diagonal split.
1 FL/RR
II 0 FL/FR Parallel (front/rear) split.
1 RL/RR
Example CircuitConfig = X
Brake pedal
The brake force applied to the brake pedal by the driver is mechanically transformed into a
piston rod input force of the brake booster.
piston travel
F BooIn l1
l2
Pedal.ratio
The pedal ratio amplifies the force of the brake pedal [-]. The resulting force is the input of
the brake system.
Brake.Pedal2PedalFrc
Optional. This parameters defines the relation between driver brake pedal actuation and
brake pedal force F Pedal . Therefore a linear equation is used:
The force [N] defines the maximum brake force with full pedal actuation [1]. Default: 300 N.
F BooOut F BooIn
p MC p MC
The output force of the brake booster F BooOut equals a pressure of the master cylinder. This
relation can be calculated with (EQ 60) of the master brake cylinder.
Many parameters of the brake booster expect master cylinder pressures as input values
instead of booster output forces. See the particular description of these parameters.
Figure 9.7 shows the relation between the input force of the brake booster and the corre-
sponding master cylinder pressure. Before any pressure is build up the precharge force F 0
of the springs in the master cylinder has to be overcome. The following straight is the ampli-
fication range of the brake booster:
p MC
p runout no amplification of force (ratio=1)
F0 F runout F BooIn
Figure 9.7: Brake booster output pressure characteristic
The following brake booster types are provided with this hydraulic model:
Boo.type
Optional. Boo.type determines the type of booster or precharge pump used. Some brake
systems additionally use an electric drive of the booster in order to create a brake pressure
even if there is no pedal force (e.g. brake assist, ACC). See booster models TargetPressure
and PressureGradient.
Boo.type Description
none Default: No brake booster is used. (Amplification ratio is always
one).
Mechanical Classic mechanical brake booster.
TargetPressure Booster with pressure proportional to input signal or precharge pump.
PressureGradient Booster with pressure gradient dp/dt = f(input signal)
Boo.ampli
Amplification ratio when the brake booster is in amplification range [-]. See (EQ 57).
Example Boo.ampli = 7
Boo.runOut
Specifies the booster run-out pressure [bar]. Above the run-out pressure the booster ampli-
fication is one (no amplification).
Example Boo.runOut = 90
The dynamic behavior is calculated within this model. The dynamics of the force
increase is modeled by a delay and a exponential saturation function.
Additionally a force threshold value for the release switch must be given. The release
switch is operated when the piston rod force (driver interaction) exceeds the given
threshold force.
The effective booster force calculates as follows:
For the “interactive” case see Figure 9.7: , the “automatic” case is shown in the following
illustration:
[p, 0..1]
booster activation signal
p T arg et
booster pressure
t
Boo.Delay Boo.63Prcnt
Figure 9.8: Pressure rise controlled by booster ECU (case “automatic” booster force)
Boo.ampli
Amplification ratio when the brake booster is in amplification range [-]. See (EQ 57).
Example Boo.ampli = 7
Boo.runOut
Specifies the booster run-out pressure [bar]. Above the run-out pressure the booster ampli-
fication is one (no amplification).
Example Boo.runOut = 90
Boo.delay
Boo.63Prcnt
Time constant for pressure rise [s]. After t = Boo.Delay + Boo.63Pcnt , booster pressure has
reached 63% of the target value.
Boo.sign2press
This parameter determines the output (target) pressure when booster ECU is active [bar/
1]. The range of the drive signal is 0..1.
p T arg et = Boo.sign2press ⋅ DriveSignal
Example Boo.sign2press = 1
Boo.relF
Example Boo.relF = 10
In this booster model the release switch is operated when the “interactive” pedal force
exceeds the force generated by the “automatic” booster force.
In case of an autonomous intervention parallel to a pedal force, the resulting pressure is the
maximum of the two pressures:
pressure fall
Booster Pressure
pressure rise
t
Figure 9.9: Pressure rise with booster model PressureGradient
Boo.ampli
Amplification ratio when the brake booster is in amplification range [-]. See (EQ 57).
Example Boo.ampli = 7
Boo.runOut
Specifies the booster run-out pressure [bar]. Above the run-out pressure the booster ampli-
fication is one (no amplification).
Example Boo.runOut = 90
Boo.pMax
Maximum pressure difference the booster is able to produce in “automatic” mode (this
means booster pressure is controlled by the ECU) [bar].
Example Boo.pMax = 90
Boo.pGrad.mapping
Example Boo.pGrad.mapping:
0.0 -1000.0
0.15 -1000.0
0.3 0.0
0.4 0.0
0.8 400.0
1.0 400.0
1.1 400.0
Reservoir
p MC p MC F BooOut
F BooOut – F MC, 0 – c MC ⋅ x MC
- for x MC > x CompBore
p MC = ----------------------------------------------------------------- (EQ 60)
A MC
with
p MC Master cylinder pressure
F BooOut Brake booster output force
A MC Area of master cylinder.
F MC, 0 Precharge of the springs in MC.
c MC Spring constant of the MC springs.
x MC Piston travel.
x CompBore Piston travel to close compensation bore.
The pressure generated in the primary circuit is equal to the one in the secondary circuit.
When the force is zero, the piston is at the backside stop. The compensation bores are open
in this position and lead to a pressure equalization with the compensating reservoir (=atmo-
spheric pressure). Once the force becomes superior to the precharge of the springs, the
piston moves forward and closes the compensation bores. The whole brake system is now
a closed system and the further movements of the piston are determined by the system’s
elasticity.
MC.area
MC.xCompBore
Example MC.xCompBore = 2
MC.springConst
df N
------ of the spring(s) ---- .
dx m
MC.springLoad
brake lining
F Brake
r Brake
T Brake
The pressure in the brake cylinder is transformed into a brake torque as follows:
with
p Brake Brake pressure
T Brake Brake torque.
A BC Area of brake cylinder.
a Brake lining Brake lining ratio.
F Brake Brake force acting at the brake linings.
r Brake Effective brake radius transforming force
into torque.
The brake lining ratio describes the relation between brake pressure and resulting wheel
brake torque. For disc brakes, its value usually is the coulomb number multiplied by 2. (fac-
tor 2 because there are brake linings on both sides of the disc).
Optionally, a characteristic can be given:
For the following parameters applies: ‘f’ means front or ‘r’ means rear.
Pist_f.area
Pist_r.area
Total effective area of the ensemble of brake cylinders of one side (outboard or inboard) of
brake pistons of a single brake [cm2].
Pist_f.rBrake
Pist_r.rBrake
Pist_fl.ratio
Pist_fr.ratio
Pist_rl.ratio
Pist_rr.ratio
Ratio of braking force to actuating force [-]. This parameter takes into account the influence
of the internal transmission ratio of the brake as well as the Coulomb friction coefficient. Fre-
quently: 2*Coulomb (factor 2 comes from inboard + outboard brake linings)
The ratio must be given for each brake of the four brakes.
Pist_fl.ratio.mapping
Pist_fr.ratio.mapping
Pist_rl.ratio.mapping
Pist_rr.ratio.mapping
Optional, instead of Pist_<i>.ratio. Ratio [-] of braking force to actuating force as a func-
tion of the applied brake pressure [bar]. .
Example Pist_fl.ratio.mapping:
0 0.7
50 0.71
100 0.72
150 0.74
200 0.8
By definition, the liquid volume of the filled elements at athmospheric pressure is equal to
zero.
The parameters given must describe the sum of the elasticity of the brake cylinder itself as
well as of the line between inlet/outlet valve and brake.
The characteristic is parametrized by 3 to 20 points (p, V) as shown in the following diagram.
Above and below the given points, the curve is extrapolated linearly.
p3
p2
p1
p0
v0 v1 v2 v3 V
For the following parameters applies: ‘f’ means front or ‘r’ means rear.
Cyl_f.pv.mapping
Cyl_r.pv.mapping
Vector of pressure values [bar] corresponding to volume values [cm3]. It is the volume of
brake fluid absorbed by the cylinder at a given pressure. It is crucial that the supporting
points for the pressure rise strictly monotonic. .
Example Cyl_f.pv.mapping:
0 0.00
5 0.20
10 0.39
15 0.56
20 0.72
25 0.87
40 1.28
60 1.75
80 2.15
80 2.15
200 3.84
Example Cyl_f.pv.mapping:
0 0.00
Cyl_r.pv.mapping:
0 0.00
5 0.09
10 0.16
15 0.25
20 0.31
25 0.38
40 0.55
60 0.75
80 0.91
200 1.69
pMax
pMin
vMax v
LPA.vMax
LPA.pMin
LPA.pMax
dp2dv
v
Figure 9.14: Proportional characteristics of attenuators and line volumes
In real brake systems, those line volumes are very small. Nonetheless for numerical rea-
sons, those elements should not be parametrized too stiff, even if the value given doesn’t
represent the real physical value.
Att.dp2dv
The attenuator is situated at the high pressure side of the pump. For numerical reasons, its
value should not be too high [bar/cm3].
SuppL.dp2dv
The suction line volume is situated at the low pressure side of the hydraulic pump. For
numerical reasons, the value given should not be too high [bar/cm3].
- Cavitation on the suction side. If the relative pressure on the suction side of the
pump approaches -1 bar (absolute pressure 0 bar), the flow approaches to zero.
This relation is modeled by a exponential saturation function starting at a limit "edge"
pressure and a second pressure at which 63% of the full flow are reached:
p –p
edge
-
-----------------------
q∗ = q 1 – e
p 63 – p edge
(EQ 69)
• Dynamic characteristic:
t
– --
n q τ
---------- = ---------- = 1 – e (EQ 70)
n max q max
When the pump is switched on, the full rotational speed (as well as the full flow) is not
reached immediately, but it increases with an exponential saturation function. This
function can be parametrized by the time constant τ Full at which 63% of the full flow is
reached.
After switching off the pump, the rotational speed (as well as the flow) decreases expo-
nentially with a time constant τ Zero to be given.
The rotation speed of the hydraulic pump is a relative speed because it is meassured from
the voltage ratio of the pump ( current voltage ⁄ maximal voltage ). It is not possible for the hyrdau-
lic model to calculate a absolut pump speed.
Usually brake ECUs measure the return voltage generated by the pump to detect pump
engine faults. As the pump is a volumetric pump, its rotational speed is approximately pro-
portional to the flow (which is evaluated by the equation or tables above). The model eval-
uates this voltage as follows:
q
U Ret = ----------U genVmax (EQ 71)
q max
with
U genVmax Maximum generated return voltage of the pump (at a pressure
difference of 0 bar with no cavitation on the suction side).
q max Flow at pressure difference 0 bar.
All Paramaters specified for the hydraulic pump apply to a single brake cricuit (e. g. q max
applies per cirquit and is not the total flow of both cirquits). But both cirquits are parametized
with the same parameter (they are symetrical).
Pump.qMax
Pump.cLoss
Pump.Flow.mapping.Kind
Pump.Flow.mapping.Kind Description
Standard Default. One dimensional input characteristic depending on
activation signal expected.
PressureSignal Two dimensional input characteristic depending an activation
signal and pressure difference expected.
To obtain reasonable results for a hydraulic pump (flow depends on activation signal/supply
voltage and pressure difference) the parameter Pump.Flow.mapping.Kind should be set to
‘PressureSignal’.
Pump.Flow.mapping
Optional instead of Pump.qMax and Pump.cLoss. This characteristic holds lines with the pres-
sure difference at the hydraulic pump [bar] the activation of the pump [0..1] and the resulting
3
delivery flow [ cm ⁄ s ] of the pump. It is assumed that Pump.Flow.mapping.Kind is set to ‘Pres-
sureSignal’! .
Example Pump.Flow.mapping:
Pump.Full
Time constant τ Full when Pump is accelerating [s]. See (EQ 70).
Pump.Zero
Time constant τ Zero when pump is deccelerating [s]. See (EQ 70).
Pump.pEdge
Only for pressures higher than p edge the Hydraulic pump works. Below p edge no fluid is
pumped [bar].
Pump.p63Prcnt
At this pressure the pump operates at 63% of its full delivery capacity [bar].
Pump.genVmax
Optional. Generated voltage of the pump at maximum rotational speed [V], see (EQ 71).
Default: 8.0 V.
Q Q
Applied to this model is that a valve with its corresponding pipe is always situated between
two hydraulic reservoirs with the state variables pressure and volume. The pressure differ-
ence
∆p = p 1 – p 2 (EQ 72)
To solve this equation relations for the pressure portions of the flow of ∆p Valve and ∆p Pipe
are needed:
It is assumed that the flow through the pipe is always laminar and through the valve aperture
always turbulent.
• Laminar flow through a pipe:
2
Ad Pipe
Q Pipe = ---------------- ∆p = q Pipe ∆p (EQ 75)
32lρν
with
∆p pressure gradient (= pin- pout)
A cross section area of the pipe
d diameter pipe
ρ density
ν kinematic viscosity
q Pipe flow coefficient pipe
q Pipe can be calculated out of geometrical data using the following equation:
4
πd Pipe
q Pipe = -----------------
- (EQ 76)
128lρν
The value of the parameter q Pipe has to be specified in:
3 3
cm –6 m
[ q Pipe ] = --------------- = 10 ⋅ --------------- (EQ 77)
s ⋅ bar s ⋅ bar
• Turbulent flow through a valve:
2
Q Valve = αA --- ∆p ⋅ sgn ∆p = q Valve ∆p ⋅ sgn ∆p (EQ 78)
ρ
with
∆p pressure gradient (= pin- pout)
α coefficient depending on the geometry of the aperture
A aperture area
ρ density
q Valve flow coefficient valve aperture
q Valve can be calculated out of geometrical data using the following equation:
2
πd Valve 2
q Valve = α ----------------- --- (EQ 79)
4 ρ
The value of the parameter q Valve has to be specified in:
3 3
cm –6 m
[ q Valve ] = --------------- = 10 ⋅ --------------- (EQ 80)
s bar s bar
Combining (EQ 73), (EQ 74), (EQ 75) and (EQ 78) leads to:
∆p ( Q ) = -------------- + -----------
Q 2 Q
(EQ 81)
q Valve q Pipe
This relation between pressure difference and flow is valid for all modeled valves. Variations
are characterized through q Valve and q Pipe .
V 2 = V 2 + ∫ Q ( 1 ⇒ 2 ) dt
The interface between the ECU and the simulated hydraulic block is at the magnetic coil.
Figure 9.16 shows the process from sensing the valve position up to the calculation of the
volume transferred through the valve and the connected pipe.
There are two possibilities for the acquisition of the valve activation signals. For proportion-
al valves the acquiring method has to be analog in order to capture intermediate valve posi-
tions. A raw signal captured from the sensor is converted by a calibration function into the
measure signal (typically it is the voltage output signal of a hall sensor). After that the mea-
sure signal has to be converted into a standardized valve activation signal. This is the input
signal for each solenoid valve to the brake interface.
The same standardized activation signal is delivered from the digital valve acquisition. It is
the digital signal itself which is characterized by the states zero and one. An alternative
method for capturing digital valves is to use the analog signal acquisition. The signal con-
ditioning part is used to define a threshold for valve activity.
After the activation signal of each valve is stored in the brake interface structure the calcu-
lation process within the brake model can be initiated. The intermediate state (without
dynamics, t ➞ ∞) of a proportional valve is a function of the activation signal and the pres-
sure difference of the valve. This is called the target valve position. Because there is no
pressure dependency for digital valves this function is a one to one relation of the activation
signal.
The time response (so to speak when the target valve position is reached) is calculated by
the valve dynamics function. The opening time and closing time for the valve can be spec-
ified. As well, the opening/closing times are functions of the pressure difference. The result
is the standardized actual valve position.
The actual valve position is input for the flow rate calculation of the valve/pipe system. In
this context it is considered as a relative valve opening. The relative valve opening αrel [0..1]
is defined as:
q valve
α rel = --------------------
- (EQ 82)
q valve, max
q valve, max is the maximum flow rate which is reached with a fully opened valve (actual valve
position = 1). The calculation of the flow is done by (EQ 81) considering (EQ 82).
With the knowledge of the actual flow through the valve/pipe system the volume change of
the two bounding reservoirs can be calculated by integration of flow. This is shown in
Figure 9.16 at the lower part of the HydESP section.
The pressure difference of the valve is a central part for the calculation. It can be positive
or negative. Here, the pressure difference is defined to be positive if the input pressure is
higher than the output pressure, with the following definitions of inputs and outputs:
Inlet_f.transfer.mapping.Kind
Inlet_r.transfer.mapping.Kind
Outlet_f.transfer.mapping.Kind
Outlet_r.transfer.mapping.Kind
PV.transfer.mapping.Kind
SV.transfer.mapping.Kind
.transfer.mapping.Kind Description
Standard Default. One dimensional input characteristic depending on
activation signal expected.
PressureSignal Two dimensional input characteristic depending an activation
signal and pressure difference expected.
Inlet_f.transfer.mapping:
Inlet_r.transfer.mapping:
Outlet_f.transfer.mapping:
Outlet_r.transfer.mapping:
PV.transfer.mapping:
SV.transfer.mapping:
Optional. Used to calculate the target valve position of the valve. See Figure 9.16.
Syntax depending on Inlet_<f|r>.transfer.mapping.Kind (see above):
• Standard:
Characteristic specifying values for relative valve opening [0..1] depending on valve activa-
tion signal [0..1]..
Example Inlet_<f|r>.transfer.mapping:
0.0 1.0
0.5 0.6
1.0 1.0
• PressureSignal:
Characteristic specifying values for relative valve opening [0..1] depending on pressure
difference [bar] and valve activation signal [0..1].
Inlet_f.deltaT.mapping:
Inlet_r.deltaT.mapping:
Outlet_f.deltaT.mapping:
Outlet_r.deltaT.mapping:
PV.deltaT.mapping:
SV.deltaT.mapping:
Optional. Used to calculate valve dynamics and the actual valve position. Characteristic
specifying values for opening time [s] and closing time [s] of the valve depending on the
pressure difference at the valve [bar]. The durations specify the time for open a completely
closed valve and vice versa.
Example IInlet_f.deltaT.mapping:
100 0.002 0.01
200 0.001 0.01
0 0.01 0.01
aperture
size lower threshold upper threshold
big
small
p Sm2Gr p Gr2Sm ∆p
For the following parameters applies: ‘f’ means front or ‘r’ means rear.
Inlet_f.qOri
Inlet_r.qOri
Inlet_f.qOriGr
Inlet_r.qOriGr
Flow coefficient of valve when switched to big aperture (‘Ori’ = Orifice = Aperture)
3
[ cm ⁄ ( s ⋅ bar ) ] .
Inlet_f.qOriSm
Inlet_r.qOriSm
Flow coefficient of valve when switched to small aperture (‘Ori’ = Orifice = Aperture)
3
[ cm ⁄ ( s ⋅ bar ) ] .
Inlet_f.pSm2Gr
Inlet_r.pSm2Gr
Limit pressure below which valve switches from “small” to “big” aperture [bar].
See Figure 9.17.
Inlet_f.pGr2Sm
Inlet_r.pGr2Sm
Limit pressure above which valve switches from “big” to “small” aperture [bar].
See Figure 9.17.
Inlet_f.qPipe
Inlet_r.qPipe
3
Optional. Overall flow coefficient of pipe in front and behind the valve [ cm ⁄ ( s ⋅ bar ) ] . Default:
106.
InCheckV_f.qOri
InCheckV_r.qOri
Flow coefficient of check valve situated beside inlet valve (‘Ori’ = Orifice = Aperture)
3
[ cm ⁄ ( s ⋅ bar ) ] .
InCheckV_f.qPipe
InCheckV_r.qPipe
3
Optional. Overall flow coefficient of pipe of check valve [ cm ⁄ ( s ⋅ bar ) ] . Usually this is the
same as Inlet_<f|r>.qPipe. Default: 106.
Outlet Valves
The outlet valves (or: discharge valves) are situated behind the wheel brake. When not driv-
en, the outlet valves are closed.
Outlet_f.qOri
Outlet_r.qOri
3
Flow coefficient of outlet valve (‘Ori’ = Orifice = Aperture) [ cm ⁄ ( s ⋅ bar ) ] .
Outlet_f.qPipe
Outlet_r.qPipe
3
Optional. Overall flow coefficient of pipe before and after the outlet valve [ cm ⁄ ( s ⋅ bar ) ] .
Default: 106.
9.6.16 Pilot valve with check valve and pressure limiting valve
The pilot valves are used to separate the brake circuit from the master cylinder. This allows
the system autonomously to generate a brake pressure in the circuit. When not driven, the
pilot valves are open.
A check valve is positioned parallel to the pilot valve. It opens if the pressure in the master
cylinder is higher than the one in the circuit.
A pressure limiting valve is positioned parallel to the pilot valve as well. It opens if the pres-
sure in the brake circuit is higher than the pressure limit. In this case, the flow is calculated
as follows:
Pure ABS systems don’t have pilot valves. For ABS systems use a relatively high value for
the flow coefficient. Be careful with too high values and check numerical stability.
PV.qOri
3
Flow coefficient of pilot valve (‘Ori’ = Orifice = Aperture) [ cm ⁄ ( s ⋅ bar ) ] .
PV.qPipe
3
Optional. Overall flow coefficient of pipe before and after the pilot valve [ cm ⁄ ( s ⋅ bar ) ] .
Default: 106.
PLim.qOri
3
Flow coefficient of pressure limiting valve (‘Ori’ = Orifice = Aperture) [ cm ⁄ ( s ⋅ bar ) ] .
PLim.qPipe
Optional. Overall flow coefficient of pipe before and after the pressure limiting valve
3
[ cm ⁄ ( s ⋅ bar ) ] . Usually set to the same value as PV.qPipe. Default: 106.
PLim.pOpen
At a pressure difference superior to PLim.pOpen, the pressure limiting valve opens [bar].
PVcheckV.qOri
3
Flow coefficient of check valve (‘Ori’ = Orifice = Aperture) [ cm ⁄ ( s ⋅ bar ) ] .
PVcheckV.qPipe
3
Optional. Overall flow coefficient of pipe before and after the check valve [ cm ⁄ ( s ⋅ bar ) ] .
Usually set to the same value as PV.qPipe. Default:106.
Pure ABS systems don have suction valves. For ABS systems use a relatively high value
for the flow coefficient. Be careful with too high values and check numerical stability.
SV.qOri
3
Flow coefficient of suction valve (‘Ori’ = Orifice = Aperture) [ cm ⁄ ( s ⋅ bar ) ] .
SV.qPipe
3
Optional. Overall flow coefficient of pipe before and after the suction valve [ cm ⁄ ( s ⋅ bar ) ] .
Default: 106.
LPAcheckV.qOri
Flow coefficient of low pressure accumulator check valve (‘Ori’ = Orifice = Aperture)
3
[ cm ⁄ ( s ⋅ bar ) ] .
1 1
q valve ∼ ------- and q pipe ∼ ------ . (EQ 85)
ρ ρν
This means that parameter values for q valve and q pipe specified in the hydraulic dataset are
only valid for a specific reference temperature T Ref which usually equals the ’normal’ oper-
ation temperature.
Investigations about the significance of the relations ρ ( T ) and ν ( T ) point out clearly that
there is a negligible temperature influence of the mass density and a significant tempera-
ture dependence of the kinematic viscosity. This means that a change of temperature is
only relevant for the flow coefficients of the hydraulic pipes.
Figure 9.19: Change of kinematic viscosity and mass density of hydraulic fluid as a function of temperature
The flow parameters of the lines are specified by the user for a specific reference tempera-
ture. If the brake should operate at a temperature that differs from the reference tempera-
ture, the operating temperature can be changed to an alternative value (input from brake
interface). The flow characteristics are then adapted automatically by the brake model with
the given characteristics for the hydraulic fluid.
In order to parametrize the properties of the brake fluid, kinematic viscosities for two differ-
ent temperatures have to be given. Those two points are then used by the model to deter-
mine the coefficients in its viscosity function.
The hydraulic model uses the following approach to scale the flow coefficients to the spe-
cific operating temperature. A factor
ν Ref
nf = --------
- (EQ 86)
νT
with
nf Scaling factor,
v Ref Kinematic viscosity of brake fluid at reference temperature,
νT Kinematic viscosity of brake fluid at the specified operating tem-
perature of the brake,
ν Ref
q pipe, T = nf ⋅ q pipe = --------- ⋅ q pipe (EQ 87)
νT
The reference kinematic viscosity is the viscosity according to (EQ 88) for the temperature
T Ref :
c ⋅ T Ref + k
10
ν Ref = 10 . (EQ 90)
Fluid.Ref.Temp
Optional. Reference temperature. Temperature of the hydraulic fluid at which the specified
flow coefficients are valid. Dimension: K. Default: no default value, temperature dependen-
cy of the brake fluid is switched on by specifying this parameter.
Fluid.Ref.Temp = 293
The viscosity of the brake liquid has to be indicated for two temperatures:
Fluid.P1.Temp
Fluid.P1.nue
Fluid.P2.Temp
Fluid.P2.nue
Example Fluid.P2.nue = 40
3
Brake.HydESP.qIN_FL m ⁄s Volume flow through inlet valve front left
3
Brake.HydESP.qIN_FR m ⁄s Volume flow through inlet valve front right
3
Brake.HydESP.qIN_RL m ⁄s Volume flow through inlet valve rear left
3
Brake.HydESP.qIN_RR m ⁄s Volume flow through inlet valve rear right
3
Brake.HydESP.qOUT_FL m ⁄s Volume flow through outlet valve front left
3
Brake.HydESP.qOUT_FR m ⁄s Volume flow through outlet valve front right
3
Brake.HydESP.qOUT_RL m ⁄s Volume flow through outlet valve rear left
3
Brake.HydESP.qOUT_RR m ⁄s Volume flow through outlet valve rear right
3
Brake.HydESP.qPV_0 m ⁄s Volume flow through pilot valve 0
see section ’CircuitConfig’
3
Brake.HydESP.qPV_1 m ⁄s Volume flow through pilot valve 1
see section ’CircuitConfig’
3
Brake.HydESP.qPu_0 m ⁄s Volume flow through hydraulic pump 0
3
Brake.HydESP.qPu_1 m ⁄s Volume flow through hydraulic pump 1
3
Brake.HydESP.qSV_0 m ⁄s Volume flow through suction valve 0
3
Brake.HydESP.qSV_1 m ⁄s Volume flow through suction valve 1
Chapter 10
Tire
10.1 Overview
The quality of a vehicle dynamics simulation is heavily influenced by the capabilities of the
tire model. This chapter describes the basic outline of tire models used with CarMaker.
z
x
y
C
Fr2
z
x
z
y x
P
y
FrH
Fr0
Fz
Figure 10.1: Tire Axis system FrH
There are two points of interest concerning a tire model, the wheel center C and the tire-
road contact point P. The axis system Fr2 which origins in C is explained in section 1.2
’CarMaker Axis Systems’. Furthermore there is a axis system FrH which has its origin in the
tire-road contact point. FrH is defined as follows:
• Rules apply to any tire of the vehicle
• (O) is located on the intersecting line of the tire vertical plane and the tangential plane
of the road. It is defined as the point of the shortest distance min ( CP ) on the intersect-
ing line.
• (X) points in forward direction of the intersecting line between tire vertical plane and
tangential plane of the road.
• (Y) points to the left side rectangular to (X) in the tangential plane of the road.
• (Z) points in direction of the normal vector of the tangential plane of the road (mathe-
matically: ( X ) × ( Y ) ).
CarMaker supports tire models formulated for the tire-road contact point. The duty of the
tire model is to calculate the tire response forces and torques. Basically the tire forces and
torques are functions of:
with
Fz Normal force in tire contact point
α Side slip angle
s Longitudinal slip
γ Camber angle
µ Friction coefficient between tire and road
(P)
v
v Belt (P)
F
(P)
Fz
Tire Model
(P)
γ T
(P)
µ
A CarMaker tire model is provided from the vehicle model with the inputs depicted in
Figure 10.2. Beside the ones explained with Figure 10.1 they are:
(P)
v Velocity vector in the tire-road contact
point
v Belt Velocity of the tire belt in the tire-road
contact point
vertical damping
C(t) vertical stiffness
CP ( t )
R0
l(t) Fz P ( t )
P0
(P)
α, s = f ( v , v Belt ) (EQ 92)
The computation of internal models is explained in the sections below corresponding to the
tire models offered by CarMaker.
The first parameter has to be the FileIdent parameters which specifies the type and version
of tire model to be used. See chapter 1.6.2 for details.
Example CarMaker-Tire-RTTire 3
FileCreator = Comment
Description: Text
Description contains formal informations of tire details, e. g. tire dimensions, inflation pres-
sure, conditions of measurement, etc.
Carrier.mass = Mass
Carrier.I = InertiaTensor
Wheel.mass = Mass
Wheel.I = InertiaTensor
Visualization AspectRatio
NomWidth
NomRadius
Optional. Nominal radius of tire used for the animation tool IPG-MOVIE [m].
RimRadius
Optional. Nominal radius of rim used for the animation tool IPG-MOVIE [m].
FLoadMax
Optional. Maximum animated load force of tire. Used to scale the tire force vectors in the
animation tool IPG-MOVIE [N].
BinFName
File name with relative path to Data/Tire directory. Tire force and torque mappings may be
stored in a binary file located in this directory.
Radial.Stiffness
Radial.Damping
Dynamics LongFrc.Length
SideFrc.Length
AlignTrq.Length
Optional. Boundary for switching between stand still model and normal computation [m/s].
StandStill.cLong = Stiffness
StandStill.cSide = Stiffness
InclinAngle2Alpha
Optional. Camber influence to side slip angle. The actual camber value multiplied by this
factor is added to the side slip angle value [-].
The following roll resistance models are known: Torque of force influence based on Load or
velocity.There KindStr are:
KindStr Description
TrqLoad A torque along wheel spin axis, against rotation based on
load force.
TrqVelocity A torque along wheel spin axis, against rotation based on
translation velocity.
FLoad A force along FrH x axis, against translation based on load
force.
FVelocity A force along FrH x axis, against translation based on trans-
lation velocity.
RollResist.Factor
Kind dependent Factor. Input is scaled by Factor to get the roll resistance output [-].
ITVS = RadialTireStiffness_N/m
ITVD = RadialDamping_N/m/s
ITRLLO = RelaxationLengthLong_m
ITRLLA = RelaxationLengthLateral_m
ITSSCLO = StandStillCoeffLong
ITSSCLA = StandStillCoeffLateral
ITRORETL = RollResistFactor_Trq/Load
with
Y ( X ) = y ( x ) + SV
x = X + SH
where:
Y ( X ) : could be either F x or F y or possibly M z (in this case the sine function is replaced by
a cosine function.
The variables represents as follows:
B : stiffness factor
C : shape factor
D : peak value
E : curvature factor
S H : horizontal shift
S V : vertical shift
y Y
xm
SH
D
ya
x
SV X
atan(BCD)
Figure 10.4: Curve produced by the original sine version of the Magic Formula
The Magic Formula y ( x ) typically produces a curve that passes through the origin
x = y = 0 , reaches a maximum and tends to a horizontal asymptote. To allow the curve to
have an offset with respect to origin, two parameters for shifting ( S H and S V )have been
introduced
The MagicFormula model equation contains non-dimensional parameters p , q , r and s and
additional scaling factors λ . These parameters are used to parametrize a special tire
behavior.
The effect of having a tire with different nominal load can be approximated by using a scal-
ing factor:
′
F zo = λ Fzo F zo (EQ 94)
′
F z – F zo
d f z = ------------------
′
- (EQ 95)
F zo
Optional. Link to an ADAMS® tire property file. Its path is relative to directory Data/Tire.
Dim.UNLOADED_RADIUS
Free tire radius also used for the animation tool IPG-MOVIE [m].
Dim.WIDTH
Tire width also used for the animation tool IPG-MOVIE [m].
Dim.RIM_RADIUS
Rim radius also used for the animation tool IPG-MOVIE [m].
Dim.RIM_WIDTH
Rim width also used for the animation tool IPG-MOVIE [m].
Vertical.VERTICAL_STIFFNESS
Vertical.VERTICAL_DAMPING
Scale.LCX
Scale.LMUX
Scale.LEX
Scale.LKX
Scale.LHX
Scale.LVX
Scale.LGAX
Scale.LCY
Scale.LMUY
Scale.LEY
Scale.LKY
Scale.LHY
Scale.LVY
Scale.LGAY
Scale.LTR
Scale.LRES
Scale.LGAZ
Scale.LMX
Scale.LVMX
Scale.LMY
Scale.LXAL
Scale.LYKA
Scale.LVYKA
Scale.LS
Scale.LSGKP
Scale.LSGAL
Scale.LGYR
Example A l l p a ra m e t e r s a r e t a ke n f r o m t h e r e fe r e n c e d A DA M S ® t i r e p r o p e r t y f i l e
DT_Pacejca.tir, in the directory Data/Tire/Pacejka.
The vertical stiffness from the referenced file is overwritten: The value 400000 N/m is used
instead.
FileIdent =CarMaker-Tire-MF52 2
Description:
ADAMS Pacejka parameter set
AdamsPropertyFile =Pacejka/DT_Pacejka.tir
Vertical.VERTICAL_STIFFNESS = 400000
V
R e = ------x (EQ 96)
Ω
R0
Ω
Vx
Re C
In general the effective rolling radius will change with tire deflection ρ . Assuming the tire
has a constant vertical stiffness C z , the deflection is calculated with:
F
ρ = -----z- (EQ 97)
Cz
The effective rolling radius is estimated by the Magic Formula (A3.7) which reads:
F z0
ρ Fz0 = ------- (EQ 99)
Cz
ρ
ρ d = --------- (EQ 100)
ρ Fz0
Vertical.DREFF
Vertical.FREFF
Vertical.FNOMIN
VCx Vsx
VCy α
Vsy
V VS
Figure 10.6: Slip computation
V sx = V Cx – ΩR e (EQ 101)
V sx
κ = – --------- (EQ 102)
V Cx
V sy = V y (EQ 103)
V sy
tan α = ------------ (EQ 104)
V Cx
V sy
α = atan ------------ (EQ 105)
V Cx
V r = Re Ω (EQ 106)
In case the complete model including transient properties is used, the transient tire quanti-
′ ′
ties κ and α (see (EQ 194), (EQ 195)) are used instead of the wheel slip quantities κ and
α.
κ x = κ + S Hx (EQ 108)
*
µ x = ( p Dx1 + p Dx2 d f z ) ⋅ λ µx ( > 0) (EQ 111)
K xk
B x = ----------------------------- (EQ 114)
( Cx Dx + εx )
′
S Vx = F z ⋅ ( p Vx1 + p Vx2 d f z ) ⋅ λ Vx ⋅ λ µx ⋅ ζ 1 (EQ 116)
2
µ x = ( p Dx1 + p Dx2 d f z ) ⋅ ( 1 – p Dx3 γ x ) ⋅ λ µx ( > 0 ) (EQ 117)
with
γ x = γ ⋅ λ γx (EQ 118)
′
• In (EQ 116) λ µx instead of λ µx used.
Longitudinal Long.PCX1
(pure slip)
Shape factor for longitudinal force [-].
Long.PDX1
Long.PDX2
Long.PDX3
Long.PEX1
Long.PEX2
Long.PEX3
Long.PEX4
Long.PKX1
Long.PKX2
Long.PKX3
Long.PHX1
Long.PHX2
Long.PVX1
Long.PVX2
*
α y = α + S Hy (EQ 120)
Dy = µy ⋅ Fz ⋅ ζ2 (EQ 122)
*2 *
µ y = ( p Dy1 + p Dy2 d f z ) ⋅ ( 1 – p Dy3 γ ) ⋅ λ µy (EQ 123)
*
E y = ( p Ey1 + p Ey2 d f z ) ⋅ { 1 – ( p Ey3 + p Ey4 γ ) sgn ( α y ) } ⋅ λ Ey ( ≤ 1) (EQ 124)
′ Fz
K yαo = p Ky1 F zo sin 2 atan ------------------
′
⋅ λ Kyα (EQ 125)
p Ky2 F zo
2
*
K yα = K yαo ⋅ ( 1 – p Ky3 γ ) ⋅ ζ 3 (EQ 126)
K yα
B y = -----------------------------
- (EQ 127)
( Cy Dy + εy )
* ′
S Vy = F z ⋅ { ( p Vy1 + p Vy2 d f z ) ⋅ λ Vy + ( p Vy3 + p Vy4 d f z )γ ⋅ λ Kyγ } ⋅ λ µy ⋅ ζ 2 (EQ 129)
′ Fz
K yα = p Ky1 F zo sin 2 atan ------------------
′
⋅ ( 1 – p Ky3 γ y ) ⋅ λ Kyα . (EQ 130)
p Ky2 F zo
with
γ y = γ ⋅ λ γy (EQ 131)
*
• In (EQ 123) λ µy instead of λ µy used.
′
• In (EQ 129) λ µy instead of λ µx used and
Lateral Lat.PCY1
(pure slip)
Shape factor for lateral forces [-].
Lat.PDY1
Lat.PDY2
Lat.PDY3
Lat.PEY1
Lat.PEY2
Lat.PEY3
Lat.PEY4
Lat.PKY1
Lat.PKY2
Lat.PKY3
K fy
Variation of -----------
- with camber [-].
Fz
nom
Lat.PHY1
Lat.PHY2
Lat.PHY3
Lat.PVY1
Lat.PVY2
Lat.PVY3
Lat.PVY4
′
M zo = – t o ⋅ F yo (EQ 134)
′
t o = t ( α t ) = D t cos ( [ C t atan { B t α t – E t ( B t α t – atan ( B t α t ) ) } ] ⋅ cos α ) (EQ 135)
*
α t = α + S Ht (EQ 136)
*
S Ht = q Hz1 + q Hz2 d f z + ( q Hz3 + q Hz4 d f z )γ (EQ 137)
*
α r = α + S Hf ( = α f ) (EQ 139)
S Vy
S Hf = S Hy + --------
′
- (EQ 140)
K yα
′
K yα = K yα + ε K (EQ 141)
2 * *
2 λ Kyα
B t = ( q Bz1 + q Bz2 d f z + q Bz3 d f z ) ⋅ ( 1 + q Bz5 γ + q Bz6 γ ) ⋅ ----------
*
- (EQ 142)
λ µy
Ro
D to = F z ⋅ ------
- ⋅ ( q Dz1 + q dz2 df ) ⋅ λ t ⋅ sgn V cx
′
(EQ 144)
F zo
2
* *
D t = D to ⋅ ( 1 + q Dz3 γ + q Dz4 γ ) ⋅ ζ 5 (EQ 145)
2 * 2
E t = ( q Ez1 + q Ez2 d f z + q Ez3 d f z ) 1 + ( q Ez4 + q Ez5 γ ) --- atan ( B t C t α t ) ( ≤ 1) (EQ 146)
π
λ Ky
B r = q Bz9 ⋅ -------
- + q Bz10 B y C y ⋅ ζ 6 (EQ 147)
λ µy
*
*
D r = F z R o { ( q BDz6 + q Dz7 d f z )λ Mr ζ 2 + ( q Dz8 + q Dz9 d f z )γ λ Kzy ζ 0 } (EQ 148)
′ *
cos α ⋅ λ µy sgn V cx + ζ8 – 1
2 λ Kyα
B t = ( q Bz1 + q Bz2 d f z + q Bz3 d f z ) ⋅ ( 1 + q Bz4 γ z + q Bz5 γ z ) ⋅ ----------- (EQ 150)
λ µy
with
γ z = γ ⋅ λ γz (EQ 151)
2
D t = D to ⋅ ( 1 + q Dz3 γ z + q Dz4 γ ) ⋅ ζ 5 (EQ 152)
• In (EQ 152), (EQ 147) and (EQ 153) ζ 5 , ζ 6 , ζ 2 , ζ 8 and λ Kzy ,are set to one.
Align.QBZ2
Align.QBZ3
Align.QBZ4
Align.QBZ5
Align.QBZ9
Align.QBZ10
Align.QCZ1
Align.QDZ1
Align.QDZ2
Align.QDZ3
Align.QDZ4
Align.QDZ6
Align.QDZ7
Align.QDZ8
Align.QDZ9
Variation of peak residual torque factor with camber and load [-].
Align.QEZ1
Align.QEZ2
Align.QEZ3
Align.QEZ4
Align.QEZ5
Align.QHZ1
Align.QHZ2
Align.QHZ3
Align.QHZ4
*
α S = α + S Hxα (EQ 157)
Longitudinal Long.RBX1
(combine)
Slope factor for combined slip reduction [-].
Long.RBX2
Long.RCX1
Long.REX1
Long.PEX2
Long.PHX1
*
B yκ = r By1 cos [ atan { r By2 ( α – r By3 ) } ] ⋅ λ yκ (EQ 166)
* *
D Vyκ = µ y F z ⋅ ( r Vy1 + r Vy2 d f z + r Vy3 γ ) ⋅ cos ( [ atan ( r Vy4 α ) ] ⋅ ζ 2 ) (EQ 171)
Lateral Lat.RBY1
(combined slip)
Slope factor for combined F y reduction [-].
Lat.RBY2
Lat.RBY3
Lat.RCY1
Lat.REY1
Lat.REY2
Lat.RHY1
Lat.RHY2
Optional. Shift factor for combined F y reduction with load [-]. Default: 0.
Lat.RVY1
Lat.RVY2
Lat.RVY3
Lat.RVY4
Lat.RVY5
Lat.RVY6
′ ′
Mz = –( t ⋅ Fy ) (EQ 174)
′
t = t ( α t, eq ) = D t cos ( [ C t atan { B t α t, eq – E t ( B t α t, eq – atan ( B t α t, eq ) ) } ] ⋅ cos α ) (EQ 175)
′
F y = F y – S Vyκ (EQ 176)
Fy *
s = R o ⋅ s sz1 + s sz2 ------
- + ( s sz3 + s sz4 d f z )γ ⋅ λ s
′
(EQ 178)
F zo
2 K xκ 2 2
α t, eg = α t + --------
′
- κ ⋅ sgn ( α t ) (EQ 179)
K yα
2 K xκ 2 2
α r, eg = α r + --------
′
- κ ⋅ sgn ( α r ) (EQ 180)
K yα
′ Cx ′ V
• In (EQ 175) cos ( α ) instead of cos α used. cos α = ---------
- shall be used only in case of
VC
very large slip angles (normally never measured)
*
• In (EQ 178) γ z instead of γ used.
• The (EQ 179) and (EQ 180) change to
2 K xκ 2 2
′
- + κ ⋅ sgn ( α t )
α t, eg = atan tan α t + -------- (EQ 182)
K yα
2 K xκ 2 2
′
- + κ ⋅ sgn ( α r )
α r, eg = atan tan α r + -------- (EQ 183)
K yα
Align.SSZ2
s Fy
Variation of distance ------ with -----------
- [-].
Ro Fz
nom
Align.SSZ3
s
Variation of distance ------ with camber [-].
Ro
Align.SSZ4
s
Variation of distance ------ with load and camber [-].
Ro
Fy
- λ
M x = F z R o q sx1 λ VMx + – q Sx2 γ + q sx3 ------
′ Mx
(EQ 185)
F zo
Overturning OverTurn.QSX1
Couple
Lateral force induced overturning couple [-].
OverTurn.QSX2
OverTurn.QSX3
(EQ 186)
Fx Vx 4
+ q Sy4 ---------- ⋅ λ My
Vx
M y = – F z R o ⋅ q sy1 + q 2sy ------- + q Sy3 ---------
- (EQ 188)
F zo V ref
V ref
M y = R o ( S Vx + K x ⋅ S Hx ) (EQ 189)
Roll.QSY2
Roll.QSY3
Roll.QSY4
4
Optional. Rolling resistance torque depending on speed [-]. Default: 0.
Roll.LONGVL
du
σ κ ------ + V Cx u = – σ κ V Sx (EQ 190)
dt
dv
σ α ------ + V Cx v = σ α V Sy (EQ 191)
dt
These differential equations are based on the assumption that the contact point is not slid-
ding.The relaxation lengths are only functions of vertical load and camber angle:
Ro
σ κ = F z ⋅ ( p Tx1 + p Tx2 d f z ) ⋅ exp ( – p Tx3 d f z ) ⋅ ------
′
- ⋅ λ σκ (EQ 192)
F zo
Fz
σ α = p Ty1 sin 2 atan -----------------
- ⋅ ( 1 – p Ky3 γ ) ⋅ R o λ Fzo λ σα
′
(EQ 193)
p Ty2 F zo
′ ′
The practical tire deformation quantities κ and α are subsequently used instead of argu-
ments κ and α in the equations (EQ 154), (EQ 162), (EQ 173), (EQ 185) and (EQ
188).They are defined as follows:
′ u
κ = ------ sgn ( V Cx ) (EQ 194)
σκ
′ v
tan α = ------ (EQ 195)
σα
Starting from (EQ 190) and (EQ 191) the transient behavior could be described with a low
pass filter. The time constant reads:
σκ
T = --------- (EQ 196)
Vx
σα
T = --------- (EQ 197)
Vx
dv
M z, gyr = c gyr m Belt V rl ------ cos [ atan ( B r α r, eq ) ] (EQ 198)
dt
with parameter
and
′
M z = M z + M z, gyr (EQ 201)
Gyroscopic Align.PTX1
couple
Relaxation length at F znom [-].
Align.PTX2
Align.PTX3
Align.TY1
Align.TY2
Align.QTZ1
Align.MBELT
µ Road
µ eff x, y = ------------
- (EQ 202)
λ µx, y
This value is used instead of λ µx respectivelly λ µy in (EQ 116), (EQ 117), (EQ 123), (EQ
129), (EQ 148), (EQ 150) and (EQ 153).
Chapter 11
Trailer Model
11.1 Overview
Like the vehicle model the trailer model is a MESA VERDE multi body model consisting of
the vehicle body, 2 or 4 wheel carriers, 2 or 4 wheels and a additional load mass. This trailer
model suits passenger towing vehicles and therefore only supports trailers with single or
twin axle.
h COM, v h COM, t
hh
lf lr x COM, t
l lo l db
Figure 11.1: Common measures for a vehicle with trailer
RefPointInputSystem = x y z
This parameter specifies the origin of the Fr1 (in FrD coordinates). The coordinates XYZ
point from the origin of FrD to the origin of Fr1. (see section 1.2 ’CarMaker Axis Systems’).
BucklingAngle_max = Angle
Optional. This parameter specifies the maximum buckling angle Angle [deg] which is tol-
erated without issuing an error message. Higher angles lead to an abortion of the current
testrun.
nAxle = NumberOfAxles
Tire.<i> = TireParameterSet
Specifies the parameters of tire to use for wheel front left (i=0), front right (i=1), rear left (i=2)
and rear right (i=3). TireParameterSet is the name of a tire parameter set out of directory
Data/Tire.
∫ ∫ ∫
2
( y + z 2 ) dm – xy dm – xz dm
Body Body Body
A F E
∫ ∫
2
F B D = symmetry ( z + x 2 ) dm – yz dm (EQ 203)
Body Body
E D C
∫
2
symmetry symmetry ( x + y 2 ) dm
Body
11.3.2 Parameters
Body.pos = x y z
Body.mass = Mass
Body.I = ...
TrimLoad.<i>.pos = x y z
TrimLoad.<i>.mass = Mass
TrimLoad.<i>.I = ...
Bodies to trim mass contribution to that of a reference vehicle. Trim loads are fixed to vehicle
body. <i> := 0, 1, 2, ...
Do not confuse TrimLoads with test run specific additional charges you may want to put on
your vehicle.
WheelCarrier.fl.pos
WheelCarrier.fl.mass
WheelCarrier.fl.I
Wheel carrier front left. Represents all unsprung mass in the suspension (except the
wheel).
WheelCarrier.fr.pos
WheelCarrier.fr.mass
WheelCarrier.fl.r
Wheel carrier front right. For details, see wheel carrier front left.
WheelCarrier.rl.pos
WheelCarrier.rl.mass
WheelCarrier.rl.I
Wheel carrier rear left. For details, see wheel carrier front left.
WheelCarrier.rr.pos
WheelCarrier.rr.mass
WheelCarrier.rr.I
Wheel carrier rear right. For details, see wheel carrier front left.
Wheel.fl.pos
Wheel.fl.mass
Wheel.fl.I
Wheel front left. The wheel and all other rotating components (parts of the brake, ...) .
Wheel.fr.pos
Wheel.fr.mass
Wheel.fl.r
Wheel.rl.pos
Wheel.rl.mass
Wheel.rl.I
Wheel.rr.pos
Wheel.rr.mass
Wheel.rr.I
11.4.1 Spring
SuspF.cAmplify = factor
SuspR.cAmplify = factor
Spring amplification factor. Values given by the spring force model is multiplied with this fac-
tor (output value).
SuspPos.c = dFrc/dq
11.4.2 Damper
SuspF.kAmplify = factor
SuspR.kAmplify = factor
Damper amplification factor factor. Values given by the damper force model (compression
and rebound) is multiplied with this factor (output value).
SuspF.kPush = dFrc/dqp
SuspR.kPush = dFrc/dqp
SuspF.kPull = dFrc/dqp
SuspR.kPull = dFrc/dqp
11.4.3 Stabilizer
SuspF.cStAmplify = factor
SuspR.cStAmplify = factor
Stabilizer amplification factor factor. Values given by the stabilizer force model is multiplied
with this factor (output value).
SuspF.cSt = dFrc/dq
SuspR.cSt = dFrc/dq
x y
It is characterized through a straight translation of the wheel carrier. In Figure 11.4 the
translation in z coordinate direction is shown. There is no modification of toe or camber
whilst compression.
x y
ry
y
x
ry
Susp.Kind = SuspensionKind
Susp.Kind Description
Sleeve Kinematics of a sleeve axle is used
Crank Kinematics of a crank axle is used
SemiTrailingArm Kinematics of a semi trailing arm axle is used
z z
definition of positive x x
camber angle
definition of positive
toe angle
y y y y
SuspF.InclinationL = InclinAngle
SuspR.InclinationL = InclinAngle
Camber angle InclinAngle [rad] of left wheel in design configuration FrD. Positive sign
means the distance on the upper side of the wheel is longer then on the bottom side.
SuspF.InclinationR = InclinAngle
SuspR.InclinationR = InclinAngle
SuspF.ToeL = ToeAngle
SuspR.ToeL = ToeAngle
Toe angle ToeAngle [rad] of left wheel carrier in design configuration FrD. Positive sign
means toe-in, negative sign means toe-out.
SuspF.ToeR = ToeAngle
SuspR.ToeR = ToeAngle
Toe angle ToeAngle [rad] of right wheel carrier in design configuration FrD.
Positive sign means toe-in, negative sign means toe-out.
SuspF.lCrank = length
SuspR.lCrank = length
SuspF.AxlePosL.1 = x y z
SuspF.AxlePosR.1 = x y z
SuspR.AxlePosL.1 = x y z
SuspR.AxlePosR.1 = x y z
SuspF.AxlePosL.2 = x y z
SuspF.AxlePosR.2 = x y z
SuspR.AxlePosL.2 = x y z
SuspR.AxlePosR.2 = x y z
11.5.9 Compliance
ty x rx
z
rz
x
Tz Tx F T Tz F T
Fy T y y y y y
y y y
Fx Fz Fx
Tx Tz Tx
Susp.ElastoActive = active
Use compliance (elasto kinematics) for trailer. To activate compliance kinematics use
active=1, to deactivate use active=0.
This parameter specifies the compliance vector for the wheel travel direction t y . The six
coefficients of this vector form elasticities of six forces and torques acting on the wheel car-
rier. Usually there is no compliance beside the wheel compression for a force F z . Therefore
m m
this parameter usually is set to zero. Dimensions: ---- for forces, --------- for torques.
N Nm
Remark: The acting forces are decomposed in carrier frame Fr2.
This parameter specifies the compliance vector for the wheel rotation r x . The six coeffi-
cients of this vector form elasticities of six forces and torques acting on the wheel carrier.
Usually there is no compliance beside the wheel compression for a force F z . Therefore this
rad rad
parameter usually is set to zero. Dimensions: -------- for forces, --------- for torques.
N Nm
This parameter specifies the compliance vector for the wheel rotation r z . The six coeffi-
cients of this vector form elasticities of six forces and torques acting on the wheel carrier.
Usually there is no compliance beside the wheel compression for a force F z . Therefore this
rad rad
parameter usually is set to zero. Dimensions: -------- for forces, --------- for torques.
N Nm
Remark: The acting forces are decomposed in carrier frame Fr2.
11.6 Hitch
11.6.1 Overview
The trailer model is connected to the towing vehicle by a virtual spring-damper-system. The
point of contact is in the middle of the coupling device. The parameters are determined
automatically depending on the masses of the vehicles. The parameters are chosen in a
way that even with huge coupling forces the relative travel of the coupling contact points is
about a few millimeters and numerical stability is ensured.
To ensure stabilization of the trailer different hitch improvements have been developed. The
CarMaker trailer model supports the following hitch types:
• No stabilization, normal ball joint
• Four joint hitch
• Ball joint hitch with friction damper
• Ball joint with buckling angle dependent hydraulic damping
Parameters
Hitch.Kind = KindStr
Specifies the type of hitch stabilization model to use. Possible values are:
Hitch.Kind Description
Ball no stabilization, normal ball joint
Trapez four joint hitch
BallFric ball joint hitch with friction damper
BallDamp ball joint with buckling angle dependent hydraulic damping
Hitch.pos = x y z
Center position of the trailers hitch. Coordinates are specified in trailers FrD axis system.
Hitch.c = dFrc/dq
Optional. Overwrite the internally computed spring constant for trailer hitch. With this
parameter not real values for the trailers hitch spring constant should be used rather then
values that ensure numerical stability. Default: a default is computed internally by the mass-
es of towing vehicle and trailer.
Hitch.k = dFrc/dqp
Optional. Overwrite the internally computed damper constant for trailer hitch. With this
parameter not real values for the trailers hitch damper constant should be used rather then
values that ensure numerical stability. Default: a default is computed internally by a ratio of
spring constant to damper constant.
δ
A
ab
a
a0
d x b2
b1
y
b B
b0
Hitch.Trapez.ab = length
Length of the trapezoid in direction of vehicles roll axle. See Figure 11.14.
Hitch.Trapez.b1 = length
Hitch.Trapez.b2 = length
Hitch.Fric.Adjust = factor
Adaption parameter for calculation of stick-slip behavior. For this calculation trailer mass is
altered by this factor. Use 1.0 as standard parameter.
Hitch.Fric.myH = mu
Static friction coefficient between ball-shaped hitch head and frictions elements.
Hitch.Fric.myG = mu
Sliding friction coefficient between ball-shaped hitch head and frictions elements.
Hitch.Fric.FNorm = FrcNorm
Hitch.DampKonst = dFrc/dqp
Example Hitch.DampKonst = 50
11.7.2 Parameters
Brake.Kind = KindStr
Brake.Kind Description
““ Trailer without brake system
Overrun Overrun brake, brake torque proportional to drawbar force
Overrun1 Overrun brake, brake torque based on friction
Brake.Ratio
Ratio of the sum of all brake forces on all wheels to the force of the trailer hitch.
In EWG directive 71/320 “brake systems” a ratio of 5 is compulsory.
Example Brake.Ratio = 5
Brake.Fmin = value
Brake.Delay = value
Time delay for brake force rise. A first order delay element is used. Too small values may
lead to instabilities, too high values are not realistic. Dimension: s.
Brake.Fric.Adjust = value
Adaption parameter for calculation of stick-slip behavior. For this calculation trailer mass is
altered by this factor. Use 1.0 as standard parameter.
Brake.Fric.myH = value
Static friction coefficient between brake pads and brake drum (brake disk).
Brake.Fric.myG = value
Sliding friction coefficient between brake pads and brake drum (brake disk).
11.8 Aerodynamics
The trailer uses the same aerodynamic model as the towing vehicle. For general description
see section 6.3.1 ’‘Coeff6x1’’.
Chapter 12V
User Accessible Quantities
For a better understanding of the naming conventions of UAQ´s please refer to section 1.4
’CarMaker Naming Conventions’.
Car.vy
Car.SideSlipAngle = atan -----------------
Car.vx
Car.SideSlipAngle = 0 if Car.vx = Car.vy = 0
Car.vyFL
Car.SlipAngleFL = atan ------------------------
Car.vxFL
Car.SlipAngleFL = 0 if Car.vxFL = Car.vyFL = 0
2
( Car.vHori )
Car.TrackRadius = ---------------------------------
Car.alHori
Car.TrackRadius = ∞ if Car.alHori = 0
3
Brake.HydESP.qIN_FL m ⁄s Volume flow through inlet valve front left
3
Brake.HydESP.qIN_FR m ⁄s Volume flow through inlet valve front right
3
Brake.HydESP.qIN_RL m ⁄s Volume flow through inlet valve rear left
3
Brake.HydESP.qIN_RR m ⁄s Volume flow through inlet valve rear right
3
Brake.HydESP.qOUT_FL m ⁄s Volume flow through outlet valve front left
3
Brake.HydESP.qOUT_FR m ⁄s Volume flow through outlet valve front right
3
Brake.HydESP.qOUT_RL m ⁄s Volume flow through outlet valve rear left
3
Brake.HydESP.qOUT_RR m ⁄s Volume flow through outlet valve rear right
3
Brake.HydESP.qPV_0 m ⁄s Volume flow through pilot valve 0
see section ’CircuitConfig’
3
Brake.HydESP.qPV_1 m ⁄s Volume flow through pilot valve 1
see section ’CircuitConfig’
3
Brake.HydESP.qPu_0 m ⁄s Volume flow through hydraulic pump 0
3
Brake.HydESP.qPu_1 m ⁄s Volume flow through hydraulic pump 1
3
Brake.HydESP.qSV_0 m ⁄s Volume flow through suction valve 0
3
Brake.HydESP.qSV_1 m ⁄s Volume flow through suction valve 1
Table 12.1: Changed or Renamed UAQ´s from CarMaker 2.0 to CarMaker 2.1
Table 12.1: Changed or Renamed UAQ´s from CarMaker 2.0 to CarMaker 2.1
Table 12.1: Changed or Renamed UAQ´s from CarMaker 2.0 to CarMaker 2.1
Appendix
Appendix A
Mini-Maneuver Command Language
A.1 Syntax
Comment lines start with a ‘#’ character and are ignored by the interpreter. All other lines
are interpreted as commands.
The execution of minimaneuver commands can be defined by conditions. When the condi-
tion gets true the following command is executed. A condition is notated in front of a com-
mand. If no condition is specified the command is executed at the beginning of the
minimaneuver.
[Time=TimeVal] [Dist=DistVal] CmdStr
Argument Description
TimeVal Specifies the time offset from the beginning of the minimaneuver when
the succeeding commands should execute.
DistVal Specifies the distance the vehicle traveled from the beginning of the
minimaneuver when the succeeding commands should execute.
CmdStr the mini maneuver command string
Specify time and/or distance statement to trigger the start of evaluation of succeeding com-
mands.
When specifying Time and Dist in conjunction the succeeding commands are executed
when one of the two conditions gets true.
Define a label with the name LabelStr. A jump to this minimaneuver can be realized by ref-
erencing this label (see next command).
Jump to mini maneuver with the label <LabelStr>. The label has to be set in the desired
minimaneuver with the Label command. Alternatively the identifier number <LabelNo> of
the minimaneuver can be specified directly without defining a label.
Modify the CarMaker standard behavior of reading inputs from file from the beginning of a
simulation. With this command is possible to define the point when to start input from file.
This can either be at the beginning of a minimaneuver or in combination with the Time and
Dist conditions somewhere during a minimaneuver.
The parameter ModeStr specifies the following actions:
ModeStr Description
enable Enable input from file. If this is the first instance of this command the
input from file starts at this place.
disable Disable input from file. This can be used as a interrupt function. The
internal time used for input from file continues to count up but the
values are not updated in CarMaker. Any further ’enable’ commands
make sure that the values are updated in CarMaker again.
restart With this parameter it is possible to rewind the timeline of the input
from file module. Behavior is like the first start of input from file then.
Argument Description
<QuantName> Name of the quantity to access via DVA
<Mode> Abs, Off, Fac, FacOff, AbsRamp, OffRamp, FacRamp,
FacOffRamp
<AccessPoint> IO_In, IO_Out, DM
<nCycles> Number of cycles the selected quantity should be overwritten
<Val1> Value to be used for DVA
<Val2> Used to specify offset or ramp in some modes
<nCyclesRamp> Used to specify number of cycles used for the ramp
Mode Description
Abs <Val1> specifies the absolute value to overwrite the quantity.
Off <Val1> specifies an offset which is added to the current value of the
quantity.
Fac <Val1> specifies a factor the current value of the quantity is multiplied
with.
FacOff Combination of the cases ’factor’ and ’offset’ above. <Val1> specifies
the factor, <Val2> specifies the offset.
AbsRamp Specifies absolute value in <Val1> and the number of cycles
<nCyclesRamp> to be used to fade to this value.
OffRamp Specifies the offset value to be added to the current value of the
selected quantity in <Val1> and the number of cycles
<nCyclesRamp> to be used to reach the given offset.
FacRamp Specifies the factor the current value of the selected quantity is multi-
plied with in <Val1> and the number of cycles <nCyclesRamp> to be
used to fade to reach the given factor.
FacOffRamp Specifies the offset value to be added to the current value of the
selected quantity in <Val1>, the factor the current value of the selected
quantity is multiplied with in <Val2> and the number of cycles
<nCyclesRamp> to be used to reach the given factor and offset.
• Beside the mode the access point of the DVA write command has to be specified:
• The number of cycles <nCycles> selects how long the quantity should be overwritten. If
a mode type ’ramp’ is specified <nCycles> has priority over <nCyclesRamp>.
Kl15
Kl15=<0/1>
Example Kl15=1
Switch ignition on.
Kl50
Kl50=<0/1>
Example Kl50=1
Log
Log <Msg>
LogWrnS <Msg>
LogErrS <Msg>
This command issues messages (string embedded in quotes) to the session log. The fol-
lowing types of messages are distinguished:
Type Description
Log Issue a log message. The message is specified in [Msg].
LogWrnS Issue a warning message. The message is specified in [Msg].
LogErrS Issue a error message. The message is specified in [Msg].
Appendix B
Traffic-Obstacles
In this section, the module traffic-obstacle is discussed (not to be confused with road-
obstacles).
It is a module to define, handle and calculate obstacles of traffic, a module to do traffic flow
simulation in the environment of vehicle dynamics simulation.
In many applications, it is convenient to consider the motion of an individual obstacle being
composed of two parts: first, the nominal motion, second the — in general small — per-
turbed motion. Several options might be considered in characterizing the gross motion.
The gross motion of the obstacle is described most naturally by the motion of a frame mov-
ing along the mid-line of the road with variable velocity v . This frame also performs angular
motion with a certain angular velocity to maintain it’s orientation with respect to the road in
form of the latter curves.
t4
t3
t2
t1
An obstacle
• is a three dimensional box with width, height, length, position and orientation,
v Road
nominal
t Road
s perturbed
IPG-ROAD
t Road
s RoadCoord
The longitudinal motion is typically defined by a velocity table. The default for lateral behav-
ior is to keep the initial lateral position. That means that the obstacle has always the same
lateral distance to the middle of the lane. The superposed longitudinal and lateral behavior
can be created by random, sinus or square functions.
The obstacle module interacts directly with IPG-ROAD to get the corresponding absolute
position and orientation.
The obstacle module provides the absolute state of all defined obstacles. In a second step,
RelVel
RelAcc
Vel Sensor
Acc
dist
ance
s RoadCoord
s obst
s PoI
relative quantities are calculated. For example, an Adaptive Cruise Control (ACC) controller
needs the distance, the direction from the sensor to and the relative velocity and accelera-
tion of the obstacle are needed.
Input file
The obstacles and their maneuvers are defined in an ascii text-file with infofile syntax.
Infofile syntax means keyword orientated, string or numeric values are separated from the
key by “=”, text values by “:”. The hash character "#" in the first column introduces a com-
ment line. For more details, look in the infofile documentation.
If you want to use your own input syntax, you can write your own input function instead of
the default Obsts_iGetObstcl().
Properties of an obstacle
All the following parameters have the prefix Obstacles.<No>
The obstacles lower border lies parallel to the road surface. The vertical offset is z Road .
y obstacle l
y Road s Road
h
z Road
s0 s Road
y Road s0
rear plane
birds view 3d view
.Kind = ObstacleKind
The obstacle is of the kind ObstacleKind. This predefines basic characteristics like dimen-
sions. Known kinds are: LowPerfPassCar, HighPerfPassCar, HeavySnglUnitTruck, Trai-
lerTruck, Bus, Motorcycle.
Table 12.2: Obstacle Classes (date: 2005-07-05)
Off z = 0 means obstacle lies on the road surface. Positive values shift upwards.
Off x = 0 means the reflection plane is the rear plane. Positive values shifts the reflection
plane forwards into the obstacle. The default is 0.
.Basics.Dimension = l w h
Initial longitudinal s Road and lateral y Road road position of obstacles rear plane. y Road is
optional. Default: s Road = 0.0 m, y Road = 0.0 m.
.Init.v = Velocity
Longitudinal initial velocity Velocity. Default is 0.0 m/s.
.Init.Orientation = rx ry rz
.DrvLaps = LapDriving
Lap driving LapDriving=1 means, if an obstacle reaches at the end of the road it disap-
pears and reappears at the beginning of the road at s Road = 0.0m . This behaviour can be
deactivated by LapDriving=0 .
Limitation
t=<xx>s length of <xx> seconds
t_abs=<xx>s until absolute time reaches <xx> seconds
s=<xx>m length of <xx> meters
s_abs=<xx>m until obstacle reaches absolute road distance of <xx> meters
The kind of limitation influences the defined superimposed motion. If the maneuver step is
limited by time, the superimposed period refers to the maneuver time, otherwise to dis-
tance.
triangle=<A0>,<T0>,<A1>,<T1>,<T2>
triangle with amplitude
<A0> at <T0>,
<A1> at <T1> and
0 at <T2>
triangle=<A0>,<T0>,<A1>,<T1>,<T2>
triangle with amplitude
<A0> at t= <T0>,
<A1> at t= <T1> and
0 at t= <T2>
struct {
double sRoad;
double yRoad;
double v;
double rx, ry, rz;
} Init;
int DriveEndless;
int nMan;
tObstMan *Man;
char Info[64];
} tObstcl;
Sensor Interface
typedef struct tObstSensIF {
double sRoad; /* sensor road coordinate (estimate) */
double t_0[3]; /* sensor position Fr0 */
double v_0[3]; /* sensor velocity Fr0 */
double a_0[3]; /* sensor acceleration Fr0 */
double omega[3]; /* sensor rotational velocity Fr0 */
double alpha[3]; /* sensor rotational acceleration Fr0 */
double Tr2Fr0[3][3]; /* sensor orientation/transformation matrix “sensor to Fr0” */
} tObstSensIF;
Description Creates a new handle to an obstacle management. A new data structure for obstacle man-
agement is created and initialized.
• Call once per simulation, before any other operation with obstacles is done.
Return values
NULL Error
!= NULL O.k.
Description Creates a new obstacle structure and initializes it with default values. The properties of this
obstacle must be defined before it is added to the actual set of obstacles (obstacle man-
agement) by calling the function Obsts_ObstclAdd().
Return values
NULL Error (nearly impossible!)
!= NULL handle to an obstacle
tObstcl *Obst_iGetObstcl (
const tInfos *Inf,
const char *key
)
Description Initialize a new obstacle from an infofile. The parameters with the prefix, defined by the
string key are used to define the properties of the obstacle.
The returned obstacle can be added to the set of obstacles by calling the function
Obsts_ObstclAdd().
Return values
NULL Error
!= NULL handle to an obstacle
int Obsts_ObstclAdd (
tObsts *Obsts,
const tObstcl *Obst
)
Description Add the obstacle Obst to the set of obstacles (obstacle management) pointed to by Obsts.
After having added an obstacle to the obstacle management, his own data structure is no
longer needed and can be freed by calling Obsts_ObstclDelete().
Return values
-1 Error
>= 0 O.k., obstacle added
number of the added obstacle
int Obsts_ObstclGetInfo (
tObsts *Obsts,
int No,
tObstcl *Obst
)
Return values
-1 Error
0 O.k., desired obstacle exits, information is assigned to Obst
void Obsts_ObstacleDelete {
tObstcl *Obst
)
int Obsts_EndOfInput (
const tObsts *Obsts
struct tRoad *road
)
Description Stops adding new obstacles to the obstacle management. After that time, the number of
obstacles is constant. Nothing can be added or changed.
Creates all internals for defined obstacles.
Prepares Obst_Calc()
• Call only once per simulation.
• Call before simulation loop starts.
Return values
-3 Licence expired for Obstacles/ACC module
-2 No road defined
-1 Error
>= 0 O.k.
number of defined obstacles
int Obst_ObstVecNew (
const tObsts *Obsts,
tObstVec **ObstVec
)
Description To get any information of the actual state of all obstacles, an obstacle output vector is need-
ed.
• Call once after Obsts_EndOfInput()
• Call before simulation loop starts
Return values
-1 Error
>= 0 Number of defined obstacles
dimension of obstacle output vector
int Obsts_Calc (
const tObsts *Obsts,
/*const*/ struct tRoad *road
/*const*/ double T
/*const*/ double SsRoad
)
Description Calculate the absolute state of all obstacles for time T and road position SsRoad of the sen-
sor:
• appearance/visibility
• position and orientation
• velocity, acceleration
SsRoad is ignored if negative.
Return values
-1 Error
0 O.k.
int Obsts_GetObstsAbs (
tObst *Obsts,
tObstVec *ObstVec,
)
Description Calculates the absolute values of the obstacle output vector ObstVec. The relative values
can be calculated by Obsts_GetObstsRel() after that.
• Call after Obsts_Calc()
• Call each simulation step
Return values
-1 Error
0 O.k.
int Obst_CalcObstsRel (
tObst *Obsts,
tObstVec *ObstVec,
tObstSensIF *IF
)
Description Calculates the relative values of the obstacle output vector ObstVec respective to the given
state (position, velocity, acceleration, orientation).
The transformation matrix TraMat is the matrix to transform a vector defined in a local
frame to the inertial system (inertial. = TraMat * local).
• Call after Obsts_Calc().
• Call each simulation step
Return values
-1 Error
0 O.k.
void Obst_ObstVecDelete (
const tObstVec *ObstVec
)
Return values
NULL Error
!= NULL handle to an output vector with an element for each defined obstacle
void Obsts_Delete (
const tObst *Obsts
)
Description Frees all memory allocated for the obstacle management, referenced by the pointer Obsts.
The set of obstacles doesn’t exist any longer.
• Call only once per simulation, after the simulation loop is finished.
#include “infoc.h”
#include “Obstacles.h”
tErrorMsg *perrors;
extern VehicleAbsSensor();
extern tRoad *Road; /* initialized external! */
int i, nObstacles = 0;
tObsts *Obsts = NULL;
tObstVec *ObstVec = NULL;
tInfos *inf = InfoNew();
struct Sens { double Pos[3], Vel[3], Acc[3];
doubel Omega[3], Alpha[3], TraMat[3][3];
} Sens;
/*** initialisation */
InfoRead (&perrors, inf, “obstacles.info”);
nObstacles = iGetLong(inf, “nObstacles”);
Obsts = Obsts_New();
for (i=0; i < nObstacles; i++) {
tObstcl *obst; char key[32];
sprintf (key, “Obstacle.%d“, i);
obst = Obsts_iGetObstcl(inf, key);
if (obst == NULL) continue;
Obsts_ObstclAdd (Obsts, obst);
Obsts_ObstclDelete (obst);
}
InfoDelete (inf);
nObstacles = Obsts_EndOfInput(Obsts,Road);
i = Obsts_ObstVecNew(Obsts, &ObstVec);
/*** simulation loop */
for (t=0; t<tEnd; t+=dt) {
/* calculate the new states of all obstacles */
Obsts_Calc (Obsts, Road, t, -1.0);
void Obstacles_New (
struct tInfos *Inf,
struct tRoad *Road
);
Description
Description Frees all memory allocated for the obstacle module. Call only once just before application
ends.
App_TestRun_Start ()
{ ...
Obstacles_New (SimCore.TestRun.Inf, Ambient.Road);
...
}
App_TestRun_Calc ()
{
...
Obstacles_Calc (dt, &Obstacles.SensIF);
...
}
App_TestRun_End ()
{
...
Obstacles_Delete ();
...
}
App_Cleanup ()
{
...
Obstacles_Cleanup ();
...
}
if (Obstacles.State == ObstaclesState_Simulate) {
/* absolute sensor position */
VehicleAbsSensor (Time, &Obstacles.SensIF);
...
}
Usage
obstutil [options...] <infile>
<infile> obstacle definition file (infofile syntax)
-movie <fn> generate the geometry object definition for IPG-MOVIE. No simu-
lation is done after generation object definition!
-of <fn> output file name. An file extension is added, depending on the
selected file type
-filetype <s> output file type. Possible values are “fortran” or “ascii”. Default is
“fortran” binary.
Examples
• The obstacle maneuver is defined in file example.info. The maneuver end after 100
seconds. The road is defined in the same file.
obstutil -tend 100 example.info
• Obstacle maneuvers on a digitized road
obstutil -tend 100 \
-road couse.road -roaddig course.dig \
example.info
Appendix C
IPG-MOVIE
This information is evaluated only by IPG-MOVIE and will be ignored by other programs. In
most cases, after editing the geometry data with another program the extra information will
be lost.
Possible statements in the IPG-MOVIE-INFO block (always used with a leading "#"):
Scale sx sy sz
Scaling of the x/y/z axis by sx, sy, sz.
Translate x y z
Translation (offset) by x, y, z.
Rotate alpha x y z
Rotation by an angle alpha around a vector x, y, z.
TwoSided
Modifies the behavior of the lightning model, so the back sides of all facets are illumi-
nated the same way as the front sides.
This may help if the orientation of some parts of your geometry is the wrong way. Most
often these parts appear too dark and without diffuse/specular lights. The prefered way
to correct this is to switch the orientation of the concerned normals/facets. Use this
option only if this is not possible.
The option was introduced in IPG-MOVIE 3.2.6 (CarMaker 2.1.6).
NumPlate name x y z ry rz wi he
Inserts a special "number plate" geometry object named name at position x, y, z. The
texture will be loaded from file Numplate_name.png (see directory GUI/Textures of
the installed product).
Currently (i.e. IPG-MOVIE 3.2) only a single number plate, name=CarMaker, is sup-
ported. In a later version it is planned to allow user defined textures.
The center of the rectangle sized wi x he will be positioned at x, y, z. Rotation around
the y/z-axes is specified in degrees by ry, rz. ry=rz=0 denotes a number plate in the y-z-
plane, whose front side can be seen when looking in x-direction.
Example of a rear number plate:
NumPlate CarMaker 0.08 0.00 0.55 12 0 0.55 0.12
Include fname
In addition to the geometry information contained in the current file, a geometry file
fname will be read. The format of fname is allowed to be different from that of the cur-
rent file (but, of course, must be supported by IPG-MOVIE).
Relative filenames is interpreted relative to the directory of the file with the include
statement.
Each of the above statements may be specified multiple times. The transformations given
by Scale, Translate and Rotate will be evaluated in the given order and determine the coor-
dinate system for the all geometry data contained in the file. They also effect all following
NumPlate and Include statements.
Appendix D
Start Conditions
D.1 Overview
In the CarMaker GUI use Simulation / Determine Start Values to take a snapshot of the
vehicle state at an arbitrary time during a testrun. CarMaker will store the current vehicle
state into the SimOutput/<hostname>/Snapshot.info file.
These values could be used to setup vehicles start conditions .
Appendix E
Road-Obstacles and Markers
Road-Obstacles are geometrical items placed on the road surface to simulate local increas-
es and decreases. Markers add certain attributes for a defined section of the road.
E.1.1 Cylinders
A cylinder obstacle basically is a frustum with a circular base depicted in Figure 12.1.
y
t
z
R0
RH
RH R0
y0
s s
Height
x0 x
E.1.2 Beams
A Beam is a barrier with a rectangular base. The overall length results of the sum of three
partial lengths. The half width of the obstacle has to be specified.
y
z
s
t
t
l3
b l2
b
y l1
Height s
α -
-b
x0 x
l1 l2 l3
Beam <Dist> <y> <Angle> <Height> <Width> <l0> <l1> <l2> <fric>
Dist Distance in meters from the origin of the road (measured on
centerline).
y Offset to the centerline (measured orthogonally to the direction
vector).
Angle Angle of the beam relatively to the direction vector.
Height Total height of the beam.
Width Half width of the beam.
l0 Length of upward ramp.
l1 Length of plateau.
l2 Length of downward ramp.
fric Friction coefficient of the whole obstacle.
E.1.3 Waves
The obstacle Wave is defined by a rectangular base. Its length is determined by the product
of the wavelength and the number of periods.
s t
(n-2) peri-
t len
Heig
b b
y0 s
-b
-
α -
x0 x 0.5 l l (n-2) l 0.5 l
nl
A detailed illustration of the z-profile is given in Figure 12.5. It is visible that at the beginning
and at the end a transition of half a period length is added to the actual wave which starts
and ends at its maximum height.
In between the wave is constructed with (n-1) period length. If a wave with only one period
is specified it consists only of the beginning and trailing transition.
A Wave is defined in the Markers/Obstacles dialog by the following parameters
E.1.4 Cones
Like the Cylinder obstacles Cones are frustums with a elliptical base.
y
t
t z
s
RT H RTH
y0 RS 0 RT0 RSH
RT 0 Height
RS H RS0 s
x
x0
Cone <Dist> <y> <Angle> <Height> <Width> <rs0> <rt0> <rsH> <rtH> <fric>
Dist Distance in meters from the origin of the road (measured on
centerline).
y Offset to the centerline (measured orthogonally to the direction
vector).
Angle Angle of the wave(s) relatively to the direction vector.
Height Total height of the beam.
Width Half width of the wave.
rs0 Elliptical radius Rs on road surface in direction of the obstacle.
rt0 Elliptical radius Rt on road surface orthogonally to the obsta-
cles direction.
rsH Elliptical radius rs on top of cone in direction of the obstacle.
rtH Elliptical radius r t on top of cone orthogonally to the obstacles
direction.
fric Friction coefficient of the whole obstacle.
End
Dist
Len
E.2.1 Pylons
With pylon markers a pair of pylons according to Figure 12.11: is defined.
Side
b Dist
Width
Figure 12.11: Definition of Pylon Markers
E.2.3 SideWind
This marker defines side winds on the specified section of the road.
End
α
β
Dist
y
Wind direction
x
Figure 12.13: Definition of Sidewind Markers
TotalLeft
Pi+2 Pi+3
Pi+4
Pi+1 -TotalRight
center line
y Pi
: x y z q
0.000 0.000 0.000 0.01111
0.480 0.000 0.009 0.01176
1.000 0.000 0.018 0.01236
1.540 0.000 0.028 0.01294
2.090 0.000 0.037 0.01350
2.630 0.000 0.046 0.01401
3.130 0.000 0.056 0.01452
3.670 0.000 0.075 0.01501
4.250 0.000 0.084 0.01543
...
Additional Requirements
Two successive points define the course direction for a road element from the first to the
second point. The minimal distance between two points is 0.01 meter. The angle between
two successive direction vectors has to be in-between 90 and 180 degrees.
Index
F Q
FileCreator . . . . . . . . . . . . . . . . . . . . . . . 21 Quantities . . . . . . . . . . . . . . . . . . . . . . . . 15
FileIdent-Key . . . . . . . . . . . . . . . . . . . . . 20
Force Element . . . . . . . . . . . . . . . . . . . . 46
Fr0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 R
Fr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Fr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Roll Stabilizer . . . . . . . . . . . . . . . . . . . . 57
FrD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
FrX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
S
G secondary coordinates . . . . . . . . . . . . . 61
SimParameters . . . . . . . . . . . . . . . . 22, 27
Generalized Coordinates . . . . . . . . . . . 65 SI-quantities . . . . . . . . . . . . . . . . . . . . . . 9
Spin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Spring Force . . . . . . . . . . . . . . . . . . . . . 48
I start-off configuration . . . . . . . . . . . . . 40
SuspF.Damp_Pull, SuspR.Damp_Pull . .
Installation Directory . . . . . . . . . . . . . . 19 52
SuspF.Damp_Pull.Amplify,
SuspR.Damp_Pull.Amplify
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
SuspF.Damp_Push, SuspR.Damp_Push
52
SuspF.Damp_Push.Amplify,
SuspR.Damp_Push.Amplify
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
SuspF.Spring, SuspR.Spring . . . . . . . . 49
SuspF.Spring.Amplify, SuspR.Spring.Amplify
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
SuspF.Spring.l0, SuspR.Spring.l0 . . . 49
T
Tire
Parameters . . . . . . . . . . . . . . . . . . 188
Toe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Trailer
Aerodynamics . . . . . . . . . . . . . . . 253
Brake System . . . . . . . . . . . . . . . . 251
Chassis Forces . . . . . . . . . . . . . . . 239
Hitch . . . . . . . . . . . . . . . . . . . . . . . 247
Hitch “Ball” . . . . . . . . . . . . . 249, 250
Hitch “BallDamp” . . . . . . . . . . . . 250
Hitch “BallFric”. . . . . . . . . . . . . . 250
Hitch “Trapez” . . . . . . . . . . . . . . . 249
Trailer Model . . . . . . . . . . . . . . . . . . . 232
Transformation Matrix . . . . . . . . . . . . . 66
Translation . . . . . . . . . . . . . . . . . . . 63, 64
U
User Accessible Quantities . . . 140, 261,
262, . . . . . . . . . . . . . 268, 271, 272, 275
V
Valves . . . . . . . . . . . . . . . . . . . . . . . . . 137
W
Wheel brakes . . . . . . . . . . . . . . . . . . . 158
Wheel compression . . . . . . . . . . . . . . . . 64