April 2013 

NASA/TM–2013-217976 

Generalized Predictive Control of Dynamic 

Systems with Rigid-Body Modes 

Raymond G. Kvaternik 

Langley Research Center, Hampton, Virginia 
NASA STI Program . . . in Profile

Since its founding, NASA has been dedicated to the 

advancement of aeronautics and space science. The 

NASA scientific and technical information (STI) 

program plays a key part in helping NASA maintain 

this important role. 

The NASA STI program operates under the 

auspices of the Agency Chief Information Officer. 

It collects, organizes, provides for archiving, and 

disseminates NASA’s STI. The NASA STI 

program provides access to the NASA Aeronautics 

and Space Database and its public interface, the 

NASA Technical Report Server, thus providing one 

of the largest collections of aeronautical and space 

science STI in the world. Results are published in 

both non-NASA channels and by NASA in the 

NASA STI Report Series, which includes the 

following report types: 

 TECHNICAL PUBLICATION. Reports of 

completed research or a major significant phase 

of research that present the results of NASA 

Programs and include extensive data or 

theoretical analysis. Includes compilations of 

significant scientific and technical data and 

information deemed to be of continuing 

reference value. NASA counterpart of peerreviewed formal professional papers, but 

having less stringent limitations on manuscript 

length and extent of graphic presentations. 

 TECHNICAL MEMORANDUM. Scientific 

and technical findings that are preliminary or of 

specialized interest, e.g., quick release reports, 

working papers, and bibliographies that contain 

minimal annotation. Does not contain extensive 

analysis. 

 CONTRACTOR REPORT. Scientific and 

technical findings by NASA-sponsored 

contractors and grantees. 

 CONFERENCE PUBLICATION. 

Collected papers from scientific and 

technical conferences, symposia, seminars, 

or other meetings sponsored or cosponsored by NASA. 

 SPECIAL PUBLICATION. Scientific, 

technical, or historical information from 

NASA programs, projects, and missions, 

often concerned with subjects having 

substantial public interest. 

 TECHNICAL TRANSLATION. 

English-language translations of foreign 

scientific and technical material pertinent to 

NASA’s mission.

Specialized services also include organizing 

and publishing research results, distributing 

specialized research announcements and feeds, 

providing information desk and personal search 

support, and enabling data exchange services. 

For more information about the NASA STI 

program, see the following: 

 Access the NASA STI program home page 

at http://www.sti.nasa.gov

 E-mail your question to help@sti.nasa.gov

 Fax your question to the NASA STI 

Information Desk at 443-757-5803 

 Phone the NASA STI Information Desk at 

443-757-5802

 Write to: 

 STI Information Desk 

 NASA Center for AeroSpace Information 

 7115 Standard Drive 

 Hanover, MD 21076-1320
National Aeronautics and 

Space Administration 

Langley Research Center 

Hampton, Virginia 23681-2199 

 

April 2013 

NASA/TM–2013-217976 

Generalized Predictive Control of Dynamic 

Systems with Rigid-Body Modes 

Raymond G. Kvaternik 

Langley Research Center, Hampton, Virginia 
Available from: 

NASA Center for AeroSpace Information 

7115 Standard Drive 

Hanover, MD 21076-1320

443-757-5802 
iii

 

Table of Contents

Abstract............................................................................................................................................1

Nomenclature...................................................................................................................................1

Introduction......................................................................................................................................3

Basic Features of GPC.....................................................................................................................3

Key Equations Underlying Present Application of GPC.................................................................4

ARX Model ............................................................................................................................5

System Identification Procedure .............................................................................................5

Multi-Step Output Prediction Equation ..................................................................................7

Derivation of Control Law......................................................................................................9

Selection of Control Model Parameters.........................................................................................10

Comment on Treatment of External Disturbances.........................................................................11

Results and Discussion ..................................................................................................................11

Comment on Codes Used for Simulations............................................................................11

Numerical Simulations Using 3-DOF Math Model..............................................................12

Simulation Conditions and Parameter Settings............................................................12

Results for Regulation and Tracking of 3-DOF System..............................................13

 Regulator examples..............................................................................................13

 Tracking examples...............................................................................................15

Summary of Observations............................................................................................17

Numerical Simulations Using XV-15 Math Model..............................................................18

Simulation Conditions and Parameter Settings............................................................18

Results for Regulation and Tracking of XV-15...........................................................19

 Regulator examples..............................................................................................19

 Tracking examples...............................................................................................21

Summary of Observations............................................................................................24

Concluding Remarks......................................................................................................................24

Appendix A  State-Space Model for 3-DOF Mass-Spring-Dashpot System.............................26

Appendix B  State-Space Model for XV-15 Tiltrotor Research Aircraft ..................................30

References......................................................................................................................................35

Tables.............................................................................................................................................37

Figures............................................................................................................................................38
1

Abstract

The results of numerical simulations aimed at assessing the applicability and 

effectiveness of Generalized Predictive Control (GPC) for active control of dynamic

systems having rigid-body modes are presented. GPC is a linear, time-invariant, multiinput/multi-output predictive control method that uses an AutoRegressive with eXternal

input (ARX) model to characterize the system and to design the controller. The equations 

underlying the method are presented and discussed, including system identification, 

calculation of control law matrices, and calculation of the commands applied to the 

control effectors. Although the method can accommodate both embedded (implicit) and 

explicit feedforward paths for incorporation of disturbance effects, only the case of 

embedded feedforward in which the disturbances acting on the system are assumed to be 

unknown is considered here. Representative results from numerical simulations using 

mathematical models of both a free-free three-degree-of-freedom mass-spring-dashpot 

system and the XV-15 tiltrotor research aircraft operating in the airplane mode of flight 

are presented. Both regulator (zero target response) and tracking (nonzero target 

response) problems were studied. Results obtained from these simulations have been 

decidedly positive. In particular, in the cases calling for zero system response in the 

presence of external disturbances, the closed-loop simulations showed reductions of 

nearly 100% for most of the examples. In the tracking examples where the system 

is commanded to follow a specified path, the GPC controllers were able to produce

the desired system responses, even in the presence of external disturbances. 

Nomenclature

ARX AutoRegressive with eXternal input

d disturbance

fs sampling frequency

GPC Generalized Predictive Control

hp, hc prediction and control horizons

k integer denoting discrete time index

 number of time points/samples used for system identification

m number of outputs

OMP observer Markov parameters

p order of ARX model
2

r number of inputs

rc number of control inputs

rd number of disturbance inputs

SID System IDentification

, ,  coefficient matrices in multi-step output prediction equation

uc control input

ud disturbance input

uc(k) control input at time index k

u(k), y(k) vectors of inputs and outputs at k

th time index

u(k-j), y(k-j) vectors of past inputs and outputs at (k-j)

th time index; j < k

u(k+j), y(k+j) vectors of future inputs and outputs at (k+j)

th time index; j ≥ 0

Y matrix of observer Markov parameters

αc, βc, χ

c control law gain matrices

αi, βi observer Markov parameters/coefficient matrices of ARX equation

a1, b1 longitudinal and lateral tip-path-plane flapping angles

β sideslip angle

u, v, w perturbation linear velocities

x, y, z perturbation linear displacements

p, q, r perturbation angular velocities 

φ, θ, ψ perturbation angular displacements 

∆t sampling time (1/ fs)
3

Introduction

In 2003, the Aeroelasticity Branch and the Army Research Laboratory’s Vehicle 

Technology Directorate at NASA Langley Research Center, in collaboration with Bell 

Helicopter Textron Inc, completed a series of experimental evaluations of a predictive control 

technique known as Generalized Predictive Control (GPC) (ref. 1) to assess its potential for 

actively controlling the swashplate of tiltrotor aircraft to enhance aeroelastic stability in both 

helicopter and airplane modes of flight. The studies employed a 1/5-scale, semi-span aeroelastic 

model of the V-22 that had been refurbished to serve as a tiltrotor research test bed for use in the 

Langley Transonic Dynamics Tunnel (TDT). The results of the exploratory experimental 

investigations conducted with this model are reported in references 2-5. The GPC-based

algorithm employed was highly effective in increasing the stability of the critical (least stable) 

mode for all of the configurations and conditions tested. GPC was later employed to evaluate its 

potential for active gust load alleviation of fixed-wing aircraft using conventional wing control 

surfaces. This investigation used data from a TDT test of a large semi-span wing model of an 

active wing design being studied by Northrop Grumman. The results of this active gust load 

alleviation investigation are presented in reference 6. The applications of GPC noted above were

to systems that contained no rigid-body modes. However, many systems that might be 

considered likely candidates for GPC-based active control have motions that include rigid-body 

or near rigid-body behavior. For this reason, it was decided to apply the GPC methodology 

developed in the aforementioned studies to some representative systems exhibiting such modes

and to evaluate the method’s ability for actively controlling those types of systems.

The purpose of this report is to present the results of some recent numerical simulations

obtained from an application of the programs developed for the earlier GPC investigations to 

systems with rigid-body and near rigid-body modes. First, a qualitative description of the basic

features of GPC is given. Then, key equations underlying the method as applied in the present 

investigation are presented and discussed, including system identification, formation of the 

multi-step output prediction equation, calculation of control law matrices, and calculation of the 

commands applied to the control effectors. These discussions are based on the broader treatment 

given in reference 6 but tailored to the requirements of the present application. Comments on 

selection of control model parameters and treatment of external disturbances are then presented. 

Representative results from two types of numerical simulations of closed-loop behavior are 

presented next. The first set of simulations was made using a three-degree-of-freedom 

mathematical model of a free-free mass-spring-dashpot system. The second set of simulations 

was made using a state-space math model of the rigid-body dynamics of the XV-15 tiltrotor 

research aircraft. Both models were subjected to a variety of user-defined external disturbances 

and user-defined target responses intended to demonstrate the ability of GPC to handle both 

regulation and tracking problems for systems with rigid-body modes and to illustrate the 

robustness of GPC to aggressive changes in simulated operating environment.

Basic Features of GPC

Predictive control refers to a strategy wherein the decision for the current control action is 

based on minimization of a quadratic performance index that involves a prediction of the 
4

system’s controlled response at some number of time steps into the future. A variety of 

predictive controllers have been proposed (ref. 7). Among these, Generalized Predictive Control, 

which was introduced in 1987 (ref. 8), has received considerable attention by the controls 

community. GPC is a linear, time-invariant, multi-input/multi-output predictive control method 

that uses an AutoRegressive with eXternal input (ARX) model (i.e., a linear difference equation) 

to describe the input-output relationship of a system. The coefficient matrices of the ARX 

equation are determined by appropriate system identification techniques. Such a model gives the 

current output as a weighted linear combination of the current input and past inputs and outputs. 

The input-output equation is used to form a multi-step output prediction equation over a finite 

prediction horizon. An expression for the control to be imposed at the next time step is obtained

by minimizing the deviation of the predicted controlled system outputs from the desired (or 

target) outputs, subject to a penalty on control effort. A version of the GPC procedure was 

developed at NASA Langley Research Center in 1997 for both efficient computation and 

treatment of unknown disturbances by Dr. Jer-Nan Juang and his team. Their work resulted in a 

suite of MATLAB (ref. 9) m-files that were collected into a predictive control toolbox that can 

be used by researchers for GPC studies. A summary of the salient aspects of the theory

underlying their development may be found in references 1 and 10-19, among others. 

The essential features of the GPC-based control system used in the present studies are 

depicted in figure 1. The system has rc control inputs uc, m measured outputs y, and is subject to 

external disturbances d. Measurement noise (not shown) can also be present. There are two 

fundamental steps involved in GPC: identification of the system; and use of the identified model 

to design the controller. Any system identification technique that returns an ARX model for the 

system may be used. System identification is done “on-line” in the presence of the disturbances 

acting on the system. If the disturbances are unknown, their effects are automatically accounted 

for (at least approximately) and embedded in the ARX model that is identified. This approach 

leads to a feedback controller with an embedded (or implicit) feedforward path and is the type of

controller designed and used in the present investigation. It should be noted, however, that if any 

of the disturbances acting on the system are measurable, that data can be used in an explicit 

feedforward path simultaneously with the feedback data to enhance closed-loop performance, as 

was investigated in reference 6. In either case, a random excitation uid is applied initially with uc

equal to zero to identify the open-loop system. Dither is also added to the closed-loop control 

input uc if it is necessary to re-identify the open-loop system while operating in the closed-loop 

mode.

Key Equations Underlying Present Application of GPC

The key equations underlying the implementation of GPC used in the present application

are summarized and discussed below. The form of the ARX model that is identified is given 

first. Then, the system identification procedure that provides the coefficient matrices in the ARX 

equation is summarized. The manner of extending this (the ARX) one-step output prediction 

equation to obtain the multi-step output prediction equation that is used for designing the 

controller is then described. Finally, the control law itself is derived.
5

ARX Model

The relationship between the input and output discrete time histories of a linear, time 

invariant, multi-input/multi-output (MIMO) system subject to unknown or unmeasurable 

disturbances can be described by an ARX model (linear difference equation) that has the form

 1 2 0 1 ( ) ( -1) + ( -2 ) + + ( - ) + ( ) + ( -1) + + ( - ) p p yk yk yk =α α α ββ β   ykp uk uk ukp (1)

This equation states that the current output y(k) at time index k is given as a weighted sum of the

p past sets of output values y(k-1),..., y(k-p) and the current and p past sets of input values u(k), 

u(k-1),..., u(k-p). The integer p is called the order of the ARX model. The coefficient matrices αi

and βi are referred to as observer Markov parameters (OMP) or ARX parameters and are the 

quantities to be determined by the identification algorithm. Closed-loop performance will be

enhanced by performing the system identification in the presence of the external disturbances 

acting on the system, thereby ensuring that disturbance information will be incorporated in the 

identified model. As mentioned earlier, the OMP may be determined by any identification 

technique that returns an ARX model of the system. The approach used here is described below. 

System Identification Procedure

System identification (SID) deals with the problem of estimating a dynamical math model 

of a system using measured input-output data. The goal of SID is to determine the OMP of the 

ARX model using the measured input-output data stream. System identification in the presence 

of the operational disturbances acting on the system is the first of the two major computational 

steps of the GPC method. The number of inputs is r and the number of outputs is m. To initiate 

the identification process, the open-loop system is excited with band-limited white noise. These 

independent random excitations are applied at the r inputs simultaneously and the m responses 

are measured or calculated, as appropriate, at  equally-spaced time points. The resulting input 

and output time histories u(k) and y(k) are then used to form the data matrices y and V in the 

equation

 y YV = (2)

where 

 y y y y yp y (0) (1) (2) ( ) ( 1)

m

   

 

= −

×

 



 (3)

and 

 
6

 

[ ( )]

(0) (1) (2) ( ) ( 1)

(0) (1) ( 1) ( 2)

(0) ( 2) ( 3)

(0) ( 1)

r r mp

u u u up u

v v vp v

V v vp v

v vp

++ ×

  −

  − −

= − −

  − −



 

 

 

  

 

 (4)

Equations 3 and 4 follow from writing the equations for a discrete-time state-space observer 

model of a linear time-invariant system at a sequence of time indices k = 0, 1, 2, ..., (  -1) and 

then arranging them into a matrix form (ref. 11). Equations 3 and 4 are valid under the 

assumption that the system is initially at rest. For nonzero unknown initial conditions, the first p

columns of y and V must be deleted to eliminate the effect of the initial conditions on the 

measured data (ref. 11). The vector v(k) appearing in the data matrix V is formed from the 

vectors u(k) and y(k) according to 

 

( )1

( ) ( ) ( )

r m

u k v k y k

         

+ ×

= (5)

The order of the ARX model, p, and the number of data points,  , used for identification are 

specified by the user. Some guidelines for their selection are given later. The sizes of key

vectors and matrices are noted here and throughout the report as appropriate to facilitate 

computational considerations related to computer implementation. 

In forming the matrices given in equations 4 and 5, it has been assumed that a deadbeat 

observer has been added to the system (ref. 18). This addition is purely implicit as its action is 

introduced by the assembling and processing of the input/output data in the manner shown

above. It is through this expedient that the matrix V is reduced to a size amenable for practical 

numerical computation of its pseudo-inverse. The system identification process yields observer 

Markov parameters rather than system Markov parameters because of the inclusion of the

observer. A complete discussion of these aspects of the development may be found in references

11 and 18.

In equation 2, Y is the matrix of observer Markov parameters that is identified and has 

the form

 01 1 2 233 p

[ ( )]

p

m r r mp

Y β βα βαβα βα    

 

×+ +

=  (6)

The solution for Y is obtained by solving equation 2 for Y according to 
7

 -1 † y y = T T Y V V VV =     (7)

where † denotes the pseudo-inverse. If the product T V V is a well-conditioned matrix of 

reasonable size, the ordinary inverse can be taken as shown. Otherwise, a pseudo-inverse must 

be used. 

Multi-Step Output Prediction Equation

The one-step output prediction equation given in equation 1 is the starting point for 

deriving the multi-step output prediction equation that is used for designing the GPC controller. 

Using equation 1, the output at time index k+j may be written in the form

 

( ) ( ) ( )

1 2

(1) () () (j) ( ) o 1 2

( ) ( -1) + ( -2) + + ( - ) 

 + ( ) + ( 1) ( ) + ( -1) + ( 2) + ( - )

jj j

p

j j j

oo p

yk j yk yk ykp

uk j uk j uk uk uk ukp

αα α

β β ββ β β

+ =

+ +− + + − +



  (8) 

where the coefficient matrices are given by recursive expressions involving the matrices αi and

βi appearing in the ARX equation (ref. 10). The system identification process described earlier 

provides the matrices αi and βi. Equation 8 shows that the output y(k+j) at time index k+j may 

be estimated by using p sets of the previous output and input measurements, y(k-1),..., y(k-p)

and u(k-1),...,u(k-p), and the unknown current and future inputs u(k), u(k+1),...,u(k+j). The 

GPC algorithm is based on system output predictions over a finite horizon hp known as the 

prediction horizon. To predict future outputs, some assumption needs to be made about future 

control inputs. In determining the future control inputs for GPC, it is assumed that control is 

applied over a finite horizon hc known as the control horizon that is equal to or less than the 

prediction horizon. Beyond the control horizon the control input is assumed to be zero. Letting j

in equation 8 range over the set of values j = 1, 2, ..., hp-1, the resulting equations can be 

assembled into a multi-step output prediction equation having the compact form

 

1 1 1 1

() () ( ) ( )

p cc p p c c p c c

p c h m hr h m pm pm h m pr pr h m h r

p p h h y k u k ykp ukp × × × × × × ×

= + −+ −   (9)

The coefficient matrices , , and  are formed from combinations of the observer Markov 

parameters αi and βi. The quantity yhp(k) denotes a vector containing hp sets of outputs y(k), 

y(k+1), ..., y(k+hp-1), whereas uhc(k) is the vector containing hc sets of control inputs u(k), 

u(k+1), ..., u(k+hc-1) yet to be determined. The quantities up(k-p) and yp(k-p) denote vectors 

containing the previous p sets of control inputs and outputs, respectively. The expanded form of 

this multi-step output prediction equation for the case in which hc = hp is shown in equation 10.
8

( ) ( 1) ( 1)

0 1 10

(1)

( 1) ( 2)

( ) ( 1) (1)

( 1) ( 2) ( ) ( 1)

( ) ( )

( 1)

( 1)

( )

( 1) pp p p

qq q

o o

q q

oo o

q q

oo o o

h h hq hq

p oo o o o

y k o u k

y k

yk q

yk q

yk h

β β αβ

β β

ββ β

ββ β β

ββ β β β

β

− −

− −

−

− − − −−

= +

   

    +  

 

    + − =

  +  

 

  + −    

  





    

 

( ) ( 1) ( 1) ( ) ( 1) ( 1)

1 11 1 11

(1) (1) (1) (1)

12 1

( 1) ( 1) ( 1) ( 1)

12 1

() () (

12 1

12 1

( 1)

( 1)

( )

( 1) c

qq q qq q

pp p pp p

p p

qq qq

p p

qq q

p

p p

u k

uk q

uk q

uk h

h h c p

α α αα β β αβ

αα αα

αα αα

α

αα α α

α α

− − − −

− − − −

−

−− −−

−

−

−

 

  +  

      + −

  +  

 

    + −

= + = +

+

=









  





(1) (1) (1) (1)

12 1

( 1) ( 1) ( 1) ( 1)

12 1

) () () () (

12 1

( 1) ( 1) ( 1) ( 1)

1 2

1 1

1

2

( 1)

( 2)

( 1)

( )

pp pp

p p

qq qq

p p

q q q

p p

hh hh

p p

p p

y k

y k

yk p

yk p

ββ ββ

ββ ββ

α ββ β

α

ββ β β

α αα

−

−− −

−

−

−

−

−− −−

−

 

    −

  −  

  +

  − +  

    −

 





  

 



  



) ()

( 1) ( 1) ( 1) ( 1)

12 1

( 1)

( 2)

( 1)

( )

pp pp

q q

p

hh hh

p p

u k

u k

uk p

uk p

β

ββ ββ −− −−

−

 

    −

  −  

 

  − +  

    −

 



  



 (10)

The observer Markov parameters αi and βi resulting from system identification are used to 

form the first block row in each of the coefficient matrices , , and  in equation 9. These 

terms are colored red in equation 10. The terms in the remaining block rows are computed using 

the recursive relations indicated in the boxes above the coefficient matrices in equation 10 (ref. 

10). All terms in equation 10 are known, except for the hc sets of commands and the hp sets of 

predicted responses. The goal of the GPC control algorithm is to determine the set of commands 

u(k), u(k+1), ..., u(k+hc-1) that are required to achieve a predicted response y(k), y(k+1), ..., 

y(k+hp-1) that is as near as possible to a desired or target response yT(k), yT(k+1), ..., yT(k+hp1). It should be noted that the system Markov parameters, which are commonly used as the basis 

for identifying discrete-time state-space models of linear dynamical systems, form the first block 

column in the matrix  ; the remaining block columns in that matrix are formed from subsets of 

these parameters. The sequence of system Markov parameters is the pulse response of a system 

and is unique for a given linear system. Note that equation 10 assumes that hc = hp, in which 

case the matrix  has hp block rows and hp block columns. However, hc can be less than hp, in 

which case one would retain only the first hc block columns of  . The matrices  and  both 

have hp block rows and p block columns.
9

Derivation of Control Law

The predictive control law is obtained by minimizing the deviation of the predicted 

controlled response (as computed from the multi-step output prediction equation) from a desired 

response over a prediction horizon hp. To this end, one first defines an error function that is the 

difference between the desired or target response yT (k) and the predicted response yhp (k):

 

() ()

() () ( ) ( )

T

T p

p

c

h

h p

k k

k k kp kp

y y

yu y u

ε = −

= − − −− −   (11)

A performance index J quadratic in the error and the unknown controls is then formed:

 c c

T T

h h J Q uR = + ε ε u (12)

Two weighting matrices are included in the performance index: R (symmetric and positive 

definite) is used to weight the control effort and stabilize the closed-loop system; Q (symmetric 

and positive semi-definite) is used to weight the relative importance of the differences between 

the target and predicted responses. Typically, R and Q are assumed to be diagonal with R having 

the same value wc along its diagonal and Q having the same value wr along its diagonal. 

Minimizing J with respect to uhc(k) and then solving for uhc(k) gives 

 ( ) ( ) †

1

() ( ) () ( ) ( )

c c cc p

T T

T p p c

h r h

h

r hm

u k Q R Q yk yk p uk p

× ×

=− + − + − + −    

 (13)

as the control sequence to be applied to the system over the next hc time steps k, k+1, ..., k+hc-1. 

However, only the first rc values corresponding to the first or current time step k

 1

() () ( ) ( ) Tp p

c

cc c

r

c u k yk yk p uk p χα β ×

=− + − + − (14)

are applied to the rc control inputs, the remainder are discarded, and a new control sequence is 

calculated at the next time step. Equation 14 is the desired control law equation. The target 

response yT (k) is zero for a regulator problem and non-zero for a tracking problem. The 

coefficient matrices χ

c

, αc, and βc are the control law gain matrices and have sizes rc × mhp, 

rc × pm, and rc × prc, respectively. The effects of the unknown disturbances are embedded in 

the coefficient matrices  and  (and thus αc and βc) but at the price of increasing the order of 

the ARX model that must be identified. Note that the matrix  is unaffected by the disturbances 

as it is defined solely in terms of the system’s Markov parameters, which are unique for a given 

linear system.
10

It should be noted that the quantity ( ) † ( ) T T   QR Q + in equation 13 has to be 

evaluated only once if the system does not change after the initial identification and the weights 

matrices Q and R are not changed. Also, the OMP (and thus the matrices  and  and hence αc

and βc

) can be re-identified efficiently at each time step (e.g., via recursive least squares) if 

deemed necessary because of rapidly changing external disturbances, as was demonstrated in the 

studies of reference 6. The availability of the latter option provides the enabling capability for 

implementing a real-time, fully-adaptive computational procedure for GPC.

Selection of Control Model Parameters

As in most control systems, there are parameters that must be selected to ensure that there 

is a proper balance among controller performance, system stability, controller stability, and 

actuator saturation. The influential parameters of interest for GPC are: the order of the ARX 

model p, the prediction horizon hp, the control horizon hc, and the control weights wc

An expression for estimating the order p of the ARX model that is the product of the 

system identification process is given by s d pm n n ≥ + , where m is the number of outputs, ns is 

the number of system states, and nd is the number of disturbance states. The number of system 

states is typically chosen to be twice the (estimated) number of significant structural modes in 

the system; the number of disturbance states is set to twice the (estimated) number of frequencies 

in the disturbance. For simulated systems such as those studied herein these parameters are 

easily defined. However, in practice, the number of system states and disturbance states is often 

either unknown or not known with any certainty. It turns out that simply choosing p to be about 

five times the estimated number of significant structural modes in a system is a good starting 

point and is often adequate. Increasing p also alleviates the effects of measurement noise which 

may be present in the data. Note that the value required for p decreases as m is increased.

The prediction and control horizons are set according to hp ≥ p and hc ≤ hp. The control 

horizon can be chosen to be less than the prediction horizon resulting in a more stable (lower 

required control amplitude) but sluggish controller. However, there is no compelling advantage

that can be ascribed to such a choice. Based on experience, setting hc = hp = p is a good initial

choice and usually provides satisfactory results.

As mentioned earlier, weighting matrices R and Q are used to weight the control effort and 

to weight the relative importance of the differences between the target and predicted responses, 

respectively. With hc = hp = p set as above, the relative values of the weighting matrices play the 

major role in the tuning process. Therefore, the weighting matrix Q is usually set to an identity 

matrix. The control weight matrix R then becomes the only one needed to be tuned to produce 

an acceptable solution. Reducing wc increases controller performance but will increase the 

magnitude of the required control inputs, which may saturate the actuators or drive the control 

system unstable. Increasing wc reduces control effort but increases the time required for the 

controller to quell the response or produce the desired maneuver. A reasonable set of starting 

values is 1.0, which can then be adjusted down or up as required.
11

The parameters  and ∆t are important signal processing parameters and not control 

parameters per se. However, they are included here because their values do have a strong 

influence on the design and hence performance of the controller. The integer  denotes the 

number of data points in the time histories used in the GPC calculations. Its value is determined

by the need to have a data record long enough to capture about 5-10 cycles of the lowest 

frequency mode in the measured response time histories used for SID and controller design. It 

should be noted that the value chosen depends on the sample time ∆t (which is the reciprocal of 

the sampling frequency used to discretize continuous-time data) since the smaller the value of ∆t 

the longer the data record that is needed. Some guidelines for choosing the sampling frequency 

are given in reference 6.

Comment on Treatment of External Disturbances

In most cases, the external disturbances acting on a system are unknown. In such 

situations the best that can be done is to identify the system in the presence of the disturbances so 

as to include their effects in the OMP of the identified ARX model. The control law obtained 

using the OMP with the embedded disturbance information is then used to compute the control 

inputs. As mentioned earlier, this situation represents the case of feedback with embedded or 

implicit feedforward and is the procedure that was employed successfully in the GPC-based 

active controls testing of the tiltrotor model mentioned earlier. If any of the external 

disturbances acting on the system can be measured an explicit feedforward loop can be employed 

in combination with the feedback loop to enhance closed-loop performance. In fact, embedded 

feedforward and explicit feedforward can be used simultaneously if the disturbances acting on a 

system contain a combination of known/measurable and unknown/unmeasurable components. 

This situation was addressed extensively in reference 6. However, the present study assumes 

that all the external disturbances are unknown and derives a feedback controller with embedded 

feedforward. 

Results and Discussion

Results from two types of closed-loop simulations are presented. The first uses a 

mathematical model of a free-free, three-degree-of-freedom mass-spring-dashpot system subject 

to user-specified disturbance forces and user-specified target response time histories. The other 

uses a state-space math model of the rigid-body dynamics of the XV-15 tiltrotor research aircraft

operating in the airplane mode of flight. The intent of these simulations is to demonstrate the 

effectiveness of a GPC-based active control system to both quell the response to a disturbance 

(the regulator problem) and to produce a desired or target response (the tracking problem) either 

with or without a disturbance.

Comment on Codes Used for Simulations

Two MATLAB programs were used for the studies that provided the numerical results 

for this report. One is a version of the three-degree-of-freedom (3-DOF) mass-spring-dashpot 

system that was used to develop the GPC software system for the tiltrotor model testing but

modified to include the coding needed for calculating the additional terms associated with a nonzero target response. This program treats a simple dynamic system with user-defined properties 
12

and user-defined external disturbances and target responses and thus lends itself to easy 

modification to explore a variety of what-if questions. The other program is also a version of the 

aforementioned 3-DOF code but modified to use an existing rigid-body state-space model of the 

XV-15 tiltrotor research aircraft rather than the mass-spring-dashpot system. Because this model 

was developed for a specific flight condition and cannot be modified by the user, the model was 

used as-received. However, the model did allow for the imposition of user-defined disturbances 

and target responses.

Numerical Simulations Using 3-DOF Math Model

The 3-DOF mass-spring-dashpot system used in these simulations is depicted in figure 2

and the corresponding equations of motion are summarized in Appendix A. The model has three 

masses, two springs, and two dashpots. Disturbance forces ud1, ud2, and ud3 and control forces 

uc1, uc2, and uc3 act on masses m1, m2, and m3, respectively. The degrees of freedom x1, x2, 

and x3 are the absolute displacements of the corresponding masses. For the simulations, the 

masses were set equal to 1 lb-sec

2

/in, the spring rates to 1 lb/in, and the damping coefficients to 

0.0 lb/in/sec. Zero damping was assumed to preclude inherent dissipative forces acting on the 

system, thereby providing a more demanding dynamic environment for the controller. As 

indicated in table 1, the resulting state matrix yields the following eigenvalues for the system: 

0±0i, 0±1.0i, and 0±1.7321i. These in turn yield natural frequencies of 0.0, 0.15915, and 

0.27566 Hz and corresponding damping ratios of 0.0, 0.0, and 0.0 for the three natural modes of 

the system. Disturbances, control forces, and responses (displacements, velocities, or 

accelerations) can be specified and selected in a variety of combinations (see Appendix A). 

However, unless noted otherwise, for the results to be presented here, control forces were applied

at masses 1, 2, and 3 (rc = 3), disturbances were imposed at masses 1, 2, and 3 (rd

 

= 3), and 

displacements were measured at masses 1, 2, and 3 (m = 3). Target responses (both zero and 

non-zero) were specified for all three masses. Several different types of disturbances and target 

responses were devised and imposed on the system to provide a challenging control task for 

GPC.

Simulation Conditions and Parameter Settings

Based on the signal processing guidelines given in reference 6, as well as extensive 

previous experience with the 3-DOF system, the sampling frequency fs



was set to 20 Hz (so that 

t=0.05 sec) and the number of data points of input/output data was set to 600, unless noted 

otherwise. The control horizon hc was set equal to the prediction horizon hp and hp

s pm n ≥

was set 

equal to the order of the ARX model p. The use of feedback with embedded feedforward 

requires p as computed by the disturbance-free relationship to be increased to provide

the additional computational degrees of freedom needed to ensure that the effects of the 

unknown disturbances are embedded in the observer Markov parameters that are computed 

during system identification. To this end, the value of p so-computed was increased to 12. The 

response weights wr were set to 1.0 and the control weights wc were set to 0.0005. Previous 

experience with the model indicates that the selected values are all reasonable but not optimal. 

No attempt was made to “optimize” (i.e., tune) the parameters p, hc, hp, and wc to the nuances of 

the system to the different disturbances and target responses to elicit the best possible closed-
13

loop behavior. In the closed-loop simulations, the loop was closed (controller turned on) after 50

time points (2.5 sec). 

The MATLAB function c2d.m was used to convert the continuous-time state-space 

model of the 3-DOF system (Appendix A) to discrete-time using t = 0.05 as set above. The 

resulting discrete-time model was then used in the MATLAB function dlsim.m to generate the 

random time histories needed to identify the ARX model and design the controller as described 

earlier in the report. The function dlsim.m was also used to compute the open-loop time histories 

for those examples in which disturbances act on the system. 

Results are presented below for feedback with embedded feedforward, in which all the 

disturbances acting on the system are assumed to be unknown while performing the SID and 

controller design. Both regulator and tracking examples are presented. It should be noted that 

the time index k is used on the time axes of the results figures rather than actual time t. While 

either variable can be used in plotting time histories because they are related according to t = k

∆t, k = 0, 1, 2, ....,  -1, time index is used here. It should also be noted that the number of 

examples presented is rather large. This is intentional and is intended to provide a sufficiently 

diverse collection of results from which to better judge the efficacy of GPC in the subject 

application.

Results for Regulation and Tracking of 3-DOF System

Representative results illustrating the ability of GPC to either suppress disturbanceinduced responses of the 3-DOF system (the regulator problem) or to cause the system to follow 

a desired target response (the tracking problem) are presented in this section. For convenience of 

discussion below, the disturbances are sometimes denoted as ud1, ud2, and ud3, the control 

inputs by uc1, uc2, and uc3, and the target responses by yt1, yt2, and yt3. 

Regulator Examples: Figures 3 through 11 show comparisons of open- and closed-loop 

displacement responses of the 3-DOF model to a variety of external disturbances. These 

examples are presented in composite figures consisting of two rows of two figures each. The 

upper left figure shows the disturbances acting on the system; the upper right shows the openloop responses of the system; the lower left shows the control forces applied to the system; and 

the lower right shows the closed-loop responses of the system. 

In figure 3 there are three sinusoidal disturbance forces acting on the system: 

usin1=2cos(2πft) on mass 1, usin2=1sin(2πft) on mass 2, and usin3=3sin(2πft + π/3) on mass 3, 

where f=0.27566 Hz, the third natural frequency of the system. The open-loop responses are 

diverging oscillations because the excitations are at a natural frequency of the system. A linear 

drift associated with the rigid-body degree of freedom of the system is also evident in each of the 

responses. All the control inputs are oscillatory, as expected. The large amplitude spikes

appearing in the control force time histories at and slightly after time index 50 always occur

when turning on the controller abruptly as done in the present simulations. It should be pointed 

out that the accommodation of such spikes by MATLAB when plotting the results oftentimes 

compresses the remainder of those time histories to a level that makes them difficult to 

distinguish and to read their values on the vertical axis. For this reason, those control time 
14

histories that have been judged remiss in this regard have been preemptively hand adjusted 

before inclusion in this report. While figure 3 shows both the unadjusted and adjusted control 

subplots, all subsequent figures will show only the most appropriate subplot but not both. As can 

be seen, the open-loop responses are essentially suppressed immediately after closing the loop. 

The disturbances in figure 4 consist of both sinusoidal and constant forces. A one-pound 

sinusoidal force usin2=1sin(2πft), with f=0.27566 Hz, acts on mass 2 and constant forces of two 

and three pounds act on masses 1 and 3, respectively (Note that constant forces may be viewed 

as zero-frequency cosine forces, which provide excitation at the zero natural frequency of the 

system). Because the rigid-body displacements induced by the two constant forces acting on the 

system dominate its response, the overall open-loop motion is seen to be primarily exponentially 

diverging with negligible oscillatory behavior. The control forces consist of a combination of 

oscillatory and constant forces consistent with the character of the disturbances. Again, the 

open-loop responses are essentially driven to zero immediately after closing the loop.

Constant forces act on all three masses of the system in figure 5: two pounds on mass 1, 

one pound on mass 2, and three pounds on mass 3. The resulting open-loop responses are 

exponentially diverging motions of the masses. The computed control forces are all constant in 

this case, as should be expected for a system disturbed solely by constant forces. Again, the 

open-loop responses are driven to zero almost instantly after closing the loop.

In figure 6 all three masses are subjected to random excitations. Rigid-body motion 

dominates the open-loop responses, which are driven to negligibly small values promptly after 

imposition of control.

Figure 7 has the same sinusoidal disturbances as in figure 3 but with frequencies different 

from the natural frequencies of the system. The force usin1 with f=0.1 Hz acts on mass 1, usin2 

with f=0.2 Hz acts on mass 2, and usin3 with f=0.3 Hz acts on mass 3. The open-loop oscillatory 

responses again all have a linear drift, as they did in figure 3. Suppression of the open-loop 

responses occurs almost instantly after engaging the controller.

In figure 8 ud1 is a one-minus-cosine function (1-cosine) over the entire time interval, 

ud2=usin2 with f=0.27566 Hz, and ud3 is a single “saw-tooth” pulse (a narrow trapezoid) in an 

otherwise zero time history. The open-loop response is primarily a linearly diverging 

displacement beyond a time index of about 300. Here, the closed-loop responses are small but 

not zero.

The disturbances in figure 9 are all 1-cosine functions. The disturbance acting on mass 2

extends over the entire time interval while the disturbances acting on masses 1 and 3 extend over 

different sub time intervals. Note that the open-loop responses diverge exponentially very 

rapidly in this case but are easily suppressed by the controller.

Figure 10 has ud1=usin1 with f=0.27566 Hz, ud2=u1step (a step function with a single 

step), and ud3=usin2.*usin3 (.* is MATLAB notation denoting an element-by-element product

of usin2 and usin3). The control input at mass 2 has a small overshoot in amplitude at time index 
15

225 where the up step occurs in disturbance ud2. Closed-loop responses are quite small but not 

zero.

In figure 11 ud1=usin1, ud2=usin2+u1step, and ud3=usin3+2(1-cosine), with f=0.27566 

Hz. The open-loop responses of the masses are again dominated by the rigid-body freedom of 

the system but the calculated control input time histories are able to subdue the disturbanceinduced responses.

Tracking Examples: Figures 12 through 22 show comparisons of target and achieved

displacement responses of the 3-DOF system for a variety of imposed target responses with no 

disturbances acting on the system. Figures 23 through 26 provide comparisons of target and 

achieved responses to several sets of target responses while the system is subjected to a variety 

of disturbances.

The results for the tracking simulations without disturbances acting on the system are 

presented in composite figures consisting of two rows of two figures each. The upper left figure 

shows the control forces applied to the system; the upper right figure shows a comparison of the 

target and achieved responses for mass 1; the lower left figure shows a comparison of the target 

and achieved responses for mass 2; and the lower right figure shows a comparison of the target 

and achieved responses for mass 3. 

In the example shown in figure 12 a sinusoidal target response is assigned to each mass: 

yt1=2sin(2πft) with f=0.1 Hz, yt2=1cos(2πft) with f=0.2 Hz, and yt3=5sin(2πft+π/4) with f=0.3

Hz. Closed-loop responses (achieved responses) are basically identical to the specified target 

responses. 

In figure 13 the target response yt1 for mass 1 is a single saw-tooth wave (a narrow 

trapezoid) in an otherwise null time history while yt2 and yt3 are the same mass 2 and mass 3

targets as in figure 12. The required control inputs (particularly of mass 1) are more active in the 

vicinity of time index 200 here than in figure 12 to accommodate the pulse-like character of the

saw-tooth target. Closed-loop (achieved) responses are in excellent agreement with the target

responses.

In figure 14 yt1 is a single-step step function, yt2 is a one-minus-cosine function, and yt3 

is a random function. As might be expected, the required control inputs here are very active 

because of the random tracking requirement for mass 3. Tracking is very good except for some 

very minor differences at the corners of the step target and at some of the peaks and troughs of 

the random target. It should be noted that the control input for mass 1 contains two spikes 

centered at time index 225 where the response jumps in value from 0 to +5. These are simply a 

nuance of the manner in which the tracking input data are introduced and processed in the 

present implementation when a vertical (infinite slope) step discontinuity is encountered. These 

may or may not be as evident as seen here depending on the magnitude of the discontinuity. 

The spiking of control inputs to satisfy tracking requirements as exhibited in figure 14 

can be eliminated or at least reduced if problematic target shapes containing vertical stepfunction portions are passed through a moving-average filter to provide smooth non-vertical 
16

transitions between any jumps appearing in those shapes. The resulting shapes also more closely 

represent realizable target inputs. To illustrate this, the step target of mass 1 was passed through 

a 20-point moving average filter (using MATLAB function filtfilt.m). The resulting filtered 

target is compared to the original unfiltered target in figure 15. Note that the averaging action of 

the filter has resulted in a narrow, smoothly varying, non-vertical transition between the two 

horizontal portions of the step function. The example of figure 14 was then rerun using the 

filtered step target of figure 15 giving the results shown in figure 16. The large-amplitude spikes 

in the uc1 control input are now much reduced and are no larger than the other control inputs. 

Tracking is now excellent.

Figure 17 has yt1=a 0.5 Hz sinusoid with exponentially increasing amplitude, yt2=a 0.5 

Hz sinusoid with exponentially decreasing amplitude, and yt3=a three-step step function. Note 

that large control inputs are required to enforce the diverging target of mass 1 and that there are 

only small spikes in the controls associated with the vertical discontinuities in the target response 

of mass 3. Tracking is very good.

Figure 18 has yt1=a two-step step function, yt2=a shifted 0.5 Hz sinusoid with 

exponentially decreasing amplitude, and yt3=a random function. Tracking is excellent but the 

required control inputs for masses 2 and 3 are quite large. The spiking in uc1 due to the vertical 

discontinuities in the target for mass 1 is not remarkable here as the spikes are no larger than the 

other control inputs.

In figure 19 yt1= sum of an exponentially diverging sinusoid with increasing frequency

and a single-step step function, yt2=sum of a 1-cosine function and an up-down-up sequence of a 

three-toothed saw-tooth waveform, and yt3=sum of an exponentially converging sinusoid with 

increasing frequency, a random function, and a negative saw-tooth function. Spiking of uc1 

occurs at time index 225 where there is a vertical step change in the target response. Tracking is 

excellent but requires some rather large control inputs.

The examples in figures 20-22 are for an extended data stream of 1500 time points. Each 

1500-point target response is composed of three consecutive but different 500-point segments. 

Large amplitude spikes occur in the control inputs at times where there are sizable vertical step 

changes in the target response time histories. The spikes can, however, be reduced considerably 

if the target responses are filtered before being imposed on the system (recall the discussion of 

figures 14-16). The tracking in figures 20-22 is excellent.

The results for the tracking simulations with disturbances acting on the system are 

presented in composite figures consisting of three rows of two figures each. The upper left 

figure shows the disturbances acting on the system; the upper right figure shows the open-loop 

responses of the system; the center left figure shows the control forces applied to the masses of 

the system; the center right figure shows a comparison of the target and achieved responses for 

mass 1; the lower left figure shows a comparison of the target and achieved responses for mass 

2; and the lower right figure shows a comparison of the target and achieved responses for mass 3.

Figure 23 has the same disturbances as the regulator example in figure 10 and the same 

targets as the tracking-without-disturbances example in figure 14. The spike in the magnitude of 
17

uc1 at time index 225 occurs because of the up step in the target response of mass 1 at that time 

index. Tracking of masses 1 and 3 is very good but that of mass 2 is fair at best. Note that the 

control inputs in figure 23 are different both in character and amplitude than those in figures 10

and 14 because of the need to simultaneously quell disturbances and enforce target responses in 

the present case.

In the example of figure 24 spikes in uc3 occur at time indices corresponding to the up 

and down steps in the mass 3 target at time indices of 300 and 482, respectively. Tracking of the 

targets for masses 1 and 3 is excellent but the enforcement of the random target for mass 2 is 

only fair.

The targets in figure 25 are 0.27566 Hz sinusoids with amplitudes of 2, 1, and 5, 

respectively. The calculated control inputs are all primarily sinusoidal with only hints of the 1-

cosine and saw-tooth disturbances reflected in them. Tracking is excellent. Comparing the 

present control time histories with those of the regulator example of figure 8 with the same 

disturbances suggests that the amplitudes of the required control inputs is dictated primarily by 

the presence of non-zero targets. 

Figure 26 has the same disturbances as figure 24. The small spike in uc1 at time index 

225 is due to the up step in the mass 1 target. There is also a small spike in uc2 at time index 

300 arising from the down step in the ud2 disturbance at that time index. Tracking of masses 1 

and 3 is good but the 1-cosine achieved response of mass 2 is only fair because of the 

disturbance down step in ud2 at time index 300.

Summary of Observations: Taken as a whole, the 3-DOF simulations indicate that the GPCbased controllers functioned well whether they were employed as regulators or trackers. When 

used in the regulation mode, they (the GPC controllers) were able to significantly reduce or quell

system open-loop responses under a variety of imposed disturbance conditions and to do so 

immediately after closing the loop. The maximum values of the disturbance forces imposed on 

all but one of the 3-DOF system examples in figures 3-11 varied from one to ten pounds. For 

these examples the maximum values of the computed control forces also varied from about one 

to ten pounds. In the one example in which the disturbance was 50 pounds, the maximum 

control force was also 50 pounds. These results suggest that in regulation problems where both 

the control inputs and the imposed disturbances are forces, the computed control forces are of the 

same order of magnitude as the disturbances. 

When used to meet a tracking requirement, the GPC controllers were able to produce the 

commanded responses, even in the presence of disturbances acting on the system, and to do so

promptly after closing the loop. Based on the results presented in figures 12-26, the tracking 

problem is much more demanding than the regulator problem. That is, the control inputs 

required for satisfactory tracking are typically larger than those needed for adequate regulation. 

Also, large amplitude spikes can occur in the calculated control inputs when the target response

time histories have vertical step discontinuities or offsets within them. However, such control 

spikes can be precluded or at least significantly reduced simply by filtering problematic targets to 

smooth out any such discontinuities. The spiking notwithstanding, the values calculated for the 
18

control forces in the tracking examples are all reasonable when considered from the perspective 

of the magnitude and complexity of the imposed target responses.

Numerical Simulations Using State-Space Model of XV-15 Tiltrotor Aircraft

The XV-15 tiltrotor aircraft used in this simulation is shown flying in the airplane mode 

in figure 27. An existing linearized state-space model defining the rigid-body flight dynamics of 

the XV-15 flying at 150 knots in level flight at sea level altitude was used for the present studies. 

The coordinate system and sign convention for the 12 state variables used to describe the statespace model are depicted in figure 28. The formation of this model is summarized in Appendix 

B. It should be noted that the mass, damping, and stiffness matrices defining the model are not 

diagonal, indicating that there is coupling between the longitudinal and lateral/directional 

equations of motion.

The dynamic characteristics of the XV-15 math model are summarized in table 2. The

state matrix of the aircraft yields the following eigenvalues for the longitudinal and 

lateral/directional modes of the system: -1.4173 ± 2.9364i (short-period mode), -0.44913 ± 

1.6058i (Dutch-roll mode), -0.019449 ± 0.18404i (phugoid mode), -0.73883 + 0.0i (roll 

convergence mode), and -0.15843 + 0.0i (spiral convergence mode). The damped natural 

frequencies of the oscillatory short-period, Dutch-roll, and phugoid modes are 0.46734 Hz, 

0.25556 Hz, and 0.029291 Hz, respectively. The non-oscillatory roll convergence and spiral 

convergence modes have zero frequency. Damping ratios of the three oscillatory modes are: 

0.43469, 0.26936, and 0.10509, respectively. Damping ratios of the non-oscillatory (aperiodic) 

modes are unity. The modes are thus well damped, indicating that the system is stable.

As mentioned earlier, because this model was developed for a specific flight condition

and not amenable to change by the user, the model was used as-received. Thus, for the results to 

be presented here, there are four pilot control inputs (rotor collective pitch, rotor longitudinal 

cyclic pitch, rotor lateral cyclic pitch, and pedals) and four measured responses (the perturbation 

values of aircraft forward velocity, pitch angle, roll angle, and sideslip angle). However, 

disturbances and target responses can be imposed on the model by the user. There are from one 

to six possible disturbances that can be imposed (either singly or in combinations up to six) 

consistent with the six rigid-body degrees of freedom of the aircraft and four target responses

consistent with the four measured responses. Thus, rc = 4, m = 4, and rd can be varied from 1 to 

6.

Simulation Conditions and Parameter Settings

Based on the signal processing guidelines given in reference 6, as well as some limited 

previous experience with the XV-15 model, the sampling frequency fs



was set to 40 Hz 

(t=0.025 sec) and the number of time points of input/output data was set to 600. The control 

horizon hc was set equal to the prediction horizon hp, hp was set equal to the order of the ARX 

model p, and p was set to 15. The response weights wr were set to 1.0 and the control weights 

wc were set to 0.0005. Again, no attempt was made to “optimize” (i.e., tune) the parameters p, 

hc, hp, and wc to the idiosyncrasies of the system to elicit the best possible closed-loop 
19

responses. In the simulations, the loop was closed (controller turned on) after 40 time points (1.0

sec). 

The MATLAB function c2d.m was used to convert the continuous-time state-space 

model of the XV-15 tiltrotor aircraft (Appendix B) to discrete time using t =0.025 as set above. 

The resulting discrete-time state-space model was then used in the MATLAB function dlsim.m to 

generate the random time histories needed to identify the ARX model and design the controller 

as described earlier in the report. The function dlsim.m was also used to compute the open-loop 

time histories for those examples in which disturbances are present.

Results are presented below for feedback with embedded feedforward, in which all the 

disturbances acting on the system are assumed to be unknown while performing the SID and 

controller design. Several different types of disturbances and target responses were devised and 

imposed on the system to provide a challenging control task for GPC. Both regulator and 

tracking examples are presented. It should be noted that actual time t rather than time index k is 

used on the time axes of the results figures here in contrast to the presentation of the 3-DOF 

results. This change was motivated by the fact that the XV-15 is a real aircraft with welldocumented physical characteristics, many of which involve physical time units. Also, as was 

done for the 3-DOF system, the number of examples presented for the XV-15 system is also

intentionally rather large to better illustrate the robustness of GPC in the subject application. 

Results for Regulation and Tracking of XV-15

Representative results illustrating the ability of GPC to either quell disturbance-induced 

responses of the XV-15 (the regulator problem) or to cause the system to follow a desired target 

response (the tracking problem) are presented in this section. For convenience of discussion 

below, the (perturbation) force and moment disturbances imposed on the system are denoted by

X, Y, Z, RM, PM, and YM and the target responses are denoted by yt1, yt2, yt3, and yt4. X is an 

axial force (+ forward), Y is a side force (+ right), Z is a vertical force (+ down), RM is a rolling 

moment (+ right wing down), PM is a pitching moment (+ nose up), and YM is a yawing 

moment (+ nose right), yt1=forward velocity, yt2=pitch angle, yt3=roll angle, and yt4=sideslip

angle. It should be mentioned that no attempt was made at defining disturbances and target 

responses for the simulations that are consistent with the design operating limits of the subject 

aircraft. This means that the character and magnitude of some of the imposed disturbances and 

target responses may be outside the permissible operating environment of the aircraft.

Regulator Examples: Figures 29 through 46 show comparisons of open- and closed-loop 

responses of the XV-15 to a variety of external disturbances. These results are presented in 

composite figures consisting of two rows of two figures each. The upper left figure shows the 

disturbances acting on the system; the upper right figure shows the open-loop responses of the 

system; the lower left figure shows the control forces applied to the system; and the lower right 

figure shows the closed-loop responses of the system.

Figures 29-34 display results for a sequence of six cases which differ only in the direction 

of a single sinusoidal force or moment disturbance imposed on the system at the damped natural 

frequency of the short-period mode (0.46734 Hz). The disturbances are applied to the aircraft at
20

its CG in the order X, Z, PM, Y, RM, and YM. Because the subject aircraft is a stable (damped)

system there is no divergence of the open-loop responses during oscillatory excitation at a 

natural frequency as there was for the 3-DOF system. It should be noted that longitudinal 

disturbances (X, Z, and PM) produce primarily longitudinal responses (forward velocity and 

pitch angle, u and θ) and lateral disturbances (Y, RM, and YM) produce primarily lateral 

responses (roll angle and sideslip angle, φ and β). This is so because although there is 

considerable aerodynamic coupling of the longitudinal and lateral motions in the damping matrix

of the XV-15 state-space matrix, there is little coupling in the mass and stiffness matrices. The 

open-loop responses are suppressed immediately after closing the loop using appropriate control 

inputs that are well within the control limits of the aircraft. The large amplitude spikes appearing 

in the control force time histories in the vicinity of one second are a consequence of turning on

the controller abruptly in the simulations.

An indication of the response of the system to short-burst excitations is provided in 

figures 35-36. Figure 35 shows the response to a short sinusoidal disturbance of 2000 lb in the 

axial (X) direction. The disturbance was formed from a 2400 point (60 sec) time history of a 

0.46734 Hz sine wave with the last 2200 points set to zero resulting in a five second disturbance

at the short-period mode frequency. The open-loop time history is plotted for 12,000 points (300 

sec) to provide a record long enough to allow estimation of the system frequency and damping

from the decaying time history. This yields a damped natural frequency of 0.028 Hz and a 

damping ratio of 0.11, which are characteristic of the low-damped phugoid mode. Open-loop 

responses are suppressed promptly after engaging the controller. (NOTE: Because the shortperiod mode is heavily damped compared to the phugoid mode, its response is very short-lived 

with a duration of only about five seconds and appears as the broad spike at very small time. 

Thus, only the response of the lightly-damped phugoid mode is prominent in the open-loop 

response.) In figure 36 the disturbance is a 5000 lb 200 point (5 sec) pulse in the X direction. 

The data stream used in this case is 24,000 points long (600 sec) for all subplots. Open-loop 

response time histories yield a damped natural frequency of 0.028 Hz and a damping ratio of 

0.11, again indicating excitation of the low-damped phugoid mode. There is immediate quelling

of the open-loop responses after closing the loop.

In figure 37 the disturbances are Z, PM, and Y and are given by usin1=2000cos(2πft) 

with f=0.46734 Hz (the short period frequency), usin2=1000sin(2πft) with f=0.25556 Hz (Dutch 

roll), and usin3=1500sin(2πft+π/3) with f=0.029291 Hz (phugoid), respectively. Very little 

control input is required (less than 0.2 inches) in this case. Suppression of the responses occurs 

immediately after loop closure.

The three disturbances in figure 38 are Z=usin1 with f=0.46734 Hz, PM=usin2 with 

f=0.25556 Hz, and Y=u1step (a one-step step function). Spiking occurs both in the pedal input 

and the closed-loop sideslip response angle time histories at the step location of the Y 

disturbance. Aside from the spiking in the pedal input, all control inputs are again very small 

(less than 0.2 inches). Of the four closed-loop responses, only sideslip is not fully suppressed.

Figure 39 has the same Z and PM disturbances as figure 38 but the Y disturbance is now 

u2step, a two-step step function. Spiking occurs in the pedal control input at times 

corresponding to the steps in the Y disturbance. Again, of the four closed-loop responses only 
21

sideslip is not reduced to zero. The sideslip angle also has a small spike at the location of each 

of the steps in the Y disturbance.

In figure 40 the disturbances are Z=usin1, PM=usin2, and Y=a random function. Note 

that the random motion of the pedal dominates the required control inputs, all of which are rather 

small. The resulting closed-loop responses are all considerably reduced. 

Figure 41 represents the case of full longitudinal excitation wherein X, Z, and PM 

disturbances act on the system. Here, X=usin1, Z=usin2, and PM=u1step. Complete 

suppression of the open-loop responses occurs immediately after loop closure. 

Figure 42 represents the case of full lateral excitation wherein Y, RM, and YM

disturbances act on the system. Here, Y=usin1, RM=usin2, and YM=u1step. Again, there is 

immediate suppression of the open-loop response upon closing the loop.

In figure 43 there is a single disturbance given by PM=usin2+usawtooth2 (a multitoothed saw-tooth wave) acting on the system. There are three small spikes evident in the 

longitudinal cyclic control input at locations corresponding to the vertical discontinuities in the 

pitching moment disturbance. Quelling of the open-loop responses is again seen to occur 

directly after imposing the controls.

Figure 44 is another example of full longitudinal excitation of the system but with X, Z, 

and PM now being an upward-pointing pyramid, a downward-pointing pyramid, and usawtooth2, 

respectively. Slight spiking occurs in the longitudinal cyclic control input at the locations of the 

three vertical discontinuities in the pitching moment disturbance. Suppression is again 

immediate.

The example of figure 45 employs a full set of six disturbances (X, Y, Z, RM, PM, and 

YM). The random control input of the pedal dominates the set of control inputs to quell the 

random excitation force in the Y direction. Suppression of the open-loop response occurs 

promptly after closing the loop.

Lateral excitations Y, RM, and YM are imposed in figure 46, where 

Y=usin1=2000cos(2πft) with f=0.46734 Hz, RM=usin2=1000sin(2πft) with f=0.25556 Hz, and 

YM=usin3=1500sin(2πft+π/3) with f=0.029291 Hz. There is immediate quelling of the openloop response.

Tracking Examples: Figures 47 through 55 show comparisons of closed-loop (achieved) 

responses of the XV-15 to a variety of imposed target responses with no disturbances acting on 

the system. Figures 56 through 68 show comparisons of closed-loop responses of the aircraft to 

several sets of target responses while being subjected to a variety of disturbances. 

The results for the tracking simulations without disturbances are presented in composite 

figures consisting of three rows. The first row contains one figure which shows a time history of 

the four control inputs applied to the system; the second row contains two figures which show 

comparisons of the target and achieved responses for the forward velocity and pitch angle, 
22

respectively; and the third row contains two figures which show comparisons of the target and 

achieved responses for roll angle and sideslip angle, respectively. 

The target responses in figure 47 are all sinusoids: yt1=psin1=20cos(2πft), with f=0.1 Hz, 

yt2=psin2=10sin(2πft), with f=0.2 Hz, yt3=psin3=15cos(2πft), with f=0.3 Hz, and 

yt4=psin4=25sin(2πft), with f=0.4 Hz. The required control inputs are all sinusoidal, as 

expected, and provide excellent tracking of the target responses.

Figures 48-50 compare the performance of the controller for cases in which problematic 

targets (those having step-type discontinuities in their waveforms) are unfiltered and filtered. In 

figure 48, yt1 is the product of psin1 and a converging exponential (psin1*expc), yt2 is the 

product of psin2 and a diverging exponential (psin2*expd), yt3 is a product of a nonuniformlytoothed saw-tooth wave and a converging exponential (psaw*expc), and yt4 is the product of a 

random function and a diverging exponential (prandom*expd). The three spikes evident in the 

calculated lateral cyclic control input occur at the time locations of the three vertical offsets 

(steps) in the roll target time history. The tracking is excellent. Figure 49 is a repeat of figure 48

but with the roll target response yt3 filtered by a 20-point moving average filter (MATLAB 

function filtfilt.m). The three roll control spikes are now gone. Tracking remains excellent. 

Figure 50 is a repeat of figure 49 but with the sideslip target also filtered. The time histories of 

the required control inputs are now both considerably smoother as well as slightly smaller.

Figures 51-52 are another comparison of filtered and unfiltered tracking responses but for 

a different set of target responses. In figure 51 yt1=psin1, yt2=psin1+p2step, yt3=prandom, and 

yt4=psin4. Large spikes appear in the calculated pedal control inputs at t=1.45 sec and t=6.25 

sec due to the vertical steps in the pitch target response. The tracking is very good. Figure 52 is 

a repeat of figure 51 but with the pitch target response filtered by a 20-point moving average 

filter. There are now no spikes in the pedal control input. Tracking is excellent.

Figures 53-55 are the final set of comparisons of filtered and unfiltered tracking 

responses for the case of no disturbances. In figure 53 yt1=p1step-psaw, yt2=(psin1+p2step)/5, 

yt3=psaw, and yt4=p2step+p1mc, where p1mc is a (1-cosine) function. Large spikes appear in 

the lateral cyclic and pedal control inputs due to the various infinite-slope vertical steps in all 

four target responses. Tracking is very good. Figure 54 compares the filtered and unfiltered 

targets of figure 53. Figure 55 is a repeat of figure 53 but using the filtered targets of figure 54. 

The control input time history is now smoothly varying with no large amplitude spikes as before. 

Tracking is now excellent.

The results for the tracking simulations with disturbances acting on the system are 

presented in composite figures consisting of four rows. The first row has two figures: the first 

shows the disturbances acting on the system while the second shows the open-loop responses of 

the system The second row contains one figure which shows a time history of the four control 

inputs applied to the system; the third row contains two figures which show comparisons of the 

target and achieved responses for the forward velocity and pitch angle, respectively; and the 

fourth row contains two figures which show comparisons of the target and achieved responses 

for roll angle and sideslip angle, respectively. 
23

Figures 56-59 have longitudinal disturbances X=usin1, Z=usin2, and PM=u2step acting 

on the system. In figure 56 the target responses are yt1=psin1*expc, yt2=psin2*expd, 

yt3=psaw*expc, and yt4=prandom*expd, the same as in figure 48. The control inputs look the 

same as those in the no-disturbance case of figure 48 but they are not identical numerically. The 

small differences are just enough to quell the disturbances in figure 56. Spikes on the lateral 

cyclic input are due to the three vertical steps in the roll target. There is, however, very good 

tracking. Figure 57 is a repeat of figure 56 but with a filtered roll target. No spikes are now

present in the control inputs. Tracking is excellent. Figure 58 is a repeat of figure 57 but with 

the sideslip target also filtered. All the control inputs are now both smoothly varying and 

reduced in magnitude. Tracking remains excellent. Figure 59 is a repeat of figure 58 but with 

the disturbances increased by a factor of 20. All control inputs are now larger by a factor of 

about two to accommodate the twenty-fold increase in magnitude of the disturbances. Tracking 

is still excellent.

Figures 60-62 have lateral disturbances Y, RM, and YM which are identical to those used 

for X, Z, and PM in figure 56. However, the set of target responses is different. In figure 60 the 

target responses are yt1=p1step–psaw, yt2=psin1+p2step, yt3=psaw, and yt4=p2step+p1mc. 

There are large amplitude spikes in the lateral cyclic and pedal control inputs due to the vertical 

steps in all four target responses. Tracking is very good. Figure 61 shows a comparison of 

filtered and unfiltered targets for figure 60. Figure 62 is a repeat of figure 60 but with filtered 

targets. Controls now vary smoothly with time and the spikes no longer appear. Tracking is 

now excellent.

Figures 63-64 show a comparison of filtered and unfiltered tracking responses for the 

case in which the six disturbances of figure 45 act on the system. Figure 63 has the same set of 

targets as in figure 56. Spikes occur in the lateral cyclic control input at the time locations of the 

vertical steps in the roll target yt3. Tracking is very good. The control inputs are much larger 

(even without considering the spikes) than in figure 45 because of the tracking requirement

imposed in figure 63. Figure 64 is a repeat of figure 63 but with filtered roll and sideslip targets. 

Controls vary smoothly with time now and have slightly smaller values. Tracking is excellent. 

Figure 65 has the same pitch disturbance as in figure 43 and the same filtered targets as in 

figure 50. Note that all the calculated control inputs are considerably different from those in the 

regulator example of figure 43 because of the additional tracking requirements imposed in figure 

65. However, the present control inputs are very nearly those of the zero-disturbance tracking 

example in figure 50. Tracking is excellent.

Figure 66 has the same X, Z, and PM disturbances as in figure 44 and the same filtered 

targets as in figures 50 and 65. Control inputs here are larger than those in figure 44 because of 

the additional tracking requirements imposed in figure 66 but are essentially the same as those in 

figures 50 and 65 because the targets are the same (recall earlier 3-DOF system comment that 

targets tend to drive the character and magnitude of the required control inputs). Tracking is 

excellent. 

Figure 67 has a full complement of six disturbances (same as those in figure 45). The 

target responses are each composed of various combinations of the simpler target responses used 
24

above in figures 47-66) . Control inputs here are much larger than in figure 45 because of the 

additional target response requirements. Tracking is excellent. 

Figure 68 has sinusoidal lateral excitations Y, RM, and YM as in figure 46. The target 

responses are again each composed of various combinations of simpler target responses used 

earlier. Much larger control inputs are needed here than in figure 46 to enforce the additional 

tracking requirements. Tracking is excellent.

Summary of Observations: Viewed as a whole, the XV-15 simulations indicate that the GPC

controllers functioned well whether they were employed as regulators to suppress disturbanceinduced system responses or as trackers to cause the system to follow a prescribed response. 

When used in the regulation mode, they were able to either significantly reduce or quell openloop responses of the system under a variety of imposed disturbance conditions and did so 

immediately after closing the loop. The control displacements required to achieve these 

reductions were all about an inch or less in value and well within the control operating ranges of 

the subject aircraft.

When used to meet a tracking requirement, the GPC controllers were able to produce the 

commanded responses, even in the presence of disturbances acting on the system, and to do so

promptly after closing the loop. Based on the results presented in figures 29-68, the tracking 

problem is much more demanding than the regulator problem. That is, the control inputs 

required for satisfactory tracking are typically (much) larger than those needed for regulation. It 

was also observed that large amplitude spikes can occur in the calculated control inputs (as they 

did for the 3-DOF system) when the target response time histories have vertical (infinite-slope)

step discontinuities. However, such spikes can be averted simply by filtering suspect 

problematic targets to reduce the slope of such abrupt transitions. The spiking notwithstanding, 

the values calculated for the control inputs in the tracking examples, although substantially larger 

than those required in the regulation examples, appear reasonable considering the complexity 

and magnitude of most of the prescribed maneuvers. However, because the XV-15 was not 

designed for aggressive active-control-induced maneuvers, many of those values exceed the 

operating limits of the controls on the aircraft.

Concluding Remarks 

The results of numerical simulations aimed at assessing and evaluating the effectiveness of 

a predictive control method known as Generalized Predictive Control (GPC) for active control of 

systems dominated by rigid-body behavior have been summarized. GPC is a linear, timeinvariant, multi-input/multi-output predictive control method that uses an AutoRegressive with 

eXternal input (ARX) model to describe the input-output relationship of the system. The 

coefficient matrices of the ARX equation are determined using system identification techniques. 

The input-output equation is used to form a multi-step output prediction equation over a finite 

prediction horizon. The control to be imposed at the next time step is determined by minimizing 

the deviation of the predicted controlled plant responses from the desired (or target) responses, 

subject to a penalty on control effort. Following a qualitative discussion of the essential features 

of GPC, the equations underlying the method as applied during the present investigation were 
25

presented and discussed, including system identification, calculation of control law matrices, and 

calculation of the commands applied to the control effectors. 

Representative results from two types of simulations were presented. The first used a 

three-degree-of-freedom mathematical model of an unrestrained (free-free) mass-spring-dashpot 

system. The second used a state-space math model of the rigid-body dynamics of the XV-15 

tiltrotor research aircraft cruising at 150 knots in the airplane mode of flight. Both models were 

subjected to a variety of user-defined external disturbances and user-defined target responses 

intended to demonstrate the robustness of GPC to changing disturbances and target motions. 

Results obtained from these simulations have been decidedly positive. In particular, in the 

regulator examples calling for a quelling of the response in the presence of external disturbances, 

the closed-loop simulations showed reductions of nearly 100% for most of the examples. 

Furthermore, the control inputs required to achieve these reductions were all small. For 

example, the rotor and pedal control displacements required to achieve these reductions for the 

XV-15 were about an inch or less in amplitude and well within the control operating ranges of 

the aircraft. In the tracking examples wherein the system is commanded to follow a specified 

path, the GPC controllers were able to produce the desired responses, even in the presence of 

external disturbances. The control inputs needed to produce the target trajectories were notably 

larger than those required for regulation but reasonable when viewed from the perspective of the 

level of complexity and magnitude of the commanded maneuvers.

Based on the results of these studies, it has been demonstrated that GPC is an excellent 

approach for active control of the rigid-body behavior of dynamic systems.
26

Appendix A

State-Space Model for 3-DOF Mass-Spring-Dashpot System∗

The second-order matrix equations of motion for the free-free, 3-degree-of-freedom, 

mass-spring-dashpot system shown in figure 2 are given by

 

1 12 2 1 2 2 11

2 2 223 3 2 2 23 3 2 2

3 3 3 3 3 3 3 3 3

1

2

0 0 0 0

0 0

0 0 0 0

100100

010010

001001

m xc c xk k x f

m x ccc c x kkk k x f

mx c c x k k x f

ud

ud

u

    − −                   +− + − +− + − =             − −       

 

  =

 

 

 

 

[ ] [ ] { }

{ } [ ]{ } 3

2

1

2

3

ud uc

d ud

I I Bu

uc uc

uc

uc

 

 

 

       =   =      

 

     

(A1)

where the external forces acting on the system are divided into disturbance forces udi and control 

forces uci for convenience in controls work. Note that three disturbance forces and three control 

forces are assumed in equation A1. The matrix [B2] is an input influence matrix indicating the 

locations of the input forces {u}. Equation A1 can be written compactly as

 [Mx Cx Kx f B u ]{  } + + == [ ]{ } [ ]{ } { } [ 2 ]{ } (A2)

For controls work, equation A2 is usually recast into a set of first-order differential equations

known as state equations having the form

 {X AX Bu } = + [ c c ]{ } [ ]{ }  (A3)

where the usual reformulation leads to the state matrix [Ac], input influence matrix [Bc], and 

state vector {X} given by

 [ ] [ ] [ ] [ ] [ ] { } { }

{ } 1 1 1

2

0 0

; ; c c

I x

A B X

MK MC M B x − − −

     =    = =   − −                 (A4)

 ∗

 This is a corrected version of the formulation presented in Appendix B of reference 6. 
27

In control problems, the first-order equations of motion given by equation A3 are 

augmented with a set of equations relating the outputs or measured quantities {y} to the state 

variables {X} and the inputs {u} according to

 {y C X Du } = + [ c c ]{ } [ ]{ } (A5)

For mechanical systems, outputs are typically related to the dynamic variables of the problem 

such as{x x },{ }, and {x} by equations of the form 

 {y Cx y Cx y Cx dd vv aa } =    { }, , { } = { } { } = { }      (A6) 

 

where Cd , Cv , and Ca are output influence matrices for displacement, velocity, and 

acceleration, respectively, and for the subject three-degree-of-freedom system (assuming 3 

displacements, 3 velocities, and 3 accelerations are measured) have the diagonal forms

 

1 11

22 2

33 3

; ;

d va

d d vv aa

dv a

c cc

C c Cc Cc

ccc

   

      =       =   =      

   

 (A7)

The matrices Cd , Cv , and Ca in equation A6 describe the relationship between the units of the 

dynamic variables in the vectors {xxx }, , {   } { }and the units of the measured quantities in the 

vectors {yd}, {yv}, and {ya}, respectively. If the measurement quantity has units of 

displacement, velocity, or acceleration the corresponding diagonal term is unity; otherwise the 

diagonal term is a conversion factor from the units of the dynamic variable (e.g., acceleration) to 

the units of the measured quantity (e.g., volts). 

If accelerations are measured, the acceleration output equations (the third set of equations 

given by A6) must be rewritten in terms of the state variables {x} and{x} . This is done by 

solving equation A2 for {x} and substituting the result into the third of equations A6. The 

resulting equations can then be written solely in terms of the state variables {x} and {x} as 
28

 

{ } { }

{ } { }

{ } { }

{ } { }

11 1

2

11 1

2

0 0

0 0

d d d

vv v

aa a a

aa a

x

yC C X

x

x

y C CX

x

x

y CM K CM C CM B u

x

CM K CM C X CM B u

−− −

−− −

  =     =    

  =     =    

 

=− − + 

        

=− − +      







 (A8)

The output equation (A5) for the general case in which all the displacements, velocities, and 

accelerations comprise the vector of measured quantities has the form

 { }

{ }

{ }

{ }

{ } { }

11 1

2

0 0

0 0

d d

v v

aa a a

y C

y y C X u

y CM K CM C CM B −− −

            = =   +     − −        

 (A9)

which can be written compactly as

 {y C X Du } = + [ c c ]{ } [ ]{ } (A10)

where [Cc ] and [Dc ] are the output and direct transmission matrices and are given by

 

[ ]

[ ]

[ ]

[ ]

1 1

1

2

0

0

0

0

d

c v

a a

c

a

C

C C

CM K CM C

D

CM B

− −

−

 

  =

− −  

 

 

=  

         

 (A11)

The output matrix [Cc] depends on the number, type, and location of the sensors used to 

measure the outputs of interest. The direct transmission matrix [Dc

  Ca = [0]  

] is zero if accelerations are 

not included in the output measurements (in which case ), or if the accelerations are 

measured at locations where there are no disturbances or control forces (in which case the 

corresponding diagonal elements of both Iud and Iuc will be zero, the corresponding rows of [B2

1 CM B a 2−    

] 

will be null, and the product will be zero).
29

Special cases of the general equations given above are easily obtained. For example, the 

number, type, and combination of input and output quantities can be varied by deleting 

appropriate rows of the output equation and/or zeroing appropriate diagonal elements in Iud, Iuc

Cd

, 

, Cv , and Ca .
30

Appendix B

State-Space Model for XV-15 Tiltrotor Research Aircraft

Figure 27 shows the Bell XV-15 tiltrotor research aircraft flying in airplane mode. This 

aircraft was designed and built by Bell Helicopter Company during the mid-1970s under a joint 

NASA/Army contract with the objective of initially serving as a tiltrotor technology 

demonstrator and then later as a tiltrotor technology research aircraft (ref. 20). The aircraft has a 

design gross weight of 13,000 lb, carries a crew of two, and has a maximum speed of 300 knots

when operating in the airplane mode of flight. 

An existing state-space model defining the rigid-body flight dynamics of the XV-15 was 

used for the present studies. The model was obtained from Bell Helicopter Textron in the 1990s 

as part of some collaborative studies then underway between Bell and the Aeroelasticity Branch

at NASA Langley. When the present GPC investigation was initiated it was with the intention of 

only using the three-degree-of-freedom math model described in Appendix A. However, it was 

realized that the subject XV-15 model (which was still in-hand) would be an excellent additional

model for the investigation and so it was included as one of the study systems. 

Some comments related to manner of obtaining the mass, damping, stiffness, and control 

effectivity matrices needed for forming the A and B matrices of the XV-15 state-space equations 

are in order. These matrices were obtained using a Bell rotorcraft flight simulation program 

called C81 (ref. 21). The program first seeks the equilibrium or trim solution for a specified

flight condition (symmetric level flight at 150 knots in the airplane mode of fight at sea level 

altitude was used in this instance). This calculation involves numerically solving the nonlinear 

algebraic equations governing the trim solution of the aircraft for the specified flight condition. 

The trim solution yields the aircraft’s attitude (yaw, pitch, and roll) in space, the longitudinal

(fore/aft) and lateral rigid-body flapping angles of the tip-path-plane for each of the two rotors, 

and the positions of the four pilot controls (rotor collective pitch, rotor longitudinal cyclic pitch, 

rotor lateral cyclic pitch, and pedals).

There are 11 independent variables that define the trimmed flight condition (three 

fuselage angles (yaw, pitch, and roll), four pilot controls (collective, longitudinal cyclic, lateral 

cyclic, and pedals), and the longitudinal and lateral tip-path-plane flapping angles for each of the 

two rotors). These 11 independent variables must satisfy 10 static equilibrium equations (3 

forces and 3 moments at the c.g. of the aircraft and the longitudinal and lateral flapping moments 

for each of the two rotors. The trim solution is initiated by assuming a fixed value for one of the 

independent variables (usually fuselage yaw or roll angle); this leads to a set of 10 nonlinear 

algebraic equations in 10 unknowns. One then makes reasonable guesses for the values of the 10 

remaining independent variables and the program iterates on them until all 10 static equilibrium 

equations are satisfied.

With the trim solution known, the program then obtains the mass, damping, stiffness, and 

control effectivity matrices that underlie the linear perturbation equations governing the rigidbody behavior of the aircraft about the trim flight condition. This step involves calculating 

changes in the fuselage and rotor trim forces and moments due to small perturbations in the flight 
31

variables (displacements, velocities, and control inputs). Perturbing (with stick fixed) all the 

displacement and velocity degrees of freedom in turn leads to the elements of the rigid-body 

stiffness and damping matrices. Perturbing the linear and angular displacements yields the 

stiffness matrix. Perturbing the linear and angular velocities gives the damping matrix. The 

rigid-body mass matrix is formed directly from the known inertial properties of the aircraft. The 

resulting mass, damping, and stiffness matrices are each of size 10×10.

The control effectivity matrix, which is essentially a partial derivative matrix giving the 

changes in the forces and moments that act on the airframe and rotors due to perturbation 

changes in the four pilot controls, is also computed after calculating the trim solution. This

computation involves perturbing each of the control inputs in turn, calculating the relevant force 

or moment, subtracting the trim value of that force or moment, and then dividing by the value of 

the perturbation. The control effectivity matrix is of size 10×4. 

 A rigid-body simulation will have 10 rigid-body degrees of freedom (6 from the airframe

(x, y, z, θ, ψ, φ) and 4 from the rotors (longitudinal and lateral tip-path-plane flapping (a1 and 

b1) of each of the two rotors). Because the time constants for the rotor flapping responses are 

much smaller than the time constants for the rigid-body responses of the airframe, rotor flapping 

equilibration subsequent to a motion of the airframe can be viewed as essentially instantaneous. 

Thus, one can assume that tip-path-plane flapping is not an independent state and eliminate the 

tip-path-plane flapping degrees of freedom from the linear math model by deleting all the rows 

and columns involving the rotor flapping degrees of freedom in the four governing matrices. 

This elimination produces 6×6 mass, damping, and stiffness matrices, and a 6×4 control 

effectivity matrix. 

The vector of state variables employed in the state-space model of the XV-15 tiltrotor 

research aircraft used in the present investigation is given by 

{ } T

X xz y uwqv pr   θ φψ   = (B1)

The first six state variables are the perturbation displacements and rotations. The last six state 

variables are the corresponding perturbation linear and angular velocities. The sign convention 

for these state variables is depicted in figure 28. Note that the rotor longitudinal and lateral tippath-plane flapping angles a1 and b1 and their first time derivatives are not included in the state 

vector. This is consistent with the deletion of the rotor flapping equations of motion and all 

columns dealing with rotor flapping from the full set of linearized equations obtained from C81. 

The partial derivative matrix/control effectivity matrix giving the changes in the total 

forces and moments acting on the aircraft due to perturbation changes in pilot control inputs is

given by
32

Collective Long Cyclic Lat Cyclic Pedal

6335. 75.01 40.04 101.0

199.2 439.6 0.7031 12.47

0.1232 05 0.1011 05 60.41 57.13

0.0000 00 0.0000 00 22.73 565.0

0.9399 02 0.0000 00 8135. 1953.

0.1958 03 0.0000 00 4028

E E

pdm E E

E E

E E

− −

−− −

− +− + = + +

− +

− +

Change in X force (+fwd)

 Change in Z force (+down)

 Change in pitching moment 

 Change in Y force (+ right)

Change in rolling moment 

. 0.1323 05 Change in yawing moment E

 

 

  + 

(B2)

where the meaning of the rows is indicated at the right of the matrix and that of the columns at 

the top of the matrix. The three rotor controls are defined in terms of inches of stick 

displacement and the pedal control as inches of pedal displacement. The forces and moments 

have units of lb and ft-lb, respectively. The sign convention for the stick and pedal movements 

is as follows: Up collective stick is positive and increases forward thrust. Longitudinal cyclic 

stick is positive for stick forward and produces a nose-down pitch of the aircraft. Lateral cyclic 

stick is positive for stick right and produces a right roll. Positive pedal is right pedal forward and 

produces a nose-right rotation (yaw) of the aircraft.

The structural mass matrix, which is formed directly from the known inertial properties 

of the aircraft, is 

 

 u w q v p r 

422.4 0.00 00 0.0000 00 0.00 00 0.0000 00 0.0000 00

0.00

E EE E E

E

mass

+ ++ + +

=

     

00 424.0 0.0000 00 0.00 00 0.0000 00 0.0000 00

0.00 00 36.72 0.1791 05 0.00 00 0.0000 00 0.0000 00

0.00 00 0.00 00 0.0000 00 422.4 0.0000 00 0.0000 00

0.00 00 0.00 00 0.0000 00 0.00 00 0.4867 05 1234.

0.

EE E E

E EE E E

EE E E E

EE EE E

+ ++ + +

+ ++ + +

++ + + +

+ + + + +−

 

 

 

 

 

00 00 0.00 00 0.0000 00 0.00 00 1234. 0.6025 05 EE EE E

 

 

  + + + +− +

 (B3)

where the meaning of the columns is indicated at the top of the matrix and the meaning of the 

rows is the same as in equation B2. 

Perturbing the linear and angular velocity variables as described above yields the

damping matrix

 
33

 

 u w q v p r

12.57 68.98 0.1272 05 0.0000 00 37.39 0.9300 E E E

damp

− + + − −

=

02

75.24 298.2 0.1040 06 0.0000 00 103.4 0.0000 00

119.0 679.6 0.2933 05 0.1502 02 1285. 0.9390 02

0.00 00 0.5869 05 0.0000 00 81.32 0.1294 05 0.1042 06

0.00 00 0.0000 00 0.0000 00 404.4 0.2685 05 6932.

0.

E E E

E E E

EE E E E

EE E E

−+ + − +

− +− − −

+ − + −+ +

++ + +

 

 

 

 

 

00 00 0.0000 00 0.1479 646.3 0.1368 05 0.6277 05 E E E E

 

 

  + +− − + +

 

(B4)

while perturbing the linear and angular displacement variables leads to the stiffness matrix

 

 x z y 

0.00 00 0.00 00 0.1349 05 0.00 00 0.0000 00 0.00 00

0.00 00 0.

EE E E E E

E

stiff

θ φ ψ

++ + + + +

+

=

00 00 1665. 0.00 00 0.9292 04 0.00 00

0.00 00 0.00 00 0.0000 00 0.00 00 0.0000 00 0.00 00

0.00 00 0.00 00 0.1147 04 0.00 00 0.1349 05 0.00 00

0.00 00 0.00 00 0.0000 00 0.00 00 0.0000 00 0.00 00

0.00

E E EE

EE E E E E

EE EE EE

EE E E E E

+ +− − +

++ + + + +

+ +− − +− + +

++ + + + +

EE E E E E 00 0.00 00 0.0000 00 0.00 00 0.0000 00 0.00 00

 

 

  ++ + + + +

 (B5)

Again, the meaning of the columns is indicated at the top of the matrices and the meaning of the 

rows is the same as in equation B2. 

Consistent with the development in Appendix A, the continuous-time state matrix is

given by

 [ ] [ ]

[ ] [ ] [ ] [ ] 1 1

0

c

I

A

mass stiff mass damp − −

 

=  

− −  

 (B6)

and the continuous-time input influence matrix Bc is composed of a disturbance part Bdisturbance

and a control part Bcontrol

 [ ] BB B c = disturbance control (B7)

where the control portion of Bc is

 [ ]

[ ] [ ] 1

0

Bcontrol mass pdm −

 

=  

   

 (B8)
34

and the disturbance portion of Bc is

 [ ]

[ ] [ ] 1

0

disturbance

ud

B

mass I −

 

=  

   

 (B9)

The matrix Cc appearing in the output equation portion of the state-space equations is

given by

 

00 0 0 0 0 1 0 0 0 00

0 0 57.3 0 0 0 0 0 0 0 0 0

0 0 0 0 57.3 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 57.3 / (150*1.689) 0 0

c

xz y u wq v pr

u

C

θ φψ

θ

φ

β

 

 

=

 

 (B10)

 

The four output variables are indicated at the right of the matrix Cc. The identity of the columns 

of Cc is indicated above the matrix and corresponds to the sequence of state variables shown in 

equation B1. Note that the sideslip angle β has replaced the perturbation velocity v as the output 

variable in the fourth equation by virtue of the division of that equation by (150*1.689), the 

forward flight velocity in ft/sec. 

Because none of the desired output variables are accelerations, the matrix Dc appearing in 

the output equation is a null matrix.
35

References

1. Juang, J.-N., and Eure, K. W.: Predictive Feedback and Feedforward Control for Systems 

with Unknown Disturbances, NASA/TM-1998-208744, December 1998.

2. Kvaternik, R. G.; Juang, J-N.; and Bennett, R. L.: Exploratory Studies in Generalized

Predictive Control for Active Aeroelastic Control of Tiltrotor Aircraft. NASA TM-2000-

210552, October 2000.

3. Kvaternik, R. G.; Piatak, D. J.; Nixon, M. W.; Langston, C. W.; Singleton, J. D.; Bennett, R. 

L.; and Brown, R. K.: An Experimental Evaluation of Generalized Predictive Control for 

Tiltrotor Aeroelastic Stability Augmentation in Airplane Mode of Flight. J. Amer. Hel. Soc., 

Vol. 27, No. 3, July 2002, pp. 198-208. 

4. Nixon, M. W.; Langston, C. W.; Singleton, J. D.; Piatak, D. J.; Kvaternik, R. G.; Corso, L. 

M.; and Brown, R. K.: Hover Test of a Soft-Inplane Gimballed Tiltrotor Model, J. Amer. 

Helicopter Soc., Vol. 48, No. 1, Jan 2003, pp. 63-66.

5. Nixon, M. W.; Langston, C. W.; Singleton, J. D.; Piatak, D. J.; Kvaternik, R. G.; Corso, L. 

M.; and Brown, R.: Aeroelastic Stability of a Four-Bladed Semi-Articulated Soft-Inplane 

Tiltrotor Model. Presented at the AHS 59th Annual Forum and Technology Display, May 6-8, 

2003, Phoenix, Arizona. In American Helicopter Society 59th Annual Forum Proceedings.

 

6. Kvaternik, R. G.; Eure, K. W.; and Juang, J-N: Exploratory Studies in Generalized Predictive 

Control for Active Gust Load Alleviation. NASA TM-2006-214296, April 2006.

7. Clark, D. W. (Ed): Advances in Model-Based Predictive Control. Oxford University Press, 

New York, 1994.

8. Clarke, D. W.; Mohtadi, C.; and Tuffs, P. S.: Generalized Predictive Control – Parts I and II. 

Automatica, Vol. 23, No. 2, 1987, pp. 137-160.

9. MATLAB Reference Guide. The MathWorks, Inc., Natick, MA, August 1992.

10. Juang, J-N., and Phan, M. Q.: Identification and Control of Mechanical Systems. Cambridge 

University Press, New York, NY, 2001.

11. Juang, J-N.: Applied System Identification. Prentice-Hall, Englewood Cliffs, NJ, 1994.

12. Eure, K. W.; and Juang, J.-N.: Broadband Noise Control Using Predictive Techniques. 

NASA TM 110320, January 1997.

13. Juang, J.-N.: State-Space System Realization with Input- and Output-Data Correlation. 

NASA TP 3622, April 1997.
36

14. Juang, J.-N.; and Phan, M. Q.: Deadbeat Predictive Controllers. NASA TM 112862, 

May 1997. 

15. Eure, K. W.: Adaptive Predictive Feedback Techniques for Vibration Control. Ph.D. 

Dissertation, Virginia Polytechnic Institute and State University, May 1998.

16. Phan, M. Q.; and Juang, J.-N.: Predictive Controllers for Feedback Stabilization. 

Journal of Guidance, Control, and Dynamics, Vol. 21, No. 5, Sept.-Oct. 1998, pp. 747-753.

17. Juang, J.-N.; and Eure, K. W.: Predictive Feedback and Feedforward Control for Systems 

with Unknown Disturbances. NASA/TM-1998-208744, December 1998.

18. Phan, M. Q.; Horta, L. G.; Juang, J.-N.; and Longman, R. W.: Identification of Linear 

Systems by an Asymptotically Stable Observer. NASA TP 3164, June 1992.

19. Phan, M. Q.; and Juang, J-N: Predictive Feedback Controllers for Stabilization of Linear 

Multivariable Systems. AIAA Guidance, Navigation and Control Conference, San Diego, CA, 

July 29-31, 1996.

20. Maisel, M. D.; Giulianetti, D. J.; and Dugan, D. C.: The History of the XV-15 Tilt Rotor 

Research Aircraft: From Concept to Flight. NASA SP-2000-4517, 2000.

21. Davis, J. M.; Bennett, R. L.; and Blankenship, B. L.: Rotorcraft Flight Simulation with 

Aeroelastic Rotor and Improved Aerodynamic Representation, Volume I, Engineer’s Manual. 

USAAMRDL-TR-74-10A, June 1974.
37

Table 1.- Dynamic Characteristics of 3-DOF Math Model

Eigenvalues of State Matrix Natural Frequencies (Hz)

0.0 ± 0.0i

0.0 ± 1.0i

0.0 ± 1.7321i

0.0

0.15915

0.27566

Table 2.- Dynamic Characteristics of XV-15 Math Model

Mode Eigenvalues of State 

Matrix

Damped Natural 

Frequencies (Hz)

Damping Ratios

(Fraction of critical)

Short period

Dutch roll

Phugoid

Roll convergence

Spiral convergence

-1.4173±2.9364i

-0.44913±1.6058i

-0.019449±0.18404i

-0.73883±0.0i

-0.15843±0.0i

0.46734

0.25556

0.029291

0

0

0.43469

0.26936

0.10509

1

1
38

Figure 1.- Block diagram of GPC identification and control procedure.

Figure 2.- Unrestrained three-degree-of-freedom mass-spring-dashpot system
39

Figure 3.- Regulation of 3-DOF system subjected to three sinusoidal disturbances oscillating at 

0.27566 Hz, a system natural frequency.

Expanded scale for control input axis
40

Figure 4.- Regulation of 3-DOF system subjected to a 0.27566 Hz sinusoidal disturbance acting 

on mass 2 and constant (zero frequency) disturbances acting on masses 1 and 3.
41

Figure 5.- Regulation of 3-DOF system subjected to a constant disturbance acting on each mass.
42

Figure 6.- Regulation of 3-DOF system subjected to a random disturbance acting on each mass.
43

Figure 7.- Regulation of 3-DOF system subjected to sinusoidal disturbances at 

0.1, 0.2, and 0.3 Hz.
44

Figure 8.- Regulation of 3-DOF system with disturbances ud1 = a 1-cosine function, ud2 = a 

0.27566 Hz sinusoid, and ud3 = a trapezoidal pulse.
45

Figure 9.- Regulation of 3-DOF system subjected to 1-cosine function disturbances.
46

Figure 10.- Regulation of 3-DOF system with ud1 = a 0.27566 Hz sinusoid, ud2 = a step 

function, and ud3 = an element-by-element product of two 0.27566 Hz sine waves.
47

Figure 11.- Regulation of 3-DOF system subjected to three 0.27566 Hz sinusoidal disturbances, 

two of which are superimposed on 1-cosine and step waveforms.
48

Figure 12.- Tracking of undisturbed 3-DOF system with sinusoidal target responses having

frequencies of 0.1, 0.2, and 0.3 Hz.
49

Figure 13.- Tracking of undisturbed 3-DOF system with target responses yt1 = a trapezoidal 

pulse, yt2 = a 0.2 Hz sinusoid, and yt3 = a 0.3 Hz sinusoid.
50

Figure 14.- Tracking of undisturbed 3-DOF system with target responses yt1 = a one-step step

function, yt2 = a 1-cosine function, and yt3 = a random function. 
51

Figure 15.- Comparison of filtered and unfiltered step function targets for mass 1 

of undisturbed 3-DOF system.
52

Figure 16.- Tracking of undisturbed 3-DOF system of figure 14 but using the filtered target of 

figure 15 for mass 1.
53

Figure 17.- Tracking of undisturbed 3-DOF system with yt1 = an exponentially diverging 0.5 Hz 

sinusoid, yt2 = an exponentially converging 0.5 Hz sinusoid, and yt3 = a multi-step 

step function.
54

Figure 18.- Tracking of undisturbed 3-DOF system with yt1 = a two-step step function, yt2 = a 

delayed exponentially converging 0.5 Hz sinusoid, and yt3 = a random function.
55

Figure 19.- Tracking of undisturbed 3-DOF system with yt1 = a diverging increasing-frequency 

sinusoid with a small offset, yt2 = a multi-toothed 1-cosine waveform, and yt3 = a random 

waveform contaminated by two other waveforms.
56

Figure 20.- Tracking of undisturbed 3-DOF system with 1500-point target time histories

composed of three 500-point segments having different waveforms.
57

Figure 21.- Tracking of undisturbed 3-DOF system with 1500-point target time histories 

composed of three 500-point segments having different waveforms.
58

Figure 22.- Tracking of undisturbed 3-DOF system with 1500-point target time histories

composed of three 500-point segments having different waveforms.
59

Figure 23.- Tracking of disturbed 3-DOF system wherein a variety of waveforms are used for the 

disturbances and targets.
60

Figure 24.- Tracking of disturbed 3-DOF system in which a variety of waveforms are used for 

the disturbances and targets.
61

Figure 25.- Tracking of disturbed 3-DOF system where ud1 = a 1-cosine function, ud2 = a 

0.27566 Hz sinusoid, ud3 =a trapezoidal pulse, and the targets are 0.27566 Hz sinusoids.
62

Figure 26.- Tracking of disturbed 3-DOF system in which a variety of waveforms are used for 

the disturbances and targets.
63

Figure 27.- XV-15 tiltrotor research aircraft in airplane mode of flight.
64

Figure 28.- Perturbation displacements (x, y, z), rotations (θ, φ, ψ), and velocities (u, v, w, p, q, 

r) comprising the state variables used to form the rigid-body state-space equations of the XV-15.
65

Figure 29.- Regulation of XV-15 subjected to a sinusoidal axial force disturbance

at 0.46734 Hz.
66

Figure 30.- Regulation of XV-15 subjected to a sinusoidal vertical force disturbance 

at 0.46734 Hz.
67

Figure 31.- Regulation of XV-15 subjected to a sinusoidal pitching moment disturbance

at 0.46734 Hz.
68

Figure 32.- Regulation of XV-15 subjected to a sinusoidal side force disturbance at 0.46734 Hz.
69

Figure 33.- Regulation of XV-15 subjected to a sinusoidal rolling moment disturbance 

at 0.46734 Hz.
70

Figure 34.- Regulation of XV-15 subjected to a sinusoidal yawing moment disturbance

at 0.46734 Hz.
71

Figure 35.- Regulation of XV-15 subjected to a 21⁄4-cycle sine-pulse axial force disturbance.
72

Figure 36.- Regulation of XV-15 subjected to a 5-sec rectangular pulse axial disturbance.
73

Figure 37.- Regulation of XV-15 subjected to Z, PM, and Y sinusoidal disturbances at 

frequencies of the short period (0.46734 Hz), Dutch roll (0.25556 Hz), and phugoid (0.029291 

Hz) modes, respectively.
74

Figure 38.- Regulation of XV-15 subjected to disturbances Z = a 0.46734 Hz sinusoid, 

PM = a 0.25556 Hz sinusoid, and Y = a step function.
75

Figure 39.- Regulation of XV-15 with disturbances Z = a 0.46734 Hz sinusoid, PM = a 0.25556 

Hz sinusoid, and Y = a 2-step step function.
76

Figure 40.- Regulation of XV-15 where disturbances X, PM, and Y are all random functions.
77

Figure 41.- Regulation of XV-15 subjected to longitudinal disturbances X = a 0.46734 Hz

sinusoid, Z = a 0.25556 Hz sinusoid, and PM = a one-step step function.
78

Figure 42.- Regulation of XV-15 subjected to lateral disturbances Y = a 0.46734 Hz sinusoid, 

RM = a 0.25556 Hz sinusoid, and YM = a one-step step function.
79

Figure 43.- Regulation of XV-15 subjected to a convoluted pitch disturbance.
80

Figure 44.- Regulation of XV-15 subjected to X, Z, and PM disturbances formed 

from triangular waveforms.
81

Figure 45.- Regulation of XV-15 subjected to a full complement of different disturbances.
82

Figure 46.- Regulation of XV-15 subjected to disturbances Y = a 0.46734 Hz sinusoid, 

RM = a 0.25556 Hz sinusoid, and YM = a 0.029291 sinusoid.
83

Figure 47.- Tracking of undisturbed XV-15 with targets yt1 = a 0.1 Hz sinusoid, yt2 = a 0.2 Hz 

sinusoid, yt3 = a 0.3 Hz sinusoid, and yt4 = a 0.4 Hz sinusoid.
84

Figure 48.- Tracking of undisturbed XV-15 with targets yt1 = an exponentially decreasing 

sinusoid, yt2 =an exponentially increasing sinusoid, yt3 = a non-uniform saw-tooth-type wave, 

and yt4 = an exponentially diverging random function.
85

Figure 49.- Repeat of figure 48 but with a filtered roll target.
86

Figure 50.- Repeat of figure 48 but with filtered roll and sideslip targets.
87

Figure 51.- Tracking of undisturbed XV-15 using a variety of target waveforms.
88

Figure 52.- Repeat of figure 51 but with filtered pitch target.
89

Figure 53.- Tracking of undisturbed XV-15 using a variety of target waveforms.
90

Figure 54.- Comparison of filtered and unfiltered targets for figure 53

.
91

Figure 55.- Repeat of figure 53 but with all targets filtered.
92

Figure 56.- Tracking of disturbed XV-15 using the same targets as in figure 48.
93

Figure 57.- Repeat of figure 56 but with filtered roll target.
94

Figure 58.- Repeat of figure 56 but with filtered roll and sideslip targets.
95

Figure 59.- Repeat of figure 58 but with disturbances that are a factor of 20 larger.
96

Figure 60.- Tracking of disturbed XV-15 subjected to various target responses.
97

Figure 61.- Comparison of filtered and unfiltered targets for figure 60.
98

Figure 62.- Repeat of figure 60 but with filtered targets.
99

Figure 63.- Tracking of XV-15 subjected to a full complement of disturbances and using the 

same unfiltered targets as in figure 56.
100

Figure 64.- Repeat of figure 63 but with filtered roll and sideslip targets.
101

Figure 65.- Tracking of XV-15 subjected to a convoluted pitching moment disturbance and using

the same targets as in figure 64.
102

Figure 66.- Tracking of XV-15 subjected to triangular longitudinal disturbances and using 

the same targets as in figure 65.
103

Figure 67.- Tracking of XV-15 subjected to the same full set of disturbances used in figure 64

and a variety of filtered targets.
104

Figure 68.- Tracking of XV-15 subjected to lateral sinusoidal disturbances and using the same

targets as in figure 67.
REPORT DOCUMENTATION PAGE Form Approved

OMB No. 0704-0188

2. REPORT TYPE 

Technical Memorandum

 4. TITLE AND SUBTITLE

Generalized Predictive Control of Dynamic Systems with Rigid-Body 

Modes 

5a. CONTRACT NUMBER

 6. AUTHOR(S)

Kvaternik, Raymond G.

 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)

NASA Langley Research Center

Hampton, VA 23681-2199

 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES)

National Aeronautics and Space Administration

Washington, DC 20546-0001

 8. PERFORMING ORGANIZATION

 REPORT NUMBER

L-20211

10. SPONSOR/MONITOR'S ACRONYM(S)

NASA

13. SUPPLEMENTARY NOTES

Author is a Distinguished Research Associate at NASA Langley Research Center.

12. DISTRIBUTION/AVAILABILITY STATEMENT

Unclassified - Unlimited

Subject Category 08

Availability: NASA CASI (443) 757-5802

19a. NAME OF RESPONSIBLE PERSON

STI Help Desk (email: help@sti.nasa.gov)

14. ABSTRACT

Numerical simulations to assess the effectiveness of Generalized Predictive Control (GPC) for active control of dynamic systems having 

rigid-body modes are presented. GPC is a linear, time-invariant, multi-input/multi-output predictive control method that uses an ARX model 

to characterize the system and to design the controller. Although the method can accommodate both embedded (implicit) and explicit 

feedforward paths for incorporation of disturbance effects, only the case of embedded feedforward in which the disturbances are assumed to 

be unknown is considered here. Results from numerical simulations using mathematical models of both a free-free three-degree-of-freedom 

mass-spring-dashpot system and the XV-15 tiltrotor research aircraft are presented. In regulation mode operation, which calls for zero 

system response in the presence of disturbances, the simulations showed reductions of nearly 100%. In tracking mode operations, where the 

system is commanded to follow a specified path, the GPC controllers produced the desired responses, even in the presence of disturbances. 

15. SUBJECT TERMS

Active control; GPC; Generalized predictive control; Regulation and tracking control; Rigid-body dynamic control

18. NUMBER

 OF 

 PAGES

110

19b. TELEPHONE NUMBER (Include area code)

(443) 757-5802

a. REPORT

U

c. THIS PAGE

U

b. ABSTRACT

U

17. LIMITATION OF 

 ABSTRACT

UU

Prescribed by ANSI Std. Z39.18

Standard Form 298 (Rev. 8-98)

3. DATES COVERED (From - To)

May 2009 - July 2011

5b. GRANT NUMBER

5c. PROGRAM ELEMENT NUMBER

5d. PROJECT NUMBER

5e. TASK NUMBER

5f. WORK UNIT NUMBER

432938.11.01.07.43.40.08

11. SPONSOR/MONITOR'S REPORT

 NUMBER(S)

NASA/TM-2013-217976

16. SECURITY CLASSIFICATION OF:

The public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, 

gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this 

collection of information, including suggestions for reducing this burden, to Department of Defense, Washington Headquarters Services, Directorate for Information Operations and 

Reports (0704-0188), 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person 

shall be subject to any penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number.

PLEASE DO NOT RETURN YOUR FORM TO THE ABOVE ADDRESS.

1. REPORT DATE (DD-MM-YYYY)

01- 04 - 2013