VehicleDynamics.Chassis.Data

Contains data for different suspensions

VehicleDynamics.Chassis.Data.MacPhersonData VehicleDynamics.Chassis.Data.SimpleData VehicleDynamics.Chassis.Data.BodyData VehicleDynamics.Chassis.Data.Multilink4Data VehicleDynamics.Chassis.Data.TrailingArmData VehicleDynamics.Chassis.Data.SimpleTwistBeamData VehicleDynamics.Chassis.Data.BumpBushingData VehicleDynamics.Chassis.Data.Table VehicleDynamics.Chassis.Data.SimpleDataFront VehicleDynamics.Chassis.Data.SimpleDataRear VehicleDynamics.Chassis.Data.PartData VehicleDynamics.Chassis.Data.DoubleWishBoneData VehicleDynamics.Chassis.Data.DoubleWishBoneData2 VehicleDynamics.Chassis.Data.DoubleWishBoneData3 VehicleDynamics.Chassis.Data.RigidAxle4LinkData VehicleDynamics.Chassis.Data.FixedAxleData VehicleDynamics.Chassis.Data.FiveLinkData

NameDescription
MacPhersonData Data record for MacPhersonSuspension
SimpleData  
BodyData Contains Body and Body shape data
Multilink4Data Data record for MultiLink4Suspension
TrailingArmData Data record for Simpletrailing arm4Suspension
SimpleTwistBeamData Data record for Simpletrailing arm4Suspension
BumpBushingData  
Table  
SimpleDataFront  
SimpleDataRear  
PartData Contains Body and Body shape dataRigid body with cylindrical shape (also used for animation)
DoubleWishBoneData  
DoubleWishBoneData2  
DoubleWishBoneData3  
RigidAxle4LinkData Record with data for trailing arm suspensions
FixedAxleData Record with data for trailing arm suspensions
FiveLinkData Data record for FiveLinkSuspension


VehicleDynamics.Chassis.Data.SimpleDataFront VehicleDynamics.Chassis.Data.SimpleDataFront

VehicleDynamics.Chassis.Data.SimpleDataFront

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rUW_1[3]{-0.0001,0.727,0.040}[m]
rCU_1[3]{0.00586,0.6905,-0.071}[m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)[m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)[m]
ratio0.05833Steering wheel to Ackermann angle
q0S_10.1758*230/275*(1 - 0.396)*2*0.95[m]
q0S_2q0S_1[m]
wheelbase2.55Ackermann wheel base
trackwidthrUW_1[2] - rUW_2[2]Ackermann track width
rCMU_1[3]{0.118,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.299[kg.m2]
i22U_10.287[kg.m2]
i33U_10.093[kg.m2]
i21U_10.03[kg.m2]
i31U_1-0.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_S_1  
data_S_2  
data_A  
data_Link1_steering  
data_Link1_camber  
data_Link2_steering  
data_Link2_camber  

Modelica definition

record SimpleDataFront 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  
  parameter SI.Position[3] rUW_1={-0.0001,0.727,0.040} "|Geometry||";
  parameter SI.Position[3] rCU_1={0.00586,0.6905,-0.071} "|Geometry||";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry||";
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry||";
  parameter Real ratio=0.05833 
    "|Geometry|Steering|Steering wheel to Ackermann angle";
  
  parameter SI.Position q0S_1=0.1758*230/275*(1 - 0.396)*2*0.95 "|Geometry||";
  parameter SI.Position q0S_2=q0S_1 "|Geometry||";
  
  //steering
  parameter Real wheelbase=2.55 "|Geometry|Steering|Ackermann wheel base";
  parameter Real trackwidth=rUW_1[2] - rUW_2[2] 
    "|Geometry|Steering|Ackermann track width";
  
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.299 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.093 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fd=[-1.4950, -719; -0.996, 
         -531; -0.518, -413; -0.389, -376; -0.260, -327; -0.130, -166; -0.052, 
        -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 0.389, 1336; 0.518, 
        1466; 0.996, 1891; 1.495, 2263], fc=[-1, -20000; 1, 20000]) 
    "|Forces|Strut|";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Strut|";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -51000; 
        0, 0; 1, 51000]) "|Forces|Anti Roll|";
  parameter Utilities.Polynomial.ScaledPolynomial data_Link1_steering(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.082, 
    u_max=0.078, 
    y_min=-0.010297, 
    y_max=0.0012217, 
    c={6.30814489981295e+000,-1.63208206468340e+001,1.59971846025538e+001,-9.43372508316803e+000,
        2.72106634745229e+000,7.28435761181664e-001}, 
    y_umin=-0.0019065, 
    der_y_umin=0.1959, 
    y_umax=-0.010294, 
    der_y_umax=-0.1366, 
    original=[-8.20000000000000e-002, -1.91986217719376e-003; -6.20000000000000e-002, 
         -4.20000000000000e-002; -2.20000000000000e-002, -1.60000000000000e-002; 
         -2.00000000000000e-003, 0.00000000000000e+000; 1.80000000000000e-002, 
        3.80000000000000e-002; 5.80000000000000e-002, 7.80000000000000e-002; 
        6.98131700797732e-004, 1.22173047639603e-003; 1.22173047639603e-003, 
        8.72664625997165e-004; 1.74532925199433e-004, 0.00000000000000e+000; -1.57079632679490e-003, 
         -4.01425727958696e-003; -7.15584993317675e-003, -1.02974425867665e-002])
     "|Geometry|toe in as function of bounce|";
  parameter Utilities.Polynomial.ScaledPolynomial data_Link1_camber(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.082, 
    u_max=0.078, 
    y_min=-0.0055851, 
    y_max=0.027576, 
    c={-4.98260440195846e+000,1.28215982847983e+001,-1.17916202644075e+001,
        5.83708966179418e+000,-2.88532206648880e+000,9.99807679818011e-001}, 
    y_umin=0.02757, 
    der_y_umin=-0.59801, 
    y_umax=-0.0056199, 
    der_y_umax=-0.04407, 
    original=[-8.20000000000000e-002, 2.75762021815104e-002; -6.20000000000000e-002, 
         -4.20000000000000e-002; -2.20000000000000e-002, -1.60000000000000e-002; 
         -2.00000000000000e-003, 0.00000000000000e+000; 1.80000000000000e-002, 
        3.80000000000000e-002; 5.80000000000000e-002, 7.80000000000000e-002; 
        1.79768912955416e-002, 1.09955742875643e-002; 5.75958653158129e-003, 
        4.01425727958696e-003; 5.23598775598299e-004, 0.00000000000000e+000; -2.96705972839036e-003, 
         -4.71238898038469e-003; -5.58505360638185e-003, -5.58505360638185e-003])
     "|Geometry|camber as function of bounce|";
  
  parameter Utilities.Polynomial.ScaledPolynomial data_Link2_steering(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.082, 
    u_max=0.078, 
    y_min=-0.010297, 
    y_max=0.0012217, 
    c={6.30814489981295e+000,-1.63208206468340e+001,1.59971846025538e+001,-9.43372508316803e+000,
        2.72106634745229e+000,7.28435761181664e-001}, 
    y_umin=-0.0019065, 
    der_y_umin=0.1959, 
    y_umax=-0.010294, 
    der_y_umax=-0.1366, 
    original=[-8.20000000000000e-002, -1.91986217719376e-003; -6.20000000000000e-002, 
         -4.20000000000000e-002; -2.20000000000000e-002, -1.60000000000000e-002; 
         -2.00000000000000e-003, 0.00000000000000e+000; 1.80000000000000e-002, 
        3.80000000000000e-002; 5.80000000000000e-002, 7.80000000000000e-002; 
        6.98131700797732e-004, 1.22173047639603e-003; 1.22173047639603e-003, 
        8.72664625997165e-004; 1.74532925199433e-004, 0.00000000000000e+000; -1.57079632679490e-003, 
         -4.01425727958696e-003; -7.15584993317675e-003, -1.02974425867665e-002])
     "|Geometry|toe in as function of bounce|";
  parameter Utilities.Polynomial.ScaledPolynomial data_Link2_camber(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.082, 
    u_max=0.078, 
    y_min=-0.0055851, 
    y_max=0.027576, 
    c={-4.98260440195846e+000,1.28215982847983e+001,-1.17916202644075e+001,
        5.83708966179418e+000,-2.88532206648880e+000,9.99807679818011e-001}, 
    y_umin=0.02757, 
    der_y_umin=-0.59801, 
    y_umax=-0.0056199, 
    der_y_umax=-0.04407, 
    original=[-8.20000000000000e-002, 2.75762021815104e-002; -6.20000000000000e-002, 
         -4.20000000000000e-002; -2.20000000000000e-002, -1.60000000000000e-002; 
         -2.00000000000000e-003, 0.00000000000000e+000; 1.80000000000000e-002, 
        3.80000000000000e-002; 5.80000000000000e-002, 7.80000000000000e-002; 
        1.79768912955416e-002, 1.09955742875643e-002; 5.75958653158129e-003, 
        4.01425727958696e-003; 5.23598775598299e-004, 0.00000000000000e+000; -2.96705972839036e-003, 
         -4.71238898038469e-003; -5.58505360638185e-003, -5.58505360638185e-003])
     "|Geometry|camber as function of bounce|";
  
end SimpleDataFront;

VehicleDynamics.Chassis.Data.SimpleDataRear VehicleDynamics.Chassis.Data.SimpleDataRear

VehicleDynamics.Chassis.Data.SimpleDataRear

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCU_1[3]{-2.53,0.71,0.030}[m]
rUW_1[3]{-2.55,0.733,0.030}[m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)[m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)[m]
q0S_10.1758*230/275*(0.396)*2*0.84[m]
q0S_2q0S_1[m]
rCMU_1[3]{0.118,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.299[kg.m2]
i22U_10.287[kg.m2]
i33U_10.093[kg.m2]
i21U_10.03[kg.m2]
i31U_1-0.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_S_1 Strut data
data_S_2 Strut data
data_A Anti Roll data
data_Link1_steering  
data_Link1_camber  
data_Link2_steeringdata_Link1_steering 
data_Link2_camberdata_Link1_camber 

Modelica definition

record SimpleDataRear 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  
  parameter SI.Position[3] rCU_1={-2.53,0.71,0.030} "|Geometry||";
  parameter SI.Position[3] rUW_1={-2.55,0.733,0.030} "|Geometry||";
  
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry||";
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry||";
  
  parameter SI.Position q0S_1=0.1758*230/275*(0.396)*2*0.84 "|Geometry||";
  parameter SI.Position q0S_2=q0S_1 "|Geometry||";
  
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.299 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.093 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -24000; 1, 24000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.389, 1336; 0.518, 1466; 0.996, 1891; 1.495, 2263]) 
    "|Forces|Left multilink|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Left multilink|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -27000; 
        1, 27000]) "|Forces|Left multilink|Anti Roll data";
  parameter Utilities.Polynomial.ScaledPolynomial data_Link1_steering(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.088, 
    u_max=0.072, 
    y_min=-0.0071209, 
    y_max=0.0046949, 
    c={-4.08651809141416e+000,-2.61358219299911e+001,1.58089719564480e+002,-2.88178014646844e+002,
        2.43334996812024e+002,-9.95716531245717e+001,1.71349749888266e+001,
        4.37595591060174e-004}, 
    y_umin=-0.0071158, 
    der_y_umin=1.2654, 
    y_umax=-0.00017177, 
    der_y_umax=0.023088, 
    original=[-8.80000000000000e-002, -7.12094334813686e-003; -6.80000000000000e-002, 
         -4.80000000000000e-002; -2.80000000000000e-002, -2.00000000000000e-002; 
         -8.00000000000000e-003, 0.00000000000000e+000; 1.20000000000000e-002, 
        3.20000000000000e-002; 5.20000000000000e-002, 7.20000000000000e-002; 
        4.69493568786475e-003, 3.14159265358979e-003; 1.39626340159546e-003, -8.55211333477221e-004; 
         -1.74532925199433e-004, 0.00000000000000e+000; 1.74532925199433e-004, 
        3.49065850398866e-004; 0.00000000000000e+000, -1.74532925199433e-004]);
  parameter Utilities.Polynomial.ScaledPolynomial data_Link1_camber(
    redeclare type uType = SI.Position, 
    redeclare type yType = SI.Angle, 
    u_min=-0.088, 
    u_max=0.072, 
    y_min=-0.039095, 
    y_max=0.013788, 
    c={7.73060054654145e+000,-1.81856097590213e+001,1.38416784600087e+001,-4.61422796271159e+000,
        2.24932992091360e-001,9.97996235422114e-001}, 
    y_umin=0.013682, 
    der_y_umin=0.074345, 
    y_umax=-0.03934, 
    der_y_umax=-0.51823, 
    original=[-8.80000000000000e-002, 1.37881010907552e-002; -6.80000000000000e-002, 
         -4.80000000000000e-002; -2.80000000000000e-002, -2.00000000000000e-002; 
         -8.00000000000000e-003, 0.00000000000000e+000; 1.20000000000000e-002, 
        3.20000000000000e-002; 5.20000000000000e-002, 7.20000000000000e-002; 
        1.22173047639603e-002, 9.59931088596881e-003; 6.98131700797732e-003, 
        5.41052068118242e-003; 2.61799387799149e-003, 0.00000000000000e+000; -4.01425727958696e-003, 
         -1.11701072127637e-002; -2.75762021815104e-002, -3.90953752446730e-002]);
  parameter Utilities.Polynomial.ScaledPolynomial data_Link2_steering=
      data_Link1_steering;
  parameter Utilities.Polynomial.ScaledPolynomial data_Link2_camber=data_Link1_camber;
end SimpleDataRear;

VehicleDynamics.Chassis.Data.MacPhersonData VehicleDynamics.Chassis.Data.MacPhersonData

Data record for MacPhersonSuspension

VehicleDynamics.Chassis.Data.MacPhersonData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{-0.0075,0.3753,-0.0358}[m]
rCL2_1[3]{-0.3175,0.3535,-0.02735}[m]
rUL1L2_1[3]{0.0058556,0.69905,-0.0725}[m]
rUW_1[3]{-0.00013,0.725,0.0450}[m]
rCS_1[3]{-0.0291,0.541,0.561}[m]
rUS_1[3]{-0.00012,0.5791,0.042}[m]
q0S_13516/20000[m]
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1)[m]
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1)[m]
rUL1L2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1L2_1)[m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)[m]
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1)[m]
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1)[m]
q0S_2q0S_1[m]
rUL3_1[3]{-0.1283,0.643,0.07344}[m]
rRL3_1[3]{-0.164,0.3047,0.0945}[m]
rUL3_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3_1)[m]
rRL3_2[3]Utilities.Functions.EWM({1,-1,1}, rRL3_1)[m]
ratioWheelToRack0.03/4 rotatational to translational ratio [m/rad]
iSW0.04[kg.m2]
rUL4_1[3]{-0.05624,0.54401,0.25183}[m]
rAL4_1[3]{-0.04359,0.55115,0.02503}[m]
rCA_1[3]{-0.24055,0.3452,0.0353}[m]
rUL4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL4_1)[m]
rAL4_2[3]Utilities.Functions.EWM({1,-1,1}, rAL4_1)[m]
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1)[m]
rCMU_1[3]{0.118,0.028,0.0776} - rUL1L2_1[m]
mU_111.4[kg]
i11U_10.2959[kg.m2]
i22U_10.2867[kg.m2]
i33U_10.0963[kg.m2]
i21U_10.036[kg.m2]
i31U_1-0.126[kg.m2]
i32U_10.016[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_S_1 Strut data
data_A Anti Roll data
data_S_2 Strut data
data_CL1_1 Bushing data, chassis to link1
data_CL1_2 Bushing data, chassis to link1
data_CL2_1 Bushing data, chassis to link2
data_CL2_2 Bushing data, chassis to link2
data_R Steering wheel axis compliance

Modelica definition

record MacPhersonData "Data record for MacPhersonSuspension" 
  
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //mcpherson
  parameter SI.Position[3] rCL1_1={-0.0075,0.3753,-0.0358} 
    "|Geometry|Left MacPherson|";
  parameter SI.Position[3] rCL2_1={-0.3175,0.3535,-0.02735} 
    "|Geometry|Left MacPherson|";
  parameter SI.Position[3] rUL1L2_1={0.0058556,0.69905,-0.0725} 
    "|Geometry|Left MacPherson|";
  parameter SI.Position[3] rUW_1={-0.00013,0.725,0.0450} "|Geometry|Left MacPherson|";
  parameter SI.Position[3] rCS_1={-0.0291,0.541,0.561} "|Geometry|Left MacPherson|";
  parameter SI.Position[3] rUS_1={-0.00012,0.5791,0.042} "|Geometry|Left MacPherson|";
  parameter SI.Distance q0S_1=3516/20000 "|Geometry|Left MacPherson|";
  
  parameter SI.Position[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Position[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Position[3] rUL1L2_2=Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Position[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Position[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Right MacPherson|";
  parameter SI.Distance q0S_2=q0S_1 "|Geometry|Right MacPherson|";
  
  //steering rack
  parameter SI.Position[3] rUL3_1={-0.1283,0.643,0.07344} "|Geometry|Steering|";
  parameter SI.Position[3] rRL3_1={-0.164,0.3047,0.0945} "|Geometry|Steering|";
  parameter SI.Position[3] rUL3_2=Utilities.Functions.EWM({1,-1,1}, rUL3_1) 
    "|Geometry|Steering|";
  parameter SI.Position[3] rRL3_2=Utilities.Functions.EWM({1,-1,1}, rRL3_1) 
    "|Geometry|Steering|";
  parameter Real ratioWheelToRack=0.03/4 
    "|Geometry|Steering| rotatational to translational ratio [m/rad]";
  parameter SI.Inertia iSW=0.04 "|Mass and Inertia|Steering|";
  
  //torsion anti roll
  parameter SI.Position[3] rUL4_1={-0.05624,0.54401,0.25183} "|Geometry|Anti roll|";
  parameter SI.Position[3] rAL4_1={-0.04359,0.55115,0.02503} "|Geometry|Anti roll|";
  parameter SI.Position[3] rCA_1={-0.24055,0.3452,0.0353} "|Geometry|Anti roll|";
  
  parameter SI.Position[3] rUL4_2=Utilities.Functions.EWM({1,-1,1}, rUL4_1) 
    "|Geometry|Anti roll|";
  parameter SI.Position[3] rAL4_2=Utilities.Functions.EWM({1,-1,1}, rAL4_1) 
    "|Geometry|Anti roll|";
  parameter SI.Position[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll|";
  
  
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} - rUL1L2_1 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.4 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.2959 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.2867 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.0963 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.036 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.126 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.016 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -20000; 1, 20000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.385, 1336; 0.518, 1455; 0.995, 1851; 1.455, 2255]) 
    "|Forces|Left MacPherson|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[-1, -100; 0, 0; 1, 100], 
       fc=[-1, -33626; 0, 0; 1, 33626]) "|Forces|Anti Roll|Anti Roll data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Right MacPherson|Strut data";
  parameter Chassis.Data.BumpBushingData data_CL1_1(
    r_min=-0.001*{0.2,0.2,2}, 
    r_max=0.001*{0.2,0.2,2}, 
    bumpFactor=10, 
    nx=cross(rCL2_1 - rCL1_1, {0,0,1}), 
    ny=cross(rCL2_1 - rCL1_1, {1,0,0}), 
    Cdeg=diagonal({19500,19500,1050,11500,115000,3500}), 
    Ddeg=diagonal({254,254,35,175,175,45})) 
    "|Forces|Left MacPherson|Bushing data, chassis to link1";
  parameter Chassis.Data.BumpBushingData data_CL1_2(
    r_rela0=data_CL1_1.r_rela0, 
    r_min=data_CL1_1.r_min, 
    r_max=data_CL1_1.r_max, 
    phi_rela0=data_CL1_1.phi_rela0, 
    phi_min=data_CL1_1.phi_min, 
    phi_max=data_CL1_1.phi_max, 
    bumpFactor=data_CL1_1.bumpFactor, 
    Cdeg=data_CL1_1.Cdeg, 
    Ddeg=data_CL1_1.Ddeg, 
    C=data_CL1_1.C, 
    D=data_CL1_1.D, 
    linear=data_CL1_1.linear, 
    eps=data_CL1_1.eps, 
    nx=cross(rCL2_2 - rCL1_2, {0,0,1}), 
    ny=cross(rCL2_2 - rCL1_2, {1,0,0})) 
    "|Forces|Right MacPherson|Bushing data, chassis to link1";
  parameter Chassis.Data.BumpBushingData data_CL2_1(
    r_min=-0.001*{2.5,2.5,10}, 
    r_max=0.001*{2.5,2.5,10}, 
    bumpFactor=10, 
    nx=cross(rCL2_1 - rCL1_1, {0,0,1}), 
    ny=cross(rCL2_1 - rCL1_1, {1,0,0}), 
    Cdeg=diagonal({1150,1150,200,1775,1775,1215}), 
    Ddeg=diagonal({12,12,2.3,17.5,17.5,13})) 
    "|Forces|Left MacPherson|Bushing data, chassis to link2";
  parameter Chassis.Data.BumpBushingData data_CL2_2(
    r_rela0=data_CL1_1.r_rela0, 
    r_min=data_CL2_1.r_min, 
    r_max=data_CL2_1.r_max, 
    phi_rela0=data_CL2_1.phi_rela0, 
    phi_min=data_CL2_1.phi_min, 
    phi_max=data_CL2_1.phi_max, 
    bumpFactor=data_CL2_1.bumpFactor, 
    Cdeg=data_CL2_1.Cdeg, 
    Ddeg=data_CL2_1.Ddeg, 
    C=data_CL2_1.C, 
    D=data_CL2_1.D, 
    linear=data_CL2_1.linear, 
    eps=data_CL2_1.eps, 
    nx=cross(rCL2_2 - rCL1_2, {0,0,1}), 
    ny=cross(rCL2_2 - rCL1_2, {1,0,0})) 
    "|Forces|Right MacPherson|Bushing data, chassis to link2";
  parameter Utilities.Forces.Utilities.ForceTable1D data_R(fd=[-1, -25.2; 0, 0; 1, 
        25.2], fc=[-1, -1.72*0.3*180/3.14159; 0, 0; 1, 1.72*0.3*180/3.14159]) 
    "|Forces|Steering|Steering wheel axis compliance";
end MacPhersonData;

VehicleDynamics.Chassis.Data.TrailingArmData VehicleDynamics.Chassis.Data.TrailingArmData

Data record for Simpletrailing arm4Suspension

VehicleDynamics.Chassis.Data.TrailingArmData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCU_1[3]{-2.085,0.600,0.010}Trailing arm to chassis/body [m]
nCU_1[3]{0,1,0}Trailing arm to chassis/body
rUW_1[3]{-2.55,0.733,0.030}Wheel centre [m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)Trailing arm to chassis/body [m]
nCU_2[3]Utilities.Functions.EWM({1,-1,1}, nCU_1)Trailing arm to chassis/body
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)Wheel centre [m]
rCS_1[3]{-2.55 - 0.061,0.518,0.450}Strut to chassis/body [m]
rUS_1[3]{-2.55 - 0.0605,0.581,-0.046}Strut ot trailing arm [m]
q0S_10.116Additional length for unloaded strut [m]
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1)Strut to chassis/body [m]
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1)Strut ot trailing arm [m]
q0S_2q0S_1Additional length for unloaded strut [m]
rUL1_1[3]{-2.55 - 0.0395,0.490,0.002}Anti roll bar link to trailing arm [m]
rAL1_1[3]{-2.55 - 0.040,0.491,0.0775}Anti roll bar link to anti roll bar [m]
rCA_1[3]{-2.55 - 0.210,0.463,0.060}Anti roll bar to chassis/body [m]
rUL1_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1_1)Anti roll bar link to trailing arm [m]
rAL1_2[3]Utilities.Functions.EWM({1,-1,1}, rAL1_1)Anti roll bar link to anti roll bar [m]
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1)Anti roll bar to chassis/body [m]
rCMU_1[3]{-0.418,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.099[kg.m2]
i22U_10.287[kg.m2]
i33U_10.293[kg.m2]
i21U_10.03[kg.m2]
i31U_1-0.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_A Anti Roll data
data_S_2 Strut data
data_S_1 Strut data

Modelica definition

record TrailingArmData 
  "Data record for Simpletrailing arm4Suspension" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //trailing arm
  parameter SI.Position[3] rCU_1={-2.085,0.600,0.010} 
    "|Geometry|Left trailing arm|Trailing arm to chassis/body";
  parameter Real[3] nCU_1={0,1,0} 
    "|Geometry|Left trailing arm|Trailing arm to chassis/body";
  parameter SI.Position[3] rUW_1={-2.55,0.733,0.030} 
    "|Geometry|Left trailing arm|Wheel centre";
  
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry|Right trailing arm|Trailing arm to chassis/body";
  parameter Real[3] nCU_2=Utilities.Functions.EWM({1,-1,1}, nCU_1) 
    "|Geometry|Right trailing arm|Trailing arm to chassis/body";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Right trailing arm|Wheel centre";
  
  // strut
  parameter SI.Position[3] rCS_1={-2.55 - 0.061,0.518,0.450} 
    "|Geometry|Left strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_1={-2.55 - 0.0605,0.581,-0.046} 
    "|Geometry|Left strut|Strut ot trailing arm";
  parameter SI.Position q0S_1=0.116 
    "|Geometry|Left strut|Additional length for unloaded strut";
  
  parameter SI.Position[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Right strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Right strut|Strut ot trailing arm";
  parameter SI.Position q0S_2=q0S_1 
    "|Geometry|Right strut|Additional length for unloaded strut";
  
  //torsion anti roll
  parameter SI.Position[3] rUL1_1={-2.55 - 0.0395,0.490,0.002} 
    "|Geometry|Anti roll, left|Anti roll bar link to trailing arm";
  parameter SI.Position[3] rAL1_1={-2.55 - 0.040,0.491,0.0775} 
    "|Geometry|Anti roll, left|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_1={-2.55 - 0.210,0.463,0.060} 
    "|Geometry|Anti roll, left|Anti roll bar to chassis/body";
  
  parameter SI.Position[3] rUL1_2=Utilities.Functions.EWM({1,-1,1}, rUL1_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to trailing arm";
  parameter SI.Position[3] rAL1_2=Utilities.Functions.EWM({1,-1,1}, rAL1_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll, right|Anti roll bar to chassis/body";
  parameter SI.Position[3] rCMU_1={-0.418,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.099 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.293 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -5432; 1, 
         5432]) "|Forces|Left multilink|Anti Roll data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Left multilink|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fd=[-1.4950, -719; -0.996, 
         -531; -0.518, -413; -0.389, -376; -0.260, -327; -0.130, -166; -0.052, 
        -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 0.389, 1336; 0.518, 
        1466; 0.996, 1891; 1.495, 2263], fc=[-1, -20000; 1, 20000]) 
    "|Forces|Left multilink|Strut data";
end TrailingArmData;

VehicleDynamics.Chassis.Data.Multilink4Data VehicleDynamics.Chassis.Data.Multilink4Data

Data record for MultiLink4Suspension

VehicleDynamics.Chassis.Data.Multilink4Data

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{-2.6430,0.231,-0.022}Lower link to chassis/body [m]
rCL2_1[3]{-2.5039,0.4150,0.174}Upper link to chassis/body [m]
rCL3_1[3]{-2.4617,0.4750,0.0637}Steering link to chassis/body [m]
rCU_1[3]{-2.0825,0.6200,0.0105}Trailing arm to chassis/body [m]
rUL1_1[3]{-2.6170,0.6672,-0.05327}Lower link to trailing arm [m]
rUL2_1[3]{-2.5178,0.6678,0.1607}Upper link to trailing arm [m]
rUL3_1[3]{-2.4270,0.612,0.050}Steering link to trailing arm [m]
rUW_1[3]{-2.557,0.7373,0.0290}Wheel centre [m]
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1)Lower link to chassis/body [m]
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1)Upper link to chassis/body [m]
rCL3_2[3]Utilities.Functions.EWM({1,-1,1}, rCL3_1)Steering link to chassis/body [m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)Trailing arm to chassis/body [m]
rUL1_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1_1)Lower link to trailing arm [m]
rUL2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL2_1)Upper link to trailing arm [m]
rUL3_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3_1)Steering link to trailing arm [m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)Wheel centre [m]
rCS_1[3]{-2.55 - 0.0621,0.518,0.450}Strut to chassis/body [m]
rUS_1[3]{-2.55 - 0.063305,0.581,-0.046}Strut ot trailing arm [m]
q0S_10.116Additional length for unloaded strut [m]
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1)Strut to chassis/body [m]
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1)Strut ot trailing arm [m]
q0S_2q0S_1Additional length for unloaded strut [m]
rUL4_1[3]{-2.55 - 0.03595,0.4590,0.0021}Anti roll bar link to trailing arm [m]
rAL4_1[3]{-2.55 - 0.040,0.4951,0.07755}Anti roll bar link to anti roll bar [m]
rCA_1[3]{-2.55 - 0.2510,0.4653,0.0630}Anti roll bar to chassis/body [m]
rUL4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL4_1)Anti roll bar link to trailing arm [m]
rAL4_2[3]Utilities.Functions.EWM({1,-1,1}, rAL4_1)Anti roll bar link to anti roll bar [m]
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1)Anti roll bar to chassis/body [m]
rCMU_1[3]{0.118,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.0929[kg.m2]
i22U_10.287[kg.m2]
i33U_10.293[kg.m2]
i21U_1-0.03[kg.m2]
i31U_10.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_CU_1 Bushing data, Trailing arm to chassis/body
data_CU_2 Bushing data, Trailing arm to chassis/body
data_CL1_1 Bushing data, chassis to link1
data_CL1_2 Bushing data, chassis to link1
data_UL1_1 Bushing data, trailing arm to link1
data_UL1_2 Bushing data, trailing arm to link1
data_CL2_1 Bushing data, chassis to link2
data_CL2_2 Bushing data, chassis to link2
data_UL2_1 Bushing data, trailing arm to link2
data_UL2_2 Bushing data, trailing arm to link2
data_CL3_1 Bushing data, chassis to link3
data_CL3_2 Bushing data, chassis to link3
data_UL3_1 Bushing data, trailing arm to link3
data_UL3_2 Bushing data, trailing arm to link3
data_A Anti Roll data
data_S_2 Strut data
data_S_1 Strut data

Modelica definition

record Multilink4Data "Data record for MultiLink4Suspension" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //multilink4
  parameter SI.Position[3] rCL1_1={-2.6430,0.231,-0.022} 
    "|Geometry|Left multilink|Lower link to chassis/body";
  parameter SI.Position[3] rCL2_1={-2.5039,0.4150,0.174} 
    "|Geometry|Left multilink|Upper link to chassis/body";
  parameter SI.Position[3] rCL3_1={-2.4617,0.4750,0.0637} 
    "|Geometry|Left multilink|Steering link to chassis/body";
  parameter SI.Position[3] rCU_1={-2.0825,0.6200,0.0105} 
    "|Geometry|Left multilink|Trailing arm to chassis/body";
  parameter SI.Position[3] rUL1_1={-2.6170,0.6672,-0.05327} 
    "|Geometry|Left multilink|Lower link to trailing arm";
  parameter SI.Position[3] rUL2_1={-2.5178,0.6678,0.1607} 
    "|Geometry|Left multilink|Upper link to trailing arm";
  parameter SI.Position[3] rUL3_1={-2.4270,0.612,0.050} 
    "|Geometry|Left multilink|Steering link to trailing arm";
  parameter SI.Position[3] rUW_1={-2.557,0.7373,0.0290} 
    "|Geometry|Left multilink|Wheel centre";
  
  parameter SI.Position[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Right multilink|Lower link to chassis/body";
  parameter SI.Position[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Right multilink|Upper link to chassis/body";
  parameter SI.Position[3] rCL3_2=Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
    "|Geometry|Right multilink|Steering link to chassis/body";
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry|Right multilink|Trailing arm to chassis/body";
  parameter SI.Position[3] rUL1_2=Utilities.Functions.EWM({1,-1,1}, rUL1_1) 
    "|Geometry|Right multilink|Lower link to trailing arm";
  parameter SI.Position[3] rUL2_2=Utilities.Functions.EWM({1,-1,1}, rUL2_1) 
    "|Geometry|Right multilink|Upper link to trailing arm";
  parameter SI.Position[3] rUL3_2=Utilities.Functions.EWM({1,-1,1}, rUL3_1) 
    "|Geometry|Right multilink|Steering link to trailing arm";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Right multilink|Wheel centre";
  
  // strut
  parameter SI.Position[3] rCS_1={-2.55 - 0.0621,0.518,0.450} 
    "|Geometry|Left strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_1={-2.55 - 0.063305,0.581,-0.046} 
    "|Geometry|Left strut|Strut ot trailing arm";
  parameter SI.Position q0S_1=0.116 
    "|Geometry|Left strut|Additional length for unloaded strut";
  
  parameter SI.Position[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Right strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Right strut|Strut ot trailing arm";
  parameter SI.Position q0S_2=q0S_1 
    "|Geometry|Right strut|Additional length for unloaded strut";
  
  //torsion anti roll
  parameter SI.Position[3] rUL4_1={-2.55 - 0.03595,0.4590,0.0021} 
    "|Geometry|Anti roll, left|Anti roll bar link to trailing arm";
  parameter SI.Position[3] rAL4_1={-2.55 - 0.040,0.4951,0.07755} 
    "|Geometry|Anti roll, left|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_1={-2.55 - 0.2510,0.4653,0.0630} 
    "|Geometry|Anti roll, left|Anti roll bar to chassis/body";
  
  parameter SI.Position[3] rUL4_2=Utilities.Functions.EWM({1,-1,1}, rUL4_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to trailing arm";
  parameter SI.Position[3] rAL4_2=Utilities.Functions.EWM({1,-1,1}, rAL4_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll, right|Anti roll bar to chassis/body";
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.0929 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.293 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=-0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Chassis.Data.BumpBushingData data_CU_1(
    r_min=-0.001*{6.82,2.52,4.87}, 
    r_max=0.001*{6.57,2.53,4.7}, 
    Cdeg=diagonal({456,179,643,1526,1720,1875}), 
    Ddeg=diagonal({7,4,10,22,228,321})) 
    "|Forces|Left multilink|Bushing data, Trailing arm to chassis/body";
  parameter Chassis.Data.BumpBushingData data_CU_2(
    nx=Utilities.Functions.EWM(data_CU_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_CU_1.ny, {1,-1,1}), 
    r_rela0=data_CU_1.r_rela0, 
    r_min=data_CU_1.r_min, 
    r_max=data_CU_1.r_max, 
    phi_rela0=data_CU_1.phi_rela0, 
    phi_min=data_CU_1.phi_min, 
    phi_max=data_CU_1.phi_max, 
    bumpFactor=data_CU_1.bumpFactor, 
    Cdeg=data_CU_1.Cdeg, 
    Ddeg=data_CU_1.Ddeg, 
    C=data_CU_1.C, 
    D=data_CU_1.D, 
    linear=data_CU_1.linear, 
    eps=data_CU_1.eps) 
    "|Forces|Right multilink|Bushing data, Trailing arm to chassis/body";
  parameter Chassis.Data.BumpBushingData data_CL1_1(
    bumpFactor=10, 
    Ddeg=diagonal({64,64,4,61,61,10}), 
    nx={0,0,1}, 
    r_min=-0.001*{4,4,6}, 
    r_max=0.001*{4,4,6}, 
    Cdeg=diagonal({6310,6310,447,6230,6230,1030})) 
    "|Forces|Left multilink|Bushing data, chassis to link1";
  parameter Chassis.Data.BumpBushingData data_CL1_2(
    nx=Utilities.Functions.EWM(data_CL1_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_CL1_1.ny, {1,-1,1}), 
    r_rela0=data_CL1_1.r_rela0, 
    r_min=data_CL1_1.r_min, 
    r_max=data_CL1_1.r_max, 
    phi_rela0=data_CL1_1.phi_rela0, 
    phi_min=data_CL1_1.phi_min, 
    phi_max=data_CL1_1.phi_max, 
    bumpFactor=data_CL1_1.bumpFactor, 
    Cdeg=data_CL1_1.Cdeg, 
    Ddeg=data_CL1_1.Ddeg, 
    C=data_CL1_1.C, 
    D=data_CL1_1.D, 
    linear=data_CL1_1.linear, 
    eps=data_CL1_1.eps) 
    "|Forces|Right multilink|Bushing data, chassis to link1";
  parameter Chassis.Data.BumpBushingData data_UL1_1(
    bumpFactor=10, 
    Ddeg=diagonal({15,15,206,180,180,31.5}), 
    nx={0,0,1}, 
    r_min=-0.001*{4,4,4}, 
    r_max=0.001*{4,4,4}, 
    Cdeg=diagonal({11600,10600,7512,9373,9373,1625})) 
    "|Forces|left multilink|Bushing data, trailing arm to link1";
  parameter Chassis.Data.BumpBushingData data_UL1_2(
    nx=Utilities.Functions.EWM(data_UL1_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_UL1_1.ny, {1,-1,1}), 
    r_rela0=data_UL1_1.r_rela0, 
    r_min=data_UL1_1.r_min, 
    r_max=data_UL1_1.r_max, 
    phi_rela0=data_UL1_1.phi_rela0, 
    phi_min=data_UL1_1.phi_min, 
    phi_max=data_UL1_1.phi_max, 
    bumpFactor=data_UL1_1.bumpFactor, 
    Cdeg=data_UL1_1.Cdeg, 
    Ddeg=data_UL1_1.Ddeg, 
    C=data_UL1_1.C, 
    D=data_UL1_1.D, 
    linear=data_UL1_1.linear, 
    eps=data_UL1_1.eps) 
    "|Forces|Right multilink|Bushing data, trailing arm to link1";
  parameter Chassis.Data.BumpBushingData data_CL2_1(
    Ddeg=diagonal({75,75,7,31,31,14}), 
    nx={0,0,1}, 
    r_min=-0.001*{4,4,6}, 
    r_max=0.001*{4,4,6}, 
    bumpFactor=10, 
    Cdeg=diagonal({25413,25413,3112,2.122,2.122,1.011})) 
    "|Forces|Left multilink|Bushing data, chassis to link2";
  parameter Chassis.Data.BumpBushingData data_CL2_2(
    nx=Utilities.Functions.EWM(data_CL2_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_CL2_1.ny, {1,-1,1}), 
    r_rela0=data_CL2_1.r_rela0, 
    r_min=data_CL2_1.r_min, 
    r_max=data_CL2_1.r_max, 
    phi_rela0=data_CL2_1.phi_rela0, 
    phi_min=data_CL2_1.phi_min, 
    phi_max=data_CL2_1.phi_max, 
    bumpFactor=data_CL2_1.bumpFactor, 
    Cdeg=data_CL2_1.Cdeg, 
    Ddeg=data_CL2_1.Ddeg, 
    C=data_CL2_1.C, 
    D=data_CL2_1.D, 
    linear=data_CL2_1.linear, 
    eps=data_CL2_1.eps) 
    "|Forces|Right multilink|Bushing data, chassis to link2";
  parameter Chassis.Data.BumpBushingData data_UL2_1(
    nx={0,0,1}, 
    r_min=-0.001*{4,4,6}, 
    r_max=0.001*{4,4,6}, 
    Cdeg=diagonal({11900,11900,301,3.239,3.239,0.839}), 
    Ddeg=diagonal({2715,2715,10,813,813,222})) 
    "|Forces|left multilink|Bushing data, trailing arm to link2";
  parameter Chassis.Data.BumpBushingData data_UL2_2(
    nx=Utilities.Functions.EWM(data_UL2_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_UL2_1.ny, {1,-1,1}), 
    r_rela0=data_UL2_1.r_rela0, 
    r_min=data_UL2_1.r_min, 
    r_max=data_UL2_1.r_max, 
    phi_rela0=data_UL2_1.phi_rela0, 
    phi_min=data_UL2_1.phi_min, 
    phi_max=data_UL2_1.phi_max, 
    bumpFactor=data_UL2_1.bumpFactor, 
    Cdeg=data_UL2_1.Cdeg, 
    Ddeg=data_UL2_1.Ddeg, 
    C=data_UL2_1.C, 
    D=data_UL2_1.D, 
    linear=data_UL2_1.linear, 
    eps=data_UL2_1.eps) 
    "|Forces|Right multilink|Bushing data, trailing arm to link2";
  parameter Chassis.Data.BumpBushingData data_CL3_1(
    nx={0,0,1}, 
    r_min=-0.001*{4,4,6}, 
    r_max=0.001*{4,4,6}, 
    bumpFactor=10, 
    Cdeg=diagonal({25422,25422,327,2.22,2.22,1.01}), 
    Ddeg=diagonal({627,627,6,31,31,14})) 
    "|Forces|Left multilink|Bushing data, chassis to link3";
  parameter Chassis.Data.BumpBushingData data_CL3_2(
    nx=Utilities.Functions.EWM(data_CL3_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_CL3_1.ny, {1,-1,1}), 
    r_rela0=data_CL3_1.r_rela0, 
    r_min=data_CL3_1.r_min, 
    r_max=data_CL3_1.r_max, 
    phi_rela0=data_CL3_1.phi_rela0, 
    phi_min=data_CL3_1.phi_min, 
    phi_max=data_CL3_1.phi_max, 
    bumpFactor=data_CL3_1.bumpFactor, 
    Cdeg=data_CL3_1.Cdeg, 
    Ddeg=data_CL3_1.Ddeg, 
    C=data_CL3_1.C, 
    D=data_CL3_1.D, 
    linear=data_CL3_1.linear, 
    eps=data_CL3_1.eps) 
    "|Forces|Right multilink|Bushing data, chassis to link3";
  parameter Chassis.Data.BumpBushingData data_UL3_1(
    nx={0,0,1}, 
    r_min=-0.001*{4,4,6}, 
    r_max=0.001*{4,4,6}, 
    bumpFactor=10, 
    Cdeg=diagonal({27625,27625,312,4143,4143,1236}), 
    Ddeg=diagonal({485,485,9.2,84.5,84.5,26})) 
    "|Forces|left multilink|Bushing data, trailing arm to link3";
  parameter Chassis.Data.BumpBushingData data_UL3_2(
    nx=Utilities.Functions.EWM(data_UL3_1.nx, {1,-1,1}), 
    ny=Utilities.Functions.EWM(data_UL3_1.ny, {1,-1,1}), 
    r_rela0=data_UL3_1.r_rela0, 
    r_min=data_UL3_1.r_min, 
    r_max=data_UL3_1.r_max, 
    phi_rela0=data_UL3_1.phi_rela0, 
    phi_min=data_UL3_1.phi_min, 
    phi_max=data_UL3_1.phi_max, 
    bumpFactor=data_UL3_1.bumpFactor, 
    Cdeg=data_UL3_1.Cdeg, 
    Ddeg=data_UL3_1.Ddeg, 
    C=data_UL3_1.C, 
    D=data_UL3_1.D, 
    linear=data_UL3_1.linear, 
    eps=data_UL3_1.eps) 
    "|Forces|Right multilink|Bushing data, trailing arm to link3";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -5432; 1, 
         5432]) "|Forces|Left multilink|Anti Roll data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Left multilink|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -24000; 1, 24000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.389, 1336; 0.518, 1466; 0.996, 1891; 1.495, 2263]) 
    "|Forces|Left multilink|Strut data";
end Multilink4Data;

VehicleDynamics.Chassis.Data.DoubleWishBoneData VehicleDynamics.Chassis.Data.DoubleWishBoneData

VehicleDynamics.Chassis.Data.DoubleWishBoneData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{-0.005,0.375,0.230} 
rCL2_1[3]{-0.315,0.355,0.230} 
rUL1L2_1[3]{0.005,0.690,0.230} 
rCL3_1[3]{-0.005,0.375,-0.040} 
rCL4_1[3]{-0.315,0.355,-0.030} 
rUL3L4_1[3]{0.005,0.690,-0.070} 
rUW_1[3]{-0.000,0.727,0.040} 
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
rCL3_2[3]Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
rCL4_2[3]Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
rUL1L2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
rUL3L4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1) 
rCS_1[3]{-0.030,0.545,0.565} 
rSL3L4_1[3]{-0.000,0.580,0.040} 
q0S_13516/20000 
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1) 
rSL3L4_2[3]Utilities.Functions.EWM({1,-1,1}, rSL3L4_1) 
q0S_2q0S_1 
rUL5_1[3]{-0.130,0.645,0.075} 
rRL5_1[3]{-0.160,0.305,0.095} 
rUL5_2[3]Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
rRL5_2[3]Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
ratioWheelToRack0.03 rotatational to translational ratio [m/rad]
iSW0.2 
rUL6_1[3]{-0.055,0.540,0.220} 
rAL6_1[3]{-0.045,0.510,0.020} 
rCA_1[3]{-0.240,0.340,0.035} 
rUL6_2[3]Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
rAL6_2[3]Utilities.Functions.EWM({1,-1,1}, rAL6_1) 
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1) 
data_A  
data_SW Steering wheel axis compliance
data_S_1 Strut data
data_S_2 Strut data

Modelica definition

record DoubleWishBoneData 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //double wishbone
  parameter Real[3] rCL1_1={-0.005,0.375,0.230} "|Geometry|Double wish bone|";
  parameter Real[3] rCL2_1={-0.315,0.355,0.230} "|Geometry|Double wish bone|";
  parameter Real[3] rUL1L2_1={0.005,0.690,0.230} "|Geometry|Double wish bone|";
  parameter Real[3] rCL3_1={-0.005,0.375,-0.040} "|Geometry|Double wish bone|";
  parameter Real[3] rCL4_1={-0.315,0.355,-0.030} "|Geometry|Double wish bone|";
  parameter Real[3] rUL3L4_1={0.005,0.690,-0.070} "|Geometry|Double wish bone|";
  parameter Real[3] rUW_1={-0.000,0.727,0.040} "|Geometry|Double wish bone|";
  
  parameter Real[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL3_2=Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL4_2=Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL1L2_2=Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL3L4_2=Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Double wish bone|";
  
  // strut
  parameter Real[3] rCS_1={-0.030,0.545,0.565} "|Geometry|Strut|";
  parameter Real[3] rSL3L4_1={-0.000,0.580,0.040} "|Geometry|Strut|";
  parameter Real q0S_1=3516/20000 "|Geometry|Strut|";
  
  parameter Real[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Strut|";
  parameter Real[3] rSL3L4_2=Utilities.Functions.EWM({1,-1,1}, rSL3L4_1) 
    "|Geometry|Strut|";
  parameter Real q0S_2=q0S_1 "|Geometry|Strut|";
  
  //steering rack
  parameter Real[3] rUL5_1={-0.130,0.645,0.075} "|Geometry|Steering|";
  parameter Real[3] rRL5_1={-0.160,0.305,0.095} "|Geometry|Steering|";
  parameter Real[3] rUL5_2=Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
    "|Geometry|Steering|";
  parameter Real[3] rRL5_2=Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
    "|Geometry|Steering|";
  parameter Real ratioWheelToRack=0.03 
    "|Geometry|Steering| rotatational to translational ratio [m/rad]";
  parameter Real iSW=0.2 "|steering|masses and inertias|";
  
  //torsion anti roll
  
  parameter Real[3] rUL6_1={-0.055,0.540,0.220} "|Geometry|Anti roll|";
  parameter Real[3] rAL6_1={-0.045,0.510,0.020} "|Geometry|Anti roll|";
  parameter Real[3] rCA_1={-0.240,0.340,0.035} "|Geometry|Anti roll|";
  
  parameter Real[3] rUL6_2=Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
    "|Geometry|Anti roll|";
  parameter Real[3] rAL6_2=Utilities.Functions.EWM({1,-1,1}, rAL6_1) 
    "|Geometry|Anti roll|";
  parameter Real[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[-1, -20; -0.5, -6; 0, 0; 
         0.5, 6; 1, 20], fc=[-1, 300; -0.5, 110; 0, 0; 0.5, -110; 1, -300]) 
    "|Forces|Anti roll|";
  parameter Utilities.Forces.Utilities.ForceTable1D data_SW(fc=[-1, 40000; 0, 0; 1, -40000], 
       fd=[-1, 2000; 0, 0; 1, -2000]) 
    "|Forces|Steering|Steering wheel axis compliance";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -20000; 1, 20000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.385, 1336; 0.518, 1455; 0.995, 1851; 1.455, 2255]) 
    "|Forces|Left double wish bone|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=[-1, -20000; 1, 20000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.385, 1336; 0.518, 1455; 0.995, 1851; 1.455, 2255]) 
    "|Forces|Left double wish bone|Strut data";
end DoubleWishBoneData;

VehicleDynamics.Chassis.Data.DoubleWishBoneData2 VehicleDynamics.Chassis.Data.DoubleWishBoneData2

VehicleDynamics.Chassis.Data.DoubleWishBoneData2

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{0.223,0.167,0.121} 
rCL2_1[3]{-0.211,0.177,0.121} 
rCL3_1[3]{0.210,0.165,-0.113} 
rCL4_1[3]{-0.209,0.171,-0.114} 
rUL1L2_1[3]{0.002,0.750,0.128} 
rUL3L4_1[3]{0.002,0.753,-0.117} 
rUW_1[3]{0.013,0.763,0.001} 
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
rCL3_2[3]Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
rCL4_2[3]Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
rUL1L2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
rUL3L4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1) 
rUL5_1[3]{-0.130,0.755,0.075} 
rRL5_1[3]{-0.160,0.305,0.095} 
rUL5_2[3]Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
rRL5_2[3]Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
ratioWheelToRack0.03 |Geometry|Steering| rotatational to translational ratio [m/rad]
iSW0.2 
tcSW[:, 2][-1, 60000; 0, 0; 1, -60000] 
tdSW[:, 2][-1, 2000; 0, 0; 1, -2000] 
rCP[3]{-0.080,0.000,0.141} 
rCS[3]{-0.401,0.000,0.211} 
rPS[3]{-0.062,0.000,0.201} 
rPL6_1[3]{-0.021,0.05,0.169} 
rUL6_1[3]{0.001,0.732,-0.167} 
nCP[3]{0,1,0} 
q0S0.02 
rPL6_2[3]Utilities.Functions.EWM({1,-1,1}, rPL6_1) 
rUL6_2[3]Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
data_S  
data_A  

Modelica definition

record DoubleWishBoneData2 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //double wishbone
  parameter Real[3] rCL1_1={0.223,0.167,0.121} "|Geometry|Double wish bone|";
  //{0.22,.51,.21};
  parameter Real[3] rCL2_1={-0.211,0.177,0.121} "|Geometry|Double wish bone|";
  //{-0.23,.5,.2};
  parameter Real[3] rCL3_1={0.210,0.165,-0.113} "|Geometry|Double wish bone|";
  //{0.23,.5,-.2};
  parameter Real[3] rCL4_1={-0.209,0.171,-0.114} "|Geometry|Double wish bone|";
  //{-0.231,.51,-.22};
  parameter Real[3] rUL1L2_1={0.002,0.750,0.128} "|Geometry|Double wish bone|";
  //{-0.02,0.8,0.2};
  parameter Real[3] rUL3L4_1={0.002,0.753,-0.117} "|Geometry|Double wish bone|";
  //{0.01,0.82,-0.2};
  parameter Real[3] rUW_1={0.013,0.763,0.001} "|Geometry|Double wish bone|";
  //{0,0.87,0};
  
  parameter Real[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL3_2=Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL4_2=Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL1L2_2=Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL3L4_2=Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Double wish bone|";
  
  //steering rack
  parameter Real[3] rUL5_1={-0.130,0.755,0.075} "|Geometry|Steering|";
  parameter Real[3] rRL5_1={-0.160,0.305,0.095} "|Geometry|Steering|";
  //parameter Real[3] rUL5_1={0.180,0.761,0.101} "|Geometry|Steering|";
  //{0.1,0.82,0.1};
  //parameter Real[3] rRL5_1={0.211,0.171,0.110} "|Geometry|Steering|";
  //{0.11,0.34,0.19};
  parameter Real[3] rUL5_2=Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
    "|Geometry|Steering|";
  parameter Real[3] rRL5_2=Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
    "|Geometry|Steering|";
  parameter Real ratioWheelToRack=0.03 
    " |Geometry|Steering| rotatational to translational ratio [m/rad]";
  parameter Real iSW=0.2 "|steering|masses and inertias|";
  parameter Real[:, 2] tcSW=[-1, 60000; 0, 0; 1, -60000] "|Forces|Steering|";
  parameter Real[:, 2] tdSW=[-1, 2000; 0, 0; 1, -2000] "|Forces|Steering|";
  
  //mono-damper belleville anti roll
  parameter Real[3] rCP={-0.080,0.000,0.141} "|Geometry|BelleVille|";
  parameter Real[3] rCS={-0.401,0.000,0.211} "|Geometry|BelleVille|";
  parameter Real[3] rPS={-0.062,0.000,0.201} "|Geometry|BelleVille|";
  parameter Real[3] rPL6_1={-0.021,0.05,0.169} "|Geometry|BelleVille|";
  parameter Real[3] rUL6_1={0.001,0.732,-0.167} "|Geometry|BelleVille|";
  //{0,0.8,-0.1};
  parameter Real[3] nCP={0,1,0} "|Geometry|BelleVille|";
  parameter Real q0S=0.02 "|Geometry|BelleVille|";
  
  parameter Real[3] rPL6_2=Utilities.Functions.EWM({1,-1,1}, rPL6_1) 
    "|Geometry|BelleVille|";
  parameter Real[3] rUL6_2=Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
    "|Geometry|BelleVille|";
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S(fc=[-1, -80000; -0.5, -50000; 
         0, 0; 0.5, 50000; 1, 80000], fd=[-1, -10000; -0.5, -4000; 0, 0; 0.5, 
        3000; 1, 8000]) "|Forces|BelleVille|";
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fc=[-1, -250000; -0.5, -110000; 
         0, 0; 0.5, 110000; 1, 250000], fd=[-1, -20; -0.5, -6; 0, 0; 0.5, 6; 1, 
         20]) "|Forces|BelleVille|";
  
  
end DoubleWishBoneData2;

VehicleDynamics.Chassis.Data.DoubleWishBoneData3 VehicleDynamics.Chassis.Data.DoubleWishBoneData3

VehicleDynamics.Chassis.Data.DoubleWishBoneData3

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{-2.6 + 0.18,0.17,0.09} 
rCL2_1[3]{-2.6 - 0.18,0.17,0.09} 
rCL3_1[3]{-2.6 + 0.18,0.17,-0.1} 
rCL4_1[3]{-2.6 - 0.18,0.17,-0.1} 
rUL1L2_1[3]{-2.6 + 0,0.67,0.09} 
rUL3L4_1[3]{-2.6 + 0,0.67,-0.1} 
rUW_1[3]{-2.6 + 0,0.70,0} 
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
rCL3_2[3]Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
rCL4_2[3]Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
rUL1L2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
rUL3L4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1) 
rUL5_1[3]{-2.6 - 0.18,0.67,0.09} 
rRL5_1[3]{-2.6 - 0.18,0.17,0.09} 
rUL5_2[3]Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
rRL5_2[3]Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
ratioWheelToRack0.03 rotatational to translational ratio [m/rad]
rCP_1[3]{-2.6 + 0.04,0.17,0.15} 
rCS_1[3]{-2.6 + 0.33,0.11,0.15} 
rPS_1[3]{-2.6 + 0.045,0.05,0.185} 
rPL6_1[3]{-2.6 - 0.045,0.17,0.15} 
rUL6_1[3]{-2.6 + 0,0.67,-0.1} 
rPL7_1[3]{-2.6 + 0,0.13,0.125} 
rAL7_1[3]{-2.6 + 0.25,0.17,0.13} 
rCA_1[3]{-2.6 + 0.25,0.17,0.05} 
nP_1[3]cross((rPL6_1 - rUL6_1), (rPL7_1 - rAL7_1)) 
q0S_10.04 
rCP_2[3]Utilities.Functions.EWM({1,-1,1}, rCP_1) 
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1) 
rPS_2[3]Utilities.Functions.EWM({1,-1,1}, rPS_1) 
rPL6_2[3]Utilities.Functions.EWM({1,-1,1}, rPL6_1) 
rUL6_2[3]Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
rPL7_2[3]Utilities.Functions.EWM({1,-1,1}, rPL7_1) 
rAL7_2[3]Utilities.Functions.EWM({1,-1,1}, rAL7_1) 
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1) 
nP_2[3]Utilities.Functions.EWM({1,-1,1}, nP_1) 
q0S_2q0S_1 
data_S_1  
data_S_2  
data_A  

Modelica definition

record DoubleWishBoneData3 
  
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //double wishbone
  parameter Real[3] rCL1_1={-2.6 + 0.18,0.17,0.09} 
    "|Geometry|Double wish bone|";
  //{0.22,.51,.21};
  parameter Real[3] rCL2_1={-2.6 - 0.18,0.17,0.09} 
    "|Geometry|Double wish bone|";
  //{-0.23,.5,.2};
  parameter Real[3] rCL3_1={-2.6 + 0.18,0.17,-0.1} 
    "|Geometry|Double wish bone|";
  //{0.23,.5,-.2};
  parameter Real[3] rCL4_1={-2.6 - 0.18,0.17,-0.1} 
    "|Geometry|Double wish bone|";
  //{-0.231,.51,-.22};
  parameter Real[3] rUL1L2_1={-2.6 + 0,0.67,0.09} "|Geometry|Double wish bone|";
  //{-0.02,0.8,0.2};
  parameter Real[3] rUL3L4_1={-2.6 + 0,0.67,-0.1} "|Geometry|Double wish bone|";
  //{0.01,0.82,-0.2};
  parameter Real[3] rUW_1={-2.6 + 0,0.70,0} "|Geometry|Double wish bone|";
  //{0,0.87,0};
  
  parameter Real[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL3_2=Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rCL4_2=Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL1L2_2=Utilities.Functions.EWM({1,-1,1}, rUL1L2_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUL3L4_2=Utilities.Functions.EWM({1,-1,1}, rUL3L4_1) 
    "|Geometry|Double wish bone|";
  parameter Real[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Double wish bone|";
  
  //steering rack
  parameter Real[3] rUL5_1={-2.6 - 0.18,0.67,0.09} "|Geometry|Steering|";
  //{0.1,0.82,0.1};
  parameter Real[3] rRL5_1={-2.6 - 0.18,0.17,0.09} "|Geometry|Steering|";
  //{0.11,0.34,0.19};
  parameter Real[3] rUL5_2=Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
    "|Geometry|Steering|";
  parameter Real[3] rRL5_2=Utilities.Functions.EWM({1,-1,1}, rRL5_1) 
    "|Geometry|Steering|";
  parameter Real ratioWheelToRack=0.03 
    "|Geometry|Steering| rotatational to translational ratio [m/rad]";
  
  //twindamper torsion anti roll
  parameter Real[3] rCP_1={-2.6 + 0.04,0.17,0.15} "|Geometry|Twin damper|";
  //{0.1,0.3,0.2};
  parameter Real[3] rCS_1={-2.6 + 0.33,0.11,0.15} "|Geometry|Twin damper|";
  //{0.41,0.1,0.2};
  parameter Real[3] rPS_1={-2.6 + 0.045,0.05,0.185} "|Geometry|Twin damper|";
  //{0.1,0.1,0.21};
  parameter Real[3] rPL6_1={-2.6 - 0.045,0.17,0.15} "|Geometry|Twin damper|";
  //{0,0.3,0.22};
  parameter Real[3] rUL6_1={-2.6 + 0,0.67,-0.1} "|Geometry|Twin damper|";
  //{0,0.8,-0.1};
  parameter Real[3] rPL7_1={-2.6 + 0,0.13,0.125} "|Geometry|Twin damper|";
  //{0.1,0.2,0.2};
  parameter Real[3] rAL7_1={-2.6 + 0.25,0.17,0.13} "|Geometry|Twin damper|";
  //{.35,0.2,0.215};
  parameter Real[3] rCA_1={-2.6 + 0.25,0.17,0.05} "|Geometry|Twin damper|";
  //{.5,.2,0};
  parameter Real[3] nP_1=cross((rPL6_1 - rUL6_1), (rPL7_1 - rAL7_1)) 
    "|Geometry|Twin damper|";
  parameter Real q0S_1=0.04 "|Geometry|Twin damper|";
  
  parameter Real[3] rCP_2=Utilities.Functions.EWM({1,-1,1}, rCP_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rPS_2=Utilities.Functions.EWM({1,-1,1}, rPS_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rPL6_2=Utilities.Functions.EWM({1,-1,1}, rPL6_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rUL6_2=Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rPL7_2=Utilities.Functions.EWM({1,-1,1}, rPL7_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rAL7_2=Utilities.Functions.EWM({1,-1,1}, rAL7_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Twin damper|";
  parameter Real[3] nP_2=Utilities.Functions.EWM({1,-1,1}, nP_1) 
    "|Geometry|Twin damper|";
  parameter Real q0S_2=q0S_1 "|Geometry|Twin damper|";
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -180000; -0.5, -50000; 
         0, 0; 0.5, 50000; 1, 180000], fd=[-1, -18000; -0.5, -8000; 0, 0; 0.5, 
        10000; 1, 25000]) "|Forces|Twin damper|";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=[-1, -180000; -0.5, -50000; 
         0, 0; 0.5, 50000; 1, 180000], fd=[-1, -18000; -0.5, -8000; 0, 0; 0.5, 
        10000; 1, 25000]) "|Forces|Twin damper|";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fc=[-1, -4200; 1, 4200], fd
      =[-1, -42; 0, 0; 1, 42]) "|Forces|Twin damper|";
  
  
end DoubleWishBoneData3;

VehicleDynamics.Chassis.Data.FixedAxleData VehicleDynamics.Chassis.Data.FixedAxleData

Record with data for trailing arm suspensions

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rUW_1[3]{-2.55 + 0.000,0.733,0.030} 
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1) 

Modelica definition

record FixedAxleData "Record with data for trailing arm suspensions" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //BEAM AXLE
  parameter Real[3] rUW_1={-2.55 + 0.000,0.733,0.030} "|Geometry|Beam axle|";
  parameter Real[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Beam axle|";
  
  
end FixedAxleData;

VehicleDynamics.Chassis.Data.FiveLinkData VehicleDynamics.Chassis.Data.FiveLinkData

Data record for FiveLinkSuspension

VehicleDynamics.Chassis.Data.FiveLinkData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCL1_1[3]{-2.6430,0.231,-0.022}link 1 to chassis/body [m]
rCL2_1[3]{-2.5039,0.4150,0.174}link 2 to chassis/body [m]
rCL3_1[3]{-2.4617,0.3750,0.0637}link 3 to chassis/body [m]
rCL4_1[3]{-2.6617,0.2950,0.1637}link 4 to chassis/body [m]
rCL5_1[3]{-2.1617,0.4750,-0.0637}link 5 to chassis/body [m]
rUL1_1[3]{-2.6170,0.6672,-0.05327}link 1 to upright [m]
rUL2_1[3]{-2.5178,0.6678,0.1607}link 2 to upright [m]
rUL3_1[3]{-2.4270,0.612,0.050}link 3 to upright [m]
rUL4_1[3]{-2.6270,0.612,0.150}link 4 to upright [m]
rUL5_1[3]{-2.4270,0.612,-0.010}link 5 to upright [m]
rUW_1[3]{-2.557,0.7373,0.0290}Wheel centre [m]
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1)link 1 to chassis/body [m]
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1)link 2 to chassis/body [m]
rCL3_2[3]Utilities.Functions.EWM({1,-1,1}, rCL3_1)link 3 to chassis/body [m]
rCL4_2[3]Utilities.Functions.EWM({1,-1,1}, rCL4_1)link 4 to chassis/body [m]
rCL5_2[3]Utilities.Functions.EWM({1,-1,1}, rCL5_1)link 5 to chassis/body [m]
rUL1_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1_1)link 1 to upright [m]
rUL2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL2_1)link 2 to upright [m]
rUL3_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3_1)link 3 to upright [m]
rUL4_2[3]Utilities.Functions.EWM({1,-1,1}, rUL4_1)link 4 to upright [m]
rUL5_2[3]Utilities.Functions.EWM({1,-1,1}, rUL5_1)link 5 to upright [m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)Wheel centre [m]
rCS_1[3]{-2.55 - 0.0621,0.518,0.450}Strut to chassis/body [m]
rUS_1[3]{-2.55 - 0.063305,0.581,-0.046}Strut ot upright [m]
q0S_10.116Additional length for unloaded strut [m]
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1)Strut to chassis/body [m]
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1)Strut ot upright [m]
q0S_2q0S_1Additional length for unloaded strut [m]
rUL6_1[3]{-2.55 - 0.03595,0.4590,0.0021}Anti roll bar link to upright [m]
rAL6_1[3]{-2.55 - 0.040,0.4951,0.07755}Anti roll bar link to anti roll bar [m]
rCA_1[3]{-2.55 - 0.2510,0.4653,0.0630}Anti roll bar to chassis/body [m]
rUL6_2[3]Utilities.Functions.EWM({1,-1,1}, rUL6_1)Anti roll bar link to upright [m]
rAL6_2[3]Utilities.Functions.EWM({1,-1,1}, rAL6_1)Anti roll bar link to anti roll bar [m]
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1)Anti roll bar to chassis/body [m]
rCMU_1[3]{0.118,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.0929[kg.m2]
i22U_10.287[kg.m2]
i33U_10.293[kg.m2]
i21U_1-0.03[kg.m2]
i31U_10.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_A Anti Roll data
data_S_2 Left strut data
data_S_1 Right strut data

Modelica definition

record FiveLinkData "Data record for FiveLinkSuspension" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //fivelink
  parameter SI.Position[3] rCL1_1={-2.6430,0.231,-0.022} 
    "|Geometry|Left fivelink|link 1 to chassis/body";
  parameter SI.Position[3] rCL2_1={-2.5039,0.4150,0.174} 
    "|Geometry|Left fivelink|link 2 to chassis/body";
  parameter SI.Position[3] rCL3_1={-2.4617,0.3750,0.0637} 
    "|Geometry|Left fivelink|link 3 to chassis/body";
  parameter SI.Position[3] rCL4_1={-2.6617,0.2950,0.1637} 
    "|Geometry|Left fivelink|link 4 to chassis/body";
  parameter SI.Position[3] rCL5_1={-2.1617,0.4750,-0.0637} 
    "|Geometry|Left fivelink|link 5 to chassis/body";
  parameter SI.Position[3] rUL1_1={-2.6170,0.6672,-0.05327} 
    "|Geometry|Left fivelink|link 1 to upright";
  parameter SI.Position[3] rUL2_1={-2.5178,0.6678,0.1607} 
    "|Geometry|Left fivelink|link 2 to upright";
  parameter SI.Position[3] rUL3_1={-2.4270,0.612,0.050} 
    "|Geometry|Left fivelink|link 3 to upright";
  parameter SI.Position[3] rUL4_1={-2.6270,0.612,0.150} 
    "|Geometry|Left fivelink|link 4 to upright";
  parameter SI.Position[3] rUL5_1={-2.4270,0.612,-0.010} 
    "|Geometry|Left fivelink|link 5 to upright";
  parameter SI.Position[3] rUW_1={-2.557,0.7373,0.0290} 
    "|Geometry|Left fivelink|Wheel centre";
  
  parameter SI.Position[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Right fivelink|link 1 to chassis/body";
  parameter SI.Position[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Right fivelink|link 2 to chassis/body";
  parameter SI.Position[3] rCL3_2=Utilities.Functions.EWM({1,-1,1}, rCL3_1) 
    "|Geometry|Right fivelink|link 3 to chassis/body";
  parameter SI.Position[3] rCL4_2=Utilities.Functions.EWM({1,-1,1}, rCL4_1) 
    "|Geometry|Right fivelink|link 4 to chassis/body";
  parameter SI.Position[3] rCL5_2=Utilities.Functions.EWM({1,-1,1}, rCL5_1) 
    "|Geometry|Right fivelink|link 5 to chassis/body";
  parameter SI.Position[3] rUL1_2=Utilities.Functions.EWM({1,-1,1}, rUL1_1) 
    "|Geometry|Right fivelink|link 1 to upright";
  parameter SI.Position[3] rUL2_2=Utilities.Functions.EWM({1,-1,1}, rUL2_1) 
    "|Geometry|Right fivelink|link 2 to upright";
  parameter SI.Position[3] rUL3_2=Utilities.Functions.EWM({1,-1,1}, rUL3_1) 
    "|Geometry|Right fivelink|link 3 to upright";
  parameter SI.Position[3] rUL4_2=Utilities.Functions.EWM({1,-1,1}, rUL4_1) 
    "|Geometry|Right fivelink|link 4 to upright";
  parameter SI.Position[3] rUL5_2=Utilities.Functions.EWM({1,-1,1}, rUL5_1) 
    "|Geometry|Right fivelink|link 5 to upright";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Right fivelink|Wheel centre";
  
  // strut
  parameter SI.Position[3] rCS_1={-2.55 - 0.0621,0.518,0.450} 
    "|Geometry|Left strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_1={-2.55 - 0.063305,0.581,-0.046} 
    "|Geometry|Left strut|Strut ot upright";
  parameter SI.Position q0S_1=0.116 
    "|Geometry|Left strut|Additional length for unloaded strut";
  
  parameter SI.Position[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Right strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Right strut|Strut ot upright";
  parameter SI.Position q0S_2=q0S_1 
    "|Geometry|Right strut|Additional length for unloaded strut";
  
  //torsion anti roll
  parameter SI.Position[3] rUL6_1={-2.55 - 0.03595,0.4590,0.0021} 
    "|Geometry|Anti roll, left|Anti roll bar link to upright";
  parameter SI.Position[3] rAL6_1={-2.55 - 0.040,0.4951,0.07755} 
    "|Geometry|Anti roll, left|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_1={-2.55 - 0.2510,0.4653,0.0630} 
    "|Geometry|Anti roll, left|Anti roll bar to chassis/body";
  
  parameter SI.Position[3] rUL6_2=Utilities.Functions.EWM({1,-1,1}, rUL6_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to upright";
  parameter SI.Position[3] rAL6_2=Utilities.Functions.EWM({1,-1,1}, rAL6_1) 
    "|Geometry|Anti roll, right|Anti roll bar link to anti roll bar";
  parameter SI.Position[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll, right|Anti roll bar to chassis/body";
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.0929 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.293 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=-0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -5432; 1, 
         5432]) "|Forces||Anti Roll data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces||Left strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -24000; 1, 24000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.389, 1336; 0.518, 1466; 0.996, 1891; 1.495, 2263]) 
    "|Forces||Right strut data";
end FiveLinkData;

VehicleDynamics.Chassis.Data.SimpleTwistBeamData VehicleDynamics.Chassis.Data.SimpleTwistBeamData

Data record for Simpletrailing arm4Suspension

VehicleDynamics.Chassis.Data.SimpleTwistBeamData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rCU_1[3]{-2.085,0.600,0.010}Trailing arm to chassis/body [m]
nCU_1[3]{0,1,0}Trailing arm to chassis/body
rUW_1[3]{-2.55,0.733,0.030}Wheel centre [m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)Trailing arm to chassis/body [m]
nCU_2[3]Utilities.Functions.EWM({1,-1,1}, nCU_1)Trailing arm to chassis/body
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)Wheel centre [m]
rCS_1[3]{-2.55 - 0.061,0.518,0.450}Strut to chassis/body [m]
rUS_1[3]{-2.55 - 0.0605,0.581,-0.046}Strut ot trailing arm [m]
q0S_12469/24000Additional length for unloaded strut [m]
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1)Strut to chassis/body [m]
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1)Strut ot trailing arm [m]
q0S_2q0S_1Additional length for unloaded strut [m]
rCMU_1[3]{-0.418,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.099[kg.m2]
i22U_10.287[kg.m2]
i33U_10.293[kg.m2]
i21U_10.03[kg.m2]
i31U_1-0.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_A Anti Roll data
data_S_2 Strut data
data_S_1 Strut data

Modelica definition

record SimpleTwistBeamData 
  "Data record for Simpletrailing arm4Suspension" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //trailing arm4
  parameter SI.Position[3] rCU_1={-2.085,0.600,0.010} 
    "|Geometry|Left trailing arm|Trailing arm to chassis/body";
  parameter Real[3] nCU_1={0,1,0} 
    "|Geometry|Left trailing arm|Trailing arm to chassis/body";
  parameter SI.Position[3] rUW_1={-2.55,0.733,0.030} 
    "|Geometry|Left trailing arm|Wheel centre";
  
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry|Right trailing arm|Trailing arm to chassis/body";
  parameter Real[3] nCU_2=Utilities.Functions.EWM({1,-1,1}, nCU_1) 
    "|Geometry|Right trailing arm|Trailing arm to chassis/body";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Right trailing arm|Wheel centre";
  
  // strut
  parameter SI.Position[3] rCS_1={-2.55 - 0.061,0.518,0.450} 
    "|Geometry|Left strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_1={-2.55 - 0.0605,0.581,-0.046} 
    "|Geometry|Left strut|Strut ot trailing arm";
  parameter SI.Position q0S_1=2469/24000 
    "|Geometry|Left strut|Additional length for unloaded strut";
  
  parameter SI.Position[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Right strut|Strut to chassis/body";
  parameter SI.Position[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Right strut|Strut ot trailing arm";
  parameter SI.Position q0S_2=q0S_1 
    "|Geometry|Right strut|Additional length for unloaded strut";
  
  //torsion anti roll
  parameter SI.Position[3] rCMU_1={-0.418,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.099 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.293 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[0, 0], fc=[-1, -25432; 
        1, 25432]) "|Forces|Left multilink|Anti Roll data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces|Left multilink|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -24000; 1, 24000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.389, 1336; 0.518, 1466; 0.996, 1891; 1.495, 2263]) 
    "|Forces|Left multilink|Strut data";
end SimpleTwistBeamData;

VehicleDynamics.Chassis.Data.SimpleData VehicleDynamics.Chassis.Data.SimpleData

VehicleDynamics.Chassis.Data.SimpleData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rUW_1[3]{0,0.88,0.002}[m]
rCU_1[3]{0,0.78,0.002}[m]
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1)[m]
rCU_2[3]Utilities.Functions.EWM({1,-1,1}, rCU_1)[m]
ratio0.03/0.16 
q0S_10.1758[m]
q0S_2q0S_1[m]
wheelbase2.55 
trackwidthrUW_1[2] - rUW_2[2] 
rCMU_1[3]{0.118,0.028,0.0776}[m]
mU_111.0[kg]
i11U_10.299[kg.m2]
i22U_10.287[kg.m2]
i33U_10.093[kg.m2]
i21U_10.03[kg.m2]
i31U_1-0.12[kg.m2]
i32U_10.01[kg.m2]
rCMU_2[3]Utilities.Functions.EWM({1,-1,1}, rCMU_1)[m]
mU_2mU_1[kg]
i11U_2i11U_1[kg.m2]
i22U_2i22U_1[kg.m2]
i33U_2i33U_1[kg.m2]
i21U_2i21U_1[kg.m2]
i31U_2i31U_1[kg.m2]
i32U_2i32U_1[kg.m2]
data_S_1 Strut data
data_S_2 Strut data

Modelica definition

record SimpleData 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  
  parameter SI.Position[3] rUW_1={0,0.88,0.002} "|Geometry||";
  parameter SI.Position[3] rCU_1={0,0.78,0.002} "|Geometry||";
  parameter SI.Position[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry||";
  parameter SI.Position[3] rCU_2=Utilities.Functions.EWM({1,-1,1}, rCU_1) 
    "|Geometry||";
  
  parameter Real ratio=0.03/0.16;
  
  parameter SI.Distance q0S_1=0.1758 "|Geometry||";
  parameter SI.Distance q0S_2=q0S_1 "|Geometry||";
  
  //steering
  parameter Real wheelbase=2.55;
  parameter Real trackwidth=rUW_1[2] - rUW_2[2];
  
  parameter SI.Position[3] rCMU_1={0.118,0.028,0.0776} 
    "|Mass and Inertia|left upright|";
  parameter SI.Mass mU_1=11.0 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i11U_1=0.299 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i22U_1=0.287 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i33U_1=0.093 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i21U_1=0.03 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i31U_1=-0.12 "|Mass and Inertia|left upright|";
  parameter SI.Inertia i32U_1=0.01 "|Mass and Inertia|left upright|";
  
  parameter SI.Position[3] rCMU_2=Utilities.Functions.EWM({1,-1,1}, rCMU_1) 
    "|Mass and Inertia|right upright|";
  parameter SI.Mass mU_2=mU_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i11U_2=i11U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i22U_2=i22U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i33U_2=i33U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i21U_2=i21U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i31U_2=i31U_1 "|Mass and Inertia|right upright|";
  parameter SI.Inertia i32U_2=i32U_1 "|Mass and Inertia|right upright|";
  
  
  Table data_Link_1;
  Table data_Link_2(bounce2steer=data_Link_1.bounce2steer, bounce2camber=
        data_Link_1.bounce2camber);
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fd=[-1.4950, -719; -0.996, 
         -531; -0.518, -413; -0.389, -376; -0.260, -327; -0.130, -166; -0.052, 
        -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 0.389, 1336; 0.518, 
        1466; 0.996, 1891; 1.495, 2263], fc=[-1, -20000; 1, 20000]) 
    "|Forces||Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=data_S_1.fc, fd=
        data_S_1.fd) "|Forces||Strut data";
end SimpleData;

VehicleDynamics.Chassis.Data.BodyData VehicleDynamics.Chassis.Data.BodyData

Contains Body and Body shape data

Parameters

NameDefaultDescription
rcmB[3]{-2.55*0.396,0,2.55*0.23 - 0.14}Vector from frame_a to center of mass, resolved in frame_a [m]
mB1200Mass of body [kg]
i11B730(1,1) element of inertia tensor [kg.m2]
i22B1350(2,2) element of inertia tensor [kg.m2]
i33B1820(3,3) element of inertia tensor [kg.m2]
i21B0(2,1) element of inertia tensor [kg.m2]
i31B0(3,1) element of inertia tensor [kg.m2]
i32B0(3,2) element of inertia tensor [kg.m2]
shape"sphere"Name of shape
r0[3]{-2.55*0.396,0,2.55*0.23 - 0.14}Vector from frame_a to shape origin. resolved in frame_a [m]
lengthDirection[3]{1,0,0}Vector in length direction, resolved in frame_a [m]
widthDirection[3]{0,1,0}Vector in width direction, resolved in frame_a [m]
length0.1length of shape [m]
width0.1width of shape [m]
height0.1height of shape [m]
material[4]{1,0,0,0.5}Color and specular coefficient
extra0.0Additional parameter for cone and pipe

Modelica definition

record BodyData "Contains Body and Body shape data" 
  
  parameter SI.Position rcmB[3]={-2.55*0.396,0,2.55*0.23 - 0.14} 
    "|Mass and Inertia|Vector from frame_a to center of mass, resolved in frame_a";
  parameter SI.Mass mB=1200 "|Mass and Inertia|Mass of body";
  parameter SI.Inertia i11B=730 "|Mass and Inertia|(1,1) element of inertia tensor";
  parameter SI.Inertia i22B=1350 "|Mass and Inertia|(2,2) element of inertia tensor";
  parameter SI.Inertia i33B=1820 "|Mass and Inertia|(3,3) element of inertia tensor";
  parameter SI.Inertia i21B=0 "|Mass and Inertia|(2,1) element of inertia tensor";
  parameter SI.Inertia i31B=0 "|Mass and Inertia|(3,1) element of inertia tensor";
  parameter SI.Inertia i32B=0 "|Mass and Inertia|(3,2) element of inertia tensor";
  parameter String shape="sphere" "|Animation|Name of shape";
  parameter SI.Position r0[3]={-2.55*0.396,0,2.55*0.23 - 0.14} 
    "|Animation|Vector from frame_a to shape origin. resolved in frame_a";
  parameter SI.Position lengthDirection[3]={1,0,0} 
    "|Animation|Vector in length direction, resolved in frame_a";
  parameter SI.Position widthDirection[3]={0,1,0} 
    "|Animation|Vector in width direction, resolved in frame_a";
  parameter SI.Length length=0.1 "|Animation|length of shape";
  parameter SI.Length width=0.1 "|Animation|width of shape";
  parameter SI.Length height=0.1 "|Animation|height of shape";
  parameter Real material[4]={1,0,0,0.5} 
    "|Animation|Color and specular coefficient";
  parameter Real extra=0.0 "|Animation|Additional parameter for cone and pipe";
  
  
end BodyData;

VehicleDynamics.Chassis.Data.BumpBushingData VehicleDynamics.Chassis.Data.BumpBushingData

Parameters

NameDefaultDescription
rA[3]{0,0,0}vector from frame_A to bushing centre [m]
rB[3]{0,0,0}vector from frame_B to bushing centre [m]
nx[3]{1,0,0}x direction of bushing, resolved in frame_A
ny[3]{0,1,0}y direction of bushing, resolved in frame_A
r_rela0[3]{0,0,0}Unstretched translational spring vector [m]
r_min[3]{-0.05,-0.03,-0.06}vector to bump stop from reference point in negative direction, resolved in frame_A [m]
r_max[3]{0.05,0.03,0.06}vector to bump stop from reference point in positive direction, resolved in frame_A [m]
phi_rela0[3]{0,0,0}Unstretched rotational spring vector [rad]
phi_min[3]{-0.05,-0.03,-0.06}rotational vector to bump stop from reference point in negative direction, resolved in frame_A [rad]
phi_max[3]{0.05,0.03,0.06}rotational vector to bump stop from reference point in positive direction, resolved in frame_A [rad]
bumpFactor10scaleFactor of spring force at after bump
Cdeg[6, 6][10000000, 0, 0, 0, 0, 0; 0, 10000000, 0, 0, 0, 0; 0, 0, 10000000, 0, 0, 0; 0, 0, 0, 100, 0, 0; 0, 0, 0, 0, 100, 0; 0, 0, 0, 0, 0, 100]Stiffness matrix [N/mm and Nmm/degree]
Ddeg[6, 6][100000, 0, 0, 0, 0, 0; 0, 1000000, 0, 0, 0, 0; 0, 0, 100000, 0, 0, 0; 0, 0, 0, 100, 0, 0; 0, 0, 0, 0, 100, 0; 0, 0, 0, 0, 0, 100]Damping matrix [Ns/mm and Nmms/degree]
piModelica.Constants.pi 
C[6, 6]Cdeg*[1000, 0, 0, 0, 0, 0; 0, 1000, 0, 0, 0, 0; 0, 0, 1000, 0, 0, 0; 0, 0, 0, .180/pi, 0, 0; 0, 0, 0, 0, .180/pi, 0; 0, 0, 0, 0, 0, .180/pi]Stiffness matrix [N/m and Nm/rad]
D[6, 6]Ddeg*[1000, 0, 0, 0, 0, 0; 0, 1000, 0, 0, 0, 0; 0, 0, 1000, 0, 0, 0; 0, 0, 0, .180/pi, 0, 0; 0, 0, 0, 0, .180/pi, 0; 0, 0, 0, 0, 0, .180/pi]Stiffness matrix [Ns/m and Nms/rad]
lineartrueturn on/off linearisation of cosine and sine in rotation vector equation
eps0.0000001Guard against division by zero
animationtrueTrue, if animation shall be enabled
width0.04 width bushing [m]
length0.04 width bushing [m]
height0.04 width bushing [m]
material[4]{0.2,0.2,0.2,0.2} Color and specular coefficient of spring

Modelica definition

record BumpBushingData 
  parameter SI.Position[3] rA={0,0,0} 
    "|General geometry|Position|vector from frame_A to bushing centre";
  parameter SI.Position[3] rB={0,0,0} 
    "|General geometry|Position|vector from frame_B to bushing centre";
  parameter Real[3] nx={1,0,0} 
    "|General geometry|Orientation|x direction of bushing, resolved in frame_A";
  parameter Real[3] ny={0,1,0} 
    "|General geometry|Orientation|y direction of bushing, resolved in frame_A";
  
  parameter SI.Position[3] r_rela0={0,0,0} 
    "|General geometry|Pretention|Unstretched translational spring vector";
  parameter SI.Position[3] r_min={-0.05,-0.03,-0.06} 
    "|Forces|Bump|vector to bump stop from reference point in negative direction, resolved in frame_A";
  parameter SI.Position[3] r_max={0.05,0.03,0.06} 
    "|Forces|Bump|vector to bump stop from reference point in positive direction, resolved in frame_A";
  
  parameter SI.Angle[3] phi_rela0={0,0,0} 
    "|General geometry|Pretention|Unstretched rotational spring vector";
  parameter SI.Angle[3] phi_min={-0.05,-0.03,-0.06} 
    "|Forces|Bump|rotational vector to bump stop from reference point in negative direction, resolved in frame_A";
  parameter SI.Angle[3] phi_max={0.05,0.03,0.06} 
    "|Forces|Bump|rotational vector to bump stop from reference point in positive direction, resolved in frame_A";
  parameter Real bumpFactor=10 
    "|Forces|Bump|scaleFactor of spring force at after bump";
  
  parameter Real[6, 6] Cdeg=[10000000, 0, 0, 0, 0, 0; 0, 10000000, 0, 0, 0, 0; 
      0, 0, 10000000, 0, 0, 0; 0, 0, 0, 100, 0, 0; 0, 0, 0, 0, 100, 0; 0, 0, 0, 
       0, 0, 100] "|Forces|Linear|Stiffness matrix [N/mm and Nmm/degree]";
  parameter Real[6, 6] Ddeg=[100000, 0, 0, 0, 0, 0; 0, 1000000, 0, 0, 0, 0; 0, 
      0, 100000, 0, 0, 0; 0, 0, 0, 100, 0, 0; 0, 0, 0, 0, 100, 0; 0, 0, 0, 0, 0, 
       100] "|Forces|Linear|Damping matrix [Ns/mm and Nmms/degree]";
  
  parameter Real pi=Modelica.Constants.pi;
  
  parameter Real C[6, 6]=Cdeg*[1000, 0, 0, 0, 0, 0; 0, 1000, 0, 0, 0, 0; 0, 0, 
      1000, 0, 0, 0; 0, 0, 0, .180/pi, 0, 0; 0, 0, 0, 0, .180/pi, 0; 0, 0, 0, 0, 
       0, .180/pi] "|Forces|Linear|Stiffness matrix [N/m and Nm/rad]";
  parameter Real D[6, 6]=Ddeg*[1000, 0, 0, 0, 0, 0; 0, 1000, 0, 0, 0, 0; 0, 0, 
      1000, 0, 0, 0; 0, 0, 0, .180/pi, 0, 0; 0, 0, 0, 0, .180/pi, 0; 0, 0, 0, 0, 
       0, .180/pi] "|Forces|Linear|Stiffness matrix [Ns/m and Nms/rad]";
  parameter Boolean linear=true 
    "|Advanced||turn on/off linearisation of cosine and sine in rotation vector equation";
  parameter Real eps=0.0000001 "|Advanced||Guard against division by zero";
  
  parameter Boolean animation=true "True, if animation shall be enabled";
  parameter SI.Position width=0.04 "|Animation|if animation = true| width bushing";
  parameter SI.Position length=0.04 "|Animation|if animation = true| width bushing";
  parameter SI.Position height=0.04 "|Animation|if animation = true| width bushing";
  parameter Real material[4]={0.2,0.2,0.2,0.2} 
    "|Animation|if animation = true| Color and specular coefficient of spring";
  
end BumpBushingData;

VehicleDynamics.Chassis.Data.Table VehicleDynamics.Chassis.Data.Table

Parameters

NameDefaultDescription
bounce2steerDegmm[:, 2][-88, -0.408; -68, 0.269; -48, 0.180; -28, 0.08; -20, -0.049; -8, -0.01; 0, 0; 12, 0.01; 32, 0.02; 52, 0; 72, -0.01] 
bounce2camberDegmm[:, 2][-88, 0.79; -68, 0.70; -48, 0.55; -28, 0.40; -20, 0.31; -8, 0.15; 0, 0; 12, -0.23; 32, -0.64; 52, -1.58; 72, -2.24] 
bounce2steer[:, 2]bounce2steerDegmm*[0.001, 0; 0, pi/180] 
bounce2camber[:, 2]bounce2camberDegmm*[0.001, 0; 0, pi/180] 

Modelica definition

record Table 
  parameter Real[:, 2] bounce2steerDegmm=[-88, -0.408; -68, 0.269; -48, 0.180; 
      -28, 0.08; -20, -0.049; -8, -0.01; 0, 0; 12, 0.01; 32, 0.02; 52, 0; 72, -0.01];
  parameter Real[:, 2] bounce2camberDegmm=[-88, 0.79; -68, 0.70; -48, 0.55; -28, 
       0.40; -20, 0.31; -8, 0.15; 0, 0; 12, -0.23; 32, -0.64; 52, -1.58; 72, -2.24];
  
  parameter Real[:, 2] bounce2steer=bounce2steerDegmm*[0.001, 0; 0, pi/180];
  parameter Real[:, 2] bounce2camber=bounce2camberDegmm*[0.001, 0; 0, pi/180];
  
  constant Real pi=Modelica.Constants.pi;
end Table;

VehicleDynamics.Chassis.Data.PartData VehicleDynamics.Chassis.Data.PartData

Contains Body and Body shape dataRigid body with cylindrical shape (also used for animation)

Information

Parameters for rigid body. By default the mass properties of the body are
computed from the cylinder data. Optionally, the cylinder may be hollow.
These data can be overrided by adding other data for mass, inertia and centre of gravity.
Parameter vectors are defined with respect to frame_a in [m].
Parameters:
  r[3]       : Position vector from the origin of frame_a to the origin of
               frame_b.
  Axis[3]    : Unit vector in direction of the cylinder axis
               (will be normalized)
  Length     : Length of cylinder in [m].
  Radius     : Radius of cylinder in [m].
  InnerRadius: Inner radius of cylinder in [m].
  rho        : Density of material in [g/cm^3], e.g.
                  steel: 7.7 .. 7.9
                  wood : 0.4 .. 0.8
  Material(4): = {r, g, b, specular}.
               Color and specular coefficient of the box.
               [r,g,b] affects the color of diffuse and ambient reflected
               light. Specular is a coefficient defining white specular
               reflection. What color that is reflected also depends on the
               color of the light sources. Note, r g, b and specular are
               given in the range 0-1. Specular=1 gives a metallic appearance.

Parameters

NameDefaultDescription
r[3]{0.2,0,0}Vector from frame_a to frame_b, resolved in frame_a [m]
radius0.1Radius of cylinder [m]
innerRadius0Inner radius of cylinder [m]
rho7.7Density of material [g/cm^3]
material[4]{1,0,0,0.5}Color and specular coefficient
animationtrueTrue if part should be animated
shape"cylinder"shape
heightradiusheight of shape [m]
widthradiuswidth of shape [m]
r0[3]{0,0,0}Vector from frame_a to shape frame, resolved in frame_a [m]
lengthUtilities.Functions.length(r - r0)length of shape [m]
lengthDirection[3]r - r0Vector in direction of cylinder axis, resolved in frame_a [m]
widthDirection[3]{0,0,1}Vector in direction perpendiculare to cylinder axis, resolved in frame_a [m]
extra1.0Additional parameter
masstrueTrue if mass should be considered
rCM[3]r0 + length/2*Utilities.Functions.normalize(lengthDirection)Vector from frame_a to center of mass, resolved in frame_a [m]
mmo - miMass of body [kg] [kg]
I11I[1, 1](1,1) element of inertia tensor [kg.m2]
I22I[2, 2](2,2) element of inertia tensor [kg.m2]
I33I[3, 3](3,3) element of inertia tensor [kg.m2]
I21I[2, 1](2,1) element of inertia tensor [kg.m2]
I31I[3, 1](3,1) element of inertia tensor [kg.m2]
I32I[3, 2](3,2) element of inertia tensor [kg.m2]

Modelica definition

record PartData 
  "Contains Body and Body shape dataRigid body with cylindrical shape (also used for animation)"
   
  
  parameter SI.Position r[3]={0.2,0,0} 
    "|Geometry||Vector from frame_a to frame_b, resolved in frame_a";
  parameter SI.Length radius(min=0) = 0.1 
    "|Mass and Inertia|Default cylinder parameters|Radius of cylinder";
  parameter SI.Length innerRadius(
    min=0, 
    max=radius) = 0 
    "|Mass and Inertia|Default cylinder parameters|Inner radius of cylinder";
  parameter Real rho(min=0) = 7.7 
    "|Mass and Inertia|Default cylinder parameters|Density of material [g/cm^3]";
  
  parameter Real material[4]={1,0,0,0.5} 
    "|Animation||Color and specular coefficient";
  parameter Boolean animation=true 
    "|Animation||True if part should be animated";
  parameter String shape="cylinder" "|Animation||shape";
  parameter SI.Length height=radius "|Animation||height of shape";
  parameter SI.Length width=radius "|Animation||width of shape";
  parameter SI.Position r0[3]={0,0,0} 
    "|Animation|Vector from frame_a to shape frame, resolved in frame_a";
  parameter SI.Length length=Utilities.Functions.length(r - r0) 
    "|Animation||length of shape";
  parameter SI.Position lengthDirection[3]=r - r0 
    "|Animation|Vector in direction of cylinder axis, resolved in frame_a";
  parameter SI.Position widthDirection[3]={0,0,1} 
    "|Animation|Vector in direction perpendiculare to cylinder axis, resolved in frame_a";
  parameter Real extra=1.0 "|Animation||Additional parameter";
  parameter Boolean mass=true 
    "|Mass and Inertia||True if mass should be considered";
  
  parameter SI.Position rCM[3]=r0 + length/2*Utilities.Functions.normalize(
      lengthDirection) 
    "|Mass and Inertia|General parameters|Vector from frame_a to center of mass, resolved in frame_a";
  parameter SI.Mass m=mo - mi "Mass of body [kg]";
  parameter SI.Inertia I11=I[1, 1] 
    "|Mass and Inertia|General parameters|(1,1) element of inertia tensor";
  parameter SI.Inertia I22=I[2, 2] 
    "|Mass and Inertia|General parameters|(2,2) element of inertia tensor";
  parameter SI.Inertia I33=I[3, 3] 
    "|Mass and Inertia|General parameters|(3,3) element of inertia tensor";
  parameter SI.Inertia I21=I[2, 1] 
    "|Mass and Inertia|General parameters|(2,1) element of inertia tensor";
  parameter SI.Inertia I31=I[3, 1] 
    "|Mass and Inertia|General parameters|(3,1) element of inertia tensor";
  parameter SI.Inertia I32=I[3, 2] 
    "|Mass and Inertia|General parameters|(3,2) element of inertia tensor";
  
protected 
  constant Real pi=Modelica.Constants.pi;
  parameter SI.Mass mo=1000*rho*pi*length*radius*radius;
  parameter SI.Mass mi=1000*rho*pi*length*innerRadius*innerRadius;
  parameter SI.Inertia i22=(mo*(length*length + 3*radius*radius) - mi*(length*length
       + 3*innerRadius*innerRadius))/12;
  parameter Real Scyl[3, 3]=Utilities.Functions.from_nxy(lengthDirection, 
      widthDirection);
  parameter SI.Inertia I[3, 3]=Scyl*diagonal({(mo*radius*radius - mi*innerRadius*
      innerRadius)/2,i22,i22})*transpose(Scyl);
equation 
  
  
end PartData;

VehicleDynamics.Chassis.Data.RigidAxle4LinkData VehicleDynamics.Chassis.Data.RigidAxle4LinkData

Record with data for trailing arm suspensions

VehicleDynamics.Chassis.Data.RigidAxle4LinkData

Parameters

NameDefaultDescription
scaleFactor[3]{1,1,1}Use this to rescale the geometry, does not affec inertia properties and force elements
rUW_1[3]{-2.55 + 0.000,0.733,0.030} 
rCL1_1[3]{-2.55 + 0.470,0.500,0.010} 
rUL1_1[3]{-2.55 - 0.060,0.662,-0.057} 
rCL2_1[3]{-2.55 + 0.433,0.670,0.167} 
rUL2_1[3]{-2.55 + 0.032,0.668,0.160} 
rUW_2[3]Utilities.Functions.EWM({1,-1,1}, rUW_1) 
rCL1_2[3]Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
rUL1_2[3]Utilities.Functions.EWM({1,-1,1}, rUL1_1) 
rCL2_2[3]Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
rUL2_2[3]Utilities.Functions.EWM({1,-1,1}, rUL2_1) 
rCS_1[3]{-2.55 + 0.061,0.518,0.450} 
rUS_1[3]{-2.55 + 0.0605,0.581,-0.046} 
q0S_10.068 
rCS_2[3]Utilities.Functions.EWM({1,-1,1}, rCS_1) 
rUS_2[3]Utilities.Functions.EWM({1,-1,1}, rUS_1) 
q0S_2q0S_1 
rUL3_1[3]{-2.55 - 0.0395,0.490,0.002} 
rAL3_1[3]{-2.55 - 0.040,0.491,0.0775} 
rCA_1[3]{-2.55 - 0.210,0.463,0.060} 
rUL3_2[3]Utilities.Functions.EWM({1,-1,1}, rUL3_1) 
rAL3_2[3]Utilities.Functions.EWM({1,-1,1}, rAL3_1) 
rCA_2[3]Utilities.Functions.EWM({1,-1,1}, rCA_1) 
data_S_1 Strut data
data_S_2 Strut data
data_A Anti Roll data

Modelica definition

record RigidAxle4LinkData 
  "Record with data for trailing arm suspensions" 
  
  // GEOMETRIC SETTINGS
  parameter Real[3] scaleFactor={1,1,1} 
    "|Geometry|Scaling|Use this to rescale the geometry, does not affec inertia properties and force elements";
  //BEAM AXLE
  parameter Real[3] rUW_1={-2.55 + 0.000,0.733,0.030} "|Geometry|Beam axle|";
  parameter Real[3] rCL1_1={-2.55 + 0.470,0.500,0.010} "|Geometry|Beam axle|";
  parameter Real[3] rUL1_1={-2.55 - 0.060,0.662,-0.057} "|Geometry|Beam axle|";
  parameter Real[3] rCL2_1={-2.55 + 0.433,0.670,0.167} "|Geometry|Beam axle|";
  parameter Real[3] rUL2_1={-2.55 + 0.032,0.668,0.160} "|Geometry|Beam axle|";
  
  parameter Real[3] rUW_2=Utilities.Functions.EWM({1,-1,1}, rUW_1) 
    "|Geometry|Beam axle|";
  parameter Real[3] rCL1_2=Utilities.Functions.EWM({1,-1,1}, rCL1_1) 
    "|Geometry|Beam axle|";
  parameter Real[3] rUL1_2=Utilities.Functions.EWM({1,-1,1}, rUL1_1) 
    "|Geometry|Beam axle|";
  parameter Real[3] rCL2_2=Utilities.Functions.EWM({1,-1,1}, rCL2_1) 
    "|Geometry|Beam axle|";
  parameter Real[3] rUL2_2=Utilities.Functions.EWM({1,-1,1}, rUL2_1) 
    "|Geometry|Beam axle|";
  
  // strut
  parameter Real[3] rCS_1={-2.55 + 0.061,0.518,0.450} "|Geometry|Strut|";
  parameter Real[3] rUS_1={-2.55 + 0.0605,0.581,-0.046} "|Geometry|Strut|";
  parameter Real q0S_1=0.068 "|Geometry|Strut|";
  
  parameter Real[3] rCS_2=Utilities.Functions.EWM({1,-1,1}, rCS_1) 
    "|Geometry|Strut|";
  parameter Real[3] rUS_2=Utilities.Functions.EWM({1,-1,1}, rUS_1) 
    "|Geometry|Strut|";
  parameter Real q0S_2=q0S_1 "|Geometry|Strut|";
  
  //torsion anti roll
  parameter Real[3] rUL3_1={-2.55 - 0.0395,0.490,0.002} "|Geometry|Anti roll|";
  parameter Real[3] rAL3_1={-2.55 - 0.040,0.491,0.0775} "|Geometry|Anti roll|";
  parameter Real[3] rCA_1={-2.55 - 0.210,0.463,0.060} "|Geometry|Anti roll|";
  
  parameter Real[3] rUL3_2=Utilities.Functions.EWM({1,-1,1}, rUL3_1) 
    "|Geometry|Anti roll|";
  parameter Real[3] rAL3_2=Utilities.Functions.EWM({1,-1,1}, rAL3_1) 
    "|Geometry|Anti roll|";
  parameter Real[3] rCA_2=Utilities.Functions.EWM({1,-1,1}, rCA_1) 
    "|Geometry|Anti roll|";
  
  
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_1(fc=[-1, -20000; 1, 20000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.385, 1336; 0.518, 1455; 0.995, 1851; 1.455, 2255]) 
    "|Forces|Left MacPherson|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_S_2(fc=[-1, -20000; 1, 20000], 
       fd=[-1.4950, -719; -0.996, -531; -0.518, -413; -0.389, -376; -0.260, -327; 
         -0.130, -166; -0.052, -82; 0, 0; 0.052, 154; 0.130, 419; 0.260, 1122; 
        0.385, 1336; 0.518, 1455; 0.995, 1851; 1.455, 2255]) 
    "|Forces|Left MacPherson|Strut data";
  parameter Utilities.Forces.Utilities.ForceTable1D data_A(fd=[-1, -100; 0, 0; 1, 100], 
       fc=[-1, -33626; 0, 0; 1, 33626]) "|Forces|Anti Roll|Anti Roll data";
end RigidAxle4LinkData;

HTML-documentation generated by Dymola Tue Jul 15 13:22:46 2003 .