VehicleDynamics.Chassis

Modelica library to model vehicle chassis.

VehicleDynamics.Chassis.Interfaces VehicleDynamics.Chassis.Suspensions VehicleDynamics.Chassis.Data VehicleDynamics.Chassis.FormulaChassis VehicleDynamics.Chassis.Trailer VehicleDynamics.Chassis.StandardChassis

Information


 

NameDescription
Interfaces  
Suspensions Suspensions, models ready to be used as front or rear suspensions.
Data Contains data for different suspensions
Components Vehicle components to build suspensions.
FormulaChassis  
Trailer  
StandardChassis  


VehicleDynamics.Chassis.FormulaChassis VehicleDynamics.Chassis.FormulaChassis

VehicleDynamics.Chassis.FormulaChassis

Information

A model of a Dallara F3 chassis. 

Parameters

NameDefaultDescription
vInit[3]{10,0,0} initial speed of vehicle
rInit[3]{0,0,0.3} initial position of vehicle [m]
phiInit[3]{0,0,0} initial rotation of vehicle [rad]
wheel_1redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_1(tyreData=frontWheelData, w(start=vInit[1]/0.3))Front left wheel
wheel_2redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_2(leftWheel=false, tyreData=frontWheelData, w(start=vInit[1]/0.3))Front right wheel
wheel_3redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_3(tyreData=rearWheelData, w(start=vInit[1]/0.3))Rear left wheel
wheel_4redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_4(leftWheel=false, tyreData=rearWheelData, w(start=vInit[1]/0.3))Rear right wheel
frontSuspensionredeclare Chassis.Suspensions.DoubleWishBoneSuspension2 frontSuspensionFront suspension
rearSuspensionredeclare Chassis.Suspensions.DoubleWishBoneSuspension3 rearSuspensionRear suspension

Modelica definition

model FormulaChassis 
  Chassis.Components.FormulaBody FormulaBody1;
  extends Chassis.Interfaces.ChassisInterface;
  
  
  ModelicaAdditions.MultiBody.Parts.InertialSystem ground(ng={0,0,-1});
  Utilities.Joints.FreeMotion freeMotion(
    r_rela(start=rInit, fixed=true), 
    v_rela(start=vInit, fixed=true), 
    w_rela(start={0,0,0}, fixed=true), 
    phi(start=phiInit, fixed=true));
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_1(tyreData=frontWheelData, w(
        start=vInit[1]/0.3)) extends Wheels.Utilities.BaseWheel 
    "Front left wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_2(
    leftWheel=false, 
    tyreData=frontWheelData, 
    w(start=vInit[1]/0.3)) extends Wheels.Utilities.BaseWheel 
    "Front right wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_3(tyreData=rearWheelData, w(
        start=vInit[1]/0.3)) extends Wheels.Utilities.BaseWheel 
    "Rear left wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_4(
    leftWheel=false, 
    tyreData=rearWheelData, 
    w(start=vInit[1]/0.3)) extends Wheels.Utilities.BaseWheel 
    "Rear right wheel";
  replaceable Chassis.Suspensions.DoubleWishBoneSuspension2 frontSuspension extends 
    Chassis.Interfaces.SteerableSuspensionInterface "Front suspension";
  replaceable Chassis.Suspensions.DoubleWishBoneSuspension3 rearSuspension extends 
    Chassis.Interfaces.SteerableSuspensionInterface "Rear suspension";
  Modelica.Mechanics.Rotational.Fixed fixed;
  Wheels.RillTyre.TyreDataDallaraFrontWheel frontWheelData(
    R0=0.2663, 
    Rrim=0.3302/2, 
    m=10, 
    Iyy=10*4/9*0.2663*0.2663/2, 
    Ixx=10*4/9*0.2663*0.2663, 
    c_x=190000, 
    c_y=170000, 
    c_z=165000, 
    d_x=3000, 
    d_y=3000, 
    d_z=3000, 
    width=0.223) "Pirelli 200/530-13";
  Wheels.RillTyre.TyreDataDallaraRearWheel rearWheelData;
equation 
  connect(ground.frame_b, freeMotion.frame_a);
  connect(fixed.flange_b, rearSuspension.flange_SW);
  connect(freeMotion.frame_b, BGR);
  connect(frontSuspension.frame_U_1, wheel_1.carrierFrame);
  connect(frontSuspension.frame_U_2, wheel_2.carrierFrame);
  connect(frontSuspension.frame_C, freeMotion.frame_b);
  connect(rearSuspension.frame_U_2, wheel_4.carrierFrame);
  connect(rearSuspension.frame_U_1, wheel_3.carrierFrame);
  connect(wheel_1.driveShaft1D, flange_1);
  connect(wheel_3.driveShaft1D, flange_3);
  connect(wheel_4.driveShaft1D, flange_4);
  connect(wheel_2.driveShaft1D, flange_2);
  connect(frontSuspension.flange_SW, flange_SW);
  connect(freeMotion.frame_b, rearSuspension.frame_C);
  connect(FormulaBody1.frame_a1, freeMotion.frame_b);
end FormulaChassis;

VehicleDynamics.Chassis.StandardChassis VehicleDynamics.Chassis.StandardChassis

VehicleDynamics.Chassis.StandardChassis

Information

This is a standard chassis assuming a rigid body, a front steerable suspension and a rear suspension without steering. All compoents such as wheels and suspensions can easilly be replaced wiht others based on the same interfaces.

Parameters

NameDefaultDescription
vInit[3]{10,0,0} initial speed of vehicle
rInit[3]{0,0,0.3} initial position of vehicle [m]
phiInit[3]{0,0,0} initial rotation of vehicle [rad]
wheel_1redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_1(hub(qd(start=vInit[1]/0.3)), tyreData=frontWheelData)Front left wheel
wheel_2redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_2(leftWheel=false, hub(qd(start=vInit[1]/0.3)), tyreData=frontWheelData)Front right wheel
wheel_3redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_3(hub(qd(start=vInit[1]/0.3)), tyreData=rearWheelData)Rear left wheel
wheel_4redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_4(leftWheel=false, hub(qd(start=vInit[1]/0.3)), tyreData=rearWheelData)Rear right wheel
frontSuspensionredeclare Suspensions.MacPhersonSuspension2 frontSuspensionFront suspension with steering
rearSuspensionredeclare Suspensions.MultiLink4Suspension5 rearSuspensionRear suspension without steering

Modelica definition

model StandardChassis 
  Chassis.Components.SedanBody body "Body of chassis";
  extends Chassis.Interfaces.ChassisInterface;
  ModelicaAdditions.MultiBody.Parts.InertialSystem ground(ng={0,0,-1});
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_1(hub(qd(start=vInit[1]/0.3)), 
       tyreData=frontWheelData) extends Wheels.Utilities.BaseWheel 
    "Front left wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_2(
    leftWheel=false, 
    hub(qd(start=vInit[1]/0.3)), 
    tyreData=frontWheelData) extends Wheels.Utilities.BaseWheel(leftWheel=false)
     "Front right wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_3(hub(qd(start=vInit[1]/0.3)), 
       tyreData=rearWheelData) extends Wheels.Utilities.BaseWheel 
    "Rear left wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation wheel_4(
    leftWheel=false, 
    hub(qd(start=vInit[1]/0.3)), 
    tyreData=rearWheelData) extends Wheels.Utilities.BaseWheel 
    "Rear right wheel";
  Utilities.Joints.FreeMotion freeMotion(
    r_rela(start=rInit, fixed=true), 
    v_rela(start=vInit, fixed=true), 
    w_rela(start={0,0,0}, fixed=true), 
    phi(start=phiInit, fixed=true));
  replaceable Suspensions.MacPhersonSuspension2 frontSuspension extends 
    Chassis.Interfaces.SteerableSuspensionInterface 
    "Front suspension with steering";
  replaceable Suspensions.MultiLink4Suspension5 rearSuspension extends 
    Chassis.Interfaces.SuspensionInterface "Rear suspension without steering";
  Wheels.RillTyre.TyreData frontWheelData;
  Wheels.RillTyre.TyreData rearWheelData;
equation 
  connect(ground.frame_b, freeMotion.frame_a);
  connect(BGR, freeMotion.frame_b);
  connect(wheel_4.driveShaft1D, flange_4);
  connect(wheel_2.driveShaft1D, flange_2);
  connect(frontSuspension.flange_SW, flange_SW);
  connect(wheel_1.driveShaft1D, flange_1);
  connect(wheel_3.driveShaft1D, flange_3);
  connect(rearSuspension.frame_U_2, wheel_4.carrierFrame);
  connect(rearSuspension.frame_U_1, wheel_3.carrierFrame);
  connect(frontSuspension.frame_U_1, wheel_1.carrierFrame);
  connect(frontSuspension.frame_U_2, wheel_2.carrierFrame);
  connect(frontSuspension.frame_C, freeMotion.frame_b);
  connect(rearSuspension.frame_C, freeMotion.frame_b);
  connect(freeMotion.frame_b, body.frame_a1);
end StandardChassis;

VehicleDynamics.Chassis.Trailer VehicleDynamics.Chassis.Trailer

VehicleDynamics.Chassis.Trailer

Parameters

NameDefaultDescription
rCP[3]{-3.5,0,0.1}Vector from car's BRG to trailer pivot point which also is trailer's BGR [m]
rCMBody[3]{-lambda*L,0,kappa*L}[m]
L2.85[m]
lambda0.95 
kappa0.2 
mBody600[kg]
i11Body500[kg.m2]
i22Body500[kg.m2]
i33Body800[kg.m2]
Wheel_1redeclare Wheels.RillTyre.WheelWithForceAnimation Wheel_1(hub(qd(start=20/0.3)))Left wheel
Wheel_2redeclare Wheels.RillTyre.WheelWithForceAnimation Wheel_2(leftWheel=false, hub(qd(start=20/0.3)))Right wheel
suspensionredeclare Chassis.Suspensions.FixedAxleSuspension suspensionSuspension

Modelica definition

model Trailer 
  
  parameter SI.Position rCP[3]={-3.5,0,0.1} 
    "Vector from car's BRG to trailer pivot point which also is trailer's BGR";
  parameter SI.Position[3] rCMBody={-lambda*L,0,kappa*L};
  parameter SI.Distance L=2.85;
  parameter Real lambda=0.95;
  parameter Real kappa=0.2;
  parameter SI.Mass mBody=600;
  parameter SI.Inertia i11Body=500;
  parameter SI.Inertia i22Body=500;
  parameter SI.Inertia i33Body=800;
  
  replaceable Wheels.RillTyre.WheelWithForceAnimation Wheel_1(hub(qd(start=20/0.3)))
     extends Wheels.Utilities.BaseWheel "Left wheel";
  replaceable Wheels.RillTyre.WheelWithForceAnimation Wheel_2(leftWheel=false, hub(qd(
          start=20/0.3))) extends Wheels.Utilities.BaseWheel "Right wheel";
  
  replaceable Chassis.Suspensions.FixedAxleSuspension suspension extends 
    Chassis.Interfaces.SuspensionInterface "Suspension";
  Modelica.Mechanics.Rotational.Interfaces.Flange_a flange_1;
  Modelica.Mechanics.Rotational.Interfaces.Flange_a flange_2;
  VehicleDynamics.Utilities.Joints.Spherical spherical;
  ModelicaAdditions.MultiBody.Parts.FrameTranslation frameTranslation(r=rCP);
  ModelicaAdditions.MultiBody.Interfaces.Frame_a frame_a;
  ModelicaAdditions.MultiBody.Interfaces.Frame_b frame_b;
  Utilities.Parts.Body body(
    lengthDirection={-1,0,0}, 
    height=0.1, 
    material={0.4,0.4,0.4,0.2}, 
    rCM=rCMBody, 
    m=mBody, 
    I11=i11Body, 
    I22=i22Body, 
    I33=i33Body, 
    r0={-1,0,0.2}, 
    length=L - 0.5, 
    width=1.2, 
    widthDirection={0,1,0});
  Utilities.Parts.Body rod(
    material={0.4,0.4,0.4,0.2}, 
    r={-1,0,0}, 
    shape="cylinder");
equation 
  connect(suspension.frame_U_2, Wheel_2.carrierFrame);
  connect(Wheel_1.carrierFrame, suspension.frame_U_1);
  connect(Wheel_1.driveShaft1D, flange_1);
  connect(Wheel_2.driveShaft1D, flange_2);
  connect(frameTranslation.frame_a, frame_a);
  connect(frameTranslation.frame_b, spherical.frame_a);
  connect(spherical.frame_b, suspension.frame_C);
  connect(spherical.frame_b, frame_b);
  connect(body.frame_a, spherical.frame_b);
  connect(rod.frame_a, spherical.frame_b);
end Trailer;

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