CAMRAD II - johnson-aeronautics.com

224
CAMRAD II COMPREHENSIVE ANALYTICAL MODEL OF ROTORCRAFT AERODYNAMICS AND DYNAMICS Volume I: Theory Wayne Johnson Distributed by Johnson Aeronautics AMI Aero, LLC Palo Alto, California Redmond, Washington

Transcript of CAMRAD II - johnson-aeronautics.com

Page 1: 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

Page 2: CAMRAD II - johnson-aeronautics.com
Page 3: CAMRAD II - johnson-aeronautics.com

CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OF

ROTORCRAFT AERODYNAMICS AND DYNAMICS

Volume I: Theory

Release 5.0

Wayne Johnson

Johnson Aeronautics

Page 4: CAMRAD II - johnson-aeronautics.com

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.

Page 5: CAMRAD II - johnson-aeronautics.com

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

Page 6: CAMRAD II - johnson-aeronautics.com

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

Page 7: CAMRAD II - johnson-aeronautics.com

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

Page 8: CAMRAD II - johnson-aeronautics.com

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

Page 9: CAMRAD II - johnson-aeronautics.com

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

Page 10: CAMRAD II - johnson-aeronautics.com

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

Page 11: CAMRAD II - johnson-aeronautics.com

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.

Page 12: CAMRAD II - johnson-aeronautics.com

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.

Page 13: CAMRAD II - johnson-aeronautics.com

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

Page 14: CAMRAD II - johnson-aeronautics.com

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.

Page 15: CAMRAD II - johnson-aeronautics.com

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.

Page 16: CAMRAD II - johnson-aeronautics.com

6 INTRODUCTION

Page 17: CAMRAD II - johnson-aeronautics.com

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

Page 18: CAMRAD II - johnson-aeronautics.com

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

Page 19: CAMRAD II - johnson-aeronautics.com

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.

Page 20: CAMRAD II - johnson-aeronautics.com

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

Page 21: CAMRAD II - johnson-aeronautics.com

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.

Page 22: CAMRAD II - johnson-aeronautics.com

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.

Page 23: CAMRAD II - johnson-aeronautics.com

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

Page 24: CAMRAD II - johnson-aeronautics.com

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

Page 25: CAMRAD II - johnson-aeronautics.com

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

Page 26: CAMRAD II - johnson-aeronautics.com

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,

Page 27: CAMRAD II - johnson-aeronautics.com

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.

Page 28: CAMRAD II - johnson-aeronautics.com

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.

Page 29: CAMRAD II - johnson-aeronautics.com

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

Page 30: CAMRAD II - johnson-aeronautics.com

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

Page 31: CAMRAD II - johnson-aeronautics.com

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

Page 32: CAMRAD II - johnson-aeronautics.com

22 SYSTEM ANALYSIS

Page 33: CAMRAD II - johnson-aeronautics.com

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

Page 34: CAMRAD II - johnson-aeronautics.com

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.

Page 35: CAMRAD II - johnson-aeronautics.com

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

Page 36: CAMRAD II - johnson-aeronautics.com

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.

Page 37: CAMRAD II - johnson-aeronautics.com

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.

Page 38: CAMRAD II - johnson-aeronautics.com

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.

Page 39: CAMRAD II - johnson-aeronautics.com

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

Page 40: CAMRAD II - johnson-aeronautics.com

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.

Page 41: CAMRAD II - johnson-aeronautics.com

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.

Page 42: CAMRAD II - johnson-aeronautics.com

32 FRAMES

center-of-mass/mean axes

base frame

inertial frame

body axes

Figure 4-2 System rigid motion.

Page 43: CAMRAD II - johnson-aeronautics.com

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

Page 44: CAMRAD II - johnson-aeronautics.com

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).

Page 45: CAMRAD II - johnson-aeronautics.com

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

Page 46: CAMRAD II - johnson-aeronautics.com

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.

Page 47: CAMRAD II - johnson-aeronautics.com

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.

Page 48: CAMRAD II - johnson-aeronautics.com

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).

Page 49: CAMRAD II - johnson-aeronautics.com

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.

Page 50: CAMRAD II - johnson-aeronautics.com

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

Page 51: CAMRAD II - johnson-aeronautics.com

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).

Page 52: CAMRAD II - johnson-aeronautics.com

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

Page 53: CAMRAD II - johnson-aeronautics.com

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 ω

)(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.

Page 54: CAMRAD II - johnson-aeronautics.com

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

)+ · · ·

Page 55: CAMRAD II - johnson-aeronautics.com

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

Page 56: CAMRAD II - johnson-aeronautics.com

46 INTERFACES

Page 57: CAMRAD II - johnson-aeronautics.com

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:

Page 58: CAMRAD II - johnson-aeronautics.com

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.

Page 59: CAMRAD II - johnson-aeronautics.com

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.

Page 60: CAMRAD II - johnson-aeronautics.com

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.

Page 61: CAMRAD II - johnson-aeronautics.com

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.

Page 62: CAMRAD II - johnson-aeronautics.com

52 INPUT

Page 63: CAMRAD II - johnson-aeronautics.com

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

⎞⎠

Page 64: CAMRAD II - johnson-aeronautics.com

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.

Page 65: CAMRAD II - johnson-aeronautics.com

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).

Page 66: CAMRAD II - johnson-aeronautics.com

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

⎞⎠

Page 67: CAMRAD II - johnson-aeronautics.com

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

Page 68: CAMRAD II - johnson-aeronautics.com

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.

Page 69: CAMRAD II - johnson-aeronautics.com

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

⎞⎠

Page 70: CAMRAD II - johnson-aeronautics.com

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.

Page 71: CAMRAD II - johnson-aeronautics.com

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.

Page 72: CAMRAD II - johnson-aeronautics.com

62 PERIOD

Page 73: CAMRAD II - johnson-aeronautics.com

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

Page 74: CAMRAD II - johnson-aeronautics.com

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

Page 75: CAMRAD II - johnson-aeronautics.com

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.

Page 76: CAMRAD II - johnson-aeronautics.com

66 TRIM TASK

Page 77: CAMRAD II - johnson-aeronautics.com

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.

Page 78: CAMRAD II - johnson-aeronautics.com

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:

Page 79: CAMRAD II - johnson-aeronautics.com

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

Page 80: CAMRAD II - johnson-aeronautics.com

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

Page 81: CAMRAD II - johnson-aeronautics.com

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

Page 82: CAMRAD II - johnson-aeronautics.com

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

Page 83: CAMRAD II - johnson-aeronautics.com

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

Page 84: CAMRAD II - johnson-aeronautics.com

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

Page 85: CAMRAD II - johnson-aeronautics.com

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

Page 86: CAMRAD II - johnson-aeronautics.com

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

Page 87: CAMRAD II - johnson-aeronautics.com

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.

Page 88: CAMRAD II - johnson-aeronautics.com

78 TRIM LOOP

Page 89: CAMRAD II - johnson-aeronautics.com

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,

Page 90: CAMRAD II - johnson-aeronautics.com

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

Page 91: CAMRAD II - johnson-aeronautics.com

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.

Page 92: CAMRAD II - johnson-aeronautics.com

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

Page 93: CAMRAD II - johnson-aeronautics.com

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

Page 94: CAMRAD II - johnson-aeronautics.com

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.

Page 95: CAMRAD II - johnson-aeronautics.com

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.

Page 96: CAMRAD II - johnson-aeronautics.com

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

Page 97: CAMRAD II - johnson-aeronautics.com

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:

Page 98: CAMRAD II - johnson-aeronautics.com

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

Page 99: CAMRAD II - johnson-aeronautics.com

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

Page 100: CAMRAD II - johnson-aeronautics.com

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

]

Page 101: CAMRAD II - johnson-aeronautics.com

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

⎤⎦

Page 102: CAMRAD II - johnson-aeronautics.com

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

]

Page 103: CAMRAD II - johnson-aeronautics.com

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

Page 104: CAMRAD II - johnson-aeronautics.com

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.

Page 105: CAMRAD II - johnson-aeronautics.com

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

Page 106: CAMRAD II - johnson-aeronautics.com

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

Page 107: CAMRAD II - johnson-aeronautics.com

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

)

Page 108: CAMRAD II - johnson-aeronautics.com

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

Page 109: CAMRAD II - johnson-aeronautics.com

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

⎞⎠

Page 110: CAMRAD II - johnson-aeronautics.com

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

Page 111: CAMRAD II - johnson-aeronautics.com

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

Page 112: CAMRAD II - johnson-aeronautics.com

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).

Page 113: CAMRAD II - johnson-aeronautics.com

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.

Page 114: CAMRAD II - johnson-aeronautics.com

104 TRANSIENT TASK

Page 115: CAMRAD II - johnson-aeronautics.com

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.

Page 116: CAMRAD II - johnson-aeronautics.com

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.

Page 117: CAMRAD II - johnson-aeronautics.com

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

)

Page 118: CAMRAD II - johnson-aeronautics.com

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.

Page 119: CAMRAD II - johnson-aeronautics.com

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

Page 120: CAMRAD II - johnson-aeronautics.com

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

Page 121: CAMRAD II - johnson-aeronautics.com

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.

Page 122: CAMRAD II - johnson-aeronautics.com

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

Page 123: CAMRAD II - johnson-aeronautics.com

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.

Page 124: CAMRAD II - johnson-aeronautics.com

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

Page 125: CAMRAD II - johnson-aeronautics.com

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

Page 126: CAMRAD II - johnson-aeronautics.com

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

Page 127: CAMRAD II - johnson-aeronautics.com

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

Page 128: CAMRAD II - johnson-aeronautics.com

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

Page 129: CAMRAD II - johnson-aeronautics.com

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

Page 130: CAMRAD II - johnson-aeronautics.com

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

Page 131: CAMRAD II - johnson-aeronautics.com

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

)

Page 132: CAMRAD II - johnson-aeronautics.com

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.

Page 133: CAMRAD II - johnson-aeronautics.com

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

)

Page 134: CAMRAD II - johnson-aeronautics.com

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

Page 135: CAMRAD II - johnson-aeronautics.com

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

Page 136: CAMRAD II - johnson-aeronautics.com

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

Page 137: CAMRAD II - johnson-aeronautics.com

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.

Page 138: CAMRAD II - johnson-aeronautics.com

128 TRANSIENT PART

Page 139: CAMRAD II - johnson-aeronautics.com

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

Page 140: CAMRAD II - johnson-aeronautics.com

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

Page 141: CAMRAD II - johnson-aeronautics.com

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;

Page 142: CAMRAD II - johnson-aeronautics.com

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

Page 143: CAMRAD II - johnson-aeronautics.com

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.

Page 144: CAMRAD II - johnson-aeronautics.com

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

Page 145: CAMRAD II - johnson-aeronautics.com

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

Page 146: CAMRAD II - johnson-aeronautics.com

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

Page 147: CAMRAD II - johnson-aeronautics.com

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τ

1 + 3(τω)2

(1 + (τω)2)2

and the von Karman spectra:

Su =σ2τ

π

1(1 + (aτω)2)5/6

Sv = Sw =σ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:

Page 148: CAMRAD II - johnson-aeronautics.com

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∗).

Page 149: CAMRAD II - johnson-aeronautics.com

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

Page 150: CAMRAD II - johnson-aeronautics.com

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 .

Page 151: CAMRAD II - johnson-aeronautics.com

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

Page 152: CAMRAD II - johnson-aeronautics.com

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.

Page 153: CAMRAD II - johnson-aeronautics.com

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.

Page 154: CAMRAD II - johnson-aeronautics.com

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;

Page 155: CAMRAD II - johnson-aeronautics.com

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

Page 156: CAMRAD II - johnson-aeronautics.com

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).

Page 157: CAMRAD II - johnson-aeronautics.com

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

]

Page 158: CAMRAD II - johnson-aeronautics.com

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.

Page 159: CAMRAD II - johnson-aeronautics.com

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

Page 160: CAMRAD II - johnson-aeronautics.com

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

Page 161: CAMRAD II - johnson-aeronautics.com

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

Page 162: CAMRAD II - johnson-aeronautics.com

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

Page 163: CAMRAD II - johnson-aeronautics.com

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

Page 164: CAMRAD II - johnson-aeronautics.com

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

]

Page 165: CAMRAD II - johnson-aeronautics.com

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

]

Page 166: CAMRAD II - johnson-aeronautics.com

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

]

Page 167: CAMRAD II - johnson-aeronautics.com

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.

Page 168: CAMRAD II - johnson-aeronautics.com

158 FLUTTER PART

Page 169: CAMRAD II - johnson-aeronautics.com

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

Page 170: CAMRAD II - johnson-aeronautics.com

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.

Page 171: CAMRAD II - johnson-aeronautics.com

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

)]

Page 172: CAMRAD II - johnson-aeronautics.com

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ψ

)

Page 173: CAMRAD II - johnson-aeronautics.com

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.

Page 174: CAMRAD II - johnson-aeronautics.com

164 TRANSFORM

Page 175: CAMRAD II - johnson-aeronautics.com

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

Page 176: CAMRAD II - johnson-aeronautics.com

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.

Page 177: CAMRAD II - johnson-aeronautics.com

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

Page 178: CAMRAD II - johnson-aeronautics.com

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.

Page 179: CAMRAD II - johnson-aeronautics.com

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.

Page 180: CAMRAD II - johnson-aeronautics.com

170 MODES

Page 181: CAMRAD II - johnson-aeronautics.com

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.

Page 182: CAMRAD II - johnson-aeronautics.com

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

Page 183: CAMRAD II - johnson-aeronautics.com

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.

Page 184: CAMRAD II - johnson-aeronautics.com

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.

Page 185: CAMRAD II - johnson-aeronautics.com

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.

Page 186: CAMRAD II - johnson-aeronautics.com

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.

Page 187: CAMRAD II - johnson-aeronautics.com

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.

Page 188: CAMRAD II - johnson-aeronautics.com

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.

Page 189: CAMRAD II - johnson-aeronautics.com

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).

Page 190: CAMRAD II - johnson-aeronautics.com

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

Page 191: CAMRAD II - johnson-aeronautics.com

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

Page 192: CAMRAD II - johnson-aeronautics.com

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

Page 193: CAMRAD II - johnson-aeronautics.com

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

Page 194: CAMRAD II - johnson-aeronautics.com

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

Page 195: CAMRAD II - johnson-aeronautics.com

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

Page 196: CAMRAD II - johnson-aeronautics.com

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 ω

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

Page 197: CAMRAD II - johnson-aeronautics.com

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

Page 198: CAMRAD II - johnson-aeronautics.com

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

Page 199: CAMRAD II - johnson-aeronautics.com

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.

Page 200: CAMRAD II - johnson-aeronautics.com

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

Page 201: CAMRAD II - johnson-aeronautics.com

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 Δ.

Page 202: CAMRAD II - johnson-aeronautics.com

192 RESPONSE

Page 203: CAMRAD II - johnson-aeronautics.com

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

Page 204: CAMRAD II - johnson-aeronautics.com

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).

Page 205: CAMRAD II - johnson-aeronautics.com

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.

Page 206: CAMRAD II - johnson-aeronautics.com

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:

Page 207: CAMRAD II - johnson-aeronautics.com

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.

Page 208: CAMRAD II - johnson-aeronautics.com

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,

Page 209: CAMRAD II - johnson-aeronautics.com

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

Page 210: CAMRAD II - johnson-aeronautics.com

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.

Page 211: CAMRAD II - johnson-aeronautics.com

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.

Page 212: CAMRAD II - johnson-aeronautics.com

202 TABLES

-180 -90 0 90 180α

cd

cm

cl

Figure 24-3 Sketch of two-dimensional airfoil characteristics.

Page 213: CAMRAD II - johnson-aeronautics.com

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).

Page 214: CAMRAD II - johnson-aeronautics.com

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|

Page 215: CAMRAD II - johnson-aeronautics.com

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

Page 216: CAMRAD II - johnson-aeronautics.com

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.

Page 217: CAMRAD II - johnson-aeronautics.com

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.

Page 218: CAMRAD II - johnson-aeronautics.com

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.

Page 219: CAMRAD II - johnson-aeronautics.com

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) Δα

Page 220: CAMRAD II - johnson-aeronautics.com

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

Page 221: CAMRAD II - johnson-aeronautics.com

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).

Page 222: CAMRAD II - johnson-aeronautics.com

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).

Page 223: CAMRAD II - johnson-aeronautics.com

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.

Page 224: CAMRAD II - johnson-aeronautics.com

214 TABLES