]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGRocket.h
Updated to match changes in radiostack.[ch]xx
[flightgear.git] / src / FDM / JSBSim / FGRocket.h
index 436971ea92ec6d282acc806ed129d035dc74abbc..58142fb494e4a00c07477b4b24e17feffe25ac58 100644 (file)
@@ -27,10 +27,6 @@ HISTORY
 --------------------------------------------------------------------------------
 09/12/2000  JSB  Created
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-COMMENTS, REFERENCES,  and NOTES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 SENTRY
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
@@ -43,8 +39,66 @@ INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 #include "FGEngine.h"
+#include "FGConfigFile.h"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+DEFINITIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#define ID_ROCKET "$Header$"
+#define ID_ROCKET "$Id$"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+FORWARD DECLARATIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+CLASS DOCUMENTATION
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+/** Models a generic rocket engine.
+    The rocket engine is modeled given the following parameters:
+    <ul>
+        <li>Chamber pressure (in psf)</li>
+        <li>Specific heat ratio (usually about 1.2 for hydrocarbon fuel and LOX)</li>
+        <li>Propulsive efficiency (in percent, from 0 to 1.0)</li>
+        <li>Variance (in percent, from 0 to 1.0, nominally 0.05)</li>
+    </ul>
+    Additionally, the following control inputs, operating characteristics, and
+    location are required, as with all other engine types:</font>
+    <ul>
+        <li>Throttle setting (in percent, from 0 to 1.0)</font></li>
+        <li>Maximum allowable throttle setting</li>
+        <li>Minimum working throttle setting</li>
+        <li>Sea level fuel flow at maximum thrust</li>
+        <li>Sea level oxidizer flow at maximum thrust</li>
+        <li>X, Y, Z location in structural coordinate frame</li>
+        <li>Pitch and Yaw</li>
+    </ul>
+    The nozzle exit pressure (p2) is returned via a
+    call to FGNozzle::GetPowerRequired(). This exit pressure is used,
+    along with chamber pressure and specific heat ratio, to get the
+    thrust coefficient for the throttle setting. This thrust
+    coefficient is multiplied by the chamber pressure and then passed
+    to the nozzle Calculate() routine, where the thrust force is
+    determined.
+
+    @author Jon S. Berndt
+    @version $Id$
+    @see FGNozzle
+    @see FGThruster
+    @see FGForce
+    @see FGEngine
+    @see FGPropulsion
+    @see FGTank
+    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGRocket.h?rev=HEAD&content-type=text/vnd.viewcvs-markup">
+         Header File </a>
+    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGRocket.cpp?rev=HEAD&content-type=text/vnd.viewcvs-markup">
+         Source File </a>
+*/
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 CLASS DECLARATION
@@ -52,12 +106,36 @@ CLASS DECLARATION
 
 class FGRocket : public FGEngine
 {
-
 public:
-  FGRocket(FGFDMExec*, string, string, int);
+  /** Constructor.
+      @param exec pointer to JSBSim parent object, the FDM Executive.
+      @param Eng_cfg pointer to the config file object. */
+  FGRocket(FGFDMExec* exec, FGConfigFile* Eng_cfg);
+
+  /** Destructor */
   ~FGRocket();
 
+  /** Determines the thrust coefficient.
+      This routine takes the nozzle exit pressure and calculates the thrust
+      coefficient times the chamber pressure.
+      @param pe nozzle exit pressure
+      @return thrust coefficient times chamber pressure */
+  double Calculate(double pe);
+  
+  /** Gets the chamber pressure.
+      @return chamber pressure in psf. */
+  double GetChamberPressure(void) {return PC;}
+
+private:
+  double SHR;
+  double maxPC;
+  double propEff;
+  double kFactor;
+  double Variance;
+  double PC;
+  void Debug(int from);
 };
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 #endif
+