You are on page 1of 5

Proceedings of DETC’03

ASME 2003 Design Engineering Technical Conferences and

Computers and Information in Engineering Conference
Chicago, Illinois USA, September 2-6, 2003



Eric Bechhoefer, Shawn Tayloe

Goodrich Fuel And Utility Systems Goodrich Fuel And Utility Systems
100 Panton Rd, Vergennes, VT 05491 100 Panton Rd, Vergennes, VT 05491

ABSTRACT data driven IP solver allows one software build to be used

A mathematical solution for optimal balance weights is across all IMD HUMS platforms. For example, the S-92
presented for single-plane, discrete weight and discrete aircraft has 12 discreet adjustment points and 2 adjustment
adjustment point balance. The algorithm uses influence types while the SH-60 has 3 adjustment points and 4
coefficients, either given or derived, and measured synchronous adjustment types. Because of the data driven nature of the
complex vibration data to determine the best adjustment. The solution strategy, the user can select at the time of maintenance
solution has a user selected objective: minimum residual the number of adjustments allowed, and the specific adjustment
vibration or minimum number of adjustments to reach a given points to change (in the case that an adjustment point could not
vibration. The algorithm is part of Goodrich's Integrated be used).
Mechanical Diagnostics Health Usage Monitoring System
(IMD HUMS), currently installed on a number of helicopter NOMENCLATURE
platforms. The equations that are described within this document use
BOLD upper case letters (A, etc) to represent a matrix of n
Keywords: HUMS, Shaft Balance, Integer Programming rows by m columns, while bold lower case letters (x, etc.) to
represent a vector. A vector is a subclass of matrix with n rows
and 1 column. The basic arithmetic operations performed on a
INTRODUCTION matrix are (Strang).
IMD HUMS an extensive set of functions to support
rotorcraft health and diagnostics processing. These functions
support: rotor track and balance operations, gearbox and drive Modeling, Linear Programming and the Simplex
train mechanical diagnostics, operational and structural usage, Method
exceedence detection processing, and engine power assurance The calculations of a real shaft adjustment are made by
checks. The system is being fielded on a number of helicopter using a mathematical model of a physical object (Foiles).
platforms. Consider a shaft with 8 adjustment point with following
Part of the IMD HUMS functionality is to monitor spacing in degrees around the adjustment flange:
vibrations on high speed shafts, and to recommend a balance Adjustment points: 0 24 78 102 168 192 258 and 282
solution when a shaft vibration is unacceptable. The IMD degrees.
HUMS unit is currently installed on 5 different aircraft: SH- Assign 0 as the Y axis reference, and X as 90 degrees.
60B, CH-53E, UH-60A, S-92 and H-1. These aircraft have Take, for example, a frequency domain adjustment point of 91
different shaft configurations, with different numbers of grams at 47.2 degrees (the vibration vector was 92 grams at 230
balance points and weight types. Because of this, a degrees. The difference is between the adjustment vector and
configuration driven solution is required. Additionally, as the vibration vector is due to the vibration coefficient error, defined
number of balance points and adjustment types increase, the at .112).
total number of potential adjustments increases exponentially. If 66.846 grams were added to the 0 position
This can result in long processing time if total enumeration is (cosine(47.2)*91) and 61.8 grams to the 90 degree position
used (this is a class of problems know as NP complete) (sine(47.2)*91) the adjustment solution would be complete.
Integer Programming (IP) is a well known solution strategy However, the 90 degree position is not allowed, and we are
used to derive solutions to NP complete problems. Using a constrained as to what weight we can put on the shaft. In this

1 Copyright © 2003 by ASME

example, we have three types of screws and two types of Max z = cx
washers. The set of adjustments that are allowed are: Subject to:
No Weight Ax = b
Aluminum Screw - 15 grams l<x<u
Titanium Screw - 18 grams Where l and u represent the allowable lower and upper
Steel Screw - 21 grams bounds of variables x.
Aluminum Screw & Light Washer - 22 grams An extreme point, represents a basic feasible solution.
Titanium Screw & Light Washer - 25 grams This can be characterized mathematically by partitioning the
Steel Screw & Light Washer - 28 grams matrix A into a non-singular working basis matrix B , and the
Aluminum Screw & Heavy Washer - 30 grams matrices of nonbasic columns Nl and Nu.
Titanium Screw & Heavy Washer - 33 grams A = (B:Nl :Nu)
Steel Screw and Heavy Washer - 36 grams Based on this partitioning, the linear system Ax = b can be
rewritten to yield:
Any solution must be a combination of these allowable BxB+Nl xl +Nu xu = b
adjustments on n number of adjustment points. This simplifies to:
The model of this system is made by building a set of xB = B -1 b - B-1 Nl xl - B-1 Nu xu
constraints to satisfy the physical requirement of the system. The solution
The first constraint is the projection onto the Y plane, namely:  xB   x B 
the adjustment effectiveness is the weight multiplied by the    
cosine of the adjustment point angle. The sum of all weights x =  xN l  =  l N l 
applied must be at least equal the 66.846 grams:    
# Adjustmnet  xN u   u N u 
∑ Weight
i =1
i * cos( AdjustmentAngl ) + YP − YN = 66.8 is called a basic solution. If, in addition, the variable xB are
greater that or equal to their lower bounds and less than or
where YP is a variable representing the positive residual mass equal to their upper bounds, the solution is feasible. Now
and YN is a negative residual consider the objective function z = cx. By partitioning the cost
Similarly, the constraint for the projection onto the X plane vector, the objective function can be shown to be:
is: z = cBB-1 b - (c BB-1 Nl - cNl )l Nl - (c BB-1 Nu - cNu)uNu
# Adjustmnet Letting J l ,J u denote the index sets of variables that are
∑ Weight
i =1
i * sin( AdjustmentAngl ) + XP − XN = 61.8 nonbasic at their lower or upper bounds, this can be rewritten

Constraints must be made such that only one weight can be z = c B B −1b − ∑ ( z j − c j ) x j − ∑ (z j − c j ) x j
j∈J l j∈J u
applied to each adjustment point. This constraint is a Boolean:
a decision is made to put on an Aluminum screw (e.g. 1) forces Equation 1
all other variables to Zero.
# Wgts

∑ TypeOfWeig ht
Simplex Optimality
∀ AdjustmentPo ints j =1 Consider the nonbasic variable xj , where j is a member of
j=1 J l , that is, xj is at its lower bound. For xj to enter the basis, it
The objective is to minimum amount of total residual must increase from its lower bound. From equation 1 above,
mass: the objective function will only improve if (zj -cj ) < 0.
min YP + YN + XP + XN Similarly, if xj is a member of J u, then we can only decrease xj
This modeling process describes a Linear Program to find from it value of u. Because the rate of change of z with respect
the minimum residual adjustment. The Simplex method is a to xj is given by -(zj -cj ), decreasing xj will increase the objective
common solution strategy used to solve linear programs. Yet, function if and only if (zj -cj ) > 0. Therefore, the Optimality
the solution of this problem will rarely be an integer. An Conditions are:
integer solution can be made by sequentially bounding decision z j − c j ≥ 0, for all j ∈ J l
variable to either 0 or 1. This procedure is called Branch and
z j − c j ≤ 0, for all j ∈ J u
A Review of the Simplex Method
It can be shown that a solution to any linear problem is an Integer Programming: Branch and Bound
extreme point on an n-dimensional hyper-plane. The Simplex Enumeration
method is a systematic method for iteratively moving from one Branch and Bound is an enumerative approach to problem
extreme point to an adjacent extreme point, in the search for an solving that has been applied to a wide variety of combinatorial
optimal solution (Ignizio). problems. The basic idea of Branch and Bound is to partition a
Consider the standard form of a linear programming given problem into a number of sub-problems. This process of
problem: partitioning is called branching and its purpose is to establish

2 Copyright © 2003 by ASME

sub problems that are easier to solve than the original problem Suppose that Zbar is less that ZL, then Z will be less than or
because of their smaller size. The solution process involves a equal to Zbar, which is less than or equal to ZL and the sub
systematic process consisting of three key components: problem of Pi .
branching, computing bounds and fathoming.
Boundary Conditions of Branch and Bound During the branch and bound process, an attempt is made
There are two special cases that need to be considered to resolve each of the sub-problems associated with a node in
when performing shaft balance. The first is the case where the the search tree. Once all of the sub-problems belonging to a
vibration is so large that no adjustment can adequately control node are resolved, then the problem is solved. A sub-problem
vibration. When this occurs, the relaxed linear program can be eliminated from consideration in one of three ways:
solution will return an unfeasible solution. This should raise an • The sub-problem yields an optimal solution. In this case,
exception, notifying the user that no feasible solution exits ZL is updated (e.g. a new incumbent) and the node
(indicating that the shaft should be replaced). selection process continued.
Alternatively, there is the case when balancing a very • The optimal value of the LP relaxation is less than or equal
smooth shaft, where the magnitude of measured vibration is so to the best integer solution.
low that any adjustment, due to the available minimum • The sub-problem is infeasible.
adjustment size, will force a larger vibration into the shaft. A node (e.g. sub-problem) that has been removed from
This is the case where the norm of the vibration is less than one consideration in one of these ways is said to be fathomed. The
half the minimum weight adjustment. In this case, no algorithm continues until every node of the search tree is
adjustment should be made. fathomed. The incumbent solution is now the optimal solution.

Branching Modeling and Matrix Generation

To derive the optimal solution to a given problem P, the set Branch and Bound is a generalized solution strategy. As
of sub problems of P must represent all of P. Assume that {PI} such, the utility of the solver is completely dependent on the
represents the set of feasible integer solutions to a problem P. model, which is the matrix representation of the model. This
Then if P is partitioned into P1 , P2 …Pr, it must be true that {P} requires putting the matrix representation into standard Linear
= {P1 }U{P2 }U…U{Pr }. Additionally, we shall choose sub Program form:
problems P1 , P2 , …Pr such that {Pi } complement {Pj } is NULL Max z = cx
for all i not equal to j. Note that during the branching process, subject to:
we are adding restriction to a particular problem to form the Ax = b
resulting sub problem. Consequently, the feasible region of a l<x<u
sub problem is a subset of the feasible region of the parent Thus all models attempt to maximize the objective, which
problem. Thus, in the case of a maximization problem, the is the inner product of the cost vector c and the adjustment, x.
optimal objective value associated with a sub problem is always In shaft balance case, the objective is to minimize residual
less than or equal to the optimal value of the parent problem. vibration, which requires maximizing the negative residual
Therefore, as we descend in the search tree, the optimal vibration. The standard LP solves an equality constraint, e.g.
objective values associated with each sub problem decrease for A 11 + A 12 + …A 1m = b 1 . In the case where there is an inequality
a maximization problem. constraint, it must be converted to equality by adding a
variable. The variable will have no associated cost (e.g. cm+1 =
Bounds 0), but the sign of the variable in the constraint matrix will be
If we know a feasible integer solution to a maximization determined by the inequality: A less than constraint requires a
problem, we know that the solution is a lower bound for the surplus variable which has a positive sign while a greater than
optimal objective of the integer problem. That is, we know we constraint requires a slack variable which has a negative sign.
are assured of obtaining another optimal value that is at least as Each constraint is represented by row in the A matrix and a
good. This value is then the lower bound of ZL. If several resource value as an index in the b vector. For example, each
feasible integers solutions are known, then ZL will correspond adjustment point can have: no weights , a small screw or a
to the largest know solution, and is known as the incumbent heavy screw. If there are 4 adjustment points, the set of
solution. adjustment constraint and be resource vector would be:
The purpose of computing an incumbent solution is to  111 0 0 0 0 0 0 0 0 0 1
determine how good the optimal solution at the node is without 0 0 0 111 0 0 0 0 0 0 1
actually solving the integer program at the node. This is done
Aadj ≡   b adj ≡  
by solving the LP relaxation. Consider an integer sub problem  0 0 0 0 0 0 11 1 0 0 0  1
Pi associated with some node I. Let Z denote the objective   
function value associated Pi . Now consider the LP relaxation of  0 0 0 0 0 0 0 0 0 11 1  1
a sub problem PI, and denote Zbar as the optimal value of the The function that is being optimized will depend on the
relaxation. If Zbar is great than or equal to Z, then the feasible application. For example, it may be desirable to minimize the
region of the integer problem is a subset of the feasible region total mass of the adjustment that is made, defined as
of the relaxation. MINMASS. Conversely, it may be desirable to minimize the

3 Copyright © 2003 by ASME

total vibration from an adjustment, which we will call the
minimum residual adjustment, defined as MINRES. In either
case, each adjustment will project an amount of weight onto the
X or Y plane of the disk. If the vibration adjustment is
decomposed into it's X,Y components, the adjustment will
satisfy a demand for resources (e.g. weight) in one of the
planes. For example, if 3 grams of weight is required on the X
plane, and 4 grams of weight on the Y plane, then additional
constrains and resources would be (where the mass of the small
screw is 5 and the heavy screw is 8):
0 5 8 0 0 0 0 − 5 − 8 0 0 0   4
A wgt ≡  − − 
b wgt ≡  
0 0 0 0 5 8 0 0 0 0 5 8   3
The case of the MINMASS model, surplus variable would
be required (e.g. the project mass for X must total greater than
3) and the cost would be sum of the total weight. The cost
vector and additional constraints would be:
0 0
0 0 

0 0
A surplus ≡  c MINMASS ≡ [0 5 8 0 5 8 0 5 8 0 5 8 0 0]
0 0
1 0
0 1 
 Figure 1 Example of Minimum Residual Shaft Balance

The full constraint matrix and resource vector is then: The solution provides a total residual mass of .014 grams
and vibration after adjustment of 0.018 IPS. This solution is
 A adj   b adj 
A≡ A surplus b ≡  
constrained to for adjustments,
A wgt  b wgt  Number of
Total Residual
Vibration After
In the case of MINRES, the objective is to minimize the
1 0.069 0.079
residual (e.g. both positive and negative weight adjustment on a
2 0.059 0.061
plane) mass, or mass that is not used to reduce vibration to
3 0.059 0.061
zero. For each weight constraint, there is both a slack and
surplus variable. In addition, a constraint will be required for 4 0.014 0.018
the maximum allowable number of adjustments (since an 5 0.011 0.014
adjustment cost nothing - only residual error has a cost, the Due to measurement noise and numerical issues, at some
algorithm will attempt to force the error to zero. This could point there are diminishing returns on the vibration after the
result - potentially, in every adjustment point having a weight). adjustment. For the S-92, this leads to the general rule of using
The cost vector will then be zeros for all adjustment, and 1 for no more than 4 adjustments.
each slack/surplus variable.
Example Minimum Residual Models Implementation of the shaft balance algorithm on a FAA
This is an example of the S-92 aircraft shaft balance with certified embedded system results in a number of design issues.
12 adjustment points: [0 48 60 108 120 168 180 228 240 288 Memory usage, computation resources and certification all
300 348] degrees and two adjustment types (light and heavy become significant development hurdles.
screws of .378 grams and .561 grams. The vibration coefficient
is 1.452 inches per second per gram. For a vibration of .6862 Embedded Processing and Time Sharing
inches per second (IPS) and with a phase of 71.3 degrees, the The algorithm has been implemented on a Motorola Power
two models have the following results: PC™ processor using a Goodrich patented software
architecture. This software architecture is based on a layered
hierarchy which takes advantage of ADA tasking to allow
multiple processes to execute concurrently (Patent No: US
6,256,679 B1). This is a requirement as the IMD HUMS
application process the shaft balance algorithm concurrently
with other monitoring functions. The architecture also enables
common information and configuration data to be protected and
shared among the multiple processes .

4 Copyright © 2003 by ASME

The algorithm software is undergoing DO-178 Level B
Software certification for Airborne System. This certification
requires the software tested for requirements, code coverage,
branch coverage, and robustness. This certification is required
for critical software to execute on commercial aircraft systems.


The IMD HUMS shaft balance algorithm provides an

optimal, discrete adjustment. This system is unique in that the
maintainer can select in real time various constraints, taking
into account the current adjustments that might already be on
the shaft. The system allows forward deployed units to conduct
maintenance without additional ground support equipment.
The configuration divide nature to the solution allows the
application to work on multiple aircraft platforms. With the use
of configuration data being independent of the algorithm,
custom user interfaces can easily be designed.


Ignizio, James, and Cavalier, Tom., 1994, Linear

Programming, Englewood Cliffs: Prentice Hall.

Strang, Gilbert, 1988, Linear Algebra and its Application, San

Diego: Harcourt Brace Jovanovich, Inc

W.C. Foiles, P.E. Allaire and E.J. Gunter, Review: Rotor

Balancing, Shock and Vibration 5, 1998 325-336

Blackboard-Centric Layered Software Architecture for an

Embedded Airborne Fuel Gauging Systems (Patent No: US
6,256,679 B1)

5 Copyright © 2003 by ASME