1
0
Fork 0

Latest JSBSim changes.

This commit is contained in:
david 2001-12-14 03:35:41 +00:00
parent 5c3f4e999d
commit fbccfab5ff
8 changed files with 42 additions and 30 deletions

View file

@ -71,6 +71,7 @@ INCLUDES
#include "FGAuxiliary.h"
#include "FGOutput.h"
#include "FGConfigFile.h"
#include "FGInitialCondition.h"
static const char *IdSrc = "$Id$";
static const char *IdHdr = ID_FDMEXEC;
@ -403,8 +404,8 @@ bool FGFDMExec::LoadScript(string script)
string token="";
string aircraft="";
string initialize="";
bool result=false;
double dt=0.0;
bool result = false;
double dt = 0.0;
unsigned i;
struct condition *newCondition;
@ -507,6 +508,12 @@ bool FGFDMExec::LoadScript(string script)
exit(-1);
}
FGInitialCondition IC(this);
if ( ! IC.Load("aircraft", aircraft, initialize)) {
cerr << "Initialization unsuccessful" << endl;
exit(-1);
}
return true;
}

View file

@ -64,7 +64,7 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : Exec(fdmex)
*AC_cfg >> tmp >> name >> vXYZ(1) >> vXYZ(2) >> vXYZ(3)
>> kSpring >> bDamp>> dynamicFCoeff >> staticFCoeff
>> rollingFCoeff >> sSteerType >> sBrakeGroup
>> maxSteerAngle >> Retractable;
>> maxSteerAngle >> sRetractable;
if (sBrakeGroup == "LEFT" ) eBrakeGrp = bgLeft;
else if (sBrakeGroup == "RIGHT" ) eBrakeGrp = bgRight;
@ -85,13 +85,14 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : Exec(fdmex)
<< sSteerType << " is undefined." << endl;
}
if ( Retractable == "RETRACT" ) {
isRetractable=true;
if ( sRetractable == "RETRACT" ) {
isRetractable = true;
} else {
isRetractable=false;
isRetractable = false;
}
GearUp=false; GearDown=true;
GearUp = false;
GearDown = true;
// Add some AI here to determine if gear is located properly according to its
// brake group type ??
@ -159,6 +160,7 @@ FGLGear::FGLGear(const FGLGear& lgear)
Reported = lgear.Reported;
name = lgear.name;
sSteerType = lgear.sSteerType;
sRetractable = lgear.sRetractable;
eSteerType = lgear.eSteerType;
sBrakeGroup = lgear.sBrakeGroup;
eBrakeGrp = lgear.eBrakeGrp;
@ -166,8 +168,6 @@ FGLGear::FGLGear(const FGLGear& lgear)
isRetractable = lgear.isRetractable;
GearUp = lgear.GearUp;
GearDown = lgear.GearDown;
Debug(0);
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -474,17 +474,17 @@ void FGLGear::Debug(int from)
if (debug_lvl & 1) { // Standard console startup message output
if (from == 0) { // Constructor
cout << " Name: " << name << endl;
cout << " Location: " << vXYZ << endl;
cout << " Spring Constant: " << kSpring << endl;
cout << " Damping Constant: " << bDamp << endl;
cout << " Name: " << name << endl;
cout << " Location: " << vXYZ << endl;
cout << " Spring Constant: " << kSpring << endl;
cout << " Damping Constant: " << bDamp << endl;
cout << " Dynamic Friction: " << dynamicFCoeff << endl;
cout << " Static Friction: " << staticFCoeff << endl;
cout << " Static Friction: " << staticFCoeff << endl;
cout << " Rolling Friction: " << rollingFCoeff << endl;
cout << " Steering Type: " << sSteerType << endl;
cout << " Grouping: " << sBrakeGroup << endl;
cout << " Steering Type: " << sSteerType << endl;
cout << " Grouping: " << sBrakeGroup << endl;
cout << " Max Steer Angle: " << maxSteerAngle << endl;
cout << " Retractable: " << Retractable << endl;
cout << " Retractable: " << sRetractable << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -268,7 +268,7 @@ private:
string name;
string sSteerType;
string sBrakeGroup;
string Retractable;
string sRetractable;
BrakeGroup eBrakeGrp;
SteerType eSteerType;

View file

@ -157,7 +157,8 @@ void FGOutput::DelimitedOutput(string fname)
}
if (SubSystems & ssRates) {
outstream << ", ";
outstream << "P, Q, R";
outstream << "P, Q, R, ";
outstream << "Pdot, Qdot, Rdot";
}
if (SubSystems & ssVelocities) {
outstream << ", ";
@ -179,7 +180,8 @@ void FGOutput::DelimitedOutput(string fname)
}
if (SubSystems & ssAtmosphere) {
outstream << ", ";
outstream << "Rho";
outstream << "Rho, ";
outstream << "NWind, EWind, DWind";
}
if (SubSystems & ssMassProps) {
outstream << ", ";
@ -232,7 +234,8 @@ void FGOutput::DelimitedOutput(string fname)
}
if (SubSystems & ssRates) {
outstream << ", ";
outstream << Rotation->GetPQR();
outstream << Rotation->GetPQR() << ", ";
outstream << Rotation->GetPQRdot();
}
if (SubSystems & ssVelocities) {
outstream << ", ";
@ -254,7 +257,8 @@ void FGOutput::DelimitedOutput(string fname)
}
if (SubSystems & ssAtmosphere) {
outstream << ", ";
outstream << Atmosphere->GetDensity();
outstream << Atmosphere->GetDensity() << ", ";
outstream << Atmosphere->GetWindNED();
}
if (SubSystems & ssMassProps) {
outstream << ", ";

View file

@ -102,6 +102,8 @@ FGPosition::FGPosition(FGFDMExec* fdmex) : FGModel(fdmex)
lastLongitudeDot = lastLatitudeDot = lastRadiusDot = 0.0;
Longitude = Latitude = 0.0;
gamma = Vt = Vground = 0.0;
hoverbmac = hoverbcg = 0.0;
psigt = 0.0;
Debug(0);
}
@ -148,17 +150,15 @@ bool FGPosition::Run(void) {
Vground = sqrt( vVel(eNorth)*vVel(eNorth) + vVel(eEast)*vVel(eEast) );
psigt = atan2(vVel(eEast), vVel(eNorth));
if(psigt < 0.0)
if (psigt < 0.0)
psigt += 2*M_PI;
invMass = 1.0 / MassBalance->GetMass();
Radius = h + SeaLevelRadius;
invRadius = 1.0 / Radius;
cosLat = cos(Latitude);
if (cosLat != 0) LongitudeDot = vVel(eEast) / (Radius * cosLat);
LatitudeDot = vVel(eNorth) * invRadius;
LatitudeDot = vVel(eNorth) / Radius;
RadiusDot = -vVel(eDown);
Longitude += 0.5*dt*rate*(LongitudeDot + lastLongitudeDot);

View file

@ -123,7 +123,6 @@ private:
FGColumnVector3 vVelDot;
FGColumnVector3 vRunwayNormal;
double Vee, invMass, invRadius;
double Radius, h;
double LatitudeDot, LongitudeDot, RadiusDot;
double lastLatitudeDot, lastLongitudeDot, lastRadiusDot;

View file

@ -80,7 +80,7 @@ FGRotation::FGRotation(FGFDMExec* fdmex) : FGModel(fdmex)
Name = "FGRotation";
cTht=cPhi=cPsi=1.0;
sTht=sPhi=sPsi=0.0;
Debug(0);
}

View file

@ -477,10 +477,12 @@ bool FGState::Reset(string path, string acname, string fname)
cerr << "The reset file " << resetDef
<< " does not appear to be a reset file" << endl;
return false;
} else {
resetfile.GetNextConfigLine();
resetfile >> token;
cout << "Resetting using: " << token << endl << endl;
}
resetfile.GetNextConfigLine();
resetfile >> token;
while (token != string("/initialize") && token != string("EOF")) {
if (token == "UBODY") resetfile >> U;
if (token == "VBODY") resetfile >> V;