44 #include "FGThruster.h" 45 #include "FGTransmission.h" 51 #define ID_ROTOR "$Id: FGRotor.h,v 1.17 2015/09/27 10:03:53 bcoconni Exp $" 244 enum eCtrlMapping {eMainCtrl=0, eTailCtrl, eTandemCtrl};
265 double GetRPM(
void)
const {
return RPM; }
266 void SetRPM(
double rpm) { RPM = rpm; }
270 void SetEngineRPM(
double rpm) {EngineRPM = rpm;}
277 double GetA0(
void)
const {
return a0; }
279 double GetA1(
void)
const {
return a1s; }
281 double GetB1(
void)
const {
return b1s; }
286 double GetMu(
void)
const {
return mu; }
288 double GetNu(
void)
const {
return nu; }
290 double GetVi(
void)
const {
return v_induced; }
292 double GetCT(
void)
const {
return C_T; }
299 double GetPhiDW(
void)
const {
return phi_downwash; }
321 std::string GetThrusterLabels(
int id,
const std::string& delimeter);
322 std::string GetThrusterValues(
int id,
const std::string& delimeter);
327 double ConfigValueConv(
Element* e,
const std::string& ename,
double default_val=0.0,
328 const std::string& unit =
"",
bool tell=
false);
330 double ConfigValue(
Element* e,
const std::string& ename,
double default_val=0.0,
333 double Configure(
Element* rotor_element);
335 void CalcRotorState(
void);
338 void calc_flow_and_thrust(
double theta_0,
double Uw,
double Ww,
double flow_scale = 1.0);
339 void calc_coning_angle(
double theta_0);
340 void calc_flapping_angles(
double theta_0,
const FGColumnVector3 &pqr_fus_w);
341 void calc_drag_and_side_forces(
double theta_0);
342 void calc_torque(
double theta_0);
343 void calc_downwash_angles();
347 double a_ic = 0.0 ,
double b_ic = 0.0 );
354 void Debug(
int from);
372 FGPropertyNode_ptr ExtRPMsource;
373 double SourceGearRatio;
377 double LiftCurveSlope;
380 double BladeFlappingMoment;
381 double BladeMassMoment;
387 double GroundEffectExp;
388 double GroundEffectShift;
389 double GroundEffectScaleNorm;
392 double LockNumberByRho;
409 double a_1, b_1, a_dw;
411 double H_drag, J_side;
420 double theta_downwash;
424 eCtrlMapping ControlMap;
425 double CollectiveCtrl;
427 double LongitudinalCtrl;
432 double MaxBrakePower;
double GetGroundEffectScaleNorm(void) const
Retrieves the ground effect scaling factor.
double Calculate(double EnginePower)
Returns the scalar thrust of the rotor, and adjusts the RPM value.
double GetThetaDW(void) const
Downwash angle - positive values point forward (given a horizontal spinning rotor) ...
~FGRotor()
Destructor for FGRotor.
double GetVi(void) const
Retrieves the induced velocity.
void SetLateralCtrl(double c)
Sets the lateral control input in radians.
double GetThrust(void) const
Retrieves the thrust of the rotor.
void SetLongitudinalCtrl(double c)
Sets the longitudinal control input in radians.
double GetCT(void) const
Retrieves the thrust coefficient.
Utility class that handles power transmission in conjunction with FGRotor.
Base class for specific thrusting devices such as propellers, nozzles, etc.
Models a helicopter rotor.
double GetRPM(void) const
Retrieves the RPMs of the rotor.
double GetA1(void) const
Retrieves the longitudinal flapping angle with respect to the rotor shaft.
double GetEngineRPM(void) const
Retrieves the RPMs of the Engine, as seen from this rotor.
void SetCollectiveCtrl(double c)
Sets the collective control input in radians.
First order, (low pass / lag) filter.
double GetLongitudinalCtrl(void) const
Retrieves the longitudinal control input in radians.
double GetPhiDW(void) const
Downwash angle - positive values point leftward (given a horizontal spinning rotor) ...
void SetGroundEffectScaleNorm(double g)
Sets the ground effect scaling factor.
double GetCollectiveCtrl(void) const
Retrieves the collective control input in radians.
double GetNu(void) const
Retrieves the induced inflow ratio.
This class implements a 3 element column vector.
double GetA0(void) const
Retrieves the rotor's coning angle.
double GetGearRatio(void)
Tells the rotor's gear ratio, usually the engine asks for this.
double GetLambda(void) const
Retrieves the inflow ratio.
double GetLateralCtrl(void) const
Retrieves the lateral control input in radians.
FGRotor(FGFDMExec *exec, Element *rotor_element, int num)
Constructor for FGRotor.
double GetB1(void) const
Retrieves the lateral flapping angle with respect to the rotor shaft.
double GetTorque(void) const
Retrieves the torque.
double GetPowerRequired(void) const
Returns the power required by the rotor.
Handles matrix math operations.
Encapsulates the JSBSim simulation executive.
double GetMu(void) const
Retrieves the tip-speed (aka advance) ratio.