1
0
Fork 0

Sync the JSBSim code with the Jon & Tony's devel version.

Renamed JSBsim -> the official JSBSim.
This commit is contained in:
curt 2000-07-24 17:26:05 +00:00
parent 941f27c9a0
commit 64d6f149e0
14 changed files with 89 additions and 52 deletions

View file

@ -40,20 +40,20 @@
#include <Controls/controls.hxx> #include <Controls/controls.hxx>
#include <Main/options.hxx> #include <Main/options.hxx>
#include <FDM/JSBsim/FGFDMExec.h> #include <FDM/JSBSim/FGFDMExec.h>
#include <FDM/JSBsim/FGAircraft.h> #include <FDM/JSBSim/FGAircraft.h>
#include <FDM/JSBsim/FGFCS.h> #include <FDM/JSBSim/FGFCS.h>
#include <FDM/JSBsim/FGPosition.h> #include <FDM/JSBSim/FGPosition.h>
#include <FDM/JSBsim/FGRotation.h> #include <FDM/JSBSim/FGRotation.h>
#include <FDM/JSBsim/FGState.h> #include <FDM/JSBSim/FGState.h>
#include <FDM/JSBsim/FGTranslation.h> #include <FDM/JSBSim/FGTranslation.h>
#include <FDM/JSBsim/FGAuxiliary.h> #include <FDM/JSBSim/FGAuxiliary.h>
#include <FDM/JSBsim/FGDefs.h> #include <FDM/JSBSim/FGDefs.h>
#include <FDM/JSBsim/FGInitialCondition.h> #include <FDM/JSBSim/FGInitialCondition.h>
#include <FDM/JSBsim/FGTrimLong.h> #include <FDM/JSBSim/FGTrimLong.h>
#include <FDM/JSBsim/FGAtmosphere.h> #include <FDM/JSBSim/FGAtmosphere.h>
#include "JSBsim.hxx" #include "JSBSim.hxx"
/******************************************************************************/ /******************************************************************************/
@ -130,6 +130,7 @@ int FGJSBsim::init( double dt ) {
//must check > 0, != 0 will give bad result if --notrim set //must check > 0, != 0 will give bad result if --notrim set
if(current_options.get_trim_mode() > 0) { if(current_options.get_trim_mode() > 0) {
FDMExec.RunIC(fgic);
FG_LOG( FG_FLIGHT, FG_INFO, " Starting trim..." ); FG_LOG( FG_FLIGHT, FG_INFO, " Starting trim..." );
FGTrimLong *fgtrim=new FGTrimLong(&FDMExec,fgic); FGTrimLong *fgtrim=new FGTrimLong(&FDMExec,fgic);
fgtrim->DoTrim(); fgtrim->DoTrim();
@ -137,7 +138,7 @@ int FGJSBsim::init( double dt ) {
fgtrim->TrimStats(); fgtrim->TrimStats();
fgtrim->ReportState(); 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); controls.set_throttle(FGControls::ALL_ENGINES,FDMExec.GetFCS()->GetThrottleCmd(0)/100);
//the trimming routine only knows how to get 1 value for throttle //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(); double end_elev = get_Altitude();
if ( time_step > 0.0 ) { //if ( time_step > 0.0 ) {
// feet per second // feet per second
set_Climb_Rate( (end_elev - start_elev) / time_step ); // set_Climb_Rate( (end_elev - start_elev) / time_step );
} //}
return 1; return 1;
} }
@ -310,8 +311,7 @@ int FGJSBsim::copy_from_JSBsim() {
set_sin_cos_longitude( lon ); set_sin_cos_longitude( lon );
set_sin_cos_latitude( lat_geod ); set_sin_cos_latitude( lat_geod );
set_Climb_Rate(FDMExec.GetPosition()->Gethdot());
return 1; return 1;
} }
/******************************************************************************/

View file

@ -24,7 +24,7 @@
#ifndef _JSBSIM_HXX #ifndef _JSBSIM_HXX
#define _JSBSIM_HXX #define _JSBSIM_HXX
#include <FDM/JSBsim/FGFDMExec.h> #include <FDM/JSBSim/FGFDMExec.h>
#undef MAX_ENGINES #undef MAX_ENGINES
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>

View file

@ -51,8 +51,9 @@ FGControls::~FGControls() {
// $Log$ // $Log$
// Revision 1.13 2000/07/06 19:02:46 curt // Revision 1.14 2000/07/24 15:26:06 curt
// Updates from Jon's official CVS tree. // 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 // Revision 1.3 2000/04/26 10:55:57 jsb
// Made changes as required by Curt to install JSBSim into FGFS // Made changes as required by Curt to install JSBSim into FGFS

View file

@ -177,8 +177,9 @@ extern FGControls controls;
// $Log$ // $Log$
// Revision 1.12 2000/07/06 19:02:46 curt // Revision 1.13 2000/07/24 15:26:06 curt
// Updates from Jon's official CVS tree. // 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 // Revision 1.6 2000/06/03 13:59:52 jsb
// Changes for compatibility with MSVC // Changes for compatibility with MSVC

View file

@ -53,6 +53,7 @@ SENTRY
#define DEGTORAD 1.745329E-2 #define DEGTORAD 1.745329E-2
#define KTSTOFPS 1.68781 #define KTSTOFPS 1.68781
#define FPSTOKTS 0.592484 #define FPSTOKTS 0.592484
#define INCHTOFT 0.08333333
#define NEEDED_CFG_VERSION "1.30" #define NEEDED_CFG_VERSION "1.30"
#define HPTOFTLBSSEC 550 #define HPTOFTLBSSEC 550

View file

@ -163,13 +163,13 @@ void FGInitialCondition::SetAltitudeFtIC(float tt) {
switch(lastSpeedSet) { switch(lastSpeedSet) {
case setvt: case setvt:
SetVtrueKtsIC(vt); SetVtrueKtsIC(vt*FPSTOKTS);
break; break;
case setvc: case setvc:
SetVcalibratedKtsIC(vc); SetVcalibratedKtsIC(vc*FPSTOKTS);
break; break;
case setve: case setve:
SetVequivalentKtsIC(ve); SetVequivalentKtsIC(ve*FPSTOKTS);
break; break;
case setmach: case setmach:
SetMachIC(mach); SetMachIC(mach);

View file

@ -63,7 +63,7 @@ INCLUDES
CLASS DECLARATION CLASS DECLARATION
*******************************************************************************/ *******************************************************************************/
typedef enum { none,setvt, setvc, setve, setmach } speedset; typedef enum { setvt, setvc, setve, setmach } speedset;
/* USAGE NOTES /* USAGE NOTES
With a valid object of FGFDMExec and an aircraft model loaded With a valid object of FGFDMExec and an aircraft model loaded
@ -140,6 +140,7 @@ public:
inline void SetPitchAngleRadIC(float tt) { theta=tt; alpha=theta-gamma; } inline void SetPitchAngleRadIC(float tt) { theta=tt; alpha=theta-gamma; }
inline void SetBetaDegIC(float tt) { beta=tt*DEGTORAD; } 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 SetRollAngleDegIC(float tt) { phi=tt*DEGTORAD; }
inline void SetRollAngleRadIC(float tt) { phi=tt; } inline void SetRollAngleRadIC(float tt) { phi=tt; }

View file

@ -337,11 +337,15 @@ FGMatrix FGMatrix::operator/(const double scalar)
{ {
FGMatrix Quot(Rows(), Cols()); FGMatrix Quot(Rows(), Cols());
for (unsigned int i=1; i<=Rows(); i++) { if(scalar != 0) {
for (unsigned int j=1; j<=Cols(); j++) { for (unsigned int i=1; i<=Rows(); i++) {
Quot(i,j) = data[i][j]/scalar; for (unsigned int j=1; j<=Cols(); j++) {
Quot(i,j) = data[i][j]/scalar;
}
} }
}
} else
cerr << "Attempt to divide by zero in method FGMatrix::operator/(const double scalar), object at " << this << endl;
return Quot; return Quot;
} }
@ -349,11 +353,15 @@ FGMatrix FGMatrix::operator/(const double scalar)
void FGMatrix::operator/=(const double scalar) void FGMatrix::operator/=(const double scalar)
{ {
for (unsigned int i=1; i<=Rows(); i++) {
for (unsigned int j=1; j<=Cols(); j++) { if(scalar != 0) {
data[i][j]/=scalar; 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 FGColumnVector::operator/(const double scalar)
{ {
FGColumnVector Quotient(Rows()); 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; return Quotient;
} }
/******************************************************************************/ /******************************************************************************/
@ -554,9 +568,11 @@ FGColumnVector FGColumnVector::Normalize(void)
{ {
double Mag = Magnitude(); double Mag = Magnitude();
for (unsigned int i=1; i<=Rows(); i++) if (Mag != 0) {
for (unsigned int j=1; j<=Cols(); j++) for (unsigned int i=1; i<=Rows(); i++)
data[i][j] = data[i][j]/Mag; for (unsigned int j=1; j<=Cols(); j++)
data[i][j] = data[i][j]/Mag;
}
return *this; return *this;
} }

View file

@ -169,5 +169,17 @@ void FGPosition::GetState(void) {
vVel = State->GetTb2l()*vUVW; vVel = State->GetTb2l()*vUVW;
b = Aircraft->GetWingSpan(); 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;
}

View file

@ -88,10 +88,10 @@ public:
void SetvVel(const FGColumnVector& v) { vVel = v; } void SetvVel(const FGColumnVector& v) { vVel = v; }
void SetLatitude(float tt) { Latitude = tt; } void SetLatitude(float tt) { Latitude = tt; }
void SetLongitude(double tt) { Longitude = tt; } void SetLongitude(double tt) { Longitude = tt; }
void Seth(double tt) { h = tt; } void Seth(double tt);
void SetRunwayRadius(double tt) { RunwayRadius = tt; } void SetRunwayRadius(double tt) { RunwayRadius = tt; }
void SetSeaLevelRadius(double tt) { SeaLevelRadius = tt;} void SetSeaLevelRadius(double tt) { SeaLevelRadius = tt;}
void SetDistanceAGL(double tt) { DistanceAGL = tt; } void SetDistanceAGL(double tt);
bool Run(void); bool Run(void);
}; };

View file

@ -58,7 +58,12 @@ FGTank::FGTank(FGConfigFile* AC_cfg)
*AC_cfg >> Capacity; // pounds (amount it can hold) *AC_cfg >> Capacity; // pounds (amount it can hold)
*AC_cfg >> Contents; // pounds (amount it is holding) *AC_cfg >> Contents; // pounds (amount it is holding)
Selected = true; 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;
}
} }

View file

@ -2,9 +2,9 @@ SUBDIRS = filtersjb
EXTRA_DIST = JSBSim.cpp Makefile.solo 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 \ FGAtmosphere.cpp FGAtmosphere.h \
FGAuxiliary.cpp FGAuxiliary.h \ FGAuxiliary.cpp FGAuxiliary.h \
FGCoefficient.cpp FGCoefficient.h \ FGCoefficient.cpp FGCoefficient.h \
@ -32,7 +32,7 @@ noinst_PROGRAMS = testJSBsim
testJSBsim_SOURCES = JSBSim.cpp testJSBsim_SOURCES = JSBSim.cpp
testJSBsim_LDADD = libJSBsim.a filtersjb/libfiltersjb.a testJSBsim_LDADD = libJSBSim.a filtersjb/libfiltersjb.a
INCLUDES += -I$(top_builddir)/src INCLUDES += -I$(top_builddir)/src

View file

@ -1,4 +1,4 @@
SUBDIRS = Balloon JSBsim LaRCsim UIUCModel SUBDIRS = Balloon JSBSim LaRCsim UIUCModel
noinst_LIBRARIES = libFlight.a noinst_LIBRARIES = libFlight.a
@ -6,7 +6,7 @@ libFlight_a_SOURCES = \
Balloon.cxx Balloon.h \ Balloon.cxx Balloon.h \
External.cxx External.hxx \ External.cxx External.hxx \
flight.cxx flight.hxx \ flight.cxx flight.hxx \
JSBsim.cxx JSBsim.hxx \ JSBSim.cxx JSBSim.hxx \
LaRCsim.cxx LaRCsim.hxx \ LaRCsim.cxx LaRCsim.hxx \
MagicCarpet.cxx MagicCarpet.hxx MagicCarpet.cxx MagicCarpet.hxx

View file

@ -33,7 +33,7 @@
#include "External.hxx" #include "External.hxx"
#include "flight.hxx" #include "flight.hxx"
#include "JSBsim.hxx" #include "JSBSim.hxx"
#include "LaRCsim.hxx" #include "LaRCsim.hxx"
#include "Balloon.h" #include "Balloon.h"