Further information about the GNU Lesser General Public License can also be found on
the world wide web at http://www.gnu.org.
-
HISTORY
--------------------------------------------------------------------------------
9/8/99 TP Created
-
FUNCTIONAL DESCRIPTION
--------------------------------------------------------------------------------
INCLUDES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-#include <stdlib.h>
-
-#include <FGFDMExec.h>
-#include <models/FGAtmosphere.h>
-#include "FGInitialCondition.h"
+#include <cstdlib>
+#include <iomanip>
#include "FGTrim.h"
-#include <models/FGAircraft.h>
-#include <models/FGMassBalance.h>
-#include <models/FGGroundReactions.h>
-#include <models/FGInertial.h>
-#include <models/FGAerodynamics.h>
-#include <math/FGColumnVector3.h>
+#include "models/FGAtmosphere.h"
+#include "FGInitialCondition.h"
+#include "models/FGAircraft.h"
+#include "models/FGMassBalance.h"
+#include "models/FGGroundReactions.h"
+#include "models/FGInertial.h"
+#include "models/FGAerodynamics.h"
+#include "math/FGColumnVector3.h"
#if _MSC_VER
#pragma warning (disable : 4786 4788)
#endif
+using namespace std;
+
namespace JSBSim {
static const char *IdSrc = "$Id$";
fgic=fdmex->GetIC();
total_its=0;
trimudot=true;
- gamma_fallback=true;
+ gamma_fallback=false;
axis_count=0;
mode=tt;
xlo=xhi=alo=ahi=0.0;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void FGTrim::TrimStats() {
- char out[80];
int run_sum=0;
cout << endl << " Trim Statistics: " << endl;
cout << " Total Iterations: " << total_its << endl;
- if(total_its > 0) {
+ if( total_its > 0) {
cout << " Sub-iterations:" << endl;
- for(current_axis=0; current_axis<TrimAxes.size(); current_axis++) {
- run_sum+=TrimAxes[current_axis]->GetRunCount();
- snprintf(out,80," %5s: %3.0f average: %5.2f successful: %3.0f stability: %5.2f\n",
- TrimAxes[current_axis]->GetStateName().c_str(),
- sub_iterations[current_axis],
- sub_iterations[current_axis]/double(total_its),
- successful[current_axis],
- TrimAxes[current_axis]->GetAvgStability() );
- cout << out;
+ for (current_axis=0; current_axis<TrimAxes.size(); current_axis++) {
+ run_sum += TrimAxes[current_axis]->GetRunCount();
+ cout << " " << setw(5) << TrimAxes[current_axis]->GetStateName().c_str()
+ << ": " << setprecision(3) << sub_iterations[current_axis]
+ << " average: " << setprecision(5) << sub_iterations[current_axis]/double(total_its)
+ << " successful: " << setprecision(3) << successful[current_axis]
+ << " stability: " << setprecision(5) << TrimAxes[current_axis]->GetAvgStability()
+ << endl;
}
cout << " Run Count: " << run_sum << endl;
}
ta=*iAxes;
if( ta->GetStateType() == state ) {
delete ta;
- TrimAxes.erase(iAxes);
+ iAxes = TrimAxes.erase(iAxes);
result=true;
continue;
}
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tWdot,tAlpha ));
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tUdot,tThrottle ));
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tQdot,tPitchTrim ));
- TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tHmgt,tBeta ));
+ //TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tHmgt,tBeta ));
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tVdot,tPhi ));
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tPdot,tAileron ));
TrimAxes.push_back(new FGTrimAxis(fdmex,fgic,tRdot,tRudder ));