Project Chrono: chrono::vehicle::MacPhersonStrut Class Reference

Public Member Functions | List of all members
chrono::vehicle::MacPhersonStrut Class Reference
VEHICLE module » Wheeled vehicles » Suspension subsystem

## Description

MacPherson strut suspension constructed with data from file.

`#include <MacPhersonStrut.h>`

Inheritance diagram for chrono::vehicle::MacPhersonStrut:
[legend]
Collaboration diagram for chrono::vehicle::MacPhersonStrut:
[legend]

## Public Member Functions
| MacPhersonStrut (const std::string &filename)
| MacPhersonStrut (const rapidjson::Document &d)
virtual bool | UseTierodBodies () const override
| Indicate whether or not tirod bodies are modelled (default: false).
virtual double | getCamberAngle () const override
| Return the camber angle, in radians (default: 0).
virtual double | getToeAngle () const override
| Return the toe angle, in radians (default: 0).
virtual double | getSpindleMass () const override
| Return the mass of the spindle body.
virtual double | getStrutMass () const override
| Return the mass of the strut body.
virtual double | getLCAMass () const override
| Return the mass of the lower control body.
virtual double | getUprightMass () const override
| Return the mass of the upright body.
virtual double | getTierodMass () const override
| Return the mass of the tierod body.
virtual double | getSpindleRadius () const override
| Return the radius of the spindle body (visualization only).
virtual double | getSpindleWidth () const override
| Return the width of the spindle body (visualization only).
virtual double | getStrutRadius () const override
| Return the radius of the strut body (visualization only).
virtual double | getLCARadius () const override
| Return the radius of the lower control arm body (visualization only).
virtual double | getUprightRadius () const override
| Return the radius of the upright body (visualization only).
virtual double | getTierodRadius () const override
| Return the radius of the tierod body (visualization only).
virtual const ChVector3d & | getSpindleInertia () const override
| Return the moments of inertia of the spindle body.
virtual const ChVector3d & | getStrutInertia () const override
| Return the moments of inertia of the strut body.
virtual const ChVector3d & | getLCAInertia () const override
| Return the moments of inertia of the lower control arm body.
virtual const ChVector3d & | getUprightInertia () const override
| Return the moments of inertia of the upright body.
virtual const ChVector3d | getTierodInertia () const override
| Return the moments of inertia of the tierod body.
virtual double | getAxleInertia () const override
| Return the inertia of the axle shaft.
virtual double | getSpringRestLength () const override
| Return the free (rest) length of the spring element.
virtual double | getShockRestLength () const override
| Return the free (rest) length of the shock element.
virtual std::shared_ptr< ChLinkTSDA::ForceFunctor > | getSpringForceFunctor () const override
| Return the functor object for spring force.
virtual std::shared_ptr< ChLinkTSDA::ForceFunctor > | getShockForceFunctor () const override
| Return the functor object for shock force.
virtual std::shared_ptr< ChVehicleBushingData > | getLCABushingData () const override
| Return stiffness and damping data for the LCA bushing.
virtual std::shared_ptr< ChVehicleBushingData > | getTierodBushingData () const override
| Return stiffness and damping data for the tierod bushings.
Public Member Functions inherited from chrono::vehicle::ChMacPhersonStrut
virtual std::string | GetTemplateName () const override
| Get the name of the vehicle subsystem template.
virtual bool | IsSteerable () const final override
| Specify whether or not this suspension can be steered.
virtual bool | IsIndependent () const final override
| Specify whether or not this is an independent suspension.
virtual void | Initialize (std::shared_ptr< ChChassis > chassis, std::shared_ptr< ChSubchassis > subchassis, std::shared_ptr< ChSteering > steering, const ChVector3d &location, double left_ang_vel=0, double right_ang_vel=0) override
| Initialize this suspension subsystem.
virtual void | AddVisualizationAssets (VisualizationType vis) override
| Add visualization assets for the suspension subsystem.
virtual void | RemoveVisualizationAssets () override
| Remove visualization assets for the suspension subsystem.
virtual double | GetTrack () override
| Get the wheel track for the suspension subsystem.
std::shared_ptr< ChLinkTSDA > | GetSpring (VehicleSide side) const
| Get a handle to the specified spring element.
std::shared_ptr< ChLinkTSDA > | GetShock (VehicleSide side) const
| Get a handle to the specified shock (damper) element.
virtual std::vector< ForceTSDA > | ReportSuspensionForce (VehicleSide side) const override
| Return current suspension TSDA force information on the specified side.
double | GetSpringForce (VehicleSide side) const
| Get the force in the spring element.
double | GetSpringLength (VehicleSide side) const
| Get the current length of the spring element.
double | GetSpringDeformation (VehicleSide side) const
| Get the current deformation of the spring element.
double | GetShockForce (VehicleSide side) const
| Get the force in the shock (damper) element.
double | GetShockLength (VehicleSide side) const
| Get the current length of the shock (damper) element.
double | GetShockVelocity (VehicleSide side) const
| Get the current deformation velocity of the shock (damper) element.
ChVector3d | GetBallJointPosLCA (VehicleSide side)
| Get position of the LCA ball joint (expressed in the global frame).
virtual void | LogConstraintViolations (VehicleSide side) override
| Log current constraint violations.
virtual std::shared_ptr< ChBody > | GetAntirollBody (VehicleSide side) const override
| Specify the suspension body on the specified side to attach a possible antirollbar subsystem.
void | LogHardpointLocations (const ChVector3d &ref, bool inches=false)
| Log the locations of all hardpoints.
Public Member Functions inherited from chrono::vehicle::ChSuspension
const ChVector3d & | GetRelPosition () const
| Get the location of the suspension subsystem relative to the associated chassis reference frame.
std::shared_ptr< ChBody > | GetSpindle (VehicleSide side) const
| Get a handle to the spindle body on the specified side.
std::shared_ptr< ChShaft > | GetAxle (VehicleSide side) const
| Get a handle to the axle shaft on the specified side.
std::shared_ptr< ChLinkLockRevolute > | GetRevolute (VehicleSide side) const
| Get a handle to the revolute joint on the specified side.
const ChVector3d & | GetSpindlePos (VehicleSide side) const
| Get the global location of the spindle on the specified side.
ChQuaternion | GetSpindleRot (VehicleSide side) const
| Get the orientation of the spindle body on the specified side.
const ChVector3d & | GetSpindleLinVel (VehicleSide side) const
| Get the linear velocity of the spindle body on the specified side.
ChVector3d | GetSpindleAngVel (VehicleSide side) const
| Get the angular velocity of the spindle body on the specified side.
double | GetAxleSpeed (VehicleSide side) const
| Get the angular speed of the axle on the specified side.
virtual void | Synchronize (double time)
| Synchronize this suspension subsystem.
virtual void | Advance (double step)
| Advance the state of the suspension subsystem by the specified time step.
void | ApplyAxleTorque (VehicleSide side, double torque)
| Apply the provided motor torque.
virtual std::shared_ptr< ChBody > | GetBrakeBody (VehicleSide side) const
| Specify the body on the specified side for a possible connection to brake subsystem.
virtual std::vector< ForceRSDA > | ReportSuspensionTorque (VehicleSide side) const
| Return current RSDA torque information on the specified side.
void | ApplyParkingBrake (bool brake)
| Simple model of a parking brake.
Public Member Functions inherited from chrono::vehicle::ChPart
const std::string & | GetName () const
| Get the name identifier for this subsystem.
void | SetName (const std::string &name)
| Set the name identifier for this subsystem.
bool | IsInitialized () const
| Return flag indicating whether or not the part is fully constructed.
double | GetMass () const
| Get the subsystem mass.
const ChFrame & | GetCOMFrame () const
| Get the current subsystem COM frame (relative to and expressed in the subsystem's reference frame).
const ChMatrix33 & | GetInertia () const
| Get the current subsystem inertia (relative to the subsystem COM frame).
const ChFrame & | GetTransform () const
| Get the current subsystem position relative to the global frame.
void | SetVisualizationType (VisualizationType vis)
| Set the visualization mode for this subsystem.
virtual void | SetOutput (bool state)
| Enable/disable output for this subsystem.
bool | OutputEnabled () const
| Return the output state for this subsystem.

## Additional Inherited Members
Static Public Member Functions inherited from chrono::vehicle::ChPart
static ChMatrix33 | TransformInertiaMatrix (const ChVector3d &moments, const ChVector3d &products, const ChMatrix33<> &vehicle_rot, const ChMatrix33<> &body_rot)
| Utility function for transforming inertia tensors between centroidal frames.
Protected Types inherited from chrono::vehicle::ChMacPhersonStrut
enum | PointId { SPINDLE , UPRIGHT , LCA_F , LCA_B , LCA_U , LCA_CM , SHOCK_C , SHOCK_U , SPRING_C , SPRING_U , TIEROD_C , TIEROD_U , NUM_POINTS }
| Identifiers for the various hardpoints. More...
Protected Member Functions inherited from chrono::vehicle::ChMacPhersonStrut
| ChMacPhersonStrut (const std::string &name)
virtual void | InitializeInertiaProperties () override
| Initialize subsystem inertia properties.
virtual void | UpdateInertiaProperties () override
| Update subsystem inertia properties.
Protected Member Functions inherited from chrono::vehicle::ChSuspension
| ChSuspension (const std::string &name)
| Construct a suspension subsystem with given name.
Protected Member Functions inherited from chrono::vehicle::ChPart
| ChPart (const std::string &name)
| Construct a vehicle subsystem with the specified name.
void | AddMass (double &mass)
| Add this subsystem's mass.
void | AddInertiaProperties (ChVector3d &com, ChMatrix33<> &inertia)
| Add this subsystem's inertia properties.
void | ExportBodyList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChBody > > bodies) const
| Export the list of bodies to the specified JSON document.
void | ExportShaftList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChShaft > > shafts) const
| Export the list of shafts to the specified JSON document.
void | ExportJointList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLink > > joints) const
| Export the list of joints to the specified JSON document.
void | ExportCouplesList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChShaftsCouple > > couples) const
| Export the list of shaft couples to the specified JSON document.
void | ExportMarkerList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChMarker > > markers) const
| Export the list of markers to the specified JSON document.
void | ExportLinSpringList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLinkTSDA > > springs) const
| Export the list of translational springs to the specified JSON document.
void | ExportRotSpringList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLinkRSDA > > springs) const
| Export the list of rotational springs to the specified JSON document.
void | ExportBodyLoadList (rapidjson::Document &jsonDocument, std::vector< std::shared_ptr< ChLoadBodyBody > > loads) const
| Export the list of body-body loads to the specified JSON document.
Static Protected Member Functions inherited from chrono::vehicle::ChPart
static void | RemoveVisualizationAssets (std::shared_ptr< ChPhysicsItem > item)
| Erase all visual shapes from the visual model associated with the specified physics item (if any).
static void | RemoveVisualizationAsset (std::shared_ptr< ChPhysicsItem > item, std::shared_ptr< ChVisualShape > shape)
| Erase the given shape from the visual model associated with the specified physics item (if any).
Protected Attributes inherited from chrono::vehicle::ChMacPhersonStrut
std::shared_ptr< ChBody > | m_upright [2]
| upright bodies (left/right)
std::shared_ptr< ChBody > | m_strut [2]
| upper control arm bodies (left/right)
std::shared_ptr< ChBody > | m_LCA [2]
| lower control arm bodies (left/right)
std::shared_ptr< ChBody > | m_tierod [2]
| tierod bodies, if used (left/right)
std::shared_ptr< ChLinkLockCylindrical > | m_cylindricalStrut [2]
| strut-LCA cylindrical joints (left/right)
std::shared_ptr< ChLinkUniversal > | m_universalStrut [2]
| chassis-strut universal joints (left/right)
std::shared_ptr< ChVehicleJoint > | m_revoluteLCA [2]
| chassis-LCA revolute joints (left/right)
std::shared_ptr< ChVehicleJoint > | m_sphericalLCA [2]
| upright-LCA spherical joints (left/right)
std::shared_ptr< ChLinkDistance > | m_distTierod [2]
| tierod distance constraints (left/right)
std::shared_ptr< ChVehicleJoint > | m_sphericalTierod [2]
| tierod-upright spherical joints (left/right)
std::shared_ptr< ChVehicleJoint > | m_universalTierod [2]
| tierod-chassis universal joints (left/right)
std::shared_ptr< ChLinkTSDA > | m_shock [2]
| spring links (left/right)
std::shared_ptr< ChLinkTSDA > | m_spring [2]
| shock links (left/right)
Protected Attributes inherited from chrono::vehicle::ChSuspension
ChVector3d | m_rel_loc
| location relative to chassis
std::shared_ptr< ChBody > | m_spindle [2]
| handles to spindle bodies
std::shared_ptr< ChShaft > | m_axle [2]
| handles to axle shafts
std::shared_ptr< ChShaftBodyRotation > | m_axle_to_spindle [2]
| handles to spindle-shaft connectors
std::shared_ptr< ChLinkLockRevolute > | m_revolute [2]
| handles to spindle revolute joints
Protected Attributes inherited from chrono::vehicle::ChPart
std::string | m_name
| subsystem name
bool | m_initialized
| specifies whether ot not the part is fully constructed
bool | m_output
| specifies whether or not output is generated for this subsystem
std::shared_ptr< ChPart > | m_parent
| parent subsystem (empty if parent is vehicle)
double | m_mass
| subsystem mass
ChMatrix33 | m_inertia
| inertia tensor (relative to subsystem COM)
ChFrame | m_com
| COM frame (relative to subsystem reference frame).
ChFrame | m_xform
| subsystem frame expressed in the global frame

## Member Function Documentation

## ◆ getAxleInertia()

virtual double chrono::vehicle::MacPhersonStrut::getAxleInertia | ( |  | ) | const
| inlineoverridevirtual

Return the inertia of the axle shaft.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getCamberAngle()

virtual double chrono::vehicle::MacPhersonStrut::getCamberAngle | ( |  | ) | const
| inlineoverridevirtual

Return the camber angle, in radians (default: 0).

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getLCABushingData()

virtual std::shared_ptr< ChVehicleBushingData > chrono::vehicle::MacPhersonStrut::getLCABushingData | ( |  | ) | const
| inlineoverridevirtual

Return stiffness and damping data for the LCA bushing.

Returning nullptr (default) results in using a kinematic revolute joint.

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getLCAInertia()

virtual const ChVector3d & chrono::vehicle::MacPhersonStrut::getLCAInertia | ( |  | ) | const
| inlineoverridevirtual

Return the moments of inertia of the lower control arm body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getLCAMass()

virtual double chrono::vehicle::MacPhersonStrut::getLCAMass | ( |  | ) | const
| inlineoverridevirtual

Return the mass of the lower control body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getLCARadius()

virtual double chrono::vehicle::MacPhersonStrut::getLCARadius | ( |  | ) | const
| inlineoverridevirtual

Return the radius of the lower control arm body (visualization only).

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getShockForceFunctor()

virtual std::shared_ptr< ChLinkTSDA::ForceFunctor > chrono::vehicle::MacPhersonStrut::getShockForceFunctor | ( |  | ) | const
| inlineoverridevirtual

Return the functor object for shock force.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getShockRestLength()

virtual double chrono::vehicle::MacPhersonStrut::getShockRestLength | ( |  | ) | const
| inlineoverridevirtual

Return the free (rest) length of the shock element.

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getSpindleInertia()

virtual const ChVector3d & chrono::vehicle::MacPhersonStrut::getSpindleInertia | ( |  | ) | const
| inlineoverridevirtual

Return the moments of inertia of the spindle body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getSpindleMass()

virtual double chrono::vehicle::MacPhersonStrut::getSpindleMass | ( |  | ) | const
| inlineoverridevirtual

Return the mass of the spindle body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getSpindleRadius()

virtual double chrono::vehicle::MacPhersonStrut::getSpindleRadius | ( |  | ) | const
| inlineoverridevirtual

Return the radius of the spindle body (visualization only).

Implements chrono::vehicle::ChSuspension.

## ◆ getSpindleWidth()

virtual double chrono::vehicle::MacPhersonStrut::getSpindleWidth | ( |  | ) | const
| inlineoverridevirtual

Return the width of the spindle body (visualization only).

Implements chrono::vehicle::ChSuspension.

## ◆ getSpringForceFunctor()

virtual std::shared_ptr< ChLinkTSDA::ForceFunctor > chrono::vehicle::MacPhersonStrut::getSpringForceFunctor | ( |  | ) | const
| inlineoverridevirtual

Return the functor object for spring force.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getSpringRestLength()

virtual double chrono::vehicle::MacPhersonStrut::getSpringRestLength | ( |  | ) | const
| inlineoverridevirtual

Return the free (rest) length of the spring element.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getStrutInertia()

virtual const ChVector3d & chrono::vehicle::MacPhersonStrut::getStrutInertia | ( |  | ) | const
| inlineoverridevirtual

Return the moments of inertia of the strut body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getStrutMass()

virtual double chrono::vehicle::MacPhersonStrut::getStrutMass | ( |  | ) | const
| inlineoverridevirtual

Return the mass of the strut body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getStrutRadius()

virtual double chrono::vehicle::MacPhersonStrut::getStrutRadius | ( |  | ) | const
| inlineoverridevirtual

Return the radius of the strut body (visualization only).

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getTierodBushingData()

virtual std::shared_ptr< ChVehicleBushingData > chrono::vehicle::MacPhersonStrut::getTierodBushingData | ( |  | ) | const
| inlineoverridevirtual

Return stiffness and damping data for the tierod bushings.

Used only if tierod bodies are defined (see UseTierodBody). Returning nullptr (default) results in using kinematic joints (spherical + universal).

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getTierodInertia()

virtual const ChVector3d chrono::vehicle::MacPhersonStrut::getTierodInertia | ( |  | ) | const
| inlineoverridevirtual

Return the moments of inertia of the tierod body.

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getTierodMass()

virtual double chrono::vehicle::MacPhersonStrut::getTierodMass | ( |  | ) | const
| inlineoverridevirtual

Return the mass of the tierod body.

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getTierodRadius()

virtual double chrono::vehicle::MacPhersonStrut::getTierodRadius | ( |  | ) | const
| inlineoverridevirtual

Return the radius of the tierod body (visualization only).

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getToeAngle()

virtual double chrono::vehicle::MacPhersonStrut::getToeAngle | ( |  | ) | const
| inlineoverridevirtual

Return the toe angle, in radians (default: 0).

A positive value indicates toe-in, a negative value indicates toe-out.

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

## ◆ getUprightInertia()

virtual const ChVector3d & chrono::vehicle::MacPhersonStrut::getUprightInertia | ( |  | ) | const
| inlineoverridevirtual

Return the moments of inertia of the upright body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getUprightMass()

virtual double chrono::vehicle::MacPhersonStrut::getUprightMass | ( |  | ) | const
| inlineoverridevirtual

Return the mass of the upright body.

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ getUprightRadius()

virtual double chrono::vehicle::MacPhersonStrut::getUprightRadius | ( |  | ) | const
| inlineoverridevirtual

Return the radius of the upright body (visualization only).

Implements chrono::vehicle::ChMacPhersonStrut.

## ◆ UseTierodBodies()

virtual bool chrono::vehicle::MacPhersonStrut::UseTierodBodies | ( |  | ) | const
| inlineoverridevirtual

Indicate whether or not tirod bodies are modelled (default: false).

If false, tierods are modelled using distance constraints. If true, rigid tierod bodies are created (in which case a derived class must provide the mass and inertia) and connected either with kinematic joints or bushings (depending on whether or not bushing data is defined).

Reimplemented from chrono::vehicle::ChMacPhersonStrut.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/wheeled_vehicle/suspension/MacPhersonStrut.h
- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/wheeled_vehicle/suspension/MacPhersonStrut.cpp