Description
Class for defining a clutch or a brake (1D model) between two one-degree-of-freedom parts.
#include <ChShaftsClutch.h>
Public Member Functions | |
ChShaftsClutch (const ChShaftsClutch &other) | |
virtual ChShaftsClutch * | Clone () const override |
"Virtual" copy constructor (covariant return type). | |
virtual unsigned int | GetNumConstraintsBilateral () override |
Number of scalar constraints, for statistical reasons. | |
void | SetDisabled (bool val) |
Disable this element (disable constraints). | |
void | SetTorqueLimit (double ml, double mu) |
Set the transmissible torque limit (the maximum torque that the clutch can transmit between the two shafts). More... | |
void | SetTorqueLimit (double ml) |
Set the transmissible torque limit (the maximum torque that the clutch can transmit between the two shafts), for both forward and backward direction. | |
double | GetTorqueLimitF () const |
Get the torque limit for forward rotation. | |
double | GetTorqueLimitB () const |
Get the torque limit for backward rotation. | |
double | GetTorqueLimit () const |
Get the torque limit (when this is a clutch with symmetric forw/backw limits). | |
void | SetModulation (double mm) |
Set the user modulation of the torque (or brake, if you use it between a fixed shaft and a free shaft). More... | |
double | GetModulation () const |
Get the the user modulation. | |
double | GetSlippage () const |
Get the actual angle slippage of the clutch, in terms of phase of shaft 1 with respect to 2. | |
double | GetSlippageDt () const |
Get the actual slippage speed of the clutch, in terms of speed of shaft 1 with respect to 2. | |
double | GetSlippageDt2 () const |
Get the actual slippage acceleration of the clutch, in terms of accel. of shaft 1 with respect to 2. | |
virtual double | GetReaction1 () const override |
Get the reaction torque exchanged between the two shafts, considered as applied to the 1st axis. | |
virtual double | GetReaction2 () const override |
Get the reaction torque exchanged between the two shafts, considered as applied to the 2nd axis. | |
bool | Initialize (std::shared_ptr< ChShaft > shaft_1, std::shared_ptr< ChShaft > shaft_2) override |
Initialize this shafts clutch, given two shafts to join. More... | |
virtual void | ArchiveOut (ChArchiveOut &archive_out) override |
Method to allow serialization of transient data to archives. | |
virtual void | ArchiveIn (ChArchiveIn &archive_in) override |
Method to allow deserialization of transient data from archives. | |
Public Member Functions inherited from chrono::ChShaftsCouple | |
ChShaftsCouple (const ChShaftsCouple &other) | |
virtual unsigned int | GetNumAffectedCoords () |
Get the number of scalar variables affected by constraints in this couple. | |
ChShaft * | GetShaft1 () const |
Get the first (input) shaft. | |
ChShaft * | GetShaft2 () const |
Get the second (output) shaft. | |
double | GetRelativePos () const |
Get the actual relative position (angle or displacement) in terms of phase of shaft 1 with respect to 2. | |
double | GetRelativePosDt () const |
Get the actual relative speed (angle or displacement) of shaft 1 with respect to 2. | |
double | GetRelativePosDt2 () const |
Get the actual relative acceleration (angle or displacement) of shaft 1 with respect to 2. | |
Public Member Functions inherited from chrono::ChPhysicsItem | |
ChPhysicsItem (const ChPhysicsItem &other) | |
ChSystem * | GetSystem () const |
Get the pointer to the parent ChSystem(). | |
virtual void | SetSystem (ChSystem *m_system) |
Set the pointer to the parent ChSystem(). More... | |
void | AddVisualModel (std::shared_ptr< ChVisualModel > model) |
Add an (optional) visualization model. More... | |
std::shared_ptr< ChVisualModel > | GetVisualModel () const |
Access the visualization model (if any). More... | |
void | AddVisualShape (std::shared_ptr< ChVisualShape > shape, const ChFrame<> &frame=ChFrame<>()) |
Add the specified visual shape to the visualization model. More... | |
std::shared_ptr< ChVisualShape > | GetVisualShape (unsigned int i) const |
Access the specified visualization shape in the visualization model (if any). More... | |
void | AddVisualShapeFEA (std::shared_ptr< ChVisualShapeFEA > shapeFEA) |
Add the specified FEA visualization object to the visualization model. More... | |
std::shared_ptr< ChVisualShapeFEA > | GetVisualShapeFEA (unsigned int i) const |
Access the specified FEA visualization object in the visualization model (if any). More... | |
virtual ChFrame | GetVisualModelFrame (unsigned int nclone=0) const |
Get the reference frame (expressed in and relative to the absolute frame) of the visual model. More... | |
virtual unsigned int | GetNumVisualModelClones () const |
Return the number of clones of the visual model associated with this physics item. More... | |
void | AddCamera (std::shared_ptr< ChCamera > camera) |
Attach a ChCamera to this physical item. More... | |
std::vector< std::shared_ptr< ChCamera > > | GetCameras () const |
Get the set of cameras attached to this physics item. | |
virtual bool | IsActive () const |
Return true if the object is active and included in dynamics. | |
virtual bool | IsCollisionEnabled () const |
Tell if the object is subject to collision. More... | |
virtual void | AddCollisionModelsToSystem (ChCollisionSystem *coll_sys) const |
Add to the provided collision system any collision models managed by this physics item. More... | |
virtual void | RemoveCollisionModelsFromSystem (ChCollisionSystem *coll_sys) const |
Remove from the provided collision system any collision models managed by this physics item. More... | |
virtual void | SyncCollisionModels () |
Synchronize the position and bounding box of any collsion models managed by this physics item. | |
virtual ChAABB | GetTotalAABB () |
Get the entire AABB axis-aligned bounding box of the object. More... | |
virtual void | GetCenter (ChVector3d &mcenter) |
Get a symbolic 'center' of the object. More... | |
virtual void | Setup () |
This might recompute the number of coordinates, DOFs, constraints, in case this might change (ex in ChAssembly), as well as state offsets of contained items (ex in ChMesh) | |
virtual void | Update (bool update_assets=true) |
As above, but does not require updating of time-dependent data. More... | |
virtual void | ForceToRest () |
Set zero speed (and zero accelerations) in state, without changing the position. More... | |
virtual unsigned int | GetNumCoordsPosLevel () |
Get the number of coordinates at the position level. More... | |
virtual unsigned int | GetNumCoordsVelLevel () |
Get the number of coordinates at the velocity level. More... | |
virtual unsigned int | GetNumConstraints () |
Get the number of scalar constraints. | |
virtual unsigned int | GetNumConstraintsUnilateral () |
Get the number of unilateral scalar constraints. | |
unsigned int | GetOffset_x () |
Get offset in the state vector (position part) | |
unsigned int | GetOffset_w () |
Get offset in the state vector (speed part) | |
unsigned int | GetOffset_L () |
Get offset in the lagrangian multipliers. | |
void | SetOffset_x (const unsigned int moff) |
Set offset in the state vector (position part) Note: only the ChSystem::Setup function should use this. | |
void | SetOffset_w (const unsigned int moff) |
Set offset in the state vector (speed part) Note: only the ChSystem::Setup function should use this. | |
void | SetOffset_L (const unsigned int moff) |
Set offset in the lagrangian multipliers Note: only the ChSystem::Setup function should use this. | |
virtual void | IntStateGather (const unsigned int off_x, ChState &x, const unsigned int off_v, ChStateDelta &v, double &T) |
From item's state to global state vectors y={x,v} pasting the states at the specified offsets. More... | |
virtual void | IntStateScatter (const unsigned int off_x, const ChState &x, const unsigned int off_v, const ChStateDelta &v, const double T, bool full_update) |
From global state vectors y={x,v} to item's state (and update) fetching the states at the specified offsets. More... | |
virtual void | IntStateGatherAcceleration (const unsigned int off_a, ChStateDelta &a) |
From item's state acceleration to global acceleration vector. More... | |
virtual void | IntStateScatterAcceleration (const unsigned int off_a, const ChStateDelta &a) |
From global acceleration vector to item's state acceleration. More... | |
virtual void | IntStateIncrement (const unsigned int off_x, ChState &x_new, const ChState &x, const unsigned int off_v, const ChStateDelta &Dv) |
Computes x_new = x + Dt , using vectors at specified offsets. More... | |
virtual void | IntStateGetIncrement (const unsigned int off_x, const ChState &x_new, const ChState &x, const unsigned int off_v, ChStateDelta &Dv) |
Computes Dt = x_new - x, using vectors at specified offsets. More... | |
virtual void | IntLoadResidual_Mv (const unsigned int off, ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) |
Takes the M*v term, multiplying mass by a vector, scale and adds to R at given offset: R += c*M*w. More... | |
virtual void | IntLoadLumpedMass_Md (const unsigned int off, ChVectorDynamic<> &Md, double &err, const double c) |
Adds the lumped mass to a Md vector, representing a mass diagonal matrix. More... | |
virtual void | InjectVariables (ChSystemDescriptor &descriptor) |
Register with the given system descriptor any ChVariable objects associated with this item. | |
virtual void | InjectKRMMatrices (ChSystemDescriptor &descriptor) |
Register with the given system descriptor any ChKRMBlock objects associated with this item. | |
virtual void | LoadKRMMatrices (double Kfactor, double Rfactor, double Mfactor) |
Compute and load current stiffnes (K), damping (R), and mass (M) matrices in encapsulated ChKRMBlock objects. More... | |
virtual void | VariablesFbReset () |
Sets the 'fb' part (the known term) of the encapsulated ChVariables to zero. | |
virtual void | VariablesFbLoadForces (double factor=1) |
Adds the current forces (applied to item) into the encapsulated ChVariables, in the 'fb' part: qf+=forces*factor. | |
virtual void | VariablesQbLoadSpeed () |
Initialize the 'qb' part of the ChVariables with the current value of speeds. More... | |
virtual void | VariablesFbIncrementMq () |
Adds M*q (masses multiplied current 'qb') to Fb, ex. More... | |
virtual void | VariablesQbSetSpeed (double step=0) |
Fetches the item speed (ex. More... | |
virtual void | VariablesQbIncrementPosition (double step) |
Increment item positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor. More... | |
virtual void | ConstraintsBiLoad_Qc (double factor=1) |
Adds the current Qc (the vector of C_dtdt=0 -> [Cq]*q_dtdt=Qc ) to the known term (b_i) of encapsulated ChConstraints. | |
Public Member Functions inherited from chrono::ChObj | |
ChObj (const ChObj &other) | |
int | GetIdentifier () const |
Get the unique integer identifier of this object. More... | |
void | SetTag (int tag) |
Set an object integer tag (default: -1). More... | |
int | GetTag () const |
Get the tag of this object. | |
void | SetName (const std::string &myname) |
Set the name of this object. | |
const std::string & | GetName () const |
Get the name of this object. | |
double | GetChTime () const |
Gets the simulation time of this object. | |
void | SetChTime (double m_time) |
Sets the simulation time of this object. | |
virtual std::string & | ArchiveContainerName () |
Additional Inherited Members | |
Protected Member Functions inherited from chrono::ChObj | |
int | GenerateUniqueIdentifier () |
Protected Attributes inherited from chrono::ChShaftsCouple | |
ChShaft * | shaft1 |
first shaft | |
ChShaft * | shaft2 |
second shaft | |
Protected Attributes inherited from chrono::ChPhysicsItem | |
ChSystem * | system |
parent system | |
std::shared_ptr< ChVisualModelInstance > | vis_model_instance |
instantiated visualization model | |
std::vector< std::shared_ptr< ChCamera > > | cameras |
set of cameras | |
unsigned int | offset_x |
offset in vector of state (position part) | |
unsigned int | offset_w |
offset in vector of state (speed part) | |
unsigned int | offset_L |
offset in vector of lagrangian multipliers | |
Protected Attributes inherited from chrono::ChObj | |
double | ChTime |
object simulation time | |
std::string | m_name |
object name | |
int | m_identifier |
object unique identifier | |
int | m_tag |
user-supplied tag | |
Member Function Documentation
◆ Initialize()
|
overridevirtual |
Initialize this shafts clutch, given two shafts to join.
Both shafts must belong to the same ChSystem.
- Parameters
-
shaft_1 first shaft to join shaft_2 second shaft to join
Reimplemented from chrono::ChShaftsCouple.
◆ SetModulation()
|
inline |
Set the user modulation of the torque (or brake, if you use it between a fixed shaft and a free shaft).
The modulation must range from 0 (switched off) to 1 (max torque). Default is 1, when clutch is created. You can update this during integration loop to simulate the pedal pushing by the driver.
◆ SetTorqueLimit()
void chrono::ChShaftsClutch::SetTorqueLimit | ( | double | ml, |
double | mu | ||
) |
Set the transmissible torque limit (the maximum torque that the clutch can transmit between the two shafts).
You can specify two values for backward/forward directions: usually these are equal (ex. -100,100) in most commercial clutches, but if you define (0,100), for instance, you can create a so called freewheel or overrunning clutch that works only in one direction.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/physics/ChShaftsClutch.h
- /builds/uwsbel/chrono/src/chrono/physics/ChShaftsClutch.cpp