AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
TorqueConverter.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16
17#pragma once
18
19#include <agxModel/export.h>
21#include <agxDriveTrain/Gear.h>
22
23namespace agxDriveTrain
24{
33 {
34 public:
41
47
53
59
65 bool setOilDensity(agx::Real oilDensity);
66
72
78 bool setPumpDiameter(agx::Real pumpDiameter);
79
85 void setEfficiencyTable(const agx::RealPairVector& velRatio_efficiency);
86
94 void setGeometryFactorTable(const agx::RealPairVector& velRatio_geometryFactor);
95
100
105
111 void insertEfficiencyLookupValue(agx::Real velocityRatio, agx::Real efficiency);
112
118 void insertGeometryFactorLookupValue(agx::Real velocityRatio, agx::Real geometryFactor);
119
125
131
138 void enableLockUp(bool enable);
139
144 bool getEnableLockUp() const;
145
151
157
160 virtual void initConstraint() override;
162 virtual bool preUpdate(agx::Real timeStep) override;
164 virtual bool store(agxStream::StorageStream& str) const override;
166 virtual bool restore(agxStream::StorageStream& str) override;
169
170 protected:
171 virtual ~TorqueConverter();
172 agxPowerLine::LinearLookupTableRef m_efficiencyTable;
173 agxPowerLine::LinearLookupTableRef m_geometryFactorTable;
174
175 agx::Real m_oilDensity;
176 agx::Real m_diameter;
177 agx::Real m_m0;
178 agx::Real m_pumpTorque;
179 agx::Real m_turbineTorque;
180
181 bool m_lockEnabled;
182 agx::Real m_lockTime;
183 agx::Real m_timeSinceLock;
184 agx::Real m_ratioAtLock;
185
186 private:
187 void calculateInternalTorques(agx::Real inputVel, agx::Real outputVel);
188 void controlLock(agx::Real timeStep);
189
190 };
192}
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
Definition: Serializable.h:207
#define AGXMODEL_EXPORT
A gear is a connector between two rotational units.
Definition: Gear.h:35
A torque converter is a connector, which transfers rotating power with the help of a fluid coupling.
agx::Real getTurbineTorque()
Get the calculated torque output from the turbine side.
void setEfficiencyTable(const agx::RealPairVector &velRatio_efficiency)
Set the values in the efficiency table, will clear the old values from the table.
bool setOilDensity(agx::Real oilDensity)
Set the oil density, which is the liquid that is used to transfer power.
TorqueConverter()
Create the torque converter.
void setGeometryFactorTable(const agx::RealPairVector &velRatio_geometryFactor)
Set the values in the geometry factor table, will clear the old values from the table.
agx::Real getLockUpTime() const
Get how long time, in seconds, it will take the torque converter to lock up.
bool setPumpDiameter(agx::Real pumpDiameter)
Set the pump diameter.
agx::Real getPumpTorque()
Get the calculated pump torque, which is the counter torque on the pump side in the model.
void enableLockUp(bool enable)
Control the lock in the torque converter.
agx::Real getOilDensity() const
Get the value of the oil density, which is the liquid that is used to transfer power.
void clearGeometryFactorTable()
Clear the geometry factor table from all values.
void setLockUpTime(agx::Real time)
Set how long time it should take to lock up the torque converter.
const agxPowerLine::LinearLookupTable * getGeometryFactorTable() const
Get the geometry factor lookup table.
void insertEfficiencyLookupValue(agx::Real velocityRatio, agx::Real efficiency)
Insert a value into the efficiency lookup table.
bool getEnableLockUp() const
Get if the lock is enabled or disabled.
void insertGeometryFactorLookupValue(agx::Real velocityRatio, agx::Real geometryFactor)
Insert a value into the geometry factor lookup table.
void clearEfficiencyTable()
Clear the efficiency table from all values.
agx::Real getPumpDiameter() const
Get the diamerter of the pump.
const agxPowerLine::LinearLookupTable * getEfficiencyTable() const
Get the efficiency lookup table.
Linear interpolation between the inserted variable/value pairs.
Templated vector class.
Definition: agx/Vector.h:53
#define DOXYGEN_END_INTERNAL_BLOCK()
Definition: macros.h:89
#define DOXYGEN_START_INTERNAL_BLOCK()
Definition: macros.h:88
A library of agxPowerLine components designed to model the various parts of a vehicle drive train.
agxPowerLine contains a collection of connected components that transport power across a system.
Definition: MotorUnit.h:24
This namespace contain classes for streaming classes into archives, ASCII, binary for storage (serial...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
double Real
Definition: Real.h:41