44#include "FGThruster.h"
45#include "FGTransmission.h"
237 enum eCtrlMapping {eMainCtrl=0, eTailCtrl, eTandemCtrl};
261 double GetRPM(
void)
const {
return RPM; }
262 void SetRPM(
double rpm) { RPM = rpm; }
266 void SetEngineRPM(
double rpm) {EngineRPM = rpm;}
273 double GetA0(
void)
const {
return a0; }
275 double GetA1(
void)
const {
return a1s; }
277 double GetB1(
void)
const {
return b1s; }
282 double GetMu(
void)
const {
return mu; }
284 double GetNu(
void)
const {
return nu; }
286 double GetVi(
void)
const {
return v_induced; }
288 double GetCT(
void)
const {
return C_T; }
295 double GetPhiDW(
void)
const {
return phi_downwash; }
317 std::string GetThrusterLabels(
int id,
const std::string& delimeter);
318 std::string GetThrusterValues(
int id,
const std::string& delimeter);
323 double ConfigValueConv(
Element* e,
const std::string& ename,
double default_val=0.0,
324 const std::string& unit =
"",
bool tell=
false);
326 double ConfigValue(
Element* e,
const std::string& ename,
double default_val=0.0,
329 double Configure(
Element* rotor_element);
332 void InitDynamics(
void);
334 void CalcRotorState(
void);
337 void calc_flow_and_thrust(
double theta_0,
double Uw,
double Ww,
double flow_scale = 1.0);
338 void calc_coning_angle(
double theta_0);
339 void calc_flapping_angles(
double theta_0,
const FGColumnVector3 &pqr_fus_w);
340 void calc_drag_and_side_forces(
double theta_0);
341 void calc_torque(
double theta_0);
342 void calc_downwash_angles();
346 double a_ic = 0.0 ,
double b_ic = 0.0 );
352 bool bindmodel(FGPropertyManager* pm);
353 void Debug(
int from);
371 SGPropertyNode_ptr ExtRPMsource;
372 double SourceGearRatio;
376 double LiftCurveSlope;
379 double BladeFlappingMoment;
380 double BladeMassMoment;
386 double GroundEffectExp;
387 double GroundEffectShift;
388 double GroundEffectScaleNorm;
391 double LockNumberByRho;
408 double a_1, b_1, a_dw;
410 double H_drag, J_side;
419 double theta_downwash;
423 eCtrlMapping ControlMap;
424 double CollectiveCtrl;
426 double LongitudinalCtrl;
431 double MaxBrakePower;
This class implements a 3 element column vector.
Encapsulates the JSBSim simulation executive.
Handles matrix math operations.
Models a helicopter rotor.
double GetLambda(void) const
Retrieves the inflow ratio.
double Calculate(double EnginePower)
Returns the scalar thrust of the rotor, and adjusts the RPM value.
double GetB1(void) const
Retrieves the lateral flapping angle with respect to the rotor shaft.
double GetGroundEffectScaleNorm(void) const
Retrieves the ground effect scaling factor.
double GetPowerRequired(void)
Returns the power required by the rotor.
double GetRPM(void) const
Retrieves the RPMs of the rotor.
void ResetToIC(void)
Reset the initial conditions.
~FGRotor()
Destructor for FGRotor.
double GetThrust(void) const
Retrieves the thrust of the rotor.
void SetCollectiveCtrl(double c)
Sets the collective control input in radians.
double GetCollectiveCtrl(void) const
Retrieves the collective control input in radians.
void SetGroundEffectScaleNorm(double g)
Sets the ground effect scaling factor.
double GetLongitudinalCtrl(void) const
Retrieves the longitudinal control input in radians.
void SetLongitudinalCtrl(double c)
Sets the longitudinal control input in radians.
double GetTorque(void) const
Retrieves the torque.
void SetLateralCtrl(double c)
Sets the lateral control input in radians.
double GetMu(void) const
Retrieves the tip-speed (aka advance) ratio.
double GetPhiDW(void) const
Downwash angle - positive values point leftward (given a horizontal spinning rotor)
double GetCT(void) const
Retrieves the thrust coefficient.
double GetEngineRPM(void) const
Retrieves the RPMs of the Engine, as seen from this rotor.
double GetA1(void) const
Retrieves the longitudinal flapping angle with respect to the rotor shaft.
double GetNu(void) const
Retrieves the induced inflow ratio.
double GetThetaDW(void) const
Downwash angle - positive values point forward (given a horizontal spinning rotor)
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 GetVi(void) const
Retrieves the induced velocity.
double GetLateralCtrl(void) const
Retrieves the lateral control input in radians.
Base class for specific thrusting devices such as propellers, nozzles, etc.
Utility class that handles power transmission in conjunction with FGRotor.
Main namespace for the JSBSim Flight Dynamics Model.