1 Introduction

The control of the aircraft flight path, i.e. the kinematic course and climb angles, as well as the aerodynamic speed along the flight path, is an essential part of all modern flight control systems for both manned and unmanned aircraft, either for the execution of direct medium-level commands from the pilot or ground operator, or, as in traditional, cascaded control structures, as basis for higher-level trajectory following and navigation control modes. Especially for unmanned applications, robust, high-authority, and high-bandwidth flight path control is of interest, in order to allow more aggressive maneuvering, thus going beyond traditional low-bandwidth autopilot operation and waypoint based trajectory following.

The Institute of Flight System Dynamics (FSD) at the Technische Universität München (TUM) has developed a highly modular flight guidance and control system for manned and unmanned aircraft, that provides the full range of typical and beyond state-of-the-art automated flight control functionalities in order to meet most of the real-world operational requirements for manned and unmanned aircraft systems: automatic takeoff and landing, voice commanded flight management and trajectory generation systems [11, 12], automatic trajectory [9, 10] and flight path controllers [3], as well as inner loop baseline and automatic thrust controllers. The modularity and configurability allow easy adjustment and adaptation to new aircraft configurations.

The paper at hand focuses on the development of the full envelope, full authority, full bandwidth automatic flight path controller, initially presented in [3]. The contributions of this paper include: extended derivation of the flight path control laws; overview of requirements, design objectives and verification activities; extended flight test results.

As the command variables of the controller are the aircraft flight path, the control bandwidth is determined by the achievable path curvature, i.e. incremental specific forces in the kinematic frame. Thus, for optimal tracking performance, the flight path controller utilizes a generic interface to aircraft-specific inner loop controllers for the control of the normal and lateral, i.e. path transverse, and linear, i.e. path tangential, specific forces. Further, such specific force based inner loop controllers provide good disturbance rejection already at the acceleration level, before disturbances manifest themselves into attitude, velocity and position errors, enhancing path control performance.

The spectrum of current and planned target aircraft configurations for the modular flight control system in general, and the automatic flight path controller in particular, requires a high degree of parameter design and performance assessment automation, for easy adaptation to new configurations. A parametrized configuration independent implementation, as well as generic, configuration independent simulation, design and assessment routines and environments, parametrized with configuration specific requirements and design data, ensure the reusability and rapid adaptation to new aircraft configurations.

2 State-of-the-Art

Traditional Single-Input/Single-Output (SISO) autopilot control structures, with independent control of each axis, neglect the coupling between the path variables - an acceptable approach for low bandwidth systems with high settling times, and low actuation authority, but inherently prone to dangerous control objective conflicts, as arbitrary flight path and speed targets cannot be maintained with saturated energy rate control. More modern integrated control approaches, such as Total Energy Control System (TECS), see e.g. [4, 5, 7] use coupled energy flow rate and distribution control to decouple flight path and speed tracking, and to integrate airspeed-based envelope protections [6] in order to prevent loss of control. For successful decoupling, the pitch control bandwidth has to match that of the typically much slower thrust dynamics, thus unnecessary reducing flight path control bandwidth. Such approaches may be sufficient for low-bandwidth autopilot applications, e.g. for larger, manned aircraft. For more agile aircraft, high-bandwidth flight path maneuvering with temporary sacrifice of speed tracking may be preferred over always coordinated flight path and speed tracking.

The flight path controller presented in this paper uses dynamic coupling of the control planes to provide deterministic control objective conflict resolution, protection of the energy integrity of the aircraft, and robustness against non-achievable flight path commands, by means of active energy rate and force prioritization between the vertical, lateral and energy control. The paper focuses on the nominal path control functions; the energy rate and force prioritizations active at the edges of the envelope are outside the scope of this paper.

3 Controller Environment and Flight Test Platform

3.1 Modular Application Architecture

Figure 1 shows a principal overview of the structure of the modular flight guidance and control system application. Depending on the operational requirements for a given target platform, and the therefore necessary functionalities, the corresponding functional modules can be integrated to a configuration-specific control application. The modularity and configurability aim at keeping as much as possible identical for different platforms in order to avoid significant rework. The functional modules include a system automation, interfacing with external command sources and handling the overall operating modes, flight plan trajectory generation and automatic takeoff and landing modules generating commands for the outer loops of the auto-flight system, i.e. the trajectory and flight path control modules. The commands from the outer loop are evaluated depending on the active operating modes and the respective commands are transformed and forwarded to the inner loop controller/auto-thrust, which compute the final commands to the Actuator Control Electronics (ACE).

Fig. 1
figure 1

Modular flight guidance and control system architecture

3.2 The DA42 OE-FSD Demonstrator Platform

For validation and verification of experimental control algorithms, Fly-By-Wire (FBW) technologies and equipment for manned and unmanned applications, the Institute of Flight System Dynamics has, together with the manufacturer, extensively modified a Diamond Aircraft Industries DA42 M-NG (Multi-Purpose Platform, Next Generation) aircraft, to serve as flying testbed, see Fig. 2. A digital, experimental flight control system is installed parallel to the normal mechanical controls, interfacing with the mechanical controls via both electrical and overload clutches. A safety system ensures the safe engagement and disengagement of the experimental flight control system.

Fig. 2
figure 2

The DA42 M-NG of the Institute of Flight System Dynamics

4 Controller Requirements and Design Objectives

4.1 Functional and Operational Requirements

The functional and operational requirements define the flight control functions, which beyond the direct control of the flight path includes additional functions such as speed by pitch/flight level change, altitude capture and hold, pitch hold and radio navigation modes, all outside the scope of this paper, the mode transition logics, activation and deactivation logics, limitations and interfaces, as well as human-machine-interface, i.e. mode control panel, and operational concept. The functional and operation requirements are the basis for the controller design, and for the implementation of the design model.

4.2 Performance Requirements

For each flight control function, desired and adequate performance are defined. The desired performance corresponds to a design goal during the gain and parameter design, possibly not achievable for all aircraft configurations and load conditions over the envelope. The adequate performance defines the minimum acceptable performance to be met for all configurations, load conditions and points in the operational envelope. Due to the variety of possible application platforms, a set of all-encompassing desired performance criteria cannot be stated, but must rather be defined depending on the target aircraft configuration and its operational aspects; for a manned aircraft, smooth transitions to new flight path commands may be preferred before tracking bandwidth; for an unmanned aircraft, high path control bandwidth utilizing the full capabilities of the aircraft dynamics may be the primary objective. For certain control variables, e.g. speed by thrust control, the tracking and disturbance performance is usually a trade-off with actuation activity. Applicable aerospace standards specify acceptable levels of adequate system performance for certain functions, e.g. [8], generally adhered to for the design of automatic flight control systems for manned and unmanned aircraft.

4.2.1 Tracking and Disturbance Requirements

Tracking requirements include specifications of maximum command response overshoot, settling times and accuracy in smooth and turbulent air. Table 1 lists some exemplary desired and adequate performance requirements for the flight path control functions. The accuracy requirements for random turbulent air are e.g. given as root-mean-square deviations, at specified root-mean-square gust intensities as function of the altitude and a cumulative exceedance probability corresponding to light turbulence.

Table 1 Exemplary desired and adequate path tracking accuracy requirements

4.2.2 Robustness and Sensitivity Requirements

As with the adequate performance for the flight control functions, requirements regarding control loop stability margins and sensitivity against uncertainties in critical aerodynamic parameters can be found in e.g. [8]. In the frequency range of the rigid body dynamics, i.e. up to the first aeroelastic mode, a gain margin of at least 6 dB and phase margin of at least 45\(^\circ \) are required for all aerodynamically closed loops, measured at the actuator inputs. Assessment of robustness against uncertainties in the aerodynamic data set shall be performed using variations of critical stability derivatives, e.g. \(C_{m,0}\), \(C_{m\alpha }\) and \(C_{n\beta }\), of up to 20 percent, thereby maintaining at least half of the stability margins for the nominal system.

5 Controller Design

This section describes the flight dynamics preliminaries and the structure of the flight path controller. The controller structure is based on an inversion of the translational equations of motions, i.e. the aircraft path dynamics, with reference models for the desired command tracking dynamics, error controllers for disturbance rejection, and feedback hedging signals to account for inner loop and actuation dynamics and saturations.

5.1 Translational Equations of Motion

The differential equations describing the motion of the aircraft may be derived from the second law of Newton, according to which the rate of change of the linear momentum \(\mathbf {\mathbf {p}} \in \mathbb {R}^3\) of an object in an inertial frame is equal to the net force \(\sum \mathbf {\mathbf {F}} \in \mathbb {R}^3\) acting upon it,

$$\begin{aligned} \sum \mathbf {\mathbf {F}} = \left( \frac{d}{dt}\right) ^I\left( \mathbf {\mathbf {p}}(t)\right) ^I = \left( \frac{d}{dt}\right) ^I \int _{m} \left( \mathbf {\mathbf {V}}^P(t)\right) ^I \cdot dm, \end{aligned}$$
(1)

where \((\mathbf {\mathbf {V}}^P)^I(t) \in \mathbb {R}^3\) is the velocity of a point P with mass dm, relative to the Earth-Centered Inertial (ECI) frame I. It is assumed that the aircraft is a rigid body, i.e. the relative position between points on the aircraft does not change over time, \((\dot{\mathbf {\mathbf {V}}}^{RP})^B = \mathbf {\mathbf {0}}\), and that the influence of the mass flow onto the impulse of the aircraft can be neglected, \(\dot{m} (\mathbf {\mathbf {V}}^P)^E \approx 0\). For a given point P of the rigid body aircraft, its position vector \(\mathbf {\mathbf {r}}^P \in \mathbb {R}^3\), is given by

$$\begin{aligned} \left( \mathbf {\mathbf {r}}^{P}\right) = \left( \mathbf {\mathbf {r}}^{R}\right) + \left( \mathbf {\mathbf {r}}^{RP}\right) , \end{aligned}$$
(2)

where \(\mathbf {\mathbf {r}}^R \in \mathbb {R}^3\) is the position of the aircraft reference point R. The corresponding velocity relative to the Earth-Centered Inertial (ECI) frame is given by

$$\begin{aligned} \left( \mathbf {\mathbf {V}}^P\right) ^I = \left( \mathbf {\mathbf {V}}^R\right) ^E + \left( \mathbf {\varvec{\omega }}^{IE}\right) \times \left( \mathbf {\mathbf {r}}^R\right) + \left( \mathbf {\mathbf {V}}^{RP}\right) ^B + \left( \mathbf {\varvec{\omega }}^{IB}\right) \times \left( \mathbf {\mathbf {r}}^{RP}\right) \end{aligned}$$
(3)

where \((\mathbf {\mathbf {V}}^R)^E\) is the velocity relative to the center of the Earth, \((\mathbf {\varvec{\omega }}^{IE})\) the rotation of the Earth, \((\mathbf {\mathbf {V}}^{RP})^B\) is the relative velocity of the point P, and \((\mathbf {\varvec{\omega }}^{IB})\) the rotation of the aircraft relative to the inertial frame. Differentiating the velocity vector with respect to the North-East-Down (NED) frame O, Newton’s second law can be written as

$$\begin{aligned} \sum {\left( \mathbf {\mathbf {F}}^{R}\right) } =m \left( \dot{\mathbf {\mathbf {V}}}^{R}_{K}\right) ^{EO} + m \mathbf {\mathbf {a}}_{add}, \end{aligned}$$
(4)

where \(\mathbf {\mathbf {a}}_{add}\) is a term containing all additional accelerations such as the Coriolis term, the acceleration due to the transport rate, and the acceleration due to difference of reference point R and center of gravity G. For the applications of the flight path controller, assuming a flat, non-rotating earth is sufficient, and if further choosing the center of gravity as reference point, \(\mathbf {\mathbf {a}}_{add} = \mathbf {\mathbf {0}}\), and thus subsequently neglected.

For the analysis of the flight path dynamics, a formulation of the translational equations of motion considering the kinematic frame K is desired. Hence, the acceleration relative to the North-East-Down (NED) frame O is split up to include the kinematic acceleration due to flight path dynamics,

$$\begin{aligned} \left( \dot{\mathbf {\mathbf {V}}}^G_K\right) ^{EO} = \left( \dot{\mathbf {\mathbf {V}}}^G_K\right) ^{EK} + \left( \mathbf {\varvec{\omega }}^{OK}\right) \times \left( \mathbf {\mathbf {V}}^G_K\right) ^E, \end{aligned}$$
(5)

where \((\dot{\mathbf {\mathbf {V}}}^G_K)^{EK} \) is the kinematic acceleration relative to the kinematic frame, and \((\mathbf {\varvec{\omega }}^{OK}) \times (\mathbf {\mathbf {V}}^G_K)^E \) is the acceleration due to a change in flight path, i.e. a rotation of the kinematic frame K with respect to the NED frame O. Using polar coordinates in the kinematic frame, i.e. the kinematic velocity magnitude \(V_K^G \in \mathbb {R}\), the course angle \(\chi ^G_K \in \mathbb {R}\) and the flight path angle \(\gamma ^G_K \in \mathbb {R}\), the kinematic equations of motion can be given as

$$\begin{aligned} \dot{V}^G_K&= \varDelta f_{x,K},&\varDelta f_{x,K}&\triangleq \frac{(X_A^G+X_P^G)_K}{m} - g \sin \gamma _K, \end{aligned}$$
(6)
$$\begin{aligned} \dot{\chi }_K&= \frac{f_{y,K}}{V_K^G\mathrm {cos{\gamma _K}}},&f_{y,K}&\triangleq \frac{(Y_A^G+Y_P^G)_K}{m}, \end{aligned}$$
(7)
$$\begin{aligned} \dot{\gamma }_K&= \frac{-\varDelta f_{z,K}}{V_K^G},&\varDelta f_{z,K}&\triangleq \frac{(Z_A^G+Z_P^G)_K}{m} + g \cos \gamma _K, \end{aligned}$$
(8)

with \(m \in \mathbb {R}\) denoting the mass of the aircraft, \(g \in \mathbb {R}\) the acceleration due to gravity, and \((X_A^G)_K\), \((Y_A^G)_K\), \((Z_A^G)_K \in \mathbb {R}\) as well as \((X_P^G)_K\), \((Y_P^G)_K\), \((Z_P^G)_K \in \mathbb {R}\) are the components of the aerodynamic and propulsion forces at the center of gravity, respectively, noted in the kinematic frame.

However, the task of the flight path controller is to control the aerodynamic velocity \(V_A^G \in \mathbb {R}\) along the flight path, and not the kinematic. The kinematic velocity is the vector sum of the aerodynamic velocity vector and the wind velocity vector,

$$\begin{aligned} \left( \mathbf {\mathbf {V}}^G_A\right) ^{E} = \left( \mathbf {\mathbf {V}}^G_K\right) ^{E} - \left( \mathbf {\mathbf {V}}^G_W\right) ^{E}, \end{aligned}$$
(9)

thus, for a constant wind field,

$$\begin{aligned} \left( \dot{\mathbf {\mathbf {V}}}^G_A\right) ^{EO} = \left( \dot{\mathbf {\mathbf {V}}}^G_K\right) ^{EO} - \left( \dot{\mathbf {\mathbf {V}}}^G_W\right) ^{EO} = \left( \dot{\mathbf {\mathbf {V}}}^G_K\right) ^{EO}, \end{aligned}$$
(10)

and

$$\begin{aligned} \left( \dot{\mathbf {\mathbf {V}}}^G_A\right) ^{EA} + \left( \mathbf {\varvec{\omega }}^{OA}\right) \times \left( \mathbf {\mathbf {V}}^G_A\right) ^E = \left( \dot{\mathbf {\mathbf {V}}}^G_K\right) ^{EK} + \left( \mathbf {\varvec{\omega }}^{OK}\right) \times \left( \mathbf {\mathbf {V}}^G_K\right) ^E, \end{aligned}$$
(11)

which gives for the aerodynamic velocity magnitude,

$$\begin{aligned} \dot{V}^G_A&= \varDelta f_{x,A},&\varDelta f_{x,A}&\triangleq \frac{(X_A^G+X_P^G)_A}{m}-g \sin \gamma ^G_A, \end{aligned}$$
(12)

where \(\gamma ^G_A \in \mathbb {R}\) is the aerodynamic flight path angle, and \((X_A^G)_A\) and \((X_P^G)_A\) are the aerodynamic and propulsion forces in the aerodynamic frame A.

5.2 Inversion of the Path Dynamics

The objective of the nonlinear dynamic inversion, also known as input/output linearization or feedback linearization [13], is to find a non-linear state transformation of a non-linear plant so that the transformed system has a linear input-output dynamics. The order of the feedback linearized system is referred to as the relative degree, and determines up to which derivative the dynamics of the system is directly controllable. The application to the path dynamics is straight forward. The path dynamics can be considered to be of relative degree one, i.e. it takes one differentiation of the path dynamics variables in order for the virtual plant inputs (i.e. the specific forces) to appear in the equations of motion, see Eqs. (6)–(8). Thus, an inversion architecture corresponding to the relative degree of the path dynamics is desired. With the pseudo control vector \(\varvec{\nu } = [\nu _{\dot{V}_A}, \nu _{\dot{\chi }_K}, \nu _{\dot{\gamma }_K}]^T\), the control law for the path loops becomes

$$\begin{aligned} \mathbf {u_C} = \left[ \begin{array}{c} \varDelta f_{A,K,C} \\ f_{y,K,C} \\ \varDelta f_{z,K,C} \end{array} \right] = \left[ \begin{array}{c} \nu _{\dot{V}_A} \\ V_K\cos \gamma _K \nu _{\dot{\chi }_K} \\ -V_K \nu _{\dot{\gamma }_K} \end{array} \right] . \end{aligned}$$
(13)
Fig. 3
figure 3

Reference model based path control structure with energy rate and force prioritization cross-feeds

5.3 Reference Models for the Path Dynamics

The path controller includes linear second order reference models for the airspeed, course/heading angle and flight path angle/vertical speed, see Fig. 3. As stated in the previous section, a first order reference model would be sufficient to produce the required reference state and derivatives for the path variables. However, in order to also smoothen the reference state derivatives, second order reference models are applied according to

$$\begin{aligned} \dot{\nu }_{RM}&= \frac{1}{T_1 T_2} \left( y_C - y_{RM}\right) - \frac{T_1+T_2}{T_1 T_2}\nu _{RM}, \end{aligned}$$
(14)
$$\begin{aligned} \dot{y}_{RM}&= \nu _{RM} - \nu _H. \end{aligned}$$
(15)

where \(T_1\) and \(T_2\) are the reference model time constants, \(y_C\) is the flight path command, \(y_{RM}\) and \(\dot{y}_{RM}\) the reference model states, \(\nu _{RM}\) the pseudo control to the inversion, and

$$\begin{aligned} \nu _H = \nu - \hat{\nu }, \end{aligned}$$
(16)

a hedging signal added to adjust the reference model dynamic according to the plant response \(\hat{\nu }\), see Sect. 5.4. The reference models include multiple limiters; limitation of the input command value, limitation of the reference state first derivative, i.e. linear acceleration, flight path angle rate (limit imposed by permissible specific normal force) and turn rate, limitation of the reference state second derivative, e.g. kinematic bank angle rate, and integrator output limitation, to account for the hedging signal which is added after the rate limiter. The time constants of each reference model are scheduled over static and dynamic pressure to account for available inner loop dynamics. The design of the time constants is based on linear models of the closed inner loop dynamics with step response overshoot as primary design criterion and closed loop stability margins as monitor criteria.

5.4 Plant Response Estimation and Pseudo-control Hedging

The consideration of the path dynamics as a system of relative degree one is justified by the fact that the path dynamics and dynamics of subsequent inner loops, i.e. the moment and actuator dynamics, are sufficiently time-scale separated. However, due to the dynamics of the inner loops, the plant will not perfectly follow the desired reference dynamics given by the reference models. This is encountered by employing PCH [1], feeding back hedging signals \(\nu _H = \nu - \hat{\nu }\), i.e. the difference between command and estimated plant response, to slow down the reference model output in order to account for the reaction dynamics of the plant. From the measured specific forces in the body axis frame, the specific force vector in the kinematic frame is calculated according to

$$\begin{aligned} \left[ \begin{array}{c} f_x \\ f_y \\ f_z \end{array} \right] _K = \mathbf {M}_{KB} \left[ \begin{array}{c} f_x \\ f_y \\ f_z \end{array} \right] _B = \mathbf {M}_{KO}\mathbf {M}_{OB} \left[ \begin{array}{c} f_x \\ f_y \\ f_z \end{array} \right] _B, \end{aligned}$$
(17)

with \(\mathbf {M}_{KO}\left( \gamma _K, \chi _K\right) \) and \(\mathbf {M}_{OB}\left( \varPsi , \varTheta , \varPhi \right) \) being the transformation matrices from the O into the K frame, and from the B into the O frame, respectively. The kinematic acceleration and path curvatures are then estimated using the Eqs. (68),

$$\begin{aligned} \hat{\nu }_{\dot{V}_K}&= f_{x,K} -g \sin \gamma _K, \end{aligned}$$
(18)
$$\begin{aligned} \hat{\nu }_{\dot{\chi }_K}&= \frac{1}{V_K\cos \gamma _K}f_{y,K}, \end{aligned}$$
(19)
$$\begin{aligned} \hat{\nu }_{\dot{\gamma }_K}&= \frac{1}{V_K}\left( f_{z,K}-g\cos \gamma _K\right) . \end{aligned}$$
(20)

For the control of the airspeed, the aerodynamic acceleration is to be estimated, not the kinematic; however, the aerodynamic flight path and course angles, \(\gamma _A\) and \(\chi _A\), are unknown without wind information. Assuming a neglectable sideslip, i.e. \(\chi _A \approx \varPsi \), and a horizontal, sufficiently stationary wind field, i.e. \(\gamma _A \approx \arcsin (\dot{h}/V_{TAS})\), the aerodynamic acceleration can be estimated analog to Eqs. (17)–(18), with \(\mathbf {M}_{AB}(\gamma _A, \chi _A = \varPsi , \varTheta , \varPhi )\) according to

$$\begin{aligned} f_{x,A} = \left[ \begin{array}{ccc} \cos (\varTheta - \gamma _A)&\sin \varPhi \sin (\varTheta -\gamma _A)&\cos \varPhi \sin (\varTheta -\gamma _A) \end{array} \right] \left[ \begin{array}{c} f_x \\ f_y \\ f_z \end{array} \right] _B, \end{aligned}$$
(21)

and

$$\begin{aligned} \hat{\nu }_{\dot{V}_A} = f_{x,A} -g \sin \gamma _A. \end{aligned}$$
(22)

The hedging signals are feedback signals; hence, the reference models cannot be considered as open-loop, feedforward elements when considering the stability of the system. Furthermore, they have to be considered as feedback signals when assessing the system robustness and stability, see Sect. 6.

5.5 Path Loop Error Dynamics and Stabilizing Controllers

The pseudo-control hedging ensures that the reference model state is adjusted to the estimated response of the plant. However, due to a number of different reasons, e.g. neglected dynamics, sensor errors and delays, and external disturbances, the estimated response of the plant and the reference model state do not perfectly match the response of the true plant. To stabilize the error dynamics, PI feedback controllers are included, and their output added to the pseudo controls entering the inversion,

$$\begin{aligned} \nu _{EC} = k_P(y_{RM}-y)+k_I\int (y_{RM}-y) dt, \end{aligned}$$
(23)
$$\begin{aligned} \nu = \nu _{RM} + \nu _{EC}. \end{aligned}$$
(24)

The design of the error controller gains is based on linear models of the closed inner loop dynamics with disturbance settling times and closed loop stability margins as design criteria.

5.6 Energy Rate and Force Distribution Prioritization

The reference models are cross-coupled in order to provide dynamic control objective conflict resolution, by limiting acceleration and flight path commands in case of saturated energy flow, i.e. thrust control, see [2], and desired vertical and lateral path curvature in case of saturated transverse force control, i.e. normal specific force. A detailed description of the energy rate and force distribution prioritization is outside the scope of this paper.

5.7 Command Selection and Transformation

The flight path controller outputs path curvature commands to the inner loop. Consequently, just the lateral and vertical curvature commands, \(f_{y,K}\) and \(\varDelta f_{z,K}\), respectively, are forwarded to the inner loop. For the inner loop control, these commands are transformed to a bank angle command in the lateral plane and a normal body load factor command in the longitudinal plane. First the incremental specific force commands are transformed into the O frame according to

$$\begin{aligned} \frac{1}{g}\left( \begin{array}{c} \varDelta f_{x,C} \\ f_{y,C} \\ \varDelta f_{z,C} \end{array} \right) _O = \frac{1}{g} \mathbf {M}_{OK}\left( \begin{array}{c} \varDelta f_{x,C} \\ f_{y,C} \\ \varDelta f_{z,C} \end{array} \right) _K \end{aligned}$$
(25)

The command specified here contains only the specific forces required for curvature. Hence, the steady state specific force divided by gravity is added,

$$\begin{aligned} \frac{1}{g}\left( \begin{array}{c} f_{x,C} \\ f_{y,C} \\ f_{z,C} \end{array} \right) _O = \frac{1}{g}\left( \begin{array}{c} \varDelta f_{x,C} \\ f_{y,C} \\ \varDelta f_{z,C} \end{array} \right) _O - \left( \begin{array}{c} 0 \\ 0 \\ 1 \end{array} \right) _O \end{aligned}$$
(26)

The full specific force command vector is then further transformed into the intermediate body-fixed system Z,

$$\begin{aligned} \frac{1}{g}\left( \begin{array}{c} f_{x,C} \\ f_{y,C} \\ f_{z,C} \end{array} \right) _Z = \frac{1}{g} \mathbf {M}_{ZO}\left( \begin{array}{c} f_{x,C} \\ f_{y,C} \\ f_{z,C} \end{array} \right) _O \end{aligned}$$
(27)

In order to obtain the load factor and bank angle command to the inner loop, consider the following transformation between the intermediate body-fixed (Z) and the body-fixed (B) system,

$$\begin{aligned} \frac{1}{g}\left( \begin{array}{c} f_{x,C} \\ f_{y,C} \\ f_{z,C} \end{array} \right) _B = \left[ \begin{array}{ccc} 1 &{} 0 &{} \\ 0 &{} \cos \varPhi &{} \sin \varPhi \\ 0 &{} -\sin \varPhi &{} \cos \varPhi \end{array} \right] \frac{1}{g} \left( \begin{array}{c} f_{x,C} \\ f_{y,C} \\ f_{z,C} \end{array} \right) _Z \end{aligned}$$
(28)

The x-axis is not controlled by the inner loop, since aerodynamic speed control is used. Therefore, the x-component is not considered, which results in a small error in the z-component. From the second and third rows, the following equations for the normal and lateral load factor commands can be obtained,

$$\begin{aligned} \frac{f_{y,B,C}}{g}&= \frac{f_{y,Z,C}}{g}\cos \varPhi + \frac{f_{z,Z,C}}{g}\sin \varPhi , \end{aligned}$$
(29)
$$\begin{aligned} \frac{f_{z,B,C}}{g}&= -\frac{f_{y,Z,C}}{g}\sin \varPhi + \frac{f_{z,Z,C}}{g}\cos \varPhi . \end{aligned}$$
(30)

From the requirement to fly a coordinated curve, i.e. \(f_{y,B} = 0\), the required bank angle for achieving the lateral force command can be calculated from Eq. (29) by setting \(f_{y,B,C} = 0\) and solving for \(\varPhi \),

$$\begin{aligned} \varPhi _C = \arctan \left( -\frac{f_{y,Z,C}}{f_{z,Z,C}}\right) . \end{aligned}$$
(31)

In order to obtain the body-fixed load factor command \(f_{z,B,C}/g\), Eq. (31) rewritten as \(f_{y,Z,C} = - f_{z,Z,C} \tan \varPhi _C\) can be inserted into Eq. (30), which gives

$$\begin{aligned} \frac{f_{z,B,C}}{g} = \frac{f_{z,Z,C}}{g}\sin \varPhi _C\tan \varPhi _C + \frac{f_{z,Z,C}}{g}\cos \varPhi _C = \frac{f_{z,Z,C}}{g} \frac{1}{\cos \varPhi _C}. \end{aligned}$$
(32)

Note that a load factor command calculated according to Eq. (32), based on a bank angle command according to Eq. (31), would lead to a velodrome-like curve, since the dynamics of the load factor is normally much faster than the bank angle dynamics, i.e. the aircraft would reach the required load factor increment for curve compensation (calculated based on the command bank angle) before the corresponding bank angle has been achieved, leading to a “pull-up then bank” behavior. This can be mitigated by calculating the load factor command based on the actual bank angle instead of the commanded, i.e.

$$\begin{aligned} \frac{f_{z,B,C}}{g} = \frac{f_{z,Z,C}}{g} \frac{1}{\cos \varPhi }. \end{aligned}$$
(33)

This would on the other hand result in a small delay in the load factor response. It would be possible to use a modified bank angle command \(\tilde{\varPhi }_C\) for the calculation of the load factor command, e.g. according to \(\tilde{\varPhi }_C = \varPhi + \varDelta T \cdot p\), where T is some time constant and p the current roll rate, or according to some function of the difference between the bank angle command according to Eq. (31) and the measured bank angle, \(\tilde{\varPhi }_C = f(\varPhi _C - \varPhi )\).

5.8 Normal and Lateral Force Control - Inner Loop

The longitudinal inner loop controller employs the normal body load factor and the pitch rate as feedback for a PI controller. The lateral inner loop controller is a MIMO control structure designed to track the bank angle command \(\varPhi _{cmd}\) and reduce the body lateral acceleration \(f_{y,B}\) to zero. For this purpose, the roll and pitch rates are fed back along with the lateral acceleration and the bank angle command.

The current gains are chosen in such a way that the inherent dynamics of the DA42 are not changed significantly. In the lateral plane, the roll dynamics and the natural frequency of the Dutch roll are maintained while the yaw damping is increased. Furthermore, the spiral pole is set to −1 for the whole envelope. In the longitudinal plane, the pitch damping is increased and the nominal load factor command system is implemented. The tracking performance is achieved by the feedforward part while the feedback is designed primarily for disturbance rejection.

5.9 Linear Force Control - Thrust Loop

The thrust loop controls the linear specific force \(\varDelta f_{x,A}\) by adjusting the throttle position \(\delta _T\). The required thrust change is given by

$$\begin{aligned} \varDelta T_C&= \frac{\varDelta \dot{E}_{tot,C}}{V_A} = m\left( \varDelta f_{x,A,C} - \varDelta f_{x,A}\right) \\ \nonumber&= m \cdot \left( \nu _{\dot{V}_A}-\hat{\nu }_{\dot{V}}\right) , \end{aligned}$$
(34)

where \(\nu _{\dot{V}_A}\) is the pseudo control acceleration command from the speed loop, and \(\hat{\nu }_{\dot{V}}\) is the estimated kinematic acceleration (according to Eq. (18)). The required change in throttle position \(\varDelta \delta _{T,C}\) for a given thrust change is calculated by first taking the inverse of the thrust as function of speed to determine the maximum thrust available for the current speed, and set the throttle according to the ratio of the required and available maximum thrust. An integrator part ensures static accuracy for the thrust control in the case of engine model errors or uncertainties,

$$\begin{aligned} \varDelta \delta _{T,C} = \frac{1}{\frac{\varDelta T}{\varDelta \delta _T}} \cdot \left( k_{P,\delta _T}\varDelta T + k_{I,\delta _T} \int \varDelta T dt \right) . \end{aligned}$$
(35)

The integrator further allows a direct feedforward throttle rate command, \(\dot{\delta }_{T,C}\), e.g. from the vertical flight path loop, in order to compensate the additional required thrust during vertical path maneuvering. For initial flight testing, due to uncertain propulsion dynamics, the bandwidth of the thrust control loop was chosen quite low, in order to provide smooth throttle commands in the presence of turbulence and sufficient stability margins and robustness.

6 Controller Verification

6.1 Linear and Non-linear Control Law Assessment

The linear assessment is based on the linear models of the closed inner loop and plant dynamics, i.e. models with the flight path controller and autothrust outputs \(f_{z,B,C}/g\) and \(\delta _{T,C}\) as inputs, and the aircraft states as outputs. The linear flight path control structure, i.e. the reference models and error controllers, together with linearized models of the plant response estimation, inversion and command transformation for different flight conditions, are connected to full linear versions of the closed loop longitudinal and lateral control systems, respectively. The linear systems are implemented as generalized state-space models in MATLAB, with parametrized gains and switches, in order to configure the models for different control modes and simplify analysis of loop stability margins. For each loop, step responses and settling times are analyzed with respect to the requirements, as well as stability margins using Bode and Nichols charts.

The nonlinear assessment includes verification of step responses and accuracy in smooth and turbulent air. A dedicated test harness including the flight path controller, the inner loop controller, flight dynamics model, and sensor and actuation models including transfer delays, is used for automated assessment over the envelope, see Fig. 4.

Fig. 4
figure 4

Automated nonlinear assessment over the envelope with statistics and requirements checking

Fig. 5
figure 5

Vertical and lateral flight path command tracking

6.2 Model-in-the-Loop Verification

Objective of the Model-in-the-Loop (MIL) simulation is to verify correct functionality of the controller implementation, i.e. the design model from which the application code is generated. The Model-in-the-Loop (MIL) verification uses a similar test setup as the nonlinear performance assessment, but with extended input mapping to be able to trigger every model input signal, in order to reach all states of the model. The Model-in-the-Loop (MIL) uses the MATLAB Unit Test Framework to automatize the testing, with customized functions to initialize and run the simulation model and evaluate the outputs. Test vectors are given as MATLAB time series objects, and a testing grid is defined over which the tests are to be performed. Model coverage is measured incrementally over a complete test run.

6.3 Hardware- and Aircraft-in-the-Loop Simulation

Objective of the Hardware-in-the-Loop (HIL) and Aircraft-in-the-Loop (AIL) simulation is to verify the correct functionality of the system, i.e. the controller running on its target hardware with a real-time environment simulation, of all digital, analog and discrete interfaces, and all interfacing subsystems such as actuators, data concentrator units and human-machine interfaces, in a laboratory setup, and installed in the aircraft, respectively. The flight control sensors, i.e. navigation and air data systems are simulated, but feeding the controller via real interfaces.

7 Flight Test Results

Initial flight testing was performed in early 2016, with incremental testing of first inner loop controller, then flight path controller [3], and finally waypoint based trajectory navigation [10]. Figure 5 shows results from flight testing performed in August 2016, in light turbulent conditions, from a segment of the flight test where the flight path controller was active in all three axes. Figure 5 shows good tracking performance of both the vertical and lateral flight path loops, as well as inner loop load factor and bank angle commands, during separate and concurrent maneuvers in the vertical and lateral plane, respectively. Flight path angle commands were smoothly acquired and maintained largely within 0.2\(^\circ \). Course angle commands were likewise smoothly acquired without overshoots and maintained within 0.5\(^\circ \). The indicated airspeed increases during descending maneuvers, as the thrust is saturated at its minimum, however returns to the commanded 100 kts when the aircraft levels off.

8 Conclusions and Outlook

The development of an automatic flight path controller, as part of a modular automatic flight guidance and control system, has been presented along with flight test results using a DA42 flying testbed. Verification activities included linear and nonlinear controller assessment, model-level simulations, hardware- and aircraft-in-the-loop testing and finally flight testing. The flight test results has demonstrated the feasibility of the control approach, showing good vertical and lateral path tracking and disturbance performance also in turbulent atmospheric conditions. Further flight testing will focus on extending the flight envelope and allow increased control bandwidth, in order to allow more aggressive path and trajectory control.