22.06.2015 Views

Developement Of A Batch Mode For Conduit And Its ... - Cal Poly

Developement Of A Batch Mode For Conduit And Its ... - Cal Poly

Developement Of A Batch Mode For Conduit And Its ... - Cal Poly

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

THE DEVELOPMENT OF A BATCH MODE FOR CONDUIT<br />

AND ITS APPLICATION TO A ROTORCRAFT FLIGHT CONTROL SYSTEM<br />

A Thesis<br />

presented to the faculty of the<br />

<strong>Cal</strong>ifornia <strong>Poly</strong>technic State University, San Luis Obispo<br />

In Partial Fulfillment<br />

of the Requirements for the Degree of<br />

Master of Science in Aeronautical Engineering<br />

by<br />

Ryan Patrick Dibley<br />

June 2000


© 2000<br />

Ryan Dibley<br />

All Rights Reserved<br />

ii


APPROVAL PAGE<br />

TITLE:<br />

The Development of a <strong>Batch</strong> <strong>Mode</strong> for CONDUIT<br />

and its Application to a Rotorcraft Flight Control System<br />

AUTHOR:<br />

Ryan P. Dibley<br />

DATE SUBMITTED: May 25, 2000<br />

Advisor or Committee Chair<br />

Signature<br />

Committee Member<br />

Signature<br />

Committee Member<br />

Signature<br />

Committee Member<br />

Signature<br />

Committee Member<br />

Signature<br />

iii


ABSTRACT<br />

The Development of a <strong>Batch</strong> <strong>Mode</strong> for CONDUIT<br />

and its Application to a Rotorcraft Flight Control System<br />

Ryan P. Dibley<br />

A <strong>Batch</strong> <strong>Mode</strong> capability was developed for CONDUIT, providing for the<br />

capability to quickly create, optimize, and analyze multiple CONDUIT problems. The<br />

Sensitivity Tools of CONDUIT were automated and incorporated into <strong>Batch</strong> <strong>Mode</strong>, such<br />

that multiple number of CONDUIT problems could be fully optimized without user<br />

intervention. In order to demonstrate the capabilities of <strong>Batch</strong> <strong>Mode</strong>, the lateral channel<br />

of the partial authority SH-2G control system was analyzed in <strong>Batch</strong> <strong>Mode</strong>. A group of<br />

cases, ranging in velocity from hover to 100kts, were optimized to produce a gain<br />

schedule of the four active gains. A second group of cases were created, based on the<br />

hover flight condition, in which the stability derivatives, identified using CIFER, were<br />

varied to their known accuracies. The results of this second group were then plotted<br />

simultaneously on the HQ Window, to demonstrate the ability for <strong>Batch</strong> <strong>Mode</strong> to check<br />

for system robustness.<br />

iv


ACKNOWLEDGEMENTS<br />

I would like to thank Dr. Mark Tischler for his guidance and assistance<br />

throughout the course of my thesis. I would also like to thank my co-workers, Chad<br />

Frost, Kenny Cheung, Doug Hiranaka, and Jason Colbourne, for without their<br />

suggestions, help, and knowledge of CONDUIT, this project would not have been<br />

possible. Finally, I would like to thank Dr. Daniel J. Biezad for both providing me with<br />

the basis of my knowledge of control engineering, and for giving me the opportunity and<br />

drive to continue my education.<br />

v


TABLE OF CONTENTS<br />

TABLE OF CONTENTS ............................................................................................................................VI<br />

LIST OF TABLES ....................................................................................................................................VIII<br />

LIST OF FIGURES .....................................................................................................................................IX<br />

NOMENCLATURE.....................................................................................................................................XI<br />

1 OVERVIEW OF CONDUIT............................................................................................................... 1<br />

1.1 THE STRUCTURE OF CONDUIT......................................................................................................... 5<br />

1.1.1 Fundamental Structure ............................................................................................................ 5<br />

1.1.2 Block Diagram (Setup <strong>Mode</strong>) .................................................................................................. 6<br />

1.1.3 Design Parameters (Setup <strong>Mode</strong>)............................................................................................ 7<br />

1.1.4 Specs (Setup <strong>Mode</strong>).................................................................................................................. 8<br />

1.1.5 HQ Window (Setup <strong>Mode</strong>)..................................................................................................... 13<br />

1.1.6 Init File (Setup <strong>Mode</strong>)............................................................................................................ 14<br />

1.1.7 HQ Window (Run <strong>Mode</strong>) ....................................................................................................... 15<br />

1.1.8 Pcomb (Run <strong>Mode</strong>) ................................................................................................................ 16<br />

1.1.9 Design Parameters Window (Run <strong>Mode</strong>) .............................................................................. 17<br />

1.2 METHOD OF OPTIMIZATION.............................................................................................................. 18<br />

1.3 SENSITIVITY TOOLS.......................................................................................................................... 23<br />

1.3.1 Insensitive Parameters........................................................................................................... 24<br />

1.3.2 Correlated Parameters .......................................................................................................... 27<br />

2 DEVELOPMENT OF BATCH MODE ........................................................................................... 29<br />

2.1 INTRODUCTION................................................................................................................................. 29<br />

2.2 SETUP MODE.................................................................................................................................... 29<br />

2.2.1 Creating the <strong>Batch</strong> Problem .................................................................................................. 30<br />

2.2.2 Modifying the Cases............................................................................................................... 30<br />

2.2.3 Saving the Cases .................................................................................................................... 31<br />

2.2.4 <strong>Batch</strong> <strong>Mode</strong> GUI Fundamentals ............................................................................................ 33<br />

2.2.5 Setup <strong>Mode</strong> GUI .................................................................................................................... 40<br />

2.2.6 Constructing A <strong>Batch</strong> Problem .............................................................................................. 46<br />

2.3 RUN MODE....................................................................................................................................... 47<br />

2.3.1 Run Methods .......................................................................................................................... 47<br />

2.3.2 Running A Case...................................................................................................................... 48<br />

2.3.3 Run <strong>Mode</strong> GUI....................................................................................................................... 50<br />

2.3.4 Running A <strong>Batch</strong> Problem ..................................................................................................... 55<br />

2.4 ANALYSIS MODE.............................................................................................................................. 57<br />

2.4.1 Fundamentals of Analysis <strong>Mode</strong>............................................................................................ 57<br />

2.4.2 Analysis <strong>Mode</strong> GUI................................................................................................................ 61<br />

2.5 SENSITIVITY AUTOMATION .............................................................................................................. 71<br />

2.5.1 Typical Use of Sensitivity Tools............................................................................................. 71<br />

2.5.2 Sensitivity Automation Development ..................................................................................... 77<br />

2.5.3 Sensitivity Log........................................................................................................................ 86<br />

3 EVALUATION OF THE SH-2G USING BATCH MODE............................................................ 89<br />

3.1 DESCRIPTION OF THE SH-2G............................................................................................................ 90<br />

3.1.1 SH-2G Control System........................................................................................................... 91<br />

3.1.2 Required Modifications to the Block Diagram ...................................................................... 96<br />

vi


3.2 BASELINE OPTIMIZATION................................................................................................................. 97<br />

3.3 GAIN SCHEDULING OF THE SH-2G................................................................................................. 103<br />

3.3.1 Setup of Problem.................................................................................................................. 103<br />

3.3.2 Running of the Gain Schedule <strong>Batch</strong> Problem .................................................................... 106<br />

3.3.3 Gain Schedule Results.......................................................................................................... 107<br />

3.4 ROBUSTNESS EVALUATION OF THE SH-2G.................................................................................... 113<br />

3.4.1 Parameters to Vary.............................................................................................................. 113<br />

3.4.2 Modification of the Original <strong>Mode</strong>l..................................................................................... 115<br />

3.4.3 Creation of the Robustness Cases........................................................................................ 116<br />

3.4.4 Running the Robustness Check Cases.................................................................................. 117<br />

3.4.5 Results of the Robustness Check.......................................................................................... 118<br />

3.4.6 Conclusions of the Robustness Plot Capability ................................................................... 122<br />

4 FUTURE WORK ............................................................................................................................. 123<br />

4.1 SETUP MODE.................................................................................................................................. 123<br />

4.2 RUN MODE..................................................................................................................................... 123<br />

4.3 ANALYSIS MODE............................................................................................................................ 123<br />

4.4 SENSITIVITY AUTOMATION ............................................................................................................ 124<br />

5 LESSONS LEARNED ..................................................................................................................... 125<br />

6 CONCLUSIONS............................................................................................................................... 127<br />

BIBLIOGRAPHY...................................................................................................................................... 128<br />

APPENDIX................................................................................................................................................. 130<br />

vii


LIST OF TABLES<br />

TABLE 1 – SENSITIVITY AUTOMATION RUN LOGIC........................................................................................ 77<br />

TABLE 2 - SPEC SELECTION LOGIC.................................................................................................................. 78<br />

TABLE 3 - VARIATIONS OF DERIVATIVES...................................................................................................... 114<br />

viii


LIST OF FIGURES<br />

FIGURE 1 - COOPER-HARPER RATING SCALE.................................................................................................... 1<br />

FIGURE 2 - CONDUIT SPECS........................................................................................................................... 4<br />

FIGURE 3 – CODING STRUCTURE OF CONDUIT............................................................................................... 5<br />

FIGURE 4 - THE MATLAB SIMULINK ENVIRONMENT...................................................................................... 7<br />

FIGURE 5 - DESIGN PARAMETERS..................................................................................................................... 8<br />

FIGURE 6 - A CONDUIT SPEC ........................................................................................................................ 9<br />

FIGURE 7 - CONFIGURING A SPEC ................................................................................................................... 12<br />

FIGURE 8 - HQ WINDOW................................................................................................................................ 13<br />

FIGURE 9 - SUPPORT PLOT .............................................................................................................................. 15<br />

FIGURE 10 – PCOMB WINDOW ........................................................................................................................ 16<br />

FIGURE 11 - DESIGN PARAMETERS WINDOW.................................................................................................. 17<br />

FIGURE 12 - 2D GRADIENT VISUALIZATION (HYPOTHETICAL) ....................................................................... 18<br />

FIGURE 13 - CONCEPTUAL STEP SIZE CALCULATION ...................................................................................... 19<br />

FIGURE 14 - INSENSITIVE PARAMETER ........................................................................................................... 24<br />

FIGURE 15 - BLOCK DIAGRAM REPRESENTATION OF AN INSENSITIVE PARAMETER ........................................ 25<br />

FIGURE 16 - INSENSITIVE PARAMETERS.......................................................................................................... 26<br />

FIGURE 17 - BLOCK DIAGRAM REPRESENTATION OF CORRELATED PARAMETERS .......................................... 27<br />

FIGURE 18 - BATCH PROBLEM FILE AND DIRECTORY STRUCTURE.................................................................. 33<br />

FIGURE 19 - SETUP MODE GUI ...................................................................................................................... 34<br />

FIGURE 20 - MAIN WINDOW........................................................................................................................... 35<br />

FIGURE 21 - FILE MENU ................................................................................................................................. 37<br />

FIGURE 22 - INSERT FAMILY AND CASE INTERFACES..................................................................................... 38<br />

FIGURE 23 - BUTTON TOOLBAR...................................................................................................................... 39<br />

FIGURE 24 - GENERAL SETUP WINDOW........................................................................................................... 42<br />

FIGURE 25 – GAIN SCHEDULE PARAMETER SETUP WINDOW .......................................................................... 44<br />

FIGURE 26 - ADD/EDIT/REMOVE/ PARAMETER GUI...................................................................................... 45<br />

FIGURE 27 - RUN MODE GUI ......................................................................................................................... 50<br />

FIGURE 28 – ORDERING THE CASES................................................................................................................ 53<br />

FIGURE 29 - RUN STATUS WINDOW................................................................................................................ 54<br />

FIGURE 30 - RUN STATUS FILE ....................................................................................................................... 55<br />

FIGURE 31 - THE RUN MODE GUI OF A CURRENTLY RUNNING PROBLEM...................................................... 56<br />

FIGURE 32 – PBRUSH...................................................................................................................................... 58<br />

FIGURE 33 - ORGANIZATION OF GAIN SCHEDULE FIGURES............................................................................. 60<br />

FIGURE 34 - ANALYSIS MODE GUI - HQ WINDOW ....................................................................................... 61<br />

FIGURE 35 - MULTIPLE CASE PLOT ................................................................................................................. 64<br />

FIGURE 36 - INITIAL GAIN SCHEDULE WINDOW ............................................................................................ 65<br />

FIGURE 37 - ADD/EDIT/REMOVE PLOT GUI................................................................................................... 66<br />

FIGURE 38 - NEW GAIN SCHEDULE PLOT ....................................................................................................... 68<br />

FIGURE 39 - MULTIPLE PAGE CONCEPT .......................................................................................................... 70<br />

FIGURE 40 - INSENSITIVITY PLOT................................................................................................................... 72<br />

FIGURE 41 - SAMPLE CRAMER RAO PLOT....................................................................................................... 73<br />

FIGURE 42 - CONCEPTUAL REPRESENTATION OF CORRELATED PARAMETERS ................................................ 75<br />

FIGURE 43 - THE DIFFICULTY OF GROUPING PARAMETERS ............................................................................. 80<br />

FIGURE 44 - EXAMPLE CRAMER RAO PLOT – INITIAL PARAMETERS .............................................................. 83<br />

FIGURE 45 - EXAMPLE CRAMER RAO PLOT - ONE PARAMETER FROZEN ........................................................ 84<br />

FIGURE 46 - EXAMPLE CRAMER RAO PLOT - TWO CORRELATED PARAMETERS ............................................. 85<br />

FIGURE 47 - SENSITIVITY LOG........................................................................................................................ 87<br />

FIGURE 48 - SH-2G ........................................................................................................................................ 90<br />

FIGURE 49 - SH-2G ROTORBLADE SERVOFLAP .............................................................................................. 91<br />

FIGURE 50 - MECHANICAL MIXER REPRESENTATION...................................................................................... 92<br />

FIGURE 51 - SH-2G BLOCK DIAGRAM ............................................................................................................ 93<br />

FIGURE 52 - CONTROL SYSTEM BLOCK .......................................................................................................... 94<br />

ix


FIGURE 53 - SIMPLIFIED ASE BLOCK ............................................................................................................. 95<br />

FIGURE 54 - ROLL - ATTITUDE HOLD BLOCK ................................................................................................. 96<br />

FIGURE 55 - REMOVED SIMULINK BLOCKS..................................................................................................... 97<br />

FIGURE 56 - INITIAL SPEC SELECTION............................................................................................................. 98<br />

FIGURE 57 - EVALUATION OF INITIAL GAINS .................................................................................................. 99<br />

FIGURE 58 – INITIAL OPTIMIZED BASELINE.................................................................................................. 100<br />

FIGURE 59 – OPTIMIZED BASELINE WITH FINAL SPEC SELECTION................................................................. 101<br />

FIGURE 60 – OPTIMIZED BASELINE WITH FINAL SPEC SELECTION AND CONFIGURATION.............................. 103<br />

FIGURE 61 - INITIAL BATCH MODE GUI ...................................................................................................... 104<br />

FIGURE 62 - FINAL SETUP GUI OF THE GAIN SCHEDULING CASES............................................................... 106<br />

FIGURE 63 – INITIAL RUN MODE OPTIMIZATION.......................................................................................... 107<br />

FIGURE 64 – HQ WINDOW OVERLAID RESULTS ........................................................................................... 108<br />

FIGURE 65 - GAIN SCHEDULE PLOTS AGAINST VELOCITY............................................................................. 109<br />

FIGURE 66 – A PROBLEM WITH THE DAMPING SPEC ..................................................................................... 111<br />

FIGURE 67 - CORRECTED GAIN SCHEDULE.................................................................................................... 112<br />

FIGURE 68 - ROBUSTNESS CHECK SETUP ...................................................................................................... 117<br />

FIGURE 69 - ROBUSTNESS OF CRITICAL STABILITY MARGINS ....................................................................... 118<br />

FIGURE 70 - ROBUSTNESS PLOT OF ALL STABILITY MARGINS....................................................................... 119<br />

FIGURE 71 - OPEN-LOOP BODE RESPONSE OF RANDOM CASES...................................................................... 120<br />

x


Acronyms<br />

NOMENCLATURE<br />

ASE – Automatic Stabilization Equipment<br />

CIFER – Comprehensive Identification from Frequency Responses<br />

CONDUIT – Control Designer’s Unified Interface<br />

CPU – Central Processing Unit<br />

dp – Change in design parameter<br />

FCS – Flight Control System<br />

kts - Knots<br />

L0 – Collective input<br />

R1C – Lateral input<br />

R1S – Longitudinal input<br />

RP – Rudder pedal input<br />

Symbols<br />

α – Angle of Attack<br />

n – Normal acceleration in G’s<br />

τ f - Rotor flap time constant<br />

xi


1 Overview of CONDUIT<br />

The purpose of a flight control system is not only to augment the stability of an<br />

aircraft, but to improve its handling as well. During the early years of flight control<br />

system development, design parametrics for dynamic stability such as the Phugoid <strong>Mode</strong>,<br />

Short Period <strong>Mode</strong>, and n/α were used. However, these criteria did not account for<br />

unconventional designs, nor did they necessarily improve the pilot’s opinion of the way<br />

the aircraft handled. Thus, research was performed as a means to quantify good handling<br />

qualities of aircraft. A rating scale was developed to rate the handling of an aircraft, the<br />

Hooper-Carper Rating scale, shown in Figure 1.<br />

Figure 1 - Cooper-Harper rating scale<br />

1


This rating system was used in conjunction with flight test data using a variable<br />

stability aircraft to create a group of handling qualities specifications, in which<br />

measurable parameters of an aircraft’s performance could be used to predict pilot opinion<br />

of the handling of the aircraft.<br />

By incorporating handing qualities specifications into the design of an aircraft, it<br />

will most likely have good handling qualities. However, there are certain consequences<br />

involved when doing so. The process of evaluating a single spec (specification) is time<br />

consuming, much less several specs, resulting in possibly long design cycles.<br />

Furthermore, the presence of multiple competing specs adds another level of complexity<br />

to the problem. Another difficulty is that if the model, control architecture, or any<br />

component of the system changes, the entire process must be repeated. Finally, while a<br />

system might be created that meets all necessary specifications, chances are that it is not<br />

optimal. Trade-off studies may be developed as a means to make best use of the<br />

available control authority, however, this can be time consuming.<br />

In response to these difficulties, a multi-objective optimization program, called<br />

CONSOL-OPTCAD, was developed at the University of Maryland. This program<br />

interfaced with the MATLAB environment, using MATLAB’s system modeling<br />

capabilities. A model following control system was developed for the UH-60, using the<br />

CONSOL-OPTCAD multi-objective optimization to optimize the control system based<br />

on several handling qualities specifications. In doing so, the capability of the<br />

optimization routine was demonstrated. However, its use was still limited in that the<br />

UH-60 problem was hard-wired into CONSOL-OPTCAD. Modifying the code to work<br />

with a new problem involved several months of work. A variant of this effort was thus<br />

2


created. <strong>Cal</strong>led GIFCOCODE, it incorporated a simple GUI with custom-made specs.<br />

While the graphical output was an improvement from the original CONSOL-OPTCAD,<br />

the problem was still hard-wired, making it of little use.<br />

The program was reworked again, in order to account for these deficiencies. An<br />

easy to use graphical interface was thus created. In addition, this new version was to be<br />

flexible, allowing the user to quickly change the problem definition. A library of<br />

modular specifications was created, allowing the user to pick specs for the particular<br />

problem. This new version allowed the user to set up and optimize a problem in a matter<br />

of hours, shortening the design cycle. Multiple competing specs could be used, as this is<br />

accounted for in GIFCOCODE. Finally, changes in the system became inconsequential,<br />

since the system could be evaluated in a matter of minutes. This latest evolution of the<br />

original CONSOL-OPTCAD code was called CONDUIT (Control Designer’s Unified<br />

Interface).<br />

CONDUIT is a versatile design tool which allows the control engineer to rapidly<br />

design an optimized control system, based on multiple handling qualities specifications,<br />

in a graphical environment. The control system to be optimized is modeled using<br />

MATLAB Simulink. Parameters of the block diagram are defined such that they may be<br />

varied by CONSOL-OPTCAD in the optimization. Handling qualities specifications, are<br />

represented in CONDUIT as modules, allowing the user to “plug-in” only those needed<br />

for the particular problem. Specs are represented graphically, as shown in Figure 2, often<br />

mirroring their appearances from their source.<br />

3


Figure 2 - CONDUIT specs<br />

As in the original handling qualities specifications, each spec has three levels,<br />

Blue, Magenta, and Red, indicating the Cooper Harper Levels 1, 2, and 3 respectively.<br />

<strong>For</strong> the sake of clarity, the three colors are represented in this document as White, Light<br />

Grey, and Dark Grey for Levels 1, 2, and 3 respectively. As CONDUIT optimizes the<br />

system, it plots the points on the graphs, and uses graphical means to determine their<br />

ratings. CONDUIT also provides an array of analysis tools, for after the optimization is<br />

finished.<br />

4


1.1 The Structure of CONDUIT<br />

1.1.1 Fundamental Structure<br />

Optimization<br />

commands<br />

TCL<br />

〈 Main controlling<br />

component<br />

〈 Graphical User<br />

Interface<br />

Optimization<br />

status<br />

Passing of data and<br />

commands of the<br />

current operation<br />

COMATLAB<br />

〈 Optimization<br />

Optimization results<br />

Simulation and<br />

parameter data<br />

MATLAB<br />

〈 System <strong>Mode</strong>ling<br />

〈 Data Management<br />

〈 Graphical display of<br />

results<br />

Figure 3 – Coding structure of CONDUIT<br />

CONDUIT is made up of three major components. First, the main GUI is written<br />

in the TCL scripting language and serves as the main controlling component. Most all<br />

processes are invoked in one way or another from the TCL code. The second component<br />

is CONSOL-OPTCAD which, in the latest version of CONDUIT, is written as a<br />

MATLAB CMEX function and is thus renamed to COMATLAB. As it is derived from<br />

the original CONSOL-OPTCAD code, it is the core of the optimization. However, it<br />

does not control the optimization, but merely operates under the control of the TCL code.<br />

While the TCL code controls almost every aspect of CONDUIT, it does not handle the<br />

computations and data itself. Rather, CONDUIT uses the MATLAB environment, the<br />

third component of CONDUIT, to manage all data and calculations. In addition to it<br />

5


eing ideal for the computations necessary for control analysis, MATLAB provides the<br />

Simulink environment, allowing the user to easily construct a model of the control<br />

system. Finally, MATLAB provides great flexibility for graphically displaying the<br />

results, using the many pre-existing plotting functions of the MATLAB Control Toolbox.<br />

While these three components make up the basis of CONDUIT, there are several other<br />

smaller components within these three which provide the functionality behind<br />

CONDUIT. These smaller components will be discussed in the following sections, to the<br />

extent of providing a basis for the explanation of <strong>Batch</strong> <strong>Mode</strong>. Furthermore, they will be<br />

explained with respect to the two operating modes of CONDUIT: Setup <strong>Mode</strong>, in which<br />

the CONDUIT problem is created, and Run <strong>Mode</strong>, which is used to optimize the problem<br />

and analyze the results.<br />

1.1.2 Block Diagram (Setup <strong>Mode</strong>)<br />

All simulation is performed in the MATLAB environment. Thus, the model of<br />

the aircraft and the control system itself must be simulated in MATLAB, using its<br />

modeling and simulation capabilities of the MATLAB Simulink environment. Simulink<br />

is a graphical simulation tool that allows the user to build control systems in block<br />

diagram form.<br />

6


Input Block<br />

Output<br />

Block<br />

CONDUIT Switch<br />

Figure 4 - The MATLAB Simulink environment<br />

Simulink includes representations of all the common blocks found in a typical<br />

block diagram. Building the block diagram in Simulink is a matter of assembling the<br />

blocks, interconnecting them, and setting their values. Input and Output signals to and<br />

from the system are incorporated using Simulink Input/Output blocks, which allow<br />

CONDUIT to choose any input and output for a particular simulation. Furthermore,<br />

specialized Simulink switch blocks provide the capability for CONDUIT to select<br />

different control architectures or feedback paths. Thus, by configuring the system in such<br />

a way, CONDUIT has great flexibility over how the simulations can be run.<br />

1.1.3 Design Parameters (Setup <strong>Mode</strong>)<br />

In order for CONDUIT to optimize the system, it must have the ability to alter it.<br />

Thus, CONDUIT allows the user to select parameters of the block diagram for<br />

COMATLAB to modify. These parameters are referred to as Design Parameters, and are<br />

essentially MATLAB variables that can be used in any component of the block diagram.<br />

7


They are typically used as gains, however they could be used for nearly any other<br />

purpose.<br />

Design Parameter<br />

Figure 5 - Design Parameters<br />

Design parameters are defined by simply adding them to the block diagram.<br />

When the CONDUIT analysis, or “problem”, is opened, CONDUIT scans the block<br />

diagram to find the design parameters. They are distinguished by the required “dp_” or<br />

“dpp_” prefixes in their names, which define the variables as design parameters and<br />

positive-valued design parameters, respectively.<br />

1.1.4 Specs (Setup <strong>Mode</strong>)<br />

The handling qualities specifications, or “specs” for short, represent the actual<br />

government handling qualities specifications, such as ADS-33 or MIL-STD-1797. The<br />

CONDUIT specs are modular, so that any combination of specs can be assigned to a<br />

CONDUIT problem by just “plugging them in”, metaphorically speaking. Each spec is<br />

self-contained, that is, they contain all the code required to evaluate the aircraft and plot<br />

the results, as specified by each government handling qualities specification.<br />

8


Level 3<br />

Level 2<br />

Constraint Type<br />

Level 1<br />

Test Point<br />

Reference<br />

Figure 6 - A CONDUIT Spec<br />

A CONDUIT spec is represented in a graphical manner, most often resembling<br />

that of the original government handling qualities specification. The spec of Figure 6<br />

was taken from the ADS-33D document. A spec will have two or more regions,<br />

representing Levels 1, 2, and 3 of the Cooper-Harper rating scale.<br />

CONDUIT specs are not limited to those published in government publications<br />

such as ADS-33 or MIL-STD-1797. A large number of CONDUIT specs have been<br />

created specifically for CONDUIT. These specs are used to properly constrain the<br />

optimization of a problem. <strong>For</strong> example, if a control system is modeled in CONDUIT<br />

and only the ADS-33 specs were used, CONDUIT may very well optimize the system at<br />

the expense of increased bandwidth to satisfy the performance specs. Or worse, it may<br />

sacrifice the stability of the aircraft. Thus, two additional classes of specs were created.<br />

The first class of specs, commonly referred to as “Stability Specs”, are used to ensure<br />

9


stability of the system, checking parameters such as the eigenvalues, the phase margin,<br />

and the gain margin of the system. The other class is used to improve the efficiency of<br />

the system, reducing the bandwidth or the required actuator energy of the system.<br />

COMATLAB uses a multi-objective optimization routine, which allows it to<br />

optimize several competing specs. However, this also means that all specs are treated<br />

equally by COMATLAB. Thus, a spec for a trivial parameter would be competing on the<br />

same level as a spec that ensures stability. To account for this, COMATLAB was written<br />

with the capability to rank the importance of specs. While the specs can be assigned to<br />

any one of five constraints, only three of them are used by COMATLAB. The<br />

constraints are as follows, in order of importance:<br />

• Hard Constraints – The highest priority, the ratings of all other specs are to be<br />

compromised to push the Hard Constraints into Level 1. This constraint is usually<br />

reserved for stability specs, such as the Eigenvalues or Stability Margins specs.<br />

• Soft Constraints – Soft constraints follow the hard constraints in priority. They are<br />

only considered once all hard constraints have been satisfied in Level 1. At that time,<br />

COMATLAB tries to move them into Level 1. In doing so, COMATLAB is not<br />

allowed to compromise the Level 1 ratings of the hard constraints, however, the Level<br />

ratings of all other specs may be sacrificed to ensure Level 1 ratings for the soft<br />

constraints. The soft constraint is usually given to specs that ensure the performance<br />

of an aircraft, such as many found in ADS-33 or MIL-STD-1797.<br />

• Objective Constraints – The lowest priority of the constraints, objective specs are<br />

only considered once all hard and soft constraints have been satisfied in Level 1. As<br />

with the soft constraint, objective specs may not be improved at the expense of the<br />

10


higher priority hard and soft constraint specs. Objective specs are reserved for energy<br />

or bandwidth specs, which are used to optimize a stable, performing control system.<br />

Once all objective specs have been pushed to Level 1, COMATLAB will continue to<br />

try to push these specs into Level 1 as far as possible.<br />

• Summed Objective Constraints – The summed objective is not a new constraint type,<br />

but a subset of the Objective constraint. <strong>Its</strong> purpose is best explained through<br />

example. If two soft constraints were related in such a way that each spec could only<br />

benefit through the degradation of the other, then COMATLAB would exploit the<br />

ratings of the lower priority objective specs to improve the ratings of the soft<br />

constraints. This luxury is not available with the objective specs, since there are no<br />

lower priority specs to exploit. Thus, to account for this situation, the summed<br />

objective constraint was created. The results of all summed objective specs are added<br />

together, creating a new “spec” for COMATLAB. By grouping the specs together<br />

this way, the competing specs are forced to work together to improve the collective of<br />

summed objective specs.<br />

• Check Only Specs – Specs of this class are not passed to COMATLAB for<br />

optimization. However, they are evaluated at each iteration and exist merely so that<br />

the user can view the results of the spec, for reference only.<br />

In addition to the classifications and constraint types of specs, there are five types<br />

of specs, delimited by the method used to calculate the results:<br />

• Time Point – The time response of the system is used to calculate a single point to<br />

plot on the spec. Time specs require an input signal.<br />

11


• Time Line – The time response is plotted directly on the spec and must stay within a<br />

region defined by the spec. Time Line specs also require input signals.<br />

• Frequency Point – The frequency response of the system is used to calculate a single<br />

point, which is plotted on the spec.<br />

• Frequency Time – The same as a Time Line spec, but the frequency response (Bode<br />

plot) is used.<br />

• LOES (Low Order Equivalent System) – These specs use model identification<br />

techniques similar to those used in CIFER, to fit a low order transfer function to the<br />

high order system. The form of the low order transfer function is selected by the user,<br />

depending on the parameters required for the spec calculation. The identified<br />

parameters of this low order system are then used to calculate the results, and a single<br />

point is plotted on the spec.<br />

Inports Outports Switch Flags<br />

Symbols<br />

X,Y plot values<br />

Spec Axes Limits<br />

Spec Options<br />

Input Signal<br />

LOES Profiles<br />

Constraint Type<br />

Figure 7 - Configuring a spec<br />

12


To configure the spec to the current CONDUIT problem, parameters such as the<br />

inputs and outputs from the block diagram, CONDUIT switches, the input signal, the<br />

LOES low order transfer function form, spec options, and other parameters. These can<br />

all be seen in the HQ Editor in Figure 7, which is used to configure specs. It is shown<br />

here only to demonstrate the parameters which can be changed.<br />

1.1.5 HQ Window (Setup <strong>Mode</strong>)<br />

Figure 8 - HQ Window<br />

The specs selected for a CONDUIT problem are displayed in the HQ Window<br />

(Handling Qualities Window), shown above, which serves as the interface to the specs. It<br />

is used in setup mode to add and configure specs, and has further functionality in Run<br />

<strong>Mode</strong>.<br />

13


1.1.6 Init File (Setup <strong>Mode</strong>)<br />

One last functionality is required of CONDUIT to make it truly versatile. The<br />

explanation of the features of CONDUIT so far has accounted for most of the capability<br />

needed to optimize a problem. However, the designers of CONDUIT had the foresight to<br />

realize that it might be helpful to run a user defined MATLAB script at the start of the<br />

problem, as a “catch all”, to account for any additional settings. This script is called the<br />

Init File (Initialization File) and is used to set any miscellaneous parameters that are not<br />

set elsewhere.<br />

Three parameters of CONDUIT are set in the Init file, the time step used in linear<br />

simulations, input signals to be used in simulations, and CONDUIT switches to be used<br />

in the block diagram. All three parameters are defined as global variables, which are read<br />

by CONDUIT, and all use a specific form for their names.<br />

Any other required parameters can be set by direct assignment, or by calling user<br />

defined MATLAB scripts and functions. <strong>For</strong> example, the state space matrices of the<br />

aircraft are typically loaded into global variables to be used in the block diagram. By<br />

using variables for the four matrices, it saves the user the trouble of copying these<br />

potentially large matrices into one-line fields within the state space block in Simulink. It<br />

also allows the state space model to be easily modified by the user. In the case of the<br />

SH-2G gain scheduling to be discussed later in this paper, eleven different flight<br />

conditions were investigated, but only three identified state space models were available.<br />

At the start of each problem (referred to as a “case” in <strong>Batch</strong> <strong>Mode</strong>), the state space<br />

matrices of the three known flight conditions were loaded, and an interpolation method<br />

was used to calculate the matrices to be used for the remaining 8 cases. The resulting<br />

14


matrices were then assigned to variables used in the state space block of the Simulink<br />

block diagram. This was all accomplished using functions in the Init file.<br />

1.1.7 HQ Window (Run <strong>Mode</strong>)<br />

In Run <strong>Mode</strong>, the HQ Window is used to view the results of an evaluation or<br />

optimization. The results are plotted as either points or lines, depending on the type of<br />

spec, shown in Figure 8. By right clicking on a spec, a support plot will be created as in<br />

Figure 9, which displays detailed information about the simulation results.<br />

Figure 9 - Support plot<br />

15


1.1.8 Pcomb (Run <strong>Mode</strong>)<br />

Figure 10 – Pcomb window<br />

The Pcomb, or performace comb, displays the level ratings of each of the specs. It<br />

is referred to as a “comb” because of the appearance of the multiple bar graphs of the<br />

window. Each row of the Pcomb represents a single simulation that is plotted on the HQ<br />

Window. The background of the bar plot, on the right half of the window, is split into<br />

three sections. The left section represents Level 1, the middle Level 2, and the right,<br />

Level 3. The bar is drawn starting on the left edge. The distance which a bar extends<br />

into a region represents the relative distance into that level. Additionally, the color of the<br />

bar reflects the level rating as well, following the same Level color scheme of the specs.<br />

In the case of Figure 10, all constraints are blue, indicating Level 1 performance, except<br />

for one. <strong>Of</strong> the Level 1 constraints, the OvsPiF3 spec is just within the Level 1 region,<br />

the BnwRoF2 spec has a slightly larger margin, while the remaining specs are all well<br />

within Level 1. The single red bar of HldNmH1 indicates that this constraint is in<br />

Level 3, and the length extending off the right of the plot indicates that it is far into that<br />

16


level. The numbers over the bar plots represent the distances into each level region as<br />

well, but are not important in this discussion.<br />

1.1.9 Design Parameters Window (Run <strong>Mode</strong>)<br />

The design parameters are the means by which COMATLAB optimizes the<br />

problem. They are displayed by CONDUIT by the Design Parameters Window, shown<br />

in Figure 11.<br />

Figure 11 - Design Parameters window<br />

In this window, the design parameters are arranged vertically. On the left is the<br />

name of each design parameter. The center column shows the actual value, while the<br />

column on the right shows the frozen state of the parameter. “Freezing” a parameter has<br />

the effect of removing it from the set of design parameters that COMATLAB can vary in<br />

an optimization. The value remains constant at the current value. In addition to<br />

displaying the value and frozen state of the design parameters, the design parameters<br />

window allows the user to change the values as well.<br />

17


1.2 Method of Optimization<br />

A CONDUIT optimization is an iterative process. The optimization starts with an<br />

evaluation of the system with the initial design parameters. This evaluation becomes<br />

iteration zero and serves as a starting point. COMATLAB is then called. It investigates<br />

the system at the starting point to determine how to vary the design parameters to better<br />

the system. The design parameters are then changed to these new values, only slightly<br />

different from the previous values, creating a new iteration. COMATLAB is called<br />

again, and the process repeats. Thus, the optimization starts with a given set of design<br />

parameters, and slowly iterates towards the final values.<br />

To understand certain concepts of CONDUIT and <strong>Batch</strong> <strong>Mode</strong>, the means by<br />

which COMATLAB evaluates the system and determines the best change in design<br />

parameters must be explained. A simple example might help explain this process:<br />

Cost<br />

Vectors of Maximum Gradient<br />

dpp_X<br />

dpp_Y<br />

Figure 12 - 2D Gradient visualization (hypothetical)<br />

18


The plot in the figure above represents a hypothetical gradient of a two-constraint<br />

system. The X and Y axes each represent a design parameter, while the Z axis represents<br />

the cost of the system. The contour of this surface is constant for a given problem and is<br />

defined by the constraints of the problem (the specs). Thus, for any given set of design<br />

parameters (any X,Y coordinate), the gradient (slope of the cost function) can be<br />

calculated, indicated by the black arrows in the figure. The optimization would start out<br />

at a position on the surface, located by the design parameter values. It is then a matter of<br />

finding the direction of the largest negative slope (shown as arrows on the plot), since<br />

moving in this direction would reduce the cost of the system. Once the direction is<br />

found, it must be determined how far to “step” in that direction. If the design point were<br />

on the edge of a local minimum “pit”, moving too far towards the center of the pit might<br />

step past the minimum and up the other side, as illustrated in Figure 13.<br />

Cost<br />

dx 2<br />

dx 1<br />

C 1<br />

C 3<br />

C MIN<br />

dpp_X<br />

dpp_Y<br />

Figure 13 - Conceptual step size calculation<br />

The distance dx 1 represents the ideal distance, while the step size dx 2 shows the<br />

results of a step size that is too large.<br />

19


Thus, different step sizes would be checked to determine the optimal length.<br />

After the direction and the step size have been determined, the optimization routine sets<br />

the design parameters to their new values. The process is then repeated for each iteration<br />

until no further improvement can be made. A few things should be noted at this point.<br />

First, there is always an absolute minimum to the system, however there may also be<br />

several local minimums. Which minimum COMATLAB moves towards depends on the<br />

starting point, as well as the contour of the surface. Thus, the selection of the specs used<br />

(to shape the surface), as well as the selection of the starting design parameters (to define<br />

the starting point) is critical.<br />

This simplified example is essentially what COMATLAB does during an<br />

optimization. However, the actual process is much more complicated. The design space<br />

is actually n-dimensional, and the actual methods for calculating the search direction and<br />

step size are also more complicated. A full explanation of the theory behind these<br />

processes is beyond the scope of this paper, however, a simple description of procedure is<br />

as follows:<br />

When COMATLAB is called, it performs a series of simulations to determine the<br />

gradient of the system. The gradient is analogous to the slope of the cost function at that<br />

given point, in n dimensions. Using the gradient, it then finds the direction in design<br />

space with the largest negative change in cost. This direction is referred to as the “search<br />

direction”. COMATLAB will then try to determine how far to move along this direction,<br />

referred to as the “step size”. Determining the search direction and step size can take<br />

many simulations, and it is not guaranteed that the first search direction found will be<br />

used, since a lower gradient direction might prove better with a different step size. Once<br />

20


the search direction and step size have been determined, the design parameters are<br />

changed accordingly and COMATLAB exits.<br />

As mentioned earlier, CONDUIT has a priority hierarchy for specs. In order to<br />

accommodate for these priorities in the optimization, COMATLAB changes the active<br />

constraints of the problem based on the current conditions of the specs. There are three<br />

possible conditions, referred to as Phases, that correspond to the three spec constraint<br />

types. They are listed below in the order that they would normally be encountered during<br />

an optimization.<br />

• Phase 1 – Characterized as having one hard constraint not satisfied in Level 1, this<br />

phase concentrates only on the hard constraints, attempting to push them into<br />

Level 1. In doing so, COMATLAB will sacrifice the ratings of soft and objective<br />

specs, if necessary.<br />

• Phase 2 – In this phase, all hard constraints have been satisfied in Level 1,<br />

however one or more soft constraints have not. Thus, this phase will concentrate<br />

on the soft constraints, pushing them into Level 1 at the expense of the objective<br />

specs but without violating the Level 1 ratings of the hard constraints.<br />

• Phase 3 – The final phase of a successful optimization, the optimization enters<br />

this phase when all hard and soft constraints have been moved into Level 1.<br />

Objective specs may or may not be Level 1. The optimization continues in this<br />

phase, pushing the objective specs as far as possible into Level 1. As with the<br />

previous phases, COMATLAB will not allow the hard or soft constraints to be<br />

pushed out of Level 1 to improve objective specs. As a result, COMATLAB will<br />

degrade the hard and soft constraints right up to the Level 1/2 border, in an<br />

21


attempt to push the objective specs as far into Level 1 as possible. The<br />

optimization continues until COMATLAB can no longer move the objective<br />

specs.<br />

During an optimization, COMATLAB will eventually not be able to determine a<br />

search direction and step size that will improve the system. This could occur in any<br />

phase, and any iteration number. COMATLAB will then exit, indicating the reason for<br />

stopping:<br />

• “A proper search direction cannot be found.” - In this case, the optimization routine<br />

can’t determine how to modify the design parameters to improve the system. This is<br />

usually caused by COMATLAB having too many degrees of freedom in which to<br />

move, and thus the problem of finding a search direction becomes indeterminate. By<br />

reducing the number of active design parameters, this could be remedied. However,<br />

this end message can also be a result of invalid design parameters, those that would<br />

result with invalid results from the specs. Thus, to remedy this problem, the initial<br />

design parameters should be refined, and a sensitivity analysis should be run to freeze<br />

design parameters.<br />

• “A local minimum has been obtained.” – This message indicates that the system has<br />

been optimized, but that it is not necessarily the best solution. As stated earlier, there<br />

may be several local minimums, while there is only one absolute minimum. In the<br />

case of this exit message, COMATLAB has determined that the current point is one<br />

of several local minimums, and that it could not find an absolute minimum.<br />

• “A feasible point is not found to satisfy all hard constraints.” – This indicates that<br />

given the initial starting point, the optimization routine could not determine any<br />

22


change in the design parameters that would push all of the Hard constraints into<br />

Level 1. This could be a result of the starting point being too far from a valid<br />

solution, but the reason might also lie in the problem setup.<br />

• “Further decrease of the most active specifications cannot be achieved.” – This<br />

message simply indicates that COMATLAB can’t determine a search direction that<br />

will improve the system.<br />

• “The design parameters haven’t varied in the last 3 iterations.” – Just as the message<br />

says, if CONDUIT can’t move the design parameters from their current value in three<br />

iterations, and this point is not a local or absolute minimum, then CONDUIT stops<br />

with this message.<br />

• “Congratulations… “ – This message indicates that the system is fully optimized,<br />

with all specs in Level 1. This is different from the local minimum message above in<br />

that the optimization routine has determined this point to be the absolute minimum, or<br />

best design point for the system.<br />

1.3 Sensitivity Tools<br />

As a CONDUIT optimization progresses, COMATLAB can get stuck and quit<br />

with one of the messages listed in the previous section. If the message indicates that the<br />

optimization stopped prematurely, it could mean a problem with the setup of the<br />

CONDUIT problem itself, or a problem with the active design parameters. If too many<br />

unnecessary design parameters are active, COMATLAB may have trouble determining<br />

the search direction, as there are too many degrees of freedom. Thus, the system is<br />

indeterminate. To help the user refine the list of design parameters, CONDUIT provides<br />

23


the Sensitivity Tools, which are used to determine insensitive and correlated parameters<br />

to freeze.<br />

1.3.1 Insensitive Parameters<br />

There are two types of design parameters that adversely affect the success of an<br />

optimization. The first type being insensitive parameters, in which the parameter has<br />

little or no effect on the results of the system. Going back to the simple two-dimensional<br />

system, an insensitive parameter could be represented by the figure below.<br />

cost=0<br />

Cost<br />

cost=max<br />

dpp_insensitive<br />

dpp_sensitive<br />

Figure 14 - Insensitive parameter<br />

<strong>Of</strong> the two design parameters represented in the figure, moving along the axis of<br />

the insensitive parameter does not change the cost value of the system. Moving in the<br />

direction of the sensitive parameter axis does make a difference. In this simple example,<br />

the search direction is quickly apparent to the casual observer. COMATLAB would have<br />

24


no problem with this simple case either, but when this example is extended to many more<br />

dimensions, a simple problem can become complex very quickly. Thus, it is necessary to<br />

remove insensitive parameters, such as the one in represented in Figure 14, in order to<br />

refine the problem and allow COMATLAB to determine a solution. The details of doing<br />

such are to be discussed shortly.<br />

An alternative explanation of an insensitive parameter could be demonstrated in<br />

block diagram form. Figure 15 shows the block diagram representation of an insensitive<br />

parameter. The insensitive parameter is isolated and thus, has no way to alter the system.<br />

While this exact representation would never be seen in an actual block diagram, the<br />

equivalent may occur under some circumstances. <strong>For</strong> instance, if all of the critical specs<br />

for the current phase are longitudinal specs, design parameters of the other axes may not<br />

affect the system at all, provided there is little coupling in the system. Other conditions<br />

could contribute to the insensitivity of a parameter as well.<br />

Insensitive Parameter<br />

Figure 15 - Block diagram representation of an insensitive parameter<br />

25


The Sensitivity Tools looks at the effects of design parameters on the constraints.<br />

The design parameters and specs to use for the analysis are chosen, and are typically<br />

chosen to reflect the current active design parameters and specs. The sensitivity tools<br />

operates by calculating the gradient matrix for the chosen specs and design parameters,<br />

from which the effects of individual design parameters can be determined. The output is<br />

scaled to percentage values, plotted as in Figure 16.<br />

Figure 16 - Insensitive parameters<br />

The rule of thumb with insensitive parameters is that any parameter over 20%<br />

should be frozen. In the case of the figure above, the dpp_RF and dpp_RAHSF<br />

parameters would be frozen. By removing the unnecessary degrees of freedom,<br />

26


COMATLAB will stand a better chance at determining a search direction and continuing<br />

the optimization.<br />

1.3.2 Correlated Parameters<br />

The second class of parameters that will hold up an optimization are correlated<br />

parameters. Put simply, correlated parameters are redundant parameters for the current<br />

design point. The figure below describes this problem in block diagram form.<br />

(a)<br />

(b)<br />

Figure 17 - Block diagram representation of correlated parameters<br />

Just as with the block diagram representation of insensitive parameters, this<br />

representation would not appear in a typical block diagram exactly as above, but it might<br />

exist in a similar form. Looking at the block diagram of Figure 17a, it is clear that the<br />

two gains perform the same function. Thus, one of the two parameters is unnecessary<br />

and can be frozen.<br />

To check for correlated parameters, the sensitivity tools performs the same<br />

calculation of the gradient matrix as with the insensitivity analysis, but uses the values to<br />

calculate the Cramer Rao percentage of each design parameter. The Cramer Rao<br />

percentages can be thought of as the level correlation of a parameter to another.<br />

Insensitive parameters must be frozen prior to this analysis, otherwise they would appear<br />

27


to have very high Cramer Rao percentages. Since a correlated design parameter by<br />

definition is correlated with another parameter, all design correlated design parameters<br />

will be matched with at least one other design parameter of a similar magnitude. As<br />

shown in Figure 17b, it is possible for a design parameter to be correlated to more than<br />

one design parameter. To resolve the correlation, all but one of the design parameters in<br />

a group must be frozen. As with the insensitive parameters, freezing these parameters<br />

will reduce the degrees of freedom, improving the chances of COMATLAB to continue<br />

the optimization.<br />

Sensitivity Tools provides the user with a means to analyze the control system for<br />

insensitive and correlated parameters. In identifying and freezing these parameters, the<br />

complexity of the problem is reduced. Thus, Sensitivity Tools provides the user with the<br />

means to revive a CONDUIT optimization that has stopped due to insensitive or<br />

correlated parameters.<br />

28


2 Development of <strong>Batch</strong> <strong>Mode</strong><br />

2.1 Introduction<br />

While CONDUIT is a very powerful design tool, it is limited in that it can only<br />

analyze an aircraft at a single design point. Running or analyzing more than one problem<br />

requires a significant amount of user intervention. <strong>Batch</strong> <strong>Mode</strong> was created with the<br />

intent of providing the capability to run multiple CONDUIT problems automatically. In<br />

order to accomplish this goal, three requirements had to be addressed. First, <strong>Batch</strong> <strong>Mode</strong><br />

had to have the ability to create several CONDUIT problems. In doing so, it also had to<br />

have the capability to modify every parameter of a problem which might be varied by a<br />

user in CONDUIT, when creating multiple cases to gain schedule, etc…. The second<br />

requirement of <strong>Batch</strong> <strong>Mode</strong> was that it had to be able to automatically run the multiple<br />

cases in such a way as to minimize user intervention. Finally, <strong>Batch</strong> <strong>Mode</strong> had to<br />

incorporate the means to quickly and effectively view the results of a large number of<br />

CONDUIT problems.<br />

These three requirements, dealing with the creation, execution, and analysis of<br />

multiple CONDUIT problems, were developed into separate modes, henceforth to be<br />

referred to as Setup <strong>Mode</strong>, Run <strong>Mode</strong>, and Analysis <strong>Mode</strong> respectively.<br />

2.2 Setup <strong>Mode</strong><br />

As mentioned in the <strong>Batch</strong> <strong>Mode</strong> introduction, the purpose of Setup <strong>Mode</strong> is to<br />

create multiple CONDUIT problems. To do so, it had to be decided how the multiple<br />

problems were to be organized, and how they were to be saved on disk. Furthermore, the<br />

parameters available to be varied between cases had to also be defined. Finally, the<br />

29


means to create, modify, and save the multiple cases had to be developed based on the<br />

criteria above.<br />

2.2.1 Creating the <strong>Batch</strong> Problem<br />

<strong>Batch</strong> <strong>Mode</strong> does not replicate all the functionality of the CONDUIT GUI. Doing<br />

so would not only be redundant, but unnecessary, since varying certain parameters would<br />

cause the cases to become unrelated. Since <strong>Batch</strong> <strong>Mode</strong> can not create new CONDUIT<br />

cases, it uses a previously created CONDUIT problem which it modifies to create the<br />

remainder of the problems. This “template” problem is created by the user prior to<br />

entering <strong>Batch</strong> <strong>Mode</strong>. Typically, it is set up as one of the cases to be created and run in<br />

<strong>Batch</strong> <strong>Mode</strong>. The case is then fully optimized in CONDUIT to ensure that the template<br />

problem is set up so that it will properly optimize, and to obtain a starting set of design<br />

parameters for all other cases.<br />

Once the template case has been created and optimized, a new directory is<br />

created. The template file is then copied to the new directory. Upon opening <strong>Batch</strong><br />

<strong>Mode</strong>, the user picks the name of the template file in the newly created directory. The<br />

name of the template file becomes the name of the “<strong>Batch</strong> Problem”, while the new<br />

directory and all files and directories under it, make up the <strong>Batch</strong> Problem itself.<br />

2.2.2 Modifying the Cases<br />

Using the Setup <strong>Mode</strong> GUI, the user can then modify all parameters useful to a<br />

multi-problem analysis. These parameters include the following:<br />

30


HQ Window – The design margin for the specs and the spec options can be varied.<br />

Parameters such as the number and definition of specs can’t be changed, as this would<br />

prevent any meaningful comparison of the results.<br />

Design Parameters – The starting design parameter values and their frozen states can be<br />

defined.<br />

Block Diagram – <strong>Batch</strong> <strong>Mode</strong> allows for different block diagrams to be used to permit<br />

the comparison of different control architectures. Additionally, variables in the block<br />

diagram can be set through the Init file, to be described next.<br />

Init File – The Init file serves as the “catch-all”, allowing for nearly any other variation<br />

not mentioned above. Switches, input signals, variables, functions, scripts, etc… can be<br />

utilized to vary the cases as needed.<br />

2.2.3 Saving the Cases<br />

Once all of the cases have been created and modified, they must be saved to disk.<br />

In creating the means to do so, two options were considered.<br />

The first method was to save only the changes that were needed to vary the<br />

template problem for each case. At run time, the template case would be modified to the<br />

configuration of the specific case. The results would be cataloged and saved to a file in<br />

the <strong>Batch</strong> Problem directory.<br />

The second method was to create subdirectories, one for each case. The template<br />

problem would them be modified to the variations of the particular case, and copied to<br />

the appropriate directory. Thus, each subdirectory would represent an individual case,<br />

and the files within that directory would be a complete CONDUIT problem capable of<br />

31


eing opened by a regular session of CONDUIT. The running and saving of the problem<br />

would be done in the same way as in CONDUIT.<br />

Each method has its benefits and deficiencies. The first method would take up<br />

less disk space, however the running and saving of the problem would be more complex.<br />

Conversely, the second method would require much more disk space, the amount<br />

depending on the number of cases. A typical CONDUIT problem might take up 1-2<br />

megabytes of disk space after the results have been saved. Even with a large number of<br />

cases, however, the amount of space needed is still reasonable, considering the size of<br />

modern hard drives.<br />

Saving multiple CONDUIT problems would have many more advantages, though.<br />

The organization of the cases is much clearer, and the components of the individual cases<br />

can be seen by simply viewing the <strong>Batch</strong> Problem directory. Furthermore, by using this<br />

method, the running of the cases would be greatly simplified, as the code need only to<br />

switch to a particular directory and use the run code already developed for CONDUIT.<br />

Finally, the second method is more versatile in that many of the functions of <strong>Batch</strong> <strong>Mode</strong><br />

can be performed by hand. The user may open and run the individual cases using<br />

CONDUIT, delete cases by deleting their respective subdirectories, or create new cases<br />

by copying a case subdirectory and its contents to a new subdirectory.<br />

32


<strong>Batch</strong> Problem Directory<br />

sh2glat.cdt<br />

sh2glat.int<br />

sh2glat.mdl<br />

sh2glat.cdt<br />

(All other files used to<br />

create different cases)<br />

sh2glat.cdt<br />

sh2glat.int<br />

sh2glat.mdl<br />

sh2glat.cdt<br />

hover.mat<br />

Case 1 Directory<br />

sh2glat.cdt<br />

sh2glat.int<br />

sh2glat.mdl<br />

sh2glat.cdt<br />

60kts.mat<br />

Case 1 Directory<br />

sh2glat.cdt<br />

sh2glat.int<br />

sh2glat.mdl<br />

sh2glat.cdt<br />

100kts.mat<br />

Case 1 Directory<br />

Figure 18 - <strong>Batch</strong> Problem file and directory structure<br />

Thus, when a <strong>Batch</strong> Problem is created, <strong>Batch</strong> <strong>Mode</strong> creates a directory for each<br />

case, copies files of the template problem to each directory, and modifies them according<br />

to the variations defined by the user. A CONDUIT problem is composed of a specific<br />

group of files, however other files are often included in addition. These extra files often<br />

are used to store the aircraft dynamics model and, in the case of a gain scheduled<br />

problem, scripts may also be included which modify the stability derivatives according to<br />

the flight condition. <strong>Batch</strong> mode also has its own files, using the extension “.b”, to which<br />

are saved all parameters unique to <strong>Batch</strong> <strong>Mode</strong>. All of these additional files are copied to<br />

the case directory as well.<br />

2.2.4 <strong>Batch</strong> <strong>Mode</strong> GUI Fundamentals<br />

Now that the required procedures of Setup <strong>Mode</strong> have been discussed, the details<br />

of the Graphical User Interface will be explained. The Setup <strong>Mode</strong> GUI is shown below<br />

33


in Figure 19. The <strong>Batch</strong> <strong>Mode</strong> GUI is a unified interface, that is, all thee modes share the<br />

same common interface. Thus, the common attributes will be discussed first, followed by<br />

the details of Setup <strong>Mode</strong>.<br />

Figure 19 - Setup <strong>Mode</strong> GUI<br />

The <strong>Batch</strong> <strong>Mode</strong> GUI comprised of several sections, listed from top to bottom:<br />

File Menu, Button Toolbar, Main Window, <strong>Mode</strong> and Status Section. The organization<br />

of the GUI is best explained starting with the Main Window, shown in Figure 20.<br />

34


File Menu<br />

Button Toolbar<br />

Main Window<br />

Family Window<br />

Case Number Window<br />

Display Area<br />

<strong>Mode</strong> Select/Status Window<br />

Figure 20 - Main Window<br />

The Main Window is comprised of three areas, the Display Area, the Case<br />

Number Area, and the Family Area. The Display Area is the most dynamic of all the<br />

GUI components, changing to suit the needs of the current mode. <strong>For</strong> instance, in Setup<br />

<strong>Mode</strong>, it displays a window of cells to allow the user to modify the individual cases. In<br />

Run <strong>Mode</strong>, it displays the run status of the cases, while in Analysis <strong>Mode</strong>, this window<br />

changes to show the HQ Window, Pcomb, Design Parameter gain schedule plots, and all<br />

other results. Figure 20 shows the Display Area in Setup <strong>Mode</strong>, displaying parameters to<br />

be modified. Since there are more parameters to be varied than there is space in the<br />

35


window, within each <strong>Mode</strong>, the Display Area may display more than one “window”.<br />

This will be discussed in more detail later.<br />

To the left of the Display Area is the Case Number Area. In this section of the<br />

GUI, the case numbers and the names of cases are listed, the case number on the left and<br />

the name on the right. All the cells in this area can be changed in Setup <strong>Mode</strong> by simply<br />

editing the individual cell.<br />

Each case is defined by a unique case number. This uniqueness is ensured<br />

through the naming convention for the subdirectories, in which the prefix of each case<br />

subdirectory name is the <strong>Batch</strong> Problem name, and the suffix is the case number.<br />

The names in the column on the right are only labels. They do not represent<br />

directory names, or any other parameter of the case. The only purpose for the names are<br />

to give a short description by which the user may identify the characteristics of the case<br />

in <strong>Batch</strong> <strong>Mode</strong>. <strong>For</strong> instance, in the case of a <strong>Batch</strong> Problem that is gain scheduling over<br />

a range of velocities, the velocities might be listed in this column.<br />

The Case Number Window remains visible throughout all modes of the <strong>Batch</strong><br />

GUI. Besides the uses mentioned above, it serves as a means to indicate the current case<br />

being run in Run <strong>Mode</strong>, and allows the user to select the results for that particular case in<br />

Analysis <strong>Mode</strong>. These details will be discussed later with their respective topics.<br />

On the far left of the Main Window is the Family Area. Just as the name column<br />

mentioned in the previous section, families are not used as parameters in the CONDUIT<br />

problems of a <strong>Batch</strong> Problem. Rather, they are an organization tool for grouping similar<br />

cases. Each <strong>Batch</strong> Problem consists of one or more families. Each family consists of one<br />

or more cases.<br />

36


An example of the use of several families would be if the user wished to produce<br />

both a gain schedule, and a check for robustness of the system. The gain schedule would<br />

be comprised of several cases, their velocities differing slightly. Several cases for the<br />

robustness check would be created by perturbing the stability derivatives. The gain<br />

schedule cases would be kept in one family, while the robustness cases would be kept in<br />

another. Thus, the results of the two could be analyzed separately, and the problem<br />

becomes very clear and organized.<br />

The Family Area is also persistent in all aspects of the <strong>Batch</strong> GUI. In all modes,<br />

clicking on a cell in the Family Area will display the appropriate cases in the Case<br />

Number Area, as well as the data pertinent to the current family in the Display Area. In<br />

Setup <strong>Mode</strong>, the name of the family can be changed by selecting the family, and then<br />

clicking on it again to edit it.<br />

The remainder of the Setup <strong>Mode</strong> GUI sections are much more straightforward.<br />

The File Menu resides at the top of the <strong>Batch</strong> <strong>Mode</strong> GUI, and it behaves in the same way<br />

as any conventional pull-down menu. It contains some of the commands used less<br />

frequently, thus freeing up space on the remainder of the GUI. Currently, only Setup<br />

<strong>Mode</strong> commands are listed in the menu. Three pull-down menus are available: File, Edit,<br />

and Insert.<br />

Figure 21 - File Menu<br />

37


The File menu contains the commands for the loading an existing or a new <strong>Batch</strong><br />

Problem, the creation of a new <strong>Batch</strong> Problem on disk, and functions for quick saving<br />

and loading. Once all parameters have been varied for each case, the user selects Create<br />

<strong>Batch</strong> Problem from the File menu. The directories and files are then created for all<br />

cases. This process takes anywhere from seconds to minutes, depending on the<br />

complexity of the individual cases. Thus, the quick save and load functions were created<br />

to save to disk only the values defined in the <strong>Batch</strong> <strong>Mode</strong> GUI, allowing the data to be<br />

saved in less than a second. <strong>Batch</strong> <strong>Mode</strong> may then be reopened at a later date, and the<br />

quick load function can be used to restore the settings of the <strong>Batch</strong> <strong>Mode</strong> GUI to continue<br />

the setup of a problem.<br />

The Edit menu allows the user to copy, paste, and create series of cases. This<br />

functionality is not part of the current version of <strong>Batch</strong> <strong>Mode</strong>, but will be included in<br />

future versions. Further discussion of the limitations of this version of <strong>Batch</strong> <strong>Mode</strong> will<br />

be discussed at the end of the Setup <strong>Mode</strong> GUI section.<br />

To the right of the Edit menu is the Insert menu, which gives the user the option<br />

to add new cases or families to the current <strong>Batch</strong> Problem. The GUI for these two<br />

functions are shown below.<br />

Figure 22 - Insert Family and Case Interfaces<br />

38


The Insert Family GUI, on the left in Figure 22, consists simply of a box to enter<br />

the new family name. Clicking on OK will add the family to the list of current families.<br />

On the right hand side of the figure is the Insert Cases GUI, which is used to create new<br />

cases. The user may select which family to insert the cases and the number of cases to<br />

add. In addition to this, the user may choose to insert these new cases using the default<br />

values, or the current settings of another case. If the settings of another case are to be<br />

copied, all parameters but the case number are copied.<br />

Window Selection Buttons<br />

Window Specific Functions<br />

Button Toolbar<br />

Figure 23 - Button Toolbar<br />

Just below the File Menu is the Button Toolbar. This row of buttons lists all<br />

possible commands of the current <strong>Mode</strong>. The buttons on the left half are used to select<br />

the current “window”. In the same way as the <strong>Batch</strong> <strong>Mode</strong> GUI is split into three modes,<br />

39


Setup, Run, and Analysis, so are the each of these modes split up into sub-sections.<br />

These sub-sections are referred to as “windows”. The details of the windows will be left<br />

to later discussion, but for now, they should be thought of as being views of different sets<br />

of data, that appear in the Display Area of the Main Window. The window selection<br />

buttons are visible at all times within their respective modes, and change when the mode<br />

is switched. On the right half of the Button Toolbar are buttons, sliders, or text specific<br />

to the current window. These objects remain visible only in their respective windows.<br />

They provide functionality to the current window.<br />

The two final objects of the <strong>Batch</strong> GUI are located at the bottom of the <strong>Batch</strong><br />

<strong>Mode</strong> window. On the left hand side are the <strong>Mode</strong> Buttons. Clicking on the buttons will<br />

switch <strong>Batch</strong> <strong>Mode</strong> into the respective modes. On the bottom right of the <strong>Batch</strong> <strong>Mode</strong><br />

GUI is the Status Window. This window shows the current status of <strong>Batch</strong> <strong>Mode</strong>. When<br />

<strong>Batch</strong> <strong>Mode</strong> is writing the <strong>Batch</strong> Problem to file, running the <strong>Batch</strong> Problem, or when<br />

any other time consuming process is running, the current status of the process is detailed<br />

in this window.<br />

2.2.5 Setup <strong>Mode</strong> GUI<br />

As mentioned earlier, the intent of Setup <strong>Mode</strong> was to allow the user to modify<br />

any parameter that could be modified within CONDUIT, constraining the functionality<br />

limitations to only those variations deemed unnecessary in a multi-problem CONDUIT<br />

analysis. In creating this list of parameters to vary, it was quickly determined that<br />

multiple windows had to be used to organize all parameters. Thus, five windows were<br />

conceptualized for Setup <strong>Mode</strong>:<br />

40


• General (parameters) – This window would provide the user with the ability to vary<br />

parameters which are typically required in a CONDUIT problem, such as the design<br />

margin.<br />

• Design Parameters – The Design Parameters window was enables the user to select<br />

the values of the design parameters for each case, and their initial frozen states.<br />

• Spec Options – Used to set the spec options for every spec of every case.<br />

• Gain Schedule Parameters - The Gain Schedule Parameters window allows the user to<br />

create constants to be used within the <strong>Batch</strong> <strong>Mode</strong> GUI.<br />

• User Defined - Allows the user to create functions, variables, constants, switches,<br />

etc… within the Init file.<br />

<strong>Batch</strong> <strong>Mode</strong> is to be eventually incorporated into CONDUIT. Thus, from the start<br />

of the design conceptualization, no compromises were made to its capabilities. When it<br />

came time to start development, preliminary time schedule estimates indicated that the<br />

project was to take twice as long as expected. Thus, for the sake of the time limitations,<br />

only certain capabilities were incorporated. Those parameters incorporated in this project<br />

include the General and Parameter windows in Setup <strong>Mode</strong>, the Run <strong>Mode</strong>, and the HQ<br />

Window and Gain Schedule windows in Analysis <strong>Mode</strong>.<br />

The Display Area of the General Window is pictured below in Figure 24. The<br />

window is a spreadsheet, with the individual cases defined by the rows, and the<br />

parameters along the columns. Six parameters may be set using this window listed below:<br />

41


Figure 24 - General setup window<br />

• Init String – This parameter allows the user to insert a string on the first line of the<br />

Init file. This string may be of any length, and can contain several lines of MATLAB<br />

code, separated by semicolons. An additional feature of this column is that the user<br />

may use the “#” character anywhere in the cell to represent the case number. Thus,<br />

when the case is created on disk and the string is inserted into the Init file, all “#”<br />

symbols will be converted to the actual number of the current case. Through the use<br />

of the Init String, the user has the ability to make up for most of the limitations of<br />

<strong>Batch</strong> <strong>Mode</strong> in its current development state. Eventually, with the advent of the User<br />

Defined window, this column will be removed.<br />

• Block Diagram – This cell allows the user to select the block diagram used for the<br />

particular case. Typically, a single block diagram would be used for all cases.<br />

However, the option still remains. When the <strong>Batch</strong> Problem is created, this file is<br />

copied to the case subdirectory and renamed, if it does not match the batch problem<br />

name already. A valid filename must be used in this field.<br />

• Run Case – The Run Case column determines whether or not the particular case is to<br />

be optimized in Run <strong>Mode</strong>. Thus, if a new case is added to a previously run <strong>Batch</strong><br />

42


Problem, the user can deselect the original cases so they are not run again. The value<br />

of the cell is toggled Yes and No by clicking on the button in the cell.<br />

• Stop At Phase – When running a CONDUIT problem, the user can opt to run the<br />

problem for a number of iterations, or choose to stop the optimization when certain<br />

conditions occur. It is the second of these options that is enabled with this cell. By<br />

entering a 2, 3, or 0, the user can instruct <strong>Batch</strong> <strong>Mode</strong> to run the particular case until<br />

the optimization has reached Phase 2, Phase 3, or when the dp=0 condition has been<br />

reached, respectively.<br />

• Number of Iterations to Run – The second method of stopping a CONDUIT run is to<br />

specify a number of iterations to run. In <strong>Batch</strong> <strong>Mode</strong>, this is accomplished by<br />

entering a value in the Number of Iterations to Run cell. If a value of zero is used, the<br />

system will be evaluated at the current design point, but not optimized. As in<br />

CONDUIT, either the number of iterations or the stop condition can be used, but not<br />

both. Thus, when the user clicks on the Number of Iterations to Run cell, the Stop At<br />

Phase cell will be disabled, and vice versa.<br />

• Design Margin – This column sets the design margin of the problem. Just as in<br />

CONDUIT, a valid number from 0-1 must be specified.<br />

It might be noted that the column widths of the General Window seem<br />

abnormally wide, and that the GUI does not appear to use the window space effectively.<br />

However, this same window must be used to display the same HQ Window information<br />

as in CONDUIT, along with every other output window of CONDUIT. Thus, when the<br />

<strong>Batch</strong> <strong>Mode</strong> GUI was designed, it was done in such a way as to maximize the size of the<br />

Display Area of the Main Window. An additional comment that is often brought up by<br />

43


the casual observer is that since the window is so large for these few parameters, that they<br />

should be incorporated with other parameters from different windows. However, all<br />

other windows have a variable number of parameters, which with a larger number of<br />

parameters would require as much space as possible. Adding the general parameters<br />

would only take away from that space. Thus, while the design might not be ideal for all<br />

windows, it is the best compromise considering the limitations.<br />

Figure 25 – Gain Schedule Parameter setup window<br />

The second Setup <strong>Mode</strong> window developed was the Gain Schedule Parameter<br />

window, shown in Figure 25. In this window, the user may define constants to be used<br />

elsewhere in the <strong>Batch</strong> <strong>Mode</strong> GUI. These constants are much like the name column in<br />

the Case Number Area, in that they do not directly affect any CONDUIT setting. Rather,<br />

they are accessed through other areas of the <strong>Batch</strong> GUI. Specifically, they can be used as<br />

44


the abscissa in the gain schedule plots of Analysis <strong>Mode</strong>. Thus, gain schedule plots can<br />

be made against the case number, velocity, angle of attack, or any other parameter which<br />

is defined in this section. In addition to this, these values will eventually be referenced as<br />

constants by the User Defined setup window. <strong>For</strong> example, if a column title from the<br />

Parameter window were to be passed to a function declared in the User Defined window,<br />

the value of the Parameter for that particular case would be used in place of the column<br />

title name.<br />

By default, the Parameter window initially has only the case number listed. This<br />

value can not be removed or edited. To add parameters, the user would press the<br />

Add/Remove Parameter button on the Button Toolbar. A small window will appear, as<br />

shown in Figure 26.<br />

Figure 26 - Add/Edit/Remove/ Parameter GUI<br />

Using this GUI, the user can create a new column, remove an existing column, or<br />

edit the name of an existing column. The action to be performed is defined by the top<br />

pull-down menu of the window. If a parameter is to be edited or removed, the Field pulldown<br />

window would be used to select one of the current parameters. The Name edit box<br />

is used to specify the name of a new parameter, or the new name of the edited parameter.<br />

45


Once the new column is added, the user may define values for each case. If a cell is left<br />

blank or with the default value of “-“, that particular case will be excluded from the cases<br />

used in a gain schedule plot.<br />

2.2.6 Constructing A <strong>Batch</strong> Problem<br />

Thus, to put a perspective on how each component works in the construction of a<br />

<strong>Batch</strong> Problem, a typical problem would be created as such: The user would first create<br />

and optimize a CONDUIT problem to serve as the template of the <strong>Batch</strong> Problem.<br />

Typically, this template problem would be created so that it is the best match of all of the<br />

cases. A new directory would be created and the template problem would be copied<br />

there. <strong>Batch</strong> <strong>Mode</strong> would be started, and the template case in the newly created directory<br />

would be selected.<br />

Upon starting <strong>Batch</strong> <strong>Mode</strong>, the GUI would contain one case, the template. The<br />

user would then create however many families deemed necessary, and create any number<br />

of cases in each family. The settings for the cases would then be edited using the <strong>Batch</strong><br />

<strong>Mode</strong> GUI. Once all cases were configured, the Create <strong>Batch</strong> Problem command would<br />

be selected under the File Menu. <strong>Batch</strong> <strong>Mode</strong> would then create subdirectories for each<br />

case, modify the files that make up the individual problems, and copy these files to the<br />

individual subdirectories. Thus, the <strong>Batch</strong> Problem will have been created, the<br />

subdirectories each containing individual CONDUIT problems. The next step is to<br />

switch to Run <strong>Mode</strong> to optimize or evaluate the <strong>Batch</strong> Problem.<br />

46


2.3 Run <strong>Mode</strong><br />

The object of the Run <strong>Mode</strong> is to provide the ability to run multiple CONDUIT<br />

problems in such a way as to minimize user intervention. In developing this capability, a<br />

method of running the multiple problems had to be defined, taking into consideration<br />

several possibilities. The process of running the cases also had to be developed in such a<br />

way that it was completely automatic. Furthermore, it also had to provide sufficient<br />

feedback to the user, thus, the GUI was developed to display the results and current status<br />

of the cases.<br />

2.3.1 Run Methods<br />

In the preliminary planning for Run <strong>Mode</strong>, several methods of running the cases<br />

were considered. Primarily, these methods dealt with how to actually run the multiple<br />

cases. One possibility was to simply run the cases in sequence, one at a time. An<br />

alternate method would be to run multiple cases at once, taking advantage of the<br />

capabilities of multi-processor machines. However, most of the capability required to<br />

control multiple CPUs was removed from MATLAB in the latest release. Thus the<br />

sequential method was chosen.<br />

The secondary consideration to the run method dealt with how best to use the<br />

design parameters to optimize multiple cases. The first idea that was proposed was to<br />

start the first case with the design parameters assigned to it. After that case has been<br />

optimized, the design parameters would be passed as the starting parameters of the next<br />

case. Thus, if a gain schedule were done in small increments, each case would start with<br />

design parameters close to the optimized values, theoretically speaking. While this<br />

method would probably work well under the right conditions, those conditions are very<br />

47


specific. The method fails when the cases are not related by such a pattern. Also, the<br />

method requires that each preceding case ran successfully. Thus, it was thought that<br />

these conditions were too specific and that it would be best if the design parameters<br />

weren’t passed in this way. Instead, it was decided to use the design parameters from the<br />

initial optimized case as the starting point for each case, unless otherwise specified in the<br />

Design Parameters Setup window.<br />

2.3.2 Running A Case<br />

The method used in the running of the cases of a <strong>Batch</strong> Problem is very similar to<br />

the method used by CONDUIT. In <strong>Batch</strong> <strong>Mode</strong>, however, the process is all automated.<br />

Prior to an optimization, the user would set the run order of the cases. Upon<br />

starting the run of the cases, <strong>Batch</strong> <strong>Mode</strong> creates a list of cases to be run, and orders them<br />

based on the run order. As the <strong>Batch</strong> Problem is run, it progresses through this list<br />

running each case sequentially.<br />

<strong>For</strong> each case, the run sequence mirrors the processes of a CONDUIT<br />

optimization. It does not run the cases in CONDUIT, but uses equivalent code, running<br />

the problems entirely in MATLAB. By divorcing <strong>Batch</strong> <strong>Mode</strong> from CONDUIT, it can be<br />

run without user intervention, and without the need for the CONDUIT GUI. In fact,<br />

<strong>Batch</strong> <strong>Mode</strong> has been tested and run entirely from a command line interface, allowing<br />

users to log in using telnet and run <strong>Batch</strong> Problems from anywhere. While this is not<br />

included in the current version of <strong>Batch</strong> <strong>Mode</strong>, it just goes to show the flexibility gained<br />

by running problems in this way.<br />

When <strong>Batch</strong> <strong>Mode</strong> starts an optimization of a case, it first switches to the<br />

directory of the case. It then loads the problem in the same way as CONDUIT would.<br />

48


An initial Pcomb is run, and the problem optimization is started with the appropriate stop<br />

condition, just as it would be done manually in CONDUIT. At each iteration, the current<br />

status is output to the Run <strong>Mode</strong> GUI. Additionally, a text file, named “RunStatus” is<br />

created in the <strong>Batch</strong> Problem directory, which lists the current status of the run.<br />

If an optimization stops due to an error message, <strong>Batch</strong> <strong>Mode</strong> will decide whether<br />

or not to run an automated sensitivity analysis. It makes this decision based on the<br />

current phase and the exit message returned from COMATLAB. If a sensitivity analysis<br />

is to be run, <strong>Batch</strong> <strong>Mode</strong> will perform the analysis using the specs critical to the current<br />

phase, and the non-frozen design parameters. Based on the analysis, design parameters<br />

would then be frozen, and the optimization would continue. The process then repeats<br />

until any of three conditions occur:<br />

1. It is determined that a sensitivity analysis is not to be run, based on the error message<br />

and current run conditions.<br />

2. All design parameters were frozen as a result of the sensitivity analysis.<br />

3. No design parameters could be frozen based on the sensitivity analysis.<br />

After the case has been run, it is saved in the same exact manner as a regular<br />

CONDUIT problem. The Iteration History is also saved in the standard format. In<br />

addition to these two files, <strong>Batch</strong> <strong>Mode</strong> saves other parameters such as the optimization<br />

end message and run order to the “.b” file of the current problem. Thus, this information<br />

will be available to display the next time the <strong>Batch</strong> Problem is loaded.<br />

49


2.3.3 Run <strong>Mode</strong> GUI<br />

Figure 27 - Run <strong>Mode</strong> GUI<br />

The figure above shows the interface for the Run <strong>Mode</strong>. It might be noted that<br />

the basic structure of the GUI is the same as in Setup mode, and that the two differences<br />

are in the Button Toolbar and the Display Area of the Main Window. Starting with the<br />

Main Window, the Family Area responds in the same way as in Setup <strong>Mode</strong>. By clicking<br />

on a family cell, the cases of the selected family will appear. The family names can not<br />

be changed. In Run <strong>Mode</strong>, the data in the Case Number Area serves only as a reference<br />

to the information displayed in the Display Area. As with the Family Area, neither the<br />

case number nor the name can be changed.<br />

The Display Area changes completely in Run <strong>Mode</strong> to reflect the information<br />

specific to this new mode. The leftmost column, the Run Order, defines a unique number<br />

50


used to determine the order the cases are optimized. This number can be either entered<br />

by hand, or set using the Order Cases button, to be explained later. If the user happens to<br />

use the same number for two separate cases, <strong>Batch</strong> <strong>Mode</strong> will automatically determine<br />

the order of the two cases.<br />

To the right of the Run Order column is the Phase Column. While a case is<br />

running, the corresponding cell in this column shows the current phase of the<br />

optimization. After the optimization of a case has finished, this column shows the final<br />

phase reached. If a stop condition was specified in Setup <strong>Mode</strong>, such as Phase 2, Phase<br />

3, or dp=0, this number will appear in the cell as well. The value of the phase cell will be<br />

separated by the stop condition by a “/”, as shown in Figure 27.<br />

The final feature of the phase column is that it changes color based on the phase<br />

value. Just like a stoplight, Phase 1 is colored red, Phase 2 is colored yellow, and Phase 3<br />

is colored green. By coloring the cells, the user can quickly scan a large number of cases<br />

to determine the results of a <strong>Batch</strong> optimization.<br />

The next column to the right is the Iteration Number column. Just as the phase<br />

column displays the current or final phase value, so does the Iteration Number column<br />

display the current or final iteration for each case. Additionally, if a number of iterations<br />

to run was specified in Setup <strong>Mode</strong>, it will appear to the right of a “/” in each cell, giving<br />

an indication as to how many more iterations are to be run.<br />

The last column in the Display Area shows the Optimization Result Message.<br />

When a CONDUIT optimization stops, a message is displayed showing the reason for the<br />

end of the optimization. The result messages may indicate anything from a successful<br />

optimization, to a completion of a number of iterations, to a case in which CONDUIT can<br />

51


not make any improvements. As with the Phase column, the cells in this column are also<br />

colored red, yellow, and green to indicate their merit. A message indicating a serious<br />

problem in the particular case, such as “A feasible point is not found to satisfy all hard<br />

constraints”, will result in a red cell. Messages that reflect cases in need of minor<br />

alterations are colored yellow. An example would me the message: “Further decrease of<br />

the most active specifications cannot be achieved.” Lastly, a successful optimization is<br />

colored green. This could be due to a successful COMATLAB exit message, the<br />

optimization reaching a specified number of iterations, or by the optimization reaching a<br />

specified phase. As with the phase column, the coloring of the Optimization Result<br />

Messages allows the user to evaluate the results at a glance.<br />

The Button Toolbar changes completely between Setup and Run <strong>Mode</strong>. Unlike<br />

the configuration in Setup <strong>Mode</strong>, Run <strong>Mode</strong> has only one “window” and thus, all buttons<br />

in the toolbar perform actions. As implied by its name, the Run button starts the <strong>Batch</strong><br />

optimization. Just to the right is the Stop button, which is used to stop a currently<br />

running <strong>Batch</strong> optimization. As in CONDUIT, pressing the stop button will stop the<br />

optimization after the currently running iteration is finished.<br />

The next object on the Button Toolbar is an iteration status message, listing the<br />

current iteration of the case that is running, or the total iterations run of the last completed<br />

case. As with the Iteration column of the Main Window, the total iterations to be run for<br />

the particular case is listed to the right of a “/”. This total works in the same way as the<br />

Iteration Number display of the CONDUIT GUI. If a number of iterations to run was<br />

specified for a case, that number appears on the right of the slash. If a stop condition was<br />

52


specified, the total number of iterations to be run is set to 1000, thus ensuring that the<br />

optimization will reach a stop condition.<br />

On the right hand side of the Button Toolbar is the Order Cases button. As<br />

mentioned earlier in the description of the Run Order column of the Main Window, the<br />

Order Cases button is an alternative way to set the values of the Run Order column. By<br />

pressing this button, a list box opens up on the right side of the Main Window, and a<br />

button labeled “Order Automatically” appears to the left of the Order Cases button.<br />

Figure 28 – Ordering the cases<br />

If the run order of any case was defined by hand, they will be displayed in the list<br />

box, in order, from top to bottom. To add or remove a case from the run order, the user<br />

can click on the Run Order cells. The cases will then be added or removed from the list<br />

box. Cases can also be inserted by highlighting the insert point on the list box. If a<br />

53


specific run order is not required, the user may have <strong>Batch</strong> <strong>Mode</strong> define the run order by<br />

pressing the Order Automatically button.<br />

Figure 29 - Run Status window<br />

The last option on the Button Toolbar is the Run Status. Pressing this button<br />

opens up a status window, shown in Figure 29, which is updated at each iteration of a<br />

run. This window has two sections. The top section deals with the current running case,<br />

showing the current case, family, iteration, phase, and the number of cases that have been<br />

run up to this point. The bottom section of the window shows a history of previously run<br />

cases. The run order, case number, name, and result message are listed for each case that<br />

has been run.<br />

By providing the status information in a compact window, the user can minimize<br />

the <strong>Batch</strong> <strong>Mode</strong> Window, thus freeing up desktop space to work on other applications.<br />

Second, due to the nature of MATLAB GUIs, the <strong>Batch</strong> <strong>Mode</strong> GUI is not refreshed until<br />

the start of the next iteration. Thus, if another window covers up part of the <strong>Batch</strong> <strong>Mode</strong><br />

GUI, or the <strong>Batch</strong> <strong>Mode</strong> GUI is minimized, the text and graphics will not reappear until<br />

54


the following iteration. The smaller size of the Run Status window would both allow the<br />

window to remain open on the desktop, and would also lessen the chance that it is<br />

covered up by another window. Thus, the run status information would always be<br />

available.<br />

Similar to the Run Status window, the Run Status file created at each iteration<br />

displays the same information:<br />

Running Case: 6<br />

Family: Family 1<br />

Iteration: 3/5<br />

Phase: 3<br />

Cases Run: 6/6 (100%)<br />

RunOrder Case Name Result<br />

1 1 Case 1 1 Iterations completed.<br />

2 2 Case 2 2 Iterations completed.<br />

3 3 Case 1 The optimization has reached Phase 2 or<br />

better.<br />

4 4 Case 1 Pcomb evaluation performed.<br />

5 5 Case 1 The optimization has reached Phase 3.<br />

6 6 Case 1 Running...<br />

Figure 30 - Run Status file<br />

The remaining GUI components are much simpler, and perform nearly the same<br />

functions as in Setup <strong>Mode</strong>. The File Menu is inactive in Run <strong>Mode</strong>, as there are<br />

currently no available options for this mode. The Status Window displays the status of<br />

the current operation. While a problem is running, a brief message displays the Case and<br />

Family of the current problem, as well as the current and total number of cases to be run.<br />

Finally, the <strong>Mode</strong> Buttons are used to switch to a different mode, just as in Setup <strong>Mode</strong>.<br />

2.3.4 Running A <strong>Batch</strong> Problem<br />

After the run order has been established, and the Status Window has been opened,<br />

the <strong>Batch</strong> optimization is then started by pressing the Run Button. At this point, the Run,<br />

55


Order Cases, and <strong>Mode</strong> buttons all become disabled. At the same time, the Stop button<br />

becomes active, as shown in Figure 31.<br />

Figure 31 - The Run <strong>Mode</strong> GUI of a currently running problem<br />

As the cases run, the GUI changes to reflect the current status, demonstrated in<br />

Figure 31. First, the row of the running case and the family it belongs to are highlighted<br />

in blue. The cells of the running case are updated to the current values, and the phase is<br />

colored accordingly. The iteration number text in the Button Toolbar is also updated.<br />

The Optimization Result Message column is updated at the end of the optimization of<br />

each case. Finally, the Status Window at the bottom of the GUI is updated to list the<br />

status of the run, showing the case number, name, and the number of cases currently run.<br />

In addition to the Run <strong>Mode</strong> GUI, the Run Status window and file are updated as well.<br />

56


2.4 Analysis <strong>Mode</strong><br />

The third section of <strong>Batch</strong> <strong>Mode</strong>, the Analysis <strong>Mode</strong> is analogous to the Run<br />

<strong>Mode</strong> in CONDUIT. The intent of Analysis <strong>Mode</strong> is to provide the user with a means to<br />

analyze all aspects of each case, thus the it must duplicate all functionality of the<br />

CONDUIT Run <strong>Mode</strong>. Unlike the CONDUIT Run <strong>Mode</strong>, the Analysis <strong>Mode</strong> has the<br />

additional requirement of displaying a large amount of data from multiple cases in a way<br />

that is clear and concise. Thus, the end design has some similarities to the CONDUIT<br />

Run <strong>Mode</strong> GUI, but most has been reworked to better display the data.<br />

2.4.1 Fundamentals of Analysis <strong>Mode</strong><br />

The Analysis <strong>Mode</strong> mirrors all of the capability of CONDUIT Run <strong>Mode</strong>. Each<br />

section of CONDUIT Run <strong>Mode</strong> is represented in Analysis <strong>Mode</strong> by an individual<br />

window, much in the same way as in the <strong>Batch</strong> Setup <strong>Mode</strong>. The following windows are<br />

displayed: HQ Window, Pbrush, Design Parameters, Iteration History, Sensitivity<br />

(Analysis), Gain Schedule. As mentioned in the discussion of Setup <strong>Mode</strong>, only two<br />

windows were developed for this version of <strong>Batch</strong> <strong>Mode</strong>, the HQ Window and Gain<br />

Schedule Window.<br />

The HQ Window displays the same information available on the HQ Window in<br />

CONDUIT, with a few additions. The <strong>Batch</strong> HQ Window shows the HQ Window for<br />

each case, just as in CONDUIT. The window is arranged such that the user may switch<br />

rapidly between the results of the different cases. As in CONDUIT, the iteration can be<br />

selected for each case, support plots may be viewed, and the HQ Editor window may be<br />

opened to view the setup of each spec. Three additional functions include jump-to-phase<br />

57


uttons, a zoom out feature, and overlaid plots. These features will be discussed in detail<br />

in the Analysis <strong>Mode</strong> GUI section.<br />

Level 3<br />

(Red)<br />

Pcomb<br />

Distance<br />

Value<br />

Level 2<br />

(Magenta)<br />

Level 1<br />

(Blue)<br />

Constraints<br />

Cases<br />

Figure 32 – Pbrush<br />

The Pcomb of CONDUIT will eventually be replaced in <strong>Batch</strong> <strong>Mode</strong> with the<br />

Pbrush, which is essentially a three dimensional representation of the Pcomb. A picture<br />

of the possible interface is shown in Figure 32 above. Basically, the Pbrush would be the<br />

same as a Pcomb, with the third dimension expanded to show the data for each case. The<br />

length of each bar indicates the distance into each level, as in CONDUIT. However, the<br />

level borders are not present. Rather, the color of each bar changes to indicate the level<br />

of each constraint. The arrangement could be rotated to view the structure at any angle.<br />

In addition, the numeric distance values from the Pcomb are written on the top of each<br />

58


ar. (Only displayed on one bar in the figure) Thus, the user could snap to a top view to<br />

clearly display the values for all cases.<br />

The next three windows of Analysis <strong>Mode</strong> will replicate the features of their<br />

respective displays in CONDUIT. The DP Window will display the values of the design<br />

parameters for all cases and iterations. The Iteration History Window will show the<br />

information of the CONDUIT Iteration History feature in an organized and concise<br />

format. Finally, the Sensitivity Analysis will allow the user to perform a sensitivity<br />

analysis for each individual problem.<br />

A feature new to CONDUIT, introduced in Analysis <strong>Mode</strong> is the capability to plot<br />

gain schedules using the design parameter values of the different cases. This capability is<br />

found in the Gain Schedule Window of Analysis <strong>Mode</strong>. Using the definitions of the Gain<br />

Schedule Parameters Window in Setup <strong>Mode</strong>, the user can plot the design parameters<br />

against any user-defined parameter. The data points of the plot are ordered in the order<br />

of the gain schedule parameter values defined in Setup <strong>Mode</strong>. The Gain Schedule<br />

Window has the ability to organize many gain schedule “plots”, organized on a number<br />

of “pages”. Pages can be thought of as a piece of paper upon which a plot can be drawn.<br />

Each page can have several overlaid plots. This system is best illustrated by the figure<br />

below.<br />

59


Plot 1<br />

Page 1<br />

Plot 2<br />

Display<br />

Area<br />

Plot 3<br />

Page 2<br />

Plot 1<br />

Figure 33 - Organization of gain schedule Figures<br />

The properties of each plot, such as the line color and style can be set by the user<br />

to create sensible plots. Additionally, all plots may be modified or removed later.<br />

Finally, a capability of the Gain Schedule Window to be added in future versions<br />

of <strong>Batch</strong> <strong>Mode</strong> is the ability to arrange multiple Pages in the Display Area at once. As in<br />

the CONDUIT Analysis Tools, multiple Pages of the Gain Schedule Window (reduced in<br />

size) might be viewed simultaneously in the Display Area.<br />

60


2.4.2 Analysis <strong>Mode</strong> GUI<br />

Figure 34 - Analysis <strong>Mode</strong> GUI - HQ Window<br />

The Analysis <strong>Mode</strong> GUI, shown in Figure 34, shares the same common interface<br />

with Setup and Run modes. As with Run <strong>Mode</strong>, the only difference in the interface is<br />

with the Button Toolbar and the Display Area. On the left section of the Button Toolbar<br />

are the window buttons, which select the six different windows in Analysis <strong>Mode</strong>. The<br />

section on the right half of the Button Toolbar is reserved for features of each window.<br />

The Display Area works in the same way as in Setup <strong>Mode</strong>, showing information<br />

pertinent to each window. As in Run <strong>Mode</strong>, the Family and Case Number windows can<br />

not be edited. Rather they serve as a method to select the displaying of case specific<br />

information in the Display Area, the details of which are to be discussed later. The<br />

remaining features, the File Menu, <strong>Mode</strong> Buttons, and Status Window, all work in the<br />

61


same way as in Run <strong>Mode</strong>. Two windows were developed for Analysis <strong>Mode</strong>, to be<br />

discussed next.<br />

When entering Analysis <strong>Mode</strong>, the default window selected is the HQ Window,<br />

shown in Figure 34. As discussed earlier, the HQ Window displays the same information<br />

as the CONDUIT HQ Window, but in a way that facilitates the viewing of results from<br />

all cases. The Display Area shows the HQ Window just as it appears in CONDUIT. By<br />

default, it displays the data from the first case of the first family. To select another case,<br />

the user may switch to the appropriate family by clicking on a cell in the Family<br />

Window, and selecting the desired case cell in the Case Number Window. The HQ<br />

Window will then be updated to display the results for the new case.<br />

On the button frame are the controls specific to this window. Third from the left<br />

is the iteration number indicator, which displays the current iteration of the displayed<br />

case. Just to the right is the iteration slider. This is used to select the current iteration<br />

and works in the same way as a conventional slider. Changes are immediately reflected<br />

in the HQ Window plots. On the far right of the Button Toolbar is the phase<br />

indicator/selector, which consists of three buttons, labeled for each of the three phase<br />

numbers. This object serves two functions. First, it displays the phase of the current case<br />

by coloring the appropriate button. Second, by pressing one of the three buttons, the<br />

iteration slider will jump to the first iteration of the selected phase, if it exists.<br />

One of the intents of Analysis <strong>Mode</strong> is to present the results in such a way as to<br />

quickly view the results of all cases. The current HQ Window does just that. However,<br />

if there are more than 12 specs in a case, the user must scroll the HQ Window to view all<br />

62


of the specs. Thus, a zoom feature was proposed to zoom out the HQ Window, allowing<br />

all specs of a particular case to fit in the Display Area.<br />

At the time CONDUIT was first written, the multi-case batch environment was<br />

not even thought of. Thus, the HQ Window is limited in its capability in this respect.<br />

Incorporating the zoom feature would have required the arduous task of rewriting the<br />

entire HQ Window code. As a result, this feature was postponed until that time which the<br />

structure of the specs and HQ Window are revised. The details of the Zoom function will<br />

still be discussed briefly.<br />

The Zoom feature of the HQ Window will size and arrange the specs accordingly<br />

so that they will fit on a single HQ Window. Since they will most likely be reduced in<br />

size by some degree, the borders of the specs will be highlighted in one of three colors,<br />

indicating their level ratings. Thus, by displaying the specs in this mode, the user could<br />

quickly switch between cases and determine the ratings of all the specs.<br />

Just to the right of the Zoom button is the Plot Multiple button. This button<br />

allows the user to overlay the plots of multiple cases on the same HQ Window. To do so,<br />

the user must first select the cases to be plotted by right clicking on the case cells. Each<br />

case selected this way will be highlighted blue in the Case Number Window. In selecting<br />

the cases, the user may switch to different families to select cases in other families. Once<br />

all cases have been selected, the user presses the Plot Multiple button, which plots the<br />

points of all cases on the HQ Window simultaneously, as shown in Figure 35. The<br />

Iteration slider and Phase indicator/selector will be disabled since they are not valid in<br />

this mode.<br />

63


Figure 35 - Multiple case plot<br />

The Plot Multiple feature would be useful for two primary reasons. First, in the<br />

case of a gain schedule, the multiple plot would show which specs could not be pushed to<br />

Level 1. However, the primary use of this feature, would be in the determination of the<br />

robustness of the system. At a given flight condition, the user may perturb the stability<br />

derivatives to the extents of their known accuracy, creating a multitude of cases<br />

representing all possible combinations. Rather than optimizing these cases, the user<br />

would simply evaluate each case. When the results are plotted simultaneously, the result<br />

is a “thumbprint” plot. Thus, by ensuring that the area of this thumbprint stays within the<br />

Level 1 region, the robustness of the system can be ensured. This is, of course, assuming<br />

that the control system was modeled accurately and the errors of the stability derivatives<br />

are accurate as well.<br />

64


Figure 36 - Initial Gain Schedule Window<br />

Figure 36 shows the final window developed for this version of <strong>Batch</strong> <strong>Mode</strong>, the<br />

Gain Schedule Window. Initially, the Display Area is blank, as no pages or plots<br />

currently exist. The Button Toolbar has several functions and displays specific to the<br />

Gain Schedule Window. Just to the right of the Window buttons is a button labeled<br />

“Add/Delete Plots”. When it is pressed, a window opens, shown below.<br />

65


Figure 37 - Add/Edit/Remove Plot GUI<br />

This window provides for all the functionality to add, edit, or remove a plot or<br />

page. The button at the top of the window defines the action of the window. The user<br />

may choose from the following options: New Page, Add Plot, Edit Plot, Remove Current<br />

Page, Remove Current Plot. The New Page option is used to create a plot on a new page.<br />

Add Plot is used to add a new plot to the current page. Edit plot is used to edit the name,<br />

design parameter, color, line style, graph limits, or to turn the grid on and off for the<br />

currently selected plot. Selecting Remove Current Page will delete the current page and<br />

66


all plots contained within it, and the Remove Current Plot function will delete the<br />

currently selected plot.<br />

The next cell down is the Plot Name cell, which is used to name the new plot or<br />

rename an existing plot. The Page Name cell performs the same function for the name of<br />

the newly created or currently edited page. The Parameter option is a pull down menu,<br />

giving the user the option to select any one of the parameters defined in Setup <strong>Mode</strong> as<br />

the abscissa of the plot. Likewise, the Design Parameter to plot is set by the next pull<br />

down button. The remaining pull down buttons and edit boxes are used to set the color,<br />

line style, X Limits, Y Limits, and the grid. Once all the options are set, pressing the Ok<br />

button will perform the action specified in the first cell.<br />

On the far right of the Button Toolbar is the Page indicator and slider. The Page<br />

Indicator displays the number of the currently displayed page, along with the total<br />

number of pages. The slider allows the user to select the currently viewed page.<br />

67


Figure 38 - New Gain Schedule plot<br />

When a page is created, it appears in the Display Area as shown in Figure 38. <strong>Of</strong><br />

specific importance is the information on the Title Bar of the Main Window. This is the<br />

control and information panel for the current page. On the far left of the Display Area<br />

title bar is the name of the page. In this case, the plot is simply called “Plot 1”. Moving<br />

to the right, the next item is the plot number, which lists the number of the currently<br />

displayed plot and total number of plots on the current page. The next item to the right is<br />

the plot number slider, which is used to choose the currently selected plot of the page.<br />

The last two items are the design parameter of the currently selected plot and the<br />

Parameter against which it was plot. The design parameter is listed on a pull down<br />

button that can be used to switch the plot to show the results of a different design<br />

parameter.<br />

68


The gain schedule itself is plot in the Display Area. The X-Axis is labeled with<br />

the appropriate parameter, and a legend is created to distinguish multiple plots. The<br />

current plot is drawn bold to distinguish it from the other plots. Changing the plot slider<br />

changes the design parameter cell to the appropriate value, along with highlighting the<br />

newly selected plot.<br />

Thus, in using the gain schedule plot, several plots and pages may be created.<br />

The user may then switch between the pages by clicking on the page slider. In future<br />

versions of <strong>Batch</strong> <strong>Mode</strong>, the user may choose to view more than one plot in the Display<br />

Area at the same time. This functionality would be accessed through the Arrange Plots<br />

button on the button toolbar. Any number of pages could be viewed simultaneously.<br />

Each page would include the graph itself, as well as the components of the Title Bar.<br />

Thus, the multitude of shrunk down windows would still be accessed in the same way as<br />

when they were full size. An example of this future capability is demonstrated below.<br />

69


Figure 39 - Multiple page concept<br />

70


2.5 Sensitivity Automation<br />

<strong>Batch</strong> <strong>Mode</strong>, up to this point, has accomplished all of the objectives except for<br />

one. It has the ability to create multiple CONDUIT problems and modify every<br />

parameter of a problem that could be modified by a user. It has the ability to<br />

automatically run the multiple cases, and incorporates the means to quickly and<br />

effectively view the results of these problems. The only objective lacking is the ability to<br />

run the problems in such a way as to minimize user intervention. When running a<br />

CONDUIT problem, sometimes the optimization can get stuck. The user must then run a<br />

sensitivity analysis, freeze insensitive and correlated parameters, and continue. While<br />

this is not necessary for some cases, the same can’t be said for all cases. Thus,<br />

considering the large number of cases that could be used in a <strong>Batch</strong> Problem, some<br />

automation of this process had to be implemented, and so the Sensitivity Automation was<br />

created.<br />

2.5.1 Typical Use of Sensitivity Tools<br />

Before the development of the Sensitivity Automation can be discussed, the<br />

details of the Sensitivity Analysis must be explained, with emphasis on the actions<br />

performed by the user. When an optimization ends, it lists a reason why. Depending on<br />

this reason, the user may opt to either accept the results and quit, or run a sensitivity<br />

analysis. Typically, unless the message indicates that the problem is fully optimized, the<br />

user would usually run a sensitivity analysis. The first step in a Sensitivity Analysis is<br />

the selection of the design parameters for the gradient calculation. Typically, the<br />

parameter selection would reflect the non-frozen parameters of the problem. However,<br />

71


the user may choose to freeze additional parameters for other reasons. The gradient is<br />

then calculated, from which the insensitivities and correlations can later be determined.<br />

The user then chooses the specs to be used in the insensitivity calculation, and narrows<br />

down the design parameter selection even further, if necessary. The specs to be used in<br />

the insensitivity calculation are chosen based on their constraint type, and the current<br />

phase. In Phase 1, the optimization routine is looking only at the hard constraints. Thus,<br />

if any problems exist, they are due to the hard constraints and so they must be used. In<br />

Phase 2, the soft constraints are likewise critical and should be used, while the objective<br />

specs are to be used in Phase 3. The insensitivity plot is then created, shown in Figure 40.<br />

Figure 40 - Insensitivity Plot<br />

72


The general rule of thumb is that any design parameter with an insensitivity value<br />

over 20% should be frozen.<br />

After freezing the insensitive parameters, the user would then investigate<br />

correlated parameters. The gradient would be recalculated with the new set of design<br />

parameters. This same set of design parameters and the same specs would then be used<br />

to calculate the Cramer Rao percentages, which would be plot on a separate graph.<br />

Checking for correlated parameters is a little more complicated than insensitivities. First<br />

of all, parameters with Cramer Rao percentages over 20% are considered to be highly<br />

correlated, and should be investigated. Second, correlated parameters always come in<br />

groups of two or more. These groups are distinguished by their relative magnitudes.<br />

Figure 41 - Sample Cramer Rao plot<br />

73


In the case above, if there were any pairs of parameters under 20%, it is still<br />

possible for them to be correlated to each other, but the effect is not enough to create a<br />

problem for the optimization routine. The pair of parameters, dpp_RAHAR and<br />

dpp_RAHA, are correlated to each other as well, but in this case they are significant<br />

enough so that they can cause the optimization routine to hang up on them. Since both<br />

parameters do roughly the same thing to the system, one of them is unnecessary and<br />

needs to be removed. Thus, by freezing one of the parameters, it reduces the dimensions<br />

of the gradient, simplifying the problem for the optimization. After one of the design<br />

parameters is frozen, if the gradient and Cramer Rao percentages are recalculated, the<br />

Cramer Rao percentage of the other parameter will drop to below 20% (since it is no<br />

longer correlated with any active design parameters).<br />

The third set of correlated values in Figure 41 is a group of three design<br />

parameters. (The group that dpp_PF is correlated with is ambiguous, but it will be<br />

assumed that it is correlated to dp_RAHSF and dpp_RF for this discussion.) When more<br />

than two design parameters are grouped together in this way, determining which<br />

parameters to freeze can be tricky.<br />

74


(a)<br />

(b)<br />

(c)<br />

Figure 42 - Conceptual representation of correlated parameters<br />

In the case of two design parameters correlated to each other, their relation to<br />

each other is as shown in Figure 42a. While this exact configuration would never be seen<br />

in a block diagram, it represents the relationship between two correlated parameters that<br />

may exist in a similar or equivalent form in the block diagram. When three design<br />

parameters are correlated, they might be represented by either Figure 42b or Figure 42c.<br />

In the case of Figure 42b, all three cases are correlated to each other. To resolve this<br />

problem, the user would have to freeze two of the three parameters.<br />

In the case of the correlated parameters of Figure 42c, rather than the three<br />

parameters all being correlated to each other, two of the parameters are correlated to the<br />

third. Thus, freezing parameter 7 would resolve the correlations. However, freezing<br />

75


parameter 8 would not resolve the correlation between parameter 7 and 9. The same<br />

could be said for freezing parameter 9, having no effect on the correlation between<br />

parameters 7 and 8. Thus, some experimentation would need to be done to determine the<br />

actual relationship of the design parameters.<br />

If four or more parameters are correlated, then it could quite possibly be that all<br />

four design parameters are correlated, or it could be two pairs of correlated parameters<br />

that just happen to have similar Cramer Rao percentages. Thus, to resolve the correlation<br />

of three or more parameters, the user would refer to the block diagram to possibly gain<br />

insight on which parameter to freeze. However, with the complexity of most block<br />

diagrams, this might not be feasible. Thus, trial and error would be the next best step.<br />

The user would freeze a parameter, recalculate the gradient and Cramer Rao bounds, and<br />

repeat the process until all parameter correlations are resolved. Ideally, each parameter<br />

of a group should be frozen individually to see if the parameters are related as in Figure<br />

42c. By freezing only the critical parameters, more design parameters are still available<br />

to COMATLAB, providing it with the greatest amount of flexibility so that the<br />

optimization may be able to progress further than if additional parameters were frozen.<br />

Once the insensitive and correlated parameters are frozen, the user would then<br />

restart the optimization. The optimization would hopefully then continue further. This<br />

process of running sensitivity analyses and optimizations would continue until<br />

satisfactory results have been reached, the sensitivity analysis can’t find any parameters<br />

to freeze, or all design parameters have been frozen.<br />

76


2.5.2 Sensitivity Automation Development<br />

The development of the Sensitivity Automation was done in such a way as to<br />

replicate the actions a user might typically make. In doing so, it was discovered that a<br />

simple set of rules could produce accurate results.<br />

When the optimization of a case stops, and COMATLAB returns an exit message,<br />

the <strong>Batch</strong> <strong>Mode</strong> run code will then determine whether a sensitivity analysis should be<br />

run. It bases its decision on the logic of Table 1, which takes into account the exit code<br />

and the ending phase.<br />

Table 1 – Sensitivity Automation Run Logic<br />

Phase \ Code 1 2 3 4 5 6 7 8<br />

1 Yes Yes Yes Yes No No Yes No<br />

2 Yes Yes Yes Yes No No Yes No<br />

3 Yes Yes Yes Yes No No Yes No<br />

Code<br />

Exit Codes<br />

Exit Message<br />

1 A proper search direction cannot be found.<br />

2 A feasible point is not found to satisfy all hard constraints.<br />

3 Further decrease of the most active specifications cannot be achieved.<br />

4 A local minimum has been obtained.<br />

5 The optimization has reached Phase 2 or better.<br />

6 The optimization has reached Phase 3.<br />

7 The design parameters haven’t varied in the last 3 iterations.<br />

8 (A number of) Iterations Completed.<br />

77


The logic of the table above is simple to understand. The only three exit codes<br />

that do not result in a sensitivity automation are the stop conditions based on reaching a<br />

phase or number of iterations. Because the user specified the optimization to stop when<br />

one of these conditions occurs, there is no reason to continue the optimization. All other<br />

exit conditions specify optimizations that should continue as far as possible. Thus, the<br />

sensitivity automation is run in an attempt to continue further.<br />

Once the sensitivity automation is started, it chooses which specs are to be used in<br />

the analysis based on the current phase. The logic for choosing the specs to use is listed<br />

in the table below.<br />

Phase Hard Soft Objective Summed Objective<br />

1 Yes No No No<br />

2 No Yes No No<br />

3 No No Yes No<br />

Table 2 - Spec selection logic<br />

The logic of the table is based on the active constraints of each phase. Thus, if the<br />

optimization stops in Phase 1, where the Hard constraints are optimized, the hard<br />

constraints are used. Likewise, the soft constraints are used if the optimization stops in<br />

Phase 2. The objective specs are used in Phase 3, and not the summed objective specs.<br />

This is done because frequently, only summed objective specs exist in a problem. Thus,<br />

if a sensitivity analysis were performed on only one spec, the gradient matrix would most<br />

likely be scaled improperly and the results would be invalid.<br />

After the specs have been chosen, the sensitivity automation then picks the design<br />

parameters to be used. When the sensitivity automation is run for the first time, it uses all<br />

78


non-frozen design parameters, the default frozen states of the case. Thereafter, it will<br />

choose specs depending on the conditions of the last sensitivity run. If the last run of the<br />

sensitivity tools was performed in the same phase as the current, then the current nonfrozen<br />

design parameters are used. Thus, continuing in this manner, the design<br />

parameters will be refined until the optimization can move out of the current phase, or the<br />

optimization can no longer continue. When the optimization moves into a new phase,<br />

the run code resets the frozen states of the design parameters to the default values of the<br />

case. Design parameters frozen in previous phases were done so based on constraints<br />

that are no longer critical. Thus, using the default values increases the possible search<br />

directions, allowing the problem to proceed with the greatest chance of success.<br />

The design parameters are first checked for insensitivity. First, the gradient is<br />

calculated using the specs and design parameters. Sensitivity percentages are then<br />

calculated using this gradient. The process of removing insensitive parameters is simple.<br />

Any parameter with an insensitivity over 20% is frozen.<br />

After the insensitive parameters are frozen, the sensitivity automation then<br />

focuses on correlation of parameters. The gradient must be calculated again, so the<br />

insensitive parameters just frozen won’t appear in the Cramer Rao percentages, which are<br />

calculated next. As with the insensitivity check, all parameters with Cramer Rao<br />

percentages over 20% must be investigated. Unlike the check for insensitive parameters,<br />

the correlation check is much more complicated.<br />

When investigating correlated parameters, a person would look for pairs or groups<br />

of parameters with roughly the same Cramer Rao percentages. One parameter would be<br />

frozen from each group, the gradient and Cramer Rao percentages recalculated, and the<br />

79


process would repeat until all Cramer Rao percentages were under 20%. When this<br />

process is automated, several areas of difficulties arise. The greatest difficulty is in the<br />

grouping of the parameters. Even for a person, determining the groups of parameters can<br />

sometimes be an ambiguous task.<br />

Figure 43 - The difficulty of grouping parameters<br />

The difficulty in grouping correlated design parameters is apparent in Figure 43.<br />

It is clear that dpp_RAHAR and dpp_RAHA belong together, as do dpp_RF and<br />

dp_RAHSF. However, it is not apparent which group of specs dpp_PF belongs to. It<br />

might be that it belongs to one of the two groups, or it might also be that all five<br />

parameters are correlated to some degree. Thus, while it can sometimes be difficult for a<br />

person to decide which parameters are grouped together, this difficulty is increased<br />

80


tenfold when a computer, which does not have the adaptive reasoning capability of a<br />

person, is required to do the same.<br />

Three possible approaches to the problem were considered. The first, called the<br />

“grouping method”, would take the approach a person might take, attempting to group<br />

design parameters together based on their relative values. <strong>For</strong> parameters to be grouped<br />

together, their values must match within a specified tolerance. The ambiguous parameter<br />

of Figure 43 is the first type of problem for the sensitivity automation. In the case of the<br />

example of Figure 43, the ambiguous parameter would be assigned to each group,<br />

attempting to reduce the Cramer Rao percentages of each trial group on a trial by error<br />

basis. By freezing the parameters of the group other than the ambiguous parameter first,<br />

if that parameter is still present when all other parameters are frozen, it can be concluded<br />

that the ambiguous parameter belonged to the other group.<br />

The second type of problem for the grouping method would be the case of four<br />

parameters of similar magnitudes. The sensitivity automation would again have to split<br />

up the parameters and try different combinations to determine the groupings.<br />

In either case, there is no way to account for groups of more than two design<br />

parameters without a large increase in required computations. Each possible test group<br />

above requires a gradient calculation, which is equivalent in complexity to a Pcomb<br />

calculation. Thus, while these ambiguities can be accounted for to some degree, the<br />

added computational requirements are far too great.<br />

The second approach considered, referred to as the “trial and error” method, is<br />

similar to the strategy of early chess programs, in which the computer would look ahead a<br />

number of moves, considering all possible move combinations of both the computer and<br />

81


opponent. The computer would then rank the results of each combination and choose the<br />

move that promises the best possible outcome. In the case of resolving correlated<br />

parameters, each parameter would be frozen one at a time. The gradient and Cramer Rao<br />

percentages would be recalculated and the results from this freezing would then be<br />

evaluated in the same manner. This process would repeat for every combination of<br />

freezing of design parameters. The end results would then be examined, and the<br />

combination with the highest number of non-frozen design parameters would be used.<br />

While this method would guarantee that the Cramer Rao percentages were reduced below<br />

20%, freezing the least number of design parameters, the computational requirements for<br />

all the possible combinations make this method unfeasible. It might be possible to<br />

improve this method, but the number of gradient calculations would still be large.<br />

The method that was eventually used was much simpler than the two other<br />

methods, both in the computational requirements and its abilities. It involves freezing the<br />

parameter with the highest Cramer Rao percentage, reevaluating the gradient and Cramer<br />

Rao percentages, and repeating the process. While this method appears at first to be too<br />

simple, it is surprising how effective it can be. This can best be demonstrated through an<br />

example.<br />

82


Figure 44 - Example Cramer Rao plot – Initial parameters<br />

In the figure above, there are two groups of correlated design parameters. A<br />

group of two at the bottom of the plot, and three parameters with larger Cramer Rao<br />

percentages on the top of the plot. Upon calculating these values, the algorithm would<br />

freeze the largest value, dpp_RF. After freezing the design parameter and recalculating<br />

the gradient and Cramer Rao percentages, the new values would appear as in Figure 45.<br />

83


Figure 45 - Example Cramer Rao plot - One parameter frozen<br />

After freezing the first parameter, two possible conditions might exist, both of<br />

which are shown in Figure 45. In the first scenario, the freezing of the design parameter<br />

removed the correlation of the three parameters, resulting in the light gray bars<br />

superimposed on the plots of dp_RAHSF and dp_PF. The other possibility is that the two<br />

remaining parameters are still correlated, as shown with the dark blue bars. If that is the<br />

case, then the next highest parameter would be frozen, and the gradients and Cramer Rao<br />

percentages would be recalculated. Whichever event occurs, the ending values would<br />

eventually reach the point where only two parameters are still correlated, as in Figure 46.<br />

Freezing one of the two remaining parameters would result in all parameters being noncorrelated.<br />

84


Figure 46 - Example Cramer Rao plot - Two correlated parameters<br />

The chosen method works regardless of the actual groupings of the correlated<br />

parameters, as demonstrated in the previous example. The number of gradient<br />

calculations required is less than or equal to the best possible case of the other two<br />

methods. Furthermore, the difficulties incurred in the “grouping method” due to groups<br />

of three or more design parameters do not affect this method at all.<br />

The only one possible shortcoming of this method is that when dealing with three<br />

or more correlated parameters, it does not employ the means to freeze the minimum<br />

number of specs. In other words, if the parameters are related as in Figure 42c, and the<br />

critical design parameter is not frozen first, design parameters may be frozen<br />

unnecessarily. While it is possible for this to happen, it is unlikely since correlated<br />

parameters typically come in groups of two. In the rare case that its limitations of this<br />

85


method are exceeded, the result would only be the unnecessary freezing of a minimal<br />

number of extra design parameters. However, this limitation is acceptable when<br />

considering the time savings and reduction of complexity obtained through the use of this<br />

method.<br />

2.5.3 Sensitivity Log<br />

Several times during the optimization of each case, the sensitivity automation is<br />

called to freeze insensitive and correlated parameters. This information is not reported on<br />

the Run <strong>Mode</strong> GUI. If the user wishes to view the actions taken by the sensitivity<br />

automation, he or she can refer to the Sensitivity Automation log file, located in each<br />

case directory. The name of the file is Sensitivity.Log. A sample Sensitivity Log is<br />

shown below in Figure 47.<br />

SENSITIVITY ANALYSIS***************************************************<br />

********<br />

5/8/2000 15:43<br />

Iteration: 2<br />

Phase: 3<br />

Stop Condition: The design parameters haven’t varied in the last 3<br />

iterations.<br />

Specs Used:<br />

RmsAcG1 Lat<br />

CrsLnG1 Lat<br />

Insensitivity Analysis-------------------------------------------------<br />

--------<br />

Design Parameters used:<br />

dp_RAHSF<br />

dpp_RAHA<br />

dpp_RAHAR<br />

dpp_RF<br />

Insensitive Parameters:<br />

dp_PAHSF<br />

dp_RAHSF<br />

dpp_DIRMC<br />

Correlated parameters analysis-----------------------------------------<br />

--------<br />

86


Design Parameters used:<br />

dpp_RAHA<br />

Correlated Parameters:<br />

<br />

Summary of results-----------------------------------------------------<br />

--------<br />

Remaining active design parameters:<br />

dpp_RAHA<br />

Exiting sensitivity analysis. Continuing run of current case.<br />

Figure 47 - Sensitivity Log<br />

In this automated sensitivity analysis, the optimization stopped in Phase 3 when<br />

the design parameters could not be changed in the last 3 iterations. Because the<br />

optimization was in Phase 3, the specs critical to that phase, namely the two Summed<br />

Objective specs, were used. All four design parameters were checked for insensitivity,<br />

and three parameters were frozen. Since only one design parameter remained, a check<br />

for correlated parameters was not performed. The end of the log indicates that one design<br />

parameter remains active, and that the optimization will continue.<br />

Upon completion, the sensitivity automation would exit to the run algorithm,<br />

continuing the optimization of the current case with the same stop condition. The cycle<br />

of running a sensitivity analysis and an optimization would continue until it is determined<br />

that satisfactory results have been obtained, the sensitivity automation has frozen all<br />

design parameters, or the sensitivity analysis was unable to freeze any design parameters.<br />

Run <strong>Mode</strong> would then move on to the next case.<br />

In conclusion, the sensitivity automation performs the same process that would be<br />

performed by a user analyzing a CONDUIT problem. It provides the means of<br />

automatically identifying and freezing insensitive and correlated parameters. By adding<br />

87


this capability to the automated run of each CONDUIT problem, they stand a better<br />

chance of running to completion. This reduces the number of cases which must be<br />

investigated by the user and thus, satisfies the requirement of <strong>Batch</strong> <strong>Mode</strong> to minimize<br />

user intervention.<br />

88


3 Evaluation of the SH-2G Using <strong>Batch</strong> <strong>Mode</strong><br />

Having developed the functionality of <strong>Batch</strong> <strong>Mode</strong>, it was then necessary to<br />

exercise it using a real world example to demonstrate its capabilities. In Setup <strong>Mode</strong>, it<br />

was desired to show the ability of <strong>Batch</strong> <strong>Mode</strong> to create multiple CONDUIT problems,<br />

configuring their properties as needed to reflect the different flight conditions. This<br />

demonstration must also show the capabilities of Run <strong>Mode</strong>; how it can run multiple<br />

optimizations or evaluations of the system without user intervention. Finally, it must<br />

demonstrate the two primary functions of Analysis <strong>Mode</strong>: It must show the ability to<br />

create useful gain schedule plots, and it must be able to demonstrate its use in creating<br />

robustness plots, from which the user could ensure the performance of the system to the<br />

extent of the known error of the model.<br />

The particular problem used for the demonstration was the control system<br />

currently under development for the Kaman SH-2G Seasprite. This system was chosen<br />

based on several reasons. The primary reason was that the aircraft had been modeled at<br />

three flight conditions using CIFER (Comprehensive Identification from FrEquency<br />

Responses), which identifies and models a system based on frequency sweeps from flight<br />

test data. <strong>Mode</strong>ls at hover, 60kts and 100kts were available. The remaining flight<br />

conditions could then be determined through interpolation, making the control system<br />

ideal for gain scheduling. Another reason for using this model is related to the second<br />

capability of Analysis <strong>Mode</strong>, the robustness plots. Since the models were created using<br />

CIFER, the accuracy of each stability derivative is known. Thus, they may be varied to<br />

check the robustness of the system. Finally, the size of the control system architecture is<br />

89


not exorbitantly large, and thus the large number of cases to be optimized would run<br />

quickly.<br />

3.1 Description of the SH-2G<br />

Figure 48 - SH-2G<br />

The SH-2G Seasprite is a multi-purpose maritime helicopter that is currently in<br />

use with the US Navy, the Egyptian Navy, and is soon to be in use by Australia and New<br />

Zealand. It is a conventional helicopter, having a single main rotor and a tail rotor. It<br />

uses a fully articulated rotor head, but rather than using a conventional swashplate, the<br />

SH-2G uses on-blade control, a feature specific to Kaman. On the trailing edge of each<br />

blade, approximately 3/4 from the root of the blade, is located a servoflap, which is used<br />

to control the individual rotor.<br />

90


Figure 49 - SH-2G rotorblade servoflap<br />

By deflecting this flap, a torsional moment is imparted on the blade, twisting it<br />

and causing a change in pitch of the blade. In using this method of control, the<br />

complexity and weight of a conventional rotor head can be removed from the aircraft.<br />

Additionally, servo flap control provides extra stability, lower levels of vibration, and<br />

reduces the control loads such that the helicopter can be flown in the case of a loss of<br />

hydraulics.<br />

3.1.1 SH-2G Control System<br />

The original SH-2G was developed in the 1960’s, and used an analog control<br />

augmentation system. In recent years, Kaman has updated the aircraft with new<br />

electronics, including a digital flight control system. In both variants of the control<br />

system, the control architecture is that of a partial authority system. The pilot’s stick is<br />

91


connected through mechanical linkages directly to the hydraulic actuators. The FCS is<br />

connected in parallel to the mechanical system, reading information from the stick and<br />

feedback sensors, and passing commands to its own set of actuators. The output from the<br />

pilot’s actuators and those of the FCS are then mechanically mixed, as represented by<br />

Figure 50. The mixing is such that for the lateral channel, the pilot has 75% authority<br />

and the FCS has 25%.<br />

δ PILOT<br />

δ FCS<br />

Pilot Input<br />

Hydraulic Boost<br />

To Rotor<br />

FCS Input<br />

FCS<br />

Actutator<br />

Figure 50 - Mechanical mixer representation<br />

A partial authority control system is a hybrid system. The digital flight control<br />

system design is that of an attitude system, while the pilot input to the hydraulic boost<br />

responds as a rate system. Thus, the combined system responds like a rate command<br />

system initially, with the long-term behavior of an attitude command system.<br />

92


Figure 51 - SH-2G block diagram<br />

Figure 51 shows the top-level block diagram of the SH-2G. Pilot stick commands<br />

are input to the system on the upper left section of the block diagram. They pass through<br />

the Control System block, which represents both the mechanical system and the flight<br />

augmentation system. The commands are then input to the aircraft plant, the responses of<br />

which are both output from the system and fed back through the FCS. The raw feedback<br />

information passes through a Sensors block, which simulates the sensors on the actual<br />

aircraft, and back to the Control System block. Thus is the basis of the simulation.<br />

93


Figure 52 - Control System block<br />

The control system itself is displayed in Figure 52. This block demonstrates the<br />

nature of the partial authority system. Following the mechanical control system, the pilot<br />

inputs are first passed through the mechanical linkages of the Lower Link blocks. They<br />

then pass through the Boost Actuators and to the Upper Links block, where they are<br />

summed with the commands of the augmentation system.<br />

The augmentation system starts with the pilot and sensor inputs, which are passed<br />

to the Simplified ASE (Automatic Stabilization Equipment) block. This block contains<br />

the control laws of the augmentation system for each axis, shown in Figure 53.<br />

94


Figure 53 - Simplified ASE block<br />

The outputs are then passed to the ASE Servos and then to the Upper Links block,<br />

which mixes the outputs of the mechanical and augmented control systems, to be output<br />

to the Aircraft Plant.<br />

It was stated earlier that one of the primary reasons for choosing the SH-2G<br />

control system is that the block diagram is simple enough so that simulation times are<br />

short. Since more than 10 cases were to be optimized, and even more are to be evaluated,<br />

a decision was made to investigate only one axis. Not only would this reduce the<br />

simulation times greatly (to approximately 1 hour per optimization), but it would also<br />

simplify the analysis.<br />

Within the ASE are the control blocks of each axis. The block corresponding to<br />

the lateral channel is shown below.<br />

95


Figure 54 - Roll - Attitude Hold block<br />

The lateral axis controller is an attitude control system with proportional and rate<br />

feedback. The only four design parameters of the lateral channel are located within this<br />

block. Two gains are used as rate and attitude feedback gains: dpp_RAHA and<br />

dpp_RAHAR. The other two design parameters are a stick force gain, and a stick filter:<br />

dp_RAHSF and dpp_RF.<br />

3.1.2 Required Modifications to the Block Diagram<br />

Several modifications were needed to streamline the block diagram for the<br />

purposes of this project. First, all non-essential input and output connectors were<br />

replaced by terminating blocks. By doing so, a Simulink simulation will take less time to<br />

run. This modification made a noticeable difference in run times.<br />

96


CONDUIT Attitude Latch<br />

Removed<br />

Blocks<br />

Figure 55 - Removed Simulink blocks<br />

The second modification was the removal of components from the altitude and<br />

heading hold blocks. These blocks were originally set up so that the block diagram<br />

would automatically turn heading and altitude holds on and off in the same way as on the<br />

actual aircraft. When flying the actual helicopter with the holds on, if the pilot moves the<br />

collective or rudder pedals, the altitude or heading holds will be turned off, respectively.<br />

Removing the inputs will turn the holds back on. This attention to detail was unnecessary<br />

for the intended use, and thus, most of it was removed. All that remains of these blocks<br />

are the means to turn the holds on and off.<br />

3.2 Baseline Optimization<br />

Using the block diagram detailed in the previous section, a baseline CONDUIT<br />

case was created as a template for all <strong>Batch</strong> <strong>Mode</strong> cases to follow. Three identified flight<br />

models were available from CIFER, hover, 60kts and 100kts. The flight condition<br />

97


chosen for the template was that of the hover case, primarily because it has been used in<br />

several previous analyses and is known to be well behaved. The Init file developed by<br />

Chad Frost for his work with the SH-2F was used. With this Init file, the airspeed is<br />

defined, and the state space matrices of the three identified models are interpolated for<br />

the current velocity. Thus, models can be created for any velocity up to 100kts. The Init<br />

file was set for 0kts.<br />

The design parameters used for the template case were those developed by Kaman<br />

in the actual flight testing of the SH-2G. All design parameters except for the four lateral<br />

gains were frozen from the start of the optimization.<br />

The specs were carefully chosen so that they applied to this class of aircraft. The<br />

list of specs is as follows:<br />

Figure 56 - Initial spec selection<br />

Starting with the upper left corner, the Eigenvalues (EigLcG1) and Stability<br />

Margins (StbMgG1) specs were chosen to ensure stability of the aircraft. Thus, they<br />

were set as hard constraints. The next spec, the Bandwidth spec (BnRoF2) was taken<br />

from the set of ADS-33D specs, and is set as a soft constraint, since it is a performance<br />

98


spec. The next spec is the Gust Rejection spec (HldNmH1) which was used to ensure<br />

that the system had some level of capability to account for disturbances. On the next row<br />

are the Actuator RMS spec (RmsAcG1) and the Crossover Frequency spec (CrsLnG1).<br />

Both of these two specs serve to reduce the energy and computational requirements of the<br />

control system after the performance and stability specs have been met. Thus, these<br />

specs were designated as summed objective specs. They might have worked just as well<br />

as objective specs, but tying them together with the summed objective reduces the<br />

chances of the optimization routine getting stuck. All specs were connected to the lateral<br />

channel of the block diagram.<br />

Figure 57 - Evaluation of initial gains<br />

Using the original set of gains, the system was evaluated, resulting in Figure 57.<br />

All specs were in Level 1 except for the Bandwidth spec which, was Level 2. The<br />

optimization was started using the dp=0 stop condition. The problem ran for 41<br />

iterations, stopping with the message: “The design parameters haven’t varied in the last 3<br />

iterations.” The results of the optimization were as shown in Figure 58.<br />

99


Figure 58 – Initial Optimized baseline<br />

The results showed that the problem was not properly constrained by the selected<br />

specs. After the optimization had pushed all specs into Level 1, it then started working<br />

on reducing the Actuator RMS and Crossover specs. This reduction was achieved by<br />

relaxing the damping ratio of the system, as can be seen in the time response of the<br />

Normalized Attitude Hold spec. The only spec which accounted for the damping to any<br />

extent, was the Normalized Attitude Hold spec, and it only ensured that the response was<br />

less than 10% of the original peak value after 10 seconds. As demonstrated in the figure,<br />

this limited constraint was not sufficient to ensure reasonable damping. The response<br />

still oscillated quite a bit, just clearing the corner at 10 seconds. Thus, a damping spec<br />

was added to the problem, and it was re-optimized. After 21 iterations, including a<br />

sensitivity analysis, the optimization could continue no further. The results are displayed<br />

below in Figure 59.<br />

100


Figure 59 – Optimized baseline with final spec selection<br />

The damping spec ensured that the damping ratio would not fall below a value of<br />

0.35. The results of this can be seen in the time response of the Normalized Attitude<br />

Hold spec in the figure above, in that the response became reasonably damped. Thus,<br />

with the addition of this spec, the problem became properly constrained at this flight<br />

condition.<br />

One final problem was encountered with the constraints of the problem, but it was<br />

only discovered after a batch problem was created and run. The details of creating and<br />

running a batch problem will be left to the next section however, the problem will be<br />

discussed here as it pertained to the configuration of the baseline case. It was found that<br />

at velocities from 50kts to 80kts, the optimization reduced the crossover to the point that<br />

the system became open-loop. This resulted in poor gain schedule plots, as many of the<br />

gains were pushed to zero.<br />

The reason behind this was in the configuration of the Normalized Attitude Hold<br />

spec, in that it did not constrain the crossover frequency properly. With this spec, the<br />

time response is normalized to the maximum roll angle of the signal. Because there is no<br />

101


integrator in the lateral controller, the long-term response of these normalized signals<br />

behave similarly, regardless of the input signal. Thus, when normalized, a signal having<br />

a maximum angular response of 20°, corresponding to a system with a crossover of<br />

.001 rad/s (essentially open loop), has a similar time response to a signal with a<br />

maximum angular response of 2° and a crossover of 1rad/s. Therefore, the spec<br />

configuration had to be modified to better constrain the crossover of the system.<br />

The spec was modified so that it used the actual response of the system. In doing<br />

so, the spec ensures adequate damping of the system, and thus, a finite crossover. The<br />

values of the Level 1 envelope had a direct effect on the crossover of the system, the<br />

degree of which varied between the different flight conditions. To determine the limits of<br />

the envelope, the angular position and rate feedback gains were adjusted to produce a<br />

spectrum of responses for various crossover frequencies, at hover, 60kts, and 100kts. An<br />

input signal of sufficient magnitude was used such that saturation did not occur. It was<br />

found that to ensure a crossover in the range of .8rad/s < ω C < 3rad/s, the envelope had to<br />

limit the disturbance to within approximately 5.5°. The spec was modified to remove the<br />

normalization of the signal. Instead, the response was scaled so that a value of 5.5°<br />

corresponded to the 1° Level 1 boundaries from 0-10 seconds. Once again, the <strong>Batch</strong><br />

Problem was created and run. After viewing the results, it was found that these<br />

boundaries had to be reduced to 5° since the crossover frequencies of the optimized cases<br />

were much lower than those of the aforementioned test cases. The spec was modified<br />

once again, this time changing the actual boundaries of the spec. (since this new value<br />

was found to give reasonable results in all cases) The resulting spec is shown in the<br />

optimized baseline results of Figure 60.<br />

102


Figure 60 – Optimized baseline with final spec selection and configuration<br />

Using this final set of specs, the problem was optimized at the three flight<br />

conditions, and was found to properly constrain the crossover frequency. The optimized<br />

hover case was then used as the baseline problem to create the multiple cases for the gain<br />

schedule.<br />

3.3 Gain Scheduling of the SH-2G<br />

<strong>Batch</strong> <strong>Mode</strong> provides the user with the ability to quickly produce gain schedules<br />

for aircraft. This capability will be demonstrated in three sections. First, it will be shown<br />

how <strong>Batch</strong> <strong>Mode</strong> can easily setup and create multiple cases. Second, the optimization of<br />

the multiple cases will be shown. Finally, the capability to create gain schedule plots will<br />

be demonstrated, the cases ranging in velocity from hover to 100kts.<br />

3.3.1 Setup of Problem<br />

The setup of the batch problem started with the optimized baseline case. The end<br />

design parameters were saved as the default for the case, their frozen states set such that<br />

103


only the four lateral gains were active. Thus, each case to be created in the batch<br />

problem will start with these values. A new directory was created for the batch problem,<br />

and the baseline case was copied to that directory. <strong>Batch</strong> <strong>Mode</strong> was started, selecting the<br />

baseline problem in the new directory. The <strong>Batch</strong> <strong>Mode</strong> GUI appeared as shown below.<br />

The single case shown is the baseline problem, with the default values set.<br />

Figure 61 - Initial <strong>Batch</strong> <strong>Mode</strong> GUI<br />

This baseline case was then modified to become the first case of the gain<br />

schedule, the hover case. First, the Family name was changed to “Vel. Sched” (Velocity<br />

Schedule) for later reference. Also for reference, the name of the case was changed from<br />

the default of “sh2glat1” to “Hover”.<br />

104


In the General Window, the first parameter to modify was the Init String cell. As<br />

explained previously, any text in the Init String cell is copied directly onto the first line of<br />

the Init file, replacing all “#” symbols in the string with the case number. To distinguish<br />

each case of the gain schedule, the velocity was defined using this cell. The Init file uses<br />

the variable “airspeed” as the airspeed in knots. Thus, the text “airspeed=0;” was added<br />

to the Init String cell. Because this value was originally declared later in the Init file, it<br />

would be re-declared to the value of the template Init file. Thus, the declaration of the<br />

template Init file was rewritten such that the variable would only be set if it had not been<br />

previously declared. As such, the original Init file could still be used with a normal<br />

CONDUIT problem, as well as with <strong>Batch</strong> <strong>Mode</strong>.<br />

The default value of the Block Diagram File cell was already set properly and<br />

needed no modifications. The Run Case column, which defines which cases are to be<br />

optimized in Run mode, was set to “Yes”. The Stop At Phase column was left with the<br />

default value of zero, setting <strong>Batch</strong> <strong>Mode</strong> to stop when the design parameters no longer<br />

can be changed. Since the Stop At Phase column was selected, the Number of Iterations<br />

to Run cell was left inactive. Finally, the Design Margin cell was left with the default<br />

value of 1.<br />

It was then necessary to set the Gain Schedule Parameters Window, so that gain<br />

schedule plots could be plot against velocity, omitting irrelevant cases to follow in later<br />

sections. Using the Add/Edit/Remove Parameter GUI, a new column labeled “Velocity”<br />

was created. A value of zero was put in the blank cell.<br />

After all the parameters of the hover case were set, it was time to create the other<br />

remaining cases of the gain schedule. Using the Insert New Cases function of the Setup<br />

105


GUI, ten more cases were added using the hover case as a template. <strong>For</strong> the remaining<br />

cases, it was simply a matter of altering the names, Init String, and Velocity columns.<br />

The final Setup GUI appeared as in Figure 62.<br />

Figure 62 - Final Setup GUI of the Gain Scheduling cases<br />

The <strong>Batch</strong> Problem was then created using the Create <strong>Batch</strong> Problem function of<br />

the Setup GUI. Problem directories were created and all required files were copied,<br />

resulting in eleven individual CONDUIT problems.<br />

3.3.2 Running of the Gain Schedule <strong>Batch</strong> Problem<br />

<strong>Batch</strong> <strong>Mode</strong> was switched into Run <strong>Mode</strong>, and the cases were ordered using the<br />

Order Automatically feature. The Run Status button was then pressed so that the batch<br />

106


optimization could be monitored, and the optimization was started. <strong>Batch</strong> <strong>Mode</strong> then<br />

progressed through the list of cases, optimizing each one.<br />

Figure 63 – Initial Run <strong>Mode</strong> optimization<br />

The results of the batch run can be seen on the Run <strong>Mode</strong> GUI in Figure 63. All<br />

cases ended in Phase 3, due to the dp=0 condition. As such, all cells of the Phase column<br />

were colored green. The Optimization Result Message column also indicated successful<br />

optimizations.<br />

3.3.3 Gain Schedule Results<br />

After all the cases had been run, <strong>Batch</strong> <strong>Mode</strong> was switched to Analysis <strong>Mode</strong> to<br />

view the results. Typically, the user would view the results of the HQ Window, flipping<br />

quickly between cases, to ensure each case ran properly. <strong>For</strong> the sake of being concise,<br />

107


the Plot Multiple feature of the Analysis HQ Window was used to create a plot,<br />

overlaying the results of all the cases, shown in Figure 64. Viewing the results in this<br />

way, the entire range of velocities can be viewed simultaneously to find any Level 2 or 3<br />

results.<br />

Figure 64 – HQ Window overlaid results<br />

Looking at the plot of Figure 64, it is clear that all specs fell within the Level 1<br />

region. Since the results of the HQ Window turned out well, the gain schedule was<br />

created.<br />

108


Figure 65 - Gain Schedule plots against velocity<br />

The results of the initial gain schedule plot left much to be desired. At first<br />

glance, it appears to be anything but ordered, however a few patterns were discovered<br />

that led to the cause of the poor results. From the sensitivity logs of the individual cases,<br />

it was learned that the attitude and rate feedback gains, dpp_RAHA and dpp_RAHAR<br />

were the most active design parameters. It was then curious why these two parameters<br />

wouldn’t have smooth gain schedules. However, the schedules from 0-50kts and 60-<br />

90kts seem to follow either increasing or decreasing patterns. Between 50kts and 60kts,<br />

the design parameters of both cases change drastically. Since 60kts was one of the three<br />

identified points used in the interpolation, it was theorized that the linear interpolation<br />

109


method was causing problems. Thus the interpolation was changed to use a cubic<br />

interpolation.<br />

While the interpolation method might have been a possible cause of the jump in<br />

values at 50-60kts, it could not explain the large inconsistencies at 100kts. In no case<br />

were the design parameters consistent with the trends leading up to that velocity. Thus,<br />

some other problem was responsible. It was noticed that the time response to disturbance<br />

input on the attitude hold spec was close to a first order decaying signal from velocities in<br />

the range of 50-80kts. At 90kts, a small amount of overshoot appeared, and at 100kts, the<br />

signal had a significant amount of overshoot, and an oscillating response.<br />

The minimum damping ratio of .35, enforced by the damping spec, was enough to<br />

constrain the system such that the cases did not wildly oscillate, however it did not<br />

produce consistent results. In the mid-range velocities, the system had a higher damping<br />

ratio than at lower and higher speeds, for a given set of gains. Thus, the mid-range cases<br />

did not have to work as hard to meet Level 1 ratings.<br />

The broken-loop crossover frequency of the system showed that the attitude hold<br />

spec was not stringent enough to constrain the problem. The remaining cases were<br />

checked, and it was discovered that the crossover varied from .4rad/s to 2rad/s. At this<br />

range, the system was not properly constrained equally over the range of cases. Thus, to<br />

even out the constraint requirements, the borders of the attitude hold spec were reduced<br />

even further from 5.5° to 5°. The spec was also modified such that the axes were to<br />

scale, so that the time response did not need to be scaled.<br />

The batch problem was run once again. However, it was noticed early in the<br />

optimization that some of the cases could not progress to a solution. Closer investigation<br />

110


evealed that the damping spec was taking points off of the plot improperly. This is<br />

illustrated by the support plot shown below.<br />

Figure 66 – A problem with the damping spec<br />

The damping ratio spec looks for local maximum and minimums and assumes<br />

they define the envelope of decay. When a high frequency oscillation is superimposed on<br />

a dominant lower frequency, the points picked for the damping ratio calculation are no<br />

longer valid. In the case of the response of Figure 66, the invalid point resulted in a<br />

period that was less than half of the actual value. The resulting point plotted on the spec<br />

was on the imaginary axis, at a value of approximately 8rad/s.<br />

Since this high frequency oscillation always occurred immediately after the initial<br />

peak, a restriction was put on the selection of the points such that the period had to be<br />

larger than 4 seconds, or the point would not be used. This time gave a sufficient buffer<br />

to ensure that no invalid points were used. After the modification was made, the spec<br />

was able to return accurate results.<br />

Once again, the batch problem was run, but this time with more success. A<br />

second gain schedule was created for the new results, shown in Figure 67.<br />

111


Figure 67 - Corrected gain schedule<br />

This gain schedule shows a large improvement over the original plot. <strong>For</strong> the<br />

most part, all four design parameter schedules are mostly smooth, and all four can be<br />

seen to follow an identifiable path.<br />

112


3.4 Robustness Evaluation of the SH-2G<br />

The second feature of Analysis <strong>Mode</strong> to be demonstrated is the capability of<br />

<strong>Batch</strong> <strong>Mode</strong> to evaluate the robustness of a system. In doing so, it will be demonstrated<br />

that <strong>Batch</strong> <strong>Mode</strong> has the ability to set up multiple cases for evaluation. Using these<br />

evaluated cases, it will also be shown how thumbprint plots are created, from which the<br />

user can ensure the performance of the system to the extent of the known error of the<br />

model.<br />

3.4.1 Parameters to Vary<br />

In the creation of a robustness plot, a large number of cases are created to be plot<br />

simultaneously. The stability margins are varied to their known accuracy in each case to<br />

observe the effects of the parameter changing on the level ratings of the specs. Thus, the<br />

creation of the individual cases started with the identified CIFER data used to build the<br />

models. This information can be found in the Appendix. This table lists the stability<br />

margins, their values, their Cramer Rao percentages, and their insensitivities; all of which<br />

were calculated in the model identification. Parameters for the state space matrices F and<br />

G, the system and input matrices, were available along with the time delays. Finally, the<br />

rotor flap time constant (τ F ) was defined, which is used in the calculation of the control<br />

derivatives. Thus, knowing these values and their accuracies (given by the Cramer Rao<br />

Percent), the model could be varied to test for system robustness.<br />

The second consideration in the variation of the stability margins was determining<br />

the combination of parameters to be varied for the individual cases. The parameters to<br />

vary were split into four categories: control derivatives, time delays, rotor flap time<br />

113


constant, and the remaining stability derivatives. <strong>Of</strong> these categories, the control<br />

derivatives and time delays were the most critical. Since the rotor flap time constant was<br />

used in the calculation of the control derivatives, it was also considered important. Thus,<br />

these critical parameters were varied by adding and subtracting their 3σ deviations. All<br />

combinations of deviation were created as per the logic of Table 3, resulting in 20 cases.<br />

Table 3 - Variations of derivatives<br />

Case Parameter Sign (Parameter) Sign ( F )<br />

12 LFRS + +<br />

13 LFRS + -<br />

14 LFRS - +<br />

15 LFRS - -<br />

16 LFRC + +<br />

17 LFRC + -<br />

18 LFRC - +<br />

19 LFRC - -<br />

20 MFRS + +<br />

21 MFRS + -<br />

22 MFRS - +<br />

23 MFRS - -<br />

24 MFRC + +<br />

25 MFRC + -<br />

26 MFRC - +<br />

27 MFRC - -<br />

Case Parameter Sign (Parameter)<br />

28 RF (Time Delay) +<br />

29 RF (Time Delay) -<br />

30 L0 (Time Delay) +<br />

31 L0 (Time Delay) -<br />

114


An actual check for robustness would vary the parameters in such a way as to<br />

explore all possible combinations of all variables. Thus, in addition to the individual<br />

variation of parameters of the critical cases, it was necessary to modify the remaining<br />

design parameters as well. Since the goal is to demonstrate the capability to check for<br />

robustness, and not in fact to guarantee the robustness in all possible situations, only 21<br />

additional cases were created. In each case, all stability margins were varied to their<br />

known accuracies, with a random direction of variation.<br />

3.4.2 Modification of the Original <strong>Mode</strong>l<br />

To incorporate the different conditions of the large number of cases, the capability<br />

had to be created to modify the problem, as described above. Thus, a function was<br />

written to be incorporated into the Init file. The function is called using the following<br />

form:<br />

Robust(CaseNumber,Random,Sign,TfSign)<br />

• CaseNumber – The <strong>Batch</strong> <strong>Mode</strong> case number.<br />

• Random – A flag used to set whether the direction of variation is random or not.<br />

• Sign – The direction of the variation of a parameter. Also used to scale the error<br />

percentage.<br />

• TfSign – Same as Sign, but for the rotor flap time consant.<br />

Thus, while some of the settings were passed to the function, other settings were<br />

hard-wired in the function. This was done for two reasons. First, the stability derivatives<br />

to modify were hard-wired in the function and organized by case number, simply because<br />

there were too many parameters to pass to the function. Second, by passing some of the<br />

115


simpler parameters, it provided greater flexibility and the differences between cases could<br />

be observed in <strong>Batch</strong> <strong>Mode</strong>.<br />

The function would start by loading the original model. It would then determine<br />

which stability margins to vary, based on the case number. Each parameter would then<br />

be varied using the variation directions and scaling factors passed to the function. The<br />

new model would be saved under a new name, and the original interpolation code was<br />

modified to load this new model if it existed.<br />

3.4.3 Creation of the Robustness Cases<br />

The method of creating the cases to be evaluated is very similar to the methods of<br />

the gain schedule. Thus, only the differences in procedure will be discussed in detail.<br />

First, the same batch problem was opened so that additional cases could be added for the<br />

robustness check. To properly organize the cases, a new family was created and renamed<br />

to “Robustness”. Twenty cases were created using the hover case as a template, to be<br />

used for the robustness check of the critical parameters. The names of each case were<br />

used to indicate the different control derivatives or time delays. The Init String column<br />

of the General Window was changed. Since the Init file defaults to 0kts airspeed when a<br />

value is not passed through <strong>Batch</strong> <strong>Mode</strong>, it was removed from that column for clarity. In<br />

its place, the call to the Robust function was placed using the proper settings for each<br />

case. Finally, the Number of Iterations to Run cell was activated and set to zero in all<br />

cases, in order that <strong>Batch</strong> <strong>Mode</strong> only evaluate the initial Pcomb for each case.<br />

A second family was created for the random cases used in the robustness check,<br />

and 21 additional cases were created. These cases were configured in the same way as<br />

critical parameters, but the random flag was set. The corresponding case numbers were<br />

116


set in the Robust function to vary all parameters for each case. The results of the<br />

robustness setup can be seen in Figure 68.<br />

Prior to entering Run <strong>Mode</strong>, the Run column of the General Window was enabled<br />

in the two new families, and disabled in the original velocity schedule case. The cases<br />

were then created using the Create <strong>Batch</strong> Problem option of the File menu.<br />

Figure 68 - Robustness check setup<br />

3.4.4 Running the Robustness Check Cases<br />

Once the cases have been created, <strong>Batch</strong> <strong>Mode</strong> was switched into Run <strong>Mode</strong>. The<br />

cases were set using the Order Automatically feature. Since the cases progress quickly<br />

during an evaluation of cases, the Run Status window was not necessary. The evaluation<br />

117


was then started by pressing the Run button. It progressed in much the same way as the<br />

velocity schedule cases, only much faster.<br />

3.4.5 Results of the Robustness Check<br />

Figure 69 - Robustness of critical stability margins<br />

Switching to Analysis <strong>Mode</strong>, a multiple HQ Window plot was created overlaying<br />

the critical cases, the time delays and control derivatives. The plot shows a scatter of<br />

points in most of the point specs, and small deviations in the attitude hold line spec.<br />

Thus, the value of such a feature is apparent. By overlaying the points at the extremities<br />

of their accuracy, the user can quickly determine whether the system has a chance of<br />

deviating from Level 1 due to inaccuracies of the model, by observing the region or<br />

“thumbprint” of points. In the case of the evaluation of Figure 69, all of the specs lie a<br />

118


comfortable distance within the Level 1 region, except for the Bandwidth spec. In the<br />

case of that spec, the points move right up against the Level 1/2 border, but are still<br />

shown to be Level 1. A plot was then made for the 21 random cases, shown below.<br />

Figure 70 - Robustness plot of all stability margins<br />

When the critical stability margins robustness plot is compared to the random<br />

plot, the term “critical” might not seem appropriate, but it must be remembered that the<br />

random case is varying all of the critical stability margins simultaneously. When more<br />

than one stability margin is allowed to change at once, the results vary to a larger extent.<br />

The results of Figure 70 were circled in the three specs with the greatest variation in the<br />

plots, to indicate the possible region of variation for the points, or thumbprint. In the case<br />

of the Stability Margins spec, the variation was much larger than in the single variations<br />

119


of the critical parameters, however all points lie within the Level 1 region. Since only the<br />

edge of the plot comes close to the Level 1/2 border, it is probably safe to say that the<br />

points will most likely be Level 1 for this spec. The plot of Figure 71 shows the plot of<br />

the open loop bode response of all the random cases, which was used to calculate the<br />

stability margins. The plots define a region in which the bode response could be<br />

expected to fall, for any given variation, which could be taken into account in the design<br />

of the system to ensure robustness. It also shows the large variance in crossover from<br />

1.5rad/s to 3rad/s, resulting in the spread of points on the Stability Margins spec.<br />

Figure 71 - Open-loop bode response of random cases<br />

The Bandwidth spec is a different situation than the stability margins. The locus<br />

of the points lies just next to the Level 1/2 border. Thus for many variations, the spec<br />

120


will be degraded to Level 2. This movement to just within the Level 2 border may or<br />

may not be acceptable, depending on the spec. If the intrusion occurred on a stability<br />

spec such as the Eigenvalues or Stability Margins spec, then a slight degradation such as<br />

this might cause instability. However, for the case of an ADS-33D spec such as the<br />

Bandwidth spec, the slight degradation into Level 2 might be acceptable. This is because<br />

the spec itself was created based on statistical results of pilot opinion, and are not<br />

necessarily absolute. Secondly, the Level 2 ratings might only occur with specific<br />

variations in the system that rarely occur. However, if the designer felt that some design<br />

margin was necessary, then the design margin of the template case could be changed, the<br />

problem re-optimized, the robustness check cases recreated, and the case re-run. By<br />

using the results of the robustness plots, the user could redefine the design margin to the<br />

minimum value required to meet Level 1 in all possible variations.<br />

The damping ratio spec had the largest spread of points of all the specs. The<br />

reason for such a large spread is that the damping ratio spec is a time point spec. Time<br />

point specs rely on the algorithm to pick data off of a time response. The difficulties in<br />

doing so are numerous, primarily because the time response can vary in form to such a<br />

great extent. In particular, the damping ratio spec requires the maximum and minimum<br />

peaks of the signal as it decays to calculate the damping ratio based on the equations for a<br />

second order system. When this method is applied to a higher order system, problems<br />

can occur. Higher frequency oscillations make it difficult for the algorithm to identify<br />

the dominant frequency. Additionally, the value calculated for a well behaved 23 rd order<br />

system (for example) might oscillate as a second order response would, however when<br />

the points are taken and the damping calculated, it might not appear to be accurate,<br />

121


simply because the system is not a second order system. Finally, if the system is<br />

overdamped, no peaks can be found to make a calculation, thus an arbitrary value of –1 is<br />

assigned, shown as the arrow on the real axis. Thus, because of the problems with this<br />

spec in determining the damping ratio, and that the results will jump in their value when<br />

overdamped (and remain at that value regardless of the actual overdamped value), the<br />

damping ratio spec is a weakly driving spec in an optimization.<br />

Therefore, the robustness plots can also be used to identify specs which only<br />

weakly drive the optimization. After discovering a weak spec, it could then be replaced<br />

with a stronger spec. In this case, however, there was no alternative.<br />

The remainder of the specs vary to some degree, but they do not come close to<br />

violating the Level 1 ratings. The Eigenvalues spec does not change at all, as the<br />

variation in parameters does not cause instability.<br />

3.4.6 Conclusions of the Robustness Plot Capability<br />

Several things have been shown in the demonstration of the Robustness capability<br />

of Analysis <strong>Mode</strong>. First, it showed how the system could be checked for robustness.<br />

Second, it showed how the violations of the Level 1 region could be used in the redesign<br />

of the problem, using the minimum increase in design margin. Finally, it was shown that<br />

the robustness plots could be used to find weak optimization specs.<br />

122


4 Future Work<br />

Due to the uncompromising attitude taken in the early design conception with<br />

respect to the inclusion of features, many features remain to be implemented.<br />

Additionally, a project such as this one leaves many possibilities for future<br />

improvements, as well.<br />

4.1 Setup <strong>Mode</strong><br />

Only the basic functionality of Setup <strong>Mode</strong> was developed for the first version of<br />

<strong>Batch</strong> <strong>Mode</strong>. Three additional windows remain to be developed, the Design Parameters<br />

Window, the Spec Options Window, and the User Defined Window. Once these features<br />

have been created, Setup <strong>Mode</strong> will be fully functional, enabling the users to vary every<br />

parameter of a CONDUIT problem easily and quickly.<br />

4.2 Run <strong>Mode</strong><br />

Run <strong>Mode</strong> is complete in its current state, however, one additional possibility is<br />

being considered. Due to the potentially large number of cases in a <strong>Batch</strong> Problem, the<br />

use of multiple processors to run cases simultaneously is being considered. By running<br />

the cases in parallel, large time savings in run times may be accomplished.<br />

4.3 Analysis <strong>Mode</strong><br />

<strong>Of</strong> all the sections that merit additional work, Analysis <strong>Mode</strong> is the largest. This<br />

is simply because there are so many possibilities in the viewing of large amounts of data<br />

in so many different forms.<br />

123


The HQ Window, as developed already, only stands for two improvements. First,<br />

is the zoom capability to allow a large number of specs to be viewed without scrolling the<br />

window, and second, the capability to overlay support plots of multiple cases. These<br />

improvements were not possible in the current version due to limitations of the<br />

CONDUIT specs and HQ Window.<br />

As with the HQ Window, the Gain Schedule Window was complete except for a<br />

few extra features. These features include the ability to arrange multiple plots within the<br />

Display Area, and the capability to drag plots to the desktop, creating stand-alone figures<br />

as in the CONDUIT Analysis Tools.<br />

In addition to the added features of the two windows created for Analysis <strong>Mode</strong>,<br />

several other features are to be implemented. The Pbrush Window will be created to<br />

display the information of the Pcomb for multiple cases. A Design Parameters window<br />

will be created such that every design parameter of every case can be viewed for any<br />

iteration. The Sensitivity Tools will be incorporated into Analysis <strong>Mode</strong> as well,<br />

allowing the user to view the results of automated sensitivity analyses, or to perform an<br />

analysis on a particular case. Finally, in the time during which the remaining Analysis<br />

<strong>Mode</strong> features are developed, a feature will be created to allow the user to select a case<br />

and switch back to CONDUIT, to view the results not displayed currently in <strong>Batch</strong> <strong>Mode</strong>.<br />

4.4 Sensitivity Automation<br />

Further use of the Sensitivity Automation could be used after an optimization to<br />

improve the results of a gain schedule. Research could be done to determine if it is<br />

possible to smooth the gain schedule by checking for insensitive parameters, adjusting<br />

their values to fit the expected trend of the gain schedule, and re-optimizing.<br />

124


5 Lessons Learned<br />

Four significant lessons were learned in the course of this thesis. Specifically, the<br />

lessons deal with the running of problems in <strong>Batch</strong> <strong>Mode</strong>:<br />

1. It was learned that terminating unused input and output blocks can significantly<br />

improve simulation times. In a <strong>Batch</strong> <strong>Mode</strong> problem with a large number of cases,<br />

this small gain in run time can result in large time savings.<br />

2. If interpolation is used to create cases between two known models, then the<br />

interpolation method must be chosen such that the stability derivatives vary smoothly<br />

in a realistic manner. If not, then the results of resulting gain schedules can be<br />

inaccurate or have discontinuities.<br />

3. Time specs must be watched carefully over the range of varying cases.<br />

As demonstrated with the damping ratio spec, time specs that require a signal of a<br />

specific form can return invalid results when the signal is not of this form. Since time<br />

signals can vary to many different forms, it is best to avoid time specs in <strong>Batch</strong><br />

Problems. However, if they must be used, they should be checked at several different<br />

cases to ensure the time signal is of the appropriate form for the spec. If not, then the<br />

spec must be modified to accommodate for the discrepancies.<br />

4. The cases must be well constrained over the entire range of cases. In the case of the<br />

SH-2G problem, it was found that the original Attitude Hold spec was not sufficient<br />

to constrain the problem in the mid-range velocities, and the system went open loop.<br />

As a result, the gains in this region were arbitrary, and the gain schedules weren’t<br />

smooth. In addition to the cases being well constrained, they must also be similarly<br />

constrained. In other words, the critical constraint should be the same for all cases. If<br />

125


not, then the specs most critical to the system might change from case to case. Thus,<br />

the specs might be driven in different directions, resulting in poor gain schedules.<br />

126


6 Conclusions<br />

In the course of this paper, it has been shown that <strong>Batch</strong> <strong>Mode</strong> is an effective tool<br />

for use with multiple CONDUIT problems. <strong>Batch</strong> <strong>Mode</strong> provides the user with the<br />

capability of creating a large number of CONDUIT problems for optimization or<br />

evaluation. These problems can then be optimized or evaluated without intervention by<br />

the user. <strong>Batch</strong> <strong>Mode</strong> also provides the capability to analyze the results of a large<br />

number of optimized or evaluated cases in an efficient manner. It offers HQ Window<br />

thumbprint plots to check for robustness, along with gain schedule plots against user<br />

defined variables. The Sensitivity Tools of CONDUIT were automated for use with<br />

<strong>Batch</strong> <strong>Mode</strong>, giving the Run <strong>Mode</strong> the ability to automatically freeze insensitive or<br />

correlated parameters. Finally, it was shown that the simple logic of the correlation<br />

freezing was sufficient for the purposes of freezing correlated parameters.<br />

The optimization of the SH-2G demonstrated many of the features and<br />

capabilities of <strong>Batch</strong> <strong>Mode</strong>. First, it demonstrated the ease by which a <strong>Batch</strong> <strong>Mode</strong><br />

problem could be created, optimized, and evaluated. The results of these cases were then<br />

used to show that smooth gain schedules could be obtained through the use of <strong>Batch</strong><br />

<strong>Mode</strong>. Finally, the use of thumbprint plots to examine the robustness of a system were<br />

also shown to be effective.<br />

127


BIBLIOGRAPHY<br />

1. Frost, Chad R. “Design and Optimization of a Rotorcraft Flight Control System<br />

Using the Control Designer’s Unified Interface (CONDUIT).” M.S. Thesis,<br />

<strong>Cal</strong>ifornia <strong>Poly</strong>technic State University, San Luis Obispo, 1999.<br />

2. Math Works Inc., The. Building GUIs with MATLAB. Reference Manual, Natick,<br />

Massachusetts: The Math Works, Inc., 1997.<br />

3. Math Works Inc., The. Control System Toolbox User’s Guide. Reference Manual,<br />

Natick, Massachusetts: The Math Works, Inc., 1997.<br />

4. Math Works Inc., The. Using MATLAB. Reference Manual, Natick, Massachusetts:<br />

The Math Works, Inc., 1997.<br />

5. Math Works Inc., The. Using MATLAB Graphics. Reference Manual, Natick,<br />

Massachusetts: The Math Works, Inc., 1997.<br />

6. Math Works Inc., The. Using Simulink. Reference Manual, Natick, Massachusetts:<br />

The Math Works, Inc., 1997.<br />

7. Morel, Mark R. “CONDUIT Handling Qualities Specifications: Development,<br />

Unique Features, and Applications.” M.S. Thesis. <strong>Cal</strong>ifornia <strong>Poly</strong>technic State<br />

University, San Luis Obispo, 1997.<br />

8. Nise, Norman S., Control Systems Engineering. 2 nd ed. Redwood City, <strong>Cal</strong>ifornia:<br />

The Benjamin/Cummings Publishing Company, Inc., 1995.<br />

9. Tischler, Mark B., ed. Advances in Aircraft Flight Control. Bristol, PA: Taylor &<br />

Francis Inc., 1996.<br />

10. Tischler, Mark B., Jason D. Colbourne, Kenny K. Cheung, Chad R. Frost, William S.<br />

Levine, and Veronica Moldoveanu. CONDUIT “The Control Designer’s Unified<br />

128


Interface” Course Notes. NASA Conference Proceedings CP-1998-10157. Moffett<br />

Field: National Aeronautics and Space Administration, 1998.<br />

11. Tischler, Mark B., Mavis G. Cauffman. Comprehensive Identification from<br />

FrEquency Responses. An interactive facility for system identification and<br />

verification. Volume 1 – Class Notes. Class Notes from short course held at NASA<br />

Ames Research Center, Moffett Field, <strong>Cal</strong>ifornia, September, 1994.<br />

12. Tomashofski, Chris A., and Mark B. Tischler. “Flight Test Identification of SH-2G<br />

Dynamics In Support <strong>Of</strong> Digital Flight Control System Development.” Paper<br />

presented at the 55 th Annual <strong>For</strong>um of The American Helicopter Society, Montreal,<br />

Canada, May 25-27, 1999.<br />

13. United States Army Aviation and Troop Command, “Handling Qualities<br />

Requirements <strong>For</strong> Military Rotorcraft”, ADS-33D, St. Louis, Missouri, May 1996.<br />

129


APPENDIX<br />

130

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!