Mr. Johnson World History II WHII.6f Humanities & Technology.
CAMRAD II - johnson-aeronautics.com
Transcript of CAMRAD II - johnson-aeronautics.com
CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OFROTORCRAFT AERODYNAMICS AND DYNAMICS
Volume I: Theory
Wayne Johnson Distributed by
Johnson Aeronautics AMI Aero, LLCPalo Alto, California Redmond, Washington
CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OF
ROTORCRAFT AERODYNAMICS AND DYNAMICS
Volume I: Theory
Release 5.0
Wayne Johnson
Johnson Aeronautics
Copyright c© 1992–2020 Wayne Johnson
Published by Johnson Aeronautics, Palo Alto, California
This volume is part of the Documentation of the proprietary computer software CAMRAD II, provided to Licenseeunder a software license agreement. Documentation and all information and trade secrets contained therein areConfidential Information. Confidential Information constitutes valuable trade secrets and proprietary property ofJohnson Aeronautics.
Notice of Proprietary Rights: This document discloses subject matter in which Johnson Aeronautics has proprietaryrights. Neither receipt nor possession of this document confers or transfers any right to reproduce or disclose thedocument, any part thereof, or any information contained therein, except by written permission from or writtenagreement with Johnson Aeronautics.
LIMITED RIGHTS LEGEND: The restrictions governing the use and disclosure of technical data marked with thislegend are set forth in the definition of “Limited Rights” in paragraph (a)(15) of the clause at DFARS 252.227-7013.The limited rights are not subject to an expiration date. Manufacturer: Johnson Aeronautics, PO Box 1253, PaloAlto, California 94302.
CONTENTS
1. INTRODUCTION 1
1–1 Background 1
1–2 Approach 2
1–3 Nomenclature 3
1–4 General Warnings and Limitations 5
2. SYSTEM ANALYSIS 7
2–1 System Pieces 7
2–2 System Equations 7
2-2.1 Components 8
2-2.2 Interfaces 8
2-2.3 Input 10
2-2.4 Output 10
2-2.5 System 10
2–3 Solution Procedure 10
2-3.1 Loops and Parts 10
2-3.2 Iterative Methods 11
2-3.3 Linearized Equations 13
2-3.4 Order Reduction 14
2-3.5 Models for Solution Tasks 15
2–4 Functionality 16
2–5 Environment 19
2-5.1 Earth 19
2-5.2 Aerodynamic 19
3. COMPONENTS 23
3–1 Description 23
3–2 Structural Dynamic Components 25
3-2.1 Full Residual Connection 25
3-2.2 No Residual Connection 28
3–3 Aerodynamic Components 28
4. FRAMES 29
4–1 Description 29
4-1.1 Frame Motion 29
4-1.2 Frame Degrees of Freedom 29
4-1.3 Mean Axes 31
iv CONTENTS
4-1.4 System Rigid Motion 31
4–2 Implementation 33
4-2.1 Inertial Frame 33
4-2.2 Base Frame (Free Flight) 33
4-2.3 Aircraft Conventions 34
4-2.4 Motion Relative to a Frame 34
5. INTERFACES 35
5–1 Description 35
5–2 Implementation 35
5-2.1 Input/Output Interface 35
5-2.2 Structural Dynamic Interface 35
5–3 Theory 42
5-3.1 Structural Dynamic Connection Operations 42
6. OUTPUT 47
6–1 Description 47
6–2 Theory 47
7. INPUT 51
8. WIND 53
8–1 Description 53
8–2 Theory 53
8-2.1 Wind Velocity and Wind/Gust Axes 53
8-2.2 Ground Boundary Layer 54
9. OPERATING CONDITION 55
9–1 Description 55
9–2 Theory 56
9-2.1 Free 56
9-2.2 Constrained 58
9-2.3 Wind/Gust Axes 59
9-2.4 Derived Quantities 59
10. PERIOD 61
11. TRIM TASK 63
11–1 Description 63
11-1.1 Equilibrium Solution 63
11-1.2 Periodic Solution 63
11-1.3 Rigid or Free Degrees of Freedom 64
CONTENTS v
11–2 Implementation 65
12. TRIM LOOP 67
12–1 Description 67
12–2 Implementation 67
12-2.1 Loop Algorithm 67
12-2.2 No Solution Method 68
12-2.3 Successive Substitution Method 68
12-2.4 Newton-Raphson Method 68
12-2.5 Regulator Method 69
12–3 Theory 70
12-3.1 Successive Substitution Method 71
12-3.2 Newton-Raphson Method 72
12-3.3 Regulator Method 75
13. TRIM PART 79
13–1 Description 79
13-1.1 Differential Equations 79
13-1.2 Filtered Solution 80
13–2 Implementation 81
13-2.1 No Solution Method 81
13-2.2 Implicit Solution Method 81
13-2.3 Differential Equations 81
13-2.4 Static Solution Method 82
13-2.5 Harmonic Solution Method 83
13-2.6 Time Finite Element Solution Method 85
13-2.7 Response Characteristics 87
13–3 Theory 87
13-3.1 Implicit Solution Method 87
13-3.2 Differential Equations 88
13-3.3 Trim Child Solution 94
13-3.4 Static Solution Method 95
13-3.5 Harmonic Solution Method 95
13-3.6 Time Finite Element Solution Method 98
14. TRANSIENT TASK 103
15. TRANSIENT LOOP 105
15–1 Description 105
15–2 Implementation 105
15-2.1 Loop Algorithm 105
15-2.2 No Solution Method 106
15-2.3 Successive Substitution Method 106
vi CONTENTS
15–3 Theory 106
15-3.1 Successive Substitution Method 107
16. TRANSIENT PART 109
16–1 Description 109
16-1.1 Differential Equations 109
16–2 Implementation 110
16-2.1 No Solution Method 110
16-2.2 Trim Solution Method 110
16-2.3 Implicit Solution Method 110
16-2.4 Differential Equations 111
16-2.5 Integration Solution Method 111
16-2.6 Response Characteristics 113
16–3 Theory 114
16-3.1 Implicit Solution Method 114
16-3.2 Differential Equations 114
16-3.3 Integration Solution Method 119
17. FLUTTER TASK 129
17–1 Description 129
17-1.1 Linearized Equations 129
17-1.2 Analysis of Flutter Equations 129
17-1.3 Flight Dynamics Analysis 130
17–2 Implementation 130
17–3 Theory 130
17-3.1 Analysis of Flutter Equations 130
17-3.2 Linear Differential Equations 131
17-3.3 Time-Invariant Equations 134
17-3.4 Periodic Equations 139
18. FLUTTER LOOP 143
18–1 Description 143
18–2 Implementation 143
18-2.1 Loop Algorithm 143
18–3 Theory 144
18-3.1 Flutter Equations 144
18-3.2 Merge Equations 145
18-3.3 Transform Variables 146
18-3.4 Reduce Equations 146
18-3.5 Quasistatic Reduction 147
19. FLUTTER PART 149
19–1 Description 149
CONTENTS vii
19–2 Implementation 149
19-2.1 No Solution Method 149
19-2.2 Interface Solution Method 149
19-2.3 Differential Equations Solution Method 150
19–3 Theory 151
19-3.1 System Equations 151
19-3.2 Interface Solution Method 151
19-3.3 Differential Equations Solution Method 152
20. TRANSFORM 159
20–1 Description 159
20–2 Theory 159
20-2.1 Multiblade Coordinate Transform 159
20-2.2 Rotating-to-Nonrotating Transform 162
20-2.3 Symmetric/Antisymmetric Transform 163
21. MODES 165
21–1 Description 165
21–2 Implementation 165
21–3 Theory 168
21-3.1 Modal Equations 168
21-3.2 Modal Analysis 169
22. RESPONSE 171
22–1 Description 171
22-1.1 Response Representation 171
22-1.2 Prescribed or Internal Motion 172
22-1.3 System With More Than One Period 172
22-1.4 Child Response in Trim 174
22–2 Implementation 174
22-2.1 Response Specification 174
22-2.2 Variable Response Type 175
22-2.3 Rigid Response Type 175
22-2.4 Difference Characteristics 176
22-2.5 Updated Reference 176
22-2.6 Response Evaluation in Trim 177
22-2.7 Child Response 177
22-2.8 Filtered Response 178
22-2.9 Order Reduction 179
22–3 Theory 179
22-3.1 Nominal and Reference Conventions, Variable Type 179
22-3.2 Nominal and Reference Conventions, Rigid Type 180
viii CONTENTS
22-3.3 Representation of Rigid Motion 183
22-3.4 Representation of Rigid Motion, Linear 184
22-3.5 Representation of Rigid Motion, Angular 185
22-3.6 Representation of Rigid Motion, Equations 186
22-3.7 Difference Characteristics 187
22-3.8 Difference Interpolation and Derivatives 188
22-3.9 Motion Relative to a Frame 189
22-3.10 Filtered Response 189
22-3.11 Convergence Test 191
22-3.12 Perturbation 191
23. WEIGHTS 193
23–1 Description 193
23–2 Theory 193
24. TABLES 195
24–1 Description 195
24–2 Implementation 195
24-2.1 Table File Formats 195
24-2.2 Two Dimensional, Standard 196
24-2.3 Three Dimensional, Standard 196
24-2.4 Four Dimensional, Standard 196
24-2.5 Airfoil Tables 196
24-2.6 Matrix, Standard 198
24-2.7 Unstructured, Real or Integer 199
24–3 Theory 199
24-3.1 Interpolation 199
24-3.2 Airfoil Tables 200
24-3.3 Synthesized Airfoil Data 204
24-3.4 Airfoil Table, Type = CAMRAD 205
Chapter 1
INTRODUCTION
CAMRAD II is an analysis of aeromechanical systems that incorporates a combination of advanced tech-
nology, including multibody dynamics, nonlinear finite elements, structural dynamics, and aerodynamics. It is
a comprehensive analysis: for the design, testing, and evaluation of systems — at all stages, including research,
conceptual design, detailed design, and development — CAMRAD II calculates performance, loads, vibration,
response, and stability — with a consistent, balanced, yet high level of technology in a single computer program
— applicable to a wide range of problems, and a wide class of configurations. Such an approach is essential for
many modern problems, which are inherently complex and multidisciplinary.
CAMRAD II uses a building block approach to achieve flexibility in the model of the dynamic and aerodynamic
configuration. Hence it can model the true geometry of a system, including multiple load paths. CAMRAD II
provides a powerful analysis capability, including advanced aerodynamics; rigorous kinematics and dynamics
(with consistent structural loads and dynamic response, and general interfaces between aerodynamic and structural
dynamic components); and general transient solutions. For ease of use a shell is provided to build typical system
models, while the core input capability always gives complete flexibility to define and revise the model. A range
of components and modelling options makes it a practical engineering tool, allowing the best balance of efficiency
and accuracy to be found for a particular problem. CAMRAD II offers a design for growth that makes it an
appropriate platform for future developments, for continuing access to new technology.
This volume of the CAMRAD II documentation describes the theoretical basis for the analysis.
1–1 Background
CAMRAD II incorporates a combination of advanced technology. The existing technology was not found
sufficient however, individually or in combination, to solve the required problems, as designers take modern systems
rapidly beyond the capability of present analyses. Yet there is much to build on in this background technology.
Multibody dynamics technology provides a background on rigid body components, frames, and joints; non-
linear kinematics; and joint operations. In addition however, it is necessary to deal with elastic motion.
Structural dynamics technology provides a background on substructure coupling and static residuals; modal
analysis and truncation; and elimination of constraints. Most of this work is for linear systems, however; here it
is necessary to deal with nonlinear systems.
Nonlinear finite element technology provides a background on nonlinear elements, numerical integration,
and beam components. In addition however, it is necessary to deal with large motion. Hence the present approach
diverges from finite elements by not using nodal motion as degrees of freedom.
2 INTRODUCTION
In general the problems of interest here involve more than just structural dynamics. In particular, there is no
system Lagrangian. For numerous reasons, CAMRAD II also uses explicit constraint forces (for example, in order
to handle partitioned solutions, static residuals, input/output constraints, and evaluation of reactions).
Rotorcraft aeromechanics provides a background on aircraft dynamics, rotating systems, and aerodynamics.
This field also helps define the required tasks and results of the analysis.
The configuration and operation of modern systems requires an analysis and design tool capable of han-
dling complex configurations with unusual load paths and interactions, and with many subsystems; structural,
aerodynamic, and kinematic nonlinearities; arbitrary large motion, including rigid body motions and rotation of
components relative to each other; and components that are not defined by the equations and interfaces of structural
dynamics. The analysis must be flexible, which demands that the specification of the configuration, the aerome-
chanical models, and the solution procedures be separated. The analysis must be designed for growth, so it can
incorporate future technology developments. It is also important that the analysis be easy to use, especially for
normal configurations. A final requirement is that the analysis be practical: efficient, accurate, and reliable.
1–2 Approach
CAMRAD II performs a nonlinear dynamic/static analysis of an aeromechanical system. Flexibility and
generality of the system configuration are obtained by assembling standard components with standard interfaces,
and solving the system by standard procedures. The basic approach of the analysis is to make no approximations
at the highest levels. A finite-dimension description of the system is required. The components and interfaces
introduce spatial discretization; the solution procedures introduce time discretization. No further approximations
are made at the top level. The coupling and solution procedures can handle arbitrary and exact models, including
nonlinear and time-varying equations. Approximations are possible (indeed required for most practical solutions),
but enter at the component level. With this approach, new technology and more accurate models can be developed
and implemented in the form of new components, without changing the framework of the analysis.
For configuration generality, the analysis splits the system into pieces, with connections between. The
following pieces are available to construct the system:
environmental physical logical
case component loopwind frame partoperating condition interface transformperiod output modes
input responseweights
These system pieces constitute the core analysis, providing a flexible, building-block oriented modelling capability.
There are physical pieces (components and interfaces) and logical pieces (solution procedure). The components
available include structural dynamic, aerodynamic, differential equation, and performance models. Standard
descriptions of components, interfaces, and solution procedures are required. Structural dynamic systems are an
important subset of the problems of interest, but other types of components are equally important, particularly
aerodynamic models. The conventions and methodology must encompass all types of components, interfaces, and
solution procedures; and yet also accommodate the conventional approaches for specific types.
INTRODUCTION 3
The analysis solves differential, integral, static, and implicit equations for the motion of the system, and
evaluates required output quantities from the response. Figure 1 illustrates the analysis tasks: trim, transient, and
flutter. The trim task finds the equilibrium solution (constant or periodic) for a steady state operating condition.
Often it is necessary for the trim task to identify parameter values required to achieve a specified operating condition.
The transient task integrates the equations in time, from trim, for a prescribed excitation. The flutter task obtains
and analyzes differential equations, linearized about trim. With a quasistatic reduction of the system, the flutter
task can produce a stability derivative model.
It is important that the analysis be easy to use, especially for normal configurations. Modelling a large system
requires definition of many core pieces (particularly interface and response pieces). Hence the analysis has a shell
to facilitate application to specific problems. The shell constructs the core input for typical configurations and
typical problems. The objective is to isolate the user from details of the system definition at the core level. The
shell creates the components and other system pieces required, from parametric input and from assumptions about
the system configuration and model. By using such a shell, it is typically possible to accomplish 2–3 orders of
magnitude compression of the amount of input data supplied by the user.
The shell does not have the flexibility of the core input, and may not be able to model exactly every config-
uration. The shell constructs most of the system, minimizing the need to deal directly with the core input; and
what the shell constructs will provide guidance for the use of the analysis. The user can still use the core input to
change the model constructed by the shell, as required for specific problems. In addition, there is no need for the
shell input to implement features that can be obtained by simple changes to the core input (as long as the shell at
least creates the system piece).
1–3 Nomenclature
The nomenclature for kinematics of rigid motion employs the following conventions. A vector x is a column
matrix of three elements, measuring the vector relative to a particular basis (or axes, or frame). The basis is
indicated as follows:
a) xA is a vector measured in axes A;
b) xEF/A is a vector from point F to point E, measured in axes A.
A rotation matrix C is a three-by-three matrix that transforms vectors from one basis to another:
c) CBA transforms vectors from basis A to basis B, so xB = CBAxA.
The matrix CBA defines the orientation of basis B relative basis A, so it also may be viewed as rotating the axes
from A to B. For a vector u, a cross-product matrix u is defined as follows:
u =
⎡⎣ 0 −u3 u2
u3 0 −u1
−u2 u1 0
⎤⎦such that uv is equivalent to the vector cross-product u × v. Note that outside the context of rigid motion
kinematics, the tilde symbol does not imply this matrix. The cross-product matrix enters the relation between
angular velocity and the time derivative of a rotation matrix:
CAB = −ωAB/ACAB = CABωBA/B
4 INTRODUCTION
TRIM
TRANSIENT
FLUTTER
RESPONSEandOUTPUT
RESPONSEandOUTPUT
RESPONSEandOUTPUT
equilibrium solution steady or periodicsteady state operating condition identify parameters to achieve specified operating condition
integrate in time from trimfor prescribed excitation
differential equations linearized about trimfull dynamics orquasistatic reduction including stability derivative representation
solve equations (differential, integral, static, implicit) for motion of system evaluate required output quantities from response
Figure 1-1 CAMRAD II tasks.
INTRODUCTION 5
(the Poisson equations). For rotation by an angle α about the x, y, or z axis (1, 2, or 3 axis), the following notation
is used:
Xα =
⎡⎣ 1 0 00 cos α sinα0 − sinα cos α
⎤⎦Yα =
⎡⎣ cos α 0 − sinα0 1 0
sinα 0 cos α
⎤⎦Zα =
⎡⎣ cos α sinα 0− sinα cos α 0
0 0 1
⎤⎦Thus for example, CBA = XφYθZψ means that the axes B are located relative the axes A by first rotating by angle
ψ about the z-axis, then by angle θ about the y-axis, and finally by angle φ about the x-axis. Euler-Rodrigues
parameters (or Rodrigues parameters) are defined by the relation p = 2u tanψ/2, for rotation by angle ψ about
an axis in the direction of the unit vector u. This differs by a factor of 2 from the classical definition, but has
the advantage that p ∼= uψ for small rotations. Consider the relative motion of axes A and B. Let xBA/A be the
displacement from the origin of A to the origin of B, measured in A axes; and CBA the rotation from axes A to
axes B. Time derivatives of the motion of B relative A can be described by body axis velocity and angular velocity.
Thus the following standard convention is used for a description of the rigid motion of axes B relative axes A:
a) linear motion: xBA/A and vBA/B = CBAxBA/A and vBA/B
b) angular motion: CBA and ωBA/B = CBACAB and ωBA/B
The axes A and B might be frames, or rigid body degrees of freedom, or the position of some point on a structure.
1–4 General Warnings and Limitations
The state-of-the-art of engineering is such that it is not yet possible to accurately calculate or predict aerome-
chanical system behavior in all circumstances. Any computer program must be used in that context. It is always
possible to get a bad answer from bad input or misuse of an analysis. It is also possible that the best results of
an analysis may not be accurate. A computer program is a tool, not substituting for but rather to be used with
judgement, experience, and much testing of the actual system.
The analysis models a system by dividing it into components. Each component is a model of the actual device.
Rarely are the complete equations being solved for the exact response. Rather empiricism and approximations
are required in order to make the analysis practical. Hence engineering judgement is required to use and interpret
the analysis, based on experience with the code, particularly projects using the code to correlate with measured
results.
6 INTRODUCTION
Chapter 2
SYSTEM ANALYSIS
2–1 System Pieces
For configuration generality, the analysis splits the system into pieces: physical pieces (components and
interfaces) and logical pieces (solution procedure), with connections between. The following pieces are available
to construct the system:
environmental physical logical
case component loopwind frame partoperating condition interface transformperiod output modes
input responseweights
The environmental pieces provide a standard description of the system operation. They contain parameters that
are available to all components, and which can be changed by the trim loop solution methods. The physical pieces
correspond to the physical description of the system. The physical pieces produce the system equations. The
logical pieces define the procedure for solving the system equations. Transform and modes are system pieces that
provide standard means to introduce various transformations of the system variables and equations. Response is
a system piece that provides standard means to define the characteristics of all the system variables. Weights is a
system piece that provides standard perturbation and convergence weights for the response.
This chapter describes the general features of the approach. Subsequent chapters discuss the system pieces
in detail.
2–2 System Equations
The physical pieces define equations that describe the system. Figure 1 illustrates the relations between the
physical pieces. Associated with each piece are certain variables:
system piece variables
component n degree of freedom ξn
interface l constraint variables fl
input m input um
output q output yq
8 SYSTEM ANALYSIS
All these variables are vectors; each vector has one or more elements.
2-2.1 Components
A component can have degrees of freedom ξni, where i enumerates the degree of freedom vectors of component
n. Dependence on degrees of freedom means that equations of motion exist, and usually a differential equation
formulation is possible. The motion equations can be of zero, first, or second order; meaning respectively that the
equations depend on the displacement, or on the displacement and velocity, or on the displacement and velocity and
acceleration. The component can depend on frame motion β. The frame motion can be prescribed, or the frame
motion can be obtained from the rigid body degrees of freedom of this or other components (called “frame degrees
of freedom”). The component has input fni and output xnj , where i and j enumerate the input and output vectors
of component n. The component input is of structural dynamic kind or input/output kind; it can be connected to
an interface or to a system input piece. The component output is of structural dynamic kind or input/output kind;
it can be connected to an interface or to a system output piece. For a structural dynamic interface, the input and
output occur in pairs: the input is the vector of force and moment at the connection, and the output is the axes
motion of the connection (x, C, and derivatives).
Hence the component produces motion and output equations, depending on the degrees of freedom, frame
motion, and input:0 = Anj(ξni, β, fni)
xnj = Bnj(ξni, β, fni)
In general these equations can be nonlinear and time varying. If the component does not have degrees of freedom,
the motion equations do not exist.
2-2.2 Interfaces
An interface connects two (or more) components. The interface has constraint variables fl. It produces
constraint equations (to be solved for the constraint variables) and constraint forces (equations to evaluate the
component input f in terms of the constraint variables). These equations in general depend on the component
input x and on the constraint variables:0 = Bl(x, fl)
f = Cl(fl)
The interface type can be structural dynamic or input/output.
For a structural dynamic interface, two components are connected (components A and B). The constraint
variables fl are the reaction loads of the connection. The component input is the force and moment at the
connection (acting on the component), and the component output is the axes motion at the connection (linear and
angular). The equations can be written symbolically as:
0 = Bl = xA − xB
fA = Cl = +fl
fB = Cl = −fl
The actual equations are more complicated, since the constraint equation is obtained from the exact kinematics of
the interface; and the constraint variables may not be the complete force and moment on the component, depending
SYSTEM ANALYSIS 9
SD f SD f
SD x SD x
IO f IO xIO x IO f
component(ξn)
0 = Anx = B
component(ξn)
0 = Anx = B
SD interface(fl)
f = C(fl)0 = Bl
IO interface(fl)
f = C(fl)0 = Bl
input(um)
f = um
output(yq)
y = Byq
ξn, fl, um, β
Figure 2-1 System equations.
10 SYSTEM ANALYSIS
on the interface configuration. For a no-residual interface (defined in the chapters on components and interfaces),
the derivatives of Bl are required as well.
For an input/output interface, the output of component A is sent to the input of component B (or to the input
of more than one component). The constraint variables fl are component output. The equations can be written
symbolically as:0 = Bl = xA − fl
fB = Cl = fl
Here the component output xA need not be a displacement; hence it can depend on the derivatives of the component
A degrees of freedom.
2-2.3 Input
An input provides an external connection to the system. The input has variables um. These variables are
connected to the input of one or more components. Hence an input produces connection equations: f = um. The
component input must be of input/output kind.
2-2.4 Output
An output provides an external connection to the system. An output has variables yq. These variables can
be connected to the output x of a component; the component output must be of input/output kind. Alternatively,
the output vector can be identified as some degree of freedom, interface, input, or frame vector (ξn, fl, um, or β).
Hence an output produces output equations: yq = Byq . For example, Byq = x if yq is obtained from component
output.
2-2.5 System
The complete system combines all the system pieces. The system variables include degrees of freedom ξ,
constraint variables f , input u, and output y. Frame degrees of freedom of the system are included in ξ. All
of these system variables are partitioned into vectors, the vectors associated with individual system pieces. The
system thus has motion equations, constraint equations, and output equations:
0 = A(ξ, f, u)
0 = B(ξ, f, u)
y = By(ξ, f, u)
These equations are associated with the degrees of freedom, constraint variables, and output quantities respectively.
Hence they are are also partitioned according to the individual system pieces. Usually for structural dynamic
interfaces, the derivatives of the constraint equation are also required. Generally the equations can be time varying
and nonlinear. They can be differential equations (if the system has degrees of freedom) or implicit equations
(evaluating output from input).
2–3 Solution Procedure
2-3.1 Loops and Parts
To maintain a flexible ability to solve aeromechanical problems, a building-block approach is required for the
logical pieces of the system, just as for the physical pieces. In general it will be necessary to implement iterative
SYSTEM ANALYSIS 11
solution methods, since the equations are often large and nonlinear. The approach used is to define the solution
procedure in terms of loops and parts. Figure 2 illustrates the approach. A part solves a set of equations for the
response. The physical system (components, interfaces, and output) is divided into parts. So each part has a subset
of the system motion, constraint, and output equations. Using a method that depends on the part type, the part
solves the equations for the corresponding degree of freedom, constraint, and output variables. A loop iterates
between part solutions. Using a method that depends on the loop type, the loop iterates until a converged system
solution is obtained. The loops can be hierarchical, executing child loops as well as specified part solutions. Loops
also control the write of output and other information, by executing specified write modules.
There are many factors that can make it advantageous or essential to solve the equations by parts (subsets of
the system equations):
a) An iterative solution of smaller problems can be more efficient than a direct solution of a
large problem.
b) Different kinds of equations (implicit, static, differential, integral) may require different
solution procedures.
c) Different subsystems may require or allow different parameters in the solution procedure.
d) Certain approximations can be implemented only with a partitioned solution (such as using
averaged equations in the solution procedure; or handling a system with more than one period).
e) Subsystem motion or constraint equations can be simplified when the effects of variables in
other parts are entirely contained in the right-hand-side force vectors.
The analysis can solve all the equations together (one part, no-solution type loop), if that is appropriate.
Interactions between parts occur in terms of the system variables (degrees of freedom and constraint variables).
Any transformed variables that are used inside a part are not available to other parts. The interactions are a subset
(preferably a small subset) of the system variables. The interaction variables change as the partition of the system
is changed.
The partition of a system is not arbitrary. Both the physical configuration and the solution procedures restrict
the options. For example, a structural dynamic constraint equation that is being solved to eliminate degrees of
freedom must be in the same part as the motion equation for those degrees of freedom (the interface and component
must be in the same part). In general it is expected that a structural dynamic interface should be in a part that
contains at least one of the components that it connects. An input/output interface that is highly coupled with
certain components should probably be in same part as those components. Here it is required that all degrees of
freedom of a component are solved in the same part.
2-3.2 Iterative Methods
An iterative loop or part solution method is often required, because of either nonlinearity or the size of the
problem. In general, iterative methods have a relaxation factor (and other parameters) to improve convergence, and
a tolerance to measure convergence. Convergence is tested in terms of an error, which is typically some norm of
the difference between two iterations. The analysis has conventions that allow it to handle the required operations
(relax, save, evaluate error, and test convergence) for all response kinds encountered.
The basic approach is to find the largest value of the relation factor for which the iteration will converge.
12 SYSTEM ANALYSIS
0 = A0 = By = By
0 = A0 = By = By
0 = A0 = By = By
0 = A0 = By = By
0 = A0 = By = By
SYSTEM PARTS SOLVE EQUATIONS
LOOPS ITERATE BETWEEN PARTS
Figure 2-2 Solution procedure.
SYSTEM ANALYSIS 13
Then, having achieved convergence, the largest value of the tolerance that produces an accurate solution is found.
Using a smaller relaxation factor or smaller tolerance forces the loop or part to make more iterations than necessary,
which is often unacceptably inefficient. Assessing the tolerance is usually done not by examining the variables
tested, but by looking at the output quantities relevant to the specific problem. Hence the tolerance is decreased
until the user decides that the change in these output quantities is not important.
When the correct solution is not known, convergence must be tested by comparing the values of two successive
iterations. The effect of the relaxation factor is to reduce the difference between iterations. Hence a reduction of the
relaxation factor must be often be accompanied by a reduction in the tolerance, to maintain the same convergence
accuracy.
2-3.3 Linearized Equations
The part solution methods, particularly those solving static or differential equations for degrees of freedom,
may require that the equations be linearized about some reference. The flutter task requires that the entire system
be linearized about the trim solution. Many methods for solving nonlinear equations make use of a linear or
linearized portion of the equations. Frequently the algorithm can be formulated as an iterative process that for
a truly linear system reduces to an exact, one-step solution. For large problems the best algorithm may require
iteration even for linear systems.
The analysis generates linearized equations by numerically or analytically perturbing the component equations
(motion and component output, by vector) for each element of each degree of freedom or component input vector.
The perturbed component equations are then used to construct the perturbed motion, constraint, or output equations.
The component functionality defines what submatrices are nonzero. The linearized equations are time varying
in general, but may be time-invariant or averaged over a period. The resulting matrices are multiplied by the
perturbed variables (the response difference) and added to both sides of the nonlinear equations. Thus for example
equations of motion depending on degrees of freedom ξ (here the difference relative some reference):
0 = A
become
Hξ = (A + Hξ) = A
where H is the linearized part of A. Hence dealing with the linearized equations does not imply any approximation.
Approximations are only introduced when the part solution method treats the two sides of the equations (linearized
and remaining nonlinear) differently; or neglects something, such as by a quasistatic reduction or other order
reduction.
The trim and transient tasks are still solving the nonlinear equations, finding the degree of freedom and
constraint variable values that make the motion and constraint equations zero. It follows that the accuracy or
completeness of the linearization process affects convergence but not accuracy. For the flutter task, the linearized
equations are the product of the solution procedure, hence must be accurate and complete. If H is the true local
derivative of A, then A will be second order in the difference ξ. For the flutter task, H must be the local derivative
(linearized about the trim solution); the trim equilibrium solution implies A = A = 0 at ξ = 0; and thus the linear
equations Hξ = 0 describe the motion perturbed relative trim.
With nonlinear equations, the linearized matrices depend on the solution. In general, the equations are
linearized about some reference solution for the trim and transient tasks. Hence it may be necessary to update
14 SYSTEM ANALYSIS
the calculation of the matrices during the solution process. Efficiency is usually best served by updating the
matrices as seldom as possible, as long as the solution converges. Note that linearizing nonlinear equations about
a time-varying reference solution produces time-varying matrices. There may also be direct time-dependence in
the equations. Frequently it is possible to average the matrices, and avoid dealing with time-varying matrices in
the solution method.
A particular component may implement an analytical perturbation of its equations. Any component can be
numerically perturbed by the analysis. Numerical perturbation is accomplished using a finite difference approxi-
mation, either first or second order. Consider the equation E(z), where
a) E is a vector of the motion equation A or the component output equation x = B;
b) z is an element of a degree of freedom vector ξ or input vector f of the component.
The z column in the linearization of E is calculated by perturbing about the reference solution z0:
∂E
∂z=
E(z0 + δz) − E(z0)δz
for the first order algorithm; or by∂E
∂z=
E(z0 + δz) − E(z0 − δz)2 δz
for the second order algorithm. The second-order finite difference approximation is more accurate then the first-
order approximation, but requires that the equations E be evaluated twice as many times. The choice of δz (both
magnitude and sign for first order) influences the accuracy of the result. The perturbation will be calculated as:
δz = Δ × weight
The perturbation magnitude Δ is from the part or loop data (separate values are used for displacement, velocity,
and acceleration perturbations). The weighting factor (“weight”) is defined for each element of a vector, as part
of the response data.
2-3.4 Order Reduction
Efficiency of the analysis can often be improved by minimizing the number of variables involved in the
solution. Suppressing the effect of selected variables can also be conceptually useful. Such order reduction is
accomplished here by either setting the response to zero (perhaps by omitting the variable and corresponding
equation entirely), or by a quasistatic reduction of degrees of freedom. Hence the full dynamic behavior is kept
for only a subset of the system variables. The order reduction is specified (as zero, dynamic, or quasistatic; for the
trim, transient, and flutter tasks) in the response piece for each element of each vector of the system (superseded
by the specification for any applicable mode or transform). Order reduction and modal transformation are applied
to the system by the analysis solution procedures (using the response, modes, and transform system pieces). Also,
a component might internally use modal transformation and truncation (a source of full-residual interfaces), in
which case the component variables are already the reduced set.
Suppressing a degree of freedom or constraint force can be physically unrealistic (although still a useful
option). In such cases order reduction can perhaps still be accomplished using modal transformation and truncation.
Suppressing a modal coordinate is equivalent to assuming that the generalized force of that mode is zero, hence
that the force applied to the system is a combination of the generalized forces of the kept modes. Modal truncation
SYSTEM ANALYSIS 15
is usually done on the basis of the frequency content of the excitation, compared to the natural frequencies of the
modes. For example, the equations of motion and output equations
mξ + kξ = φTe f
x = φdξ
are partitioned into kept (ξk) and neglected (ξl):
mk ξk + kkξk = φTekf
mlξl + klξl = φTelf
x = φdkξk + φdlξl
Then for modes with large natural frequency, the inertia is neglected relative to the spring — a quasistatic reduction:
(mls2 + kl)ξl = ml(s2 + ω2
l )ξl∼= klξl
This is a good approximation if the excitation at high frequencies is small. It may be sufficient to just to solve the
dynamic equation for ξk:
x ∼= φdkξk
However, the spring of a high frequency mode can still be small, leading to significant static response. It is most
accurate to retain the complete static response, in terms of a static residual from the truncated modes:
ξl = k−1l φT
elf
x = φdkξk + (φdlk−1l φT
el)f = φdkξk + Glf
(equivalent to a mode-acceleration method). In general, special consideration must be given to the effect of inertial
relief on the residual, when the subsystem has rigid degrees of freedom.
The analysis can perform a quasistatic reduction for any degree of freedom: structural dynamic or not; modes,
or transformed, or not. The quasistatic designation can be arbitrarily specified (although modal frequency is a
good guide), as long as the variables are elastic rather than rigid (nonsingular spring for the reduced variables).
In general, it is necessary to first transform the degrees of freedom, so that ξk and ξl are decoupled in the spring
matrix. The static residual from the reduced degrees of freedom can be retained or neglected; or the reduced
degrees of freedom can be simply set to zero. The effect of inertial relief on the residual is ignored here, so that
effect must be small or the subsystem must be constrained.
2-3.5 Models for Solution Tasks
Although the same set of system pieces exists for the entire case, it is possible to use different models for the
trim, transient, and flutter tasks. A component knows what task is being performed when it is required to calculate
a force or matrix. Hence the model can change within the component, depending on the task. The changes can
include model parameters, how component output is calculated, what component input is used, and even what
degrees of freedom are used. The component also knows when it is being perturbed in order to generate linearized
matrices (for the differential equation part solutions of trim and transient, as well as for flutter). Hence a special
model can be used for matrices. For example, an equivalent linear damping value (appropriate for finite amplitude
16 SYSTEM ANALYSIS
motion) can be used, instead of the local linearization of a nonlinear damper that would result from the usual
perturbation operation.
Equations that exist in the system need not be solved for some or all of the tasks. Every motion, constraint,
and output equation must be assigned to some part, but that part can be the no-solution type. The part type and
even the grouping of equations into parts is independently specified for the trim, transient, and flutter tasks. The
response for the variables associated with the equation still exists, but is zero-kind for the no-solution part. Hence
it is not necessary to make other components aware that a quantity is not being solved; if they try to evaluate the
quantity, a zero value is returned.
2–4 Functionality
In order to implement the solution procedures, the analysis must construct the functionality of the system
equations. This construction is accomplished by the following steps, during the initialization process. The
initialization subroutines involved are INITB and INITF, each of which executes several passes.
a) Component functionality (INITB, pass 1 for degree of freedom and input functionality, pass 3 for frame depen-
dence). A component must provide the analysis information about its functionality: how the equations of motion
and output equations depend on the frame motion, degrees of freedom, and component input. The documentation
for each component type concludes with figures that describe the functionality. Figure 3 illustrates the format.
The rows correspond to the equations, and the columns correspond to the variables. The dependence is identified
by vector. This information is used by the analysis in several ways, including generation of matrices and tests for
loop convergence. The identification should be as complete as possible. If some true functionality is not identified,
in particular the corresponding submatrix is omitted when the equations are linearized. It is simplest to specify
complete functionality: every equation depending on all variables, and second-order for degrees of freedom. Such
an approach can be too inefficient however, in both computational effort and data structure size. Moreover the
analysis tasks and solution procedures may make assumptions about the functionality, particularly for structural
dynamic equations, that will not be satisfied if complete functionality is assumed.
A frame must be specified for structural dynamic components. For other component types a frame may not be
required; in such cases the frame dependence is omitted from the functionality description. The analysis allows the
component to identify its frame dependence up to some reference frame. Unless otherwise stated, this capability
is not used: this reference is assumed to be the inertial frame. Then dependence on a frame means dependence on
the degrees of freedom of the component frame, and on the degrees of freedom of all its parent frames.
For each motion equation A (corresponding to a degree of freedom vector) and each component output vector
x = B, the dependence on the component frame β is identified; and lists are constructed of the dependence on
degree of freedom vectors ξ and on component input vectors f .
b) Frame dependence (INITFB pass 1 for level, INITFC pass 2 for frame degrees of freedom). For each frame, the
level is calculated (number of parent frames). Frame degrees of freedom are identified, from the frame component
designation for structural dynamic components.
c) Frame dependence (INITFD and INITFO, pass 3). If an equation depends on the motion of a frame, then it
depends on all frame degrees of freedom that exist from the component frame to the specified reference frame
P (not including the degrees of freedom of P; this reference frame can be the inertial frame). By convention,
SYSTEM ANALYSIS 17
frame β degree of freedom ξ component input f
equation of motion A yes (0,1,2) or no yes or no
output equation x = B yes (0,1,2) or no yes or no
Dependence on frame motion and degrees of freedom: displacement, or velocityand displacement, or acceleration and velocity and displacement. Designated static(0), or first order (1), or second order (2) respectively.
The dependence on component input can be specified separately for the trim, tran-sient, and flutter tasks. “X” indicates a dependence that is impossible.
The analysis asks for information about an equation/variable combination only ifboth the equation and the variable exist for the specific use of the component.
Figure 2-3 Component functionality.
18 SYSTEM ANALYSIS
the component equations are restricted to dependence only on the component frame and all its parent frames, up
to the inertial frame. Allowing the component equations to depend on any system frame would complicate the
functionality.
For each component, for each motion equation and output equation: if the equation depends on the frame, then for
that frame and each of its parent frames; if frame degrees of freedom exist, then add them to the list of dependence
on degrees of freedom. For frame degrees of freedom, the frame level is also included in the list. The frame level
is needed for structural dynamic interfaces, for which the constraint equations only depend on frame motion up to
the common parent frame of the connection, hence up to the same frame level. If this is a frame component, then
by definition the frame degrees of freedom of the component frame are already in the list.
d) Interface and input dependence (INITFD and INITFO, pass 3). The definition of an interface specifies the
association of the interface variables with component input. The definition of an input piece specifies the association
of the input variables with component input. This information is used to convert the dependence on component
input to dependence on interface and input variables. For each component, for each motion equation and output
equation: from the dependence on component input f , lists are constructed of the dependence on interface vectors
fl and on input vectors um. Duplicate entries in the lists are ignored.
e) Interface equation (INITFF pass 3). The constraint equation 0 = Bl is obtained from component output
equations x, so the functionality is determined from the dependence of the component output. For a structural
dynamic interface, the lists of ξ, fl, and um dependence are copied from the component output equations of the
two components connected. Duplicate entries in the lists are ignored. The dependence is only required for frame
motion up to the common parent frame of the connection, hence frame degrees of freedom are not included if their
level is less than or equal to the level of the common frame. For an input/output interface, the lists of ξ, fl, and
um dependence are copied from the component output equation of one component. Whether the list includes the
interface variables fl of this input/output interface is noted (not permitted for implicit solutions); then dependence
on fl of this interface is added to the list.
f) Output equation (INITFY pass 3). The output equation y = Bq can be obtained from component output x. In
this case, the lists of ξ, fl, and um dependence are copied from the component output equation. Alternatively, the
output vector can be identified as some degree of freedom, interface, input, or frame vector. Then the lists of ξ, fl,
and um dependence are created with just one entry, corresponding to the variable identified.
g) Part dependence (INITFP, pass 1 for equation lists, pass 3 for dependence lists). The analysis input data assign
each equation to a part. Thus for each part, lists can be constructed of all its motion equations, constraint equations,
and output equations. Then the lists of ξ, fl, and um dependence for all these equations are combined into lists of
dependence for the part (duplicates ignored).
h) Loop dependence (INITFL pass 4). The analysis input data define for a trim or transient loop a set “I” of parts
that are solved in the loop; a child loop; and a set “E” of parts that are solved at the end of the loop. Let “R” of
this loop be the combination of all “I” and “E” sets of all child loops. The lists of ξ, fl, and um dependence for
all motion and constraint equations in the “I” parts (but not the output equations) are combined into lists of “I”
dependence for the loop (duplicates ignored). The motion and constraint equations in the parts of “R” identify the
degrees of freedom and constraint variables calculated by “R”; and the child loops of “R” identify input variables
calculated by “R”. Thus lists of ξ, fl, and um calculated by “R” can be constructed.
SYSTEM ANALYSIS 19
i) Successive substitution loop iteration variables (INITFLpass 4). The iteration variables of a successive substitution
loop are the set of ξ, fl, and um vectors that are used by “I” and calculated by “R” of this loop. Thus the iteration
variables are all vectors that are in both lists.
2–5 Environment
2-5.1 Earth
Gravity produces a body force on all components with mass (all structural dynamic components). The
analysis assumes a flat, nonrotating earth. Hence earth axes are fixed relative to inertial axes; center-of-mass and
center-of-gravity are coincident; and there are no gravity-gradient forces. The acceleration produced by gravity
is defined by a vector g that is constant in inertial axes. The direction of g in inertial axes defines the orientation
of the inertial frame on the earth. A ground plane is defined by the ground normal vector and the height of the
inertial frame above ground level.
2-5.2 Aerodynamic
The aerodynamic environment is defined by the speed of sound cs, density ρ, and kinematic viscosity ν = μ/ρ
of the air (or other fluid). These quantities can be obtained from the standard day (based on the 1976 U.S. Standard
Atmosphere), or input directly. The following options are implemented:
a) Input the altitude h. Calculate the temperature and pressure for the standard day, and then
the density from the equation of state for a perfect gas. Calculate the speed of sound and
viscosity from the temperature.
b) Input the pressure altitude h and the temperature τ (◦F or ◦C). Calculate the pressure for
the standard day, and then the density from the equation of state for a perfect gas. Calculate
the speed of sound and viscosity from the temperature.
c) Input the density ρ and the temperature τ (◦F or ◦C). Calculate the speed of sound and
viscosity from the temperature.
d) Input the density ρ, sound speed cs, and viscosity μ. Calculate the temperature from the
sound speed.
The U.S. Standard Atmosphere (1976) defines a series of altitude ranges with constant lapse rate Lb (linear
temperature change with altitude). Thus at altitude h, the standard day temperature is
Tstd = Tb + Lb(h − hb)
for h > hb. The altitude ranges and lapse rates are given in the table below. Note that h0 is sea level, and h1 is the
boundary between the troposphere and the stratosphere. The standard day pressure is obtained from hydrostatic
equilibrium (dp = −ρg dh) and the equation of state for a perfect gas (p = ρRT , so dp/p = −(g/RT )dh). So in
isothermal regions (Lb = 0) the standard day pressure ispstd
pb= e−(g/RT )(h−hb)
and in gradient regions (Lb �= 0)pstd
pb=
(T
Tb
)−g/RLb
20 SYSTEM ANALYSIS
where pb is the pressure at hb, obtained from these equations by working up from sea level. Let T0, p0, ρ0, cs0,
μ0 be the temperature, pressure, density, sound speed, and viscosity at sea level standard conditions. Then the
density, sound speed, and viscosity are obtained from
ρ = ρ0
(p
p0
) (T
T0
)−1
cs = cs0
(T
T0
)1/2
μ = μ0
((T/T0)3/2
α(T/T0) + 1 − α
)
where μ0 = βT3/20 /(T0 + S) and α = T0/(T0 + S). For the cases using input temperature, T = Tzero + τ .
The density altitude and pressure altitude are calculated for reference. From the density and the standard day
(troposphere only), the density altitude is:
hd =T0
|L0|
(1 −
(ρ
ρ0
)1/(g/R|L0|−1))
From the pressure p = ρRT and the standard day, the pressure altitude is:
hp =T0
|L0|
(1 −
(ρ
ρ0
T
T0
)1/(g/R|L0|))
The required parameters are given in the table below, including the acceleration produced by gravity, g. The gas
constant is R = p0/ρ0T0, and μ0 is actually obtained from S and β. Although the table gives values in both SI
and English units, all the calculations for the aerodynamic environment are performed in SI units. As required,
the results are converted to English units using the exact conversion factors for length and force.
level altitude hb (km) lapse rate Lb (◦K/km) temperature Tb (◦K)
0 0 -6.5 288.15
1 11 0 216.65
2 20 +1.0 216.65
3 32 +2.8 228.65
4 47 0 270.65
5 51 -2.8 270.65
6 71 -2.0 214.65
7 84.8520 0 186.946
SYSTEM ANALYSIS 21
parameter English units SI units
units h ft m
units τ ◦F ◦C
m per ft 0.3048
N per lb 4.4482216152605
T0 518.67 ◦R 288.15 ◦K
Tzero 459.67 ◦R 273.15 ◦K
p0 2116.22 lb/ft2 101325.0 N/m2
ρ0 0.002377 slug/ft3 1.225 kg/m3
cs0 1116.45 ft/sec 340.294 m/sec
μ0 3.7372E-7 slug/ft-sec 1.7894E-5 kg/m-sec
S 110.4 ◦K
β 1.458E-6
g 32.17405 ft/sec2 9.80665 m/sec2
22 SYSTEM ANALYSIS
Chapter 3
COMPONENTS
3–1 Description
The components perform all computations associated with the physics of the model of a system. Each
component also provides routines to properly format its possible output. With this convention, the components
are the focus for modelling issues, including the empiricism and approximations needed for a practical model of
many physical systems. Hence developing an improved model requires developing a new component, which will
fit into the existing framework of the analysis. The principal exception to this convention is the structural dynamic
interface, which implements the exact kinematics involved in coupling two components.
A component can be considered an operator that evaluates a vector or matrix. Figure 1 illustrates the
functionality. Specifically, at time t a component evaluates one of the following vectors:
a) motion equation, Anj ;
b) component output for input/output interface, xnj = Bnj ;
c) component output for structural dynamic interface, axes motion xnj ;
from the degrees of freedom ξni (including frame motion) and from the component input fni. The component
can also perturb this vector (analytically or numerically), to construct a column of a matrix. Each vector equation
depends on a subset of the component degree of freedom and input vectors. Definition of this functionality is part
of the component description, and from it follows the functionality of the system equations (motion, constraint,
and output).
Generally the equations can be time varying and nonlinear. They can be differential equations (if the com-
ponent has degrees of freedom), or implicit equations (evaluating output from input). A differential equation can
be zero, first, or second order, as defined by the dependence of Anj and Bnj on the derivatives of ξ. However,
for a structural dynamic no-residual interface, xnj can not depend on the velocity or acceleration of ξ. Structural
dynamic components produce second-order equations, while other components can be formulated as first-order
equations. Generally the equations may not be assumed to be symmetric.
The component equations can also depend on the frame motion β (zero, first, or second order). The frame
motion is hierarchical, and each frame can be degrees of freedom (identified as the rigid body motion of some
component). Hence the frame dependence translates into dependence on system degree of freedom vectors: the
component rigid degrees of freedom that correspond to the frame and all its parent frames. Such dependence can
therefore couple components.
Interfaces between components can be structural dynamic or input/output kind. The component definition
24 COMPONENTS
component input
IO f
component input
SD f (constraint force)
componenttype = TTTTname = NNNN
degree of freedom ξframe β
component output
IO x = B
component output
SD x (axes motion)
motion equation
A
Figure 3-1 Component functionality.
COMPONENTS 25
includes component input and component output. For a structural dynamic connection, the component input is
the force and moment at the connection; and the component output is the motion of the axes at the connection.
The component defines all input and output that are available to the system, but they are not used until they are
connected to another system piece (interface, input, or output). A structural dynamic input and output pair can
be connected to only one other component (but more than one connection can be defined at the same point on
the component). A component output of input/output kind can be connected to one or more interfaces and one or
more output pieces. A component input of input/output kind can be connected to only one interface or one input
piece (but the interface variables and input variables can be combined either inside the component, or by using a
differential equation component). Figure 2 shows the possible use of component input and component input, by
interface, input, and output system pieces.
Certain categories of components share characteristics, and hence have common features of their implemen-
tation. In particular, structural dynamic components are an important case.
3–2 Structural Dynamic Components
Structural dynamic components are characterized by rigid body motion and frames; mass, hence inertial and
gravitational forces; and structural dynamic interfaces. Also, a standard input/output interface (component input
and component output) is defined for connections with aerodynamic components. As implemented, all structural
dynamic components have a standard form, differing principally in matters associated with the elastic motion of
the component.
For a structural dynamic component, a frame must be identified (perhaps inertial). A structural dynamic
component has rigid body motion. For a “constrained component,” this motion is connected to the frame, and
there are no rigid body degrees of freedom. For a “frame component,” the rigid body degrees of freedom are the
frame motion. In other cases, the rigid body degrees of freedom exist, and represent motion measured relative to
the component frame. Figure 3 summarizes the options for the rigid body motion.
Only a structural dynamic component can have structural dynamic input and output, for connection to another
component through a structural dynamic interface. The structural dynamic connection kind can be full-residual
or no-residual. For a connection with a residual, the constraint equation depends on the constraint forces; full-
residual means that this dependence is full rank. Rank-deficient residuals are not considered. Constraint equations
with rank-deficient residuals could be separated into no-residual and full-residual equations, but the required
transformation changes the form of the equations for the general case (which includes input/output interfaces).
The structural dynamic connection between two components is made in the common parent frame of the
components. Generally a set of frames (prescribed or frame degrees of freedom) are defined that follow the
structural dynamic connectivity of the system, so one of these frames is the common frame of the interface. The
common parent frame can be the inertial frame however. The axes motion xnj is calculated relative to the common
frame; and the dependence of xnj on the frame motion is expanded to all frame degrees of freedom up to (but not
including) the common frame.
3-2.1 Full Residual Connection
With a residual, the axes motion xnj depends on the constraint force fnj . For the linear case, consider the
26 COMPONENTS
component D
f l
f l
f l
f l
f l
component A
component B
component C
component E
component F
x
x
x
f
f
f
f
f
f
f
f
x
x
input
u
input
u
y
output
y
output
= structural dynamic interface
= input/output interface
Figure 3-2 Use of component input and component output.
COMPONENTS 27
bodyaxes B
componentframe F
constant position BF(displacement and rotation)
CONSTRAINED COMPONENT
bodyaxes B
componentframe F motion BF =
nominal + degree of freedom
OTHER CASES
motion BP = FP =nominal + degree of freedom
FRAME COMPONENT
component frame F = body axes B
Figure 3-3 Rigid body motion of structural dynamic component.
28 COMPONENTS
degrees of freedom partitioned into kept (ξk) and neglected (ξl):
x = φξ = φkξk + φlξl
= φkξk + φlK−1φT
f f
= φkξk + Glf
introducing the quasistatic solution for ξl. For a full residual, it is assumed that this dependency on the constraint
force is full rank. Actually the requirement is that the interface equation Bl have full rank dependence on the
constraint force fl, considering the contributions from both sides of the interface. Full-residual constraint equations
are solved for the constraint forces.
3-2.2 No Residual Connection
With no residual, the axes motion xnj does not depend on the constraint force fnj . For the linear case then,
x = φξ. The component output (boundary motion) depends only on the component degrees of freedom (including
frame motion), not on any component input; and none of the component output equations (including full-residual
and input/output) depend on the constraint force of a no-residual connection. Hence the no-residual constraint
equation Bl depends only on system degrees of freedom, not on any interface force fl or system input um; and none
of the constraint equations of the system depend on any no-residual interface force. For the equations solved in
the trim and transient parts, these functionality requirements are only applied to constraint equations and interface
variables in the same part. For the equations solved in the flutter task, the requirements are applied to the entire
system. Equations that are not solved in a task need not be considered. The no-residual axes motion xnj can
not depend on the derivatives of the degrees of freedom ξ; and the constraint equation requires the velocity and
acceleration as well as the displacement. No-residual constraint equations are solved for a subset of the degrees
of freedom (hence the requirement for the derivatives).
3–3 Aerodynamic Components
Aerodynamic components include wings and wakes. A wing or body is a surface moving through the air. A
wing is a thin surface, which can be defined in terms of the mid-surface and thickness (or upper and lower surfaces).
Wing geometry can be specified in terms of stations along a spanwise reference line (not necessarily straight) and
two or more chordwise points at each span station. The boundary conditions of the aerodynamic problem involve
the velocity at the surface, and the pressure loads acting on the surface.
The interfaces between the structure and the air occur at the surface of a wing or body. The interface is
discretized, consisting of a set of collocation points as required by the aerodynamic theory. These collocation
points must be defined as connection points on structural dynamic components. Generally the interface between
structural dynamic and aerodynamic components will be in terms of the velocity and the force (discretized load)
at the collocation points.
A wake component essentially solves for the motion of the air. Wing and wake components can be separate
or combined, depending on the model and solution procedure. In principle, there is complete mutual influence
between the wings and bodies of the system. This mutual influence can be viewed as arising from the behavior of
the wakes. In practice, some paths of influence may be neglected. A component may deal with a set of wings in
order to account for the complete aerodynamic interference in the set.
Chapter 4
FRAMES
4–1 Description
4-1.1 Frame Motion
Frames help the derivation and analysis of a problem, by providing a description of the motion that is
appropriate to the specific configuration. In particular, frames are required for structural dynamic components. A
frame is identified for each component, and all motion within the component is measured from that frame. To
be useful, the frame motion must be physically relevant. For example, a frame can be equated to the rigid body
motion of a component (frame degrees of freedom); or a component can be connected to a frame (constrained
component) that has prescribed motion; or a frame can have prescribed motion such that the component motion
relative to it is small. In general, frames provide a common reference for the components and interfaces within a
subsystem. Components are coupled relative to their common frame, so only motion relative that frame enters the
constraint equations (allowing the use of a body-axes velocity representation for the system rigid motion).
The frame motion consists of translation and rotation of its axes. The motion of a component is described
relative to a frame. The frames are hierarchical, so the frame motion is itself measured relative a parent frame
(perhaps inertial). The frame hierarchy must be a tree. A frame can have more than one child frame. The system
can have more than one base frame. Thus each free-body subsystem can have its own base frame. Normally the
frame hierarchy follows the connectivity of the structural dynamic components of the system.
The motion (displacement and rotation) of a physical point (probably on some component) is represented as
follows:motion = frame + frame + . . . + variable
The addition operation in this expression represents the addition of rigid motion. The definition of frames is
hierarchical. The first frame (the “base frame”) consists of motion relative to inertial space. The base frame can
be associated with an operating condition of the system. The second frame consists of motion relative to the
first frame, and so on. The final variable is measured relative to its frame; the final variable is probably itself a
combination of several axes motions. A major use of this representation is for the motion of structural dynamic
components. In particular the rigid body motion takes this form, with the final variables being the rigid degrees of
freedom of the component. Figure 1 illustrates the use of frames to describe motion.
4-1.2 Frame Degrees of Freedom
Frame motion can be prescribed, or it can be degrees of freedom of the system. Frame degrees of freedom
are implemented by simply identifying the frame as the rigid body motion of a particular component (a “frame
30 FRAMES
body axes B
component frame F
frame degrees of freedom (frame component)
base frame(parent = inertial)
inertial frame I
totalmotion
Figure 4-1 Use of frames to describe motion.
FRAMES 31
component”; this identification is part of the component description). With this approach it is not necessary to
introduce additional equations that tie the frame to the structure; although symmetry of the system equations is
lost until the structural dynamic constraints have been eliminated.
Frame degrees of freedom are frequently required to represent the system rigid motion, with all other motion
defined relative to this frame. An example is the representation of airframe motion in aircraft dynamics. Frame
degrees of freedom are also useful in describing the motion of a subsystem that has a one primary structural
dynamic connection to the rest of the system. It is frequently desirable to take the motion of that point as the frame,
relative to which the motion of the subsystem is defined.
4-1.3 Mean Axes
For a free system, it is often desirable to describe the system rigid motion in terms of the motion of the mean
axes. Mean axes are defined such that relative them the entire system has zero linear and angular momentum. Zero
linear momentum implies that the origin of the mean axes is at the system center-of-mass; which also decouples the
linear and angular rigid body equations. For a linear system, the degrees of freedom of the mean axes correspond
to the zero frequency (rigid body) modes of the free vibration modes. Hence the mean axes and elastic modes are
decoupled (orthogonal mass-weighted modes).
The motion of a base frame (parent is inertial frame) can be identified as the rigid body degrees of freedom of
a component (“frame degrees of freedom”). For a linear system, a transformation from an arbitrary base frame to
the mean axes can be found from the system mass matrix. For a nonlinear system, the task is more difficult. Here
the analysis is required to handle the general case of nonlinear, time-varying problems. So such a transformation
to mean axes is not implemented.
It is possible to define a structural dynamic component (such as the linear normal modes component) that
uses linear vibration modes for the elastic motion. By using free vibration modes, the rigid body motion of
the component (with origin at the center-of-mass) is the mean axes motion — of the component. For special
configurations, the mean axes of this component can be the mean axes of the system.
4-1.4 System Rigid Motion
Figure 2 illustrates the frames and axes of the system rigid motion. In particular, consider aircraft dynamics.
It is conventional to represent the rigid motion of the system by center-of-mass, mean axes. The problems are that
this is not the motion of any physical point; and a transformation to mean axes has not been implemented. The
solution is to use for the airframe a linear normal modes component, for which the rigid body motion is the mean
axes of the component; and to define the system inertia so usually these are also the mean axes of the system.
The system rigid motion in trim is defined by the operating condition. The problem is that it is complicated
to use the operating condition to describe the trim motion of all components. The solution is to use the operating
condition to describe the motion of a base frame, and to define all other motion relative to that frame.
It is conventional to represent the system rigid motion by body-axes velocity coordinates. The problem is
that it is complicated to obtain the position relative inertial space when using body-axes velocity coordinates. The
solution is to use body-axes velocity to describe the motion of a base frame, and to define all other motion relative
to that frame. Coupling components requires only their motion relative a common frame, so the position relative
inertial space not needed for the constraint equations.
32 FRAMES
center-of-mass/mean axes
base frame
inertial frame
body axes
Figure 4-2 System rigid motion.
FRAMES 33
Thus for aircraft dynamics, the base frame (parent is inertial frame) can be frame degrees of freedom of the
airframe component. These axes can be center-of-mass, mean axes for the airframe component, with the system
inertia defined such that they are usually the center-of-mass, mean axes of the system as well. A body-axes
velocity and aircraft Euler angle representation of the motion can be used. This base frame can be the parent
frame of the rest of the system. Then the operating condition is only required for the frame reference motion; the
structural dynamic interfaces (relative a common frame) do not require position relative inertial space); and thus
the body-axes velocity representation of the system rigid motion can be used.
4–2 Implementation
4-2.1 Inertial Frame
The inertial frame is the reference for the entire system. The analysis assumes a flat, nonrotating earth, so the
earth axes are fixed relative to inertial axes. The orientation of the inertial frame relative to the earth is defined by
the direction of gravity, gI . The normal aircraft convention is z-axis down: gravity in the plus z-axis direction, so
zI is down, and xI–yI is the horizon plane. In this case the acceleration produced by gravity is
gI =
⎛⎝ 00g
⎞⎠More generally, the acceleration produced by gravity can be directed along the x, y, or z-axis (positive or negative)
in the inertial frame; or an arbitrary gI can be specified directly.
The ground plane is defined in the inertial frame, by a downward normal vector kIg and a position rI
g from
the origin of the inertial frame to some point on the ground plane. A point in space rI is on the ground plane if
(rI − rIg)T kI
g = 0. The height above ground level of the point at rI is then
h = −(rI − rIg)T kI
g = hIAGL − (rI)T kIg
where hIAGL = (rIg)T kI
g is the height of the origin of the inertial frame above ground level. The analysis requires
only hIAGL, not rIg . If the ground plane is perpendicular to the gravity direction, then the ground normal kI
g is in
the same direction as gI . So with the z-axis down, the ground normal is then
kIg =
⎛⎝ 001
⎞⎠More generally, an arbitrary kI
g can be specified directly.
4-2.2 Base Frame (Free Flight)
A base frame (parent frame is inertial) can use any nominal convention for its response. The “base frame”
nominal kind of the response system piece is defined in terms of parameters from a specified operating condition
(which can be accessed by the solution procedures), and can provide a constant-velocity motion. Each free-body
subsystem can have a base frame (and corresponding operating condition). With the base-frame nominal kind,
the linear motion must be represented by body axes velocity or inertial axes displacement; and the angular motion
must be represented by aircraft Euler angles. A separate base frame for each free-body subsystem is appropriately
34 FRAMES
used as the rigid body motion of the subsystem (frame degrees of freedom). The components can be defined so
the elastic motion of the system is measured relative the rigid motion of the base frame. Then only the base frame
requires the operating condition to produce its nominal and reference motion. The conventions implemented for
the response nominal and reference assume that this is so.
4-2.3 Aircraft Conventions
Aircraft rigid motion is conventionally frame degrees of freedom (center-of-mass, mean axes if possible).
The linear motion is represented by body-axes velocity, and the angular motion is represented by aircraft Euler
angles. Representing aircraft linear motion by inertial axes displacement variables is unconventional, but may
be required since here the body-axes velocity variables are not integrated to obtained the complete displacement
relative inertial space. The normal aircraft convention is zI down, hence the x-axis forward and the y-axis right
(for the rest position of the base frame). The yaw, pitch, and roll angles of the aircraft Euler angle representation
rotate the system from inertial axes to the base frame. The rest position has the x-axis in the positive velocity
direction (forward).
4-2.4 Motion Relative to a Frame
Rigid motion can be evaluated relative any specified frame. Rigid body degrees of freedom measure the
motion relative to the frame of the structural dynamic component. The response for a frame measures its motion
relative to its parent frame, or relative to the inertial frame.
Let FnFm represent the motion of frame Fn relative frame Fm, where n is the child and m is the parent
(m ≤ n). This motion is obtained by evaluating FnFi−1 = FnFi + FiFi−1 for i = n to m + 1. The summation
operation here involves adding the axes motion (displacement, rotation matrix, and their derivatives).
Chapter 5
INTERFACES
5–1 Description
An interface is a connection between two or more components. There are two types of interfaces, structural
dynamic and input/output. Each interface defines constraint equations, which are solved to eliminate some system
variables. For a structural dynamic interface, either system degrees of freedom ξb or interface forces fl are
eliminated. For an input/output interface, the interface variables fl are eliminated. In general these equations can
be time varying and nonlinear, and possibly not symmetric even for structural dynamic systems. An input/output
interface equation can depend on derivatives of the system degrees of freedom.
The interface connects the input f and output x of two or more components. The connection operation Bl
produces a constraint equation, from x and the constraint variables fl. The connection operation Cl produces the
constraint force f , from the constraint variables fl.
It is assumed that the structural dynamic interface is holonomic and independent. Holonomic implies that
the constraint equation can be defined in terms of displacements (rather than velocities or virtual displacements).
For a nonholonomic interface, the solution of the constraint equation is path dependent (for example, rolling of a
wheel on a surface). Independent means that the constraint equations are full rank. Dependent equations imply
either redundant or inconsistent constraints.
5–2 Implementation
5-2.1 Input/Output Interface
An input/output connection is defined by identifying the output x of component A, and the input f of one
or more components B. All component input and output involved must be input/output kind. A and B can be the
same component. The constraint equation is solved for the constraint variables fl:
0 = Bl = xA − fl
Solving these equations causes the component to evaluate xA. Then the component input fB can be evaluated
from the constraint variables:
fB = Cl = fl
Figure 1 illustrates the use of input/output interfaces.
5-2.2 Structural Dynamic Interface
A structural dynamic connection is defined by identifying a structural dynamic interface (consisting of input
36 INTERFACES
component B
f l
f l
component A
x
= input/output interface
component C
f l
f lf l
x
f
f
x
f
f
x x
Figure 5-1 Use of input/output interfaces.
INTERFACES 37
f and output x at the same point) of two components, A and B. The component can not be connected to itself
(such a connection can be implemented by inserting a massless rigid component between the two connections).
The interface variable fl is the force acting on the “A” side of the interface. Figure 2 illustrates the conceptual use
of structural dynamic interfaces.
Whether the interface is full-residual or no-residual follows from the properties of the output of the two
components. If either side is full-residual, then the interface is full-residual. For an interface with a residual,
the constraint equation depends on the constraint forces; full-residual means that this dependence is full rank.
Rank-deficient residuals are not considered. For a no-residual interface, the constraint equation is solved for some
degrees of freedom ξb. For a full-residual interface, the constraint equation is solved for the constraint forces fl.
The constraint equations have the form:
0 = Bl = xA − xB
(the equations for angular motion constraint are exact, so Bl is actually more complicated, as described below).
The component input f (force and moment) can be evaluated from the constraint forces fl
fA = Cl = +fl
fB = Cl = −fl
(fl has only force if angular motion not constrained). The connection kind is complete or torque. A complete
interface is a true physical connection, while a torque interface is an approximation.
A torque interface is a special kind of structural dynamic connection. It connects only rotational motion and
torques. Hence it can act only on appropriate joints of a component. Such an interface produces no net moment
on a true structural dynamic component; it is only involved in the joint equations of the component.
A complete interface can be a joint between the two components. Joints are also implemented as part of all
structural dynamic components. As part of a component, a joint with a general spring/damper/actuator can be
constructed, and it is simpler to deal with the kinematics and forces of the joints. Hence only two joints have
been implemented in the interface: cantilever and pinned. Implementing joints in the components rather than the
interfaces means however that the system will have more degrees of freedom, and more constraint equations to
eliminate them. The general interface definition can accommodate more joints when they are needed. Also, in
order to eliminate the system rigid motion, a constrained component is used rather than a single-point constraint
(so all the structural dynamic interfaces are here two-sided). Finally, the position and orientation of the points
connected by the interface are defined by the description of the component geometry, not the interface. The
restrictions described in this paragraph are not limitations of the analysis formulation; they simply eliminate
duplicate implementation of capabilities.
Figure 3 summarizes the cantilever and pinned interfaces (the components are shown before the constraint
has been applied). A cantilever interface is a structural connection with no relative motion. It equates the linear
and angular motion of points on two components. The constraint force can be in either connection or common
frame axes. The moment is always in connection axes. A pinned interface is a structural connection with no
linear motion, but free angular motion (a ball joint connection). It equates only the linear motion of points on two
components. The constraint force is in common frame axes. Connection axes can not be used for the constraint
force since the orientation is not the same on the two sides of a pinned interface. If it is not appropriate to have the
constraint force in common frame axes, then a cantilever interface can be used instead, with a two or three-variable
angular joint at the connection of one of the components.
38 INTERFACES
component B
degrees of freedom
component A
degrees offreedom
component C
degrees offreedom
= structural dynamic interface
component D
degrees offreedom
f l
f l
f l
f l
ξB
ξC
ξD
x f
x f
x f
x f
x f
x f
x f
x f
ξA
Figure 5-2 Use of structural dynamic interfaces (conceptual).
INTERFACES 39
connection B
component B
component A
connection A
common frame P
CANTILEVER
equate linear and angular motion
(connection axes C = A = B)(constraint force can be in connection axes, not )
-FP, -M CFP, M C
FPFC
xAP/P, CAP
xBP/P, C BP
xAP/P = xBP/P, C AP = C BP
connection B
component B
component A
connection A
common frame P
PINNED
equate linear motion
(connection axes not equal)
xAP/P
xBP/P
FP
-FP
xAP/P = xBP/P
Figure 5-3 Cantilever and pinned structural dynamic interfaces.
40 INTERFACES
For an interface between elastic bodies, it would be possible to enforce as well equality of strain in the two
components. Then in addition to the linear and angular axes motion, the strain at connections A and B (in connection
axes; see figure 3) would be obtained from the components, and used by the interface to form additional constraint
equations. In general, six variables of the strain tensor (three extensional and three shear) could be equated at the
interface; or optionally an appropriate subset of the six. However, the structural dynamic components available
do not require such an interface. Thus only the pinned and cantilever interfaces are implemented.
A structural dynamic interface connects two components relative their common parent frame. The interface
variables have the following characteristics:
interface kind cantilever pinned torque
component output x x, C x, C φcomponent input f (F x, MC) (FP , MC) Qinterface force fl (F x, MC) (FP ) Qlength of f 6 6 1length of fl 6 3 1
For the complete (cantilever and pinned) interfaces, the component output x consists of the full motion description
at the connection (x, v, dv/dt, C, ω, dω/dt). For the pinned interface, only the linear motion is connected, but
the angular motion is still needed to calculate derivatives and matrices. For the cantilever interface, the force can
be in connection (F x = FC) or common frame (F x = FP ) axes; the moment is always in connection axes. For
the pinned interface, the force is in common frame axes; the moment exists in the component input f , but equals
zero. The interface variable fl is the force acting on the “A” side of the interface.
The natural axes for the constraint force are the common frame axes. However, the part solution procedure
may require special representation of variables, including interface forces. For example, across a rotating-to-
nonrotating frame connection, the interface forces must be in the same frame as the equations of motion if their
effect is to survive an averaging operation. It is for this purpose that the structural dynamic interface has an option
to use constraint forces in connection axes, instead of common frame axes (the connection must be on the rotating
side of the joint). With F x = FC the structural dynamic equations are no longer symmetric however (maintaining
symmetry would require the constraint equation be defined in terms of velocity rather than displacement).
The user is required to identify the system degrees of freedom to be eliminated by the constraint equations
of a structural dynamic interface (no-residual only). The analysis has the option of eliminating the rigid degrees
of freedom of either component A or component B. With this option, for a tree structure it is straightforward to
identify the degrees of freedom to eliminate: each interface should eliminate the rigid motion of the component
on the branch side of the structure. With the branch side identified as component B, it follows that the interface
forces are those acting on the root side. The user need only be concerned with identifying those degrees of freedom
associated with multiple load paths of the structure. The identification is simplified if an elastic joint is put at the
connection that creates the multiple load path: then the degrees of freedom of this joint can be eliminated. Figure
4 illustrates the physical use of structural dynamic interfaces.
It is assumed that the structural dynamic interface is holonomic, so the constraint equation can be defined in
terms of displacements (rather than velocities or virtual displacements). The equations for a holonomic constraint
are functions of degrees of freedom ξ, constraint forces f , and time:
Bl(ξ, f, t) = 0
INTERFACES 41
frame F
FF F
F
F
F
F
frame G
F
structural dynamic interface (tree),eliminates rigid body degrees offreedom of one component of interface
structural dynamicinterface (circuit),user must identifysystem degrees offreedom to beeliminated
Figure 5-4 Use of structural dynamic interfaces (physical).
42 INTERFACES
For the linear case these equations can be written:
[φ G
](ξf
)= ζ
In general, the time derivative of Bl is quasilinear in the velocities:
∂Bl
∂ξξ +
∂Bl
∂ff = − ∂Bl
∂tor [
φ G](
ξ
f
)= ζ1
For a nonholonomic interface, the constraint equation can be expressed in terms of velocities (this last form),
but not in terms of displacements. Hence the solution of the constraint equation is path dependent. Constraint
equations in terms of velocities would provide a common framework for handling both holonomic and nonholo-
nomic constraints, and the equations for rigid body motion are naturally expressed in terms of linear and angular
velocities. However, it is not then possible to eliminate the displacements of boundary degrees of freedom, as is
appropriate for connections between elastic bodies; and elastic equations of motion are naturally expressed in terms
of displacements. Instead, the constraint equations must be solved along with the equations of motion. Kinematic
relations between displacement and velocity must also be integrated, since the system equations do depend on the
displacements. In addition, special procedures are required to ensure that resulting integrated displacement truly
satisfies the constraints. Consequently only holonomic constraints are considered here.
It is assumed that the structural dynamic interface is independent. Dependent interfaces are a concern
particularly with closed load paths in the structure. Consider linear constraint equations in the following form:
[φ G
](ξf
)= ζ
If these equations are dependent, then [φ G] is rank-deficient; and the equations can be transformed to:[0 0φ1 G1
] (ξf
)=
(ζ0
ζ1
)If ζ0 = 0, the constraints are redundant; if ζ0 �= 0, the constraints are inconsistent. For no-residual interfaces
(G = 0), the constraints must be dependent if there are more constraint equations than there are degrees of freedom
to eliminate (more rows than columns of φ).
5–3 Theory
5-3.1 Structural Dynamic Connection Operations
The constraint equations and constraint force relations (joint or connection operations) for a structural dynamic
interface can be written symbolically as:
0 = Bl = xA − xB
fA = Cl = +fl
fB = Cl = −fl
INTERFACES 43
For the torque interface, these equations are applied directly, with x = φ and f = Q. The connection operation is
more complex for a complete interface, because the kinematics of axes motion are involved, as well as any joint
being implemented in the interface.
5-3.1.1 Kinematics
For a complete interface, the component output is actually the axes motion at the connection, consisting of the
displacement xCP/P (of the connection C relative to the parent frame P, in P axes), and the rotation matrix CCP
(from the parent frame to the connection axes), and their derivatives. The component input consists of the force
and moment acting on the connection, f = (F, M). To construct the constraint equations, scalar three-parameter
representations of the linear and angular motion at the connection are required. The linear displacement between
the connection points on components A and B is measured by rAB :
rAB = xAP/P − xBP/P
rAB = CPAvAP/A − CPBvBP/B
rAB = CPA(vAP/A + ωAP/AvAP/A) − CPB(vBP/B + ωBP/BvBP/B)
(if the force is in parent frame axes). Note that the angular motion is required for the derivatives of r, but only
to remove the angular motion introduced in calculating v and v; the derivatives of r are the derivatives of x. The
angular displacement between the connection points is measured by the Rodrigues parameters sAB = (sα):
sα =2(Cβγ − Cγβ)
1 + trC
sAB =(
I +s
2+
ssT
4
)ω
sAB =(
I +s
2+
ssT
4
) (ω +
sT ω
2ω
)(where α, β, γ are cyclically 1, 2, 3) calculated from the rotation matrix, angular velocity, and angular acceleration
at the connection:CAB = CAP CPB
ωAB/A = ωAP/A − CABωBP/B
ωAB/A = ωAP/A − CABωBP/B + ωAB/ACABωBP/B
Rodrigues parameters are used since they only require algebraic calculations, and are singular at 180 degrees total
rotation. Any three-parameter representation of the angular motion will be singular, but problems should not be
encountered since the converged solution for the interface is zero relative rotation at the connection (sAB = 0).
Problems would be encountered if three-parameter representations of the angular displacement on each component
were calculated separately, and combined to produce the constraint equation (s = sAP − sBP = 0); with such an
approach it would be necessary to introduce a nominal motion, to avoid singularities for large rotations. With the
force in connection axes (cantilever interface only), the displacement r is multiplied by CCP :
rAB = CAP (xAP/P − xBP/P )
rAB = vAP/A − CABvBP/B − ωAP/ArAB
rAB = vAP/A − CAB vBP/B + ωAB/ACABvBP/P − ωAP/ArAB − ˜ωAP/ArAB
so r is also in connection axes. Note that CAP = CBP for the converged cantilever interface.
44 INTERFACES
5-3.1.2 Pinned Interface
For a pinned interface, only the linear motion is connected: xAB = 0, with arbitrary orientation CAB . The
component input is f = (FP , MC) (force in parent frame axes, moment in connection axes). The constraint
variable is fl = FP acting on A. Thus the constraint equations and constraint force relations are:
0 = Bl = rAB
0 = Bl = rAB
0 = Bl = rAB
fA = Cl =(
+fl
0
)fB = Cl =
(−fl
0
)(Bl and fl have length 3). The derivatives of Bl are obtained from the derivatives of r. Matrices of Bl (linearization
in terms of dependent variables) are obtained from matrices of the axes motion.
5-3.1.3 Cantilever Interface
For a cantilever interface, both the linear and angular motion are connected: xAB = 0 and CAB = I . The
component input is f = (F x, MC) (force in parent frame axes P or connection axes C, moment in connection
axes). The constraint variable is fl = (F x, MC) acting on A. Thus the constraint equations and constraint force
relations are:
0 = Bl =(
rAB
sAB
)0 = Bl =
(rAB
sAB
)0 = Bl =
(rAB
sAB
)fA = Cl = +fl
fB = Cl = −fl
(Bl and fl have length 6). The derivatives of Bl are obtained from the derivatives of r and s. Matrices of Bl
(linearization in terms of dependent variables) are obtained from matrices of the axes motion.
5-3.1.4 Symmetry of Structural Dynamics
Properly formulated equations of a structural dynamic system are symmetric. This symmetry can be lost
however, if the axes of the constraint forces and constraint equations are not consistent. The resulting equations
are still correct, but it will not be possible to assume symmetry in the solution procedure. Consider a cantilever
interface with the interface force in parent frame axes and the moment in connection axes. The force and moment
acting on the body equations of one component are:(FE
ME
)=
[CEP 0
zECEP CEC
] (FP
MC
)where E indicates the body axes. For symmetry, the constraint equations should give:
Bl =[
CPE −CPE zE
0 CCE
] (vE
ωE
)+ · · ·
INTERFACES 45
The constraint equations defined above give:
Bl =(
CPCvCP/C
ωCP/C + · · ·
)=
(CPCCCE(vE + ωEzE)
CCEωE
)+ · · · =
[CPE −CPE zE
0 CCE
] (vE
ωE
)+ · · ·
so symmetry is indeed maintained. Thus the common frame axes are the natural choice for the force when the
constraint equations are defined in terms of the displacement r = xCP/P . The result for a pinned interface is
similar, involving just the force and linear motion. Consider a cantilever interface with the interface force in
connection axes. The force and moment acting on the body equations of one component are:(FE
ME
)=
[CEC 0
zECEC CEC
] (FC
MC
)For symmetry, the constraint equations should give:
Bl =[
CCE −CCE zE
0 CCE
] (vE
ωE
)+ · · ·
but the constraint equations defined above give instead:
Bl =(
vCP/C − ωCP/CCCP xCP/P
ωCP/C + · · ·
)=
(CCE(vE + ωEzE) − (CCEωE ) xC
CCEωE
)+ · · ·
=[
CCE −CCE zE + xCCCE
0 CCE
] (vE
ωE
)+ · · ·
So the resulting equations are not symmetric with the constraint equations defined in terms of r = xCP/C . With
these constraint equations, rigid body angular motion does not produce linear displacement in connection axes
(xC = CCEzE), but the constraint forces still produce moments on the body. Hence the interface force in
connections axes should not be used if symmetry is important, such as with a modal analysis. If in this case the
constraint equations were defined instead using r = vCP/C , then symmetry would be maintained again:
Bl =(
vCP/C
ωCP/C + · · ·
)=
[CCE −CCE zE
0 CCE
] (vE
ωE
)+ · · ·
There is no path-independent r such that r = vCP/C however. The following table summarizes the options (“*”
indicates options not implemented).
force equation
symmetric FP r = xCP/P = CPCvCP/C r = xCP/P
symmetric (*) FC r = vCP/C r not existnot symmetric FC r = vCP/C − ωCP/CCCP xCP/P r = xCP/C = CCP xCP/P
symmetric MC s = ωCP/C + · · · ssymmetric (*) MP s = −ωPC/P + · · · = CPCωCP/C + · · · CPCs
46 INTERFACES
Chapter 6
OUTPUT
6–1 Description
An output provides an external connection to the system. The output kind can be identified as one of the
following quantities:
a) component degree of freedom, ξn;
b) interface variable, fl;
c) input variable, um;
d) frame degree of freedom, β;
e) component output, x (input/output kind only).
All quantities except the component output x are already available in the solution, so the output piece just controls
the write process. In particular, a separate solution for the output is not necessary, and the output shares the response
of the variable. These quantities are not available at all as output variables in the flutter equations (degrees of
freedom and input can be selected as sensors when analyzing the flutter equations; and interface variables can be
obtained by defining a separate y as the same component output). Identifying y as a component output x produces
an output equation. In this case the output does not exist elsewhere in the system. Hence that equation must be
in some part that solves for the quantity, and the output will have a separate response defined. Only this quantity
kind is available as output variables in the flutter equations.
The output piece defines the quantities that are written (such as time history or harmonics), and their destination
(print, plot file, or printer-plot). A time history is evaluated from the response solution (whether that solution is in
the time domain or the frequency domain), at a number of times specified by the output piece. For periodic data, a
cosine-sine Fourier series can be evaluated, for a number of harmonics specified by the output piece. This Fourier
series is obtained by transforming the preceding time history (even if the solution is in the frequency domain), so
the number of times specified by the output piece also affects the harmonics. Figure 1 illustrates the process.
6–2 Theory
The harmonic analysis transformation produces a cosine/sine Fourier series from discretized data in the time
domain. The time domain data are Fj = F (ψj) for j = 1 to J , ψj = j Δψ, Δψ = 2π/J . Then the cosine and
sine harmonics are:
48 OUTPUT
OUTPUT SYSTEM PIECE
RESPONSE SOLUTION time domain (some Δt) or frequency domain (harmonics)
TIME HISTORY evaluated from stored response, at Δt of output piece
HARMONICS (if periodic) evaluated from time history, for number of harmonics of output piece
Figure 6-1 Calculation process for output piece.
OUTPUT 49
F0 =1J
∑Fj
Fnc =2 Kn
J
∑cos(nψj) Fj
Fns =2 Kn
J
∑sin(nψj) Fj
The factor Kn determines the interpolation option: Kn = 1 for Fourier interpolation, and
Kn =(
J
πnsin(
πn
J))2
for linear interpolation (harmonics of a linear interpolation between the data at Fj). Fourier interpolation (Kn = 1)
uses a Fourier series representation of the time history. When all harmonics are used, Fourier interpolation gives
the discrete data points exactly, but the behavior is uncontrolled in between. Linear interpolation (Kn < 1) uses
the harmonics of a linear interpolation between the data at discrete times. With an infinite number of harmonics
the linear interpolation is obtained exactly. A finite number of harmonics gives a smoothed curve, close to the
discrete data points. Figure 2 illustrates interpolation options.
50 OUTPUT
FOURIER INTERPOLATIONtime history dataFourier series representation
LINEAR INTERPOLATION
time history datalinear interpolationFourier series representation(finite number of harmonics)
time (one period)
outp
ut q
uant
ity
time (one period)
outp
ut q
uant
ity
Figure 6-2 Interpolation options of harmonic analysis.
Chapter 7
INPUT
An input provides an external connection to the system. Such connections are required for the trim and flutter
tasks. The value of an input variable is considered constant (not time varying) in the trim task, but can be changed
by a trim loop. The flutter task can perturb the input for the linear equations. The transient task however needs
components to generate any prescribed control, since the variables of the input system piece will have the constant
value from the trim solution.
The input is defined by the length of the input vector and the names of the elements in the input vector.
Connections of the input to component input f are identified. This component input must be input/output kind.
Each input of a component can be connected to only one source. It may be required to obtain a particular
component input fni from a combination of one or more system input vectors um, and one or more input/output
interface variables fl. Such a combination could be implemented inside the component, with a separate component
input for each source. The standard way to handle this configuration is to use the differential equation component
(in static mode) to combine the sources; the combined result is evaluated by an input/output interface, and is then
sent to the component that requires it.
52 INPUT
Chapter 8
WIND
8–1 Description
Wind is a system piece describing the environment of the system. The system can have only one wind defined.
The following parameters specify the wind:
a) wind speed;
b) orientation of the wind/gust axes relative inertial axes (FI), by yaw and pitch angles.
The wind parameters are used by the analysis to calculate the velocity of the air relative the inertial frame. The
trim loop solution methods have access to these parameters. The wind speed is positive for air from the +x axis
direction (x is forward). The gust axes and wind axes are the same. The wind/gust axes can be velocity axes (from
a specified free-flight operating condition), inertial axes, or input orientation.
A ground boundary layer can be included in the wind model. The air velocity then depends on the height above
the ground, according to a logarithmic law, a modified logarithmic law, or a power law. The wind speed parameter
is the air velocity at a reference height above the ground. The parameters that define the ground boundary layer
profile are not available to trim loops.
8–2 Theory
8-2.1 Wind Velocity and Wind/Gust Axes
The wind has a specified velocity W , from the +x axis direction of the wind/gust axes. The orientation of
the wind/gust axes G relative to inertial axes I is defined by yaw and pitch angles:
CGI = YθGZψG
where the angles and rotation matrix are constant. These angles may be specified as follows.
a) Velocity axes: θG = θV and ψG = ψV , if the designated operating condition is not turning.
b) Inertial axes: θG = 0 and ψG = 0.
c) Input orientation: θG and ψG input.
The wind therefore produces a constant velocity of the air relative inertial axes:
vIW = −CIG
⎛⎝ W00
⎞⎠
54 WIND
Any gust components use the wind/gust axes to define a change of the air velocity: uG, vG, and wG components
in the G axes.
8-2.2 Ground Boundary Layer
A ground boundary layer can be included in the wind model. The air velocity w is in the +x axis direction of
the wind/gust axes still, but now depends on the height above the ground z. The wind speed W is the air velocity at
a reference height H . Typically H is 10 m or the gradient height G. The air velocity w(z) can be calculated using
a logarithmic law, a modified logarithmic law, or a power law. The logarithmic law, based on turbulent boundary
layer theory, gives:w
W=
ln z/R
lnH/R
where R is the roughness height, characterizing the terrain. Typically R = 0.03 m; R can range from about 10−5 m
over ice, to about 4 m over a city. The modified logarithmic law, developed empirically to improve correlation
with measured wind profiles, givesw
W=
ln z/R + 5.75z/G
lnH/R + 5.75H/G
where G is the gradient height; typically G = 1000 m. The power law, developed empirically, gives
w
W=
( z
H
)α
where the exponent α depends on the surface roughness and the range of z. Typically α = 0.20; α can range
from about 0.10 over sand to 0.32 over a city. The exponent α is approximately related to the roughness height by
α = −1/ ln(R/15.25).
With a ground boundary layer, the air velocity depends on the position in space. A point C is located at
r = xCI/I , measured from the origin of the inertial frame, in inertial axes. Then the height above ground is:
z = hIAGL − rT kIg
where hIAGL is the height of the origin of the inertial frame above ground level; and kIg is the ground normal in
inertial axes (directed downward). Calculating the convected position of a point in the air requires that the wind
velocity be integrated over time:
Δx =∫ t
t0
w(z(τ)
)dτ
The wind system piece can calculate w given z, but does not perform this integration. Each component that requires
a convected position must integrate the wind velocity (since it is the component that can calculate the position
r = xCI/I ). When a structural dynamic component evaluates the velocity relative the air for an aerodynamic
interface, the variation of the wind velocity in the ground boundary layer is included. Other components may
however neglect the ground boundary layer, and only use the reference wind speed W . For example, performance
components require a single wind or flight speed value (perhaps only to get the wind direction, such as to resolve
forces into lift and drag). If the variation of the wind velocity in the ground boundary layer is neglected, then
calculation of the convected positions is simplified.
Chapter 9
OPERATING CONDITION
9–1 Description
Operating Condition is a system piece describing the environment of the system. The operating condition
kind can be constrained or free. The following parameters specify the operating condition:
a) flight speed;
b) orientation of the body frame relative inertial axes (FI), by yaw, pitch and roll angles;
c) turn rate;
d) orientation of the velocity frame relative inertial axes (VI), by yaw and pitch angles.
The operating condition parameters are used by the analysis to define the mean motion of the system rigid body
degrees of freedom. In particular, the parameters are used to define the response nominal and reference in the
“base frame” convention. The trim loop solution methods can change these parameters. The system can have
more than one operating condition defined. The definition of the operating condition uses the following axes:
a) I: inertial axes.
b) Y: turning axes, rotating at a constant yaw rate relative inertial axes.
c) F: body frame; yaw, pitch, and roll Euler angles define the orientation of F relative I.
d) V: velocity axes, such that the flight speed V (velocity of body relative air) is in the +x axis
direction; yaw and pitch angles define the orientation of V relative I.
e) G: wind/gust axes, such that the wind speed W (velocity of air relative body) is from the
+x axis direction; yaw and pitch angles define the orientation of G relative I.
The I , Y, and G axes have the same origin; the F and V axes have the same origin. Using aircraft convention, the
z-axis is down, the x-axis forward, and the y-axis to the right. Typically a free system will not use the wind speed,
and the gust axes are the velocity axes. A constrained system does not use the flight speed or velocity axes.
For a free operating condition, aircraft conventions are followed. The flight speed is positive for the body
moving in the +x axis direction (x is forward). The orientation is defined by Euler angles, using a yaw-pitch-roll
sequence. Either body axes or stability (wind) axes can be used. With body axes, the degrees of freedom represent
the motion of the body frame relative the inertial frame (FI). With stability axes, the degrees of freedom represent
the motion of velocity axes relative inertial frame (VI); to obtain the motion of the the body frame, a nominal
relative the degrees of freedom is defined, such that the nominal is the constant orientation of the body frame
relative the velocity axes (FV).
56 OPERATING CONDITION
For a constrained operating condition, only the orientation of the body frame relative inertial axes (FI) is used
(the yaw, pitch and roll angles). There is no flight speed or turn rate of a constrained body. A velocity of the air
relative to the body is obtained using the wind.
9–2 Theory
9-2.1 Free
The orientation of the body frame F relative to inertial axes I is defined by yaw, pitch, and roll Euler angles,
which are rotations about the z, y, and x-axes respectively:
CFI = XφFYθF
ZψF= CFY ZψF
= CFY CY I
The flight path is specified by the velocity V , in the +x axis direction of the velocity axes. The orientation of the
velocity axes V relative to inertial axes I is defined by yaw (sideslip) and pitch (climb) angles:
CV I = YθVZψV
ZψF= CV Y CY I
so
CFV = CFICIV = XφFYθF
Z−ψVY−θV
In straight flight, all these angles and matrices are constant. In turning flight at a constant yaw rate, the yaw angle
is
ψF = ψF t + ψF0
Then CY I = ZψFand the matrices that depend on it vary with time. The response conventions require motion
defined by the operating condition be expressed in several forms. For body axes, the motion of the body frame
relative to inertial axes is required:
CFI = XφFYθF
ZψF
ωFI/F = CFY
⎛⎝ 00
ψF
⎞⎠vFI/F = CFV
⎛⎝ V00
⎞⎠xFI/I =
∫ t
0
CIF vFI/F dt + xFI/I0
In straight flight, the velocity is constant so the position integrates to
xFI/I = vIt + xFI/I0
where xFI/I is the position of the origin at time t = 0; and
vI = CIF0 vFI/F = CIV
0
⎛⎝ V00
⎞⎠ =
⎛⎝ V cos θV cos(ψF0 + ψV )V cos θV sin(ψF0 + ψV )
−V sin θV
⎞⎠
OPERATING CONDITION 57
where subscript “0” on C indicates ψF = 0. In turning flight the position is:
xFI/I =∫ t
0
CIF vFI/F dt + xFI/I0 =
∫ t
0
CIV vV I/V dt + xFI/I0
=∫ t
0
ZTψF t
CIV0 vV I/V dt + x
FI/I0 =
(∫ t
0
ZTψF t
dt
)vI + x
FI/I0
=1
ψF
⎡⎣ sin ψF t cos ψF t − 1 0−(cos ψF t − 1) sin ψF t 0
0 0 ψF t
⎤⎦ vI + xFI/I0
In terms of the turn radius RT = (V cos θV )/ψF :
1ψF
⎡⎣ sin ψF t cos ψF t 0− cos ψF t sin ψF t 0
0 0 ψF t
⎤⎦CIV0
⎛⎝ V00
⎞⎠
=1
ψF
⎡⎣ sinψF cos ψF 0− cos ψF sinψF 0
0 0 ψF t
⎤⎦CY V
⎛⎝ V00
⎞⎠
=
⎡⎣ sinψF cos ψF 0− cos ψF sinψF 0
0 0 ψF t
⎤⎦⎛⎝ RT cos ψV
RT sinψV
−(V/ψF ) sin θV
⎞⎠
=
⎛⎝ RT cos(ψF + ψV )−RT sin(ψF + ψV )
−V t sin θV
⎞⎠Also required are the velocity and acceleration in inertial axes:
vFI/I = CIF vFI/F = ZTψF t
CIF0 vFI/F = ZT
ψF tvI
=
⎛⎝ V cos θV cos ψV cos θV sinψ−V sin θV
⎞⎠
vFI/I = ZTψF t
vI =
⎛⎝ 00
ψF
⎞⎠ ZTψF t
vI
=
⎛⎝ −ψF V cos θV sinψψF V cos θV cos ψ
0
⎞⎠=
⎛⎝ −ψ2F RT sinψ
ψ2F RT cos ψ
0
⎞⎠
where ψ = ψF t + ψF0 + ψV . For stability axes, the motion of the velocity frame relative to inertial axes is
58 OPERATING CONDITION
required:CV I = YθV
ZψVZψF
ωV I/V = CV Y
⎛⎝ 00
ψF
⎞⎠vV I/V =
⎛⎝ V00
⎞⎠xV I/I =
∫ t
0
CIV vV I/V dt + xV I/I0
The origins of the F and V axes are the same, so xV I/I = xFI/I . For stability axes, the nominal motion is the
orientation of the body frame F relative the velocity axes:
CFV = XφFYθF
Z−ψVY−θV
which is constant (and xFV/V = 0). Also required are the velocity and acceleration in inertial axes:
vV I/I = CIV vV I/V = ZTψF t
vI = vFI/I
vV I/I = vFI/I
Note thatxFI/I = xV I/I
CFI = CFV CV I
vFI/F = CFV vV I/V
ωFI/F = CFV ωV I/V
So with stability axes, the degrees of freedom are simply rotated by the constant matrix CFV relative to body axes.
9-2.2 Constrained
For a constrained operating condition, the turning and velocity axes are not used, or are taken as the inertial
axes. The flight speed and turn rate are not used. The orientation of the body frame F relative to inertial axes I is
defined by yaw, pitch, and roll Euler angles, which are rotations about the z, y, and x-axes respectively:
CFI = XφFYθF
ZψF
These angles and matrices are constant. This definition of CFI is used when the angular motion of the response is
represented by aircraft Euler angles. For a constrained base frame, the other conventions for representing angular
motion are also permitted. Hence
CFI = C(p) where p =
⎛⎝ φF
θF
ψF
⎞⎠for Rodrigues parameters; and
CFI = UφFVθF
WψF
for arbitrary Euler angles. So the meaning of the operating condition parameters depends on the response conven-
tion.
OPERATING CONDITION 59
9-2.3 Wind/Gust Axes
The wind has a specified velocity W , from the +x axis direction of the wind/gust axes. The orientation of
the wind/gust axes G relative to inertial axes I is defined by yaw and pitch angles:
CGI = YθGZψG
where the angles and rotation matrix are constant. These angles may be specified as follows.
a) Velocity axes: θG = θV and ψG = ψV , if the designated operating condition is not turning.
b) Inertial axes: θG = 0 and ψG = 0.
c) Input orientation: θG and ψG input.
The wind therefore produces a constant velocity of the air relative inertial axes:
vIW = −CIG
⎛⎝ W00
⎞⎠Any gust components use the wind/gust axes to define a change of the air velocity: uG, vG, and wG components
in the G axes.
9-2.4 Derived Quantities
The total velocity of the body frame F relative the air, in velocity axes, is:
vFG/V = vFI − vGI =
⎛⎝ V00
⎞⎠ − CV IvIW =
⎛⎝ V00
⎞⎠ + CV G
⎛⎝ W00
⎞⎠where CV G = CV ICIG = CV Y CY ICIG. So the quantity vFG/V is constant if there is no turn rate, or no wind.
If the wind/gust axes are the velocity axes, then
vFG/V =
⎛⎝ V + W00
⎞⎠The magnitude V = |v| or orientation εV of the total velocity can be evaluated as required. With no wind, or
wind/gust axes equal the velocity axes, εV is in the ±x axis direction. The velocity in F axes is obtained by
multiplying vFG/V by CFV . For a constrained operating condition, there is no flight speed, and the velocity axes
are taken as inertial axes. Then the total velocity of the body frame F relative the air is:
vFG/I = −vGI = −vIW
The velocity in F axes is obtained by multiplying by CFI . The climb velocity Vc and sideslip velocity Vs are
obtained from the components of the flight speed in the turning axes:
CY V
⎛⎝ V00
⎞⎠ = ZTψV
Y TθV
⎛⎝ V00
⎞⎠ =
⎛⎝ V cos θV cos ψV
V cos θV sinψV
−V sin θV
⎞⎠
60 OPERATING CONDITION
HenceVc = V sin θV
Vs = V cos θV sinψV
Including the wind velocity, these quantities are the y and z components of:
CY V vFG/V = CY V
⎛⎝ V00
⎞⎠ + CY G
⎛⎝ W00
⎞⎠ =
⎛⎝ V cos θV cos ψV
V cos θV sinψV
−V sin θV
⎞⎠ +
⎛⎝ W cos θG cos(ψG − ψF )W cos θG sin(ψG − ψF )
−W sin θG
⎞⎠Finally,
RT =V cos θV
ψF
is the turn radius.
Chapter 10
PERIOD
Period is a system piece describing the environment of the system. The period kind can be base or child. For
a base period, the rotational speed is defined. The rotational speed value can be negative. The trim loop solution
methods can change the rotational speed of a base period.
For a child period, the parent period (rotational speed ΩB) and a gear ratio r are defined. The value of the
child rotational speed is then always obtained from the parent: Ω = rΩB . The child definition is not hierarchical
(the parent must be a base period). The gear ratio can be negative.
Any system piece can identify a period, and thus get the corresponding rotational speed Ω as required during
the solution process. A standard relation between azimuth and time is used: ψ = Ωt+ψ0. The reference azimuth
ψ0 must be defined whenever a period is identified.
Evaluating the rotational speed of a base period can include control: Ωtotal = Ω +∑
GiΩcontroli; where
Ωcontroli is the rotational speed from a base period (only used for control), and Gi is a gain factor.
62 PERIOD
Chapter 11
TRIM TASK
11–1 Description
The trim task obtains the equilibrium solution of the system equations, for a steady state operating condition.
The trim solution procedure is defined in terms of loops and parts. A part solves a set of equations for the trim
response. A loop iterates between part solutions.
11-1.1 Equilibrium Solution
For the trim task it is assumed that the system environment and input are constant or periodic; that an
equilibrium solution exists; and that the solution is constant or periodic. It is possible of course to define systems
for which these assumptions are not true.
Often it is necessary in the trim task to identify parameter values required to achieve a specified operating
condition (an inverse problem). The parameters identified typically include the values of inputs, and of the system
mean rigid motion. The identification typically requires that output quantities achieve a target value, or that zero
be achieved for the mean of the equations of the system rigid motion. This inverse solution is implemented by a
trim loop. In the absence of such an inverse solution, the equations are being solved for fixed values of inputs, and
of the system mean rigid motion. The form of the solution is still assumed to be constant or periodic, but a free
body will probably not in fact be in equilibrium. The system configuration may require that certain inputs be used
to achieve an equilibrium solution. Any remaining inputs are available to other trim loops, such as an optimizer.
11-1.2 Periodic Solution
When the equilibrium solution is periodic, it is also assumed that the period is known. Typically the period
of the solution is obtained from the rotational speed of some structural dynamic subsystem, Tref = 2π/Ω. The
correct period may not be so easy to identify however.
With a nonlinear system, subharmonics are possible, so the period is a multiple of Tref . The transient task
can be used to discover such cases.
The configuration might be axisymmetric, with N identical subsystems undergoing identical motion. Then
the solution period can be Tref/N (with the proper definition of variables). The analysis can use child response
and filtering of the part solution to enforce such behavior.
There can be several periods Ti simultaneously involved in the system behavior. A system period T , equal
to a common integer multiple of all Ti, might still exist. For example, with several rotating subsystems connected
through a gear train, the ratio of periods is a rational number, and there is a system period. Even if a system period
64 TRIM TASK
exists however, it may be too large for a practical trim analysis (in order to maintain the same frequency range of
the calculated response, the number of harmonics used must be increased proportionally to the increase in period).
The transient task can analyze all cases of course.
With several periods present, it is often useful to find an approximate equilibrium solution, by solving for the
response at each period separately. The approximation required is that non-harmonic vibratory coupling between
parts be ignored. In this case a distinction is made between periodic and time-invariant parts. A periodic part
inherently involves a particular period TI , hence must be solved only for that period. The assumption of periodicity
then requires that any input from other parts be at period TI , or else only the mean value can be used. A time-
invariant part has no inherent period, so can respond to input at all periods Ti. Solving a time-invariant part
separately at each period is an approximation if the part equations are nonlinear. For a time-invariant part one of
the periods is identified as the primary period, and the remainder as secondary periods; the mean response of the
part is found with the primary period only. All periods of a time-invariant part are handled by a single part solution
procedure. Interactions between parts that have different periods are handled using conventions described for the
response system piece.
11-1.3 Rigid or Free Degrees of Freedom
The system can have rigid or free degrees of freedom: motion with no elastic restraint, no elastic potential
energy, hence zero or singular spring. For such degrees of freedom, it is not possible for the part to solve the
motion equations for a constant equilibrium position. If the equilibrium solution is assumed to be periodic, it is
not possible for the part to solve for the mean position (but the oscillatory motion can be found, as long as the
rigid degrees of freedom have mass or damping). Hence rigid degrees of freedom require special treatment in the
trim solution procedure. The part solution must take the mean rigid motion as a specified quantity, and evaluate
the resulting mean value of the motion equations, which may be handled by a trim loop.
System rigid degrees of freedom are associated with the operating condition. Typically they are structural
dynamic motions, producing inertia and damping forces. A singular spring matrix (no elastic potential energy)
does not mean no spring forces however. For example, a rigid body experiences linear gravity forces (using a
body-axes velocity representation of the motion) when it undergoes an angular motion change. Hence rigid degrees
of freedom can be either first or second order. The equilibrium solution must be a constant (or periodic) value of
the system states. So the equilibrium solution is as follows.
a) First order degree of freedom (zero spring): The state is the velocity of the degree of
freedom. In equilibrium, the velocity is constant (or periodic). So the displacement takes the
form x = x0 + v0t + periodic part. The value of x0 should not affect the solution (otherwise
there would be a spring term), and thus is often ignored.
b) Second order degree of freedom: The states are the velocity and displacement of the degree
of freedom. In equilibrium, the displacement is constant (or periodic), and takes the form
x = x0 + periodic part. Thus the mean velocity is zero.
Hence for a free body, a steady state operating condition usually implies unaccelerated motion.
Consider an aircraft, with six degrees of freedom of system rigid motion. The pitch and roll degrees of
freedom have a spring from gravity (force changes, using a body-axes velocity representation), hence are second
TRIM TASK 65
order. The yaw and linear degrees of freedom are first order. The equilibrium solution is thus constant pitch and
roll attitude, constant yaw rate, and constant linear velocity. The yaw rate and velocity can be zero, in which case
equilibrium is a constant yaw attitude and linear position. A subsystem with free rotational motion (such as an
engine, propeller, or rotor) introduces an additional first order degree of freedom (no spring on rotation), with a
constant angular velocity at equilibrium.
11–2 Implementation
A part solves for the the equilibrium solution at all time steps (at a single time, over a period, or over a
specified time interval). Different parts need not use the same time steps. The part solution may be iterative. If the
part is itself inside a trim loop iteration, then the part convergence is required only for its final execution (although
the loop iteration may not converge if its part solutions are not accurate).
The user must identify any rigid or free degrees of freedom in each part. These degrees of freedom form a
statically determinate set for the part, so the spring matrix of the remaining degrees of freedom is not singular.
The part solution takes the mean rigid motion as a specified quantity, and evaluates the resulting mean value of
the motion equations. These rigid degrees of freedom can not be eliminated by any constraint, or be involved in a
modal transformation.
For each rigid degree of freedom, the value of the mean position (x0), or the mean velocity and the mean
position at zero time (v0 and x0) must be specified. The analysis has conventions to obtain these values from an
operating condition or period system piece. A trim loop can change these values, based on the mean value of the
motion equations, which is calculated by a trim part. Quantities that do not affect the solution can be ignored
(probably set to zero).
The system rigid body motion can be represented by frame degrees of freedom (a base frame, its parent is
the inertial frame). Other motion can the be defined in that base frame, hence measured relative to the rigid body
motion. With this approach, the constant velocity of the trim solution is required only for the base frame. In
general, the motion of the system should be defined as rigid motion, plus elastic motion relative rigid. Then the
conventions for the elastic response need not include the velocity terms of the rigid motion.
66 TRIM TASK
Chapter 12
TRIM LOOP
12–1 Description
A loop is described by identifying its parts, child loop, and write modules. The parts can be solved in the
loop (iterated with the child loops), or at the end of the loop. The parts are defined in the order to be solved. The
loops are hierarchical. A loop can have at most one child and one parent. A first loop has no parent; a last loop
has no child. The analysis can have more than one first loop. The methods implemented for trim loops are:
a) no solution;
b) successive substitution;
c) Newton-Raphson;
d) regulator.
The successive substitution solution includes stages or levels; it must have parts solved in the loop, and a child
loop. The Newton-Raphson and regulator solutions include identification.
Write modules handle print, printer-plot, and write to plot file operations. The write module is identified
in the loop input data. Parameters controlling the write operations are obtained from the corresponding system
piece. Write modules perform formatting and transformations, but not calculations. A part solution is required to
calculate quantities for the write module. The trim loop write modules available produce output corresponding the
shell; convergence; loop solution; part solution; modes; output of a part; output; and graphics. Often the output is
relevant only at the end of the solution, when all loops and parts are converged, so the write modules are executed
at the end of the first loop. The analysis can also execute write modules at the end of inner loops.
12–2 Implementation
12-2.1 Loop Algorithm
A loop can implement a general iteration between part solutions. Figure 1 is an outline of the loop solution
process. The iteration is between the parts solved in the loop, and all inner loops. The iteration control and
convergence test operations constitute the loop algorithm. A first loop has no parent; a last loop has no child. The
analysis can have more than one first loop.
The parts are defined in the order to be solved. Generally the parts solved in a loop should not affect each
other. The parts solved at the end of the loop should not affect the loop convergence; they solve for quantities
required by a parent loop, or for output. A quantity must be solved before it can be written by a write module.
68 TRIM LOOP
loop iterationiteration controlsolve parts in loopchild looptest loop convergence
solve parts at end of loopexecute write modules at end of loop
Figure 12-1 Outline of loop solution process.
Each loop has a status or level designator, the meaning of which depends on the loop method. A part or component
can use the status of a specified loop to control its solution procedure.
12-2.2 No Solution Method
For the no solution method, there are no iteration control or convergence test operations in the loop. Such a
loop simply serves to organize the part solutions.
12-2.3 Successive Substitution Method
A successive substitution loop executes a general iteration between part solutions. It must have parts solved
in the loop, and a child loop. The algorithm includes stages or levels. The successive substitution algorithm solves
equations of the form x = G(x). Let y = G1(x) represent the result of the parts solved in the loop, and x = G2(y)the result of the child loop solution. Then G = G2(G1), and x is defined by how the system equations are split
between this loop and its child loops. Specifically, x represents all quantities calculated by the child loops, and
used by the parts solved in this loop. Hence the analysis can determine the contents of x from the functionality
of the part equations. The stages or levels are a cycle outside the basic successive substitution iteration. A part
solution can change its model depending on the loop level, hence an initialization or startup procedure can be
implemented. Any level except the last can be skipped entirely. Optionally the parameters of this loop (such as
relaxation factor and tolerance) can depend on the level of another successive substitution loop; in which case, this
loop has only one level.
The process for the successive substitution method is shown in figure 2. At the beginning of the solution,
x has the value from the previous execution of the loop, or the initial value defined by the response data. The
successive substitution iteration ends when convergence of x is achieved, or the maximum number of iterations is
reached. The level cycle is executed a fixed number of times. The relaxation operation is performed for all times
in the solution for an element of x, and for any derivatives present as well as for the displacement.
12-2.4 Newton-Raphson Method
A Newton-Raphson loop executes a general solution of nonlinear algebraic equations. Specifically, it is
available to implement a solution of the inverse trim problem, identifying the parameter values required to achieve
a specified operating condition. The Newton-Raphson algorithm solves equations of the form M(v)−Mtarget = 0for the variables v. The quantities M can be the following:
TRIM LOOP 69
level cyclesave: xold = xsuccessive substitution iteration
relax: x = λx + (1 − λ)xold
save: xold = xevaluate x (solve parts in loop, child loops)test convergence: error = ‖x − xold‖ ≤ tolerance × weight
Figure 12-2 Outline of successive substitution method.
a) an input/output interface variable fl;
b) some mean system rigid force or moment F .
The force F corresponds to the system rigid degrees of freedom, which are identified in the part that contains them.
That part calculates F , as the mean value of the equation of the system rigid motion. The target for F is probably
zero. The variable v can be the following:
a) some input variable u;
b) a parameter in a wind, operating condition, or period system piece.
The latter parameters are typically used by the analysis to define rigid motion of the system. Each element of M is
identified as an element of some fl vector of the system, or as the degree of freedom element corresponding to an
element of F . Each element of v is identified as an element of some u vector of the system, or by the name of the
parameter in the system piece. M must be calculated by a part solved in this loop, or by any part in a child loop.
The stages or levels are the different phases of the solution procedures: initialization, identification, and iteration.
The process for the Newton-Raphson method is shown in figure 3. At the beginning of the solution, v
has the value from the previous execution of the loop, or the initial value defined by the loop data or response
data. Note that the gain matrix includes a relaxation factor λ. The recursive update also includes the exponential
window factor α. The perturbation identification can be performed never (so an input matrix is required), at the
beginning of the loop, or at the beginning and every MPID iterations thereafter. The recursive identification can be
performed never, or at each iteration (except when the perturbation identification is performed). The perturbation
identification restarts the recursive identification.
12-2.5 Regulator Method
A regulator loop executes an optimization of the system solution. The algorithm is similar to (and actually
developed from) the equations of an automatic control system, but as a trim loop it functions as an optimizer rather
than modelling an actual controller. A controller can be part of the system, defined using the available components.
Such a controller must be defined in order to analyze its behavior in the transient or flutter task, and it could be
defined also for the trim task.
The regulator algorithm uses a self-tuning regulator solution method to find the control θ to minimize a cost
function J(z, θ), calculated from measurements z:
J = (zn − ztarget)T Wz(zn − ztarget) + ΔθTn WΔθΔθn
70 TRIM LOOP
initializeevaluate M (solve parts in loop, child loops)test convergence: error = |Mj − Mtargetj | ≤ tolerance × weightj
initialize derivative matrix D to input matrix; P = 0calculate gain matrix: C = λD−1
iterationidentify derivative matrix
optional perturbation identificationperturb each element of v: δvi = Δ × weighti
evaluate M (solve parts in loop, child loops)calculate D, P = 1/δv2
i
calculate gain matrix: C = λD−1
optional recursive identificationupdate D, Pcalculate gain matrix: C = λD−1
increment controls: δv = −C(M − Mtarget)evaluate M (solve parts in loop, child loops)test convergence: error = |Mj − Mtargetj | ≤ tolerance × weightj
Figure 12-3 Outline of Newton Raphson method.
where Wz and WΔθ are diagonal weighting matrices. The measurements z can be an input/output interface variable
fl. The control θ can be some input variable u. Each element of z is identified as an element of some fl vector
of the system. Each element of θ is identified as an element of some u vector of the system. The measurement z
must be calculated by a part solved in this loop, or by any part in a child loop. The stages or levels are the different
phases of the solution procedures: initialization, identification, and iteration.
The process for the regulator method is shown in figure 4. At the beginning of the solution, θ has the value
from the previous execution of the loop, or the initial value defined by the loop data or response data. Note
that the gain matrix includes a relaxation factor λ. The recursive update also includes the exponential window
factor α, and a Kalman filter variance Q. The perturbation identification can be performed never (so an input
matrix is required), at the beginning of the loop, or at the beginning and every MPID iterations thereafter. The
recursive identification can be performed never, or at each iteration (except when the perturbation identification is
performed). The perturbation identification restarts the recursive identification.
12–3 Theory
In addition to controlling the execution of part solutions and write modules, the function of a loop iteration
is to solve nonlinear algebraic equations. Such equations may be written in two forms:
a) fixed point, x = G(x);b) zero point, f(x) = 0;
where x, G, and f are vectors. The analysis provides operations that implement the function G or f . Note that
the parts find the solution over time. Hence x can include values at all time steps, or all harmonics, including time
derivatives. Efficient and convergent methods are required to find the solution x = α of these equations. Note that
TRIM LOOP 71
initializeevaluate z (solve parts in loop, child loops)calculate cost Jtest convergence: error = [
√J or
√ΔJ ] ≤ tolerance
initialize derivative matrix T to input matrix; P = 0calculate gain matrix: C = λ(TT WzT + WΔθ)−1TT Wz
iterationidentify derivative matrix
optional perturbation identificationperturb each element of θ: δθi = Δ × weighti
evaluate z (solve parts in loop, child loops)calculate T , P = 1/δθ2
i
calculate gain matrix: C = λ(TT WzT + WΔθ)−1TT Wz
optional recursive identificationupdate T , Pcalculate gain matrix: C = λ(TT WzT + WΔθ)−1TT Wz
increment controls: δθ = −C(z − ztarget)evaluate z (solve parts in loop, child loops)calculate cost Jtest convergence: error = [
√J or
√ΔJ ] ≤ tolerance
Figure 12-4 Outline of regulator method.
f ′(α) = 0 or G′(α) = 1 means that α is a higher-order root. For nonlinear problems, the method will be iterative:
xn+1 = F (xn). The operation F depends on the solution method. The solution error is:
εn+1 = α − xn+1 = F (α) − F (xn) = (α − xn)F ′(ξn) ∼= εnF ′(α)
Thus the iteration will converge if F is not too sensitive to errors in x:
|F ′(α)| < 1
for scalar x. For x a vector, the criterion is that all the eigenvalues of the derivative matrix ∂F/∂x have magnitude
less than one. The equations in this section are generally written for scalar x; the extension to vector x is
straightforward. Convergence is linear for F ′ nonzero, quadratic for F ′ = 0. Iterative methods have a relaxation
factor (and other parameters) to improve convergence, and a tolerance to measure convergence.
12-3.1 Successive Substitution Method
The successive substitution method (with relaxation) is an example of a fixed point solution. A direct iteration
is simply xn+1 = G(xn), but |G′| > 1 for many practical problems. A relaxed iteration uses F = (1−λ)x+λG:
xn+1 = (1 − λ)xn + λG(xn)
with relaxation factor λ. The convergence criterion is then
|F ′(α)| = |1 − λ + λG′| < 1
72 TRIM LOOP
so a value of λ can be found to ensure convergence for any finite G′. Specifically, the iteration converges if
the magnitude of λ is less than the magnitude of 2/(1 − G′) (and λ has the same sign as (1 − G′)). Quadratic
convergence (F ′ = 0) is obtained with λ = 1/(1 − G′). Over-relaxation (λ > 1) can be used if |G′| < 1. Since
the correct solution x = α is not known, convergence must be tested by comparing the values of two successive
iterations:
error = ‖xn+1 − xn‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically absolute value for scalar x). Note that
the effect of the relaxation factor is to reduce the difference between iterations:
xn+1 − xn = λ(G(xn) − xn
)Hence a reduction of λ must be accompanied by a reduction in the tolerance, to maintain the same convergence
accuracy. Generally the reduction in the tolerance must be proportional to the reduction in relaxation factor.
The successive substitution method fails if G′(α) = ∞. In such a case, the iteration typically oscillates about
the correct solution, the magnitude of the oscillation decreasing as λ approaches zero. But at λ = 0 the iteration
is turned off, so the correct solution can never be found. To successfully analyze the system in such a case, it is
necessary to change the definition of the problem: either change the order that parts are solved in the loop, thereby
changing the definition of x and G; or change the physical model that is the source of the sensitivity of G to x.
12-3.2 Newton-Raphson Method
The Newton-Raphson method (with relaxation and identification) is an example of a zero point solution. A
problem specified as h(x) = htarget becomes a zero point problem with f = h − htarget. The Taylor series
expansion of f(x) = 0 leads to the iteration operator F = x − f/f ′:
xn+1 = xn − [f ′(xn)]−1f(xn)
which gives quadratic convergence. The behavior of this iteration depends on the accuracy of the derivative f ′.
Here it is assumed that the analysis can evaluate directly f , but not f ′. It is necessary to evaluate f ′ by numerical
perturbation of f , and for efficiency the derivatives may not be evaluated for each xn. These approximations
compromise the convergence of the method, so a relaxation factor λ is introduced to compensate. Hence a
modified Newton-Raphson iteration is used, F = x − Cf :
xn+1 = xn − Cf(xn) = xn − λD−1f(xn)
where the derivative matrix D is an estimate of f ′. The convergence criterion is then
|F ′(α)| = |1 − Cf ′| = |1 − λD−1f ′| < 1
since f(α) = 0. The iteration converges if the magnitude of λ is less than the magnitude of 2D/f ′ (and λ has
the same sign as D/f ′). Quadratic convergence is obtained with λ = D/f ′ (which would require λ to change
during the iteration however). The Newton-Raphson method ideally uses the local derivative in the gain factor,
C = 1/f ′, so has quadratic convergence:
F ′(α) =ff ′′
f ′2 = 0
TRIM LOOP 73
since f(α) = 0 (if f ′ �= 0 and f ′′ is finite; if f ′ = 0 then there is a multiple root, F ′ = 1/2, and the convergence
is only linear). A relaxation factor is still useful, since the convergence is only quadratic sufficiently close to the
solution. In the secant method, the derivative of f is evaluated numerically at each step:
f ′(xn) ∼= f(xn) − f(xn−1)xn − xn−1
It can be shown that then the error reduces during the iteration according to:
|εn+1| ∼= |f ′′/2f ′| |εn| |εn−1| ∼= |f ′′/2f ′|.62|εn|1.62
which is slower than the quadratic convergence of the Newton-Raphson method (ε2n), but still better than linear
convergence. In practical problems however, whether the iteration converges at all is often more important than
the rate of convergence. A Newton-Raphson method has good convergence when x is sufficiently close to the
solution, but frequently has difficulty converging elsewhere. Hence the initial estimate x0 that starts the iteration
is a important parameter affecting convergence. Convergence of the solution for x may be tested in terms of the
required value (zero) for f :
error = ‖f‖ ≤ tolerance
where the error is some norm of f (typically absolute value for scalar f ).
The derivative matrix D is obtained by an identification process, either perturbation or recursive. The recursive
identification can use an exponential window method, or Broyden’s formula. Optionally an input derivative matrix
can be used. The perturbation identification can be performed at the beginning of the iteration, and optionally
every MPID iterations thereafter. The derivative matrix is calculated from a one-step finite-difference expression
(first order). Each element xi of the vector x is perturbed, one at a time, giving the i-th column of D:
D =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi)
δxi· · ·
]Alternatively, a two-step finite-difference expression (second order) can be used:
D =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi − δxi)
2δxi· · ·
]With this procedure, the accuracy of D (hence convergence) can be affected by both the magnitude and sign of the
the perturbation (only the magnitude for a two-step difference).
The recursive identification can be performed at each iteration. An iteration makes a change Δx, which then
produces a change Δf . These increments contain new information about the value of the local derivative f ′(x),which can be used to update the derivative matrix D. Consider the set of changes from all iterations, assumed to
satisfy [· · · Δf · · ·
]= D
[· · · Δx · · ·
]or F = DX . The weighted least-squares solution for D is
D = FWXT (XWXT )−1
If X is square then D = FX−1; and if X is also diagonal, the perturbation identification result is obtained. An
identification of D with equal weight on the change from each iteration eventually turns itself off, since the latest
74 TRIM LOOP
change is worth less and less compared to the complete set of changes. It is more reasonable to consider the latest
information to be most important. Hence an exponential window method is used. This is a least-squares estimate
of D, with weighting determined by a factor α (0 < α < 1). The weight on the change from the iteration k steps
in the past is αk, which exponentially decreases with k. Adding one measurement (with weight 1/α) to the current
estimate of D produces a recursive identification algorithm. Thus:
Dn =(Fn−1Wn−1X
Tn−1 + ΔfnΔxT
n/α) (
Xn−1Wn−1XTn−1 + ΔxnΔxT
n/α)−1
LetPn−1 =
(Xn−1Wn−1X
Tn−1
)−1
Dn−1 =(Fn−1Wn−1X
Tn−1
)Pn−1
Mn = Pn−1/α
Pn =(M−1
n + ΔxnΔxTn
)−1
ThenP−1
n = αP−1n−1 + ΔxnΔxT
n
Dn =(Dn−1P
−1n−1 + ΔfnΔxT
n/α)αPn
= Dn−1αP−1n−1Pn + ΔfnΔxT
nPn
= Dn−1(I − ΔxnΔxTnPn) + ΔfnΔxT
nPn
and finallyPn = Mn − MnΔxnΔxT
nMn/(1 + ΔxTnMnΔxn)
kn = PnΔxn
Dn = Dn−1 + (Δfn − Dn−1Δxn)kTn
Thus the algorithm for recursive identification (exponential window) of the derivative matrix is as follows:
a = Pn−1Δxn/α
kn = a/(1 + ΔxTn a)
Pn = Pn−1/α − akTn
Dn = Dn−1 + (Δfn − Dn−1Δxn)kTn
Here P is the error variance matrix. The perturbation identification initializes P to the diagonal matrix
P0 = (XWXT )−1 =
⎡⎢⎢⎣. . .
1/(Δxi)2. . .
⎤⎥⎥⎦The calculation of P may diverge in this algorithm. In such a case, the perturbation identification can be performed
more often, to reinitialize P . Broyden’s formula provides an alternate recursive identification method. This method
requires that the updated derivative matrix satisfy DnΔxn = Δfn. A solution that meets the requirement is:
Dn = Dn−1 + (Δfn − Dn−1Δxn)ΔxTn/(ΔxT
nΔxn)
Thus the recursive identification algorithm is as follows:
kn = Δxn/(ΔxTnΔxn)
Dn = Dn−1 + (Δfn − Dn−1Δxn)kTn
TRIM LOOP 75
This is equivalent to the exponential window method with P = I and α = 0, so only the latest increment is used.
12-3.3 Regulator Method
The regulator method uses a self-tuning regulator solution to find the controls x that minimize a quadratic
cost function calculated from the measurements f . A self-tuning regulator is a system that combines recursive
parameter estimation with linear feedback. The cost function J(f, x) is:
J = fTn Wffn + ΔxT
nWΔxΔxn
where Wf and WΔx are diagonal weighting matrices, and typically f = h − htarget. Note that the weighting
matrices must account for differences in units among the elements of f and x. The last term in J serves to limit
the rate of change of x, improving stability without changing the converged value of the response. The change in
x required to minimize J is found assuming a local linearization of f(x):
fn = fn−1 + T (xn − xn−1)
Consequently the resulting algorithm is similar to the Newton-Raphson method. Here the number of measurements
f can be greater than the number of controls x however. Substituting for fn in J , the control that minimizes J is
obtained, giving an iteration operation F = x − Cf :
xn+1 = xn − Cf(xn)
with the gain matrix
C = λ(TT WfT + WΔx
)−1TT Wf
A relaxation factor λ has been introduced, to improve convergence. If the number of measurements equals the
number of controls (so T is square), then
C = λT−1(I + W−1
f T−T WΔxT−1)−1
showing that λ and WΔx produce similar effects. If WΔx = 0, then
C = λ(TT WfT
)−1TT Wf
which is a weighted generalized inverse (CT = λI). If T is square and also WΔx = 0, then
C = λT−1
which is the Newton-Raphson result. A Newton-Raphson method has good convergence when x is sufficiently
close to the solution, but frequently has difficulty converging elsewhere. Hence the initial estimate x0 that starts
the iteration is a important parameter affecting convergence. Convergence of the solution for x may be tested in
terms of the cost function J : √J ≤ tolerance
or √ΔJ ≤ tolerance
76 TRIM LOOP
If J = 0 is not achievable, then the iteration will not convergence with the first expression if the specified tolerance
is too small. In such a case it is more appropriate to use the second expression, testing convergence in terms of the
change in J from one iteration to the next.
The derivative matrix T is obtained by an identification process, either perturbation or recursive. The recursive
identification can use an exponential window method, a Kalman filter, or Broyden’s formula. Optionally an input
derivative matrix can be used. The perturbation identification can be performed at the beginning of the iteration, and
optionally every MPID iterations thereafter. The derivative matrix is calculated from a one-step finite-difference
expression (first order). Each element xi of the vector x is perturbed, one at a time, giving the i-th column of T :
T =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi)
δxi· · ·
]Alternatively, a two-step finite-difference expression (second order) can be used:
T =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi − δxi)
2δxi· · ·
]With this procedure, the accuracy of T (hence convergence) can be affected by both the magnitude and sign of the
the perturbation (only the magnitude for a two-step difference).
The recursive identification can be performed at each iteration. An iteration makes a change Δx, which then
produces a change Δf . These increments contain new information about the value of the local derivative f ′(x),which can be used to update the derivative matrix T . Consider the set of changes from all iterations, assumed to
satisfy [· · · Δf · · ·
]= T
[· · · Δx · · ·
]or F = TX . The weighted least-squares solution for T is
T = FWXT (XWXT )−1
If X is square then T = FX−1; and if X is also diagonal, the perturbation identification result is obtained. An
identification of T with equal weight on the change from each iteration eventually turns itself off, since the latest
change is worth less and less compared to the complete set of changes. It is more reasonable to consider the latest
information to be most important. Hence an exponential window method is used. This is a least-squares estimate
of T , with weighting determined by a factor α (0 < α < 1). The weight on the change from the iteration k steps in
the past is αk, which exponentially decreases with k. Adding one measurement (with weight 1/α) to the current
estimate of T produces a recursive identification algorithm. Thus:
Tn =(Fn−1Wn−1X
Tn−1 + ΔfnΔxT
n/α) (
Xn−1Wn−1XTn−1 + ΔxnΔxT
n/α)−1
LetPn−1 =
(Xn−1Wn−1X
Tn−1
)−1
Tn−1 =(Fn−1Wn−1X
Tn−1
)Pn−1
Mn = Pn−1/α
Pn =(M−1
n + ΔxnΔxTn
)−1
TRIM LOOP 77
ThenP−1
n = αP−1n−1 + ΔxnΔxT
n
Tn =(Tn−1P
−1n−1 + ΔfnΔxT
n/α)αPn
= Tn−1αP−1n−1Pn + ΔfnΔxT
nPn
= Tn−1(I − ΔxnΔxTnPn) + ΔfnΔxT
nPn
and finallyPn = Mn − MnΔxnΔxT
nMn/(1 + ΔxTnMnΔxn)
kn = PnΔxn
Tn = Tn−1 + (Δfn − Tn−1Δxn)kTn
A similar recursive algorithm is obtained using a Kalman filter, which produces a minimum error-variance estimate.
The Kalman filter performs the identification in the presence of noise:
fn = fn−1 + Tn(xn − xn−1) + measurement noise
Tn = Tn−1 + process noise
with Q the ratio of process noise to measurement noise (units of 1/x2). In the present context, the equation for Tn
and the parameter Q simply serve to force the filter to update the estimate of T . Hence the function of Q is similar
to that of α for the exponential window. The only change to the algorithm is in the definition of M :
Mn = (Pn−1 + Qn−1)/α
Thus the algorithm for recursive identification (either exponential window or Kalman filter) of the derivative matrix
is as follows:a = (Pn−1 + Q)Δxn/α
kn = a/(1 + ΔxTn a)
Pn = (Pn−1 + Q)/α − akTn
Tn = Tn−1 + (Δfn − Tn−1Δxn)kTn
Here P is the error variance matrix. The perturbation identification initializes P to the diagonal matrix
P0 = (XWXT )−1 =
⎡⎢⎢⎣. . .
1/(Δxi)2. . .
⎤⎥⎥⎦The calculation of P may diverge in this algorithm. In such a case, the perturbation identification can be performed
more often, to reinitialize P . Broyden’s formula provides an alternate recursive identification method. This method
requires that the updated derivative matrix satisfy TnΔxn = Δfn. A solution that meets the requirement is:
Tn = Tn−1 + (Δfn − Tn−1Δxn)ΔxTn/(ΔxT
nΔxn)
Thus the recursive identification algorithm is as follows:
kn = Δxn/(ΔxTnΔxn)
Tn = Tn−1 + (Δfn − Tn−1Δxn)kTn
This is equivalent to the exponential window method with P = I and α = 0, so only the latest increment is used.
78 TRIM LOOP
Chapter 13
TRIM PART
13–1 Description
A part is described by identifying its motion, constraint, and output equations. Each equation can be in only
one part (possibly no-solution method). Each part can be solved in one or more loops. The methods implemented
for trim parts are:
a) no solution;
b) implicit;
c) static;
d) harmonic;
e) time finite element.
The implicit solution can be single value, periodic, not periodic, or multiperiod. The harmonic and time finite
element solutions can be for one or more periods, and have an option to filter the response obtained. The static,
harmonic, and time finite element solution methods solve differential equations. A part might not appear in any
loop. In such a case the structure of the response follows from the part method selected; while the part operation
(none) is equivalent to the no solution method.
All motion equations of a single component are in the same part. A part containing a structural dynamic,
no-residual constraint equation must also contain the motion equations for the degrees of freedom to be eliminated
by the constraint. A structural dynamic interface must be in the same part as one of the components that it connects.
For the implicit solution method, the part can contain only input/output constraint equations and output equations
(no motion equations or structural dynamic constraint equations). The constraint equations are solved in passes.
It is possible for a component to execute a solution procedure when it evaluates its output. In this situation,
the implicit solution for a single value can be used. Then the resulting vector of interface or output variables could
actually contain values over a range of times or harmonics.
13-1.1 Differential Equations
The differential equation solution methods can include the solution of implicit equations. Better convergence
can be expected if all equations are linearized (included in the differential equation set), but it can be more efficient
to just linearize the structural dynamic components and interfaces. For the latter case, implicit equations are solved
in passes, as required to generate the forces acting on the structural components. The implicit equations thus
provide a way to calculate these forces in steps, without adding more constraint equations to be solved with the
differential equations. Implicit equations can not be present in a time-invariant part with more than one period,
80 TRIM PART
since it would not then be possible to translate the total response to the difference. The differential equations can
be identified as time invariant or periodic. This distinction is relevant to the solution for a system with more than
one period. The structural dynamic degrees of freedom of the part can be transformed by modes. The degrees of
freedom or modes of the part can be transformed. The following transforms are used in the trim task: multiblade
coordinates; and rotating-to-nonrotating. The solution for selected variables can be quasistatic, with or without a
residual. It is possible to omit selected variables from the solution. It is necessary to identify the rigid degrees of
freedom of the part. These degrees of freedom must form a statically determinate set, so the spring matrix of the
remaining degrees of freedom is not singular.
The equations are typically linearized about the nominal and reference of the response; the part solves for the
difference. Optionally the reference can be updated from the current solution for the difference, and the matrices
recalculated. The update strategy is defined as follows:
a) Iterations in the part solution are counted from the beginning of the system solution, or from
the beginning of the part.
b) Always the references are updated and matrices calculated for the first iteration (system or
part count).
c) They may be updated for the second iteration.
d) Thereafter they may be updated never, or every N iterations; where the update interval N
may be constant, increased by a specified number after each update, or increased by a factor
of 2 after each update.
e) Any modes used by the part may or may not be recalculated at each update.
An update of the equations requires additional computation, but may be required to achieve convergence, and
in general should improve convergence. The best update strategy, minimizing computation while ensuring con-
vergence, will be problem dependent. As required by the solution procedures, the matrices of the differential
equations are constant for the trim task, either averaged over a period or evaluated at just one time.
13-1.2 Filtered Solution
A system can have symmetries that in certain operating conditions imply restrictions on the form of the
solution obtained from a part. Certain of these restrictions can be enforced when the response is evaluated by the
part solution (at the end of a time step or the end of an iteration), or when the equations are solved. Any filter
operation is performed by the part solution procedure, and is defined by the part data. In addition however, the
response data provide an option to apply the filter or not, for each response variable vector.
For a rotating, axisymmetric system (typically N identical, equally spaced subsystems) certain harmonics of
the solution should be zero. Hence a trim filter can be defined for relevant part solution methods. For symmetry
about a plane (such as lateral symmetry), typically asymmetric motions should be zero. The response of selected
variables can be set to zero at the end of the part solution by using the standard order reduction conventions. Such
symmetries can also imply relations between the solutions for various subsystems. These relations can be enforced
by defining the trim response of one subsystem as the child of another subsystem, as described for the response
system piece.
Degrees of freedom (including modes) can also be designated child degrees of freedom for the trim part
solution. After the equations are solved, the child solution is replaced in the trim part by the parent (or averaged
TRIM PART 81
for each time valueconstraint equations
for each solution passfor each vector
evaluate component output: total fl = xtranslate total to difference
output equationsfor each vector
evaluate component output: total yq = xtranslate total to difference
implement order reduction: fl, yq
Figure 13-1 Outline of implicit solution method.
parent) solution. For gimbal or teeter degrees of freedom, certain harmonics of the solution are set to zero as well.
This option is available for systems that must be solved as a whole, even though symmetries imply identical (with
phase shifts) motion of subsystems.
13–2 Implementation
13-2.1 No Solution Method
For the no solution method, the equations assigned to the part are not solved. The corresponding variables
then have zero kind. Such a part serves to suppress the effect of these system variables during the task.
13-2.2 Implicit Solution Method
The implicit method directly solves constraint and output equations. The algorithm has the component
evaluate the required component output vector, at a specified set of time values. In doing so, the component uses
input at the current time, and perhaps at past times as well. Since each interface variable affects other constraint
equations, it is important that the constraint equations be solved in the proper order. The order in which the
equations are solved is specified by the location of the part in the loops, and within the part by an assigned solution
pass. Figure 1 is an outline of the process for the implicit solution method. The time values at which the equations
are solved can be specified as single value, periodic, not periodic, or multiperiod.
13-2.3 Differential Equations
When implicit equations are present, they are solved as for the implicit solution method, immediately before
the forces for the differential equations are evaluated, in an order specified by an assigned solution pass. The
implicit equations are not solved when the matrices of the differential equations are being calculated. Optionally,
the implicit equations can be evaluated for a number of iterations before the solution process begins. Figure 2
is an outline of the process for evaluating the equations at a specified time. Figure 3 is an outline of the process
to calculate the matrices required by the part solution. The submatrix is obtained by analytical or numerical
perturbation of the motion or constraint equation. The last step includes solution of the constraint equations to
eliminate variables, and any modal transformations.
82 TRIM PART
evaluate equations: Fimplicit constraint equations
for each solution passfor each vector
evaluate component output: total fl = xtranslate total to difference
motion and constraint equationsfor each vector
evaluate nonlinear equationevaluate difference
add matrix times difference to equationquasistatic motion and constraint equations
for each vectorevaluate nonlinear equationevaluate difference
add matrix times difference to equation
evaluate equations: By
output equationsfor each vector
evaluate component output: total yq = xtranslate total to difference
Figure 13-2 Outline of evaluation of equations.
implicit constraint equationsfor each solution passfor each vector
evaluate component output: total fl = xtranslate total to difference
calculate matricesupdate referencecalculate modesevaluate matrices of differential equation
average over periodfor each row vector
for each column vectorevaluate submatrix
calculate part solution matrices
Figure 13-3 Outline of calculation of matrices.
13-2.4 Static Solution Method
The static solution method solves differential equations for static response. The matrices of the differential
equations are constant, either averaged over a period or evaluated at just one time. Figure 4 is an outline of the
TRIM PART 83
initialize: Fold = 0evaluate implicit constraint equations
iterationsave response: xold = xcalculate matricesfor time=0
evaluate equations: Frelax equations: F = λF + (1 − λ)Fold
save equations: Fold = Fcalculate forces of reduced equationssolve equations for degrees of freedom θcalculate response: x
test convergence: error = ‖x − xold‖ ≤ tolerance × weightoutput
for time=0evaluate equations: By
calculate response: yimplement order reduction: ξ, f0, f1, y, fl
Figure 13-4 Outline of static solution method.
process for the static solution method. Note that the order reduction is applied to all part variables, including
implicit interfaces. Here response x refers to ξ, f0, and f1; and equation F refers to A, B0, and B1. The reduced
equations may not reflect the complete solution, in fact the degrees of freedom θ need not exist at all. Hence
relaxation is applied to the original equations, and the convergence test is applied to all the response variables.
After an update of the differential equation matrices, the response difference is measured relative a new reference.
Then it takes one iteration for a consistent solution to be established, before relaxation and convergence test can
be performed.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the constraint equations are being
solved for ξ and f1, and the motion equations for f0. So the above process simply evaluates x from F at each step.
13-2.5 Harmonic Solution Method
The harmonic solution method solves differential equations for periodic response, in terms of a Fourier series.
A period system piece is identified to specify the fundamental frequency. For a time invariant part, the solution
can be obtained for more than one period.
To keep the size of the problem as small as possible at each step, the harmonics are solved separately, with
all interharmonic coupling in the forces acting on the equations. Hence the matrices of the differential equations
are constant, either averaged over a period or evaluated at just one time. While no approximation of the equations
is implied (since the matrices are added to both sides of the actual nonlinear equations), convergence requires that
these constant matrices represent the principal behavior of the equations. The equations must be assigned to the
part so this requirement is satisfied. It may also be necessary to properly define the representation of variables,
including frames, nominal motion, and interface forces. For example, across a rotating-to-nonrotating frame
84 TRIM PART
initialize: Fold = 0evaluate implicit constraint equations
iterationsave response: xold = xcalculate matricesfor each time value (over period)
evaluate equations: Frelax equations: F = λF + (1 − λ)Fold
save equations: Fold = Fcalculate and harmonically analyze forces of reduced equationssolve equations for degrees of freedom θcalculate and filter response: x
test convergence: error = ‖x − xold‖ ≤ tolerance × weightoutput
for each time value (over period)evaluate equations: By
harmonically analyze equationscalculate and filter response: y
implement order reduction: ξ, f0, f1, y, fl
Figure 13-5 Outline of harmonic solution method.
connection, the interface forces must be in the same frame as the equations of motion if their effect is to survive
the averaging operation. It is for this purpose that the structural dynamic interface has an option to use constraint
forces in connection axes, instead of common frame axes.
Figure 5 is an outline of the process for the harmonic solution method. For a time-invariant part with secondary
periods, this process is executed for each period (within the same part solution). The mean response is zero for
the secondary periods. Note that the order reduction is applied to all part variables, including implicit interfaces.
The iteration is over a full period of the solution. Here response x refers to ξ, f0, and f1; and equation F refers
to A, B0, and B1. The reduced equations may not reflect the complete solution, in fact the degrees of freedom θ
need not exist at all. Hence relaxation is applied to the original equations, and the convergence test is applied to all
the response variables. After an update of the differential equation matrices, the response difference is measured
relative a new reference. Then it takes one iteration for a consistent solution to be established, before the relaxation
and convergence test can be performed.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the constraint equations are being
solved for ξ and f1, and the motion equations for f0. So the above process simply evaluates x from F at each step.
At the end of the time step, when the response is evaluated, the results can be filtered. The following filter
options are implemented by the harmonic solution method:
a) Suppress all but pN harmonics, where N is a specified fundamental harmonic, and p an
integer; that is, suppress all harmonics not a multiple of N .
b) Suppress all but pN ± 1 harmonics.
TRIM PART 85
The response specification provides an option to apply the filter or not, for each response variable vector. The
filter option must be on in both the part data and the response data in order to be performed. Besides setting the
harmonics of the response to zero after solving the equations of motion, it is also possible to filter the degrees of
freedom when the equations are solved. The former can be used to enforce true symmetries of the system, while
the latter can be used for approximate solutions, such as a simulated gimbal or teeter hinge model. If the true
solution is nonzero, then it is not sufficient to just set the response to zero, since when the equations are being
solved the nonzero values will influence the other degrees of freedom. So to filter the degrees of freedom, it is
necessary to set the harmonics to zero and ignore the corresponding equations while the equations are being solved.
As implemented, modal degrees of freedom are not filtered in this option; and the option is not available if there
are rigid degrees of freedom in the part.
Degrees of freedom (including modes) can also be designated child degrees of freedom for the trim part
solution. After the equations are solved, the child solution for the dynamic degrees of freedom is replaced by the
parent (or averaged parent) solution. For gimbal or teeter degrees of freedom, all harmonics of the solution except
pN ± 1 are set to zero as well. The response and mode set specifications provide an option to apply the child
transformation or not, for each degree of freedom vector. The child transformation option must be on in both the
part data and the response or modes data in order to be performed.
13-2.6 Time Finite Element Solution Method
The time finite element solution method solves differential equations for periodic response, in terms of a
Fourier series (as shape functions). The harmonics of the equations of motion are solved for the harmonics of
the response, using a Newton-Raphson algorithm. A period system piece is identified to specify the fundamental
frequency. For a time invariant part, the solution can be obtained for more than one period.
The matrices of the differential equations are constant, either averaged over a period or evaluated at just one
time. While no approximation of the equations is implied (since the matrices are added to both sides of the actual
nonlinear equations), convergence requires that these constant matrices represent the principal behavior of the
equations. The equations must be assigned to the part so this requirement is satisfied. It may also be necessary
to properly define the representation of variables, including frames, nominal motion, and interface forces. For
example, across a rotating-to-nonrotating frame connection, the interface forces must be in the same frame as the
equations of motion if their effect is to survive the averaging operation. It is for this purpose that the structural
dynamic interface has an option to use constraint forces in connection axes, instead of common frame axes.
Figure 6 is an outline of the process for the time finite element solution method. For a time-invariant part with
secondary periods, this process is executed for each period (within the same part solution). The mean response
is zero for the secondary periods. Note that the order reduction is applied to all part variables, including implicit
interfaces. The iteration is over a full period of the solution. Here response x refers to ξ, f0, and f1; and equation
F refers to A, B0, and B1. The reduced equations may not reflect the complete solution, in fact the degrees of
freedom θ need not exist at all. Hence relaxation is applied to the original equations, and the convergence test is
applied to all the response variables.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the constraint equations are being
solved for ξ and f1, and the motion equations for f0. So the above process simply evaluates x from F at each step.
86 TRIM PART
initialize: Fold = 0; evaluate R; C from H , P = 0evaluate implicit constraint equations
iterationsave response: xold = xcalculate matricesidentify derivative matrix
optional perturbation identificationperturb each element of u: δui = Δ × weighti
evaluate R (without relaxation of F )calculate D, P = 1/δu2
i
calculate gain matrix: C = λND−1
optional recursive identificationupdate P , C
increment degrees of freedom: δu = −CRevaluate R
calculate and filter response: xfor each time value (over period)
evaluate equations: Frelax equations: F = λF + (1 − λ)Fold
save equations: Fold = Fcalculate and harmonically analyze forces of reduced equationscalculate equation residual R
test convergence: error = ‖x − xold‖ ≤ tolerance × weightoutput
for each time value (over period)evaluate equations: By
harmonically analyze equationscalculate and filter response: y
implement order reduction: ξ, f0, f1, y, fl
Figure 13-6 Outline of time finite element solution method.
In each iteration, when the response is evaluated, the results can be filtered. The following filter options are
implemented by the time finite element solution method:
a) Suppress all but pN harmonics, where N is a specified fundamental harmonic, and p an
integer; that is, suppress all harmonics not a multiple of N .
b) Suppress all but pN ± 1 harmonics.
The response specification provides an option to apply the filter or not, for each response variable vector. The filter
option must be on in both the part data and the response data in order to be performed.
Degrees of freedom (including modes) can also be designated child degrees of freedom for the trim part
solution. After the equations are solved, the child solution for the dynamic degrees of freedom is replaced by the
parent (or averaged parent) solution. For gimbal or teeter degrees of freedom, all harmonics of the solution except
pN ± 1 are set to zero as well. The response and mode set specifications provide an option to apply the child
transformation or not, for each degree of freedom vector. The child transformation option must be on in both the
TRIM PART 87
part data and the response or modes data in order to be performed.
13-2.7 Response Characteristics
The solution procedure solves for the response difference (the motion relative some prescribed nominal and
reference). The difference kind follows from the part solution procedure:
a) No solution: Zero kind.
b) Implicit: Single value, time domain periodic, time domain not periodic, or time domain multiperiod; depending
on the specification for the implicit solution.
c) Static: Single value. Old response is required for all degrees of freedom and constraint variables of differential
equations.
d) Harmonic and time finite element: Harmonics for solution of differential equations, time domain periodic for
any implicit equations. Derivatives are required for degrees of freedom. Old response is required for all degrees
of freedom and constraint variables of differential equations.
13–3 Theory
13-3.1 Implicit Solution Method
The general form of an input/output constraint equation has been defined as follows:
0 = Bl = x − fl
The basic approach for part solutions is to linearize and solve for the difference. Hence find G = ∂Bl/∂fl, and
add to both sides of the equation, which becomes
Gfl diff = Bl + Gfl diff
with the solution
fl diff = G−1(Bl + Gfl diff)
This basic approach leads to the algorithm for the implicit solution method, as follows. Take G = I (which is true
if x does not depend on fl). Thenfl diff = Bl + fl diff
= x − fl + fl diff
= x − fl nom − fl ref
This is equivalent tofl total = x
fl diff = fl total − fl nom − fl ref
which is the approach implemented. The analysis requires that x not depend on fl; otherwise this approach would
not converge. Translating the total fl or yq to the difference depends on the convention used for the nominal and
reference, and may not involve just scalar subtraction. Only the variable response type need be considered, since
the rigid response type is not used for input/output interfaces, or for output. The time values at which the equations
are solved can be specified as single value, periodic, not periodic, or multiperiod:
88 TRIM PART
a) Single value: Solved at one time. Often the solution is in fact independent of time.
b) Periodic: Solved at J times tj , j = 1 to J . Time is actually defined in terms of azimuth ψj = Ωtj + ψ0, where
the frequency Ω is obtained from some period. Hence the equations are solved at ψj = j Δψ, Δψ = 2π/J (if Ωis negative, then Δψ = −2π/J); then tj = (ψj − ψ0)/Ω.
c) Not periodic: Solved at K + 1 times tk = tB + k Δt, for k = 0 to K, Δt = (tE − tB)/K.
d) Multiperiod: Solved at K + 1 times tk = tB + k Δt, for k = 0 to K, Δt = (tE − tB)/K. Time is actually
defined in terms of azimuth ψj = Ωtj + ψ0, where the frequency Ω is obtained from some period. Hence the
equations are solved at ψj = j Δψ, Δψ = 2π/J , where J is the number of azimuth steps per revolution (if Ωis negative, then Δψ = −2π/J). The time range is defined by the begin and end azimuth steps, jB and jE . So
tB = −ψ0/Ω + jBΔt, tE = −ψ0/Ω + jEΔt; Δt = Δψ/Ω; and K = jE − jB . Although the time is specified
in terms of a period, the response is considered non-periodic.
In general, the equations are solved at times tk = t0 +k Δt, for k = Kmin to Kmax; with the parameters calculated
according to the following table.
kind Kmin Kmax t0 Δt
single value 1 1 t 0periodic 1 J −ψ0/Ω 2π/|Ω|Jnot periodic 0 K tB (tE − tB)/Kmultiperiod 0 jE − jB −ψ0/Ω + jBΔt 2π/|Ω|J
13-3.2 Differential Equations
The motion and constraint equations are linearized about the current reference solution. For trim the matrices
are constant, either averaged over a period or evaluated at one time. Possibly the reference will be updated and the
matrices recalculated during the solution process. The product of the equation matrices and response difference is
added to both sides of the nonlinear equations (so the differential equations are still exact). The resulting equations
have the following form: ⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ =
⎛⎜⎝ A
B1
B0
⎞⎟⎠y = By
The constraint equations and interface variables fl are partitioned as follows:
a) f0, all structural dynamic no-residual interfaces;
b) f1, other interfaces, either structural dynamic full-residual or input/output.
The zeros in the above equations arise from the properties of a structural dynamic, no-residual interface. The
assumption of full-residual means that G1 is full rank; probably the diagonal blocks of G1 are the unit matrix
for input/output interfaces. Note that ξ includes any frame degrees of freedom in the part (rigid body degrees
TRIM PART 89
of freedom of frame components); except that the structural dynamic constraint equations include frame motion
only up to (not including) the common parent frame of the interface. The output equations usually can be put in
either an implicit part, or in some differential equation part. The choice affects the characteristics of the response
difference, such as time domain or harmonics.
The matrices H and φx1 can be dynamic, meaning that the matrices depend on the time derivatives of ξ.
Dynamic matrices can be zero, first, or second order: depend on displacement, or on displacement and velocity, or
on displacement and velocity and acceleration. If the equations are time-varying, the derivatives of the no-residual
constraint equation are required, meaning the derivatives of φx0 and B0. The matrices are partitioned according
to the vectors of ξ, f1, and f0. So they can all be sparse. Any submatrix that is zero because the equation does
not depend on a vector is neither calculated nor stored. The dictionary describes all matrices used by the part,
including their partition by vector or element, their dynamic order, and the requirement for derivatives.
For a part with only structural dynamic components and interfaces, the motion equations will be second order,
φx1 will not be dynamic, and symmetry is expected. Symmetry might not be found however, for several reasons:
the use of frame degrees of freedom; the use of a structural dynamic interface force in connection axes; or because
the solution has not converged, so the component is not in equilibrium. Symmetry is never assumed in the solution
procedure however, since it is unlikely to be found in the general case with components and interfaces that are not
structural dynamic kind.
The constraint equations are solved to eliminate part variables. This elimination is accomplished by means
of a transformation of the degrees of freedom ξ and interface variables f , designed to decouple the equations. The
resulting reduced differential equations can be solved for a subset of the degrees of freedom, and then the other
part variables evaluated as required. Consider the constraint equations
[φ G
](ξf
)= B
The required transformation is (ξf
)=
[ψ χ
](ηζ
)such that [
φ G][
ψ χ]
=[0 I
]Note that ζ = B. The following part variables are eliminated by solving the constraint equations:
a) The no-residual structural dynamic constraint equations are solved to eliminate degrees
of freedom ξb. These degrees of freedom are a subset of ξ, one element identified for each
element of f0. Thus the length of ξb equals the length of f0.
b) The remaining constraint equations are solved to eliminate the interface variables f1.
Thus the number of degrees of freedom is reduced by solving no-residual constraints (and the solution for the
interface forces is decoupled from the equations of motion). Solving full-residual or input/output constraints does
not reduce the number of degrees of freedom. The degrees of freedom are partitioned as (ξb, ξc). Typically ξb
are the component rigid body degrees of freedom, plus elastic or joint degrees of freedom for any multiple load
paths. So ξc are the remaining elastic and joint degrees of freedom, plus system rigid degrees of freedom. The
90 TRIM PART
transformation obtained by solving the constraint equations is:
⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ =
⎡⎢⎣ ψφ1 0 0 χφ0
ψG1 0 G−11 χG0
0 I 0 0
⎤⎥⎦⎛⎜⎜⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎟⎟⎠where here η1 = ξc, η0 = f0, ζ0 = B0, and ζ1 = B1. Introducing this transformation, the part equations are:⎡⎢⎢⎢⎣
K1 0 0 LTf
0 0 0 I
0 0 G−11 0
Lx I 0 K3
⎤⎥⎥⎥⎦⎛⎜⎜⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎟⎟⎠ =
⎛⎜⎜⎜⎝A1
B0
G−11 B1
A0
⎞⎟⎟⎟⎠The second and third equations give ζ0 (probably zero) and ζ1. The first equation is the reduced differential
equation for the degrees of freedom η1 = ξc. The fourth equation is the solution for the constraint forces of the
no-residual interfaces, η0 = f0. The equation for f0 has been completely decoupled; for a linear system, the
internal forces of no-residual interfaces can be ignored. This transform is not unique. With ξb identified, the
degrees of freedom are partitioned as (ξb, ξc), and correspondingly the no-residual constraint equations:
φx0 =[φ0b φ0c
]It is assumed that the interfaces are independent, and the degrees of freedom ξb properly identified, so φ0b is
full-rank. Thus: [ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]The derivatives of φx0 give the derivatives of the transformation:[
ψφ1 χφ0
]= −χφ0 φx0
[ψφ1 χφ0
][ψφ1 χφ0
]= (−χφ0 φx0 + 2χφ0 φx0 χφ0 φx0)
[ψφ1 χφ0
]Note that the definition of χφ0 means that only the top partitions of these derivatives (for ξb) are nonzero. The
derivatives are zero for time-invariant equations. Since symmetry is not assumed, the transpose problem must also
be solved: from
φf0 =[φ0b φ0c
]obtain [
ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]and [
ψG1 χG0
]= −G−T
1 φf1
[ψφ1 χφ0
]Introducing these transforms produces the equations[
K1 LTf
Lx K3
] (η1
ζ0
)+
(0
η0
)=
[ψT
φ1 ψTG1
χTφ0 χT
G0
] (A
B1
)
where [K1 LT
f
Lx K3
]=
[ψT
φ1
χTφ0
] (H − φT
f1G−11 φx1
) [ψφ1 χφ0
]
TRIM PART 91
with η1 = ξc, η0 = f0, ζ0 = B0, and ζ1 = B1. The first equation is the reduced equation of motion for the
remaining degrees of freedom η1 = ξc. The second equation is the solution for the no-residual constraint forces
η0 = f0, which has been decoupled by the transformation.
At this point, transformations are introduced: η1 = Φnθ, and the equations for η1 are multiplied by ΦTn .
First the modal transformation Φ is applied, then any transforms T identified for the part (multiblade coordinate
or rotating-to-nonrotating):
Φn = ΦT
(subscript “n” for nonrotating; T transforms from nonrotating to rotating coordinates). If there are any transforms,
then derivatives are required for T and hence Φn. Thus θ are the modal degrees of freedom (θ = η1 if there is
no transform). The part can have one or more mode sets (or none). The constant matrix Φ is block diagonal,
partitioned by mode set; the not-mode block is just the unit matrix I . Modal structural damping is added, as a
diagonal viscous damping matrix D with elements calculated from the modal mass m and spring k, and an input
structural damping factor g: d = g√
mk, so g is twice the critical damping ratio. The transform T can be applied
to degrees of freedom or modes. The matrix T is not actually constructed. Rather the operation implied by T is
performed directly on Φ (and the modal damping matrix), as defined in the description of the transforms. Note that
the transform T is time-varying, even if the matrices of the differential equations are constant. Thus the reduced
equations of motion are transformed to
H = ΦTnK1Φn + TT D
d
dtT
This transformation (without truncation) does not introduce any approximation, as long as Φ is a complete matrix.
For the trim parts, it is assumed that the resulting H is time-invariant. Next the degrees of freedom θ are partitioned
by order reduction:
a) dynamic θk, solve complete equations;
b) quasistatic θl, truncate dynamic terms;
c) zero θz , truncate dynamic and static terms.
The order reduction is specified for the elements of the degrees of freedom ξ, or for the modal elements, or for the
elements of the transformed variables. The quasistatic θl must be elastic degrees of freedom (nonsingular spring).
The zero θz are handled by omitting or ignoring the equations (hence ignoring the submatrices), and setting the
response to zero (zero kind). The corresponding partition of the reduced equations of motion is:
H =
⎡⎣Hkk Hkl Hkz
Hlk Hll Hlz
Hzk Hzl Hzz
⎤⎦The quasistatic reduction is implemented by neglecting the mass and damping of Hll; then introducing a transfor-
mation that decouples the spring matrix in H:
θ =
⎛⎝ θk
θl
θz
⎞⎠ = Q
⎛⎝ θk
θl
θz
⎞⎠Q =
[Qk Ql Qz
]=
⎡⎣ I 0 0−K−1
ll Klk I 00 0 I
⎤⎦
92 TRIM PART
and multiplying the equations by
QT =
⎡⎢⎣QT
k
QTl
QTz
⎤⎥⎦ =
⎡⎢⎣I −KklK
−1ll 0
0 I 0
0 0 I
⎤⎥⎦(while the notation is suggested by structural dynamic problems, in general QT is not the transpose of Q; the
time derivatives of Q are ignored). The matrix Tlk = −K−1ll Klk is used for the back-transformation. For time-
varying equations, this transformation is applied at each time step, ignoring time derivatives. With the quasistatic
approximation, the equations of motion take the form:[hkk 00 Kll
] (θk
θl
)=
(Ak
AlQS
)where
hkk = QTk HQk
(excluding the mass and damping of Hll). Two approximations have been made. The first approximation is that the
θl variables and equations are quasistatic. The velocity and acceleration of θl are always zero. This is accomplished
by having separate velocity and acceleration in the response (not obtaining them from the displacement). When
the quasistatic equations are evaluated, AlQS, it is also necessary to ignore the velocity and acceleration of θk.
The second approximation is that the off-diagonal mass and damping terms in the transformed equations can be
neglected. This approximation follows from the quasistatic assumption if there are no rigid degrees of freedom
in θk (nonsingular spring Kkk). In the presence of θk rigid degrees of freedom, there are inertial relief effects on
the residual. Here it is assumed that there are no rigid degrees of freedom in θk, or the inertial relief is ignored.
Solving the equations for θl introduces a residual; a no-residual option is available, for which θl = 0.
A part can have rigid degrees of freedom that are not eliminated by a constraint, hence remain in the reduced
degrees of freedom θk. In such a case the spring matrix kkk in hkk is singular, and the trim solution may require
special treatment to find the mean or zero-harmonic response. Partition the equations hkkθk = Ak into rigid and
elastic terms, for the mean or zero-th harmonic:[krr krs
ksr kss
] (θr
θs
)=
(Ar
As
)The trim operating condition defines the mean rigid response, so here θr = 0 for the mean difference. Then the
equations can be solved for the elastic response
θs = k−1ss As
and the rigid equations can be evaluated
Mr = Ar − krsθs
The mean rigid equation Mr is available for the trim loop solution procedure. There should be some trim loop
that finds the solution for which Mr = 0; otherwise the system is not actually in equilibrium. To implement this
procedure, the inverse h−1kk is for the mean or zero-th harmonic stored as:
k−1kk =
[I −krsk
−1ss
0 k−1ss
]
TRIM PART 93
so the solution for the zero-th harmonic of θk produces(θr0
θs0
)=
(Mr
k−1ss As
)Then θr0 is copied to Mr; and finally θr0 is set to zero.
After all these transformations, the part differential equations take the form:
hkkθk = Ak
Kllθl = AlQS
where the forces required are obtained from A, B1, and B0:
(Ak
Al
)=
(QT
k
QTl
)ΦT
n
[ψT
φ1 ψTG1 −LT
f
]⎛⎝ AB1
B0
⎞⎠=
[Tkξ Tk1 Tk0
Tlξ Tl1 Tl0
]⎛⎝ AB1
B0
⎞⎠The transformation TT (in ΦT
n ) takes the forces from rotating to nonrotating, in the time domain, at each time step.
The quasistatic forces AlQS are evaluated ignoring the velocity and acceleration of θk. These equations must be
solved for the degrees of freedom θk and θl (or θl = 0 for the no-residual option). The back-transformation of the
quasistatic reduction gives
θl = θl + Tlkθk
Then the response is evaluated from the following relations:
ξ =[ψφ1Φn χφ0
](θ
B0
)=
[TξθT TξB
](θ
B0
)
f0 = −LxΦnθ +[χT
φ0 χTG0 −K3
]⎛⎝ AB1
B0
⎞⎠= T0θTθ +
[Tfξ Tf1 Tf0
]⎛⎝ AB1
B0
⎞⎠ = T0θTθ + Δf0
f1 =[G−1
1 −G−11 φx1
](B1
ξ
)=
[T1B T1ξ
](B1
ξ
)The transformation T takes the degrees of freedom θ from nonrotating to rotating; in the frequency domain for the
harmonic and time finite element solutions. The appropriate part solution method must deal with these equations.
For nonlinear problems, the part solution method is iterative. Iterative methods have a relaxation factor (and other
parameters) to improve convergence, and a tolerance to measure convergence.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the above relations are simply an
94 TRIM PART
inversion of the original differential equations. Specifically, A, B1, and B0 are evaluated (and relaxed); then the
constraint equations are solved for ξ and f1, and the motion equations for f0 (and convergence tested). The result
is: ⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ =
⎡⎢⎣ 0 0 TξB
0 T1B T1ξTξB
Tfξ Tf1 Tf0
⎤⎥⎦⎛⎜⎝ A
B1
B0
⎞⎟⎠ = T
⎛⎜⎝ A
B1
B0
⎞⎟⎠where T is just the inverse of the original equations. The choice of the part solution method affects the characteristics
of the response difference, such as time domain or harmonics.
13-3.3 Trim Child Solution
Degrees of freedom (including modes) can be designated child degrees of freedom for the trim part solution.
After the equations are solved, the child solution for some of the dynamic degrees of freedom θk is replaced by the
parent (or averaged parent) solution. Consider a set of N degrees of freedom, including the parent variable β and
the child variables θ. If symmetries imply identical motion of subsystems in the part, then θ(ψ) = β(ψ + Δψ)with phase shift Δψ. For example, an axisymmetric system with N equally-spaced subsystems would have
Δψ = m 2π/N for the m-th subsystem (m = 1 to N ). With a Fourier series representation of the solution, as in
the harmonic and time finite element methods, the parent solution gives the child motion as follows:
θ0 = β0(θnc
θns
)=
[cos nΔψ sinnΔψ
− sinnΔψ cos nΔψ
] (βnc
βns
)Optionally the parent β can be the average of the solution for all N degrees of freedom θ:
β0 =1N
∑θ0(
βnc
βns
)=
1N
∑ [cos nΔψ − sinnΔψsinnΔψ cos nΔψ
] (θnc
θns
)with the child motion evaluated from this parent as above.
A gimbal mechanism has two degrees of freedom, β and θ, and N subsystems. If symmetries imply identical
motion of subsystems in the part, then βm = β cos Δψ + θ sin Δψ must be a function of ψm = ψ + Δψ =ψ + m2π/N . Hence only the pN ± 1 harmonics are nonzero, and(
θnc
θns
)=
[0 1−1 0
] (βnc
βns
)n = pN + 1
=[
0 −11 0
] (βnc
βns
)n = pN − 1
Optionally the parent can be the average of the solution for both degrees of freedom:(βnc
βns
)average
=12
(βnc − θns
βns + θnc
)n = pN + 1
=12
(βnc + θns
βns − θnc
)n = pN − 1
with the β and θ motion evaluated from this average.
TRIM PART 95
A teeter mechanism has one degree of freedom, β, and N = 2 subsystems. If symmetries imply identical
motion of subsystems in the part, then βm = (−1)mβ must be a function of ψm = ψ + Δψ = ψ + mπ. Hence
only the odd harmonics (pN ± 1 harmonics) are nonzero.
13-3.4 Static Solution Method
The static solution method solves differential equations for the response difference. It is assumed that the
equations are time-invariant (constant) and that the solution is steady, so the response can be represented by a
single value. The quasistatic approximation is not a meaningful distinction here, so θl does not exist. The reduced
equations of motion consist of static equations for θk:
Kkkθk = Ak
The equations to be solved take the form Hu = R, where H = K is a static operator (spring). In general R
depends on u, and the problem is nonlinear. These equations are solved by direct inversion. By assuming a static
solution, the differential equations are actually algebraic equations, to be solved for the response. These equations
take the form x = G(x), where x is the force R. In this form a successive substitution method is applicable.
The algorithm of the static solution method involves an iteration. At each iteration, the equation force R is
evaluated. To ensure convergence of nonlinear problems, this force is relaxed:
R = λR + (1 − λ)Rold
where the old force is from the previous iteration. Rold is initialized to zero at the beginning of the system
solution, so with λ �= 1 the part solution has asymptotic convergence for constant force R. Figure 7 describes two
approaches for handling Rold. The solution for the degrees of freedom is u = K−1R. At the end of each iteration,
convergence is tested. Since the correct solution for u is not known, convergence must be tested by comparing the
values of two successive iterations:
error = ‖u − uold‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically the absolute value). The reduced
equations may not reflect the complete solution. Hence as implemented, the relaxation is applied to the original
equations (A, B1, B0) and the convergence test is applied to all the response variables (ξ, f1, f0).
13-3.5 Harmonic Solution Method
The harmonic solution method solves constant-coefficient differential equations for the response difference.
It is assumed that the solution is periodic, so the response can be represented by a Fourier series. If the actual
equations are time-varying (periodic), the matrices must be averaged. By assuming time-invariant matrices, the
equations can be solved separately for each harmonic of the response. A frequency domain approach not only
enforces periodicity of the solution, but allows the use of a large time step, if the solution is adequately described
by a small number of harmonics.
The reduced equations of motion consist of differential equations for θk, and static equations for θl:
hkkθk = Ak
Kllθl = AlQS
96 TRIM PART
initial force zero (implemented):constant Fnew gives Fn = (1 − (1 − λ)n)Fnew
initialize: Fold = 0iteration
save response: xold = xevaluate equations: Fnew from xrelax equations: F = λFnew + (1 − λ)Fold (F = λFnew first time)save equations: Fold = Fcalculate response: x from Ftest convergence
initial force not exist (not implemented):constant Fnew gives one step convergence, Fn = Fnew
initialize: Fold not existiteration
save response: xold = xevaluate equations: Fnew from xrelax equations: F = λFnew + (1 − λ)Fold (F = Fnew first time)save equations: Fold = Fcalculate response: x from Ftest convergence
Figure 13-7 Approaches for handling the old force.
The number of harmonics retained in the solution for θl can be less than the number of harmonics in θk. For
example, using just the mean in θl may be consistent with the quasistatic approximation. The matrices of the
equations of motion might not include all important damping sources, since the effects of any implicit constraint
equations remain in the force Ak. To improve convergence of the method, an estimate of the damping can be
added to both sides of the equation of motion for θk, using a diagonal damping matrix D which has elements
calculated from the diagonal mass and spring terms of hkk: d = 2ζ√
mk, where ζ is an input critical damping
coefficient. Note that the damping term is added to Ak before the harmonic analysis is performed. Since the
algorithm treats this estimated damping exactly the same on both sides of the equation, it is not numerical damping
of the solution: it affects convergence but not the final result. The equations to be solved take the form Hu = R,
where H = H(d/dt) is a differential operator (spring, damper, and mass) for θk and H = K is a static operator
(spring) for θl. In general R depends on time and on u and its derivatives, and the problem is nonlinear.
Azimuth and time are related by ψ = Ωt + ψ0, where the frequency Ω is obtained from the part solution
period. A cosine-sine Fourier series representation of the solution for u is assumed:
u = u0 +N∑
n=1
unc cos nψ + uns sinnψ
It follows that all solution variables of the part (ξ, f1, f0, and y) are represented by a Fourier series. In the derivation
that follows, a complex Fourier series representation is assumed for simplicity, although the analysis actually uses
a cosine-sine series. The force Rj = R(ψj) is evaluated at azimuth steps ψj = j Δψ, Δψ = 2π/J , for j = 1 to
TRIM PART 97
J (if Ω is negative, then Δψ = −2π/J). The corresponding time steps are tj = (ψj − ψ0)/Ω. The harmonics
Rn are obtained from Rj over one period by:
Rn =Kn
J
∑e−inψj Rj
The factor Kn determines the interpolation option: Kn = 1 for Fourier interpolation, and
Kn =(
J
πnsin(
πn
J))2
for linear interpolation (harmonics of a linear interpolation between the data at Rj). The harmonics obtained by
Fourier interpolation represent the force as a function of time that matches the discrete points Rj at ψj exactly,
but the behavior is uncontrolled in between. The harmonics obtained by linear interpolation represent a smoothed
curve, close to the discrete points. Linear interpolation of R is usually required for convergence. The harmonics
of the left-hand-side of the equation Hu are obtained by Fourier analysis, not the linear interpolation operation
(otherwise Kn would simply factor from the equations). Hence when linear interpolation of R is used, the two
sides of the equation are not being treated identically. The difference is small for harmonic number n and number
of azimuth steps J such that Kn is nearly one. To improve convergence of the method, an estimate of the damping
can be added to both sides of the equation of motion:
Hnun = [H(in) + inKnD]un = (R + Du)n = Rn
Note that the damping term is added to R before the harmonic analysis is performed. The factor of Kn on the
left-hand-side is included so that this added damping is treated exactly the same on both sides of the equation.
When transforms are involved, the damping is added for the rotating degrees of freedom, so in the nonrotating
equations the term Du becomes
(TT D
d
dt(Tu)
)n
=(TT DTu + TT DTu
)n
=(DΔ
( d
dt+ E1
)u)n
= KnDΔ(in + E1
)un
The damping matrix D factors since it is diagonal, and the damping is the same for all variables in a transform.
The transform piece defines the constant matrices Δ = TT T and E1 = T−1T . By assuming a Fourier series
representation of the solution, the differential equations are converted to algebraic equations, to be solved for the
harmonics. These equations take the form x = G(x), where x is the force Rj over a period. In this form a
successive substitution method is applicable.
The algorithm of the harmonic solution method involves an iteration. Each iteration finds the solution over a
period, hence has a time loop. At each time step over the period, the equation force Rj is evaluated. To ensure
convergence of nonlinear problems, this force is relaxed:
Rj = λRj + (1 − λ)Rjold
where the old force is from the previous iteration. Rold is initialized to zero at the beginning of the system
solution, so with λ �= 1 the part solution has asymptotic convergence for constant force R. Figure 7 describes
two approaches for handling Rold. Then the damping term is added to Rj , and the harmonics Rn evaluated. The
solution for the degrees of freedom is un = H−1n Rn, or in terms of the cosine-sine coefficients:(
unc
uns
)=
[ReH−1
n ImH−1n
−ImH−1n ReH−1
n
] (Rnc
Rns
)
98 TRIM PART
If some of the degrees of freedom are being filtered for harmonic n, then only the unfiltered submatrix of Hn
is inverted, and expanded to the full matrix by filling the filtered rows and columns with zeros. The harmonics
un can be recalculated at every time step, or at the end of each period. At the end of each iteration (the end of
each period), convergence is tested. Since the correct solution for u is not known, convergence must be tested by
comparing the values of two successive iterations:
error = ‖u − uold‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically the rms value of the response). The
reduced equations may not reflect the complete solution. Hence as implemented, the relaxation is applied to the
original equations (A, B1, B0) and the convergence test is applied to all the response variables (ξ, f1, f0).
13-3.6 Time Finite Element Solution Method
The time finite element solution method solves constant-coefficient differential equations for the response
difference. It is assumed that the solution is periodic, so the response can be represented by a Fourier series (as
shape functions). If the actual equations are time-varying (periodic), the matrices must be averaged. A frequency
domain approach not only enforces periodicity of the solution, but allows the use of a large time step, if the solution
is adequately described by a small number of harmonics.
The reduced equations of motion consist of differential equations for θk, and static equations for θl:
hkkθk = Ak
Kllθl = AlQS
The number of harmonics retained in the solution for θl can be less than the number of harmonics in θk. For
example, using just the mean in θl may be consistent with the quasistatic approximation. The matrices of the
equations of motion might not include all important damping sources, since the effects of any implicit constraint
equations remain in the force Ak. In order to initialize the derivative matrix, an estimate of the damping can be
introduced, using a diagonal damping matrix De which has elements calculated from the diagonal mass and spring
terms of hkk: d = 2ζ√
mk, where ζ is an input critical damping coefficient. Since the algorithm does not change
the equations of motion, this damping estimate is not numerical damping of the solution: it affects convergence
but not the final result.
The equations to be solved take the form Hu = R or R = R−Hu = 0, where H = H(d/dt) is a differential
operator (spring, damper, and mass) for θk and H = K is a static operator (spring) for θl. In general R depends on
time and on u and its derivatives, and the problem is nonlinear. For a periodic structural dynamic system (period
T ), Hamilton’s equation is
0 = δ
∫ T
0
L dt =∫ T
0
[δuT Mu + δuT (R − Cu − Ku)
]dt
Integrating the kinetic energy term by parts, and using the assumption of periodicity, gives:
0 =∫ T
0
δuT [R − (Mu + Cu + Ku)] dt =∫ T
0
δuT [R − Hu] dt =∫ T
0
δuT R dt
The finite element method expands the response as u(t) = h(t)T q, where h are the shape functions in time and q
are the finite element variables. Then the equations
0 =∫ T
0
hT R dt
TRIM PART 99
are to be solved for q, here by a Newton-Raphson algorithm. As with spatial finite elements, the period can be
divided into Nt elements, with polynomial shape functions over each element:
ui(t) = h(s)qi
s =t − ti−1
ti − ti−1
for i = 1 to Nt. Typically h are Lagrange polynomials, and Gaussian integration is used over each element. The
variables qi are identified so u is continuous at the ends of each element, and from the end to the beginning of the
period. The disadvantage of this approach is that many variables q are required even to represent motion that only
contains few harmonics. Hence here harmonics are used instead for the shape functions. Then the variables q are
the coefficients in a Fourier series representation of u, and
0 =∫ T
0
hT R dt =∫ T
0
hT [R − Hu] dt
are the harmonics of the equations of motion. The time finite element solution method thus is similar to the
harmonic solution method in many respects.
The equations to be solved take the form R = R − Hu = 0, where H is a time invariant operator (dynamic
or static). Azimuth and time are related by ψ = Ωt+ψ0, where the frequency Ω is obtained from the part solution
period. A cosine-sine Fourier series representation of the solution for u is assumed:
u = u0 +N∑
n=1
unc cos nψ + uns sinnψ
It follows that all solution variables of the part (ξ, f1, f0, and y) are represented by a Fourier series. In the derivation
that follows, a complex Fourier series representation is assumed for simplicity, although the analysis actually uses
a cosine-sine series. The force Rj = R(ψj) is evaluated at azimuth steps ψj = j Δψ, Δψ = 2π/J , for j = 1 to
J (if Ω is negative, then Δψ = −2π/J). The corresponding time steps are tj = (ψj − ψ0)/Ω. The harmonics
Rn are obtained from Rj over one period by:
Rn =Kn
J
∑e−inψj Rj
The factor Kn determines the interpolation option: Kn = 1 for Fourier interpolation, and
Kn =(
J
πnsin(
πn
J))2
for linear interpolation (harmonics of a linear interpolation between the data at Rj). Then the equation residuals
are evaluated:
Rn = Rn − Hnun
or in terms of the cosine-sine coefficients:(Rnc
Rns
)=
(Rnc
Rns
)−
[ReHn ImHn
−ImHn ReHn
] (unc
uns
)By introducing time finite elements, the differential equations are converted to algebraic equations. These equations
take the form f(x) = 0, where x are the harmonics of the motion and f are the harmonics of the residual equations:
x =
⎛⎝ u0
unc
uns
⎞⎠ f =
⎛⎝ R0
Rnc
Rns
⎞⎠
100 TRIM PART
The solution x = un is required, such that f = Rn = 0. In this form a Newton-Raphson method is applicable.
The Newton-Raphson algorithm is based on a Taylor series expansion of f(x) = 0. Including a relaxation factor
and using a derivative matrix D, the iteration is:
xm+1 = xm − Cf(xm) = xm − λND−1f(xm)
The relaxation factor λN is defined separately from the relaxation factor for the forces (described below). The
derivative matrix is an estimate of f ′:
D ∼= ∂Rn
∂un=
∂Rn
∂un− Hn
The derivative matrix D is obtained by an identification process, either perturbation or recursive. The recursive
identification can use an exponential window method, or Broyden’s formula. In the absence of the perturbation
identification, D is initialized using the matrix Hn:
D = −
⎡⎣H0 0 00 ReHn ImHn
0 −ImHn ReHn
⎤⎦Here Hn = H(in)+Dein, including the damping estimate De in order to avoid singularities at resonant harmonics.
With this result for D, the iteration gives
un(m+1) = unm + λNH−1n (Rn − Hnunm) = λNH−1
n Rn + (1 − λN )unm
which is similar to the harmonic method. Here identification of the derivative matrix fully couples the harmonics.
Optionally the coupling of the harmonics in D can be suppressed, for comparison with the harmonic solution
method, or to reduce numerical problems in the inversion of the derivative matrix obtained by perturbation identi-
fication.
The perturbation identification can be performed at the beginning of the iteration, and optionally every MPID
iterations thereafter. The perturbation identification can also be omitted. The iterations can be counted in the part
solution, or in the system solution, to determine when to repeat the perturbation identification. The derivative
matrix is calculated from a one-step finite-difference expression (first order). Each element xi of the vector x is
perturbed, one at a time, giving the i-th column of D:
D =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi)
δxi· · ·
]Alternatively, a two-step finite-difference expression (second order) can be used:
D =[· · · ∂f
∂xi· · ·
]=
[· · · f(xi + δxi) − f(xi − δxi)
2δxi· · ·
]With this procedure, the accuracy of D (hence convergence) can be affected by both the magnitude and sign of the
the perturbation (only the magnitude for a two-step difference). The perturbation magnitude is calculated as the
product of a part parameter Δ, and a weight that corresponds to the degree of freedom element or the mode. The
same perturbation magnitude is used for all harmonics of a variable. The recursive identification can be performed
at each iteration. An iteration makes a change Δx, which then produces a change Δf . These increments contain
TRIM PART 101
new information about the value of the local derivative f ′(x), which can be used to update the derivative matrix
D. The exponential window algorithm for recursive identification is as follows:
a = Pm−1Δxm/α
km = a/(1 + ΔxTm a)
Pm = Pm−1/α − akTm
Dm = Dm−1 + (Δfm − Dm−1Δxm)kTm
where α is the weighting factor α (0 < α < 1), and P is the error variance matrix. The perturbation identification
initializes P to the diagonal matrix
P0 =
⎡⎢⎢⎣. . .
1/(Δxi)2. . .
⎤⎥⎥⎦The calculation of P may diverge in this algorithm. In such a case, the perturbation identification can be performed
more often, to reinitialize P . Broyden’s formula provides an alternate recursive identification method. This method
requires that the updated derivative matrix satisfy DmΔxm = Δfm. The identification algorithm is as follows:
km = Δxm/(ΔxTmΔxm)
Dm = Dm−1 + (Δfm − Dm−1Δxm)kTm
This result is one possible solution that meets the requirement. In order to avoid inverting D, the gain matrix
C = λND−1 is updated instead. From
(A + BCT )−1 = A−1 − A−1B(I + CT A−1B)−1CT A−1
it follows that
Cm = λND−1m = λN (Dm−1 + δmkT
m)−1
= λND−1m−1 − λND−1
m−1δm
(1
1 + kTmD−1
m−1δm
)kT
mD−1m−1
= Cm−1 − Cm−1δm
(1
λN + kTmCm−1δm
)kT
mCm−1
where Cm−1δm = λND−1m−1(Δfm − Dm−1Δxm) = Cm−1Δfm − λNΔxm.
The algorithm of the time finite element solution method involves an iteration. Each iteration finds the solution
over a period, hence has a time loop. At each time step over the period, the equation force Rj is evaluated. To
ensure convergence of nonlinear problems, this force is relaxed:
Rj = λRj + (1 − λ)Rjold
where the old force is from the previous iteration. Rold is initialized to zero at the beginning of the system
solution, so with λ �= 1 the part solution has asymptotic convergence for constant force R. Figure 7 describes two
approaches for handling Rold. Then the harmonics Rn are evaluated, and the residual equations Rn = Rn−Hnun
calculated. The solution for the degrees of freedom is updated using δu = −CR. For the rigid degrees of freedom
in θk, the mean u0 is always zero and the corresponding residual equations R0 give Mr. Hence for these rigid
102 TRIM PART
degrees of freedom, the mean u0 is initialized to zero and has zero perturbation for the identification of D; and the
corresponding rows and columns of D and C are set to zero. At the end of each iteration (the end of each period),
convergence is tested. Since the correct solution for u is not known, convergence must be tested by comparing the
values of two successive iterations:
error = ‖u − uold‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically the rms value of the response). The
reduced equations may not reflect the complete solution. Hence as implemented, the relaxation is applied to the
original equations (A, B1, B0) and the convergence test is applied to all the response variables (ξ, f1, f0).
Chapter 14
TRANSIENT TASK
The transient task numerically integrates the system equations, from the trim solution, for a prescribed
excitation. The transient solution procedure is defined in terms of loops and parts. A part solves a set of equations
for the transient response. A loop iterates between part solutions.
The transient solution begins at time tB , where the response has the trim value. The transient solution ends
at time tE . Each part solves its equations over the transient time range tB to tE , using a response time step Δt. It
is the solution at this time step that is saved, and thus available to other parts. The part solution procedure might
use a smaller time increment, because of accuracy or convergence considerations, but can save the response at a
step size that reflects the content of the solution. Different parts can use different time steps, depending on their
own behavior rather than that of the entire system. The output is written for a time range and time step that can
be specified independently of the solution values. The response might be needed at times before tB , so the trim
solution still exists during the transient task.
A restart capability is implemented for the transient task. The transient solution can be interrupted at a time
tX in the numerical integration by a part; or at a specified iteration and level in a successive substitution loop. At
the interruption the complete solution is saved by writing all the system data vectors and commons to a file. Then
the transient output is produced, using the solution obtained so far; and the transient task is terminated. Another
job can jump to the interrupt point in the specified part or loop, and restore the solution by reading all the system
data vectors and commons from the restart file. Then the transient task continues; the results are the same as if the
transient task were completed in a single job. It is possible to interrupt again a restarted transient task. The purpose
of this restart capability is to allow the progress of the transient task to be assessed by examining the output at an
intermediate point in the solution. None of the analysis input can be changed for the restarted job (except the part
time or the loop iteration and level for the next interrupt). The transient analysis is completely specified by the
initial job.
104 TRANSIENT TASK
Chapter 15
TRANSIENT LOOP
15–1 Description
A loop is described by identifying its parts, child loop, and write modules. The parts can be solved in the
loop (iterated with the child loops), or at the end of the loop. The parts are defined in the order to be solved. The
loops are hierarchical. A loop can have at most one child and one parent. A first loop has no parent; a last loop
has no child. The analysis can have more than one first loop. The methods implemented for transient loops are:
a) no solution;
b) successive substitution.
The successive substitution solution includes stages or levels; it must have parts solved in the loop, and a child
loop.
Write modules handle print, printer-plot, and write to plot file operations. The write module is identified
in the loop input data. Parameters controlling the write operations are obtained from the corresponding system
piece. Write modules perform formatting and transformations, but not calculations. A part solution is required to
calculate quantities for the write module. The transient loop write modules available produce output corresponding
the shell; convergence; loop solution; part solution; modes; output of a part; output; and graphics. Often the output
is relevant only at the end of the solution, when all loops and parts are converged, so the write modules are executed
at the end of the first loop. The analysis can also execute write modules at the end of inner loops.
15–2 Implementation
15-2.1 Loop Algorithm
A loop can implement a general iteration between part solutions. Figure 1 is an outline of the loop solution
process. The iteration is between the parts solved in the loop, and all inner loops. The iteration control and
convergence test operations constitute the loop algorithm. A first loop has no parent; a last loop has no child. The
analysis can have more than one first loop.
The parts are defined in the order to be solved. Generally the parts solved in a loop should not affect each
other. The parts solved at the end of the loop should not affect the loop convergence; they solve for quantities
required by a parent loop, or for output. A quantity must be solved before it can be written by a write module.
Each loop has a status or level designator, the meaning of which depends on the loop method. A part or component
can use the status of a specified loop to control its solution procedure.
106 TRANSIENT LOOP
loop iterationiteration controlsolve parts in loopchild looptest loop convergence
solve parts at end of loopexecute write modules at end of loop
Figure 15-1 Outline of loop solution process.
15-2.2 No Solution Method
For the no solution method, there are no iteration control or convergence test operations in the loop. Such a
loop simply serves to organize the part solutions.
15-2.3 Successive Substitution Method
A successive substitution loop executes a general iteration between part solutions. It must have parts solved
in the loop, and a child loop. The algorithm includes stages or levels. The successive substitution algorithm solves
equations of the form x = G(x). Let y = G1(x) represent the result of the parts solved in the loop, and x = G2(y)the result of the child loop solution. Then G = G2(G1), and x is defined by how the system equations are split
between this loop and its child loops. Specifically, x represents all quantities calculated by the child loops, and
used by the parts solved in this loop. Hence the analysis can determine the contents of x from the functionality
of the part equations. The stages or levels are a cycle outside the basic successive substitution iteration. A part
solution can change its model depending on the loop level, hence an initialization or startup procedure can be
implemented. Any level except the last can be skipped entirely. Optionally the parameters of this loop (such as
relaxation factor and tolerance) can depend on the level of another successive substitution loop; in which case, this
loop has only one level.
The process for the successive substitution method is shown in figure 2. At the beginning of the solution,
x has the value from the previous execution of the loop, or the initial value defined by the response data. The
successive substitution iteration ends when convergence of x is achieved, or the maximum number of iterations is
reached. The level cycle is executed a fixed number of times. The relaxation operation is performed for all times
in the solution for an element of x, and for any derivatives present as well as for the displacement.
15–3 Theory
In addition to controlling the execution of part solutions and write modules, the function of a loop iteration
is to solve nonlinear algebraic equations. Such equations may be written in two forms:
a) fixed point, x = G(x);b) zero point, f(x) = 0.
where x, G, and f are vectors. The analysis provides operations that implement the function G or f . Note that
the parts find the solution over time. Hence x can include values at all time steps, including time derivatives.
TRANSIENT LOOP 107
level cyclesave: xold = xsuccessive substitution iteration
relax: x = λx + (1 − λ)xold
save: xold = xevaluate x (solve parts in loop, child loops)test convergence: error = ‖x − xold‖ ≤ tolerance × weight
Figure 15-2 Outline of successive substitution method.
Efficient and convergent methods are required to find the solution x = α of these equations. Note that f ′(α) = 0or G′(α) = 1 means that α is a higher-order root. For nonlinear problems, the method will be iterative: xn+1 =F (xn). The operation F depends on the solution method. The solution error is:
εn+1 = α − xn+1 = F (α) − F (xn) = (α − xn)F ′(ξn) ∼= εnF ′(α)
Thus the iteration will converge if F is not too sensitive to errors in x:
|F ′(α)| < 1
for scalar x. For x a vector, the criterion is that all the eigenvalues of the derivative matrix ∂F/∂x have magnitude
less than one. The equations in this section are generally written for scalar x; the extension to vector x is
straightforward. Convergence is linear for F ′ nonzero, quadratic for F ′ = 0. Iterative methods have a relaxation
factor (and other parameters) to improve convergence, and a tolerance to measure convergence.
15-3.1 Successive Substitution Method
The successive substitution method (with relaxation) is an example of a fixed point solution. A direct iteration
is simply xn+1 = G(xn), but |G′| > 1 for many practical problems. A relaxed iteration uses F = (1−λ)x+λG:
xn+1 = (1 − λ)xn + λG(xn)
with relaxation factor λ. The convergence criterion is then
|F ′(α)| = |1 − λ + λG′| < 1
so a value of λ can be found to ensure convergence for any finite G′. Specifically, the iteration converges if
the magnitude of λ is less than the magnitude of 2/(1 − G′) (and λ has the same sign as (1 − G′)). Quadratic
convergence (F ′ = 0) is obtained with λ = 1/(1 − G′). Over-relaxation (λ > 1) can be used if |G′| < 1. Since
the correct solution x = α is not known, convergence must be tested by comparing the values of two successive
iterations:
error = ‖xn+1 − xn‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically the rms value over the transient range).
Note that the effect of the relaxation factor is to reduce the difference between iterations:
xn+1 − xn = λ(G(xn) − xn
)
108 TRANSIENT LOOP
Hence a reduction of λ must be accompanied by a reduction in the tolerance, to maintain the same convergence
accuracy. Generally the reduction in the tolerance must be proportional to the reduction in relaxation factor.
The successive substitution method fails if G′(α) = ∞. In such a case, the iteration typically oscillates about
the correct solution, the magnitude of the oscillation decreasing as λ approaches zero. But at λ = 0 the iteration
is turned off, so the correct solution can never be found. To successfully analyze the system in such a case, it is
necessary to change the definition of the problem: either change the order that parts are solved in the loop, thereby
changing the definition of x and G; or change the physical model that is the source of the sensitivity of G to x.
Chapter 16
TRANSIENT PART
16–1 Description
A part is described by identifying its motion, constraint, and output equations. Each equation can be in only
one part (possibly no-solution method). Each part can be solved in one or more loops. The methods implemented
for transient parts are:
a) no solution;
b) trim solution;
c) implicit;
d) integration.
The integration solution method implements several numerical integration algorithms. The integration solution
method solves differential equations. A part might not appear in any loop. In such a case the structure of the
response follows from the part method selected; while the part operation (none) is equivalent to the no solution
method.
All motion equations of a single component are in the same part. A part containing a structural dynamic,
no-residual constraint equation must also contain the motion equations for the degrees of freedom to be eliminated
by the constraint. A structural dynamic interface must be in the same part as one of the components that it connects.
For the implicit solution method, the part can contain only input/output constraint equations and output equations
(no motion equations or structural dynamic constraint equations). The constraint equations are solved in passes.
Each part solves the equations over the transient time range tB to tE , using a response time step Δt. It is
the solution at this time step that is saved, and thus available to other parts. Different parts can use different time
steps, depending on their own behavior rather than that of the system. A part that performs numerical integration
uses a time increment δt. Accuracy or convergence considerations determine the size of the integration increment
δt, while the content of the solution determines the size of the time step Δt at which the response is stored. The
step Δt must be a multiple of δt.
16-1.1 Differential Equations
The differential equation solution methods can include the solution of implicit equations. Better convergence
can be expected if all equations are linearized (included in the differential equation set), but it can be more efficient
to just linearize the structural dynamic components and interfaces. For the latter case, implicit equations are solved
in passes, as required to generate the forces acting on the structural components. The implicit equations thus
provide a way to calculate these forces in steps, without adding more constraint equations to be solved with the
110 TRANSIENT PART
differential equations.
The differential equations can be identified as time invariant or time-varying. This distinction is relevant to
the existence of derivatives of the matrices, and the need to average the matrices. Optionally the matrices can be
averaged, over a window of one period before the current time. The structural dynamic degrees of freedom of the
part can be transformed by modes. The degrees of freedom or modes of the part can be transformed. The following
transforms are used in the transient task: multiblade coordinates; and rotating-to-nonrotating. The solution for
selected variables can be quasistatic, with or without a residual. It is possible to omit selected variables from the
solution.
The equations are typically linearized about the current transient solution; the part solves for the difference.
Optionally the reference can be updated from the current solution for the difference, and the matrices recalculated.
The update strategy is defined as follows:
a) The time steps counted can be the response time steps, or the integration time steps.
b) Always the references are updated and matrices calculated at the beginning of the part
solution.
c) Thereafter they may be updated never, or every N steps, or once; where the update interval
N is constant.
d) Any modes used by the part may or may not be recalculated at each update.
e) Matrices that depend on a time-varying transform (multiblade coordinates or rotating-to-
nonrotating) are always updated at each integration step.
An update of the equations requires additional computation, but may be required to achieve convergence, and in
general should improve convergence. The best update strategy, minimizing computation while ensuring conver-
gence, will be problem dependent. If the equations are nonlinear, the matrices might be recalculated whenever
the reference changes. Generally it is more efficient to execute the update less often. Also, the reference behavior
depends on the conventions available to represent the response. If under these conventions the reference does not
change, then there is no effect of the update. If the equations are time-varying, the matrices might be recalculated
at each new time step. Again, it is often more efficient to execute the update less often. If the matrices are averaged
(which could still be done every time step), the time variation should be reduced or eliminated from the matrices.
16–2 Implementation
16-2.1 No Solution Method
For the no solution method, the equations assigned to the part are not solved. The corresponding variables
then have zero value. Such a part serves to suppress the effect of these system variables during the task.
16-2.2 Trim Solution Method
For the trim solution method, the equations assigned to the part are not solved. The corresponding variables
have the value from the trim solution.
16-2.3 Implicit Solution Method
The implicit method directly solves constraint and output equations. The algorithm has the component
TRANSIENT PART 111
for each time valueconstraint equations
for each solution passfor each vector
evaluate component output: total fl = xtranslate total to difference
output equationsfor each vector
evaluate component output: total yq = xtranslate total to difference
implement order reduction: fl, yq
Figure 16-1 Outline of implicit solution method.
evaluate the required component output vector, at a specified set of time values. In doing so, the component uses
input at the current time, and perhaps at past times as well. Since each interface variable affects other constraint
equations, it is important that the constraint equations be solved in the proper order. The order in which the
equations are solved is specified by the location of the part in the loops, and within the part by an assigned solution
pass. Figure 1 is an outline of the process for the implicit solution method. The equations are solved at the response
time steps.
16-2.4 Differential Equations
When implicit equations are present, they are solved as for the implicit solution method, immediately before
the forces for the differential equations are evaluated, in an order specified by an assigned solution pass. The
implicit equations are not solved when the matrices of the differential equations are being calculated. Figure 2
is an outline of the process for evaluating the equations at a specified time. Figure 3 is an outline of the process
to calculate the matrices required by the part solution. The submatrix is obtained by analytical or numerical
perturbation of the motion or constraint equation. The last step includes solution of the constraint equations to
eliminate variables, and any modal transformations.
At the end of the trim task, the reference is updated for all response variables. With the conventions imple-
mented for the response reference, that is then the updated reference for the duration of the transient task.
16-2.5 Integration Solution Method
The integration method solves differential equations for the transient response, by numerical integration. The
following integration algorithms are implemented:
a) linear Newmark;
b) nonlinear Newmark;
c) linear Wilson;
d) nonlinear Wilson;
e) linear Hilber-Hughes-Taylor;
f) nonlinear Hilber-Hughes-Taylor.
112 TRANSIENT PART
evaluate equations: Fimplicit constraint equations
for each solution passfor each vector
evaluate component output: total fl = xrelax total: fl = λfl + (1 − λ)flold, flold = fl
translate total to differencemotion and constraint equations
for each vectorevaluate nonlinear equationevaluate difference
add matrix times difference to equationquasistatic motion and constraint equations
for each vectorevaluate nonlinear equationevaluate difference
add matrix times difference to equation
evaluate equations: By
output equationsfor each vector
evaluate component output: total yq = xtranslate total to difference
Figure 16-2 Outline of evaluation of equations.
calculate matricescalculate modesevaluate matrices of differential equation
average over period (option)for each row vector
for each column vectorevaluate submatrix
calculate part solution matrices
Figure 16-3 Outline of evaluation of matrices.
While the adjectives “linear” and “nonlinear” suggest the intended application of the algorithms, the analysis
places no restrictions on the choice. The nonlinear algorithms should be iterated at each time increment; the linear
algorithms may be iterated.
Figure 4 is an outline of the process for the integration solution method. At each time step an iteration is
required for nonlinear problems. The integration algorithm requires that the degrees of freedom θ be initialized
at the beginning of the iteration, using its value from the last time increment. During the iteration, the algorithm
requires the value of θ at the last time increment, so that value is saved. (Actually it is θk and then ξ that is
TRANSIENT PART 113
initialize: Fold = 0, θold = trimtime step k (response Δt)initialize response: xk = xk−1
time increment i (integration δt)calculate matricesinitialize degrees of freedom θiteration
save response: xold = xevaluate equations: Frelax equations: F = λF + (1 − λ)Fold
save equations: Fold = Fcalculate forces of reduced equationsintegrate equations for degrees of freedom θcalculate response: xtest convergence: error = ‖x − xold‖ ≤ tolerance × weight
save degrees of freedom θoutput
for each time value (response Δt)evaluate equations: y = By
implement order reduction: ξ, f0, f1, y, fl
Figure 16-4 Outline of integration solution method.
initialized; and θk and Ak that are saved.) Note that the order reduction is applied to all part variables, including
implicit interfaces. Here response x refers to ξ, f0, and f1; and equation F refers to A, B0, and B1. The reduced
equations may not reflect the complete solution, in fact the degrees of freedom θ need not exist at all. Hence
relaxation is applied to the original equations, and the convergence test is applied to all the response variables.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the constraint equations are being
solved for ξ and f1, and the motion equations for f0. So the above process simply evaluates x from F at each step.
The numerical integration operation is not performed, so the choice of algorithm is not meaningful. A nonlinear
problem still requires iteration at each time step.
16-2.6 Response Characteristics
The solution procedure solves for the response difference (the motion relative some prescribed nominal and
reference). The difference kind follows from the part solution procedure:
a) No solution: No transient difference required.
b) Trim solution: No transient difference required.
c) Implicit: Time domain transient.
d) Integration: Time domain integration (except time domain transient for output). Derivatives are required for
degrees of freedom. Old response is required for all degrees of freedom and constraint variables of differential
equations.
114 TRANSIENT PART
The response data include a counter (set by the part) that identifies the latest time step k calculated by the transient
part. If a component requests the response at a time beyond step k, then the response at k is used, without
extrapolation. This convention has the effect of automatically initializing the transient solution to the value at the
previous time step. For the time-domain-integration difference kind, there is also a counter that identifies the latest
time increment i during the integration by the transient part. While solution is being integrated from step k − 1 to
step k, using increment i, the latest solution is always stored at the k-th step in the response data. The counter i is
required to properly identify the time associated with that latest solution.
16–3 Theory
16-3.1 Implicit Solution Method
The general form of an input/output constraint equation has been defined as follows:
0 = Bl = x − fl
The basic approach for part solutions is to linearize and solve for the difference. Hence find G = ∂Bl/∂fl, and
add to both sides of the equation, which becomes
Gfl diff = Bl + Gfl diff
with the solution
fl diff = G−1(Bl + Gfl diff)
This basic approach leads to the algorithm for the implicit solution method, as follows. Take G = I (which is true
if x does not depend on fl). Thenfl diff = Bl + fl diff
= x − fl + fl diff
= x − fl nom − fl ref
This is equivalent tofl total = x
fl diff = fl total − fl nom − fl ref
which is the approach implemented. The analysis requires that x not depend on fl; otherwise this approach would
likely not converge. Translating the total fl or yq to the difference depends on the convention used for the nominal
and reference, and may not involve just scalar subtraction. Only the variable response type need be considered,
since the rigid response type is not used for input/output interfaces, or for output. The equations are solved at the
response time steps: solved at K times tk = tB + k Δt, for k = 1 to K, K = (tE − tB)/Δt.
16-3.2 Differential Equations
The motion and constraint equations are linearized about the current reference solution. The matrices might
be constant, either time-invariant or averaged over a period. Possibly the reference will be updated and the matrices
recalculated during the solution process. The product of the equation matrices and response difference is added
to both sides of the nonlinear equations (so the differential equations are still exact). The resulting equations have
TRANSIENT PART 115
the following form: ⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ =
⎛⎜⎝ A
B1
B0
⎞⎟⎠y = By
The constraint equations and interface variables fl are partitioned as follows:
a) f0, all structural dynamic no-residual interfaces;
b) f1, other interfaces, either structural dynamic full-residual or input/output.
The zeros in the above equations arise from the properties of a structural dynamic, no-residual interface. The
assumption of full-residual means that G1 is full rank; probably the diagonal blocks of G1 are the unit matrix
for input/output interfaces. Note that ξ includes any frame degrees of freedom in the part (rigid body degrees
of freedom of frame components); except that the structural dynamic constraint equations include frame motion
only up to (not including) the common parent frame of the interface. The output equations usually can be put in
either an implicit part, or in some differential equation part. The choice affects the characteristics of the response
difference, such as the time step.
The matrices H and φx1 can be dynamic, meaning that the matrices depend on the time derivatives of ξ.
Dynamic matrices can be zero, first, or second order: depend on displacement, or on displacement and velocity, or
on displacement and velocity and acceleration. If the equations are time-varying, the derivatives of the no-residual
constraint equation are required, meaning the derivatives of φx0 and B0. The matrices are partitioned according
to the vectors of ξ, f1, and f0. So they can all be sparse. Any submatrix that is zero because the equation does
not depend on a vector is neither calculated nor stored. The dictionary describes all matrices used by the part,
including their partition by vector or element, their dynamic order, and the requirement for derivatives.
For a part with only structural dynamic components and interfaces, the motion equations will be second order,
φx1 will not be dynamic, and symmetry is expected. Symmetry might not be found however, for several reasons:
the use of frame degrees of freedom; the use of a structural dynamic interface force in connection axes; or because
the solution has not converged, so the component is not in equilibrium. Symmetry is never assumed in the solution
procedure however, since it is unlikely to be found in the general case with components and interfaces that are not
structural dynamic kind.
The constraint equations are solved to eliminate part variables. This elimination is accomplished by means
of a transformation of the degrees of freedom ξ and interface variables f , designed to decouple the equations. The
resulting reduced differential equations can be solved for a subset of the degrees of freedom, and then the other part
variables evaluated as required. The following part variables are eliminated by solving the constraint equations:
a) The no-residual structural dynamic constraint equations are solved to eliminate degrees
of freedom ξb. These degrees of freedom are a subset of ξ, one element identified for each
element of f0. Thus the length of ξb equals the length of f0.
b) The remaining constraint equations are solved to eliminate the interface variables f1.
Thus the number of degrees of freedom is reduced by solving no-residual constraints (and the solution for the
interface forces is decoupled from the equations of motion). Solving full-residual or input/output constraints
116 TRANSIENT PART
does not reduce the number of degrees of freedom. The degrees of freedom are partitioned as (ξb, ξc). The
transformation obtained by solving the constraint equations is:
⎛⎝ ξf1
f0
⎞⎠ =
⎡⎣ ψφ1 0 0 χφ0
ψG1 0 G−11 χG0
0 I 0 0
⎤⎦⎛⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎠where here η1 = ξc, η0 = f0, ζ0 = B0, and ζ1 = B1. This transform is not unique. With ξb identified, the degrees
of freedom are partitioned as (ξb, ξc), and correspondingly the no-residual constraint equations:
φx0 =[φ0b φ0c
]It is assumed that the interfaces are independent, and the degrees of freedom ξb properly identified, so φ0b is
full-rank. Thus: [ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]The derivatives of φx0 give the derivatives of the transformation. Since symmetry is not assumed, the transpose
problem must also be solved: from
φf0 =[φ0b φ0c
]obtain [
ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]and [
ψG1 χG0
]= −G−T
1 φf1
[ψφ1 χφ0
]Introducing these transforms produces the equations[
K1 LTf
Lx K3
] (η1
ζ0
)+
(0
η0
)=
[ψT
φ1 ψTG1
χTφ0 χT
G0
] (A
B1
)
where [K1 LT
f
Lx K3
]=
[ψT
φ1
χTφ0
] (H − φT
f1G−11 φx1
) [ψφ1 χφ0
]with η1 = ξc, η0 = f0, ζ0 = B0, and ζ1 = B1. The first equation is the reduced equation of motion for the
remaining degrees of freedom η1 = ξc. The second equation is the solution for the no-residual constraint forces
η0 = f0, which has been decoupled by the transformation.
At this point, transformations are introduced: η1 = Φnθ, and the equations for η1 are multiplied by ΦTn .
First the modal transformation Φ is applied, then any transforms T identified for the part (multiblade coordinate
or rotating-to-nonrotating):
Φn = ΦT
(subscript “n” for nonrotating). If there are any transforms, then derivatives are required for T and hence Φn. The
part can have one or more mode sets (or none). The constant matrix Φ is block diagonal, partitioned by mode set;
the not-mode block is just the unit matrix I . Modal structural damping is added, as a diagonal viscous damping
matrix D with elements calculated from the modal mass m and spring k, and an input structural damping factor
g: d = g√
mk, so g is twice the critical damping ratio. The transform T can be applied to degrees of freedom
TRANSIENT PART 117
or modes. The matrix T is not actually constructed. Rather the operation implied by T is performed directly on
Φ (and the modal damping matrix), as defined in the description of the transforms. Note that the transform T is
time-varying, even if the matrices of the differential equations are constant. Thus the reduced equations of motion
are transformed to
H = ΦTnK1Φn + TT D
d
dtT
Next the degrees of freedom θ are partitioned by order reduction:
a) dynamic θk, solve complete equations;
b) quasistatic θl, truncate dynamic terms;
c) zero θz , truncate dynamic and static terms.
The order reduction is specified for the elements of the degrees of freedom ξ, or for the modal elements, or for the
elements of the transformed variables. The quasistatic θl must be elastic degrees of freedom (nonsingular spring).
The zero θz are handled by omitting or ignoring the equations (hence ignoring the submatrices), and setting the
response to zero (zero kind). The corresponding partition of the reduced equations of motion is:
H =
⎡⎣Hkk Hkl Hkz
Hlk Hll Hlz
Hzk Hzl Hzz
⎤⎦The quasistatic reduction is implemented by neglecting the mass and damping of Hll; then introducing a transfor-
mation that decouples the spring matrix in H:
θ =
⎛⎝ θk
θl
θz
⎞⎠ = Q
⎛⎝ θk
θl
θz
⎞⎠Q =
[Qk Ql Qz
]=
⎡⎣ I 0 0−K−1
ll Klk I 00 0 I
⎤⎦and multiplying the equations by
QT =
⎡⎢⎣QT
k
QTl
QTz
⎤⎥⎦ =
⎡⎢⎣I −KklK
−1ll 0
0 I 0
0 0 I
⎤⎥⎦(while the notation is suggested by structural dynamic problems, in general QT is not the transpose of Q; the
time derivatives of Q are ignored). The matrix Tlk = −K−1ll Klk is used for the back-transformation. For time-
varying equations, this transformation is applied at each time step, ignoring time derivatives. With the quasistatic
approximation, the equations of motion take the form:[hkk 00 Kll
] (θk
θl
)=
(Ak
AlQS
)where
hkk = QTk HQk
(excluding the mass and damping of Hll). Two approximations have been made. The first approximation is that the
θl variables and equations are quasistatic. The velocity and acceleration of θl are always zero. This is accomplished
118 TRANSIENT PART
by having separate velocity and acceleration in the response (not obtaining them from the displacement). When
the quasistatic equations are evaluated, AlQS, it is also necessary to ignore the velocity and acceleration of θk.
The second approximation is that the off-diagonal mass and damping terms in the transformed equations can be
neglected. This approximation follows from the quasistatic assumption if there are no rigid degrees of freedom
in θk (nonsingular spring Kkk). In the presence of θk rigid degrees of freedom, there are inertial relief effects on
the residual. Here it is assumed that there are no rigid degrees of freedom in θk, or the inertial relief is ignored.
Solving the equations for θl introduces a residual; a no-residual option is available, for which θl = 0.
After all these transformations, the part differential equations take the form:
hkkθk = Ak
Kllθl = AlQS
where the forces required are obtained from A, B1, and B0:(Ak
Al
)=
(QT
k
QTl
)ΦT
n
[ψT
φ1 ψTG1 −LT
f
]⎛⎝ AB1
B0
⎞⎠=
[Tkξ Tk1 Tk0
Tlξ Tl1 Tl0
]⎛⎝ AB1
B0
⎞⎠The quasistatic forces AlQS are evaluated ignoring the velocity and acceleration of θk. These equations must be
solved for the degrees of freedom θk and θl (or θl = 0 for the no-residual option). The back-transformation of the
quasistatic reduction gives
θl = θl + Tlkθk
Then the response is evaluated from the following relations:
ξ =[ψφ1Φn χφ0
](θ
B0
)=
[Tξθ TξB
](θ
B0
)
f0 = −LxΦnθ +[χT
φ0 χTG0 −K3
]⎛⎝ AB1
B0
⎞⎠= T0θθ +
[Tfξ Tf1 Tf0
]⎛⎝ AB1
B0
⎞⎠ = T0θθ + Δf0
f1 =[G−1
1 −G−11 φx1
](B1
ξ
)=
[T1B T1ξ
](B1
ξ
)The appropriate part solution method must deal with these equations. For nonlinear problems, the part solution
method is iterative. Iterative methods have a relaxation factor (and other parameters) to improve convergence, and
a tolerance to measure convergence.
If the number of degrees of freedom ξ equals the number of no-residual, structural dynamic interfaces f0,
then there are no reduced equations or degrees of freedom θ. In such a case, the above relations are simply an
TRANSIENT PART 119
inversion of the original differential equations. Specifically, A, B1, and B0 are evaluated (and relaxed); then the
constraint equations are solved for ξ and f1, and the motion equations for f0 (and convergence tested).
16-3.3 Integration Solution Method
The integration solution method solves differential equations for the response difference, by numerical inte-
gration. The equations are solved are at the response time steps: solved at K times tk = tB + k Δt, for k = 1 to
K, K = (tE − tB)/Δt. The numerical integration is actually performed using a time increment δt = Δt/I . The
reduced equations of motion consist of differential equations for θk, and static equations for θl:
hkkθk = Ak
Kllθl = AlQS
The equations for θl can be directly inverted at each time step:
θl = K−1ll AlQS
The matrices of the equations of motion might not include all important damping sources, since the effects of any
implicit constraint equations remain in the force Ak. To improve convergence of the method, an estimate of the
damping can be added to both sides of the differential equations:(hkk + D
d
dt
)θk = Ak + Dθk
where the diagonal damping matrix D has elements calculated from the diagonal mass and spring terms of hkk:
d = 2ζ√
mk, where ζ is an input critical damping coefficient. Note that the damping term is added to Ak
before the numerical integration algorithm is implemented. To the extent that the algorithm treats both sides of
the equation exactly the same, this damping estimate is not numerical damping of the solution. As numerical
damping however it affects not only convergence but also the final result. In numerical integration algorithms
based on finite-differences, the derivatives of θk are evaluated using the solution at previous time steps. Hence
at the beginning of the transient solution (tB + δt), the algorithms require θk at tB (and earlier with multistep
methods), evaluated from the trim solution. To obtain these initial values, the response
ξ =(
ξb
ξc
)and its derivatives are evaluated at tB . Then
θ =
⎛⎝ θk
θl
θz
⎞⎠ = Φ−1n η1 = T−1Φ−1ξc = DTT Φ−1ξc
and its derivatives are calculated. The trim and transient solutions can use different degrees of freedom, different
modes, and different transforms. Such solution and model differences can produce an initial disturbance in the
transient solution.
The equations to be integrated take the form Hu = R, where H = H(d/dt) is a differential operator (spring,
damper, and mass):
Mu + Cu + Ku = R
120 TRANSIENT PART
In general R depends on time and on u and its derivatives, and the problem is nonlinear. For a linear problem,
R depends only on time and iteration is not required. For a static problem, the integration algorithm should give
a Newton-Raphson or successive substitution solution of Ku = R (still possibly time-varying and nonlinear).
Introducing a finite-difference approximation for the time derivatives converts the differential equations at time ti
into algebraic equations
Kiui = Ri
These equations are solved for the displacement ui, and then the derivatives ui and ui can be evaluated using
the finite-difference expressions of the algorithm. For a nonlinear problem, it is necessary to solve equations of
the form R = R − Hu = 0. The finite-difference approximation for the derivatives converts these to algebraic
equations:
0 = R(ui) = (R − Hu)i = Ri − Kiui
to be solved for the displacement ui at time ti. Consider the n-th iteration at ti; the Taylor expansion
0 = R(uin+1) ∼= R(ui
n) − Kin(ui
n+1 − uin) = R(ui
n) − KinΔui
gives a Newton-Raphson solution (with relaxation):
KinΔui = λRi
n
Here the derivative matrix K is the partial derivative of −R with respect to u:
K = − ∂R
∂u= K − ∂R
∂u= K + ΔK
If the spring matrix is obtained by local linearization, then ΔK = 0. In general it is difficult to obtain ΔK, so
K ∼= K is assumed, with relaxation introduced in order to obtain convergence in spite of this approximation.
Alternatively, consider a successive-substitution solution, with relaxation:
Kinui
n = Rin
uin+1 = λui
n + (1 − λ)uin = ui
n + λ(uin − ui
n) = uin + Δui
or
KinΔui = λ(Ri
n − Kinui
n) = λRin
Thus by either approach, the equation for the nonlinear case becomes:
KinΔui = λRi
n
This equation is solved for the change Δu from iteration n to iteration n + 1, all at time ti. For generality, the
relaxation is applied to the force R rather than to Δu.
The algorithm of the integration method involves a time loop, over the transient time range. At each time
increment, there is an iteration. At the beginning of this iteration, the solution for ui is initialized using ui−1
(the solution at the previous time step). The equation force Ri is evaluated. To ensure convergence of nonlinear
problems, this force is relaxed:
Ri = λRi + (1 − λ)Riold
TRANSIENT PART 121
where the old force is from the previous iteration (the relaxation is not applied to the first iteration at the beginning
of the part solution). Then the reduced equations are integrated, solving for the degrees of freedom ui and their
derivatives. At the end of each iteration, convergence is tested. Since the correct solution for ui is not known,
convergence must be tested by comparing the values of two successive iterations:
error = ‖u − uold‖ ≤ tolerance
where the error is some norm of the difference between iterations (typically the absolute value). At the end of the
converged iteration, u and R are saved for use during the next time increment. The reduced equations may not
reflect the complete solution (there may not even be any reduced degrees of freedom u). Hence as implemented,
the relaxation is applied to the original equations (A, B1, B0) and the convergence test is applied to all the response
variables (ξ, f1, f0). In addition, relaxation can be applied to selected implicit constraint equations (figure 2). This
relaxation is applied both to the initial evaluation at a time step (the old value is that from the previous time step),
and to subsequent evaluation at a time step (the old value is that from the previous iteration).
The integration algorithms implemented are described in the following sections. Explicit methods are not
considered, since they are only conditionally stable. Each algorithm must solve for u and its derivatives from H
(M , C, and K) and R, all at time ti. Only one-step algorithms are considered, obtaining the motion at time ti
from the motion at just one previous step ti−1. The Newmark algorithm is a one-leg method, requiring R only at
ti; the other algorithms are two-leg methods, requiring R at both ti and ti−1.
16-3.3.1 Linear Newmark
The linear Newmark algorithm is a one-step, one-leg method formulated for linear problems. The version
used is the Newmark constant average acceleration method (trapezoidal rule), which is unconditionally stable
and has no attenuation of high frequency modes. The basis for the algorithm is the following finite-difference
expressions for the derivatives:
ui = ui−1 + δt((1 − γ)ui−1 + γui
)ui = ui−1 + δt ui−1 + δt2
((12− β
)ui−1 + βui
)The parameter values γ = 1/2 and β = 1/4 give the unconditionally stable, constant average acceleration method.
A conditionally stable, linear acceleration method is obtained using γ = 1/2 and β = 1/6; this and other cases of
the general Newmark algorithm are not implemented. Solving for the velocity and displacement gives⎛⎝ ui
ui
⎞⎠ =
⎛⎝ γ
β δt
1β δt2
⎞⎠ ui +
⎛⎝ v
v
⎞⎠ =
⎛⎝ 2/δt
4/δt2
⎞⎠ ui +
⎛⎝ v
v
⎞⎠
⎛⎝ v
v
⎞⎠ =
⎡⎣ − γ
β δt1 − γ
β(1 − γ
2β)δt
− 1β δt2
− 1β δt
1 − 12β
⎤⎦⎛⎜⎜⎜⎜⎝
ui−1
ui−1
ui−1
⎞⎟⎟⎟⎟⎠ =
⎡⎣ −2/δt −1 0
−4/δt2 −4/δt −1
⎤⎦⎛⎜⎜⎜⎜⎝
ui−1
ui−1
ui−1
⎞⎟⎟⎟⎟⎠Introducing this finite-difference approximation converts the differential equations into algebraic equations:(
M i 1β δt2
+ Ci γ
β δt+ Ki
)ui = Ri −
(M iv + Civ
)
122 TRANSIENT PART
Thus the modified matrices and force are
K = M i 1β δt2
+ Ci γ
β δt+ Ki = M i 4
δt2+ Ci 2
δt+ Ki
R = Ri −(M iv + Civ
)R1 = Ri − M i
(v − 2
δtv
)+
δt
2Kiv
R2 = Ri − Ci
(v − δt
2v
)+
δt2
4Kiv
(including the estimated damping D in R and C). The algebraic equations
Kw = R
are solved for ui = w, and then
ui =γ
β δtui + v =
2δt
ui + v =2δt
K−1R1
ui =1
β δt2ui + v =
4δt2
ui + v =4
δt2K−1R2
give the derivatives of u.
16-3.3.2 Nonlinear Newmark
The nonlinear Newmark algorithm is a one-step, one-leg method formulated for nonlinear problems. The
version used is the Newmark constant average acceleration method (trapezoidal rule), which is unconditionally
stable and has no attenuation of high frequency modes. The modified matrices and force are
K = M i 1β δt2
+ Ci γ
β δt+ Ki = M i 4
δt2+ Ci 2
δt+ Ki
R = Ri −(M iui + Ciui + Kui
)(including the estimated damping D in C for K; the contributions to R and C would cancel, so the estimated
damping is not needed for R). The algebraic equations
Kw = R
are solved for Δui = w, and then
uin+1 = ui
n + w
ui =γ
β δtui + v =
2δt
ui + v
ui =1
β δt2ui + v =
4δt2
ui + v
give u and its derivatives.
TRANSIENT PART 123
16-3.3.3 Linear Wilson
The linear Wilson algorithm is a one-step, two-leg method formulated for linear problems. The version used
is the linear acceleration method (Wilson-θ), which is unconditionally stable for θ > 1.37, and has attenuation of
high frequency modes. The basis for the algorithm is the following finite-difference expressions for the derivatives:
ui+θ−1 = ui−1 +θ δt
2(ui−1 + ui+θ−1)
ui+θ−1 = ui−1 + θ δt ui−1 +(θ δt)2
6(2ui−1 + ui+θ−1)
Here θ = 1.4 is used. Solving for the velocity and displacement gives⎛⎝ ui+θ−1
ui+θ−1
⎞⎠ =
⎛⎝ 3θ δt
6(θ δt)2
⎞⎠ ui+θ−1 +
⎛⎝ v
v
⎞⎠
⎛⎝ v
v
⎞⎠ =
⎡⎣ − 3θ δt
−2 −θ δt
2
− 6(θ δt)2
− 6θ δt
−2
⎤⎦⎛⎜⎜⎜⎜⎝
ui−1
ui−1
ui−1
⎞⎟⎟⎟⎟⎠Introducing this finite-difference approximation converts the differential equations into algebraic equations:(
M i+θ−1 6(θ δt)2
+ Ci+θ−1 3θ δt
+ Ki+θ−1
)ui+θ−1 = Ri+θ−1 −
(M i+θ−1v + Ci+θ−1v
)∼= θRi + (1 − θ)Ri−1 −
(M i+θ−1v + Ci+θ−1v
)Thus the modified matrices and force are
K = M i 6(θ δt)2
+ Ci 3θ δt
+ Ki
R = θRi + (1 − θ)Ri−1 −(M iv + Civ
)R2 = θRi + (1 − θ)Ri−1 − Ci
(v − θ δt
2v
)+
(θ δt)2
6Kiv
(including the estimated damping D in R and C; actually M , C, and K should be at ti+θ−1). The algebraic
equations
Kw = R
are solved for ui+θ−1 = w, and then
ui+θ−1 =6
(θ δt)2ui+θ−1 + v =
6(θ δt)2
K−1R2
ui = ui−1 +1θ(ui+θ−1 − ui−1)
ui = ui−1 + δt
(12ui−1 +
12ui
)
ui = ui−1 + δt ui−1 + δt2(
13ui−1 +
16ui
)
124 TRANSIENT PART
give u and its derivatives.
16-3.3.4 Nonlinear Wilson
The nonlinear Wilson algorithm is a one-step, two-leg method formulated for nonlinear problems. The version
used is the linear acceleration method (Wilson-θ), which is unconditionally stable for θ > 1.37, and has attenuation
of high frequency modes. Here θ = 1.4 is used. The nonlinear equations at time ti+θ−1 are:
0 = Ri+θ−1 ∼= θRi + (1 − θ)Ri−1 = θRi
assuming that Ri−1 = 0 (converged solution at ti−1). Thus the modified matrices and force are
K = M i 6(θ δt)2
+ Ci 3θ δt
+ Ki
R = Ri − (M iui + Ciui + Kui)
(including the estimated damping D in C for K; the contributions to R and C would cancel, so the estimated
damping is not needed for R; actually M , C, and K should be at ti+θ−1). The algebraic equations
Kw = R
are solved for Δui = w/θ2, and then
uin+1 = ui
n +1θ2
w
⎛⎝ ui
ui
⎞⎠ =
⎛⎝ 3δt
6δt2
⎞⎠ ui +
⎡⎣ − 3δt
−2 −δt
2
− 6δt2
− 6δt
−2
⎤⎦⎛⎜⎜⎜⎜⎝
ui−1
ui−1
ui−1
⎞⎟⎟⎟⎟⎠give u and its derivatives.
16-3.3.5 Linear Hilber-Hughes-Taylor
The linear Hilber-Hughes-Taylor algorithm is a one-step, two-leg method formulated for linear problems.
The version used is the HHT α-method (an extension of the Newmark method), which is unconditionally stable
and has attenuation of high frequency modes. Numerical dissipation, controlled by the parameter α, is introduced
to damp out spurious participation of high frequency modes. As an unconditionally stable method with dissipation,
the time step is then determined only by the accuracy of the low frequency modes. The basis for the algorithm is
the following modified equation:
M iui + (1 + α)Ciui + (1 + α)Kiui = (1 + α)Ri − αRi−1 + αCiui−1 + αKiui−1
Then the Newmark algorithm is used, with
γ =12(1 − 2α)
β =14(1 − α)2
TRANSIENT PART 125
The parameter α ≤ 0 controls the numerical dissipation of high frequency modes. For stability, α > −1/2 is
required; in practice, α > −1/3 is sufficient; typically α = −0.05 or −0.10 is used. Thus the modified matrices
and force are
K = M i 1β δt2
+ Ci(1 + α)γ
β δt+ Ki(1 + α)
R = (1 + α)Ri − αRi−1 + αCiui−1 + αKiui−1 −(M iv + (1 + α)Civ
)R1 = (1 + α)Ri − αRi−1 + αCiui−1 + αKiui−1 − M i
(v − 1
γ δtv
)+
β δt
γ(1 + α)Kiv
R2 = (1 + α)Ri − αRi−1 + αCiui−1 + αKiui−1 − (1 + α)Ci (v − γ δt v) + β δt2(1 + α)Kiv
(including the estimated damping D in R and C); where
⎛⎝ v
v
⎞⎠ =
⎡⎣ − γ
β δt1 − γ
β(1 − γ
2β)δt
− 1β δt2
− 1β δt
1 − 12β
⎤⎦⎛⎜⎜⎜⎜⎝
ui−1
ui−1
ui−1
⎞⎟⎟⎟⎟⎠The algebraic equations
Kw = R
are solved for ui = w, and thenui =
γ
β δtui + v =
γ
β δtK−1R1
ui =1
β δt2ui + v =
1β δt2
K−1R2
give the derivatives of u.
16-3.3.6 Nonlinear Hilber-Hughes-Taylor
The nonlinear Hilber-Hughes-Taylor algorithm is a one-step, two-leg method formulated for nonlinear prob-
lems. The version used is the HHT α-method (an extension of the Newmark method), which is unconditionally
stable and has attenuation of high frequency modes. The modified matrices and force are
K = M i 1β δt2
+ Ci(1 + α)γ
β δt+ Ki(1 + α)
R = (1 + α)Ri −(M iui + (1 + α)Ciui + (1 + α)Kiui
)− αRi−1 +
(αCiui−1 + αKiui−1
)(including the estimated damping D in C for K; the contributions to R and C would cancel, so the estimated
damping is not needed for R). The algebraic equations
Kw = R
are solved for Δui = w, and thenui
n+1 = uin + w
ui =γ
β δtui + v
ui =1
β δt2ui + v
126 TRANSIENT PART
give u and its derivatives.
16-3.3.7 Initialization
At the start of the iterative solution at ti, the solution must be initialized. The following options are imple-
mented: zero; constant; constant displacement; constant acceleration; and zero acceleration.
a) Zero:
ui = 0
ui = 0
ui = 0
b) Constant:
ui = ui−1
ui = ui−1
ui = ui−1
c1) Constant displacement (Newmark and HHT):
ui = − 1β δt
ui−1 −(
12β
− 1)
ui−1
= − 4δt
ui−1 − ui−1
ui = ui−1 + δt((1 − γ)ui−1 + γui
)= ui−1 + δt
(12ui−1 +
12ui
)ui = ui−1
c2) Constant displacement (Wilson):
ui = − 6δt
ui−1 − 2ui−1
ui = ui−1 + δt
(12ui−1 +
12ui
)ui = ui−1
d) Constant acceleration:
ui = ui−1
ui = ui−1 + δt ui−1
ui = ui−1 + δt ui−1 +12δt2ui−1
TRANSIENT PART 127
e1) Zero acceleration (Newmark and HHT):
ui = 0
ui = ui−1 + (1 − γ)δt ui−1
= ui−1 +12δt ui−1
ui = ui−1 + δt ui−1 +(
12− β
)δt2ui−1
= ui−1 + δt ui−1 +14δt2ui−1
e2) Zero acceleration (Wilson):ui = 0
ui = ui−1 +12δt ui−1
ui = ui−1 + δt ui−1 +13δt2ui−1
The results in the last three options follow from the finite-difference expressions for derivatives used by the
integration algorithm.
16-3.3.8 First Order Equations
All of these integration algorithms can be applied to first-order differential equations, with zero mass matrix.
They give accurate results for the integrated displacement and velocity. However, the acceleration obtained is not
stable; its value oscillates at the integration time step, with an amplitude that increases as the time step is reduced.
This could be of no consequence if the system does not depend on the acceleration of such first-order states. In
practice, unstable results for the acceleration of one variable can produce poor results for other variables of the
system as well. These first-order states can be identified, and their acceleration set to zero at the end of each
integration step.
Alternatively, it may be necessary to use second-order differential equations. Consider the first-order equation
τ ξ + ξ = u, x = ξ (degree of freedom ξ, input u, and output x). One approach is to rewrite the equation in
second-order form, with zero spring instead of zero mass: τ ξ + ξ = u, x = ξ. Since the spring is zero, the
variable ξ must now be identified as rigid in the trim part solution. The trim solution for the displacement of ξ
can probably be ignored (the trim parts will set it to zero). The trim part must be able to obtain the equilibrium
solution, such as ξ = u. Another approach is to add a small mass term to the equation: aτ2ξ + τ ξ + ξ = u, with
typically a = 0.1 or so. For small a, this second-order equation has time constants of τ and aτ . The small mass
keeps the acceleration well behaved, while the velocity and displacement obtained are nearly the same as from the
first-order equation.
128 TRANSIENT PART
Chapter 17
FLUTTER TASK
17–1 Description
The flutter task linearizes the system equations, about the trim solution, and then analyzes the resulting
differential equations. With a quasistatic reduction of the system, the flutter task can produce a stability derivative
model.
17-1.1 Linearized Equations
The flutter solution procedure is defined in terms of loops and parts. A part linearizes a set of equations. A
loop combines and operates on the part solutions. The flutter equations can be time invariant or periodic. Time
invariant equations are obtained for a truly time invariant system, or by averaging the equations of a periodic
system.
The first (outermost) loop can average the system equations over a period, producing a constant-coefficient
approximation. Child loops must average the equations for a subsystem that has a period not equal to the system
period. If the system is strongly periodic, a constant-coefficient approximation may not well represent the true
behavior. It is also possible that the averaging will suppress interactions between the subsystems coupled by the
loops.
17-1.2 Analysis of Flutter Equations
The flutter equations generated by the loop and part solutions can be reduced in the following manner. First,
degrees of freedom, output variables, or input can be eliminated from the equations. Three cases are considered:
a) complete equations (eliminate only designated variables);
b) symmetric equations (also eliminate antisymmetric variables);
c) antisymmetric equations (also eliminate symmetric variables).
Next, a quasistatic reduction of degrees of freedom can be performed, with or without a residual. Three cases are
considered:
a) full dynamics (no quasistatic reduction);
b) eliminate designated degrees of freedom;
c) eliminate all but system rigid degrees of freedom.
Hence there are nine subsets of the flutter equations that can be analyzed. For time invariant equations (true
or averaged), the following analysis tasks can be performed: eigenanalysis, time history response, frequency
130 FLUTTER TASK
response, and rms gust response. Additionally, the equations can be written. Periodic equations are analyzed using
Floquet-Lyaponov theory. Equations that are actually time invariant can be analyzed as if they are periodic (for
example, to check the accuracy of the integration required for periodic equations). The following analysis tasks
can be performed for periodic equations: eigenanalysis, and time history response. Additionally, the equations
can be written.
17-1.3 Flight Dynamics Analysis
Flight dynamics of an aircraft are often analyzed using a stability derivative model of the forces acting
on the system. For a subsystem that has states, stability derivatives are obtained by introducing a quasistatic
approximation. The flutter task can implement such a flight dynamics analysis by making a quasistatic reduction
to just the system rigid degrees of freedom. This reduction can be performed in either the flutter loop, or during
the analysis of the equations. By performing the quasistatic reduction on each subsystem, in the appropriate flutter
loop, loop write modules give the stability derivatives. A flight dynamics model typically defines the stability
derivatives about the aircraft center-of-gravity, and divided by the aircraft inertia. The loop write module will
however give the dimensional derivatives, for the forces acting at a structural dynamic interface. If instead the
quasistatic reduction is performed by the analysis routines, then the full equations can be analyzed at the same
time; but the stability derivatives must be deduced from the terms in the second-order equations.
17–2 Implementation
For a nonlinear system, the equations must be linearized about the complete trim solution (nominal, reference,
and difference). Optionally the equations can be linearized about a reference that is zero; the nominal response;
or the nominal plus the trim reference. Note that the reference is updated at the end of the trim task, for use in the
flutter task.
For a periodic system, the periodic equations can be analyzed, or they can be averaged and the resulting
time-invariant equations analyzed. The equations are averaged in a flutter loop. If the system has a single period,
the averaging should take place in the first (outermost) loop, to avoid the possibility that averaging will suppress
interactions between the subsystems coupled by the loops. If the system has more than one period characterizing
its behavior, an approximation is required to eliminate all but the primary period. Hence the inner loops must
average the equations of subsystems associated with the secondary periods. Then the first loop sees equations
that have a single period, and can be analyzed as periodic or averaged to produce time-invariant equations for the
system.
The flutter task evaluates the equations of motion, and then analyzes them. Figure 1 is an outline of the
process for the flutter task. The flutter equations can also be written, so the are available for external analysis.
17–3 Theory
17-3.1 Analysis of Flutter Equations
This section describes the operations performed in analyzing the flutter equations. The flutter task produces
linear differential equations describing the system response, of the form
A2x + A1x + A0x = B0v
y = C2x + C1x + C0x + D0v
FLUTTER TASK 131
time-invariant equationsevaluate equations (loops and parts)analyze equations
eigenanalysistime history responsefrequency responserms gust response
periodic equationsfor each time value (one period)
evaluate equations (loops and parts)store equations
eigenanalysisfor each time value (one period)
interpolate equationsanalyze equations
time history responsefor each time value
interpolate equationsanalyze equations
Figure 17-1 Outline of flutter task.
where x is the vector of degrees of freedom, v the vector of controls, and y the vector of sensors. In addition, a
subset of x, x, x, and v can be designated as output quantities. The coefficient matrices can be constant, or periodic
in time.
17-3.2 Linear Differential Equations
17-3.2.1 Reduced Equations
Any of the elements of x, v, and y can be designated for elimination from the equations. This reduction is
performed by simply removing the corresponding rows and columns from the matrices. Variables may be eliminated
because their order is specified as “zero” in the response data; or because a subset of the flutter equations is being
analyzed. At this point, any variables x, x, x, or v designated as output quantities are added to the output y. This is
accomplished by appending rows to the matrices of y, with all zeros except the value 1 in the column corresponding
to the designated variable.
17-3.2.2 Quasistatic Reduction
Any of the degrees of freedom x can be designated for elimination by quasistatic reduction, with or without
a residual. Degrees of freedom may be eliminated because their order is specified as “quasistatic” in the response
data; or because a subset of the flutter equations is being analyzed. The analysis also finds the zero columns of
A2, A1, and A0. If the columns of a degree of freedom xi are:
a) all zero, the equations are rank deficient (redundant or inconsistent);
b) A2 and A1 zero, xi must be quasistatic;
132 FLUTTER TASK
c) A2 and A0 zero, xi must be quasistatic and the column of C0 must also be zero;
d) A1 and A0 zero, xi must be quasistatic and the columns of C1 and C0 must also be zero;
e) A0 zero, xi may be designated as quasistatic (not xi) and the column of C0 must also be
zero.
f) A2 zero, xi is first order (no mass) and the column of C0 must also be zero.
The quasistatic degrees of freedom must be elastic (nonsingular spring; after quasistatic velocities and accelerations
are redefined as displacements). The remaining degrees of freedom must have nonsingular mass (since the
quasistatic transform maintains zero columns in the spring but not in the mass). Hence for the retained first order
states with no mass, the substitution zi = xi is made before the quasistatic reduction, and xi = zi after the
reduction. The equations are partitioned according to the quasistatic designation:[Akk Akl
Alk All
] (xk
xl
)=
[B0k
B0l
]v
y =[Ck Cl
](xk
xl
)+ D0v
where xl are the degrees of freedom to be eliminated. The matrices A and C (without subscript 2, 1, or 0) are
dynamic operators. The quasistatic reduction is implemented by neglecting the mass and damping of All; then
introducing a transformation that decouples the spring matrix:(xk
xl
)=
[Tk Tl
](xk
xl
)=
[I 0
−A−10ll A0lk I
] (xk
xl
)and multiplying the equations by [
TTk
TTl
]=
[I −A0klA
−10ll
0 I
]For time-varying equations, this transformation is applied at each time step, ignoring time derivatives. With the
quasistatic approximation, the equations of motion take the form:[Akk 00 A0ll
] (xk
xl
)=
[B0k
B0l
]v
y =[Ck C0l
](xk
xl
)+ D0v
Two approximations have been made. The first approximation is that the xl variables and equations are quasistatic.
The velocity and acceleration terms of xl are neglected. The second approximation is that the off-diagonal mass
and damping terms in the transformed equations can be neglected. This approximation follows from the quasistatic
assumption if there are no rigid degrees of freedom in xk (nonsingular spring A0kk). In the presence of xk rigid
degrees of freedom, there are inertial relief effects on the residual. Here it is assumed that there are no rigid degrees
of freedom in xk, or the inertial relief is ignored. Solving the equations for xl introduces a residual in y, modifying
the matrix D0:
xl = A−10ll B0lv
A no-residual option is available, for which xl = 0. The quasistatic reduction is implemented by multiplying the
equations by TTk (ignoring All2 and All1), and introducing the transformation x = Tkxk. The reduced equations
are then:A2xk + A1xk + A0xk = B0v
y = C2xk + C1xk + C0xk + D0v
FLUTTER TASK 133
where
D0 = D0 + C0lA−10ll B0l
with the residual, or D0 = D0 for the no-residual option.
17-3.2.3 State Variable Form
The equations are transformed to a standard first order form for analysis. A degree of freedom that has both
mass and spring terms is second order, so the states are the displacement and velocity. The remaining degrees
of freedom are first order, with a single state each (displacement or velocity). Hence the analysis finds the zero
columns of A2, A1, and A0. If the A0 or A2 column of a degree of freedom xi is zero, then xi is first order:
a) A0 zero (no spring), the state is the velocity xi. The column of C0 must also be zero.
b) A2 zero (no mass), the state is the displacement xi. The column of C2 must also be zero.
To be consistent with the no-spring case, let zi = xi. With this replacement, the state is the
velocity zi, and the spring column is zero.
Optionally, the degree of freedom xi can be identified as first or second order by input, instead of determining the
order from the equations. The equations are partitioned according to the designation second or first order:
A0x =[A0 0
](x2
x1
)C0x =
[C0 0
](x2
x1
)where x1 are the first order degrees of freedom (length Mx1), and x2 are the second order degrees of freedom
(length Mx − Mx1). Now the variable x is redefined as the state vector of the system, consisting of the velocity
of all degrees of freedom, and the displacement of second order degrees of freedom:
x =
⎛⎝ x2
x1
x2
⎞⎠(although for first order degrees of freedom with zero mass, the state is actually the displacement). The equations
of motion in state variable form are thus:x = Ax + Bv
y = Cx + Dv
where
A =[−A−1
2 A1 −A−12 A0
I 0 0
]B =
[A−1
2 B0
0
]C =
[C1 − C2A
−12 A1 C0 − C2A
−12 A0
]D =
[D0 + C2A
−12 B0
]As implemented, the first order variables are just skipped as required during the construction of these matrices, so
the degrees of freedom are not reordered. In particular, the top Mx variables in the state vector x are ordered as
in the original degree of freedom vector, not partitioned into second order and first order variables.
134 FLUTTER TASK
17-3.3 Time-Invariant Equations
17-3.3.1 Eigenanalysis
The transient solution of the homogeneous equations x = Ax is:
x =∑
i
uieλitqi(0) = MeΛtq(0)
where λi and ui are the eigenvalues and eigenvectors of the matrix A, and qi(0) are constants determined by
the initial conditions. The modal matrix M has the eigenvectors as columns; and Λ is the diagonal matrix
of corresponding eigenvalues. The system is unstable if Reλi > 0 for any mode. The following quantities
characterize the behavior of a mode.
quantity definition
frequency ω = |Imλ|natural frequency ωn = |λ|period T = 2π/ω
damping ratio ζ = −Reλ/|λ| (fraction of critical damping)
time constant τ = −1/Reλtime to half-amplitude t1/2 = 0.693τ (time to double-amplitude for unstable modes)
The modal response of the output y is given by the output eigenvector matrix Y = CM . For each input/output
pair, the response in Laplace form isyi
vj= d − c(A − s)−1b
where yi and vj are scalars; so c is a single row of C, b is a single column of B, and d is a scalar from D. An
equivalent result isyi
vj= − detA∗
det(A − s)
where
A∗ =[−d c−b A − s
]The poles of the response are defined by det(A− s) = 0, hence are the eigenvalues of the matrix A. The zeros are
defined by det A∗ = 0. In A∗ the diagonal elements are all of the form (akk − s), except for the first element. By
expanding the determinant of A∗, it is possible to reduce it to a form with (akk − s) for all the diagonal elements:
−det A∗ = K1 det(Z − s)
Then the zeros are the eigenvalues of the matrix Z. Thus:
yi
vj= K1
∏m(zm − s)∏n(pn − s)
= Ks
∏m(1 − s/zm)∏n(1 − s/pn)
and the static response is Ks = K1
∏z/
∏p. The static response is more accurately calculated directly from the
matrices. The partial fraction expansion of the response is
yi
vj= r0 +
∑k
rk
pk − s
FLUTTER TASK 135
where
rk = K1
∏m(zm − pk)∏
n �=k(pn − pk)
are the residues, which define the modal contribution to the impulse response. The leading term is r0 = K1 if
the number of zeros equals the number of poles, and r0 = 0 otherwise. The residuals can be more accurately
calculated from the modes. From the frequency response
H = D − CM(Λ − iω)−1M−1B
(below), it follows that r0 = Dij and rk = −(CM)ik(M−1B)kj .
17-3.3.2 Time History Response
Consider the time history response for the system with zero initial conditions at t = 0, and control having
time variation of the form v = v0f(τ) (f = 0 for τ < 0). The following cases are implemented.
a) Impulse: f = δ(t) (not available for numerical integration)
b) Step: f = 1
c) Ramp: f = t
d) Cosine impulse: f = 1/2(1 − cos 2πt/T ) for 0 < t < nT
e) Sine doublet: f = sin 2πt/T for 0 < t < nT
f) Square impulse: f = 1 for 0 < t < T
g) Square doublet: f = 1 for 0 < t < T/2f = −1 for T/2 < t < T
h) Triangular impulse: f = 2t/T for 0 < t < T/2f = 2 − 2t/T for T/2 < t < T
i) Triangular doublet: f = 4t/T for 0 < t < T/4f = 2 − 4t/T for T/4 < t < 3T/4f = 4t/T − 4 for 3T/4 < t < T
j) General piecewise linear: f = fi at ti, i = 1 to I;
f0 = 0 at t0 = 0, and f = fI for t > tI
The equations are linear, so the response is evaluated for unit amplitude of each element of the control v. The time
history response is evaluated from the modes, or by numerical integration. The result is extended to the case of
input beginning at time tB . Given the modes (eigenvalues and eigenvectors), the general transient solution of the
equation x = Ax + Bv is
x = MeΛtM−1x0 +∫ t
0
MeΛ(t−τ)M−1Bv dτ
With x0 = 0 and v = v0f(τ), the response is
y =(Df(t) + CMF (t)M−1B
)v0 =
(R0f(t) +
∑k
RkFk(t)
)v0
136 FLUTTER TASK
where
F =
⎡⎢⎢⎣. . . ∫ t
0eλk(t−τ)f(τ) dτ
. . .
⎤⎥⎥⎦is a diagonal matrix depending on the eigenvalues and on the input function f , and Rk is the matrix of residuals.
Alternatively, numerical integration of the equations x = Ax + Bv can be performed, for times tn = nh, using
either a modified trapezoidal algorithm:
xn+1 = xn +h
2(xn+1 + xn) + O(h3)
= xn +h
2(Axn+1 + Bvn+1 + Axn + Bvn)
=(
1 − h
2A
)−1 [(1 +
h
2A
)xn +
h
2B(vn+1 + vn)
]∼= xn +
h
2
(1 +
h
2A
) [2Axn + B(vn+1 + vn)
]or a 4-th order Runge-Kutta algorithm:
xn+1 = xn +h
6(K1 + 2K2 + 2K3 + K4) + O(h5)
K1 = Axn + Bvn
K2 = A(xn +h
2K1) + Bvn+1/2
K3 = A(xn +h
2K2) + Bvn+1/2
K4 = A(xn + hK3) + Bvn+1
Then the output yn+1 = Cxn+1 + Dvn+1 is evaluated. The initial conditions are x0 = 0, and v = v0f(τ).Considering all control elements simultaneously is equivalent to integrating the matrix equations
X = AX + BV
Y = CX + DV
where V = If(τ), and the number of columns of X and Y equals the length of v.
17-3.3.3 Frequency Response
The frequency response is obtained by assuming purely harmonic behavior at frequency ω for the degrees of
freedom, input, and output vectors:x = x0e
iωt
v = v0eiωt
y = y0eiωt
Substituting these relations in the equations of motion, the relation y0 = Hv0 can be obtained. The transfer
function H can be calculated from the matrices:
H = D − C(A − iω)−1B = D − C(A + iω)(A2 + ω2)−1B
FLUTTER TASK 137
or from the modes:
H = D − CM(Λ − iω)−1M−1B = R0 +∑
k
Rk(λk − iω)−1
or from the poles and zeros:yi
vj= K1
∏m(zm − iω)∏n(pn − iω)
where pn are the poles (eigenvalues) and zm are the zeros. The static response (zero frequency) can be obtained
by setting x = 0:
y = Hv = (D − CA−1B)v
from the matrices.
17-3.3.4 Rms Gust Response
Consider the rms gust response of the system x = Ax + Bg, y = Cx + Dg. Here the only input considered
is the vector of gust components g. Note that the rms response is not properly defined for a system with unstable
modes. Two gust spectra (functions of frequency ω) are considered, the Dryden spectra:
Su =σ2τ
π
11 + (τω)2
Sv = Sw =σ2τ
2π
1 + 3(τω)2
(1 + (τω)2)2
and the von Karman spectra:
Su =σ2τ
π
1(1 + (aτω)2)5/6
Sv = Sw =σ2τ
2π
1 + 83 (aτω)2
(1 + (aτω)2)11/6
where a = 1.339. Here Su, Sv , and Sw are the spectra for longitudinal, lateral, and vertical gust components
respectively. In these spectra, σ is the rms gust magnitude. The time constant τ = L/V can be specified directly,
or in terms of a correlation length L and the velocity V of the system through the gust field. It is assumed that
the three gust components are uncorrelated, so the mean-squared response can be evaluated for each component
separately, and added to obtain the total mean-squared response. The rms response can be calculated by a stochastic
method (from the modes), or by integrating the transfer function.
The rms gust response can be obtained by integrating the product of the gust spectrum and the square of the
frequency response:
σ2y =
∫ ∞
−∞Sy dω =
∫ ∞
−∞|H|2Sg dω
where H is evaluated as described for the frequency response. The integral is evaluated numerically. Consider a
set of frequencies, uniformly spaced from ω1 to ωM (either log or linear frequency scale). In addition, ω = 0 is
always used. Then by trapezoidal integration,
σ2y =
M∑0
Sihi
with the weights hi:
138 FLUTTER TASK
a) linear frequency scale: h0 = ω1, h1 = ω1 + Δω, hi = 2Δω, hM = Δω
b) log frequency scale: h0 = ω1, h1 = ω1 + ω1Δ lnω, hi = 2ωiΔ lnω, hM = ωMΔ lnω
For a system with a neutrally damped mode (Reλ = 0), the transfer function is infinite at resonance, and the
integral does not converge. For a system with unstable modes (Reλ < 0), the integrals exist but the result is not
meaningful.
Alternatively, the rms gust response can be obtained by a stochastic method. In this approach, the gust is
modelled as a Markov process: g = Tg+Sw, where w is stationary Gaussian noise, with zero mean and correlation
E[w(t)wT (τ)] = QGδ(t − τ)
The matrices T and S can be constructed to produce the longitudinal or the lateral/vertical Dryden spectrum. For
an rms gust velocity of σ, it follows that QG = 2σ2/τ . The system and gust model are thus described by the
augmented equations:
d
dt
(xg
)=
[A B0 T
] (xg
)+
[0S
]w
y =[C D
](xg
)or z = Fz + Gw, y = Hz. The correlation matrix Z = E(zzT ) is then the solution of the equation
FZ + ZFT + GQGGT = 0
and the output correlation matrix is Y = E(yyT ) = HZHT . The diagonal elements of Y are the mean-squared
gust response. For a single gust component, the solution is
Y/σ2 = (CM)X∗(CM)T − (CM)L(M−1b)dT − d(M−1b)T L(CM)T + ddT
where M is the modal matrix, the modal correlation matrix is
X∗ij =
[(M−1b)(M−1b)T
]ij
�i + �j
λi + λj
and the elements of the diagonal matrix L depend on the gust spectrum:
� =1
λ − 1τ
for the longitudinal spectrum, and
� =λ − 1
2τ(λ − 1
τ
)2
for the lateral spectrum. For a system with unstable eigenvalues (Reλ ≥ 0), the result is not meaningful (unstable
modes are omitted when evaluating X∗).
FLUTTER TASK 139
17-3.4 Periodic Equations
Periodic equations are analyzed using Floquet-Lyaponov theory. The linear equations have period T : A(t+T )= A(t). The fundamental frequency of the equations, Ω = 2π/T , is obtained from a specified period. Time and
azimuth are related by ψ = Ωt + ψ0.
17-3.4.1 Evaluation of Equations
The equations are evaluated over one period, and stored for analysis. The time step in this process is based
on the harmonic content of the coefficients. The equations are interpolated to the times required by the numerical
integration (for the state transition matrix, or for the time history). The integration time step is based on the
dynamics of the system. The second order equations are evaluated at J steps over the period T : at tj = j Δt, for
j = 1 to J , Δt = T/J . It is assumed that the coefficients at t = 0 are equal to the coefficients at t = T .
During the numerical integration, the coefficients are required at time t. First the time is reduced to the range
0 to T , by adding or subtracting a multiple of the system period T . Then the coefficients are interpolated to t
from the stored values at tj . Three interpolation methods are implemented: linear, Fourier, and Fourier-linear
interpolation. If the equations are known to be composed of a small number of harmonics, then the best choice is
Fourier interpolation. For linear interpolation, j is found such that tj ≤ t ≤ tj+1. Since the times tj have uniform
spacing Δt = T/J , it follows that
j =[
t
Δt
](here [a] means the greatest integer in a). The interpolation weights are:
wj+1 =t − tj
tj+1 − tj=
t
Δt− j = 1 − wj
Then
E = Ejwj + Ej+1wj+1
is the required interpolated value of the equation coefficient (assuming E0 = EJ ). Fourier and Fourier-linear
interpolation are based on a harmonic analysis of the coefficients. Complex harmonics En of the coefficients are:
En =Kn
J
J∑j=1
Ej e−inΩtj
where Ω = 2π/T is the fundamental frequency. Retaining only N harmonics, the interpolated value of the
equation coefficient is then:
E =N∑
n=−N
En einΩt
=J∑
j=1
Ej
[1J
N∑n=−N
Kn einΩ(t−tj)
]
=J∑
j=1
Ej
[1J
(1 + 2
N∑n=1
Kn cos(nΩ(t − tj))
)]
=J∑
j=1
Ejwj
140 FLUTTER TASK
The factor Kn determines the interpolation option. For Fourier interpolation, Kn = 1 and the number of harmonics
N should be less than J/2. For Fourier-linear interpolation,
Kn =(
J
πnsin(
πn
J))2
which gives the harmonics of a linear interpolation between the coefficients at tj .
17-3.4.2 Eigenanalysis
The transient solution of the homogeneous equations x = Ax can be written as:
x =∑
i
ui(t)eλitqi(0)
as for a time-invariant system, but here the modes ui are periodic functions of time. The eigenvalues λi are obtained
as follows. The state transition matrix φ is calculated by integrating φ = Aφ over one period, t = 0 to T , with
initial conditions φ(0) = I . Let λC and v be the eigenvalues and eigenvectors of the matrix C, which is the state
transition matrix at the end of the period, C = φ(T ). Then the system roots are
λ =1T
lnλC =1T
(ln |λC | + i� λC)
(the principal part, since a multiple of 2π/T can be added to the frequency), and the mode shapes can be obtained
from
ui = e−λitφ(t)vi
The system is unstable if Reλi > 0 for any mode (or |λC | > 1). Numerical integration of the equations φ = Aφ
can be performed, for times tn = nh, using either a modified trapezoidal algorithm:
φn+1 = φn +h
2
(φn+1 + φn
)+ O(h3)
= φn +h
2(An+1φn+1 + Anφn)
=(
1 − h
2An+1
)−1 (1 +
h
2An
)φn
∼= φn +h
2
(1 +
h
2An+1
)(An+1 + An)φn
or a 4-th order Runge-Kutta algorithm:
φn+1 = φn +h
6(K1 + 2K2 + 2K3 + K4) + O(h5)
K1 = Anφn
K2 = An+1/2
(φn +
h
2K1
)K3 = An+1/2
(φn +
h
2K2
)K4 = An+1 (φn + hK3)
with initial conditions φ(0) = I .
FLUTTER TASK 141
17-3.4.3 Time History Response
Consider the time history response for the system with zero initial conditions at t = 0, and control having
time variation of the form v = v0f(τ) (f = 0 for τ < 0). The following cases are implemented.
a) Impulse: not available for numerical integration
b) Step: f = 1
c) Ramp: f = t
d) Cosine impulse: f = 1/2(1 − cos 2πt/T ) for 0 < t < nT
e) Sine doublet: f = sin 2πt/T for 0 < t < nT
f) Square impulse: f = 1 for 0 < t < T
g) Square doublet: f = 1 for 0 < t < T/2f = −1 for T/2 < t < T
h) Triangular impulse: f = 2t/T for 0 < t < T/2f = 2 − 2t/T for T/2 < t < T
i) Triangular doublet: f = 4t/T for 0 < t < T/4f = 2 − 4t/T for T/4 < t < 3T/4f = 4t/T − 4 for 3T/4 < t < T
j) General piecewise linear: f = fi at ti, i = 1 to I;
f0 = 0 at t0 = 0, and f = fI for t > tI
The equations are linear, so the response is evaluated for unit amplitude of each element of the control v. The time
history response is evaluated by numerical integration. The result is extended to the case of input beginning at
time tB . Numerical integration of the equations x = Ax + Bv can be performed, for times tn = nh, using either
a modified trapezoidal algorithm:
xn+1 = xn +h
2(xn+1 + xn) + O(h3)
= xn +h
2(An+1xn+1 + Bn+1vn+1 + Anxn + Bnvn)
=(
1 − h
2An+1
)−1 [(1 +
h
2An
)xn +
h
2(Bn+1vn+1 + Bnvn)
]∼= xn +
h
2
(1 +
h
2An+1
) [(An+1 + An)xn + Bn+1vn+1 + Bnvn
]or a 4-th order Runge-Kutta algorithm:
xn+1 = xn +h
6(K1 + 2K2 + 2K3 + K4) + O(h5)
K1 = Anxn + Bnvn
K2 = An+1/2(xn +h
2K1) + Bn+1/2vn+1/2
K3 = An+1/2(xn +h
2K2) + Bn+1/2vn+1/2
K4 = An+1(xn + hK3) + Bn+1vn+1
142 FLUTTER TASK
Then the output yn+1 = Cxn+1 + Dvn+1 is evaluated. The initial conditions are x0 = 0, and v = v0f(τ).Considering all control elements simultaneously is equivalent to integrating the matrix equations
X = AX + BV
Y = CX + DV
where V = If(τ), and the number of columns of X and Y equals the length of v.
Chapter 18
FLUTTER LOOP
18–1 Description
A loop is described by identifying its parts, child loops, and write modules. The parts can be solved before
or after the child loops. The parts are solved in passes, and within a pass solved in the order defined. The loops
are hierarchical. A loop can have at most one parent, but can have more than one child. A first loop has no parent;
a last loop has no child. The system can have only one first loop. There is a single type of flutter loop, which can
implement the following operations:
a) merge equations of parts and child loops;
b) transform variables;
c) reduce equations (eliminate variables);
d) average equations over period;
e) quasistatic reduction of equations.
The transform can be applied to degrees of freedom, output variables, and input variables. The following transforms
are used in the flutter task: multiblade coordinates; rotating-to-nonrotating; symmetric/antisymmetric. The order
reduction can be applied to degrees of freedom, output variables, and input variables. The quasistatic reduction
can be applied to degrees of freedom, with or without a residual. The operations to reduce the equations or perform
a quasistatic reduction are optional in each loop. Any variables identified for reduction (zero or quasistatic) that
remain in the final loop equations will be handled by the analysis of the flutter equations.
Write modules handle print, printer-plot, and write to plot file operations. The write module is identified in
the loop input data. Parameters controlling the write operations are obtained from the corresponding system piece.
In the flutter task, write modules produce output during evaluation of the flutter equations. The analysis of the
flutter equations also produces output. The flutter loop write modules available produce output corresponding the
loop solution; and part solution. They write the equations of the loop or part.
18–2 Implementation
18-2.1 Loop Algorithm
A loop is executed for a time value. The analysis executes the first loop for a single time if the equations are
time-invariant, and for times over one or more periods if the equations are periodic. An inner loop is executed at
the same time as the first loop, unless a parent averages the equations. The averaging operation introduces another
time step iteration, which defines the times at which all child loops are executed.
144 FLUTTER LOOP
average over period (time step)solve parts before child loops
for each solution passsolve interface parts
solve differential equation partschild loopsolve parts after child loops
for each solution passsolve interface parts
solve differential equation partsmerge equations of parts and child loopstransform variablesreduce equations
quasistatic reductionexecute write modules at end of loop
Figure 18-1 Outline of loop solution process.
A loop combines the equations produced by the part solutions and child loops, and performs certain operations
on the loop equations. Since the part equations are coupled, it is important that the parts be solved in the proper
order. The order in which the parts are solved is specified by the location of the part in the loops, and within the
loop by an assigned solution pass. Figure 1 is an outline of the loop solution process. A first loop has no parent; a
last loop has no child. The analysis can have only one first loop.
The loop equations can optionally be averaged over a window of one period before the current time. Averaging
in the first loop produces a constant-coefficient approximation for the system. If a loop averages the equations,
it only needs to evaluate them the first time it is called. The transforms can be time-varying, so they are applied
before the equations are averaged. The write modules are executed after the equations are averaged. Hence for
any part or child loop, the equations written are from the last time step of the average. To write the equations at
each time step of the average, both the part and the write module should be put inside the child loop.
18–3 Theory
18-3.1 Flutter Equations
A differential equation part p produces linear equations of the following form:[Axxpp
0−Afxpp I
] (xp
fp
)+
[Axxpq
Axfpq
−Afxpq −Affpq
] (xq
fq
)=
[Bxp
Bfp
]v
(yp
ep
)=
[Cxpp 0Expp 0
] (xp
fp
)+
[Cxpq Cfpq
Expq Efpq
] (xq
fq
)+
[Dp
Fp
]v
where q refers to coupling with equations external to this part. The variables involved are:
a) xp and fp are the degrees of freedom ξ and constraint forces f0 of part p;
b) xq and fq are the degrees of freedom ξ and constraint forces f0 of the rest of the system;
FLUTTER LOOP 145
c) yp are the output variables y of part p.
d) ep are the eliminated degrees of freedom ξb of part p.
e) v are the input variables u of the entire system;
At this stage of the analysis, the variables fp and fq that need to be considered are just the structural dynamic,
no-residual constraint forces that couple parts. All other interface variables have been decoupled from the flutter
equations. The eliminated variables ep may be required to couple the parts, but are not needed in the final system
equations. These equations can also be written in the following form:
Axxppxp + Axxpqxq + Axfpqfq = Bxpv
fp = Afxppxp + Afxpqxq + Affpqfq + Bfpv
yp = Cxppxp + Cxpq
xq + Cfpqfq + Dpv
ep = Exppxp + Expq
xq + Efpqfq + Fpv
The matrices Axx, Afx, and Cx can be dynamic, meaning that they depend on the time derivatives of x. The
derivatives of the matrices Ex are also required. The matrices Ef and F may be produced by the quasistatic
reduction. The dictionary describes all matrices used by the loop, including their dynamic order and the requirement
for derivatives.
The loop equations also take the above form, which is maintained when the loop merges the equations and
operates on them. For a loop, p refers to the combined variables of all parts and child loops, and q refers to the
rest of the system. The first loop contains the entire system (there are no xq and fq), so the final equations are:
Axxppxp = Bxpv
yp = Cxppxp + Dpv
(the equations for fp and ep can be ignored). These are the linear differential equations of the flutter task:
A2x + A1x + A0x = B0v
y = C2x + C1x + C0x + D0v
where x is the vector of system degrees of freedom, v the vector of system controls, and y the vector of system
sensors. Note that if a loop performs a quasistatic reduction to eliminate all the degrees of freedom xp, then the
constraint force equations
fp = Afxpqxq + Bfp
v
give the stability derivatives of the subsystem.
18-3.2 Merge Equations
The loop merges the equations from all its differential equation parts, and all its child loops. The loop variables
xp, fp, and yp are the collection of all variables from these equations. Variables xq and fq of a part or child loop,
coupling with the rest of the system, may now be found in the degrees of freedom xp and constraint forces fp of this
loop. The remaining variables xq may be found in the eliminated degrees of freedom ep of this loop. Identifying
such variables, the merged equations take the form:[Axxpp
Axfpp
−Afxpp Affpp
] (xp
fp
)+
[Axxpq
Axfpq
−Afxpq −Affpq
] (xq
fq
)+
[Axep
−Afep
]ep =
[Bxp
Bfp
]v
146 FLUTTER LOOP(yp
ep
)=
[Cxpp
Cfpp
ExppEfpp
] (xp
fp
)+
[Cxpq
Cfpq
ExpqEfpq
] (xq
fq
)+
[Cep
Eep
]ep +
[Dp
Fp
]v
To recover the standard form for the flutter equations, it is necessary to eliminate the ep and fp columns. To
eliminate the ep columns, the ep equation is multiplied by
[I − Eep
]−1
and then ep is substituted in the xp, fp, and yp equations (note that the derivatives of Eepexist). To eliminate the
fp columns, the fp equation is multiplied by
A−1ffpp
giving
fp = Afxppxp + Afxpq
xq + Affpqfq + Bfp
v
and then fp is substituted in the xp, yp, and ep equations, producing the following increments to the matrices:
Δ[Axxpp
AxxpqAxfpq
−Bxp
]= Axfpp
[Afxpp
AfxpqAffpq
Bfp
]Δ
[Cxpp Cxpq Cfpq Dp
]= Cfpp
[Afxpp Afxpq Affpq Bfp
]Δ
[Expp
ExpqEfpq
Fp
]= Efpp
[Afxpp
AfxpqAffpq
Bfp
]Some fp and ep variables are now internal, meaning that they do not appear in any parent loop. Since the parent
loop functionality is not available, it is simplest to retain such internal variables, rather than attempt to identify
and delete them.
18-3.3 Transform Variables
The transforms can be applied to degrees of freedom xp, output variables yp, and input variables v. The
transforms used in the flutter task are applied in the following order:
1) multiblade coordinates;
2) rotating-to-nonrotating;
3) symmetric/antisymmetric.
A symmetric transform of multiblade coordinates or nonrotating variables is possible. The transforms are applied
entirely within the loop, so they can not be applied to any degrees of freedom xp that couple the loop with other
parts (appear as xq in other parts). The loop in which a transform is to be applied must be designated. Degrees of
freedom xp and output variables yp appear in only one loop, but the system input variables v appear in all loops.
Hence any transform of v is applied in all loops at the level of the designated loop.
18-3.4 Reduce Equations
The order reduction can be applied to designated degrees of freedom xp, output variables yp, and input
variables v. The reduction is accomplished by deleting the appropriate rows and/or columns from the equation
matrices. The reduction is applied to all designated variables in the loop, except those to which a transform is to
be applied in a parent loop. It is not consistent to eliminate any degrees of freedom xp that couple the loop with
other parts (appear as xq in other parts).
FLUTTER LOOP 147
18-3.5 Quasistatic Reduction
The quasistatic reduction can be applied to designated degrees of freedom xp, with or without a residual.
The quasistatic degrees of freedom must be elastic (nonsingular spring). The remaining degrees of freedom must
have nonsingular mass. Hence for retained first order states (zero column of mass in all matrices), the substitution
zi = xi is made before the quasistatic reduction, and xi = zi after the reduction. If these conditions are not
satisfied, then the quasistatic reduction is not performed in this flutter loop. The quasistatic reduction performed
during the analysis of the flutter equations is more general, and can handle quasistatic velocity or acceleration as
well. The reduction is applied to all designated variables in the loop, except those to which a transform is to be
applied in a parent loop. It is not consistent to eliminate any degrees of freedom xp that couple the loop with other
parts (appear as xq in other parts). The equations are partitioned according to the quasistatic designation of xp:[Akk Akl
Alk All
] (xk
xl
)+
[Akxq
Alxq
]xq +
[Akfq
Alfq
]fq =
[Bk
Bl
]v
⎛⎝ fye
⎞⎠ =
⎡⎣Afk Afl
Ck Cl
Ek El
⎤⎦(xk
xl
)+
⎡⎣Afxq
Cxq
Exq
⎤⎦xq +
⎡⎣Affq
Cfq
Efq
⎤⎦ fq +
⎡⎣Bf
DF
⎤⎦ v
where xl are the degrees of freedom to be eliminated. The subscript 0 will indicate the spring matrix of a dynamic
matrix. The quasistatic reduction is implemented by neglecting the mass and damping of All; then introducing a
transformation that decouples the spring matrix:(xk
xl
)=
[Tk Tl
](xk
xl
)=
[I 0
−A−10ll A0lk I
] (xk
xl
)
and multiplying the equations by [TT
k
TTl
]=
[I −A0klA
−10ll
0 I
]For time-varying equations, this transformation is applied at each time step, ignoring time derivatives. With the
quasistatic approximation, the equations of motion take the form:[Akk 0
0 A0ll
] (xk
xl
)+
[Akxq
Alxq
]xq +
[Akfq
Alfq
]fq =
[Bk
Bl
]v
⎛⎜⎝f
y
e
⎞⎟⎠ =
⎡⎢⎣Afk A0fl
Ck C0l
Ek E0l
⎤⎥⎦(xk
xl
)+
⎡⎢⎣Afxq
Cxq
Exq
⎤⎥⎦xq +
⎡⎢⎣Affq
Cfq
Efq
⎤⎥⎦ fq +
⎡⎢⎣Bf
D
F
⎤⎥⎦ v
Two approximations have been made. The first approximation is that the xl variables and equations are quasistatic.
The velocity and acceleration terms of xl are neglected. The second approximation is that the off-diagonal mass
and damping terms in the transformed equations can be neglected. This approximation follows from the quasistatic
assumption if there are no rigid degrees of freedom in xk (nonsingular spring A0kk). In the presence of xk rigid
degrees of freedom, there are inertial relief effects on the residual. Here it is assumed that there are no rigid degrees
of freedom in xk, or the inertial relief is ignored. Solving the equations for xl introduces a residual in y and f :
xl = A−10ll
[− Alxqxq − Alfqfq + Blv
]
148 FLUTTER LOOP
which producesΔ
[Afxq Affq Bf
]= A0flA
−10ll
[−Alxq −Alfq Bl
]Δ
[Cxq Cfq D
]= C0lA
−10ll
[−Alxq −Alfq Bl
]Δ
[Exq Efq F
]= E0lA
−10ll
[−Alxq −Alfq Bl
]A no-residual option is available, for which xl = 0. The operation first calculates this residual. Then the
quasistatic reduction is implemented by multiplying the equations by TTk (ignoring All2 and All1), and introducing
the transformation x = Tkxk.
Chapter 19
FLUTTER PART
19–1 Description
A part is described by identifying its motion, constraint, and output equations. Each equation can be in only
one part (possibly no-solution method). Each part can be solved in only one loop (or no loop). The methods
implemented for flutter parts are:
a) no solution;
b) interface;
c) differential equations.
The interface and differential equations solution methods both produce linearized equations. A part might not
appear in any loop. In such a case the the part operation (none) is equivalent to the no solution method. Each part
solution is executed at a single time value, determined by the loop operations and flutter analysis.
All motion equations of a single component are in the same part. A part containing a structural dynamic,
no-residual constraint equation must also contain the motion equations for the degrees of freedom to be eliminated
by the constraint. A structural dynamic interface must be in the same part as one of the components that it connects.
For the interface solution method, the part can contain only input/output constraint equations (no output equations,
motion equations, or structural dynamic constraint equations).
The solution methods produce equations linearized about the total trim response (nominal, reference, and
difference). Optionally the equations can be linearized about a reference that is zero; the nominal response; the
nominal plus the trim reference; or the total trim solution. The last option is the correct reference for a nonlinear
system. Note that the reference is updated at the end of the trim task, for use in the flutter task.
19–2 Implementation
19-2.1 No Solution Method
For the no solution method, the equations assigned to the part are not linearized. The corresponding variables
will then have zero perturbation value. Such a part serves to suppress the effect of these system variables during
the task.
19-2.2 Interface Solution Method
The interface method solves input/output constraint equations for the interface variables, in terms of the
system degrees of freedom and input. These variables may then be substituted into the equations of other parts. All
150 FLUTTER PART
evaluate matrices of interface equationfor each row vector
for each column vectorevaluate submatrix
substitute for parent interfacescalculate part matrices
Figure 19-1 Outline of interface solution method.
calculate modesevaluate matrices of differential equations
for each row vectorfor each column vector
evaluate submatrixsubstitute for parent interfacescalculate part matrices
Figure 19-2 Outline of differential equations solution method.
input/output interface variables are eventually eliminated from the system equations. The input/output constraint
equations could be included in a differential equation part, and all solved simultaneously. It is more efficient to
solve them sequentially, in parts containing a small number of vectors. The constraint equations can depend on the
interface variables of other (parent) input/output interfaces (but not those solved in a differential equation part).
The interface parts must be solved in the correct order, so that the solution from a parent interface part is available
when required. Figure 1 is an outline of the process for the interface solution method. The submatrix is obtained
by analytical or numerical perturbation of the constraint equation. The last step includes solution of the constraint
equations.
19-2.3 Differential Equations Solution Method
The differential equations method obtains motion, constraint, and output equations. The constraint equations
are solved to eliminate part variables. The structural dynamic degrees of freedom can be transformed by modes.
It is possible to omit selected degrees of freedom from the solution. The equations can depend on the interface
variables of (parent) interface parts (but not those solved in a differential equation part). The interface parts must
be solved in the correct order, so that the solution from a parent interface part is available when required. Parts can
be coupled by degrees of freedom. These degrees of freedom can not be in a mode set or a transform. Parts can be
coupled by no-residual structural dynamic interface forces. This occurs when the interface connects components
in different parts. Parts can not be not coupled by interface variables, except for no-residual structural dynamic
interface forces; and input/output interface variables from an interface part. Figure 2 is an outline of the process for
the differential equations solution method. The submatrix is obtained by analytical or numerical perturbation of
the motion, constraint, or output equation. The last step includes solution of the constraint equations to eliminate
FLUTTER PART 151
variables, and any modal transformations.
19–3 Theory
19-3.1 System Equations
The motion, constraint, and output equations are linearized about the trim response. It is assumed that the
trim solution produces an equilibrium solution, which therefore cancels from the flutter equations. The resulting
linear differential equations, for the entire system, have the following form:⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ =
⎛⎜⎝ φTe
FTe1
0
⎞⎟⎠ u
y =[φd Fd1 Fd0
]⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ + Geu
The constraint equations and interface variables fl are partitioned as follows:
a) f0, all structural dynamic no-residual interfaces;
b) f1, other interfaces, either structural dynamic full-residual or input/output.
The zeros in the above equations arise from the properties of a structural dynamic, no-residual interface. FTe0
must be zero in order to avoid time derivatives of u in the final equations. The assumption of full-residual means
than G1 is full rank. The matrices H , φx1, and φd can be dynamic, meaning that the matrices depend on the time
derivatives of ξ. Dynamic matrices can be zero, first, or second order: depend on displacement, or on displacement
and velocity, or on displacement and velocity and acceleration. If the equations are time-varying, the derivatives
of the no-residual constraint equation are required, meaning the derivatives of φx0. The dictionary describes all
matrices used by the part, including their partition by vector or element, their dynamic order, and the requirement
for derivatives.
The constraint equations are solved to eliminate system variables, in terms of a transformation [ψ χ]. When
the system is divided into parts, it is no longer possible to obtain this transformation ([ψ χ] is not block diagonal, so
the system equations can not be decoupled by considering the parts separately). A part can solve its own constraint
equation in terms of its own variables, essentially producing a block on the diagonal of the transformation [ψ χ].But the off-diagonal portions of this transformation (which couple parts) are needed as well. Hence for the flutter
parts it is necessary to make additional assumptions about the form of the equations, so that the constraint equations
can be solved independently, and the part equations then coupled by the loops.
19-3.2 Interface Solution Method
The constraint equations are linearized about the trim response. The matrices are evaluated at a specified
time. The resulting linear equations of the part have the following form:
φx1ξ + G1sf1s = FTe1u
or
φx1ξ + G1f1 +∑
G1jf1j = FTe1u
152 FLUTTER PART
after partitioning f1s (the system interface variables) and G1s. The variables in these equations are:
a) f1 is the vector of input/output interface variables fl corresponding to the constraints of the part;
b) f1j are the variables of a parent interface part;
c) ξ are the system degrees of freedom;
d) u are the system input variables.
That these equations do not depend on f0 follows from the properties of a structural dynamic, no-residual interface.
The matrix G1 is full rank; probably the diagonal blocks of G1 are the unit matrix. Note that ξ includes any frame
degrees of freedom in the part (rigid body degrees of freedom of frame components). The matrix φx1 can be
dynamic, meaning that the matrix depends on the time derivatives of ξ. Dynamic matrices can be zero, first, or
second order. The dictionary describes all matrices used by the part, including their partition by vector or element,
their dynamic order, and the requirement for derivatives.
It is assumed that the equations do not depend on f1 of any differential equations part. The dependence on
f1j of parent interface parts must not be circular, so any fully coupled input/output interfaces must be in the same
part. The solutions for the parent interface parts are
f1j = T1ξjξ + T1uju
Substituting for all f1j in this part gives
φx1 = φx1 +∑
G1jT1ξj
FTe1 = FT
e1 −∑
G1jT1uj
Then the solution for f1 of this part is
f1 = G−11 (−φx1ξ + FT
e1u) = T1ξξ + T1uu
which can now be used in other parts.
19-3.3 Differential Equations Solution Method
The motion, constraint, and output equations are linearized about the trim response. The matrices are evaluated
at a specified time. The resulting linear differential equations of the part have the following form:⎡⎢⎣ Hs φTf1s φT
f0s
φx1s G1s 0φx0s 0 0
⎤⎥⎦⎛⎜⎝ ξs
f1s
f0s
⎞⎟⎠ =
⎡⎢⎣ φTe
FTe1
0
⎤⎥⎦u
y =[φds Fd1s Fd0s
]⎛⎜⎝ ξs
f1s
f0s
⎞⎟⎠ + Geu
Thus after partitioning the system degrees of freedom and system interface variables:⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ +∑ ⎡⎢⎣ Hq 0 φT
f0q
0 0 0φx0q 0 0
⎤⎥⎦⎛⎜⎝ ξq
f1q
f0q
⎞⎟⎠ +∑ ⎡⎢⎣φT
f1j
00
⎤⎥⎦ f1j =
⎡⎢⎣ φTe
FTe1
0
⎤⎥⎦u
FLUTTER PART 153
y =[φd Fd1 Fd0
]⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ +∑[
φdq 0 Fd0q
]⎛⎜⎝ ξq
f1q
f0q
⎞⎟⎠ +∑
Fd1jf1j + Geu
where q is a sum over other differential equation parts, and j is a sum over parent interface parts. The degrees of
freedom are ξ, and the constraint equations and interface variables fl are partitioned as follows:
a) f0, all structural dynamic no-residual interfaces;
b) f1, other interfaces, either structural dynamic full-residual or input/output.
The remaining variables in these equations are:
c) f1j are the variables of a parent interface part;
d) u are the system input variables;
e) y are the part output variables.
The zeros in the f0 rows and columns arise from the properties of a structural dynamic, no-residual interface. The
assumption of full-residual means that G1 is full rank; probably the diagonal blocks of G1 are the unit matrix
for input/output interfaces. Note that ξ includes any frame degrees of freedom in the part (rigid body degrees of
freedom of frame components); except that the structural dynamic constraint equations include frame motion only
up to (not including) the common parent frame of the interface.
The matrices H , Hq, φx1, φd, and φdq can be dynamic, meaning that the matrices depend on the time
derivatives of ξ. Dynamic matrices can be zero, first, or second order. If the equations are time-varying, the
derivatives of the no-residual constraint equation are required, meaning the derivatives of φx0 and φx0q. The
matrices are partitioned according to the vectors of ξ, f1, f0, y, and u. So they can all be sparse. Any submatrix
that is zero because the equation does not depend on a vector is neither calculated nor stored. The dictionary
describes all matrices used by the part, including their partition by vector or element, their dynamic order, and the
requirement for derivatives.
It is assumed that the equations do not depend on f1 of any other differential equations part, but they can
depend on f1j of parent interface parts. It is assumed that the f1 constraint equations do not depend on the
degrees of freedom ξ or interface variables f1 of any other part. It is assumed that any degrees of freedom ξq that
couple differential equations parts are not in a mode set or a transform (so these variables never change during the
construction of the flutter equations).
For a part with only structural dynamic components and interfaces, the motion equations will be second order,
φx1 will not be dynamic, and symmetry is expected. Symmetry might not be found however, for several reasons:
the use of frame degrees of freedom; the use of a structural dynamic interface force in connection axes; or because
the trim solution has not converged, so the component is not in equilibrium. Symmetry is never assumed in the
solution procedure however, since it is unlikely to be found in the general case with components and interfaces
that are not structural dynamic kind.
The interface variables from parent interface parts are eliminated. The solutions for the parent interface parts
are
f1j = T1ξjξ + T1uju
154 FLUTTER PART
Substituting for all f1j in this part gives[H Hq
]=
[H Hq
]+
∑φT
f1jT1ξj[φd φdq
]=
[φd φdq
]+
∑Fd1jT1ξj
(the notation is symbolic, since the degrees of freedom in the parent interface part solution must be partitioned
into those of this part and of other differential equations parts; first the above substitution is performed for Hs and
φds, then the system degrees of freedom are partitioned); and
φTe = φT
e −∑
φTf1jT1uj
Ge = Ge +∑
Fd1jT1uj
Then the equations of this part become⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ +∑ ⎡⎢⎣ Hq 0 φT
f0q
0 0 0φx0q 0 0
⎤⎥⎦⎛⎜⎝ ξq
f1q
f0q
⎞⎟⎠ =
⎡⎢⎣ φTe
FTe1
0
⎤⎥⎦u
y =[φd Fd1 Fd0
]⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ +∑[
φdq 0 Fd0q
]⎛⎜⎝ ξq
f1q
f0q
⎞⎟⎠ + Geu
(dropping the hat notation). The constraint equations are solved to eliminate part variables:
a) The no-residual structural dynamic constraint equations are solved to eliminate degrees
of freedom ξb. These degrees of freedom are a subset of ξ, one element identified for each
element of f0. Thus the length of ξb equals the length of f0.
b) The remaining constraint equations are solved to eliminate the interface variables f1.
Thus the number of degrees of freedom is reduced by solving no-residual constraints (and the solution for the
interface forces is decoupled from the equations of motion). Solving full-residual or input/output constraints
does not reduce the number of degrees of freedom. The degrees of freedom are partitioned as (ξb, ξc). The
transformation obtained by solving the constraint equations is:
⎛⎜⎝ξ
f1
f0
⎞⎟⎠ =
⎡⎢⎣ψφ1 0 0 χφ0
ψG1 0 G−11 χG0
0 I 0 0
⎤⎥⎦⎛⎜⎜⎜⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎟⎟⎟⎠This transform is not unique. With ξb identified, the degrees of freedom are partitioned as (ξb, ξc), and correspond-
ingly the no-residual constraint equations:
φx0 =[φ0b φ0c
]It is assumed that the interfaces are independent, and the degrees of freedom ξb properly identified, so φ0b is
full-rank. Thus: [ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]
FLUTTER PART 155
and [ψG1 χG0
]= −G−1
1 φx1
[ψφ1 χφ0
]The derivatives of φx0 give the derivatives of the transformation. Since symmetry is not assumed, the transpose
problem must also be solved: from
φf0 =[φ0b φ0c
]obtain [
ψφ1 χφ0
]=
[−φ−1
0b φ0c φ−10b
I 0
]and [
ψG1 χG0
]= −G−T
1 φf1
[ψφ1 χφ0
]Thus the equations are multiplied by: ⎡⎢⎢⎢⎣
ψTφ1 ψT
G1 00 0 I
0 I 0χT
φ0 χTG0 0
⎤⎥⎥⎥⎦Introducing these transforms produces the equations⎡⎢⎢⎢⎣
K1 0 0 LTf
0 0 0 I
0 0 I 0Lx I 0 K3
⎤⎥⎥⎥⎦⎛⎜⎜⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎟⎟⎠ +∑
⎡⎢⎢⎢⎣M1 M3
φx0q 00 0
M2 M4
⎤⎥⎥⎥⎦(
ξq
f0q
)=
⎡⎢⎢⎢⎣N1
0FT
e1
N2
⎤⎥⎥⎥⎦u
y =[P1 Fd0 Fd1G
−11 P5
]⎛⎜⎜⎜⎝
η1
η0
ζ1
ζ0
⎞⎟⎟⎟⎠ +∑[
φdq Fd0q
](ξq
f0q
)+ Geu
ξb =[−φ−1
0b φ0c φ−10b
](η1
ζ0
)=
[R1 R2
](η1
ζ0
)where [
K1 LTf
Lx K3
]=
[ψT
φ1
χTφ0
](H − φT
f1G−11 φx1)
[ψφ1 χφ0
][
M1 M3
M2 M4
]=
[ψT
φ1
χTφ0
] [Hq φT
f0q
][
N1
N2
]=
[ψT
φ1 ψTG1
χTφ0 χT
G0
] [φT
e
FTe1
]
[P1 P5
]=
[φd Fd1
] [ψφ1 χφ0
ψG1 χG0
][R1 R2
]=
[−φ−1
0b φ0c φ−10b
]
156 FLUTTER PART
It is now possible to eliminate ζ0 and ζ1 from these equations, and to substitute for η0 = f0 in the output y:⎡⎢⎣M1
M2
P2
⎤⎥⎦ =
⎡⎢⎣M1
M2
φdq
⎤⎥⎦ −
⎡⎢⎣LT
f
K3
P5
⎤⎥⎦φx0q
P4 = Ge + Fd1G−11 FT
e1[P1 P2 P3 P4
]=
[P1 P2 Fd0q P4
]+ Fd0
[−Lx −M2 −M4 N2
]R2 = −R2φx0q
The result is: [K1 0
Lx I
] (η1
f0
)+
∑ [M1 M3
M2 M4
] (ξq
f0q
)=
[N1
N2
]u
y =[P1 0
](η1
f0
)+
∑[P2 P3
](ξq
f0q
)+ P4u
ξb = R1η1 +∑
R2ξq
The first equation is the reduced equation of motion for the remaining degrees of freedom η1 = ξc. The sec-
ond equation is the solution for the no-residual constraint forces η0 = f0, which has been decoupled by the
transformation.
At this point, a modal transformation is introduced: η1 = Φθ, and the equations for η1 are multiplied by ΦT .
The part can have one or more mode sets (or none). The constant matrix Φ is block diagonal, partitioned by mode
set; the not-mode block is just the unit matrix I . Modal structural damping is added, as a diagonal viscous damping
matrix D with elements calculated from the modal mass m and spring k, and an input structural damping factor
g: d = g√
mk, so g is twice the critical damping ratio. Thus the reduced equations of motion are transformed to
H = ΦT K1Φ + Dd
dt
Next the degrees of freedom θ are partitioned by order reduction:
a) dynamic θk, solve complete equations;
b) zero θz , truncate dynamic and static terms.
The order reduction is specified for the elements of the degrees of freedom ξ, or for the modal elements. For the
flutter task, quasistatic reduction is handled by the loop solution procedure. The corresponding partition of the
modal transformation matrix is:
Φ =[Φk Φz
]and Φz can be ignored. Performing the transformation:
Hkk = ΦTk K1Φk + Dk
d
dt[M1k M3k N1k
]= ΦT
k
[M1 M3 N1
]
FLUTTER PART 157⎛⎜⎝ Lxk
P1k
R1k
⎞⎟⎠ =
⎛⎜⎝ Lx
P1
R1
⎞⎟⎠ Φk
the equations become [Hkk 0
Lxk I
] (θk
f0
)+
∑ [M1k M3k
M2 M4
] (ξq
f0q
)=
[N1k
N2
]u
y =[P1k 0
](θk
f0
)+
∑[P2 P3
](ξq
f0q
)+ P4u
ξb = R1kθk +∑
R2ξq
Finally, the interface forces and eliminated degrees of freedom of this part can be partitioned into external and
internal:
f0 =(
fext
fint
)ξb =
(ξext
ξint
)where fext and ξext couple this part with the rest of the system (so appear as f0q and ξq of some other part). The
equations for fint and ξint can be ignored now. Thus the differential equations part p produces linear equations of
the following form:
[Axxpp 0
−Afxpp I
] (xp
fp
)+
[Axxpq Axfpq
−Afxpq −Affpq
] (xq
fq
)=
[Bxp
Bfp
]v
(yp
ep
)=
[Cxpp
0Expp
0
] (xp
fp
)+
[Cxpq
Cfpq
ExpqEfpq
] (xq
fq
)+
[Dp
Fp
]v
where q refers to coupling with equations external to this part. Only the quasistatic reduction in a flutter loop
produces Efpqand Fp; these matrices are zero here. The variables involved are:
a) xp and fp are the degrees of freedom θ and external constraint forces fext of part p;
b) xq and fq are the degrees of freedom ξ and constraint forces f0 of the rest of the system;
c) yp are the output variables y of part p.
d) ep are the external eliminated degrees of freedom ξext of part p;
e) v are the input variables u of the entire system;
At this stage of the analysis, the variables fp and fq that need to be considered are just the structural dynamic,
no-residual constraint forces that couple parts. All other interface variables have been decoupled from the flutter
equations. The eliminated variables ep may be required to couple the parts.
158 FLUTTER PART
Chapter 20
TRANSFORM
20–1 Description
A transform is a system piece that provides a standard means to define transformations of variables. Such
transforms can used in the trim, transient, and flutter tasks. The transforms implemented are:
a) multiblade coordinates;
b) rotating-to-nonrotating;
c) symmetric/antisymmetric.
A transform can be applied to degrees of freedom, modes, output variables, or input variables. The flutter
task applies the transforms in a designated loop; the symmetric transform can be applied to variables already
transformed to multiblade coordinates or to nonrotating variables. The trim or transient task applies the transforms
in a designated part solution (only to degrees of freedom or modes, not the symmetric/antisymmetric transform).
All the variables to be transformed must be in the same trim or transient part. For each transformed variable, it
is possible to specify the order reduction to be applied during the solution of the equations (zero, dynamic, or
quasistatic).
A multiblade coordinate transform or rotating-to-nonrotating transform requires specification of a period
and reference azimuth. The multiblade coordinate transform is intended for rotating systems with axisymmetric
geometry (but arbitrary motion). It is most useful for configurations with N equally-spaced rotating subsystems.
The rotating-to-nonrotating transform is intended for variables such as the degrees of freedom of a rotating-
frame gimbal or universal joint. The symmetric/antisymmetric transform is intended for systems with a plane of
symmetry. It is only used in the flutter task. The analysis of the flutter equations can be performed for the full
system equations, or separately for the symmetric and antisymmetric subsets of the system equations (assumed
decoupled). Note that any system variables that belong to the symmetric or antisymmetric subsets without a
transform must be designated as such (in the response or modes system piece).
20–2 Theory
20-2.1 Multiblade Coordinate Transform
Consider a rotating system with N equally spaced, identical subsystems (“blades”). The m-th blade is at
azimuth ψm = ψ + m Δψ, Δψ = 2π/N for m = 1 to N . Here ψ is a prescribed, reference azimuth, obtained
from a designated period of the system: ψ = Ωt + ψ0. Let xrot = (xm) be a vector of rotating frame variables
(length N , one for each blade), and xnon the vector (also length N ) of corresponding nonrotating variables or
160 TRANSFORM
multiblade coordinates:
xnon =
⎛⎜⎝x0
xnc
xns
xN/2
⎞⎟⎠with n = 1 to (N −1)/2 for N odd; or n = 1 to (N −2)/2 for N even. The multiblade coordinate transformation
isxrot = Txnon
xrot = T xnon + T xnon
xrot = T xnon + 2T xnon + T xnon
where the m-th row of T is
tm =(1 cos kψm sin kψm −1m
)This is a linear, time-varying transformation of the variables. Note the following properties of the transformation:
DTT T = I
DTT T = E1
DTT T = E2 = E21
orT−1 = DTT = ST
T = TE1
T = TE2
where
D =
⎡⎢⎣1N
2N
2N
1N
⎤⎥⎦
E1 =
⎡⎢⎣0
0 kΩ−kΩ 0
0
⎤⎥⎦
E2 =
⎡⎢⎣0
−k2Ω2
−k2Ω2
0
⎤⎥⎦Thus the transformation from rotating to nonrotating variables is:
xnon = T−1xrot = DTT xrot
xnon = DTT xrot − E1DTT xrot
xnon = DTT xrot − 2E1DTT xrot + E2DTT xrot
It is also necessary to transform the motion or output equations, which is conventionally accomplished by mul-
tiplying the equations by ST . For a transformation that maintains symmetry of the structural dynamic mass and
spring matrices, the equations can be multiplied by TT instead. Maintaining symmetry is not important however,
since the time-varying transformation introduces damping matrices as well.
TRANSFORM 161
The multiblade coordinate transform can be applied to a configuration with blades that are not equally-spaced
or not identical. If the blade-to-blade differences are small, it can still be expected to obtain the benefits of the
transform.
When the transform is used in the frequency domain, as for the trim part solution, it is necessary to go from
nonrotating harmonics to rotating harmonics. Here let u be the nonrotating variables and v the rotating variables:
vm = u0 +∑
k
(ukc cos kψm + uks sin kψm
)+ (−1)muN/2
where ψm = ψ + m Δψ = Ωt + ψ0 + m Δψ; and k = 1 to (N − 1)/2 for N odd, or k = 1 to (N − 2)/2 for N
even. Both u and v are represented by Fourier series:
u = u0 +∑
q
(uqc cos qψ + uqs sin qψ
)v = v0 +
∑p
(vpc cos pψ + vps sin pψ
)where ψ = Ωt + ψref , so
ψm = Ωt + ψ0 + m Δψ = Ωt + ψref +(ψ0 − ψref + m Δψ
)= ψ + δ
(ψ0 is the azimuth shift for the transform, and ψref is the azimuth shift for the harmonic analysis or solution
procedure). The harmonics are obtained by integrating over the period:
v0 =12π
∫ 2π
0
v(ψ) dψ
vpc =1π
∫ 2π
0
v(ψ) cos pψ dψ
vps =1π
∫ 2π
0
v(ψ) sin pψ dψ
Substituting for v(ψ), the rotating harmonics are obtained from the nonrotating harmonics as follows.
(vm)0 = (u0)0 + (−1)m(uN/2)0 +∑
k
[12
(C(ukc)kc − S(ukc)ks + S(uks)kc + C(uks)ks
)](vm)pc = (u0)pc + (−1)m(uN/2)pc +
∑k
[δkp
(C(ukc)0 + S(uks)0
)+
∑q=p−k �=0
12
(C(ukc)|q|c + sign(q)S(ukc)|q|s + S(uks)|q|c − sign(q)C(uks)|q|s
)+
∑q=p+k
12
(C(ukc)qc − S(ukc)qs+S(uks)qc + C(uks)qs
)]
(vm)ps = (u0)ps + (−1)m(uN/2)ps +∑
k
[δkp
(−S(ukc)0 + C(uks)0
)+
∑q=p−k �=0
12
(−S(ukc)|q|c + sign(q)C(ukc)|q|s + C(uks)|q|c + sign(q)S(uks)|q|s
)+
∑q=p+k
12
(S(ukc)qc + C(ukc)qs−C(uks)qc + S(uks)qs
)]
162 TRANSFORM
where C = cos kδ and S = sin kδ. In these expressions, the inner subscript refers to the multiblade coordinate or
variable number, while the outer subscript refers to the harmonic number.
20-2.2 Rotating-to-Nonrotating Transform
Consider a system with rotating frame variables xrot = (xA xB)T , and corresponding nonrotating frame
variables xnon = (xc xs)T . Typically these are motion or force variables about two perpendicular axes in the
plane of rotation. Let ψ be a prescribed, reference azimuth, obtained from a designated period of the system:
ψ = Ωt + ψ0. The rotating-to-nonrotating transformation is
xrot = Txnon
xrot = T xnon + T xnon
xrot = T xnon + 2T xnon + T xnon
where T is
T =[
cos ψ sinψ− sinψ cos ψ
]This is a linear, time-varying transformation of the variables. Note the following properties of the transformation:
T−1 = TT ,
T =[−Ω sin ψ Ω cos ψ−Ω cos ψ −Ω sin ψ
]= T
[0 Ω−Ω 0
]= TE1
T =[−Ω2 cos ψ −Ω2 sinψ
Ω2 sinψ −Ω2 cos ψ
]= T
[−Ω2 0
0 −Ω2
]= TE2
Thus the transformation from rotating to nonrotating variables is:
xnon = T−1xrot = DTT xrot
xnon = DTT xrot − E1DTT xrot
xnon = DTT xrot − 2E1DTT xrot + E2DTT xrot
It is also necessary to transform the motion or output equations, which is accomplished by multiplying the equations
by TT .
When the transform is used in the frequency domain, as for the trim part solution, it is necessary to go from
nonrotating harmonics to rotating harmonics. Here let u be the nonrotating variables and v the rotating variables:
vm = uc cos ψm + us sinψm
where ψm = ψ + Δψ = Ωt + ψ0 + Δψ; with Δψ = 0 for m = A, and Δψ = 90 deg for m = B. Both u and v
are represented by Fourier series:
u = u0 +∑
q
(uqc cos qψ + uqs sin qψ
)v = v0 +
∑p
(vpc cos pψ + vps sin pψ
)
TRANSFORM 163
where ψ = Ωt + ψref , so
ψm = Ωt + ψ0 + Δψ = Ωt + ψref +(ψ0 − ψref + Δψ
)= ψ + δ
(ψ0 is the azimuth shift for the transform, and ψref is the azimuth shift for the harmonic analysis or solution
procedure). The harmonics are obtained by integrating over the period:
v0 =12π
∫ 2π
0
v(ψ) dψ
vpc =1π
∫ 2π
0
v(ψ) cos pψ dψ
vps =1π
∫ 2π
0
v(ψ) sin pψ dψ
Substituting for v(ψ), the rotating harmonics are obtained from the nonrotating harmonics as follows.
(vm)0 =[12
(C(uc)1c − S(uc)1s + S(us)1c + C(us)1s
)](vm)pc =
[δ1p
(C(uc)0 + S(us)0
)+
∑q=p−1 �=0
12
(C(uc)qc + S(uc)qs + S(us)qc − C(us)qs
)+
∑q=p+1
12
(C(uc)qc − S(uc)qs+S(us)qc + C(us)qs
)]
(vm)ps =[δ1p
(−S(uc)0 + C(us)0
)+
∑q=p−1 �=0
12
(−S(uc)qc + C(uc)qs + C(us)qc + S(us)qs
)+
∑q=p+1
12
(S(uc)qc + C(uc)qs−C(us)qc + S(us)qs
)]
where C = cos δ and S = sin δ. In these expressions, the inner subscript refers to the nonrotating or rotating
variables, while the outer subscript refers to the harmonic number.
20-2.3 Symmetric/Antisymmetric Transform
Consider a system with a plane of symmetry. For the purposes of this description, lateral symmetry is assumed,
so the variables are designated right and left: x = (xR xL)T . The corresponding transformed variables are
symmetric and antisymmetric: y = (yS yA)T . The symmetric/antisymmetric transformation is x = Ty, where
T =[
1 11 −1
]This is a linear, time-invariant transformation of the variables. It is also necessary to transform the motion or
output equations, which is conventionally accomplished by multiplying the equations by ST = 12TT . For a
transformation that maintains symmetry of the structural dynamic mass and spring matrices, the equations can be
multiplied by TT instead.
164 TRANSFORM
Chapter 21
MODES
21–1 Description
Modes is a system piece that provides a standard means to define a modal transformation of structural dynamic
degrees of freedom, for use by a part solution procedure. Modal transformation followed by modal truncation can
make the analysis more efficient (if accuracy is retained) by reducing the number of degrees of freedom involved
in the dynamics. With a nonlinear problem (in the trim and transient tasks) it is still necessary to evaluate all
equations and forces of the components and interfaces, so the size of the problem is not actually reduced; but
modal truncation can still help by restricting the states to just those excited by the environment. For a linearized
problem (hence always for the flutter task) modal truncation reduces the size of the system.
A modal transform can be used in the trim, transient, or flutter task, by a part solution. Motion, constraint,
and output equations are identified for each mode set. The motion and constraint equations can come only from
structural dynamic components and interfaces, and must be a subset of the equations of the part in which the modes
are used. The output equations are only used for normalization and print of the mode shapes.
As implemented, the modes must be for a constrained subsystem. Hence the mode set must include the
constraint equations that eliminate any rigid degrees of freedom of the subsystem.
The analysis only uses the mode shapes, as a transformation of the part degrees of freedom. If the mode
shapes are sufficiently accurate, then the modal transformation matrix will be complete (hence invertible). Thus if
all modes are retained, the transformation will affect neither accuracy nor convergence of the solution. In general it
must be determined for each new problem the number of modes that must be kept in order to maintain an accurate
solution. If such modal truncation does not improve the efficiency of the analysis, there is no reason to use modes.
The modal calculation produces modal frequencies and masses, which are printed along with the mode shapes.
Note that none of the printed information (mode shape, frequency, or mass) is actually used in the analysis. The
part solution methods only use the modal transformation (mode shapes for the degrees of freedom, not for the
output variables). In particular, the accuracy of the printed information is not directly connected to the usefulness
of the modal transformation. However, if the modal transformation does not reflect the true structural dynamics
of the subsystem, then modal truncation may not be possible without losing accuracy. Figure 1 illustrates the part
degrees of freedom and output variables in a mode set.
21–2 Implementation
The modal transformation is found for a structural dynamic subset of a part. Consistency of the modal
transformation and the part degrees of freedom is ensured by the requirement that the components and interfaces
166 MODES
output y can measuredisplacement relativecommon frame
component elastic degreesof freedom η = ξ(transformed by modalmatrix, η = Φ θ )
1 c
1
component rigid bodydegrees of freedom(eliminated by structuraldynamic interface)
typical beam component shown
Figure 21-1 Part degrees of freedom and output variables in mode set.
MODES 167
evaluate matrices of differential equationaverage over period
for each row vectorfor each column vector
evaluate submatrixcalculate mode solution matricesevaluate mode shapes (and frequencies, generalized masses)normalize modes (and construct damping matrix)
Figure 21-2 Outline of calculation of modal transformation.
of the mode set be a subset of those of the part. A mode set can be the child of another mode set. The modal
transformation is only calculated for the parent. The child mode set then uses the parent solution. The variables
of the child and parent must be defined and ordered in a consistent manner. Figure 2 is an outline of the process
for calculating the modal transformation. The submatrix is obtained by analytical or numerical perturbation of the
motion, constraint, or output equation.
The modal equations are differential equations linearized about the current reference solution. Optionally
this reference can be zero; the nominal response; the nominal plus the trim reference; or the current solution.
Linearizing about the trim reference is generally good for a nonlinear system. The mode calculation may be
updated during the trim or transient solution. The matrices of the modal equations are obtained by linearizing the
equations with only structural dynamic forces applied to the components. It is assumed that the modal equations
are constant. If necessary the equations may be averaged over a period.
Only the symmetric part of the mass and spring matrices are used to calculate the modes. It is assumed that
the subsystem has been defined such that proper modal equations exist (which will not be true, for example, if
degrees of freedom from rotating and nonrotating frames are mixed). However, if the modes are calculated early
in the trim solution (not yet converged), inaccuracies in the component equilibrium can produce asymmetries in
the matrices.
The modes are ordered by frequency. The output variables yq of the mode set are used to normalize and print
the modes shapes. The following options are implemented for normalization:
max(|wqyq|) = 1∑(w2
qy2q ) = 1
where the maximum or summation operation is over all elements in the output vectors, for each mode; and wq is
a specified weight. Typically the output yq includes the displacement at key points of the subsystem. It would
be inappropriate to use the modal transformation matrix for normalization or print, since the degrees of freedom
being transformed are typically just the elastic motion of a component relative its rigid motion, rather than the total
motion.
For each modal variable, it is possible to specify the order reduction to be applied during the solution of
the equations (zero, dynamic, or quasistatic). The system symmetry must be specified for each modal variable
168 MODES
(symmetric, antisymmetric, or both), for use in the flutter task. The modal variables can also be designated child
degrees of freedom for the trim part solution. Structural damping can be specified for each mode, and included by
the part solution in the equations of motion after the modal transformation is introduced. The damping is defined in
terms of the parameter g, which is twice the fraction of critical damping. The damping is implemented as viscous
damping.
21–3 Theory
21-3.1 Modal Equations
The form and solution of the modal equations is similar to that of the part differential equations. The motion,
constraint, and output equations are linearized, typically about the nominal and reference of the response. For
modes the matrices are constant, either averaged over a period or evaluated at one time. Possibly the reference
will be updated and the modes recalculated during the solution process. The linear terms in the resulting equations
have the following form: ⎡⎢⎣ H φTf1 φT
f0
φx1 G1 0φx0 0 0
⎤⎥⎦⎛⎜⎝ ξ
f1
f0
⎞⎟⎠ = 0
y =[φd Fd1 0
]⎛⎜⎝ ξ
f1
f0
⎞⎟⎠The constraint equations and interface variables fl are partitioned as follows:
a) f0, structural dynamic no-residual interfaces;
b) f1, structural dynamic full-residual interfaces.
The zeros in the above equations arise from the properties of a structural dynamic, no-residual interface. The
assumption of full-residual means that G1 is full rank. The output y must be from component output (not structural
dynamic kind), and can not depend on f0 or the derivatives of ξ. The matrix H is second-order dynamic, meaning
it has mass and spring. All other matrices are static. The matrices are partitioned according to the vectors of ξ, f1,
f0, and y. So they can all be sparse. Any submatrix that is zero because the equation does not depend on a vector
is neither calculated nor stored. The constraint equations are solved to eliminate part variables:
a) The no-residual structural dynamic constraint equations are solved to eliminate degrees of
freedom ξb.
b) The remaining constraint equations are solved to eliminate the interface variables f1.
The degrees of freedom eliminated (ξb) are the same as in the part solution, so the modal transformation (of the
remaining degrees of freedom η1 = ξc) will be consistent with the part. The degrees of freedom are partitioned as
(ξb, ξc), and correspondingly the no-residual constraint equations:
φx0 =[φ0b φ0c
]It is assumed that the interfaces are independent, and the degrees of freedom ξb properly identified, so φ0b is
full-rank. The solution of the constraint equation is formulated as a transform, designed to decouple the equations.
MODES 169
This transform is not unique. With ξb identified, the transform used is:
ψφ1 =[−φ−1
0b φ0c
I
]Since symmetry is not assumed, the transpose problem must also be solved: from
φf0 =[φ0b φ0c
]obtain
ψφ1 =[−φ−1
0b φ0c
I
]Introducing these transforms produces the modal equations
K1 = ψTφ1(H − φT
f1G−11 φx1)ψφ1
From the mass and spring matrices of K1 (just the symmetric part), the modal transformation matrix Φ is calculated.
The matrix Φ is one block of the part modal transformation, which encompasses all mode sets of the part. The
above transforms are also applied to the output equation. From ξ = ψφ1η1 = ψφ1Φθ and f1 = −G−11 φx1ξ, there
follows
y = (φd − Fd1G−11 φx1)ψφ1Φθ = Y θ
where the columns of Y correspond to the modes. The matrix Y is used to normalize and print the mode shapes.
21-3.2 Modal Analysis
The modal transformation matrix Φ is calculated from the mass and spring matrices of K1 (just the symmetric
part). The modal frequencies and generalized masses are also obtained. The modes are ordered by frequency. The
symmetric eigenvalue problem
(−Mω2 + K)u = 0
has positive, real eigenvalues ω2 and real eigenvectors u. The eigenvectors u are the columns of the modal matrix
Φ, and the eigenvalues give the frequencies ω. The modal mass is obtained from m = ΦT MΦ. The analysis uses
an eigenanalysis that solves the general problem:
(λI − A)u = 0
The algorithm used gives best accuracy for the modes with largest λ. Thus the eigenvalues and eigenvectors of
the matrix A = K−1M are found. The eigenvectors are u, and the eigenvalues give
ω =1√λ
The modes with smallest frequency ω will be most accurate. However, if the spring matrix can not be inverted
(K singular, or has zero eigenvalues), then the eigenvalues and eigenvectors of the matrix A = M−1K are found
instead. Then the eigenvectors are u, and the eigenvalues give ω =√
λ.
Since the modes are being calculated for a constrained subsystem here, the spring matrix should be nonsingular,
and is usually well-conditioned. Thus usually the modes of A = K−1M are found. Note that the accuracy of the
high frequency modes (small λ) may be poor if the square of the frequency covers a large range. For a subsystem
with much flexibility and little inertia, the mass matrix will be nearly singular or poorly-conditioned. The result
will be very large frequencies of some modes. There might also be numerical problems, leading to inaccurate
high-frequency modes. However, if the high frequency modes are to be neglected, then it is only necessary that
the low frequency modes be accurate. If a quasistatic reduction is applied to the high frequency modes, it is only
necessary that also the modal matrix be complete.
170 MODES
Chapter 22
RESPONSE
22–1 Description
22-1.1 Response Representation
Response is a system piece that provides a standard means to define the characteristics of all the system
variables. The representation of each variable of the system takes the following form:
total = reference + difference
For motion variables, it is also appropriate to introduce a nominal, so the representation takes the form
total = nominal + degree of freedom
degree of freedom = reference + difference
where the sum of the reference and difference is always scalar, but the sum of the nominal and the degree of
freedom may involve the kinematics of axes motion. The trim difference always exists, but it can be initialized
to zero and not changed, or it can be zero kind. The transient difference does not exist for the no-solution or
trim-solution methods. The nominal and reference may or may not exist; if they exist, they can be zero. Rigid
response representation is required for the rigid body motion of components, and for frames. Rigid motion is
measured relative to a frame, and the frames are hierarchical. The complete representation is thus:
motion = frame + frame + . . . + total
for the motion relative to some parent frame (ultimately, inertial space). Each frame and the total has a separate
rigid response definition.
The solution procedures always solve for the difference, hence they find the motion relative to some prescribed
nominal and reference. The nominal and reference should thus be chosen to help the solution process. Typical
uses of the nominal and reference are:
a) To keep the difference small, by accounting for the rest position and any large rotation or
displacement. The analysis does not assume that the difference is small, but many solution
procedures work better if it is.
b) To keep the difference periodic, so the solution procedure need be applied only over one
revolution.
b) To avoid singularities the representation of rotations.
c) To introduce a specified operating condition.
172 RESPONSE
The distinction between the nominal and reference is required because they may be different forms of the motion.
The reference is required since it can be updated with the latest solution for the difference (because the sum is
scalar). Typically the nominal is needed to account for large rigid motion, or steady state velocity or rotation, or
so the difference will be constant or periodic.
The nominal and reference kind depend on the convention chosen in defining the system. The available
conventions must be appropriate for the problems to be handled by the analysis. The difference kind and other
properties of the response (such as the need for old response or derivatives) follow from the choice of the part
solution procedure. From the trim part solution, the difference kind can have some of the following features: single
value, periodic, not periodic, or multiperiod; time domain or harmonics; one period or primary and secondary
periods; active part filter or not. The trim response can be identified as the child of some other response. For child
response, there is no trim solution for the motion. Instead, the parent response is identified. The child response
can have a phase shift and/or sign change relative to its parent. The response variables can also be designated child
degrees of freedom for the trim part solution. During the transient task, the trim response still exists (and is used
to evaluate the response if it is required at times before the transient task started). From the transient part solution,
the difference kind must be time domain, with a structure appropriate for either an implicit or integration solution.
The transient response can be specified to be just the trim solution.
22-1.2 Prescribed or Internal Motion
A component may calculate some prescribed motions or internal quantities for its own use. Such motion
involves no equations, hence no system variables, hence no response piece. Consider two or more input/output
interface vectors, obtained from the output of a single component. In order to evaluate these vectors, the component
must evaluate its input, and perform internal calculations. The component input is only evaluated once at a given
time, no matter how many places it is needed by how many components. But any duplicate internal calculations
can not be shared by two output vectors of the same component.
If it is very inefficient to repeat such internal calculations, then it is necessary to modify the component so that
the standard approach eliminates the duplication: define a new component output for the required intermediate
(formerly internal) calculations; create an input/output interface connected to this component input; solve this
interface equation in the appropriate part and pass; and define a new component input, connected to the interface,
making the results of the intermediate calculations available to the component. Note that a component can have an
input and an output that are the same quantity, with an input/output interface between to control its evaluation. It is
simpler and often not too inefficient to repeat internal calculations rather than define more component input/output
and more system pieces.
22-1.3 System With More Than One Period
The trim response must accommodate the case of a system with more than one period. The trim parts (such
as the harmonic solution method) are capable of solving equations assuming that the system has a known period,
so the equilibrium solution is known to be periodic. If in fact different subsystems have different periods, then this
approach works only if approximations are made that enforce the assumption of periodicity within the part solution.
The result is an approximate solution, obtained for a reasonable effort. For the exact solution, the transient task
can be used.
Hence the differential equations of a trim part are identified as time invariant or periodic. Figure 1 illustrates
RESPONSE 173
periodic part T1
periodic part T2
time invariant part
vibratory
mean
RESPONSEEXCITATION
mean + T1 mean + T1
mean + T1
mean + T2 mean + T2
mean + T1
T2 mean + T2mea
n
Figure 22-1 Response evaluation.
174 RESPONSE
the process involved in evaluating the response. A periodic part can be solved only for the response at its own
period. This solution is obtained using component input that consists of a mean value, plus vibratory motion
at that same period. A time invariant part can be solved for the response at several periods (a primary period,
and optionally one or more secondary periods). This solution is obtained using component input that consists of
vibratory motion at one or more periods. A separate solution is obtained for each period acting on the part (the
mean value of the input is used with the primary period).
22-1.4 Child Response in Trim
A system can have symmetries that in certain operating conditions imply a relation between the solutions for
various subsystems. Such knowledge about the system can be enforced by defining the response of one subsystem
as the child of another subsystem. It is only necessary to solve for the parent response then, which can significantly
reduce the computation required. The child response option is only used during the trim task. A comparison
between a full solution and a solution for only the parent response can be made to check the use of the child
response convention.
For an axisymmetric system (typically N identical, equally spaced subsystems, perhaps rotating), the motion
can be identical except for a phase shift between the child and parent. For symmetry about a plane (such as lateral
symmetry), the motion can be mirrored across the plane, hence identical except for certain sign changes between
the child and parent.
Such symmetries can also imply restrictions on the form of the solution obtained from a part. These restrictions
are enforced in the part solution. Axisymmetry of a rotating subsystem typically means the certain harmonics of
the solution should be zero. Hence a trim filter can be defined for relevant part solution methods. Symmetry about
a plane means that the asymmetric motions should be zero. The response of selected variables can be set to zero
at the end of the part solution by using the standard order reduction conventions.
Alternatively, the response variables can be designated child degrees of freedom for the trim part solution.
Then both the parent and child degrees of freedom must be in the same trim part. After the equations are solved,
the child solution is replaced in the trim part by the parent (or averaged parent) solution. This option is available
for systems that must be solved as a whole, even though symmetries imply identical (with phase shifts) motion of
subsystems.
22–2 Implementation
22-2.1 Response Specification
A response must be defined for each component degree of freedom ξ, frame β, interface variable fl, input
variable um, and output variable yq of the system. The definition is by vector. There are two response types: rigid
and variable. It is necessary to specify the following quantities that describe the response:
a) nominal, reference, and initial difference;
b) weights for convergence test, perturbation, and mode normalization;
c) order reduction (zero, dynamic, or quasistatic) for trim, transient, and flutter tasks;
d) symmetry (symmetric, antisymmetric, or both) for use in the flutter task.
The specification of order reduction will be superseded by any applicable mode or transform specification.
RESPONSE 175
22-2.2 Variable Response Type
For the variable response type, the conventions established for the nominal and reference kind are as follows:
a) turning frame (depends on an operating condition);
b) rotating variable (depends on a period);
c) rest position;
d) none.
22-2.3 Rigid Response Type
For the rigid response type, the conventions established for the nominal and reference kind are as follows:
a) base frame (depends on an operating condition);
b) rotating frame (depends on a period);
c) rest position.
For the last two kinds, the degree-of-freedom motion can occur relative to the nominal; or the nominal motion
can occur relative to the degree-of-freedom. The base-frame nominal kind can use body or stability axes, or be
constrained (consistent with the operating condition). A “base frame” (parent frame is inertial) can use any nominal
convention. The base-frame nominal kind is defined in terms of parameters from a specified operating condition
(which can be accessed by the solution procedures), and can provide a constant-velocity motion.
The rigid response can consist of linear motion only (q), or both linear and angular motion (q and p). The
linear motion occurs first in the degree of freedom vector. A constrained component has no rigid motion; a point
mass component needs only the linear motion; other components have both linear and angular motion. The options
for representing the linear motion are:
a) inertial axes displacement;
b) body axes displacement;
c) body axes velocity.
The options for representing the angular motion are:
a) aircraft Euler angles;
b) Rodrigues parameters;
c) arbitrary Euler angles.
Any three-parameter representation of angular motion is singular at some point (at large rotation with appropriate
choice of variables); the nominal motion can be defined to avoid such problems. The body axes velocity option can
only be used with the base frame nominal kind. As implemented here, it does not produce a complete evaluation of
the displacement, so should not be used if the displacement relative the inertial frame is important. In such a case
the inertial axes displacement option can be used instead. For example, the constraint equations for a structural
dynamic interface are obtained from the displacement, so the motion relative to the common parent frame of the
interface can not involve body axes velocity representation (although the parent frame can). Other examples occur
in aerodynamics, where the geometry (such as wake position) must often be known relative to the inertial frame.
176 RESPONSE
22-2.4 Difference Characteristics
The response difference stores the motion in a form that depends on the solution procedure. The following
difference kinds are implemented:
a) single value;
b) harmonics;
c) time domain periodic;
d) time domain not periodic;
e) time domain multiperiod;
f) time domain transient;
g) time domain integration.
The first five kinds are used for the trim solution; the last two kinds are used for the transient solution. Harmonics
and time domain periodic are considered periodic differences; the other kinds (including multiperiod) are non-
periodic. The difference can be initialized to an input value, or zero. The trim difference can be initialized from
the previous case solution.
22-2.5 Updated Reference
The part solutions may linearize the system equations about the nominal and reference of the response; the
part solves for the difference. Convergence may be improved if the reference is updated from the current solution
for the difference, and the matrices recalculated. Probably any modes will be recalculated at the same time. The
following are the conventions implemented.
a) Trim task: The trim reference is updated by adding the mean part of the current difference
value.
b) Transient task: The reference of all response variables is updated at the end of the trim task.
This updated trim reference is the reference used in the transient task. The equations can be
linearized about the current transient solution.
c) Flutter task: The equations are usually linearized about the total trim solution (nominal,
reference, and difference).
In the convention implemented, the trim reference is updated using only the mean difference. Thus the mean of the
current difference solution is calculated; this value is added to the current reference; and the mean of the difference
is set to zero:new reference = old reference + mean
new difference = old difference − mean
With this convention, the reference is always a constant. Hence it is necessary to store time histories or harmonics
only for the difference; and it is not necessary to update the derivatives (which would require attention to keeping
the displacement, velocity, and acceleration consistent). The reference is not updated if the nominal kind is base
frame (rigid type), since its reference is obtained from an operating condition. In general, the reference is not
updated if it does not exist.
The reference can be initialized to an input value, or zero. The trim reference can be initialized from the
previous case solution.
RESPONSE 177
22-2.6 Response Evaluation in Trim
Evaluation of the response in trim must consider differences between the period of the response as required
and as available. A part solution procedure evaluates the response (from other parts) at a specified time. This
required response must be consistent with the period TR of the part that needs it, which can be a primary period or
secondary period, or not periodic at all. The response solution is available at period TA, determined by the part that
calculated it, hence can be one period, primary and secondary periods, or non-periodic. The evaluated response
can consist of the mean part, oscillatory part, or all of the available solution. Note that with both primary and
secondary periods, the primary period contains the mean. Hence the following combinations must be considered:
REQUIRED AVAILABLE EVALUATED
non-periodic periodic all primary TA
non-periodic all
primary TR match primary TA all TA
match secondary TA oscillatory TA + meanno match meannon-periodic all
secondary TR match primary TA oscillatory TA
match secondary TA oscillatory TA
no match zeronon-periodic all
These cases are implemented by the process shown in figure 2. Optionally, the test for inconsistent periods can be
omitted for a trim part, with the assumption that the system and solution procedure have been defined such that
the complete response can be used. In the transient task, there are no periodic part solutions. Hence the response
evaluation just returns the total response at the specified time. If the trim response solution is being used during
the transient, it is evaluated at its primary period. In the flutter task, the trim response is evaluated at the specified
time (at its primary period if relevant).
22-2.7 Child Response
Child response at time t is evaluated from the parent response at time te, perhaps with sign changes. The
specification of the parent can not be hierarchical. There is no part solution for the child response (the equations
must be in a no-solution type part, or not in any loop). When a phase shift is used, the parent can not have secondary
periods. Note that the nominal is used for transient as well as for trim, so if the nominal is not constant (rest-position
kind) inconsistencies may prevent the use of the child response convention. With a phase shift defined relative the
parent, the difference, reference, and nominal are evaluated at te = t + Δt, where Δt is defined in terms of the
azimuth shift Δψ for periodic or multiperiod response, and Δt is defined directly otherwise. In the former case,
Δt = Ω Δψ, where Ω is obtained from the period of the response. The child response can be defined to have the
opposite sign as the parent response. For rigid response type, the sign change is more complex: the sign of the
angular motion about the x, y, or z-axis is changed; and the signs of the linear motion about the other two axes
are changed.
178 RESPONSE
required response non-periodicevaluate: all (primary TA)
available response non-periodicevaluate: all
inconsistent periods not suppressedevaluate: all
required response periodicfind TA match TR
both primaryevaluate: all TA
primary TR
evaluate: oscillatory TA + meanotherwise
evaluate: oscillatory TA
no match of periodsprimary TR
evaluate: meanotherwise
evaluate: zero
Figure 22-2 Outline of process to evaluate response.
22-2.8 Filtered Response
A component may need to use response in filtered form. This response could be obtained from a filter
component, which performs the required operation (such as mean) on the response. Such an approach is necessary
if the filter implementation must depend on the analysis task. For example, an implicit mean can be calculated for
the trim or transient task, but in order linearize the system for the flutter task a differential equation mean would be
required (or the direct, unfiltered response). Alternatively, the analysis allows any component to filter the response
at the time the component input is evaluated.
Filtered response is evaluated by operating on a window of data ending at the current time. Appropriate use
of this filter operation requires that the window match the periodicity of the response to which it is applied. The
following filter operations are implemented:
a) time domain: mean;
b) time domain: minimum, maximum, mid-value, half peak-to-peak;
c) time domain: mean-square, rms, amplitude, cyclic product;
d) harmonic: cosine, size, magnitude, phase.
For harmonic operations, the fundamental frequency must match the filter window. Using the filter operation in
the context of perturbed response is generally not appropriate; in particular, the operation can not be linearized for
the flutter analysis.
RESPONSE 179
22-2.9 Order Reduction
For each response element, and for each task (trim, transient, and flutter), it is possible to suppress the solution.
For each degree of freedom element, it is possible to perform a quasistatic reduction. These operations serve to
reduce the order of the problem. The specification of order reduction for the response will be superseded by the
specification for any applicable mode or transform.
Implementation of the order reduction depends on the variable kind and the solution task. For degrees of
freedom and modes, the order reduction is implemented by the part during the solution of the differential equations.
Specifically, the order reduction is used to partition the solution vector in a differential equations part solution into
kept degrees of freedom (dynamic), eliminated degrees of freedom (zero), and quasistatic degrees of freedom.
For degrees of freedom, constraint variables, and output variables, in the trim and transient tasks, the order
reduction is implemented at the end of the part solution. Specifically, the difference can be set to zero when a part
solves for the response. This operation is performed at the end of the part solution procedure, so the variable is
zero when seen by other parts. The variable is still solved by the part, in order to avoid inconsistencies within the
part (such as suppressing structural dynamic interface forces). Degrees of freedom are reduced here as well as
in the differential equation partition (mode or transform specification of order takes precedence in the differential
equation solution, but not here). The quasistatic option is not available here.
For degrees of freedom, input, and output in the flutter task, the order reduction can be implemented in a loop
operation. Specifically, the variable and corresponding equation can be deleted by a flutter loop; and a quasistatic
reduction of the degrees of freedom can be performed in a flutter loop. The analysis of the flutter equations will
finally implement any order reduction (zero or quasistatic) that has not been implemented by some flutter loop or
part.
22–3 Theory
22-3.1 Nominal and Reference Conventions, Variable Type
The following conventions are implemented for the nominal and reference of variable response types: turning
frame, rotating variable, rest position, none. The symbol φ is used for an element of a response vector. The
quantity without a subscript is the difference.
22-3.1.1 Turning Frame
This convention is a transformation between inertial axes and a turning frame, with the nominal Cnom obtained
from the turn rate of a specified operating condition:
ftotal = Cnom(f + fref)
Cnom = CIY = ZTψF
ψF = ψF t + ψF0
The reference is constant. This convention can only be used for a vector f of length 3, with no derivatives. It is
intended for cases where the vector in turning axes will be constant or periodic (hence need not be solved for all
time).
180 RESPONSE
22-3.1.2 Rotating Variable
The nominal is a constant angular velocity for a scalar quantity (not rigid body rotation), with Ω obtained
from a specified period:φtotal = φnom + φref + φ
φnom = ψ = Ωt + ψ0
φnom = Ω
The reference is constant. For a vector, the period and other quantities must be defined for each element.
22-3.1.3 Rest Position
The nominal is a constant displacement, typically representing the value of the quantity at an initial or unloaded
condition:
φtotal = φnom + φref + φ
where the nominal φnom and reference φref are constant.
22-3.1.4 None
The purpose of this convention is to provide efficient handling of quantities that do not require any nominal
or reference. Hence
φtotal = φ
An implicit part solution method puts the calculated response directly into the difference record, and so with this
convention it is never necessary to subtract or add the nominal/reference. It is also possible with this convention
to get the response directly from the data in the difference record, without any interpolation over time — if the
part that gets the response in this manner uses exactly the same time steps as the part that calculated the response.
22-3.2 Nominal and Reference Conventions, Rigid Type
The following conventions are implemented for the nominal and reference of rigid response types: base
frame, rotating frame, rest position. The linear degrees of freedom are q and the angular degrees of freedom are p.
22-3.2.1 Base Frame
A “base frame” (parent frame is inertial) can use any nominal convention. The base-frame nominal kind
is defined in terms of parameters from a specified operating condition (which can be accessed by the solution
procedures), and can provide a constant-velocity motion. The base-frame nominal kind is intended for the response
of a “base frame” (parent frame is inertial) that is frame degrees of freedom. This frame is thus the motion of
the system body axes F, relative to the inertial axes I. The operating condition is used to define the nominal and
reference, which is the mean motion FI. The difference contains the remainder of the motion, found by the part
solution (with zero mean for the trim task). If the frame degrees of freedom are center-of-mass, mean axes, then
it is the motion of the subsystem center-of-mass that is being prescribed by the operating condition.
The base-frame nominal kind can use body or stability axes, or be constrained (consistent with the operating
condition). The body axes and stability axes options can use either body-axes velocity or inertial-axes displacement
RESPONSE 181
representation of the linear motion. The total motion to be defined is FI. The reference must be identified for the
linear degrees of freedom q and the angular degrees of freedom p. The following representations are implemented.
A) Free, body axes; body axes velocity and aircraft Euler angles. There is no nominal, so the degrees of freedom
represent the total motion FI. For a body axes velocity representation of the linear motion and an aircraft Euler
angle representation of the angular motion:
vFI/I = q
CFI = XφYθZψ
where p = (φ θ ψ)T . The operating condition provides the reference (qref is not used):
pref =
⎛⎝ φF
θF
ψF
⎞⎠pref =
⎛⎝ 00
ψF
⎞⎠qref = CFV
⎛⎝ V00
⎞⎠xref = xFI/I
B) Free, body axes; inertial axes displacement and aircraft Euler angles. There is no nominal, so the degrees of
freedom represent the total motion FI. For an inertial axes displacement representation of the linear motion and
an aircraft Euler angle representation of the angular motion:
vFI/I = CFI q
CFI = XφYθZψ
where p = (φ θ ψ)T . The operating condition provides the reference:
pref =
⎛⎝ φF
θF
ψF
⎞⎠pref =
⎛⎝ 00
ψF
⎞⎠qref = xFI/I
qref = CIV
⎛⎝ V00
⎞⎠qref = ˜pref qref
C) Free, stability axes; body axes velocity and aircraft Euler angles. The degrees of freedom represent the motion
of the velocity axes relative to the inertial axes, VI. Hence the nominal is the constant orientation FV:
Cnom = CFV
xnom = xFV/V = 0
182 RESPONSE
and the nominal motion occurs relative to the degree-of-freedom (FI=FV+VI). For a body axes velocity represen-
tation of the linear motion and an aircraft Euler angle representation of the angular motion:
vV I/I = q
CV I = XφYθZψ
where p = (φ θ ψ)T . The operating condition provides the reference (qref is not used):
pref =
⎛⎝ 0θV
ψV + ψF
⎞⎠pref =
⎛⎝ 00
ψF
⎞⎠qref =
⎛⎝ V00
⎞⎠xref = xFI/I
D) Free, stability axes; inertial axes displacement and aircraft Euler angles. The degrees of freedom represent the
motion of the velocity axes relative to the inertial axes, VI. Hence the nominal is the constant orientation FV:
Cnom = CFV
xnom = xFV/V = 0
and the nominal motion occurs relative to the degree-of-freedom (FI=FV+VI). For an inertial axes displacement
representation of the linear motion and an aircraft Euler angle representation of the angular motion:
vV I/I = CV I q
CV I = XφYθZψ
where p = (φ θ ψ)T . The operating condition provides the reference:
pref =
⎛⎝ 0θV
ψV + ψF
⎞⎠pref =
⎛⎝ 00
ψF
⎞⎠qref = xV I/I
qref = CIV
⎛⎝ V00
⎞⎠qref = ˜pref qref
E) Constrained. There is no nominal, so the degrees of freedom represent the total motion FI. Any representation
of angular motion can be used. The operating condition provides the reference:
pref =
⎛⎝ φF
θF
ψF
⎞⎠qref = x
FI/I0
RESPONSE 183
which is constant. The meaning of p depends on the representation. For a body axes velocity representation,
xref = xFI/I0 is obtained instead of qref (a body axes velocity representation of a constrained frame is not very
useful however).
22-3.2.2 Rotating Frame
The nominal motion consists of rotation by an angle ψ = Ωt+ψ0 about a designated axis, where Ω is obtained
from a specified period. The degree-of-freedom motion can occur relative to the nominal; or the nominal motion
can occur relative to the degree-of-freedom. The nominal is described by: constant displacement zN and rotation
CR, which orient the rotation axis; then rotation by angle ψ about a designated axis u; then constant rotation CN .
Thus the nominal motion is:Cnom = CNUψCR
ωnom = CNωu
xnom = zN
The rotation can be about the positive or negative x, y, or z axis. For example, for rotation about the +z axis:
Cnom = CNZψCR
ωnom = CN
⎛⎝ 00Ω
⎞⎠The reference degree-of-freedom motion is pref and qref (constant).
22-3.2.3 Rest position
The nominal motion consists of constant displacement zN and rotation CN , typically representing the value at
an initial or unloaded condition. The degree-of-freedom motion can occur relative to the nominal; or the nominal
motion can occur relative to the degree-of-freedom. Thus the nominal motion is:
Cnom = CN
xnom = zN
The reference degree-of-freedom motion is pref and qref (constant).
22-3.2.4 Total Motion
The total motion is the sum of the nominal and degree-of-freedom motion. Let “BA” represent the total
motion. The following options are allowed:
a) Degree-of-freedom relative nominal: BA = BN(dof) + NA(nom)
b) Nominal relative degree-of-freedom: BA = BN(nom) + NA(dof)
c) No nominal: BA = BA(dof)
where here addition means adding axis motions (displacement x, rotation matrix C, and their derivatives).
22-3.3 Representation of Rigid Motion
For a rigid response type, the degree of freedom is rigid motion, consisting of
184 RESPONSE
a) linear motion xBA/A and vBA/B = CBAxBA/A and vBA/B ;
b) angular motion CBA and ωBA/B = CBACAB and ωBA/B .
(the angular motion might be zero, or not used). A scalar, three-parameter representation is required for the linear
motion (q) and for the angular motion (p). The degrees of freedom q and p are the sum of the reference and
difference (scalar addition). The conventions implemented for representing the rigid motion are described in the
next sections.
22-3.4 Representation of Rigid Motion, Linear
22-3.4.1 Inertial Axes Displacement
The parameters q are the displacement measured in A axes, q = xBA/A:
xBA/A = q
vBA/B = CBAq
vBA/B = CBAq − ωBA/BCBAq
Note that the inertial acceleration is then v + ωv = CBAq. Also, equations of motion are multiplied by CAB with
this convention, bringing them to the A axes.
22-3.4.2 Body Axes Displacement
The parameters q are the displacement measured in B axes, q = xBA/B :
xBA/A = CABq
vBA/B = q + ωBA/Bq
vBA/B = q + ωBA/B q + ˜ωBA/Bq
Note that the inertial acceleration is then v + ωv = q + 2ωq + ˜ωq + ωωq.
22-3.4.3 Body Axes Velocity
The parameters q are the velocity measured in B axes, q = vBA/B = CBAxBA/A:
xBA/A =∫ t
CAB q dt
vBA/B = q
vBA/B = q
Note that the inertial acceleration is then v + ωv = q + ωq. Difficulties arise because the displacement x is not
directly obtained from q, but rather by an integral of q (which is path dependent). Writing q and p (for C) as the
sum of reference and difference, the displacement is
xBA/A =[∫ t
0
CABref qref dt + x
BA/A0
]+
[∫ t
0
(CAB q − CABref qref) dt
]The first term can be evaluated from the conventions for the reference. The second term can in general be evaluated
only by numerical integration. For perturbations of the motion, the velocity
xBA/A = CAB q
RESPONSE 185
gives
δxBA/A = δ(CAB q) = CABtrim(δq + δθAB/B qtrim)
The second term can be neglected if the trim velocity is small enough. With just the first term there follows
δxBA/A = CABtrimδq
With this background, the calculation of the displacementx for the body axes velocity representation is implemented
as:
xBA/A =[∫ t
0
CABref qref dt + x
BA/A0
]+ CABδq
The analysis does not integrate the total q to obtain x. In the trim or transient task, the first term gives the
contribution of the reference to x; the contribution of the difference (which could be large, especially for transient
motion) is neglected. In the flutter task, the second term gives the approximate perturbation for small trim velocity.
This is not a complete calculation of the displacement xBA/A. So the body axes velocity representation should
not be used when the displacement relative to axes A is important. In such cases the inertial axes displacement
representation can be used instead.
22-3.5 Representation of Rigid Motion, Angular
22-3.5.1 Aircraft Euler Angles
The parameters p are the angles of rotation about the x, y, and z axes, p = (φ θ ψ)T . Note that the first angle
in p is the last rotation. This convention is also attributed to Tait-Bryan. The rotation matrix, angular velocity, and
angular acceleration are:
CBA = XφYθZψ
ωBA/B = Rp
ωBA/B = Rp + Rp
R =
⎡⎣ 1 0 − sin θ0 cos φ sinφ cos θ0 − sinφ cos φ cos θ
⎤⎦Rp =
⎛⎝ φθ cos φ
−θ sinφ
⎞⎠ ⎛⎝ φ + ψ sin θ−ψ sinφ cos θ−ψ cos φ cos θ
⎞⎠The representation is singular for θ = 90 deg (gimbal lock), where φ and ψ become equivalent.
22-3.5.2 Rodrigues Parameters
The parameters p are the Rodrigues or Euler-Rodrigues parameters for rotation by an angle ψ about an axis in
the direction of the unit vector u, p = 2u tan(ψ/2). The rotation matrix, angular velocity, and angular acceleration
186 RESPONSE
are:CBA = I − Rp
ωBA/B = Rp
ωBA/B = Rp + Rp
R =I − p/2
1 + pT p/4
Rp =−pT p/2
1 + pT p/4= − pT ω
2ω
This expression for p differs by a factor of 2 from the classical definition, but has the advantage that p ∼= uψ for
small rotations. The representation is singular for ψ = 180 deg (where p = ∞).
22-3.5.3 Arbitrary Euler Angles
The parameters p are the angles of rotation about the u, v, and w axes, p = (φ θ ψ)T ; where u, v, and w
can each be designated as the positive or negative x, y, or z axis. The aircraft Euler angle convention is thus
UV W = +X+Y +Z; while the classical Euler angle convention is UV W = +Z+X+Z. Note that the first
angle in p is the last rotation. The rotation matrix, angular velocity, and angular acceleration are:
CBA = UφVθWψ
ωBA/B = Rp
ωBA/B = Rp + Rp
R =[u Uv UV w
]Rp = (φu + θUv) (φu − ψUV w)
where in R the vector u = (±1 0 0)T for U defined as rotation about the ±x axis; and similarly for the vectors v
and w, and other rotations. The representation is singular for the value of θ that makes φ and ψ equivalent.
22-3.6 Representation of Rigid Motion, Equations
The rigid body equations of motion of a structural dynamic component are derived in terms of the linear
velocity vBA/B , and angular velocity ωBA/B . With these quantities represented in terms of q and p, the partial
velocity matrices are
vq =∂vBA/B
∂q
ωp =∂ωBA/B
∂p
Then in order to maintain symmetry, the rigid body equations must be multiplied by the transpose of the partial
velocity matrix: by vTq for linear and ωT
p for angular equations. For degree-of-freedom motion relative nominal,
the angular and linear velocities are:
ωBA/B = ωBN/B + · · · = Rp + · · ·
vBA/B = vBN/B + · · · ={
CBN q + · · · inertial axes displacementq + · · · other
RESPONSE 187
For nominal motion relative degree-of-freedom, the angular and linear velocities are:
ωBA/B = CBNωNA/N + · · · = CBNRp + · · ·
vBA/B = CBNvNA/N + · · · ={
CBNCNAq + · · · inertial axes displacementCBN q + · · · other
Thus the required matrix depends on the conventions used to represent the motion, as described in the following
table.
Degree-of-freedom relative nominal: BA = BN(dof) + NA(nom)
equation kind linear motion representation matrix
angular ωp = Rlinear inertial axes displacement vq = CBN
linear other vq = I
Nominal relative degree-of-freedom: BA = BN(nom) + NA(dof)
equation kind linear motion representation matrix
angular ωp = CBNRlinear inertial axes displacement vq = CBNCNA
linear other vq = CBN
22-3.7 Difference Characteristics
The response difference stores the motion in a form that depends on the solution procedure. The difference
kinds are as follows.
22-3.7.1 Zero Kind
No data stored. The difference evaluated at any time is always zero.
22-3.7.2 Single Value
One value of data stored. The difference at an arbitrary time always equals this single value.
22-3.7.3 Harmonics
Data stored in terms of a positive sine-cosine Fourier series, for N harmonics (N = 0 for just mean; mean
always zero for secondary period). The azimuth is ψ = Ωt + ψ0, where the frequency Ω is obtained from some
period. The difference at an arbitrary time is evaluated from the harmonics (hence is cyclical in azimuth). Velocity
and acceleration can be obtained from the harmonics for displacement, or from separate harmonics. By using
separate harmonics for the derivatives, it is possible to implement a quasistatic approximation (zero velocity and
acceleration) for selected elements of the vector.
22-3.7.4 Time Domain Periodic
Data stored at ψ = j Δψ, for j = 1 to J , Δψ = 2π/J (mean always zero for secondary period; Δψ = −2π/J
188 RESPONSE
if Ω is negative). The azimuth is ψ = Ωt+ψ0, where the frequency Ω is obtained from some period. The difference
at an arbitrary time is evaluated by linear interpolation (cyclical in azimuth).
22-3.7.5 Time Domain Not Periodic
Data stored at t = tB + k Δt, for k = 0 to K, Δt = (tE − tB)/K. The difference at an arbitrary time is
evaluated by linear interpolation. There is no extrapolation outside the range tB to tE .
22-3.7.6 Time Domain Multiperiod
Data stored at t = tB + k Δt, for k = 0 to K, Δt = (tE − tB)/K. Time is actually defined in terms of the
azimuth ψ = Ωt + ψ0, where the frequency Ω is obtained from some period. The azimuth steps are ψj = j Δψ,
Δψ = 2π/J , where J is the number of steps per revolution (Δψ = −2π/J if Ω is negative). The time range is
specified by jB and jE . So tB = −ψ0/Ω + jBΔt, tE = −ψ0/Ω + jEΔt; Δt = Δψ/Ω; and K = jE − jB . The
difference at an arbitrary time is evaluated by linear interpolation. There is no extrapolation outside the range tB
to tE .
22-3.7.7 Time Domain Transient
Data stored at t = tB + k Δt, for k = 0 to K. The trim solution is used for t < tB . The transient solution
at k = 0 is initialized to the trim solution at t = tB , and never changed. The difference at an arbitrary time is
evaluated by linear interpolation. The difference is not extrapolated for times beyond the latest solution (which
automatically initializes the solution to the result from the previous time step).
22-3.7.8 Time Domain Integration
Data stored at t = tB + k Δt, for k = 0 to K. The trim solution is used for t < tB . The transient solution
at k = 0 is initialized to the trim solution at t = tB , and never changed. The difference at an arbitrary time is
evaluated by linear interpolation. The difference is not extrapolated for times beyond the latest solution (which
automatically initializes the solution to the result from the previous time step). The response solution is stored at
time steps k Δt, but numerical integration calculates the solution using a time increment δt = Δt/I . The solution
from i = 1 (where t = (tB + (k − 1) Δt + δt)) to i = I (where t = (tB + (k − 1) Δt + I δt) = tB + k Δt) is
put in location k.
22-3.8 Difference Interpolation and Derivatives
Difference stored in the time domain is evaluated at an arbitrary time t by linear interpolation. Consider data
βk at tk = tB + k Δt. The step k is found such that tk ≤ t ≤ tk+1:
k =[t − tB
Δt
]wk+1 =
(t − tB
Δt
)− k = 1 − wk
(here [a] means the greatest integer in a). Then
β = wkβk + wk+1βk+1
RESPONSE 189
is the interpolated result. The algorithm for interpolation in azimuth is similar. If the velocity or acceleration is
required but does not exist in the time-domain difference record, the derivative is evaluated by finite differences.
The following methods are implemented for the derivatives at tk.
a) Backward difference (default if non-periodic):
xk = (xk − xk−1)/Δt
xk = (xk − 2xk−1 + xk−2)/Δt2
b) Forward difference:xk = (xk+1 − xk)/Δt
xk = (xk+2 − 2xk+1 + xk)/Δt2
c) Central difference (default if periodic):
xk = (xk+1 − xk−1)/(2 Δt)
xk = (xk+1 − 2xk + xk−1)/Δt2
For non-periodic cases, the forward difference is always used at the first time step, and the backward difference
is always used at the last time step. For non-periodic cases, the derivative is zero if there are too few points in
the time series. The acceleration is obtained from the first derivative of the velocity if the velocity exists. The
derivatives at an arbitrary time are calculated by linear interpolation between the derivatives at tk.
22-3.9 Motion Relative to a Frame
Rigid motion can be evaluated relative any specified frame. Rigid body degrees of freedom measure the
motion relative to the frame of the structural dynamic component. The response for a frame measures its motion
relative to its parent frame, or relative the inertial frame.
Let FnFm represent the motion of frame Fn relative frame Fm, where n is the child and m is the parent
(m ≤ n). This motion is obtained by evaluating FnFi−1 = FnFi + FiFi−1 for i = n to m + 1. The summation
operation here involves adding the axes motion (displacement, rotation matrix, and their derivatives).
22-3.10 Filtered Response
Filtered response can be evaluated at a specified time t. The filter operates on a window of data ending at
time t. The window can be specified directly, or as one revolution of some period. The periodicity of the required
response (TR) must be identified, in order that the response can be consistently evaluated in trim:
a) Window specified directly: The required response is identified as non-periodic. Hence all
the response is evaluated (for the primary period TA if relevant).
b) Window specified from period: The required response is identified as periodic (and primary),
with TR equal to the window period (not necessarily the period of the part solution). If TR
does not match an available period of the response (TA), then the filter operation is applied to
just the mean.
Appropriate use of this filter operation requires that the window match the periodicity of the response to which it
is applied (TA). For harmonic operations, the fundamental frequency is obtained from some period, which must
match the window specification.
190 RESPONSE
The filter operates on some response f(t), at J time steps over window W before the current time t (J and W
can be specified independently of how the response difference is stored). Thus the response f(tj) is evaluated at
times tj = t+(j−J −1) Δt, for j = 1 to J +1 (Δt = W/J). Where necessary the operations are approximated
by trapezoidal integration:
1W
∫ t
t−W
g Δt =J+1∑j=1
gjwj
where wj = 1/(2J) for the ends (j = 1 and j = J +1), and wj = 1/J elsewhere. The following filter operations
are implemented.
A) Mean.
f =∑
fjwj
B) Minimum, Maximum, Mid-Value, Half Peak-to-Peak.
fmin = min(fj)
fmax = max(fj)
fmid = 1/2(fmax + fmin)
fhptp = 1/2(fmax − fmin)
C) Mean Square, Rms, Amplitude.
f2 =∑
f2j wj
f2rms =
∑(fj − f)2wj = f2 − (f)2
famp =√
2frms
D) Cyclic Product. If f = (f1, f2, . . . , fL) is a vector of length L, then the cyclic product operation produces the
mean over the window of fcyc = (fLf1, f1f2, . . . , fL−1fL).
E) Cosine, Sine, Magnitude, Phase. For harmonic operations, a period and harmonic number n must be specified.
The azimuth is ψj = Ωtj + ψ0.
fc =∑
(fj2Kn cos nψj)wj
fs =∑
(fj2Kn sinnψj)wj
magnitude =√
f2c + f2
s
phase = tan−1 fs/fc
The phase is in degrees. For n = 0, the result is just fc = f and fs = 0. The harmonic analysis is actually
implemented in a more standard form. The summation is over j = 1 to J (so the current time at J +1 is not used),
and ψj = j Δψ (Δψ = 2π/J for positive Ω; Δψ = −2π/J for negative Ω). Then
Fnc =2 Kn
J
∑cos(nψj) fj
Fns =2 Kn
J
∑sin(nψj) fj
RESPONSE 191
Sinceψj = Ωtj + ψ0
= Ω(t + (j − J − 1) Δt
)+ ψ0
=(Ω
(t − (J + 1) Δt
)+ ψ0
)+ jΔψ
= ψref + ψj
the phase shift ψref givesfc = Fnc cos nψref − Fns sinnψref
fs = Fnc sinnψref + Fns cos nψref
The factor Kn determines the interpolation option: Kn = 1 for Fourier interpolation, and
Kn =(
J
πnsin(
πn
J))2
for linear interpolation (harmonics of a linear interpolation between the data at Fj).
22-3.11 Convergence Test
An iterative part or loop solution method may require that convergence be tested, by comparing the current
value x of a variable with an old value xold from the previous iteration. If this test is required, the response
difference data structure must include space for xold. The save operation x = xold simply copies the current value
of the difference to the old difference (including any derivatives that are present). The convergence test takes the
following general form:
error = ‖x − xold‖ ≤ tolerance × weight
The tolerance is a single number, from the part or loop data. The weighting factor (“weight”) is defined for each
element of a vector, as part of the response data. The error measurement is some norm of the difference between
the current and old solution. The definition of the norm
a) single value: error = |x − xold|b) other: error = rms(x − xold), calculated from harmonics or time history
depends on the difference kind. The relative values of the convergence weights will affect what variable seems
to drive the convergence of the loop or part, and hence affect the interpretation of the tolerance. The value of the
tolerance required for an accurate solution is based on the physical results.
22-3.12 Perturbation
A part or loop solution method may require that a variable x be perturbed, typically in order to linearize some
subset of the system. The perturbation takes the following general form:
δx = Δ × weight
The perturbation amplitude Δ is from the part or loop data. The weighting factor (“weight”) is defined for each
element of a vector, as part of the response data. The perturbation of a response quantity is implemented by adding
δx to the difference at the time the response is evaluated. The part solution procedure identifies the element and
vector being perturbed. Separate values of Δ are used for displacement, velocity, and acceleration perturbations.
The variable perturbation affects the accuracy of the matrices calculated by finite difference approximation. The
relative values of the perturbation weights must be chosen so all perturbations have similar behavior (all too small
or all too large) with a common perturbation amplitude Δ.
192 RESPONSE
Chapter 23
WEIGHTS
23–1 Description
Weights is a system piece that provides standard perturbation and convergence weights for the response.
The standard weights are calculated from specified values of reference quantities: length, angular velocity, linear
velocity, and force.
An iterative part or loop solution method may require that convergence be tested, by comparing the current
value of a variable with an old value from the previous iteration. A part or loop solution method may require
that a variable be perturbed, typically in order to linearize some subset of the system. The analysis automatically
identifies which variables a loop or part must perturb and test. So for each response system piece, it is necessary to
specify weights that can be used to perturb the variable and to test its convergence. Other system pieces can also
require perturbation or convergence weights. If a weights system piece is identified, then the weight used is the
product of the standard weight and an input factor. Typically this factor is 1., but it is available to handle special
cases. If a weights system piece is not identified, then the input value of the weight is used. The variable kind
must be identified in order to obtain the appropriate standard weight.
23–2 Theory
The convergence criterion for an iterative part or loop solution method is defined in terms of some norm of
the variable x (or the norm of its difference between iterations):
‖x‖ < wCε
The tolerance ε is a single number, from the part or loop data. The weighting factor wC (“weight”) is defined for
each element of a vector. The perturbation of a variable by a part or loop solution method is calculated from
δx = wP Δ
The perturbation amplitude Δ is from the part or loop data. The weighting factor wP (“weight”) is defined for
each element of a vector.
The weights system piece calculates standard perturbation and convergence weights from values of reference
quantities: length L, angular velocity Ω (rad/sec), linear velocity V , and force F . The standard weights depend
194 WEIGHTS
on the variable kind, as given in the following table.
variable kind wC and wP ε, Δ units
basicunit 1angular displacement (deg) 1 degangular displacement (rad) 1/57.3 degangular velocity Ω/100 %Ωangular acceleration Ω2/100linear displacement L/100 %Llinear velocity V/100 %Vlinear acceleration ΩV/100force F/100 %Fmoment LF/1000power V F/1000circulation LV/10000dynamic pressure (50F/L2)/100
aerodynamic interfaces of structural dynamic componentsvelocity (10 elements) v, q, dv/dt, ωposition (6 elements) r, dr/dtforce (6 elements) f , m
aerodynamiccirculation peaks Γ, r
The weights piece provides the same values for both convergence and perturbation weights. The weights for
an aerodynamic interface vector are a combination of the basic weights: (a) for the velocity vector, from linear
velocity, dynamic pressure, linear acceleration, and angular velocity weights; (b) for the position vector, from
linear displacement and linear velocity weights; (c) for the force vector, from force and moment weights. The
weight for circulation peaks is the maximum of the basic weights for circulation and angular displacement (rad).
Chapter 24
TABLES
24–1 Description
Tables correspond to files, so they provide a general file input capability for the analysis, particularly for large
arrays of data. Each table class and type has a specific file format and data organization. The table quantities may
be functions of continuous variables, accessed by interpolation; functions of discrete variables; or unstructured
sets of numbers. Tables of the following class and type are implemented in the analysis.
a) Two Dimensional: type = Standard.
b) Three Dimensional: type = Standard.
c) Four Dimensional: type = Standard.
d) Airfoil: type = Standard, C81, CAMRAD.
e) Matrix: type = Standard.
f) Unstructured: type = Real, Integer.
24–2 Implementation
24-2.1 Table File Formats
The table file can be written and read either formatted or unformatted. A formatted file can be fixed form
or free form. In a free form file, each line consists of a number of fields separated by blanks or commas or tabs.
In a fixed form file, the data are found in fields of specific width and position. The tables implemented use the
following formats.
class type format
two dimensional standard formatted, freethree dimensional standard formatted, freefour dimensional standard formatted, free
airfoil standard formatted, freeairfoil C81 formatted, fixedairfoil CAMRAD unformatted
matrix standard formatted, free
unstructured real formatted, freeunstructured integer formatted, free
The end of each table has values of reference quantities.
196 TABLES
24-2.2 Two Dimensional, Standard
This table contains one or more two-dimensional coefficients: a set of Cγ(α, β). There is a separate,
rectangular (α, β) array for each coefficient:
αi for i = 1 to Nα
βj for j = 1 to Nβ
The coefficients are identified by a label γk (k = 1 to Nγ). The dependent variable data consist of the values
Ck(i, j). The independent variables α and β can be cyclical, and uniform.
24-2.3 Three Dimensional, Standard
This table contains a three-dimensional coefficient: C(α, β, γ). The information is arranged as a separate,
rectangular (α, β) array:αi for i = 1 to Nα
βj for j = 1 to Nβ
for a set of values γk (k = 1 to Nγ). The dependent variable data consist of the values Ck(i, j). The analysis
first interpolates over α and β, then over γ. The independent variables α and β can be cyclical, and uniform.
The independent variable γ can be searched or interpolated; cyclical; and uniform. For interpolation, γk defines
the value for the k-th two-dimensional array. For search, γk defines the beginning of the range of the k-th
two-dimensional array.
24-2.4 Four Dimensional, Standard
This table contains a four-dimensional coefficient: C(α, β, γ, δ). The information is arranged as a separate,
rectangular (α, β) array:αi for i = 1 to Nα
βj for j = 1 to Nβ
for a set of γk (k = 1 to Nγ) and δm (m = 1 to Nδ) values. The (αi, βj) values are the same for all (γ, δ); the
γk values are the same for all δ. The dependent variable data consist of the values C(i, j, k, m). The analysis first
interpolates over α and β, then over γ, then over δ. The independent variables α, β, γ, and δ can be cyclical, and
uniform.
24-2.5 Airfoil Tables
Airfoil tables contain lift coefficient, drag coefficient, and moment coefficient data as a function of angle of
attack α and Mach number M : c�(α, M), cd(α, M), and cm(α, M). The angle of attack is cyclical. For all airfoil
tables, the first reference value is the Reynolds number Re1 (default value of zero). This is the Reynolds number of
the table corresponding to a Mach number M = 1. The Reynolds number at an arbitrary Mach number will then be
calculated as Re = M Re1. This linear relation is usually an approximation to the true relation between Reynolds
number and Mach number for the airfoil data. Thus Re1 is chosen to minimize the error of the approximation over
the range of data in the table. Figure 1 illustrates the approximation.
The airfoil can have a trailing edge flap. Then the coefficients are functions of the flap angle φ as well as
angle of attack and Mach number; and the table includes coefficients of lift, drag, and moment acting on the flap:
TABLES 197
ReynoldsnumberRe
Re1 approximate
Re vs M
actualRe vs Min airfoiltest
00 1.0
Mach number M
Figure 24-1 Relation between Reynolds number and Mach number.
198 TABLES
c�f , cdf , and cmf . The coefficients c�, cd, and cm are the total loads on the airfoil, including the flap loads. The
second reference value is the flap angle φ.
24-2.5.1 Airfoil, Standard
This table contains three or six two-dimensional coefficients: c�(α, M), cd(α, M), and cm(α, M); and
c�f (α, M), cdf (α, M), and cmf (α, M) with a trailing edge flap. There is a separate, rectangular (α, M ) array for
each coefficient:αi for i = 1 to Nα
Mj for j = 1 to NM
The dependent variable data consist of the values c�(i, j), cd(i, j), and cm(i, j); and c�f (i, j), cdf (i, j), and
cmf (i, j). The coefficients can be in any order, and angle of attack can be the row or the column. The angle of
attack α is cyclical. If the airfoil has a trailing edge flap, the table is for one flap angle φ.
24-2.5.2 Airfoil, C81
This table contains three or six two-dimensional coefficients: c�(α, M), cd(α, M), and cm(α, M); and
c�f (α, M), cdf (α, M), and cmf (α, M) with a trailing edge flap. There is a separate, rectangular (α, M ) array for
each coefficient:αi for i = 1 to Nα
Mj for j = 1 to NM
The dependent variable data consist of the values c�(i, j), cd(i, j), and cm(i, j); and c�f (i, j), cdf (i, j), and
cmf (i, j). The coefficients must be in a fixed order, and the angle of attack must be the row. The angle of attack
α is cyclical. If the airfoil has a trailing edge flap, the table is for one flap angle φ.
24-2.5.3 Airfoil, CAMRAD
This table contains three three-dimensional coefficients: c�(α, M, r), cd(α, M, r), and cm(α, M, r). The last
independent variable is the wing span station r. If the wing has a trailing edge flap at any span station, the table con-
tains six four-dimensional coefficients: c�(α, M, φ, r), cd(α, M, φ, r), and cm(α, M, φ, r); and c�f (α, M, φ, r),cdf (α, M, φ, r), and cmf (α, M, φ, r). The table is constructed from a set of airfoil tables (Standard or C81 type),
one for each span station and each flap angle. The data in the source table are interpolated to the values of the
independent variables required for the CAMRAD table. The information is arranged as a common, rectangular
(α, M ) array:αi for i = 1 to Nα
Mj for j = 1 to NM
for a set of values φl (l = 1 to Nφ) and rk (k = 1 to Nr). A special convention is used for the (α, M ) array,
designed for efficient interpolation. The dependent variable data consist of the values c�(i, j, l, k), cd(i, j, l, k),and cm(i, j, l, k); and c�f (i, j, l, k), cdf (i, j, l, k), and cmf (i, j, l, k). The analysis first interpolates over α and M ,
then φ, and then r. The angle of attack α is cyclical. The span station r can be searched or interpolated. For
interpolation, rk defines the value for the k-th airfoil. For search, rk defines the beginning of the range of the k-th
airfoil.
24-2.6 Matrix, Standard
This table contains one or more two-dimensional matrices or arrays: a set of CM (I, J). There is a separate,
TABLES 199
rectangular (I , J) array for each matrix (integers):
Ii for i = 1 to NI
Jj for j = 1 to NJ
The matrices are identified by a label or number Mk (k = 1 to NM ). The independent variables I and J can
be uniform. The dependent variable data consist of the values Ck(i, j). The data are not interpolated. Typically
initialization moves the table data to a record for use by the analysis.
24-2.7 Unstructured, Real or Integer
This table contains real or integer numbers: a set of numbers T (i), for i = 1 to N . The numbers are counted
as read, and stored in a record in the order read. The data are not interpolated. The use of the table data by the
analysis depends on the component implementation. The component may assume a structure of the numbers in
the table. A line at the beginning of the table file contains descriptive information, including perhaps integers that
can be extracted for use by the component.
24–3 Theory
24-3.1 Interpolation
The table quantities are functions of continuous variables, accessed by interpolation (except for the matrix
and unstructured classes). Linear interpolation is used, with no extrapolation beyond the range of the table.
Optionally cyclical or angle interpolation can be used for an independent variable α. In this case the variable
α is an angle in degrees. The table range is typically from 0 to 360 degrees, or from −180 to 180 degrees. Thus
a multiple of 360 degrees is added to or subtracted from α, until its value is within the table range. Then the
dependent variables are interpolated (still with no extrapolation, in case the table range does not extend the full
360 degrees). Optionally an independent variable can have uniform increments. Then αi is determined from the
first two values:
αi = α1 + (i − 1)(α2 − α1) = (2α1 − α2) + i(α2 − α1) = α0 + iΔα
and the remaining values of the independent variable in the table (which must still be present) are ignored. For
three-dimensional tables, the last variable γ can be searched or interpolated. For interpolation, γk (k = 1 to Nγ)
defines the value for the k-th two-dimensional array. The two-dimensional arrays are first interpolated in α and β,
then the dependent variable is interpolated in γ. For search, γk (k = 1 to Nγ) defines the beginning of the range
of the k-th two-dimensional array.
The following interpolation algorithm is used. Consider the quantity C(α). The table data consist of the set
of dependent and independent variables, Ci and αi, for i = 1 to N . The value of C at an arbitrary α is required.
If N = 1, then C = C1 regardless of α. Otherwise the data are interpolated. If α is cyclical, then a multiple of
360 degrees is added so α ≥ α1; and then a multiple of 360 degrees is subtracted so α ≤ αN . Now if α is outside
the data range:
C ={
C1 if α ≤ α1
CN if α ≥ αN
Otherwise the list of αi is searched to find i such that
αi ≤ α ≤ αi+1
200 TABLES
Then
ai =αi+1 − α
αi+1 − αi= 1 − ai+1
and
C = aiCi + ai+1Ci+1
is the required interpolated value. If the independent variable α has uniform increments, then i is obtained by
calculation instead of search:
i =[α − α0
Δα
]where [a] means the greatest integer in a.
24-3.2 Airfoil Tables
Airfoil tables contain two-dimensional lift coefficient, drag coefficient, and moment coefficient data as a
function of angle of attack α and Mach number M : c�(α, M), cd(α, M), and cm(α, M). The airfoil can have
a trailing edge flap. Then the coefficients are functions of the flap angle φ as well as angle of attack and Mach
number; and the table includes coefficients of lift, drag, and moment acting on the flap: c�f , cdf , and cmf . The
angle of attack is defined in the range −180 to 180 degrees. The airfoil loads as a function of angle of attack
are defined as in a two-dimensional airfoil test. Figure 2 shows the conventions. In such a test, the angle of
attack α is varied by pitching the airfoil, so the lift is always positive upward; the drag is positive in the direction
of the free stream; and the moment is positive nose up. The section moment is given about a fixed axis of the
section. In reverse flow, the aerodynamic center shifts to near the three-quarter-chord (from near the quarter-chord
in normal flow) so it is expected that the cm data will show a nose up moment contribution of ΔM = (c/2)L, or
Δcm = 1/2c�. Figure 3 illustrates the expected behavior of the airfoil characteristics. The sign convention for the
flap coefficients is similar: lift positive up, drag positive in the direction of the free stream, and moment positive
nose up (flap trailing edge down).
The definitions of the two-dimensional airfoil lift, drag, and moment coefficients (total airfoil loads and flap
loads) are:c� = L/qc
c�f = Lf/qc
cd = D/qc
cdf = Df/qc
cm = M/qc2
cmf = Mf/qc2
where c is the airfoil chord, and q = 1/2ρV 2 the dynamic pressure. The definition of the characteristics also
involves the reference chord line in the airfoil, for measurement of the angle of attack; and the reference axis, for
measurement of the pitch moment. Usually the reference axis is at 25 percent chord, but the reference chord is
unlikely to be the zero-lift line except for a symmetrical airfoil. The component that uses the airfoil data must
have a consistent definition of the reference chord and reference axis. For an airfoil with a trailing edge flap, the
definition of the characteristics also involves the flap angle, and a reference axis for the flap coefficients. Typically
the reference axis for the flap coefficients is at the flap hinge. This axis is on the reference chord line, although the
flap hinge may not be. The component that uses the airfoil data must also have a consistent definition of the flap
angle and flap moment.
The two-dimensional airfoil data are generally obtained from wind tunnel tests. Computational fluid dynamic
techniques can also be used to produce the characteristics. If the data are not available from such sources,
approximate tables can be synthesized from generalized airfoil equations.
TABLES 201
Lift
Moment
Drag
loads actingat airfoilreference axis
airfoil referencechordline
windtunnelaxis
airvelocity
angle ofattack
Figure 24-2 Conventions for airfoil loads and angle of attack.
202 TABLES
-180 -90 0 90 180α
cd
cm
cl
Figure 24-3 Sketch of two-dimensional airfoil characteristics.
TABLES 203
0-180 180
Mach numberM
angle of attack α (deg)
possible rangeof data in table
1.0
0
Figure 24-4 Use of airfoil table data (Standard or C81 type).
204 TABLES
Airfoil coefficients are evaluated from the table data by linear interpolation, with no extrapolation beyond the
range of the table. Figure 4 illustrates the use of the table data. To avoid errors (since there is no extrapolation),
the angle of attack range should always extend from 180 to −180 degrees. The table data at large |α| are likely
obtained from a generic test (frequently NACA 0012 airfoil data), not from a test of this airfoil. In such a case it is
necessary to be careful joining the two sets of data. The Mach number data extend over a specific range Mmin to
Mmax. Evaluation of the coefficients (with no extrapolation) for M < Mmin gives good results as long as Mmin
is below about 0.3. Evaluation of the coefficients (with no extrapolation) for M > Mmax can produce significant
errors. No error message is produced if the table data are accessed outside the available range.
24-3.3 Synthesized Airfoil Data
For cases when data are not available for the required airfoil, the characteristics can be synthesized from
equations that represent typical airfoil behavior. Such equations also provide the capability to use simplified airfoil
characteristics. The analysis uses the following equations.
a) Below Stallc� = c�ααe
cm = cmac
cd = δ0 + δ1αe + δ2α2e + Δcd
αe = α − αZL
Δcd = max(
0,∂cd
∂M(M − Mc)
)
c�α=
⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩
a
[1√
1 − M2
]M < Mdiv
a
[1 − M
(1 − Mdiv)√
1 − M2div
]Mdiv < M < Mdiv + .1
a
[1 − M
(1 − Mdiv)√
1 − M2div
+M − Mdiv − .11 − Mdiv − .1
]Mdiv + .1 < M < 1
a M > 1
Mc = max(
0, Mcrit
(1 − |αe|
αcrit
))b) Stall Angle
c�s = c�max min(
1,(1 − M) + fs(M − Ms)
1 − Ms
)αs = c�s
/c�α
c) Stalled Lift: if |αe| > αs then
c� = sign(αe) max[(gsαs − |αe|)c�s + (|αe| − αs)hsc�s
gsαs − αs, hsc�s , c�f
sin 2|αe|]
or if |αe| > 45 then
c� = sign(αe) c�fsin 2|αe|
TABLES 205
d) Stalled moment: if |αe| > αs0 = c�s/a then
cm = sign(αe)[(60 − |αe|)cms + (|αe| − αs0)(.75)cmf
60 − αs0
]or if |αe| > 60 then
cm = sign(αe)[(90 − |αe|)(.75)cmf
+ (|αe| − 60)cmf
30
]cmf
= −14cd(αe = 90) = −1
4cdf
e) Stalled drag: if |αe| > αd then
cd = cdd+ (cdf
− cdd) sin
( |αe| − αd
90 − αd90
)cdd
= cd(αe = αd)
f) Reverse flow: if |α − αZL| > 90 then
αe = (α − αZL) − 180 sign(α − αZL)
Δcm =12(cl cos αe + cd sinαe)
These equations are illustrated in figure 5. For an airfoil with a trailing edge flap, the flap angle is specified and
the above equations are used with appropriate parameter values; the flap loads are zero.
24-3.4 Airfoil Table, Type = CAMRAD
This table contains three three-dimensional coefficients: c�(α, M, r), cd(α, M, r), and cm(α, M, r). The last
independent variable is the wing span station r. If the wing has a trailing edge flap at any span station, the table con-
tains six four-dimensional coefficients: c�(α, M, φ, r), cd(α, M, φ, r), and cm(α, M, φ, r); and c�f (α, M, φ, r),cdf (α, M, φ, r), and cmf (α, M, φ, r). The information is arranged as a common, rectangular (α, M ) array for a
set of φ and r values. A special convention is used for the (α, M ) array, designed for efficient interpolation.
The coefficient data are defined at a set of angle of attack points. To facilitate interpolation, these points
consist of several groups, with the same angle of attack increment within each group. Then the set of angle of
attack points are completely specified by the α values at the boundaries between the groups, and the indices of
these points. Figure 6 illustrates the convention. Figure 7 shows typical boundaries. There are Na angle of attack
boundaries (Na−1 groups). The index n counts the actual angle of attack values, with values nk at the boundaries
(k = 1 to Na) Note n1 = 1 always, and nNa is the total number of angle of attack values in the table. The
corresponding angles of attack at the boundaries are αk. The angle of attack range should be −180 to 180 degrees,
since the data are not extrapolated.
The purpose of this organization is to minimize the search required to interpolate the data. It is only necessary
to search the table in terms of the groups. Interpolation within a group requires only numerical operations. The
reduction in search operations is significant if a large number of points can be divided into a small number of
groups. Additionally, the search can be started within a specified group, rather than at the beginning of the range.
A similar convention is used for the variation with Mach number. The table places no restriction on the range
206 TABLES
Δcd
0 M
Mc
∂cd
∂M
α0 6 0 90
0
αs
cmac
cms
.75cmf
cmf
cmf= - 1
4cd(90)
cm
α0 αcrit
Mcrit
Mc
α0 90αs gsαs
cl
cls
h scls clfsin 2α
cls
clmax
f sclmax
0 1.0MsM
Mdiv Mdiv + 0.1
a
1-M2clα
a
0 1.0
M
Figure 24-5 Airfoil characteristics from equations.
TABLES 207
angle of attack points
boundaries of groups
boundary index
angle of attackat boundary
1
α1
2 3 Na
n1 n2 n3 nN a
α 2 α 3 α Na
. . . .
. . . .
. . . .. . . .
. . . .
. . . . group
Figure 24-6 Convention for angle of attack points and boundaries.
208 TABLES
1 0.00
n= M=21 0.95
7 0.60
ΔM=.025
ΔM=.100
−180 −150 −30 30 150 180 = α 1 16 28 88 100 115 = n
2 10 1 10 2 = Δα
Figure 24-7 Typical angle of attack and Mach number boundaries.
TABLES 209
of M values, but the results are not meaningful if attempts are made to use the data at Mach numbers above the
available data.
The span station r can be searched or interpolated. In both cases, there are Nr sets of coefficients, correspond-
ing to span stations rk, for k = 1 to Nr. For interpolation, rk defines the value for the k-th airfoil. For search,
rk defines the beginning of the range of the k-th airfoil. In the latter case the table data are used over the range
r = rk to r = rk+1. If the wing has a trailing edge flap, at each span station k there are Nφk sets of coefficients,
corresponding to the flap angles φl, for l = 1 to Nφk. If a section has no flap, then Nφk = 1 and zero flap angle is
assumed. The analysis first interpolates over α and M , then φ, and then r.
Hence the table data are described by the following quantities:
a) Angle of attack boundaries: nk and αk, for k = 1 to Na
b) Mach number boundaries: nk and Mk, for k = 1 to Nm
c) Span station values or boundaries: rk, for k = 1 to Nr
d) Trailing edge flap angles: φl, for l = 1 to Nφ(r)e) Coefficient values: c(nNa , nNm , Nφ, Nr) for lift, drag, and moment (total and flap)
The boundary information is sufficient to define the values of α and M for all values in the coefficient arrays. The
same boundaries are used for the lift, drag, and moment coefficients.
The coefficient data are linearly interpolated over angle of attack and Mach number. Consider the angle of
attack variation, c(α). The value of c at an arbitrary α is required. The angle of attack is cyclical, so a multiple
of 360 degrees is added so α ≥ −180; and then a multiple of 360 degrees is subtracted so α ≤ 180. Now if α is
outside the data range, then c = cj where j = nk and
k ={
1 if α ≤ −180Na if α ≥ 180
Otherwise the data are interpolated. The angles of attack in the table between the boundaries αi and αi+1 are:
αj = αi + (j − ni) Δα
for j = ni to ni+1, where the angle of attack increment in the group is
Δα =αi+1 − αi
ni+1 − ni
Given α, the groups are searched for i such that
αi ≤ α ≤ αi+1
It follows (by calculation not search) that
αj ≤ α ≤ αj+1
where
j = ni +[α − αi
Δα
]αj = αi + (j − ni) Δα
210 TABLES
(here [a] means the greatest integer in a). With the coefficient defined at cj ,
aj+1 =1
Δα(α − αj)
=1
Δα(α − αi) − (j − ni)
=α − αi
Δα−
[α − αi
Δα
]aj = 1 − aj+1
and
c = ajcj + aj+1cj+1
is the required interpolated value. The algorithm for interpolation over Mach number is similar to that over angle
of attack (but the Mach number is not cyclical). The table data are simultaneously interpolated in α and M for a
given span station r.
If the section has a trailing edge flap, the coefficients are linearly interpolated to the required flap angle φ
using the standard algorithm. If there is more than one span station r in the table and the span station is to be
searched, then k is found such that
rk < r ≤ rk+1
Then the coefficient is evaluated for the k-th airfoil. If the span station r is to be interpolated, then k is found such
that
rk ≤ r ≤ rk+1
Then the coefficient is evaluated for the k and (k+1) airfoils, and linearly interpolated using the standard algorithm.
The CAMRAD table is constructed from a set of two-dimensional airfoil tables, one for each span station
and each flap angle. Each source table (Standard or C81 type) is for a single airfoil section and flap angle. The
CAMRAD table is for the entire wing, containing one or more airfoil sections. The data in the source table are
interpolated to the values of the independent variables (α, M ) required for the CAMRAD table. The resolution of
angle of attack and Mach number in the CAMRAD table is normally small enough that the behavior of the data in
the source table is accurately captured.
Airfoil coefficients are evaluated from the CAMRAD table data by linear interpolation, with no extrapolation
beyond the range of the table. Figure 8 illustrates the use of the table data. So that no information is lost in
constructing the CAMRAD table, the angle of attack and Mach number ranges in the CAMRAD table should be
larger than the ranges in the source tables. The primary concern is the maximum Mach number. For evaluation of
the coefficients in an aerodynamic analysis, the same considerations apply as described above (figure 4).
The wing geometry is defined by specific airfoil sections at certain span stations. Typically wings are
designed with linear variation of the geometry between these specified sections. Figure 9 illustrates the geometry.
The CAMRAD table for the wing can be interpolated spanwise. The table sections then correspond to span stations
where the wing geometry is specified. Spanwise interpolation must be used with care however. With nonlinear
aerodynamics, linear variation of geometry does not imply linear variation of loads. Hence spanwise interpolation
can produce problems with the stall behavior, the compressible drag rise, or the zero lift angle. In order to use
spanwise interpolation on a wing with trailing edge flaps, there should be tables at the span stations of the flap
TABLES 211
0-180 180
Mach numberM
angle of attack α (deg)
1.0
0
possible range of data in source table(STANDARD or C81)
possible range of datain CAMRAD table
Figure 24-8 Use of airfoil table data (CAMRAD type).
212 TABLES
edges. Alternatively, the CAMRAD table for the wing can be searched spanwise. The span stations in the table
then correspond to boundaries between the sections. Typically these boundaries also correspond to the edges of
aerodynamic panels. If the transition region between two sections is long, it may be necessary to include a separate
transition airfoil section. Such transition sections are not usually tested, so the airfoil data must be generated by
the user (perhaps by linear interpolation).
TABLES 213
WING GEOMETRY
r
airfoil A airfoil A airfoil B airfoil C
CAMRAD TABLE FOR WINGspan station interpolated
A B C
1 2 3 r r r
span station searched
A B C1 2 3
r r r
span station searched
1 2 3 4 r r r r
A D B C
Figure 24-9 Spanwise specification of airfoil tables.
214 TABLES