Make UFO honor elevator trim so it will respond to autopilot. This allows
you to do altitude hold mode and fly automated ILS approaches.
This commit is contained in:
parent
1990db9ca5
commit
ec7f73a5bb
2 changed files with 7 additions and 1 deletions
|
@ -38,12 +38,14 @@
|
||||||
const double throttle_damp = 0.2;
|
const double throttle_damp = 0.2;
|
||||||
const double aileron_damp = 0.05;
|
const double aileron_damp = 0.05;
|
||||||
const double elevator_damp = 0.05;
|
const double elevator_damp = 0.05;
|
||||||
|
const double elevator_trim_damp = 0.05;
|
||||||
const double rudder_damp = 0.4;
|
const double rudder_damp = 0.4;
|
||||||
|
|
||||||
FGUFO::FGUFO( double dt )
|
FGUFO::FGUFO( double dt )
|
||||||
: Throttle(0.0),
|
: Throttle(0.0),
|
||||||
Aileron(0.0),
|
Aileron(0.0),
|
||||||
Elevator(0.0),
|
Elevator(0.0),
|
||||||
|
Elevator_Trim(0.0),
|
||||||
Rudder(0.0)
|
Rudder(0.0)
|
||||||
{
|
{
|
||||||
// set_delta_t( dt );
|
// set_delta_t( dt );
|
||||||
|
@ -84,6 +86,9 @@ void FGUFO::update( double dt ) {
|
||||||
+ Aileron * (1 - aileron_damp);
|
+ Aileron * (1 - aileron_damp);
|
||||||
Elevator = globals->get_controls()->get_elevator() * elevator_damp
|
Elevator = globals->get_controls()->get_elevator() * elevator_damp
|
||||||
+ Elevator * (1 - elevator_damp);
|
+ Elevator * (1 - elevator_damp);
|
||||||
|
Elevator_Trim = globals->get_controls()->get_elevator_trim()
|
||||||
|
* elevator_trim_damp
|
||||||
|
+ Elevator_Trim * (1 - elevator_trim_damp);
|
||||||
Rudder = globals->get_controls()->get_rudder() * rudder_damp
|
Rudder = globals->get_controls()->get_rudder() * rudder_damp
|
||||||
+ Rudder * (1 - rudder_damp);
|
+ Rudder * (1 - rudder_damp);
|
||||||
|
|
||||||
|
@ -92,7 +97,7 @@ void FGUFO::update( double dt ) {
|
||||||
|
|
||||||
double old_pitch = get_Theta();
|
double old_pitch = get_Theta();
|
||||||
double pitch_rate = SGD_PI_4; // assume I will be pitching up
|
double pitch_rate = SGD_PI_4; // assume I will be pitching up
|
||||||
double target_pitch = -Elevator * SGD_PI_2;
|
double target_pitch = (-Elevator - Elevator_Trim) * SGD_PI_2;
|
||||||
|
|
||||||
// if I am pitching down
|
// if I am pitching down
|
||||||
if (old_pitch > target_pitch)
|
if (old_pitch > target_pitch)
|
||||||
|
|
|
@ -32,6 +32,7 @@ class FGUFO: public FGInterface {
|
||||||
double Throttle;
|
double Throttle;
|
||||||
double Aileron;
|
double Aileron;
|
||||||
double Elevator;
|
double Elevator;
|
||||||
|
double Elevator_Trim;
|
||||||
double Rudder;
|
double Rudder;
|
||||||
public:
|
public:
|
||||||
FGUFO( double dt );
|
FGUFO( double dt );
|
||||||
|
|
Loading…
Add table
Reference in a new issue