In some cases where you have a full vehicle model in the MotionSolve xml format and you want to manually enable it to use tires, the following information will apply.
Given a tire and road property file you can setup a MotionSolve input deck to include a tire (assuming you have a full vehicle without tires to start with).
There is a collection of solver entities required to enable a tire model. You can build up a vehicle model to utilize a tire model using the set of entities described below:
• | A set of required markers (Reference_Marker) |
• | One wheel/tire body (Body_Rigid) |
• | One revolute joint for wheel spin axis, or optionally a busing entity with very stiff rates in the non-spin direction and only damping in the spin direction (Constraint_Joint) or (Force_Bushing) |
• | One force_vector_twobody of type "User" (Force_Vector_Twobody) |
• | One reference_array (Reference_Array) |
• | One string entity for .tir file (Reference_String) |
• | One string entity for .rdf file (Reference_String) |
A marker is required, located at the wheel center and attached to the ground body. This is a floating marker that will stay superimposed on the marker used to define the tire force.
<Reference_Marker
id = "11001020"
label = "Front Tire J Marker-left"
body_id = "30101"
body_type = "RigidBody"
pos_x = "1000."
pos_y = "-750."
pos_z = "1000."
/>
A road reference marker is required to define the height of the road. This marker is attached to ground.
<Reference_Marker
id = "11001010"
label = "Road Reference Marker Front-left"
body_id = "30101"
body_type = "RigidBody"
pos_x = "0."
pos_y = "0."
pos_z = "680.03"
/>
A marker is required for the action-reaction tire force. It is attached to the wheel/tire body and oriented with the y axis along the spin axis.
<Reference_Marker
id = "11003020"
label = "Front Tire Force Reference-left"
body_id = "10403"
body_type = "RigidBody"
pos_x = "1000."
pos_y = "-750."
pos_z = "1000."
a00 = "-1."
a10 = "0."
a20 = "0."
a02 = "0."
a12 = "0."
a22 = "1."
/>
The model must contain a wheel body and a revolute joint between the wheel body, and another part of the vehicle model. The revolute joint should be aligned to represent the spin axis of the tire (see example below):
Note | A bushing can be used in place of the revolute joint, however this is rarely used. |
<Body_Rigid
id = "10403"
label = "Wheel-left"
cg_id = "10403010"
im_id = "10403010"
lprf_id = "10403001"
mass = "36."
inertia_xx = "1750000."
inertia_yy = "1750000."
inertia_zz = "1000000."
v_ic_x = "-24587.2"
v_ic_y = "0."
v_ic_z = "0."
w_ic_x = "0."
w_ic_y = "0."
w_ic_z = "-76.842204"
v_ic_x_flag = "TRUE"
v_ic_y_flag = "TRUE"
v_ic_z_flag = "TRUE"
w_ic_flag = "TRUE"
/>
<Constraint_Joint
id = "104002"
label = "Wheel spindle rj-left"
type = "REVOLUTE"
i_marker_id = "10404020"
j_marker_id = "10401020"
/>
The input deck then requires a Force_Vector_TwoBody force (action-reaction force) of the type "User". The usrsub_dll_name must be “mbdtire” and the usrsub_fnc_name must be “mbdtire”. The parameters for the "USER" arguments are:
- | par1: The routing ID (not needed as long as fnc_name is"mbdtire"). |
- | par2: The ID of the Force_Vector_TwoBody. |
- | par3: The ID of the Reference_Array used for the tire. |
- | par4: In the case where co-simulation tire is used, this is the order of the interpolating polynomial between subsequent evaluation of forces at integrator convergence. Set to 0 for zero order hold, or 1 for first order hold. |
<Force_Vector_TwoBody
id = "11001"
label = "Front tire force-left"
type = "ForceAndTorque"
i_marker_id = "11003020"
j_floating_marker_id= "11001022"
ref_marker_id = "11001010"
usrsub_param_string = "USER(408,11001,31000100,0)"
usrsub_dll_name = "mbdtire"
usrsub_fnc_name = "mbdtire"
/>
Many of the required values for the tire are stored in the Reference_array from par3:
<Reference_Array
id = "31000100"
label = "Front tire input array left"
type = "IC"
num_element = "7">
0.0000000E+00 1.8000000E+01 0.0000000E+00 3.1000900E+05 3.1000100E+05 3.1001100E+05 3.1000500E+05
</Reference_Array>
Num_element must be seven; however the only two that currently apply are element 5 and element 7 (the others are reserved for future use).
Element 5: The ID of the string that contains the tire property file (see example below):
<Reference_String
id = "310001"
label = "Front left tire property file string"
string = "prop_files/ftire.tir"
/>
Element 7: The ID of the string that contains the road property file (see example below):
<Reference_String
id = "310005"
label = "Front left road property file string"
string = "prop_files/2d_road.rdf"
/>
Using Tires with the MotionView MDL Library