Description
Class for defining a gearbox with 1D input and 1D output, but with different directions in 3D space.
Basically it defines a transmission ratio between two 1D entities of ChShaft type, and transmits the reaction of the gearbox to a 3D body that acts as the support truss. A typical example is the case of a gearbox with bevel gears, where input shaft and output shaft are at 90 degrees. Note that the more basic ChShaftsGear can do the same, except that it does not provide a way to transmit reaction to a truss body.
#include <ChShaftsGearboxAngled.h>


Public Member Functions | |
| ChShaftsGearboxAngled (const ChShaftsGearboxAngled &other) | |
| virtual ChShaftsGearboxAngled * | Clone () const override |
| "Virtual" copy constructor (covariant return type). | |
| ChShaft * | GetShaft1 () const |
| Get the first shaft (carrier wheel). | |
| ChShaft * | GetShaft2 () const |
| Get the second shaft. | |
| ChBodyFrame * | GetBodyTruss () const |
| Get the third shaft. | |
| void | SetTransmissionRatio (double mt0) |
| Set the transmission ratio t, as in w2=t*w1, or t=w2/w1 , or t*w1 - w2 = 0. | |
| double | GetTransmissionRatio () const |
| Get the transmission ratio t, as in w2=t*w1, or t=w2/w1. | |
| void | SetShaftDirection1 (ChVector3d md) |
| Set the direction of shaft 1 (input) respect to 3D body. | |
| void | SetShaftDirection2 (ChVector3d md) |
| Set the direction of shaft 2 (output) respect to 3D body. | |
| const ChVector3d & | GetShaftDirection1 () const |
| Get the direction of the shaft 1 (input) respect to 3D body. | |
| const ChVector3d & | GetShaftDirection2 () const |
| Get the direction of the shaft 2 (input) respect to 3D body. | |
| double | GetReaction1 () const |
| Get the reaction torque considered as applied to the 1st axis. | |
| double | GetReaction2 () const |
| Get the reaction torque considered as applied to the 2nd axis. | |
| ChVector3d | GetTorqueReactionOnBody () const |
| Get the reaction torque considered as applied to the body. | |
| virtual bool | Initialize (std::shared_ptr< ChShaft > shaft_1, std::shared_ptr< ChShaft > shaft_2, std::shared_ptr< ChBodyFrame > truss, ChVector3d &dir_1, ChVector3d &dir_2) |
| Initialize this gear coupling, given two shafts to join, and the 3D body that acts as a truss. | |
| 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::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(). | |
| void | AddVisualModel (std::shared_ptr< ChVisualModel > model) |
| Add an (optional) visualization model. | |
| std::shared_ptr< ChVisualModel > | GetVisualModel () const |
| Access the visualization model (if any). | |
| void | AddVisualShape (std::shared_ptr< ChVisualShape > shape, const ChFrame<> &frame=ChFrame<>()) |
| Add the specified visual shape to the visualization model. | |
| std::shared_ptr< ChVisualShape > | GetVisualShape (unsigned int i) const |
| Access the specified visualization shape in the visualization model (if any). | |
| void | AddVisualShapeFEA (std::shared_ptr< ChVisualShapeFEA > shapeFEA) |
| Add the specified FEA visualization object to the visualization model. | |
| std::shared_ptr< ChVisualShapeFEA > | GetVisualShapeFEA (unsigned int i) const |
| Access the specified FEA visualization object in the visualization model (if any). | |
| virtual ChFrame | GetVisualModelFrame (unsigned int nclone=0) const |
| Get the reference frame (expressed in and relative to the absolute frame) of the visual model. | |
| virtual unsigned int | GetNumVisualModelClones () const |
| Return the number of clones of the visual model associated with this physics item. | |
| void | AddCamera (std::shared_ptr< ChCamera > camera) |
| Attach a ChCamera to this physical item. | |
| 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. | |
| virtual void | AddCollisionModelsToSystem (ChCollisionSystem *coll_sys) const |
| Add to the provided collision system any collision models managed by this physics item. | |
| virtual void | RemoveCollisionModelsFromSystem (ChCollisionSystem *coll_sys) const |
| Remove from the provided collision system any collision models managed by this physics item. | |
| 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. | |
| virtual void | GetCenter (ChVector3d &mcenter) |
| Get a symbolic 'center' of the object. | |
| 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. | |
| virtual void | ForceToRest () |
| Set zero speed (and zero accelerations) in state, without changing the position. | |
| virtual unsigned int | GetNumCoordsPosLevel () |
| Get the number of coordinates at the position level. | |
| virtual unsigned int | GetNumCoordsVelLevel () |
| Get the number of coordinates at the velocity level. | |
| 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. | |
| 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. | |
| virtual void | IntStateGatherAcceleration (const unsigned int off_a, ChStateDelta &a) |
| From item's state acceleration to global acceleration vector. | |
| virtual void | IntStateScatterAcceleration (const unsigned int off_a, const ChStateDelta &a) |
| From global acceleration vector to item's state acceleration. | |
| 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. | |
| 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. | |
| virtual void | IntLoadResidual_F (const unsigned int off, ChVectorDynamic<> &R, const double c) |
| Takes the F force term, scale and adds to R at given offset: R += c*F. | |
| 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. | |
| 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. | |
| virtual void | IntLoadConstraint_Ct (const unsigned int off, ChVectorDynamic<> &Qc, const double c) |
| Takes the term Ct, scale and adds to Qc at given offset: Qc += c*Ct. | |
| 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. | |
| 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. | |
| virtual void | VariablesFbIncrementMq () |
| Adds M*q (masses multiplied current 'qb') to Fb, ex. | |
| virtual void | VariablesQbSetSpeed (double step=0) |
| Fetches the item speed (ex. | |
| virtual void | VariablesQbIncrementPosition (double step) |
| Increment item positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor. | |
| 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. | |
| virtual void | ConstraintsFbLoadForces (double factor=1) |
| Adds the current link-forces, if any, (caused by springs, etc.) to the 'fb' vectors of the ChVariables referenced by encapsulated ChConstraints. | |
Public Member Functions inherited from chrono::ChObj | |
| ChObj (const ChObj &other) | |
| int | GetIdentifier () const |
| Get the unique integer identifier of this object. | |
| void | SetTag (int tag) |
| Set an object integer tag (default: -1). | |
| 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::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
◆ ArchiveIn()
|
overridevirtual |
Method to allow deserialization of transient data from archives.
Reimplemented from chrono::ChPhysicsItem.
◆ ArchiveOut()
|
overridevirtual |
Method to allow serialization of transient data to archives.
Reimplemented from chrono::ChPhysicsItem.
◆ Clone()
|
inlineoverridevirtual |
"Virtual" copy constructor (covariant return type).
Reimplemented from chrono::ChPhysicsItem.
◆ GetShaftDirection1()
|
inline |
Get the direction of the shaft 1 (input) respect to 3D body.
Return as a normalized vector expressed in the coordinates of the body.
◆ GetShaftDirection2()
|
inline |
Get the direction of the shaft 2 (input) respect to 3D body.
Return as a normalized vector expressed in the coordinates of the body.
◆ GetTorqueReactionOnBody()
|
inline |
Get the reaction torque considered as applied to the body.
(the truss of the gearbox), expressed in local body coordinates.
◆ Initialize()
|
virtual |
Initialize this gear coupling, given two shafts to join, and the 3D body that acts as a truss.
Shafts directions are considered in local body coordinates. Both shafts and the body must belong to the same ChSystem.
- Parameters
-
shaft_1 first (input) shaft to join shaft_2 second (output) shaft to join truss truss body (also carrier, if rotating as in planetary gearboxes) dir_1 direction of the first shaft on the gearbox truss dir_2 direction of the second shaft on the gearbox truss
◆ SetShaftDirection1()
|
inline |
Set the direction of shaft 1 (input) respect to 3D body.
Set as a normalized vector expressed in the coordinates of the body. The shaft applies only torque, about this axis.
◆ SetShaftDirection2()
|
inline |
Set the direction of shaft 2 (output) respect to 3D body.
Set as a normalized vector expressed in the coordinates of the body. The shaft applies only torque, about this axis.
◆ SetTransmissionRatio()
|
inline |
Set the transmission ratio t, as in w2=t*w1, or t=w2/w1 , or t*w1 - w2 = 0.
For example, t=1 for equal bevel gears, etc.
The documentation for this class was generated from the following files:
- C:/M/B/src/chrono-9.0.1/src/chrono/physics/ChShaftsGearboxAngled.h
- C:/M/B/src/chrono-9.0.1/src/chrono/physics/ChShaftsGearboxAngled.cpp
Public Member Functions inherited from