JSBSim Thrusters: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
Line 122: Line 122:
|-
|-
|ixx
|ixx
|Propeller rotational inertia. (Note: This appears to be in metric units, kg * meters^2, for a thin rod of mass m (kg) and diameter D (meters) spinning about its center, formula is m*D^2/12. [http://en.wikipedia.org/wiki/List_of_moments_of_inertia Moments of inertia reference page])
|Propeller rotational inertia. (Note: This appears to be in metric units, kg * meters^2, for a thin rod of mass m (kg) and diameter D (meters) spinning about its center, formula is m*D^2/12. See the [http://en.wikipedia.org/wiki/List_of_moments_of_inertia Moments of inertia reference page] and [http://www.engineeringtoolbox.com/moment-inertia-torque-d_913.html list of conversion factors for different units for moment of inertia].)
|-
|-
|diameter
|diameter

Revision as of 17:04, 1 November 2011

JSBSim uses thruster models to convert engine power into aerodynamic forces. The following table shows which engine-thruster combinations work.

Direct Nozzle Propeller Rotor
Electric
Piston
Rocket
Turbine
TurboProp

FGDirect

Thrust is computed directly by the engine, the direct thruster file is a stub. Currently only the FGTurbine engine uses this thruster.

Configuration File Format

This is the complete configuration file. Copy and paste into your 'direct.xml' file.

<?xml version="1.0"?> 
<direct name="Direct">
</direct>

Notes

  • The direct thruster creates a property called propulsion/engine[#]/reverser-angle-rad
  • "Reverser angle" as used here is a way to manipulate the thrust vector, along the thrust axis ONLY, during run time. This should not be confused with a thrust vectoring nozzle. The angle is defined in radians, and is used thus: Final_thrust = cosine( reverser_angle ) * unmodified_thrust. Therefore a reverser angle of 0 results in no change, and a reverser angle of 3.14 (pi) results in a completely reversed thrust vector. An angle of 1.57 (pi/2) results in no thrust at all

FGNozzle

FGNozzle is for the FGRocket engine.

Configuration File Format

<?xml version="1.0"?> 
<nozzle name="{string}">
  <area unit="{FT2 | M2 | IN2}"> {number}  </area>
</nozzle>

Parameter definitions

area Nozzle area at the exit plane.

Notes

  • All parameters MUST be specified.

FGPropeller

FGPropeller models a propeller given the tabular data for Ct and Cp, indexed by the advance ratio "J".

Configuration File Format

<!-- Sense goes in the parent tag -->
<sense> {1 | -1} </sense> 
<?xml version="1.0"?> 
<propeller name="{string}">
  <ixx> {number} </ixx>
  <diameter unit="IN"> {number} </diameter>
  <numblades> {number} </numblades>
  <gearratio> {number} </gearratio>
  <minpitch> {number} </minpitch>
  <maxpitch> {number} </maxpitch>
  <minrpm> {number} </minrpm>
  <maxrpm> {number} </maxrpm>
  <constspeed> {number} </constspeed>
  <reversepitch> {number} </reversepitch>
  <p_factor> {number} </p_factor>
  <ct_factor> {number} </ct_factor>
  <cp_factor> {number} </cp_factor>

  <table name="C_THRUST" type="internal">
    <tableData>
      {numbers}
    </tableData>
  </table>

  <table name="C_POWER" type="internal">
    <tableData>
      {numbers}
    </tableData>
  </table>

  <table name="CT_MACH" type="internal">
    <tableData>
      {numbers}
    </tableData>
  </table>

  <table name="CP_MACH" type="internal">
    <tableData>
      {numbers}
    </tableData>
  </table>


</propeller>

Parameter definitions

ixx Propeller rotational inertia. (Note: This appears to be in metric units, kg * meters^2, for a thin rod of mass m (kg) and diameter D (meters) spinning about its center, formula is m*D^2/12. See the Moments of inertia reference page and list of conversion factors for different units for moment of inertia.)
diameter Propeller disk diameter.
numblades Number of blades.
gearratio Ratio of (engine rpm) / (prop rpm).
minpitch Minimum blade pitch angle.
maxpitch Maximum blade pitch angle.
minrpm Minimum rpm target for constant speed propeller.
maxrpm Maximum rpm target for constant speed propeller.
constspeed 1 = constant speed mode, 0 = manual pitch mode.
reversepitch Blade pitch angle for reverse.
sense Direction of rotation (1=clockwise as viewed from cockpit, -1=anti-clockwise as viewed from cockpit). Sense is specified in the parent tag of the propeller.
p_factor P factor.
ct_factor A multiplier for the coefficients of thrust.
cp_factor A multiplier for the coefficients of power.

Notes

  • Two tables are needed. One for coefficient of thrust (Ct) and one for coefficient of power (Cp).
  • Two tables are optional. They apply a factor to Ct and Cp based on the helical tip Mach.
  • Several references were helpful, here:
    • Barnes W. McCormick, "Aerodynamics, Aeronautics, and Flight Mechanics", Wiley & Sons, 1979 ISBN 0-471-03032-5
    • Edwin Hartman, David Biermann, "The Aerodynamic Characteristics of Full Scale Propellers Having 2, 3, and 4 Blades of Clark Y and R.A.F. 6 Airfoil Sections", NACA Report TN-640, 1938 (?)
    • Various NACA Technical Notes and Reports

FGRotor

FGRotor moodels a helicopter rotor.

Configuration File Format

<!-- Sense goes in the parent tag -->
<sense> {1 | 0 | -1} </sense>
<?xml version="1.0"?> 
<rotor name="{string}">
  <diameter unit="{LENGTH}"> {number} </diameter>
  <numblades> {number} </numblades>
  <gearratio> {number} </gearratio>
  <nominalrpm> {number} </nominalrpm>
  <minrpm> {number} </minrpm>
  <maxrpm> {number} </maxrpm> 
  <chord unit="{LENGTH}"> {number} </chord>
  <liftcurveslope Xunit="1/RAD"> {number} </liftcurveslope>
  <twist unit="{ANGLE}"> {number} </twist>
  <hingeoffset unit="{LENGTH}"> {number} </hingeoffset>
  <flappingmoment unit="{MOMENT}"> {number} </flappingmoment>
  <massmoment Xunit="SLUG*FT"> {number} </massmoment>
  <polarmoment unit="{MOMENT}"> {number} </polarmoment>
  <inflowlag> {number} </inflowlag>
  <tiplossfactor> {number} </tiplossfactor>
  <maxbrakepower unit="{POWER}"> {number} </maxbrakepower>

  <controlmap> {MAIN|TAIL|TANDEM} </controlmap>
  <ExternalRPM> {number} </ExternalRPM>

  <groundeffectexp> {number} </groundeffectexp>
  <groundeffectshift unit="{LENGTH}"> {number} </groundeffectshift>

  <freewheelthresh> {number} </freewheelthresh>
</rotor>
  • LENGTH means any of the supported units, same for ANGLE and MOMENT.X unit-attributes are a hint for currently unsupported units, so values must be provided accordingly.

Parameter definitions

diameter Rotor disk diameter (2x R).
numblades Number of blades (b).
gearratio Ratio of (engine rpm) / (rotor rpm), usually > 1.
nominalrpm RPM at which the rotor usally operates.
minrpm Lowest RPM used in the model, optional and defaults to 1.
maxrpm Largest RPM used in the model, optional and defaults to 2 x nominalrpm.
chord Blade chord, (c).
liftcurveslope Slope of curve of section lift against section angle of attack, per rad (a).
twist Blade twist from root to tip, (theta_1).
hingeoffset Rotor flapping-hinge offset (e).
flappingmoment Flapping moment of inertia (I_b).
massmoment Blade mass moment. Mass of a single blade times the blade's cg-distance from the hub, optional.
polarmoment Moment of inertia for the whole rotor disk, optional.
inflowlag Rotor inflow time constant, sec. Smaller values yield to quicker responses (typical values for main rotor: 0.1 - 0.2 s).
tiplossfactor Tip-loss factor. The Blade fraction that produces lift. Value usually ranges between 0.95 - 1.0, optional (B).
maxbrakepower Rotor brake, 20-30 hp should work for a mid size helicopter.
controlmap Defines the control inputs used (see notes).
ExternalRPM Links the rotor to another rotor, or an user controllable property.

Experimental properties

groundeffectexp Exponent for ground effect approximation. Values usually range from 0.04 for large rotors to 0.1 for smaller ones. As a rule of thumb the effect vanishes at a height 2-3 times the rotor diameter. formula used: exp ( - groundeffectexp * (height+groundeffectshift) ) Omitting or setting to 0.0 disables the effect calculation.
groundeffectshift Further adjustment of ground effect, approx. hub height or slightly above.
freewheelthresh Ratio of thruster power to engine power. The FWU will release when above the threshold. The value shouldn't be too close to 1.0, 1.5 seems ok. 0 disables this feature, which is also the default.

Notes

Controls

  • The behavior of the rotor is controlled/influenced by following inputs.
    • The power provided by the engine. This is handled by the regular engine controls.
    • The collective control input. This is read from the fdm property propulsion/engine[x]/collective-ctrl-rad. See below for tail rotor
    • The lateral cyclic input. Read from propulsion/engine[x]/lateral-ctrl-rad.
    • The longitudinal cyclic input. Read from propulsion/engine[x]/longitudinal-ctrl-rad.
    • The tail collective (aka antitorque, aka pedal) control input. Read from propulsion/engine[x]/antitorque-ctrl-rad or propulsion/engine[x]/tail-collective-ctrl-rad.

Tail/tandem rotor

   Providing <ExternalRPM> 0 </ExternalRPM> the tail rotor's RPM
   is linked to to the main (=first, =0) rotor, and specifying
   <controlmap> TAIL </controlmap> tells this rotor to read the
   collective input from propulsion/engine[1]/antitorque-ctrl-rad
   (The TAIL-map ignores lateral and longitudinal input). The rotor needs to be 
   attached to a dummy engine, e.g. an 1HP electrical engine.
   A tandem rotor is setup analogous.

Sense

   The 'sense' parameter from the thruster is interpreted as follows, sense=1 means
   counter clockwise rotation of the main rotor, as viewed from above. This is as a far
   as I know more popular than clockwise rotation, which is defined by setting sense to
   -1. Concerning coaxial designs - by setting 'sense' to zero, a Kamov-style rotor is
   modeled (i.e. the rotor produces no torque).

Engine issues

   In order to keep the rotor speed constant, use of a RPM-Governor system is 
   encouraged (see examples).

Development hints

   Setting <ExternalRPM> -1 </ExternalRPM> the rotor's RPM is controlled  by
   the propulsion/engine[x]/x-rpm-dict property. This feature can be useful
   when developing a FDM.

References:

SH79 Shaugnessy, J. D., Deaux, Thomas N., and Yenni, Kenneth R., "Development and Validation of a Piloted Simulation of a Helicopter and External Sling Load", NASA TP-1285, 1979.
BA41 Bailey,F.J.,Jr., "A Simplified Theoretical Method of Determining the Characteristics of a Lifting Rotor in Forward Flight", NACA Rep.716, 1941
AM50 Amer, Kenneth B.,"Theory of Helicopter Damping in Pitch or Roll and a Comparison With Flight Measurements", NACA TN-2136, 1950.
TA77 Talbot, Peter D., Corliss, Lloyd D., "A Mathematical Force and Moment Model of a UH-1H Helicopter for Flight Dynamics Simulations", NASA TM-73,254, 1977.
GE49 Gessow, Alfred, Amer, Kenneth B. "An Introduction to the Physical Aspects of Helicopter Stability", NACA TN-1982, 1949.