|
From: Jon S. B. <jb...@us...> - 2011-07-28 12:48:23
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization
In directory vz-cvs-3.sog:/tmp/cvs-serv15987/src/initialization
Modified Files:
FGInitialCondition.cpp FGTrimAxis.cpp
Log Message:
Major modification that moves towards completely independent engine models
Index: FGInitialCondition.cpp
===================================================================
RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -C2 -r1.66 -r1.67
*** FGInitialCondition.cpp 17 Jul 2011 16:38:50 -0000 1.66
--- FGInitialCondition.cpp 28 Jul 2011 12:48:19 -0000 1.67
***************
*** 45,48 ****
--- 45,52 ----
*******************************************************************************/
+ #include <iostream>
+ #include <fstream>
+ #include <cstdlib>
+
#include "FGInitialCondition.h"
#include "FGFDMExec.h"
***************
*** 52,60 ****
#include "models/FGPropagate.h"
#include "models/FGPropulsion.h"
#include "input_output/FGPropertyManager.h"
#include "input_output/string_utilities.h"
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
using namespace std;
--- 56,62 ----
#include "models/FGPropagate.h"
#include "models/FGPropulsion.h"
+ #include "models/FGFCS.h"
#include "input_output/FGPropertyManager.h"
#include "input_output/string_utilities.h"
using namespace std;
***************
*** 928,931 ****
--- 930,951 ----
int n = int(running_elements->GetDataAsNumber());
try {
+ /*
+ if (n >= 0) { // A specific engine is supposed to be initialized
+ if (n >= (int)fdmex->GetPropulsion()->GetNumEngines() ) {
+ throw(string("Tried to initialize a non-existent engine!"));
+ }
+ fdmex->GetFCS()->SetThrottleCmd(n,1);
+ fdmex->GetFCS()->SetMixtureCmd(n,1);
+ fdmex->GetPropulsion()->in.ThrottlePos[n] = 1;
+ fdmex->GetPropulsion()->in.MixturePos[n] = 1;
+ } else if (n < 0) { // -1 refers to "All Engines"
+ for (unsigned int i=0; i<fdmex->GetPropulsion()->GetNumEngines(); i++) {
+ fdmex->GetFCS()->SetThrottleCmd(i,1);
+ fdmex->GetFCS()->SetMixtureCmd(i,1);
+ fdmex->GetPropulsion()->in.ThrottlePos[i] = 1;
+ fdmex->GetPropulsion()->in.MixturePos[i] = 1;
+ }
+ }
+ */
propulsion->InitRunning(n);
} catch (string str) {
Index: FGTrimAxis.cpp
===================================================================
RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGTrimAxis.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** FGTrimAxis.cpp 17 Jul 2011 13:51:23 -0000 1.12
--- FGTrimAxis.cpp 28 Jul 2011 12:48:19 -0000 1.13
***************
*** 425,431 ****
tMin=fdmex->GetPropulsion()->GetEngine(i)->GetThrottleMin();
tMax=fdmex->GetPropulsion()->GetEngine(i)->GetThrottleMax();
! //cout << "setThrottlespct: " << i << ", " << control_min << ", " << control_max << ", " << control_value;
fdmex->GetFCS()->SetThrottleCmd(i,tMin+control_value*(tMax-tMin));
! //cout << "setThrottlespct: " << fdmex->GetFCS()->GetThrottleCmd(i) << endl;
fdmex->RunIC(); //apply throttle change
fdmex->GetPropulsion()->GetSteadyState();
--- 425,434 ----
tMin=fdmex->GetPropulsion()->GetEngine(i)->GetThrottleMin();
tMax=fdmex->GetPropulsion()->GetEngine(i)->GetThrottleMax();
!
! // Both the main throttle setting in FGFCS and the copy of the position
! // in the Propulsion::Inputs structure need to be set at this time.
fdmex->GetFCS()->SetThrottleCmd(i,tMin+control_value*(tMax-tMin));
! fdmex->GetPropulsion()->in.ThrottlePos[i] = tMin +control_value*(tMax - tMin);
!
fdmex->RunIC(); //apply throttle change
fdmex->GetPropulsion()->GetSteadyState();
|