The Cosin Tire Interface (CTI)
The CTI has been developed by cosin scientific software and has been adopted by Adams Tire per version 2015. The CTI is more dedicated to complex tire models, such as FTire, resulting in an improved performance and dealing with more complex modeling cases like moving roads. In addition the CTI will allow to benefit from tire model features that cannot be supported when using the STI.
There are no specific requirements for the Adams model: both the STI and CTI can deal with the exact same Adams dataset (.adm). The flow of information is similar when using the STI:
■Adams Solver invokes Adams Tire because of the GFORCE and GSE statements with USER functions in the Adams model, see also
Defining Tires in Adams Solver.
■Adams Tire gets the
Tire Property File name from a STRING statement in the Adams model, opens the file, and reads portions of it to determine which tire model to use. The
User CTI can be used by specifying following in [MODEL] section of the tire property file:
[MODEL]
PROPERTY_FILE_FORMAT = 'USERCTI'
FUNCTION_NAME = 'CTI_LIB_NAME'
The 'FUNCTION_NAME' keyword should list the name of the cti library.
■Adams Tire loads the cti library with the specified name, initializes the cti (call to ctiInitialize()) and passes the name of the tire property file with a call to ctiLoadTireData() in the usercti library.
■When Adams Tire receives the Road Property File name from another STRING statement in the Adams model, a call will be made to ctiLoadRoadData() in the usercti library. In case the road property file is an Adams Tire formatted road file, the user tire model can derive the road geometry information with the road cti interface of Adams Tire (ctiLoadRoadData() and ctiEvaluateRoadHeight() in the abgTire library).
■After the initialization, Adams Tire will call other CTI interface routines as described in Table 1 for static, dynamic and linearization calculations.
The full interface has been described in
http://www.cosin.eu/prod_CTI. Adams Tire supports a subset of the CTI interface calls, just those needed to guarantee the required functionality with Adams Tire.
The CTI calls that are required by Adams Tire are listed in red in the table below, the others are optional.
Table 1 The CTI calls as required by Adams Tire (c-code).
CTI call | argument list |
|---|
ctiLoadRoadData | (int, int*, char*) |
ctiLoadTireData | (int, int*, char*) |
ctiEvaluateRoadHeight | (int, double, double, double, double*, double*, double*, double*, double*, int*) |
ctiSetTireSide | (int, int) |
ctiEvaluateRoadCourse | (int, double, double*, double*, double*, double*, double*, double*, double*, int*) |
ctiCallingSolver | (int) |
ctiPutTireKeyData | (int, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, int*) |
ctiGetRoadSize | (int,double*) |
ctiCloseTire | (int) |
ctiClose | (void) |
ctiComputeForces | (int, double, double*, double*, double*, double*, int, double*, double*, int*) |
ctiLinearize | (int, double, double*, double*, double*, double*, double*, int*, int, double*, double*, double*, double*, int*) |
ctiSetRoadMotionData | (int, double*, double*, double*, double*) |
ctiInitialize | (int*, char*, char*) |
ctiPutTydexSignals | (int, int, double*) |
ctiSetContactBodyMotionData | (int, int, double*, double*, double*, double*) |
ctiPutContactBodyForces | (int, int, double*, double*) |
Adams Tire will work with the c-coded interface only.
For having access to the Adams Tire Roads (2D Road, 3D Shell Road, 3D Spline Road, CRG road and RGR road) the routines listed in Table 2 can be called from the Adams Tire library (abgTire).
Table 2 The CTI road available in the Adams Tire library (c-code).
CTI call | argument list |
|---|
ctiLoadRoadData | (int, int*, char*) |
ctiEvaluateRoadHeight | (int, double, double, double, double*, double*, double*, double*, double*, int*) |
Units and coordinate system
The CTI interface deals with SI units only. All displacements velocities, and orientation matrices passed by Adams Tire are in the global co-ordinate system (ground). The forces and moments to be returned by the user tire model should comply with this reference system as well.
Building a CTI user library
Compiling and building a CTI user library can be done with the Adams script in the command window:
■For Linux and Linux platforms:
adams2024_1 -c cr-user ..
■For windows platforms:
adams2024_1 cr-user ..
Utilities
All utilities, such as reading TeimOrbit tire and road property files, as available in the STI are also available for the CTI.