1 // =============================================================================
2 // PROJECT CHRONO - http://projectchrono.org
3 //
4 // Copyright (c) 2014 projectchrono.org
5 // All rights reserved.
6 //
7 // Use of this source code is governed by a BSD-style license that can be found
8 // in the LICENSE file at the top level of the distribution and at
9 // http://projectchrono.org/license-chrono.txt.
10 //
11 // =============================================================================
12 // Authors: Radu Serban
13 // =============================================================================
14 //
15 // Simple CVT powertrain model for the M113 vehicle.
16 // - simple speed-torque curve
17 // - no torque converter
18 // - no transmission box
19 //
20 // =============================================================================
21 
22 #ifndef M113_SIMPLECVTPOWERTRAIN_H
23 #define M113_SIMPLECVTPOWERTRAIN_H
24 
25 #include "chrono_vehicle/ChVehicle.h"
26 #include "chrono_vehicle/powertrain/ChSimpleCVTPowertrain.h"
27 
28 #include "chrono_models/ChApiModels.h"
29 
30 namespace chrono {
31 namespace vehicle {
32 namespace m113 {
33 
34 /// @addtogroup vehicle_models_m113
35 /// @{
36 
37 /// Simple CVT powertrain model for the M113 vehicle (purely kinematic).
38 class CH_MODELS_API M113_SimpleCVTPowertrain : public ChSimpleCVTPowertrain {
39   public:
40     M113_SimpleCVTPowertrain(const std::string& name);
41 
~M113_SimpleCVTPowertrain()42     ~M113_SimpleCVTPowertrain() {}
43 
44     virtual void SetGearRatios(std::vector<double>& fwd, double& rev) override;
GetMaxTorque()45     virtual double GetMaxTorque() const override { return m_max_torque; }
GetMaxPower()46     virtual double GetMaxPower() const override { return m_max_power; }
GetMaxSpeed()47     virtual double GetMaxSpeed() const override { return m_max_speed; }
48 
49   private:
50     static const double m_fwd_gear_ratio;  // forward gear ratio (single gear transmission)
51     static const double m_rev_gear_ratio;  // reverse gear ratio
52     static const double m_max_torque;      // maximum motor torque
53     static const double m_max_power;       // maximum motor power
54     static const double m_max_speed;       // maximum engine speed
55 };
56 
57 /// @} vehicle_models_m113
58 
59 }  // end namespace m113
60 }  // end namespace vehicle
61 }  // end namespace chrono
62 
63 #endif
64