]> git.mxchange.org Git - flightgear.git/commitdiff
Sync the JSBSim code with the Jon & Tony's devel version.
authorcurt <curt>
Mon, 24 Jul 2000 17:26:05 +0000 (17:26 +0000)
committercurt <curt>
Mon, 24 Jul 2000 17:26:05 +0000 (17:26 +0000)
Renamed JSBsim -> the official JSBSim.

14 files changed:
src/FDM/JSBSim.cxx
src/FDM/JSBSim.hxx
src/FDM/JSBSim/FGControls.cpp
src/FDM/JSBSim/FGControls.h
src/FDM/JSBSim/FGDefs.h
src/FDM/JSBSim/FGInitialCondition.cpp
src/FDM/JSBSim/FGInitialCondition.h
src/FDM/JSBSim/FGMatrix.cpp
src/FDM/JSBSim/FGPosition.cpp
src/FDM/JSBSim/FGPosition.h
src/FDM/JSBSim/FGTank.cpp
src/FDM/JSBSim/Makefile.am
src/FDM/Makefile.am
src/FDM/flight.cxx

index 25a47a69df43a72ec77d1c7a895cdfd590c24d0a..7216e05945f2a765fa11b6fb93f11a8413f0ed34 100644 (file)
 #include <Controls/controls.hxx>
 #include <Main/options.hxx>
 
-#include <FDM/JSBsim/FGFDMExec.h>
-#include <FDM/JSBsim/FGAircraft.h>
-#include <FDM/JSBsim/FGFCS.h>
-#include <FDM/JSBsim/FGPosition.h>
-#include <FDM/JSBsim/FGRotation.h>
-#include <FDM/JSBsim/FGState.h>
-#include <FDM/JSBsim/FGTranslation.h>
-#include <FDM/JSBsim/FGAuxiliary.h>
-#include <FDM/JSBsim/FGDefs.h>
-#include <FDM/JSBsim/FGInitialCondition.h>
-#include <FDM/JSBsim/FGTrimLong.h>
-#include <FDM/JSBsim/FGAtmosphere.h>
-
-#include "JSBsim.hxx"
+#include <FDM/JSBSim/FGFDMExec.h>
+#include <FDM/JSBSim/FGAircraft.h>
+#include <FDM/JSBSim/FGFCS.h>
+#include <FDM/JSBSim/FGPosition.h>
+#include <FDM/JSBSim/FGRotation.h>
+#include <FDM/JSBSim/FGState.h>
+#include <FDM/JSBSim/FGTranslation.h>
+#include <FDM/JSBSim/FGAuxiliary.h>
+#include <FDM/JSBSim/FGDefs.h>
+#include <FDM/JSBSim/FGInitialCondition.h>
+#include <FDM/JSBSim/FGTrimLong.h>
+#include <FDM/JSBSim/FGAtmosphere.h>
+
+#include "JSBSim.hxx"
 
 /******************************************************************************/
 
@@ -130,6 +130,7 @@ int FGJSBsim::init( double dt ) {
 
   //must check > 0, != 0 will give bad result if --notrim set
   if(current_options.get_trim_mode() > 0) {
+    FDMExec.RunIC(fgic);
     FG_LOG( FG_FLIGHT, FG_INFO, "  Starting trim..." );
     FGTrimLong *fgtrim=new FGTrimLong(&FDMExec,fgic);
     fgtrim->DoTrim();
@@ -137,7 +138,7 @@ int FGJSBsim::init( double dt ) {
     fgtrim->TrimStats();
     fgtrim->ReportState();
 
-    controls.set_elevator_trim(FDMExec.GetFCS()->GetDeCmd());
+    controls.set_elevator_trim(FDMExec.GetFCS()->GetPitchTrimCmd());
     controls.set_throttle(FGControls::ALL_ENGINES,FDMExec.GetFCS()->GetThrottleCmd(0)/100);
     //the trimming routine only knows how to get 1 value for throttle
 
@@ -223,10 +224,10 @@ int FGJSBsim::update( int multiloop ) {
   }
 
   double end_elev = get_Altitude();
-  if ( time_step > 0.0 ) {
+  //if ( time_step > 0.0 ) {
     // feet per second
-    set_Climb_Rate( (end_elev - start_elev) / time_step );
-  }
+  //  set_Climb_Rate( (end_elev - start_elev) / time_step );
+  //}
 
   return 1;
 }
@@ -309,9 +310,8 @@ int FGJSBsim::copy_from_JSBsim() {
   set_cos_lat_geocentric( lat_geoc );
   set_sin_cos_longitude( lon );
   set_sin_cos_latitude( lat_geod );
+  
+  set_Climb_Rate(FDMExec.GetPosition()->Gethdot());
 
   return 1;
 }
-
-/******************************************************************************/
-
index 7b34a1a476ea795eb5a5dcf3b7eec8a8e4bf40e0..7ad6156785a2c05e28895d23a225cbbe5ca9a3a1 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef _JSBSIM_HXX
 #define _JSBSIM_HXX
 
-#include <FDM/JSBsim/FGFDMExec.h>
+#include <FDM/JSBSim/FGFDMExec.h>
 #undef MAX_ENGINES
 
 #include <Aircraft/aircraft.hxx>
index d9031d6a40397d5f0f899637c887fee583e8d15e..b4448af185536e6d18fae0263a31cf1518418743 100644 (file)
@@ -51,8 +51,9 @@ FGControls::~FGControls() {
 
 
 // $Log$
-// Revision 1.13  2000/07/06 19:02:46  curt
-// Updates from Jon's official CVS tree.
+// Revision 1.14  2000/07/24 15:26:06  curt
+// Sync the JSBSim code with the Jon & Tony's devel version.
+// Renamed JSBsim -> the official JSBSim.
 //
 // Revision 1.3  2000/04/26 10:55:57  jsb
 // Made changes as required by Curt to install JSBSim into FGFS
index 3c61c9e6981b6c18cf39b2a19d2661829c9a6c56..fcfaa4a007f71bed7b81036e9a1c468452283523 100644 (file)
@@ -177,8 +177,9 @@ extern FGControls controls;
 
 
 // $Log$
-// Revision 1.12  2000/07/06 19:02:46  curt
-// Updates from Jon's official CVS tree.
+// Revision 1.13  2000/07/24 15:26:06  curt
+// Sync the JSBSim code with the Jon & Tony's devel version.
+// Renamed JSBsim -> the official JSBSim.
 //
 // Revision 1.6  2000/06/03 13:59:52  jsb
 // Changes for compatibility with MSVC
index 6252b0abdbf2bc0edf6d6bec85507695e7c476b2..05b5cc79f777ea13e5309920fad32ecaec422201 100644 (file)
@@ -53,6 +53,7 @@ SENTRY
 #define DEGTORAD        1.745329E-2
 #define KTSTOFPS        1.68781
 #define FPSTOKTS        0.592484
+#define INCHTOFT        0.08333333
 #define NEEDED_CFG_VERSION "1.30"
 
 #define HPTOFTLBSSEC 550
index 056689e66148177c0e69da7a50ddaff635e76836..99988ead6dc14d7066a62345df89647ba0eed012 100644 (file)
@@ -163,13 +163,13 @@ void FGInitialCondition::SetAltitudeFtIC(float tt) {
 
   switch(lastSpeedSet) {
   case setvt:
-    SetVtrueKtsIC(vt);
+    SetVtrueKtsIC(vt*FPSTOKTS);
     break;
   case setvc:
-    SetVcalibratedKtsIC(vc);
+    SetVcalibratedKtsIC(vc*FPSTOKTS);
     break;
   case setve:
-    SetVequivalentKtsIC(ve);
+    SetVequivalentKtsIC(ve*FPSTOKTS);
     break;
   case setmach:
     SetMachIC(mach);
index 37d70449d107a8f7f1ccc900e7dc6108b460de54..6fcd3b9af620d84055f4b6910d4cc6d0c9e4522b 100644 (file)
@@ -63,7 +63,7 @@ INCLUDES
 CLASS DECLARATION
 *******************************************************************************/
 
-typedef enum { none,setvt, setvc, setve, setmach } speedset;
+typedef enum { setvt, setvc, setve, setmach } speedset;
 
 /* USAGE NOTES
    With a valid object of FGFDMExec and an aircraft model loaded
@@ -140,7 +140,8 @@ public:
   inline void SetPitchAngleRadIC(float tt) { theta=tt; alpha=theta-gamma; }
 
   inline void SetBetaDegIC(float tt)       { beta=tt*DEGTORAD; }
-
+  inline void SetBetaRadIC(float tt)       { beta=tt; }
+  
   inline void SetRollAngleDegIC(float tt) { phi=tt*DEGTORAD; }
   inline void SetRollAngleRadIC(float tt) { phi=tt; }
 
index 43caaf056ce8345bb5783d4e2410931addf7bb32..5b4f5da10ba5937b5f0495d92a53517c19144544 100644 (file)
@@ -337,23 +337,31 @@ FGMatrix FGMatrix::operator/(const double scalar)
 {
   FGMatrix Quot(Rows(), Cols());
 
-  for (unsigned int i=1; i<=Rows(); i++) {
-    for (unsigned int j=1; j<=Cols(); j++)  {
-       Quot(i,j) = data[i][j]/scalar;
+  if(scalar != 0) {
+    for (unsigned int i=1; i<=Rows(); i++) {
+      for (unsigned int j=1; j<=Cols(); j++)  {
+         Quot(i,j) = data[i][j]/scalar;
+      }
     }
-  }
-  return Quot;
+    
+  } else
+    cerr << "Attempt to divide by zero in method FGMatrix::operator/(const double scalar), object at " << this << endl; 
+  return Quot;  
 }
 
 /******************************************************************************/
 
 void FGMatrix::operator/=(const double scalar)
 {
-  for (unsigned int i=1; i<=Rows(); i++)  {
-    for (unsigned int j=1; j<=Cols(); j++) {
-      data[i][j]/=scalar;
+  
+  if(scalar != 0) {
+    for (unsigned int i=1; i<=Rows(); i++)  {
+      for (unsigned int j=1; j<=Cols(); j++) {
+        data[i][j]/=scalar;
+      }
     }
-  }
+  } else 
+    cerr << "Attempt to divide by zero in method FGMatrix::operator/=(const double scalar), object " << this << endl; 
 }
 
 /******************************************************************************/
@@ -512,10 +520,16 @@ FGColumnVector FGColumnVector::operator-(const FGColumnVector& V)
 FGColumnVector FGColumnVector::operator/(const double scalar)
 {
   FGColumnVector Quotient(Rows());
+  if(scalar != 0) {
+    
 
-  for (unsigned int i=1; i<=Rows(); i++) Quotient(i) = data[i][1] / scalar;
+    for (unsigned int i=1; i<=Rows(); i++) Quotient(i) = data[i][1] / scalar;
 
+  } else 
+    cerr << "Attempt to divide by zero in method FGColumnVector::operator/(const double scalar), object " << this << endl; 
   return Quotient;
+  
+    
 }
 
 /******************************************************************************/
@@ -554,9 +568,11 @@ FGColumnVector FGColumnVector::Normalize(void)
 {
   double Mag = Magnitude();
 
-  for (unsigned int i=1; i<=Rows(); i++)
-    for (unsigned int j=1; j<=Cols(); j++)
-      data[i][j] = data[i][j]/Mag;
+  if (Mag != 0) {
+    for (unsigned int i=1; i<=Rows(); i++)
+      for (unsigned int j=1; j<=Cols(); j++)
+        data[i][j] = data[i][j]/Mag;
+  }    
 
   return *this;
 }
index b3556ac32d6676fcccc2d833485eacdffbf48716..aeb73cd95681b57ebf2c53d318200468236dd8d3 100644 (file)
@@ -169,5 +169,17 @@ void FGPosition::GetState(void) {
   vVel      = State->GetTb2l()*vUVW;
 
   b = Aircraft->GetWingSpan();
+  
 }
 
+void FGPosition::Seth(double tt) { 
+ h=tt;
+ Radius    = h + SeaLevelRadius;
+ DistanceAGL = Radius - RunwayRadius;   // Geocentric 
+}  
+
+void FGPosition::SetDistanceAGL(double tt) {
+  DistanceAGL=tt;
+  Radius = RunwayRadius + DistanceAGL;
+  h = Radius - SeaLevelRadius;
+}  
index 97c4a7d668824c6703d89d1ad41cad9352824c27..423889bc35ab5ea29fa3f1360f176ead854d71eb 100644 (file)
@@ -88,10 +88,10 @@ public:
   void SetvVel(const FGColumnVector& v) { vVel = v; }
   void SetLatitude(float tt) { Latitude = tt; }
   void SetLongitude(double tt) { Longitude = tt; }
-  void Seth(double tt) { h = tt; }
+  void Seth(double tt);
   void SetRunwayRadius(double tt) { RunwayRadius = tt; }
   void SetSeaLevelRadius(double tt) { SeaLevelRadius = tt;}
-  void SetDistanceAGL(double tt) { DistanceAGL = tt; }
+  void SetDistanceAGL(double tt);
 
   bool Run(void);
 };
index c08ff94e1ffed005dcd87d3ae1c157ad302e0a83..22a6113441481c2a57ffd6617f9f49fbd8eefc8d 100644 (file)
@@ -58,7 +58,12 @@ FGTank::FGTank(FGConfigFile* AC_cfg)
   *AC_cfg >> Capacity;                          // pounds (amount it can hold)
   *AC_cfg >> Contents;                          // pounds  (amount it is holding)
   Selected = true;
-  PctFull = 100.0*Contents/Capacity;            // percent full; 0 to 100.0
+  if(Capacity != 0)
+    PctFull = 100.0*Contents/Capacity;            // percent full; 0 to 100.0
+  else {
+    Contents=0;
+    PctFull=0;
+  }     
 }
 
 
index 154a926132cc4fae1dd26e8b37b9cffad45e5914..5e89b59a335e6e4c8a15bc1fa91d3c4c83d6241c 100644 (file)
@@ -2,9 +2,9 @@ SUBDIRS = filtersjb
 
 EXTRA_DIST = JSBSim.cpp Makefile.solo
 
-noinst_LIBRARIES = libJSBsim.a
+noinst_LIBRARIES = libJSBSim.a
 
-libJSBsim_a_SOURCES = FGAircraft.cpp FGAircraft.h \
+libJSBSim_a_SOURCES = FGAircraft.cpp FGAircraft.h \
        FGAtmosphere.cpp FGAtmosphere.h \
        FGAuxiliary.cpp FGAuxiliary.h \
        FGCoefficient.cpp FGCoefficient.h \
@@ -32,7 +32,7 @@ noinst_PROGRAMS = testJSBsim
 
 testJSBsim_SOURCES = JSBSim.cpp
 
-testJSBsim_LDADD = libJSBsim.a filtersjb/libfiltersjb.a
+testJSBsim_LDADD = libJSBSim.a filtersjb/libfiltersjb.a
 
 INCLUDES += -I$(top_builddir)/src
 
index 121836bbe688a3154caaec01d02b85684d6afbe4..146b5017c8bcf76edfa55ffb6aad90025671b163 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIRS        = Balloon JSBsim LaRCsim UIUCModel
+SUBDIRS        = Balloon JSBSim LaRCsim UIUCModel
 
 noinst_LIBRARIES = libFlight.a
 
@@ -6,7 +6,7 @@ libFlight_a_SOURCES = \
        Balloon.cxx Balloon.h \
        External.cxx External.hxx \
        flight.cxx flight.hxx \
-       JSBsim.cxx JSBsim.hxx \
+       JSBSim.cxx JSBSim.hxx \
        LaRCsim.cxx LaRCsim.hxx \
        MagicCarpet.cxx MagicCarpet.hxx
 
index a0a0baedd7b224a3b70d67ea3d8a55bce103fb2f..156e27bebd4b002ad8728029f289ad9386f79746 100644 (file)
@@ -33,7 +33,7 @@
 
 #include "External.hxx"
 #include "flight.hxx"
-#include "JSBsim.hxx"
+#include "JSBSim.hxx"
 #include "LaRCsim.hxx"
 #include "Balloon.h"