solver_eps=tolerance/100;
break;
case tTheta:
- control_min=fdmex->GetPropagate()->Gettht() - 5*degtorad;
- control_max=fdmex->GetPropagate()->Gettht() + 5*degtorad;
+ control_min=fdmex->GetPropagate()->GetEuler(eTht) - 5*degtorad;
+ control_max=fdmex->GetPropagate()->GetEuler(eTht) + 5*degtorad;
state_convert=radtodeg;
break;
case tPhi:
- control_min=fdmex->GetPropagate()->Getphi() - 30*degtorad;
- control_max=fdmex->GetPropagate()->Getphi() + 30*degtorad;
+ control_min=fdmex->GetPropagate()->GetEuler(ePhi) - 30*degtorad;
+ control_max=fdmex->GetPropagate()->GetEuler(ePhi) + 30*degtorad;
state_convert=radtodeg;
control_convert=radtodeg;
break;
control_convert=radtodeg;
break;
case tHeading:
- control_min=fdmex->GetPropagate()->Getpsi() - 30*degtorad;
- control_max=fdmex->GetPropagate()->Getpsi() + 30*degtorad;
+ control_min=fdmex->GetPropagate()->GetEuler(ePsi) - 30*degtorad;
+ control_max=fdmex->GetPropagate()->GetEuler(ePsi) + 30*degtorad;
state_convert=radtodeg;
break;
}
case tYawTrim:
case tRudder: control_value=fdmex->GetFCS() -> GetDrCmd(); break;
case tAltAGL: control_value=fdmex->GetPropagate()->GetDistanceAGL();break;
- case tTheta: control_value=fdmex->GetPropagate()->Gettht(); break;
- case tPhi: control_value=fdmex->GetPropagate()->Getphi(); break;
+ case tTheta: control_value=fdmex->GetPropagate()->GetEuler(eTht); break;
+ case tPhi: control_value=fdmex->GetPropagate()->GetEuler(ePhi); break;
case tGamma: control_value=fdmex->GetAuxiliary()->GetGamma();break;
- case tHeading: control_value=fdmex->GetPropagate()->Getpsi(); break;
+ case tHeading: control_value=fdmex->GetPropagate()->GetEuler(ePsi); break;
}
}
double FGTrimAxis::computeHmgt(void) {
double diff;
- diff = fdmex->GetPropagate()->Getpsi() -
+ diff = fdmex->GetPropagate()->GetEuler(ePsi) -
fdmex->GetAuxiliary()->GetGroundTrack();
if( diff < -M_PI ) {
}
cout << "SetThetaOnGround ref gear: " << ref << endl;
if(ref >= 0) {
- double sp = fdmex->GetPropagate()->GetSinphi();
- double cp = fdmex->GetPropagate()->GetCosphi();
+ double sp = fdmex->GetPropagate()->GetSinEuler(ePhi);
+ double cp = fdmex->GetPropagate()->GetCosEuler(ePhi);
double lx = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(1);
double ly = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(2);
double lz = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(3);
}
//cout << i << endl;
if (debug_lvl > 0) {
- cout << " Initial Theta: " << fdmex->GetPropagate()->Gettht()*radtodeg << endl;
+ cout << " Initial Theta: " << fdmex->GetPropagate()->GetEuler(eTht)*radtodeg << endl;
cout << " Used gear unit " << iAft << " as aft and " << iForward << " as forward" << endl;
}
control_min=(theta+5)*degtorad;
i++;
}
if (ref >= 0) {
- double st = sin(fdmex->GetPropagate()->Gettht());
- double ct = cos(fdmex->GetPropagate()->Gettht());
+ double st = fdmex->GetPropagate()->GetSinEuler(eTht);
+ double ct = fdmex->GetPropagate()->GetCosEuler(eTht);
double lx = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(1);
double ly = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(2);
double lz = fdmex->GetGroundReactions()->GetGearUnit(ref)->GetBodyLocation(3);
void FGTrimAxis::AxisReport(void) {
char out[80];
- sprintf(out," %20s: %6.2f %5s: %9.2e Tolerance: %3.0e\n",
+
+ sprintf(out," %20s: %6.2f %5s: %9.2e Tolerance: %3.0e",
GetControlName().c_str(), GetControl()*control_convert,
GetStateName().c_str(), GetState()+state_target, GetTolerance());
cout << out;
+ if( fabs(GetState()+state_target) < fabs(GetTolerance()) )
+ cout << " Passed" << endl;
+ else
+ cout << " Failed" << endl;
}
/*****************************************************************************/