1 Introduction

Tiltrotor aircraft represent a promising solution to future civil transportation requirements [1, 2] due to their broader flight envelope compared to conventional and compound helicopters. Vertical Takeoff and Landing (VTOL) capabilities of a helicopter combined with flight at relatively high cruise speeds and range like a fixed wing airplane, make tiltrotors an effective point-to-point fast means of transportation. Their multi-role capability not only makes these rotorcraft ideal for urban air mobility, but also for energy and medical services, and search and rescue missions.

To improve the design of future tiltrotor aircraft, it is essential that the handling qualities are assessed at the initial design phase through real-time piloted simulations and improved through the development of Stability and Control Augmentation Systems (SCAS). Furthermore, aeroelastic loads must also be predicted and alleviated through the design of Structural Load Alleviation (SLA) control. To perform such piloted simulations and for the purpose of Flight Control System (FCS) design, it is essential to develop a full flight-envelope high-fidelity flight dynamics model. The dynamics of a tiltrotor aircraft do not only change with the flight conditions but also with the aircraft configurations, and hence it is particularly challenging to develop a continuous flight dynamics model for a tiltrotor aircraft due to three distinct flight modes, namely helicopter, conversion, and airplane. A number of studies have presented various approaches to model the dynamics of tiltrotor aircraft. These models include detailed mathematical simulation models [3,4,5] for the purpose of real-time flight simulations, aeroelastic analytical [6,7,8] and numerical models [9, 10], Linear Time Varying (LTV) model [11], and frequency domain models identified from flight test data [12,13,14]. The flight dynamics models listed in the foregoing sentence are either low-fidelity models or are only valid for discrete flight conditions and aircraft configurations.

A better approach to develop a continuous model for the varying dynamics of tiltrotor aircraft is to employ the model stitching technique [15] that comes under the category of quasi-Linear Parameter Varying (qLPV) modeling technique [16]. In this technique, linear state-space models at discrete flight conditions, or aircraft configurations, are stitched together to form a continuous and time-varying flight dynamics model that encompasses the entire flight envelope. The model is quasi-nonlinear in that the linear stability and control derivatives and the corresponding trim data are interpolated through the implementation of lookup tables as function of time-varying scheduling parameters, but nonlinear equations for rigid body motion and gravitational force equations are implemented.

The qLPV modeling technique has already been used for a wide array of aircraft. These include fixed wing airplane such as Cessna CJ1 [15], Boeing 747 [16], and Learjet-25 [17]; and helicopters such as Sikorsky UH-60 Black Hawk [15], Bell 206 [18], and Eurocopter EC 135 ACT-FHS [19]. With reference to modeling a tiltrotor aircraft using qLPV modeling technique, only a limited number of studies have been conducted. For the purpose of handling qualities analyses, a qLPV simulation model including 13 states (six-degree-of-freedom rigid body states and rotor flapping states) was developed for NASA’ LCTR2 (Large Civil Tiltrotor, 2nd generation) using only two scheduling parameters: velocity V and nacelle incidence angle \(\beta _{i}\), at hover through low speed by Lawrence et al. [20]. Similarly, a qLPV model containing 51 states (six-degrees-of-freedom rigid body states, rotor states, inflow states and nacelle dynamics) scheduled with three parameters: velocity V, nacelle incidence angle \(\beta _{i}\), and altitude, was developed for a generic tiltrotor configuration by Berger et al. [21]. In both studies, engine-governor dynamics were missing, limited number of rotor elastic states were modeled and wing aeroelastic states were neglected, which play an important role in Rotorcraft Pilot Coupling (RPC) events [8, 10].

The qLPV model can be utilized for the purpose of full-mission real-time piloted simulations and Flight Control System (FCS) design. The flight envelope of such simulations can be extended by increasing the range and the number of scheduling parameters in a qLPV model. Additionally, the number of states of linear state-space point models can be increased to improve the fidelity of a qLPV model. However, increasing the number of scheduling parameters will result in multivariate interpolation and the increase in number of states will lead to increase in the number of interpolations. In either case, the computational complexity will increase, limiting the real-time simulation capabilities.

The contribution and focus of the current paper is to develop a high-order aeroelastic qLPV model for tiltrotor aircraft representative of NASA’s XV-15 with Advanced Technology Blades (ATB) [7], with four scheduling parameters: altitude h, nacelle incidence angle \(\beta _{i}\), wing flap angle \(\delta _{f}\), and velocity V. The high-order model includes engine-governor dynamics, rotor elastic states, and wing elastic states. The aeroelastic qLPV model for the tiltrotor aircraft is developed such that it can be used not only for the purpose of real-time piloted simulations and Flight Control System (FCS) design to meet the handling qualities requirement, but also for the prediction and subsequently, alleviation of aeroelastic loads at early design stage. Furthermore, a comprehensive computational complexity analysis of the qLPV modeling technique assembled with lookup tables is presented with the aim to investigate the effect of increasing number of scheduling parameters and states on the computational efficiency.

The paper is arranged into sections as follows: Theoretical background on LPV and qLPV modeling approaches is discussed in Sect. 2. Section 3 presents the local state-space models for XV-15 at discrete trim points. The qLPV model for XV-15 is detailed in Sect. 4. A thorough computational complexity analysis of the qLPV modeling approach is presented in Sect. 5. Last, a brief conclusion is presented in Sect. 6.

2 Theory

Linear state-space models that depend on time-varying scheduling parameters \(\varvec{\rho }(t)\) are called Linear Parameter Varying (LPV). Formally, a continuous time LPV model is defined as follows [16, 22]:

$$\begin{aligned} \begin{array}{l} \varvec{\dot{x}}\left( t \right) = {\varvec{A}} \left( {\varvec{\rho } \left( t \right) } \right) \Delta {\varvec{x}}\left( t \right) + {\varvec{B}}\left( {\varvec{\rho } \left( t \right) } \right) \Delta {\varvec{u}}\left( t \right) \\ \Delta {\varvec{y}}\left( t \right) = {\varvec{C}}\left( {\varvec{\rho } \left( t \right) } \right) \Delta {\varvec{x}}\left( t \right) + {\varvec{D}}\left( {\varvec{\rho } \left( t \right) } \right) \Delta {\varvec{u}}\left( t \right) \end{array} \end{aligned}$$
(1)

where \(\Delta {\varvec{x}}\left( t \right) = {{\varvec{x}}\left( t \right) } - {{\varvec{x}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) }\), \(\Delta {\varvec{u}}\left( t \right) = {{\varvec{u}}\left( t \right) } - {{\varvec{u}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) }\) and \(\Delta {\varvec{y}}\left( t \right) = {{\varvec{y}}\left( t \right) } - {{\varvec{y}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) }\) are the state, control, and output perturbation vectors, respectively. The LPV model represented by Eq. 1 can be obtained through analytical methods (such as Jacobian linearization, state transformation and function substitution) or experimental methods or combination of both [16, 22].

A particular case of LPV system is a quasi-Linear Parameter-Varying (qLPV) system, where a subset of scheduling parameter vector is also state of the system. Consider a state vector \({\varvec{x}}\left( t \right) \) that can be decomposed into scheduling state vector \({\varvec{z}}\left( t \right) \subset \varvec{\rho }\left( t \right) \) and non-scheduling state vector \({\varvec{w}}\left( t \right) \not \subset \varvec{\rho }\left( t \right) \); then the state equation of a qLPV system can be written as follows:

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} {\varvec{\dot{z}}\left( t \right) }\\ {\varvec{\dot{w}}\left( t \right) } \end{array}} \right] = {\varvec{A}}\left( {\varvec{\rho } \left( t \right) } \right) \left[ {\begin{array}{*{20}{c}} \Delta {{\varvec{z}}\left( t \right) }\\ \Delta {{\varvec{w}}\left( t \right) } \end{array}} \right] + {\varvec{B}}\left( {\varvec{\rho } \left( t \right) } \right) \Delta {\varvec{u}}\left( t \right) \end{aligned}$$
(2)

The scheduling parameter vector can be composed of both scheduling states \({\varvec{z}}\left( t \right) \) and exogenous scheduling variables \(\varvec{\xi }\left( t \right) \), i.e., \(\varvec{\rho }\left( t \right) = \left[ {\varvec{z}}^{T}\left( t \right) \quad \varvec{\xi }^{T} \left( t \right) \right] ^{T}\). Equation 2 can be rewritten in terms of total states and total control inputs as follows:

$$\begin{aligned}&\left[ {\begin{array}{*{20}{c}} {\varvec{\dot{z}}\left( t \right) }\\ {\varvec{\dot{w}}\left( t \right) } \end{array}} \right] = {\varvec{A}}\left( {\varvec{\rho } \left( t \right) } \right) \left[ {\begin{array}{*{20}{c}} {{\varvec{z}}\left( t \right) } - {{\varvec{z}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) }\\ {{\varvec{w}}\left( t \right) } - {{\varvec{w}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) } \end{array}} \right] \nonumber \\&\quad \quad \quad+ {\varvec{B}}\left( {\varvec{\rho } \left( t \right) } \right) \left( {{\varvec{u}}\left( t \right) } - {{\varvec{u}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) } \right) \end{aligned}$$
(3)

In the above equation, \({\varvec{x}}_{trim}\left( \varvec{\rho } \left( t \right) \right) = \left[ {\varvec{z}}_{trim}^{T} \left( \varvec{\rho } \left( t \right) \right) \quad {\varvec{w}}_{trim}^{T} \left( \varvec{\rho } \left( t \right) \right) \right] ^{T}\) and \({\varvec{u}}_{trim}\left( \varvec{\rho }\left( t \right) \right) \) are the vector of trim states and trim control inputs, respectively. Since \({\varvec{z}}\left( t \right) \) is scheduling parameter and also state of the system, \({\varvec{z}}\left( t \right) - {\varvec{z}}_{trim}\left( {\varvec{\rho } \left( t \right) } \right) = 0\) is true at all times. Therefore, all the stability derivatives with respect to \({\varvec{z}}\left( t \right) \) are set to zero. However, the effect of scheduling states \({\varvec{z}}\left( t \right) \) are preserved implicitly in the model by variation of the trim states and trim control inputs, such that the dynamic response of the model at anchor points is preserved [15, 17, 19, 20].

A further extension to the qLPV model, referred to as “model stitching technique”, is proposed by Tobias and Tischler [15], where a set of linear state-space models and trim data at discrete trim points (also known as anchor points) are combined or stitched together to form a continuous full flight-envelope simulation model. The state-space entries of linear systems and the corresponding trim data, obtained at discrete anchor points, are interpolated through the implementation of lookup tables as function of instantaneous values of the scheduling parameters. Furthermore, the qLPV model is augmented with the rigid body nonlinear equations of motion and the nonlinear gravitational equations. This gives an advantage to the stitched model of being essentially nonlinear with linear time varying aerodynamics. In the current paper, this technique is employed to develop the flight dynamics model for XV-15.

Figure 1 shows the model structure of high-order qLPV model implemented through lookup tables augmented with the nonlinear equations of motion, the so-called model stitching technique. First, the total number of states are divided into six rigid body states \({\varvec{x}}_{6} = \left[ u \quad v \quad w \quad p \quad q \quad r \right] ^{T}\) and n higher-order states \({\varvec{x}}_{H} = \left[ x_{1H} \ldots x_{nH} \right] ^{T}\), such that the state matrix is partitioned into rigid body stability derivatives \({\varvec{A}}_{66}\), higher-order to rigid body derivatives \({\varvec{A}}_{6H}\), rigid body to higher-order derivatives \({\varvec{A}}_{H6}\), and higher-order derivatives \({\varvec{A}}_{HH}\). Similarly, the control matrix is divided into rigid body control derivatives \({\varvec{B}}_{6C}\) and higher-order control derivatives \({\varvec{B}}_{HC}\). Then, the lookup tables of trim states, trim control inputs, and stability & control derivatives as function of scheduling parameters are implemented. The interpolated trim states and trim control inputs are subtracted from the current states and control inputs to obtain the state and control input perturbations, respectively. These perturbations are then multiplied with the interpolated linear state-space matrices to obtain the rigid body and the higher-order state accelerations, i.e.,

$$\begin{aligned} \begin{bmatrix} \dot{{\varvec{x}}}_{6} \\ \dot{{\varvec{x}}}_{H} \end{bmatrix} = \begin{bmatrix} {\varvec{A}}_{66} &{} {\varvec{A}}_{6H} \\ {\varvec{A}}_{H6} &{} {\varvec{A}}_{HH} \end{bmatrix} \begin{bmatrix} \Delta {\varvec{x}}_{6} \\ \Delta {\varvec{x}}_{H} \end{bmatrix} + \begin{bmatrix} {\varvec{B}}_{6C} \\ {\varvec{B}}_{HC} \end{bmatrix} \Delta {\varvec{u}} \end{aligned}$$
(4)
Fig. 1
figure 1

qLPV model structure augmented with nonlinear equations of motion “model stitching technique”

Next, the rigid body mass matrix \({\mathcal {M}}\) composed of aircraft mass m and inertia tensor \({\varvec{J}}\) is introduced as follows:

$$\begin{aligned} {{{\mathcal {M}}}} = \left[ {\begin{array}{*{20}{c}} m&{}0&{}0&{}{}&{}{}&{}{}\\ 0&{}m&{}0&{}{}&{}{{{\varvec{0}}_{3 \times 3}}}&{}{}\\ 0&{}0&{}m&{}{}&{}{}&{}{}\\ {}&{}{}&{}{}&{}{{J_{xx}}}&{}0&{}{ - {J_{xz}}}\\ {}&{}{{{\varvec{0}}_{3 \times 3}}}&{}{}&{}0&{}{{J_{yy}}}&{}0\\ {}&{}{}&{}{}&{}{ - {J_{xz}}}&{}0&{}{{J_{zz}}} \end{array}} \right] \end{aligned}$$
(5)

Mass matrix \({\mathcal {M}}\) is multiplied with the rigid body accelerations \(\varvec{\dot{x}}_{6}\), obtained through Eq. 4, to obtain the perturbed aerodynamic forces \(\Delta {\varvec{F}}_{aero}\) and perturbed aerodynamic moments \(\Delta {\varvec{M}}_{aero}\), since the linearized flight mechanics equation reads as follows:

$$\begin{aligned} {{{\mathcal {M}}}} \varvec{\dot{x}}_{6} = \begin{bmatrix} \Delta {\varvec{F}}_{aero}\\ \Delta {\varvec{M}}_{aero} \end{bmatrix} \end{aligned}$$
(6)

The perturbed aerodynamic forces are summed with the trim aerodynamic forces [23] of Eq. 7, to yield the following total aerodynamic forces: \({\varvec{F}}_{aero} = \Delta {\varvec{F}}_{aero} + {\varvec{F}}_{trim}\) and total aerodynamic moments: \({\varvec{M}}_{aero} = \Delta {\varvec{M}}_{aero}\).

$$\begin{aligned} \begin{array}{l} {X_{trim}} = mg\sin \theta _{trim} \left( \varvec{\rho }\left( t\right) \right) \\ {Y_{trim}} = - mg\cos \theta _{trim} \left( \varvec{\rho }\left( t\right) \right) \sin \phi _{trim} \left( \varvec{\rho }\left( t\right) \right) \\ {Z_{trim}} = - mg\cos \theta _{trim} \left( \varvec{\rho }\left( t\right) \right) \cos \phi _{trim} \left( \varvec{\rho }\left( t\right) \right) \end{array} \end{aligned}$$
(7)

Subsequently, the total aerodynamic forces are added to the nonlinear gravitational forces [24], shown in Eq. 8, to obtain the following total forces: \({\varvec{F}}_{total} = {\varvec{F}}_{aero} + {\varvec{F}}_{grav}\) and following total moments: \({\varvec{M}}_{total} = {\varvec{M}}_{aero}\).

$$\begin{aligned} \begin{array}{l} {X_{\mathrm{{grav}}}} = - mg\sin \theta \\ {Y_{\mathrm{{grav}}}} = mg\cos \theta \sin \phi \\ {Z_{\mathrm{{grav}}}} = mg\cos \theta \cos \phi \end{array} \end{aligned}$$
(8)

Notice that, in order to determine the aerodynamic trim forces in Eq. 7, the trim Euler angles are required that are obtained through lookup table interpolation of the trim data. On the other hand, for the computation of gravitational forces in Eq. 8, no lookup of trim Euler angles is performed, but rather the current instantaneous values of the aircraft Euler angles are used.

In order to obtain the rigid body state derivatives \(\varvec{\dot{x}}_{9}\) (composed of six rigid body accelerations \(\varvec{\dot{x}}_{6}\) and three Euler angle rates), the total forces and moments are passed through the six-degree-of-freedom body-axes nonlinear equations of motion [24]. As a last step in the qLPV model structure, the rigid body state derivatives \(\varvec{\dot{x}}_{9}\) along with the higher-order state derivatives \(\varvec{\dot{x}}_{H}\), obtained from Eq. 4, are integrated to obtain the current states.

It should be noted that, in this particular technique, i.e. qLPV model augmented with the nonlinear equations of motion, the state matrix \({\varvec{A}}_{66}\) contains only the stability derivatives; it does not contain the gravity, the Coriolis and the kinematic terms, and it does not include the Euler angle states \(\left[ \phi \quad \theta \quad \psi \right] \). The effect of gravity is later incorporated in the nonlinear gravitational force equations, and the Coriolis effect and the kinematics are added within the nonlinear equations of motion, represented by the yellow blocks in Fig. 1.

3 XV-15 state-space point models

Linear state-space models at discrete trim points serve as the building blocks for developing a continuous qLPV model. In the current work, simulation tool MASST (Modern Aeroservoelastic State Space Tools), developed at Politecnico di Milano [25, 26], is employed to generate the local state-space models of XV-15 using the data published in Refs. [4, 7]. MASST implements the rotor aeroelastic models obtained from CAMRAD/JA [27] and the flexible airframe is implemented from aeroelastic NASTRAN model.

Local state-space models obtained through MASST contain 91 states and 11 control inputs, and are listed in Table 1. The model includes the flexible rotor blades with three coupled flap/lag bending modes, two torsional modes (one rigid pitch and one elastic torsion), and one gimbal mode. Furthermore, the model also includes the symmetrical wing bending mode that is the main source of wing-pilot vertical bounce RPC event [8, 10].

Table 1 Description of XV-15 state-space models

Figure 2 shows a zoomed-out and zoomed-in view of the eigenvalues of the full-order linear state-space models in helicopter mode at 0 kts (hover) and in airplane mode at 180 kts at sea level. For two rotors, there are two of each rotor modes which are labeled by their dominant motion. All the rotor modes, except for regressive gimbal and regressive lag, are placed above 10 Hz, far away from RPC frequency range. However, these modes are important to accurately model and perhaps alleviate the critical aeroelastic loads [29]. Symmetrical wing bending, labeled as SWB in the zoomed-in view, is placed at \(-0.67 \pm 15.26j\) in hover. Lastly, the rigid body modes are listed in Table 2. Similar to a conventional helicopter, the longitudinal phugoid and dutch roll modes are unstable in helicopter mode in hover. As the aircraft transitions from helicopter to airplane mode and the speed of the aircraft increases, these modes become stable. Furthermore, the pitch and heave subsidences in helicopter mode are placed on the real axis at \(-0.64\) and \(-0.26\), respectively. As the speed increases, these modes combine to form short-period mode.

Fig. 2
figure 2

XV-15 eigenvalues in helicopter (\(V = 0\) kts) and airplane (\(V = 180\) kts) mode at sea level (left: zoomed-out, right: zoomed-in)

Table 2 XV-15 rigid body modes at sea level

3.1 Choice of scheduling parameters

In order to develop a qLPV simulation model, a minimal set of scheduling parameters need to be defined. It is essential to choose only the key scheduling parameters that affect the system dynamics significantly, because the computational complexity of implementing a qLPV model, as will be shown later in Sect. 5, and the numerical complexity of subsequent LPV control synthesis increases rapidly with the increasing number of scheduling parameters [30]. In the current study, qLPV model for XV-15 is developed using four scheduling parameters: altitude h, nacelle incidence angle \(\beta _{i}\), wing flap angle \(\delta _{f}\), and velocity V. Velocity and nacelle incidence angle are chosen as scheduling parameters for qLPV model of tiltrotor aircraft to accurately capture the changing dynamics, such that the entire conversion corridor of tiltrotor aircraft is encompassed.

Wing flap serves a dual purpose, i.e., functioning as a high lift device as well as reducing the wing download at hover and low speeds. Wing flap position not only affects the lower limit of conversion corridor of tiltrotor aircraft by delaying the wing stall [31], but also affects the dynamic behavior of the aircraft. The effect of wing flap setting on the dynamics of XV-15 is shown in Fig. 3, where the stability derivative \(X_{u}\) is plotted as function of velocity at four wing flap settings in helicopter mode, Fig. 3a, and in airplane mode, Fig. 3b. It is evident from the figure that the stability derivative in both configurations have different magnitudes at different wing flap settings. Therefore, for the sake of completeness and in order to explore the edges of conversion corridor, it is essential to add wing flap angle as a scheduling parameter. Furthermore, this will allow for simulating the failure scenarios, where the wing flap is stuck in one position.

Fig. 3
figure 3

Stability derivatives as function of velocity at discrete wing flap settings

Lastly, altitude is added as scheduling parameter to ensure continuous and smooth change in altitude during simulations. It is suggested in Ref. [17] that the variation in trim and dynamics with altitude can be accounted for by applying air density ratio scaling, without explicitly adding altitude as a scheduling parameter. This is true for fixed wing aircraft, however, for rotorcraft not all the derivatives scale correctly with air density. Therefore, altitude is also added as an additional scheduling parameter.

3.2 Anchor points

A collection of linear state-space models and trim data is generated on a four-dimensional grid of scheduling parameters. Models and the corresponding trim data are obtained by trimming the aircraft in symmetric flight (\(v = p = r = \phi = \psi = 0\)) at discrete anchor points spanning the entire conversion corridor. Furthermore, each model is obtained at two altitudes \(h = \left[ 0\quad 10000 \right] \) ft and four wing flap settings \(\delta _{f} = \left[ 0\quad 20\quad 40 \quad 75 \right] \) deg. Figure 4 shows the 2-D grid (velocity—nacelle incidence angle) of linear state-space models computed for each wing flap setting and altitude, along with the conversion corridor of XV-15 [32]. The figure also shows the grid points that are outside the conversion corridor where the models and the corresponding trim data are not available. The models at these grid points are obtained by clipping and keeping the edge models of either lowest or highest speed at a given nacelle incidence angle. This is done to construct a regular rectangular grid, which is a prerequisite to develop a model stitching simulation architecture [15].

Fig. 4
figure 4

XV-15 discrete linear state-space models and conversion corridor

To obtain the state-space models and trim data, grid spacing of 5 knots between 0 and 50 knots, 10 knots between 60 and 170 knots and 20 knots between 180 and 280 knots was deemed satisfactory. Finer grid spacing of 5 knots was chosen near hover to accurately capture the dynamics of the aircraft for the simulation of low-speed flight [15]. Similarly, lookup table implementation of the trim data and stability and control derivatives with models at only two altitudes, sea level and 10,000 ft (FL100), is sufficient to yield acceptable results. As an example, in Fig. 5, trim pitch attitude is shown as function of velocity at varying altitudes. The interpolated and extrapolated trim pitch attitudes at 6000 ft (FL60) and 15,000 ft (FL150), respectively, show good agreement with the original trim pitch angle obtained by MASST. The agreement between original pitch attitude and interpolated/extrapolated pitch attitude is consistent in all configurations, i.e., helicopter mode, Fig. 5a, conversion mode, Fig. 5b, c, and airplane mode, Fig. 5d.

Fig. 5
figure 5

Trim pitch attitude as function of velocity—altitude interpolation/extrapolation verification

Trim data and the elements of state and control matrices are interpolated offline by means of spline interpolation to obtain a finer grid, with a grid spacing of \(\Delta V = 5\) knots and \(\Delta \beta _{i} = 5^{\circ }.\) This data processing resulted in 8664 linear state-space models and corresponding trim data, spread over a four-dimensional grid of scheduling parameter vector \(\left[ {h \times {\beta _i} \times {\delta _f} \times V} \right] = \left[ {2 \times 19 \times 4 \times 57} \right] \).

3.3 Trim data

Trim surfaces as function of nacelle incidence angle and velocity at sea level and wing flap angle \(\delta _{f} = 20^{\circ }\) are presented in Fig. 6, featuring pitch attitude of aircraft, gimbal pitch for right rotor, elevator deflection, and collective pitch for right rotor. Values at trim points, where the models are obtained through MASST, are also depicted in the figure by black points. Aircraft trim pitch attitude, Fig. 6a, decreases with the increasing speed at all nacelle incidence angles. At a given speed, the trim pitch attitude increases with the decreasing nacelle incidence angle because as the aircraft transitions from helicopter to airplane mode, more lift is generated by the wings compared to the rotors. The trim rotor gimbal pitch (right rotor) is depicted in Fig. 6b; it decreases (flaps backward) with nacelle incidence angle from helicopter mode through to conversion mode. However, in airplane mode the trim gimbal pitch increases and grows further (flaps forward) with the increasing speed to compensate for the decreasing pitch attitude of the aircraft. The trim elevator deflection, Fig. 6c, keeps on increasing with the increasing speed (trailing edge down) to trim the aircraft at increasing pitch down attitude. Lastly, trim collective pitch (right rotor) is presented in Fig. 6d. As expected, the trim rotor collective pitch at high nacelle incidence angles (\(\beta _{i} \ge 75^{\circ }\)) follows the trend similar to that of a conventional helicopter. The trim rotor collective pitch decreases with the increasing speed until the minimum power required, and subsequently it starts to grow to overcome the drag. At lower nacelle incidence angles (\(\beta _{i} \le 60^{\circ }\)), the trim rotor collective pitch keeps the increasing speed of the aircraft constant by contributing towards the generation of thrust.

Fig. 6
figure 6

Trim surfaces at sea level and wing flap angle \(\delta _{f} = 20^{\circ }\)

4 Quasi-linear parameter varying model for XV-15

Referring to Fig. 1, qLPV model augmented with nonlinear equations of motion (stitched model) for XV-15 is developed by scheduling the linear state-space models, presented in Sect. 3, with four-dimensional scheduling parameter vector \(\varvec{\rho }\left( t \right) = \left[ h\quad \beta _{i}\quad \delta _{f}\quad V \right] ^{T}\). The model is quasi-LPV because two of the scheduling parameters, altitude h, and velocity V, are dependent upon the states of the system \(\left[ u\quad w\quad \theta \right] ^T \subset {\varvec{x}}\) by \(\dot{h} = u\sin \theta - w\cos \theta \) and \(V = \sqrt{{u^2} + {w^2}}\), respectively. This state dependency may result in nonlinear feedback of the scheduling states. It should be pointed out that, in the current study only the symmetric flight conditions are considered, therefore, altitude h and velocity V only depend on the longitudinal states. Lookup tables are implemented to interpolate the trim data and the state-space matrices as function of scheduling parameters to ensure smooth transition of the system dynamics. It should be noted that, in the case of state-space matrices, interpolation is based on low-pass filtered velocity, i.e., the scheduling parameter vector for stability and control derivatives is \(\varvec{\rho }\left( t \right) = \left[ h\quad \beta _{i}\quad \delta _{f}\quad V_\mathrm{{filtered}} \right] ^T\), where \(V_\mathrm{{filtered}}\) is defined as follows:

$$\begin{aligned} {V_{\mathrm{{filtered}}}} = \frac{{{\omega _c}}}{{s + {\omega _c}}}V \end{aligned}$$
(9)

with a cutoff frequency of \(\omega _{c} = 0.2\) rad/s [15]. This is done to ensure constant derivatives for short term motion, such that the accurate dynamic response at a local trim point is retained. Lookup tables of trim states, trim controls and state-space matrices are implemented and nonlinear gravitational force equations and nonlinear rigid body equations of motion are added to develop the complete qLPV simulation model for XV-15, as explained in Sect. 2 and depicted in Fig. 1.

It is important to note that the control derivatives associated with the wing flap angle \(\delta _{f}\) are set to zero in control matrix \({\varvec{B}}\), because \(\delta _{f}\) is one of the scheduling parameters. The effect of change in wing flap angle is preserved implicitly in the model, as mentioned previously in Sect. 2. Furthermore, unlike the \(\delta _{f}\) derivative, the u and w derivatives are not zeroed out because the body \(x-\)axis velocity u and the body \(z-\)axis velocity w are not considered as the scheduling parameters explicitly, but rather as a combination in the form of total velocity V.

4.1 Additional simulation elements

Additional simulation elements are incorporated within the qLPV model for XV-15. Details of these elements are discussed in the following sub-sections.

4.1.1 Rotor speed governor

The main purpose of rotor speed governor is to maintain a constant rotor speed. Figure 7 shows the block diagram of rotor speed governor that is based on the blade pitch governing scheme, the so called beta-governor [33]. The governor is a proportional-integral (PI) controller that operates on the rotor speed error feedback and outputs the desired changes in the blade collective pitch. The PI gains of the rotor speed governor are shown in Table 3. In helicopter mode, the governor pitch angle \(\theta _\mathrm{{gov}}\) is added to the blade collective pitch, commanded by the pilot through the collective stick \(X_{col}\) through the gearing ratio \(K_{0}\left( \beta _{i} \right) \). As the aircraft transitions from helicopter mode to airplane mode, the blade collective pitch from the collective stick is gradually phased out [3, 4]. In airplane mode, the collective stick only controls the throttle \(\delta _{t}\) through the gearing ratio \(K_{t}\) and the blade collective pitch is exclusively regulated by the governor. The reference rotor speed is \(\Omega _\mathrm{{ref}} = 62.93\) rad/s until 160 knots and at higher speeds the rotor speed is maintained at \(\Omega _\mathrm{{ref}} = 50.35\) rad/s.

Fig. 7
figure 7

XV-15 governor block diagram

Table 3 XV-15 rotor speed governor PI gains

4.1.2 Actuator dynamics

The qLPV model is incorporated with a first-order actuator dynamics model, Eq. 10. Table 4 lists the time constants and saturation limits [4, 34, 35] for control inputs.

$$\begin{aligned} {G_{act}}(s) = \frac{1}{{{\tau _{act}}s + 1}} \end{aligned}$$
(10)
Table 4 Actuator time constants and saturation limits

4.2 Frequency response analysis

Figure 8 shows a frequency response comparison of the XV-15 roll rate, pitch rate, and yaw rate to lateral stick, longitudinal stick and pedal input, respectively, in helicopter mode in hover. The frequency response comparison is shown between the high-order linear state-space point model and the qLPV model developed in the current study. The response is measured in deg/s, while the input is in inches of stick deflection. The qLPV model is incorporated with a first-order actuator dynamics as presented in Sect. 4.1.2, therefore, the same actuator dynamics is also added to the linear state-space point model. The qLPV model and the linear state-space point model compare extremely well with each other in all axes, showing that the grid spacing of trim data is implemented correctly in the qLPV model. The roll rate and the pitch rate response are dominated by the low-frequency phugoid pole.

Fig. 8
figure 8

XV-15 response to stick inputs in helicopter mode at 0 kts (hover)

The comparison of the primary on-axis frequency response in airplane mode at 170 kts is shown in Fig. 9. The frequency response of the roll rate, pitch rate, and yaw rate in deg/s is shown to aileron, elevator, and rudder deflection in degrees, respectively. Here again, the qLPV model compares extremely well with the linear state-space point model.

Fig. 9
figure 9

XV-15 response to aerodynamic surfaces in airplane mode at 170 kts

4.3 Time response analysis

The qLPV simulation model developed for XV-15 using the model stitching architecture is validated by comparing the SCAS off time responses with the data presented in the existing literature. Figures 10 and 11 present the time history correlation with NASA’s Generic Tilt Rotor Simulation (GTRS) model [5] in helicopter mode and airplane mode, respectively. In Fig. 10, pitch and yaw time histories in helicopter mode are shown. Figure 11 shows the comparison of pitch, roll, and yaw time histories between qLPV model and the GTRS model in airplane mode at 175 kts. Lastly, Fig. 12 shows the comparison with the XV-15 simulation model developed in FLIGHTLAB® [36] in conversion mode at nacelle incidence angle of \(\beta _{i} = 60^{\circ }\) and 120 kts. Table 5 presents the Root Meant Squared Error (RMSE) of the XV-15 time histories, presented in Figs. 10, 11, 12, as a measure of model time-domain accuracy. Except for yaw rate r in conversion mode, the RMSE is less than 2 deg/s (or deg for Euler angles) for all the three axes and aircraft modes, which reflects an acceptable level of accuracy, as suggested in Ref. [23]. The yaw rate response of qLPV model is slightly slower than the FLIGHTLAB® model, as can be seen in Fig. 12c. This shift in the time response is the reason for a slightly higher yaw rate RMSE in conversion mode.

Fig. 10
figure 10

Time history correlation of SCAS OFF response in helicopter mode at 0 kts (hover)

Fig. 11
figure 11

Time history correlation of SCAS OFF response in airplane mode at 175 kts

Fig. 12
figure 12

Time history correlation of SCAS OFF response in conversion mode (\(\beta _{i} = 60^{\circ }\)) at 120 kts

Table 5 Root Mean Squared Error (RMSE) of XV-15 time histories

5 Computational complexity

In order to use qLPV models for the purpose of full-mission real-time piloted simulations, it is necessary to identify performance bottlenecks by examining the computational complexity of such models and provide recommendations for improvement. The theory of computational complexity is concerned with the required computational resources to solve a given task in terms of space and time [37]. In the current paper, focus of the complexity analysis is on the computational efficiency of the algorithm in terms of time complexity. The efficiency of an algorithm is quantified by the number of basic operations, or the primitive operations, as function of input size [37]. The time to execute these basic operations (e.g., addition, multiplication etc.) is constant and does not depend on the input size. Therefore, total time of an algorithm is proportional to the number of primitive operations [38].

5.1 Complexity analysis of the qLPV modeling technique

Implementation of qLPV model that is augmented with the nonlinear equations of motion and is configured with the lookup tables, Fig. 1, can be divided into six parts. Each part is repeated every time step. For a given number of scheduling parameters \(n_{\rho }\), number of states \(n_{x}\), and number of control inputs \(n_{u}\), the number of primitive operations per time step can be roughly calculated:

  1. 1.

    Trim data lookup table is implemented in two steps: extraction and linear interpolation.

    1. (a)

      The number of primitive operations required for extraction depend on the index search method. For example, binary search method needs at most \(\sum \limits _{i = 1}^{{n_\rho }} {{{\log }_2}{k_i}}\) primitive operations [39], where \(k_{i}\) is the number of elements along each of the scheduling parameter.

    2. (b)

      The number of primitive operations required for \(n_{\rho }-\)dimensional linear interpolation is \(3\left( {{2^{{n_\rho }}} - 1} \right) \).

    Therefore, the total number of primitive operations for implementing lookup tables for \(n_{x}\) trim states and \(n_{u}\) trim control inputs is \(N_{1}\left( n_{\rho }, n_{x}, n_{u} \right) = \left( {{n_x} + {n_u}} \right) \left( {\sum \limits _{i = 1}^{{n_\rho }} {{{\log }_2}{k_i}} + 3\left( {{2^{{n_\rho }}} - 1} \right) } \right) \).

  2. 2.

    Similarly, implementing the lookup tables for stability & control derivatives, i.e., entries of state matrix \({\varvec{A}}\) and control matrix \({\varvec{B}}\) require \(N_{2}\left( n_{\rho }, n_{x} \right) = {{n_x}^{2}}\left( {\sum \limits _{i = 1}^{{n_\rho }} {{{\log }_2}{k_i}} + 3\left( {{2^{{n_\rho }}} - 1} \right) } \right) \) and \(N_{3}\left( n_{\rho }, n_{x}, n_{u} \right) = {{n_x}{n_u}}\left( {\sum \limits _{i = 1}^{{n_\rho }} {{{\log }_2}{k_i}} + 3\left( {{2^{{n_\rho }}} - 1} \right) } \right) \) primitive operations, respectively.

  3. 3.

    The number of primitive operations to compute state and control perturbations is \(N_{4}\left( n_{x}, n_{u} \right) = n_{x} + n_{u}\).

  4. 4.

    Considering the mathematical definition of matrix multiplication, the modified state equation, Eq. 4, require \(N_{5}\left( n_{x}, n_{u} \right) = 2{n_x}^2 - 15{n_x} - 6{n_u} + 2{n_x}{n_u} + 31\) primitive operations.

  5. 5.

    The number of primitive operations for nonlinear gravitational force equations and nonlinear equations of motion is constant and is denoted by \(N_{eom}\).

  6. 6.

    The number of primitive operations for integrating the state derivatives \(N_{int}\) depend on the integration scheme. Integrating all the state derivatives require \(N_{6} \left( n_{x} \right) = n_{x}N_{int}\) primitive operations.

The number of time steps \(N_{t}\) depend on the type of the solver, either variable-step or fixed-step. Furthermore, in case of continuous time implementation, the solver might subdivide the time step into minor steps. Following the discussion above, the total number of primitive operations required to implement the qLPV modeling technique configured with lookup tables is as follows:

$$\begin{aligned}&N_{p}\left( n_{\rho }, n_{x}, n_{u} \right) = \left( N_{1}\left( n_{\rho }, n_{x}, n_{u} \right) + N_{2}\left( n_{\rho }, n_{x} \right) \right. \nonumber \\&\quad \left. + N_{3}\left( n_{\rho }, n_{x}, n_{u} \right) + N_{4}\left( n_{x}, n_{u} \right) \right. \nonumber \\&\quad \quad\quad \left. + N_{5}\left( n_{x}, n_{u} \right) + N_{6}\left( n_{x} \right) + N_{eom} \right) N_{t} \end{aligned}$$
(11)

The number of primitive operations, and hence the computational efficiency, of qLPV model clearly depend on the number of states and the number of scheduling parameters. It should be noted that, the increase in number of states means improvement in fidelity and that the additional degrees of freedom can be incorporated into the model. On the other hand, increase in the number of scheduling parameters means that a broader dynamic flight envelope can be explored through the implementation of qLPV model.

Figure 13 shows the total number of primitive operations \(N_{p}\left( n_{\rho }, n_{x}, n_{u} \right) \) required to implement a qLPV model in semi-log scale as function of number of scheduling parameters \(n_{\rho }\) with different number of states \(n_{x}\). Number of primitive operations \(N_{p}\left( n_{\rho }, n_{x}, n_{u} \right) \) are approximated by assuming \(n_{u} = 10\), \(N_{eom} = 50\), \(N_{int} = 4\), and \(N_{t} = 1773\). Similarly, Fig. 14 shows the simulation time in semi-log scale to run a 10-second simulation of XV-15 qLPV model for three different numbers of scheduling parameters with three different number of states. Scheduling parameter vector for \(n_{\rho } = 2\) is: \(\varvec{\rho }\left( t \right) = \left[ \beta _{i}\quad V \right] \), \(n_{\rho } = 3\) is: \(\varvec{\rho }\left( t \right) = \left[ h\quad \beta _{i}\quad V \right] \) and \(n_{\rho } = 4\) is: \(\varvec{\rho }\left( t \right) = \left[ h\quad \beta _{i}\quad \delta _{f}\quad V \right] \). The simulation is implemented in Matlab®/S imulink® R2019a on an Intel® Xeon®, 3.70 GHz processor running Windows® 10 with simulation parameters listed in Table 6. The simulation step size is chosen to be sufficiently small enough to accurately capture the dynamics of the aircraft, while at the same time large enough to ensure real-time implementation.

Table 6 Simulation parameters
Fig. 13
figure 13

Number of primitive operations for a qLPV model

Fig. 14
figure 14

qLPV model simulation run time for a 10 s simulation

It can be seen from Fig. 14 that the simulation time is less than 10 s, guaranteeing real-time implementation; however, further increase in the number of scheduling parameters may not allow the execution of XV-15 qLPV model in real time. Figures 13 and 14 show that the simulation time is proportional to the number of primitive operations. Furthermore, these figures show that the increase in number of scheduling parameters to extend the flight envelope or increase in number of states to improve the fidelity of model will result in increase in the number of primitive operations and hence, the simulation time. Following the discussion above, it can be concluded that the computational complexity of a qLPV model implemented through lookup tables is \({\mathcal {O}}\left( N_{t} \cdot {{n_x}^2 \cdot {2^{{n_\rho }}}} \right) \).

6 Conclusion

A high-order full flight-envelope quasi-Linear Parameter Varying (qLPV) simulation model for NASA’s XV-15 with Advanced Technology Blades (ATB) tiltrotor aircraft using the model stitching technique is developed and presented in this paper. The varying dynamics of a tiltrotor aircraft with flight conditions as well as aircraft configurations make it particularly hard to develop a continuous full flight-envelope flight dynamics model for the purpose of real-time piloted simulations and control synthesis. Therefore, a quasi-Linear Parameter Varying (qLPV) modeling approach is employed. The qLPV model for XV-15 is developed by stitching together the discrete linear state-space models and adding six-degree-of-freedom body-axes nonlinear equations of motion and nonlinear gravitational force equations to build a continuous and quasi-nonlinear simulation model. The state-space models are obtained on a grid of scheduling parameters: altitude, nacelle incidence angle, wing flap deflection, and velocity. It is shown that the linear state-space models at only two altitudes, sea level and 10000 ft, are sufficient to yield acceptable results through lookup table implementation with linear interpolation and extrapolation.

Furthermore, additional simulation modules, such as rotor speed governor and actuator dynamics, are added to the qLPV model of XV-15. Rotor speed governor is a proportional-integral (PI) controller that regulates the blade collective pitch to maintain a constant rotor speed.

The computational complexity of qLPV model is quantified in terms of total number of primitive operations. It is shown that the computational complexity of qLPV model mainly depends on the number of parameters and number of states. Number of parameters can be increased to expand the dynamic flight envelope of a qLPV model; however, this means that the lookup tables with multivariate interpolation are required. On the other hand, fidelity can be improved by increasing the number of states, but this will lead to increase in the number of interpolations. Overall, it was concluded that the computational complexity of a qLPV model is \({\mathcal {O}}\left( N_{t} \cdot {{n_x}^2 \cdot {2^{{n_\rho }}}} \right) \). In order to ensure the real-time implementation of qLPV model, a compromise has to be made between the number of states (degrees of freedom & fidelity) and number of parameters (flight envelope coverage).

In the literature thus far and the current paper, trim data and linear state-space models are linearly interpolated using lookup tables. However, the fundamental limitation of lookup tables is the lack of continuity and adaptability. Updating such models is a complex and time consuming task. Therefore, the future work will extend to developing qLPV models based on multivariate simplex spline models. Multivariate simplex splines are function approximators that are capable of fitting highly nonlinear datasets and naturally capable of fitting scattered datasets on non-rectangular domains. They have the advantage of being continuous analytical functions that can allow local model modification without affecting the global model structure. Furthermore, qLPV models based on multivariate simplex splines will assist in the development of fault-tolerant Flight Control Systems (FCS), especially in the presence of local and global nonlinearities.