1
0
Fork 0

Jim Wilson:

This has been on my local copy for a while (well tested :-))
It fixes a problem with the auto throttle jumping around needlessly.  Adjustments are calculated based on the last calculated autothrottle setting rather than reading the throttle setting from the property tree.
This commit is contained in:
ehofman 2003-09-26 16:58:15 +00:00
parent 52ebc9ae4b
commit b2806f714d
2 changed files with 10 additions and 7 deletions

View file

@ -903,17 +903,17 @@ FGAutopilot::update (double dt)
total_adj = (1.0 - throttle_integral->getFloatValue()) * prop_adj +
throttle_integral->getFloatValue() * int_adj;
total_adj = current_throttle->getFloatValue() + total_adj;
current_ap_throttle = current_ap_throttle + total_adj;
if ( total_adj > 1.0 ) {
total_adj = 1.0;
if ( current_ap_throttle > 1.0 ) {
current_ap_throttle = 1.0;
}
else if ( total_adj < 0.0 ) {
total_adj = 0.0;
else if ( current_ap_throttle < 0.0 ) {
current_ap_throttle = 0.0;
}
globals->get_controls()->set_throttle( FGControls::ALL_ENGINES,
total_adj );
current_ap_throttle );
}
#ifdef THIS_CODE_IS_NOT_USED
@ -1186,7 +1186,9 @@ void FGAutopilot::set_AutoThrottleEnabled( bool value ) {
if (TargetSpeed < 0.0001) {
TargetSpeed = fgGetDouble("/velocities/airspeed-kt");
}
speed_error_accum = 0.0;
speed_error_accum = 0.0;
// initialize autothrottle at current control setting;
current_ap_throttle = current_throttle->getFloatValue();
}
update_old_control_values();

View file

@ -85,6 +85,7 @@ private:
double climb_error_accum; // climb error accumulator (for GS)
double speed_error_accum; // speed error accumulator
double current_ap_throttle; // current ap stored throttle setting used to set all engines
double previous_speed; // used to detect acceleration rate
double TargetSlope; // the glide slope hold value