Name | Description |
---|---|
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 |
A model of a Dallara F3 chassis.
Name | Default | Description |
---|---|---|
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_1 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_1(tyreData=frontWheelData, w(start=vInit[1]/0.3)) | Front left wheel |
wheel_2 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_2(leftWheel=false, tyreData=frontWheelData, w(start=vInit[1]/0.3)) | Front right wheel |
wheel_3 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_3(tyreData=rearWheelData, w(start=vInit[1]/0.3)) | Rear left wheel |
wheel_4 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_4(leftWheel=false, tyreData=rearWheelData, w(start=vInit[1]/0.3)) | Rear right wheel |
frontSuspension | redeclare Chassis.Suspensions.DoubleWishBoneSuspension2 frontSuspension | Front suspension |
rearSuspension | redeclare Chassis.Suspensions.DoubleWishBoneSuspension3 rearSuspension | Rear suspension |
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;
Name | Default | Description |
---|---|---|
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_1 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_1(hub(qd(start=vInit[1]/0.3)), tyreData=frontWheelData) | Front left wheel |
wheel_2 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_2(leftWheel=false, hub(qd(start=vInit[1]/0.3)), tyreData=frontWheelData) | Front right wheel |
wheel_3 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_3(hub(qd(start=vInit[1]/0.3)), tyreData=rearWheelData) | Rear left wheel |
wheel_4 | redeclare Wheels.RillTyre.WheelWithForceAnimation wheel_4(leftWheel=false, hub(qd(start=vInit[1]/0.3)), tyreData=rearWheelData) | Rear right wheel |
frontSuspension | redeclare Suspensions.MacPhersonSuspension2 frontSuspension | Front suspension with steering |
rearSuspension | redeclare Suspensions.MultiLink4Suspension5 rearSuspension | Rear suspension without steering |
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;
Name | Default | Description |
---|---|---|
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] |
L | 2.85 | [m] |
lambda | 0.95 | |
kappa | 0.2 | |
mBody | 600 | [kg] |
i11Body | 500 | [kg.m2] |
i22Body | 500 | [kg.m2] |
i33Body | 800 | [kg.m2] |
Wheel_1 | redeclare Wheels.RillTyre.WheelWithForceAnimation Wheel_1(hub(qd(start=20/0.3))) | Left wheel |
Wheel_2 | redeclare Wheels.RillTyre.WheelWithForceAnimation Wheel_2(leftWheel=false, hub(qd(start=20/0.3))) | Right wheel |
suspension | redeclare Chassis.Suspensions.FixedAxleSuspension suspension | Suspension |
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;