23 lines
622 B
C++
23 lines
622 B
C++
#pragma once
|
|
|
|
// Crankshaft rotational dynamics. Placeholder physics for now —
|
|
// real combustion/friction torque modeling comes later.
|
|
class Engine {
|
|
public:
|
|
// load_torque_nm is the resistance fed back from the transmission
|
|
// (via the vehicle), opposing crank rotation.
|
|
void step(double dt, double load_torque_nm);
|
|
|
|
double rpm() const;
|
|
double torque_nm() const; // net torque produced this step
|
|
|
|
void reset();
|
|
|
|
private:
|
|
double m_rpm = 0.0;
|
|
double m_torque_nm = 0.0;
|
|
|
|
static constexpr double kIdleRpm = 900.0;
|
|
static constexpr double kCrankInertiaKgm2 = 0.15; // placeholder
|
|
};
|