Linear parameter varying controller for a small turboshaft ...1310/... · Linear Parameter Varying...
Transcript of Linear parameter varying controller for a small turboshaft ...1310/... · Linear Parameter Varying...
Linear Parameter Varying Controller for a Small
Turboshaft Engine
A Thesis Presented
by
Jeffrey Michael Spack
to
The Department of Electrical & Computer Engineering
in partial fulfillment of the requirementsfor the degree of
Master of Science
in
Electrical Engineering
in the field of
Control Systems
Northeastern UniversityBoston, Massachusetts
September 2011
Linear Parameter Varying Controller for a Small Turboshaft
Engine
by
Jeffrey Michael Spack
Submitted to the Electrical & Computer Engineeringon May 12, 2011, in partial fulfillment of the requirements for the degree of
Master of Science
Abstract
Small turboshaft engine control systems are traditionally single input single output (SISO)and are designed utilizing classical control methods which require extensive gain schedulesresulting in considerable tuning effort. In addition, this method assumes that a system thatis stable at the linearized points will be stable in between the linearized points which may ormay not be true. With a linear parameter varying (LPV) control system, the gain scheduleis inherently built into the controller and the system is guaranteed to be stable betweenlinearizing points as long as the plant depends affinely on a set of time varying parametersthat are available as real time measurements and also vary along a fixed polytope. Anotherbenefit of using an LPV controller in place of a classic SISO controller is that modern robustcontrol techniques can be applied.
A model of a General Electric T700 turboshaft engine and baseline control systemwere developed in Simulink�using a NASA paper written by Mark G. Ballin [1]. Theengine plant was linearized at engine core speed points between 76% and 100% at intervalsof 2%. The LPV power turbine speed controller was developed using linearized plantsderived from the Simulink�model. The LPV controller was then compared to the baselinecontrol system showing performance greater than or equal to the baseline controller with asingle set of weighting functions. The referee transients used to determine a performancecomparison included steps and ramps in power turbine speed reference, helicopter collectiveload disturbances and uncompensated helicopter rotor load disturbances.
This research shows that an LPV controller can be applied to a small turboshaft engineapplication. It is also shown that while the LPV controller is more complex that is shouldtrade well against the traditional SISO methods based on tuning effort and performance.
Thesis Advisor: Professor Mario Sznaier
2
This thesis is dedicated to my wife and family, Constance, Penelope and Eleni.
Without their love, support and sacrifice my graduate coursework and research
would not have been achievable.
3
Acknowledgments
I would like to thank my advisor Professor Mario Sznaier whose guidance provided
me the necessary tools to complete this research.
I would also like to thank Dave Gutz, who provided great insight into making this
research applicable to a real world application, and my other colleagues at GE who
had to work around with my irregular work schedule and frequently fill in for me when
I was unavailable. The support from the GE Lynn Controls Department management
team was invaluable in allowing me to take the necessary time to complete my degree.
My degree was sponsored by the General Electric Company through the Advanced
Courses in Engineering, under the supervision of Tyler Hooper.
4
Contents
1 Introduction 21
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2 Engine Control System 25
3 Engine Model 27
3.1 Engine Model Assumptions . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Engine Model Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Engine Model Architecture . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Engine Model Validation . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 Engine Model Linearization . . . . . . . . . . . . . . . . . . . . . . . 42
4 Load Model 48
4.1 Load Model Assumptions . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 Load Model Architecture . . . . . . . . . . . . . . . . . . . . . . . . 49
5 Engine Baseline Control System Model 52
5.1 Baseline Controller Assumptions . . . . . . . . . . . . . . . . . . . . . 53
5.2 Baseline Controller Tools . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Baseline Controller Architecture . . . . . . . . . . . . . . . . . . . . 54
5.4 Baseline Controller Validation . . . . . . . . . . . . . . . . . . . . . . 61
6 Linear Parameter Varying (LPV) Control Theory 64
5
6.1 Classical Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2 LPV Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7 LPV Controller Design 71
7.1 LPV Controller Assumptions . . . . . . . . . . . . . . . . . . . . . . 71
7.2 LPV Controller Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2.1 Changes to LMI toolset to deal with polytopic model . . . . . 72
7.3 LPV Controller Architecture . . . . . . . . . . . . . . . . . . . . . . . 72
7.4 LPV Controller Validation . . . . . . . . . . . . . . . . . . . . . . . . 80
7.4.1 Comparison of baseline controller versus LPV controller . . . . 81
8 Conclusions 90
8.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A Engine Model Diagrams 92
B Engine Model Constants 97
C Engine Model Schedules 99
D Fuel Control Model Diagrams 118
E Fuel Control Constants 123
F Fuel Control Schedules 124
G Matlab�Code 136
G.1 LMI Toolbox Commands [2] . . . . . . . . . . . . . . . . . . . . . . . 136
G.2 Linearization Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
G.3 Changes to LMI toolset code . . . . . . . . . . . . . . . . . . . . . . . 145
G.4 LPV Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
G.4.1 Modified Plant Setup . . . . . . . . . . . . . . . . . . . . . . . 147
G.4.2 LPV Controller Design . . . . . . . . . . . . . . . . . . . . . . 148
G.4.3 LPV Controller Linear Simulation . . . . . . . . . . . . . . . . 149
6
G.4.4 Write Trajectory File . . . . . . . . . . . . . . . . . . . . . . . 149
G.4.5 Linear Simulation Input Function . . . . . . . . . . . . . . . . 150
G.4.6 LPV Controller s-function . . . . . . . . . . . . . . . . . . . . 150
H Results 152
H.1 Linear Plants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7
List of Figures
1-1 Pilot Controls [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1-2 Typical Helicopter Drive Train [3] . . . . . . . . . . . . . . . . . . . 23
2-1 Turboshaft Engine Schematic [4] . . . . . . . . . . . . . . . . . . . . . 26
3-1 Brayton Cycle [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3-2 Engine Stations [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3-3 Delta and Theta Simulink�Implementation . . . . . . . . . . . . . . . 30
3-4 Enthalpy at Station 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3-5 Static Pressure at Station 3 . . . . . . . . . . . . . . . . . . . . . . . 30
3-6√θ2 and Referenced Gas Generator Speed (NGR) . . . . . . . . . . . 31
3-7 Corrected Compressor Airflow . . . . . . . . . . . . . . . . . . . . . . 31
3-8 Compressor Airflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3-9 Compressor Outlet Temperature . . . . . . . . . . . . . . . . . . . . . 31
3-10 Bleed Fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3-11 Fuel Air Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3-12 Combustor Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3-13 Enthalpy Drop Across the Gas Generator . . . . . . . . . . . . . . . . 34
3-14 Enthalpy Drop Across the Power Turbine . . . . . . . . . . . . . . . . 36
3-15 Corrected Power Turbine Mass Flow . . . . . . . . . . . . . . . . . . 36
3-16 Power Turbine Mass Flow . . . . . . . . . . . . . . . . . . . . . . . . 36
3-17 Power Turbine Outlet Pressure . . . . . . . . . . . . . . . . . . . . . 37
3-18 Compressor Outlet Pressure . . . . . . . . . . . . . . . . . . . . . . . 38
3-19 Combustor Outlet Pressure . . . . . . . . . . . . . . . . . . . . . . . 38
8
3-20 Power Turbine Inlet Pressure . . . . . . . . . . . . . . . . . . . . . . 39
3-21 Gas Generator Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3-22 Power Turbine Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3-23 Fuel Flow Step From 400 to 775 pph at 175 ft-lbs . . . . . . . . . . . 41
3-24 Fuel Flow Step From 400 to 125 pph at 175 ft-lbs . . . . . . . . . . . 42
3-25 Linear Model Configuration . . . . . . . . . . . . . . . . . . . . . . . 43
3-26 Model to Find Operating Points . . . . . . . . . . . . . . . . . . . . . 44
3-27 Compare Eigenvalues to Source Paper . . . . . . . . . . . . . . . . . 46
4-1 Load Shaft Horsepower . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4-2 Load Torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5-1 Fuel Flow Governor Selection . . . . . . . . . . . . . . . . . . . . . . 54
5-2 NG Idle Fuel Flow Governor . . . . . . . . . . . . . . . . . . . . . . . 55
5-3 Percent Gas Generator Speed Lagged . . . . . . . . . . . . . . . . . . 55
5-4 NG Acceleration Topping Reference . . . . . . . . . . . . . . . . . . . 55
5-5 NG Deceleration Bottoming Reference . . . . . . . . . . . . . . . . . 56
5-6 Commanded Wf/Ps3 Signal Before Limiting Selector . . . . . . . . . 56
5-7 Fuel Flow Topping Reference . . . . . . . . . . . . . . . . . . . . . . 56
5-8 NG Topping Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5-9 Collective Based Feedforward . . . . . . . . . . . . . . . . . . . . . . 57
5-10 Collective Based Feedforward Lagged . . . . . . . . . . . . . . . . . . 57
5-11 NP Governor Error Signal . . . . . . . . . . . . . . . . . . . . . . . . 58
5-12 NP Governor Error Signal Compensation . . . . . . . . . . . . . . . . 58
5-13 NP Governor Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . 58
5-14 NP Governor Selection Logic . . . . . . . . . . . . . . . . . . . . . . . 59
5-15 NP Trim Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5-16 NP Trim Integrator Low Limit . . . . . . . . . . . . . . . . . . . . . . 60
5-17 NP Trim Integrator Low Limit Selection Logic . . . . . . . . . . . . . 60
5-18 Torque Motor Compensation . . . . . . . . . . . . . . . . . . . . . . . 60
5-19 Fuel Flow to the Model . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9
5-20 Baseline Controller Validation - Collective Pull . . . . . . . . . . . . . 62
5-21 Baseline Controller Validation - Cyclic Disturbance . . . . . . . . . . 63
6-1 Classic Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7-1 Modified Linear Plant Structure . . . . . . . . . . . . . . . . . . . . . 73
7-2 Modified Linear Plant Structure with Weighting Functions . . . . . . 76
7-3 100 RPM Step in NP reference . . . . . . . . . . . . . . . . . . . . . 77
7-4 40 ft-lb Step Load Disturbance . . . . . . . . . . . . . . . . . . . . . 78
7-5 Simulink�Changes to Figure 5-6 To Incorporate LPV Controller . . . 79
7-6 Bode Plot of the LPV Controller Weighting Functions Wc and We . . 82
7-7 100 RPM NP Step Response with Collective at 25 . . . . . . . . . . . 83
7-8 100 RPM NP Step Response with Collective at 77.2 . . . . . . . . . . 83
7-9 NP Reference Ramp at 50 RPM/sec with Collective at 25 . . . . . . 84
7-10 NP Reference Ramp at 50 RPM/sec with Collective at 77.2 . . . . . . 84
7-11 Rotor Load Disturbance of 40 ft-lbs with Collective at 25% . . . . . . 85
7-12 Rotor Load Disturbance of 40 ft-lbs with Collective at 77.2% . . . . . 86
7-13 Collective Instantaneous Pull from 25% to 35% . . . . . . . . . . . . 87
7-14 Collective Instantaneous Pull from 65.64% to 82.5% . . . . . . . . . . 87
7-15 Collective 1 Second Pull from 10% to 90% . . . . . . . . . . . . . . . 88
7-16 Collective 2 Second Pull from 10% to 90% . . . . . . . . . . . . . . . 89
7-17 Collective 3 Second Pull from 10% to 90% . . . . . . . . . . . . . . . 89
A-1 Simulink�Model Top Figure . . . . . . . . . . . . . . . . . . . . . . . 93
A-2 Engine Model Figure 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A-3 Engine Model Figure 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 95
A-4 Engine Model Figure 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 96
C-1 F1 - Compressor Mass Flow . . . . . . . . . . . . . . . . . . . . . . . 100
C-2 F2 - Compressor Temperature . . . . . . . . . . . . . . . . . . . . . . 103
C-3 F3 - Seal Pressure Bleed Fraction . . . . . . . . . . . . . . . . . . . . 105
C-4 F4 - Power Turbine Balance Bleed Fraction . . . . . . . . . . . . . . . 108
10
C-5 F5 - Impeller Tip Leakage and Turbine Cooling Bleed Fraction . . . . 109
C-6 F6 - Combustor Efficiency . . . . . . . . . . . . . . . . . . . . . . . . 110
C-7 F7 - Gas Generator Turbine Energy . . . . . . . . . . . . . . . . . . . 111
C-8 F8 - Power Turbine Energy . . . . . . . . . . . . . . . . . . . . . . . 112
C-9 F9 - Power Turbine Mass Flow . . . . . . . . . . . . . . . . . . . . . 113
C-10 F10 - Exhaust Pressure Loss . . . . . . . . . . . . . . . . . . . . . . . 115
D-1 Engine Control Figure 1 . . . . . . . . . . . . . . . . . . . . . . . . . 119
D-2 Engine Control Figure 2 . . . . . . . . . . . . . . . . . . . . . . . . . 120
D-3 Engine Control Figure 3 . . . . . . . . . . . . . . . . . . . . . . . . . 121
D-4 Engine Control Figure 4 . . . . . . . . . . . . . . . . . . . . . . . . . 122
F-1 Fec1 - ECU Thermocouple Sensor Time Constant . . . . . . . . . . . 125
F-2 Fhm1 - HMU Topping Line Schedule . . . . . . . . . . . . . . . . . . 127
F-3 Fhm2 - HMU Power Available Input Schedule . . . . . . . . . . . . . 128
F-4 Fhm3 - HMU Load Demand Compensation Schedule . . . . . . . . . 129
F-5 Fhm4 - HMU Load Demand Compensation Schedule Function 2 . . . 130
F-6 Fhm5 - HMU Idle Schedule Function 1 . . . . . . . . . . . . . . . . . 131
F-7 Fhm6 - HMU Idle Schedule Function 2 . . . . . . . . . . . . . . . . . 132
F-8 Fhm7 - HMU Maximum Fuel Parameter Limit During Acceleration . 133
11
List of Tables
1 Model Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 Steady State Engine Model Results . . . . . . . . . . . . . . . . . . . 40
3.2 State Operating Point . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1 Rotor Inertia Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Collective to Shaft Horsepower Relationship . . . . . . . . . . . . . . 50
B.1 Engine Model Constants . . . . . . . . . . . . . . . . . . . . . . . . . 97
C.1 F1 - Compressor Mass Flow . . . . . . . . . . . . . . . . . . . . . . . 100
C.2 F2 - Compressor Temperature . . . . . . . . . . . . . . . . . . . . . . 103
C.3 F3 - Seal Pressure Bleed Fraction . . . . . . . . . . . . . . . . . . . . 105
C.4 F4 - Power Turbine Balance Bleed Fraction . . . . . . . . . . . . . . . 108
C.5 F5 - Impeller Tip Leakage and Turbine Cooling Bleed Fraction . . . . 109
C.6 F6 - Combustor Efficiency . . . . . . . . . . . . . . . . . . . . . . . . 110
C.7 F7 - Gas Generator Turbine Energy . . . . . . . . . . . . . . . . . . . 111
C.8 F8 - Power Turbine Energy . . . . . . . . . . . . . . . . . . . . . . . 112
C.9 F9 - Power Turbine Mass Flow . . . . . . . . . . . . . . . . . . . . . 113
C.10 F10 - Exhaust Pressure Loss . . . . . . . . . . . . . . . . . . . . . . . 115
F.1 Fec1 - ECU thermocouple sensor time constant . . . . . . . . . . . . 125
F.2 Fhm1 - HMU Topping Line Schedule . . . . . . . . . . . . . . . . . . 127
F.3 Fhm2 - HMU Power Available Input Schedule . . . . . . . . . . . . . 128
F.4 Fhm3 - HMU Load Demand Compensation Schedule . . . . . . . . . 129
12
F.5 Fhm4 - HMU Load Demand Compensation Schedule Function 2 . . . 130
F.6 Fhm5 - HMU Idle Schedule Function 1 . . . . . . . . . . . . . . . . . 131
F.7 Fhm6 - HMU Idle Schedule Function 2 . . . . . . . . . . . . . . . . . 132
F.8 Fhm7 - HMU Maximum Fuel Parameter Limit During Acceleration . 133
H.1 NG076 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
H.2 NG078 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
H.3 NG080 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
H.4 NG082 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
H.5 NG084 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
H.6 NG086 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
H.7 NG088 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
H.8 NG090 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
H.9 NG092 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
H.10 NG094 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
H.11 NG096 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
H.12 NG098 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
H.13 NG100 Linear Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
13
Nomenclature
Abbreviations
GE General Electric Company
FMU Fuel Metering Unit
HMU Hydro-Mechanical Unit
LTI Linear Time Invariant
LMI Linear Matrix Inequalities
LPV Linear Parameter Varying
LTI Linear Time Invariant
PID Proportional-Integral-Derivative Controller
PPS Pounds Per Second
PPH Pounds Per Hour
FADEC Full Authority Digital Electronic Controller
SISO Single Input-Single Output
14
Model Variables
Table 1: Model Variables
Variable Description Units
AWFP HMU deceleration schedule gain lbm∗in2
lbf∗hr∗%
B4 ECU nonlinear NP loop gain circuit (discrete switch)
B6 ECU speed error gain
BWFP HMU deceleration schedule bias lbm∗in2
lbf∗hr
CB ECU error threshold for additional NP governing gain % NP
CE ECU load share authority upper limit % NP
CH Hysteresis of gas-generator speed sensor % NG
CLMV metering valve lag time constant sec
CLLDS load demand spind1e lag time constant sec
CNTL lag time constant for gas generator speed sensor sec
CORR threshold for nonlinear NP loop gain circuit
CR engine torque level threshold for nonlinear NP loop gain circuit
CT2 lag time constant for ECU governor sec
CT7 lag time constant for ECU load-share circuit sec
CT9 ECU T4.5 compensation lag time constant sec
CT12 lag time constant for ECU governor sec
CT13 lag time constant for ECU governor rate compensation sec
CT14 lag time constant for ECU governor rate compensation sec
CT16 lag time constant for ECU proportional plus integral compensation sec
continued on next page
15
continued from previous page
Variable Description Units
CTPL lag time constant for power turbine speed sensor sec
CTPS3 lag time constant for compressor static discharge pressure sensor sec
DBIAS lower limit and bias for ECU load share authority % NP
DWFP fuel flow command for HMU load demand spindle lbm∗in2
lbf∗hr
DWFPL fuel flow command for HMU load-demand spindle including dynamics lbm∗in2
lbf∗hr
ET45 T4.5 error signal deg R
HMUSEL Wf/Ps3 demand after limiting by idle, acceleration, and deceleration
cams
lbm∗in2
lbf∗hr
KNDRP droop line slope delta(Wf/Ps3)/deltaPCNG lbm∗in2
lbf∗hr∗%
NG rotational speed of compressor and gas generator rpm
NGREF NG reference speed in percent of design speed % NG
P45 total pressure at power turbine inlet lbfin2
PAS angle of power available spindle deg
PCNG rotational speed of compressor and gas generator in percent of design
speed
% NG
PCNGI set point value of gas generator speed determined by idle schedule % NG
PCNGHL gas generator speed including sensor dynamics and hysteresis % NG
PCNP rotational speed of power turbine in percent of design speed % NP
PCPRF reference rotational speed of power turbine as set by cockpit control % NP
PNG set point value of gas generator speed determined by load demand-
compensation circuit
% NG
PS3 compressor static discharge pressure lbfin2
PS3HYS compressor discharge pressure sensor hysteresis lbfin2
PS3L compressor discharge pressure including sensor dynamics and hysteresis lbfin2
continued on next page
16
continued from previous page
Variable Description Units
SPDER ECU speed error signal % NP
SPDG ECU trim demand signal volts
SPDSI ECU compensated speed error signal volts
SPDSF ECU speed error signal with governor dynamics; input to ECU error
selector logic
volts
SPDSP ECU compensated trim demand signal volts
SPDSS ECU trim-demand signal before compensation volts
T2 inlet temperature deg R
T8 lead time constant for ECU T4.5 limiter compensation sec
T10 lag time constant for ECU T4.5 limiter compensation sec
T11 lead time constant for ECU governor sec
T17 lag time constant for ECU load share sec
T45 power turbine inlet temperature T4.5 deg R
T45COR ECU T4.5 thermocouple harness correlation bias deg R
T45E measured T4.5 deg R
T45EL T4.5 sensed by ECU thermocouple harness deg R
T45L measured T4.5 with hamess dynamics deg R
T45REF reference constant used as maximum T45 limit deg R
TAU45 T4.5 harness time-constant which varies based on station 4.5 flow pa-
rameter and T4.5
sec
TL1 lag-time constant 1 for ECU load-share torque sensor sec
TL2 lag-time constant 2 for ECU load share torque sensor sec
TLGE T4.5 harness time constant sec
continued on next page
17
continued from previous page
Variable Description Units
TMDB HMU torque motor deadband ma
TMGN HMU torque motor sensitivity inma∗sec
TMLG HMU torque motor linkage gain lbm∗in2
lbf∗hr.in
TMLVG HMU torque motor LVDT feedback gain voltsin
TMRU Wf/Ps3 trim signal from torque motor based on ECU trim signal lbm∗in2
lbf∗hr
TORQ45 power turbine torque (identical to Q PT) ft-lbf
TRQER sensed torque error between two engines operating in parallel ft-lbf
TRQL sensed power turbine output torque ft-lbf
TSIG compensated T4.5 error signal; input to ECU error selector logic volts
W45 power turbine inlet mass flow rate lbmhr
W45R power turbine flow parameter
WF fuel flow lbmsec
WFIDM minimum value of Wf/Ps3 demand regardless of all other commands lbm∗in2
lbf∗hr
WFIRF set point value of Wf/Ps3 determined by idle schedule lbm∗in2
lbf∗hr
WFMAX maximum available fuel How; represents maximum aperture in metering
valve
lbmhr
WFMIN minimum available fuel flow; represents minimum flow stop in metering
valve
lbmhr
WFMV fuel How required by HMU; results from multiplication of Wf/Ps3and
Ps3 via mechanical linkage
lbmhr
WFPAC maximum value of Wf/Ps3 demand during acceleration transients; pre-
vents compressor stall
lbm∗in2
lbf∗hr
WFPDC minimum value of Wf/Ps3 demand during deceleration transients; pre-
vents engine flameout
lbm∗in2
lbf∗hr
continued on next page
18
continued from previous page
Variable Description Units
WFPDCH maximum limit on Wf/Ps3 demand during deceleration lbm∗in2
lbf∗hr
WFPDCL minimum limit on Wf/Ps3 demand during deceleration lbm∗in2
lbf∗hr
WFPDM commanded Wf/Ps3 signal before limiting selector logic lbm∗in2
lbf∗hr
WFPRF maximum available Wf/Ps3 signal; set by power available spindle lbm∗in2
lbf∗hr
WFPTP Wf/Ps3 topping signal lbm∗in2
lbf∗hr
WFQPS3 set point value of Wf/Ps3 determined by load demand compensation
circuit
lbm∗in2
lbf∗hr
XCPC helicopter collective pitch position in percent of maximum %
XHILIM torque motor maximum limit insec
XKINTG ECU proportional plus integral compensation integral path gain
XKPROP ECU proportional plus integral compensation proportional path gain
XLDHYS load demand spindle hysteresis deg
XLDSA load demand spindle angle deg
XLDSH load demand spindle angle with hysteresis deg
XLOLIM torque motor minimum limit insec
XQLO load share error input % NP
YHILIM engine torque integrator maximum limit for nonlinear NP loop gain cir-
cuit
YLOLIM engine torque integrator minimum limit for nonlinear loop gain circuit
ZHILIM ECU proportional plus integral compensation integrator maximum limit
ZK1 NP loop additional proportional gain for ECU governor rate compensa-
tion used during high power operation
ZK3 ECU T4.5 compensationcircuit gain
ZK5 ECU governor rate compensation loop gain
continued on next page
19
continued from previous page
Variable Description Units
ZK7 NP loop proportional gain for ECU governor rate compensation
ZK8 ECU load share path gain
ZK9 speed error trim gain for ECU governor rate compensation
ZK10 additional gain loop for ECU governor rate compensation for errors
greater than the absolute value of CB
ZLOLIM ECU proportional plus integral compensation integrator minimum limit
Greek Symbols
δ Ratio of the pressure over the standard pressure
θ Ratio of the temperature over the standard temperature
ρ Time varying parameter set
20
Chapter 1
Introduction
Classical linear single input-single output (SISO) controllers commonly used in helicopter
engine controls typically require extensive tuning and require additional margin between
linearized points for a reasonable assurance of stability. A linear parameter varying (LPV)
controller design provides gained scheduled controller that is stable in between plant lin-
earizing points as long as the plant satisfies a few assumptions:
1. the model depends affinely on a set of time varying parameters
2. the time varying parameters are available as real time measurements
3. the time-varying parameters range within a fixed polytope
Another benefit to an LPV controller is that the extensive tuning required for SISO
controls is significantly reduced. This research produced a controller that performed as well
or better than the baseline controller with a single set of weighting functions.
The downside to a LPV controller is that the complexity, when compared against the
baseline SISO controller[1], is increased. However, the reasonable assurance of stability
between linearized points and decreased tuning effort should trade well against the effort
and cost required to implement a more complex controller in a production environment.
1.1 Background
Small turboshaft engines are typically used for rotor craft, turbo propeller fixed wing aircraft
and large marine applications. In this research, the focus is on a model of a GE T700 turbo
21
shaft engine which is primarily used for rotor craft applications namely the Sikorsky UH-
60A Blackhawk. The Blackhawk is configured as a two engine system where both engines
feed a main gear box which drives the main and tail rotors. The main rotor of a helicopter
provides lift and directional control. The tail rotor counteracts the force applied by the
main rotor that pushes the helicopter body in the opposite direction of the main rotor. The
tail rotor also acts as a rudder to steer the helicopter left and right [3].
A helicopter pilot has three major controls [3]:
1. Collective: controls lift
2. Cyclic: controls left, right, forward and backward motions
3. Foot pedals: controls yaw rate in forward flight and left and right motion during
hover maneuvers
Figure 1-1 provides the general impact of the basic pilot controls on the helicopter.
Figure 1-1: Pilot Controls [3]
Typically knowledge of the collective lever is presented to the engine control system since
it represents the major portion of the load system. The other pilot controls, cyclic and pedal
movement, are typically unknown to the engine control system. Therefore, maneuvers with
22
significant cyclic and/or pedal movement without significant collective movement rely solely
on the power turbine speed governor while maneuvers with significant collective movement
are typically assisted by open loop anticipation logic.
Rotor craft in general present a complex controls problem for the engine control system
designer due to the integration with the helicopter. Since the engines are directly connected
to the main and tail rotors through the transmission the dynamics of the rotor system must
be included in the governor design. One of the most important requirements for the engine
control system is to keep the main rotor speed close to the datum under varying load con-
ditions while respecting several boundary conditions. Deviations below the datum is called
rotor “droop” and deviations above the datum are called rotor “upspeed” or “overshoot”.
Both are not desirable, too much rotor droop can lead to a unrecoverable loss of lift and
too much overshoot could lead to damage to the main gear box both of which can result in
loss of the aircraft.
The major boundary conditions that the engine control system must respect are: engine
acceleration limits, engine deceleration limits, maximum gas generator speed, minimum gas
generator speed, gas generator turbine temperature limits and engine fuel flow limits. In
addition, the engine control system must have good handling qualities at the aircraft level
such as avoiding torque reversals during engine acceleration.
Figure 1-2 shows a typical helicopter drive train.
Figure 1-2: Typical Helicopter Drive Train [3]
23
1.2 Scope
The purpose of this research is to replace the baseline controller [1] with an LPV controller
while respecting the boundary conditions stated in section 1.1. The engine model is based
from the paper written by Mark G. Ballin of the NASA Ames Research Center [1]. Since,
a rotor model is not specifically presented in the paper by Ballin the rotor model inertia is
taken from the thesis of William Pfiel [6]. This research does not require a perfect match
of engine performance as compared to the actual T700 engine as the control system can be
applied to any plant satisfying the assumptions stated in section 1.1. This research does not
attempt to re-produce the collective anticipation logic and instead assumes that the load is
known to the control system.
24
Chapter 2
Engine Control System
The modeled engine is General Electric T700-GE-700 [1]. Two T700 engines are coupled
to the main gear box of a Sikorsky model UH-60A Black Hawk helicopter. Each engine is
capable of producing approximately 1800 shaft horsepower. The engine compressor consists
of 5 axial compressor stages and 1 centrifugal compressor stage. The compressor utilizes
variable geometry on the engine stators for improved stall protection at off design points.
Air flows from the exit of the centrifugal compressor through an annular combustor where
fuel is introduced and ignited. The hot air flows through the gas generator turbine which
extracts a portion of the energy to drive the compressor. The air exiting the gas generator
flows through the power turbine module which extracts the remaining energy driving the
shaft connected to the helicopter main gear box. The gas generator or core of the engine
spins independently from the power turbine module allowing the helicopter gear box speed
to be modulated to the same reference under varying load conditions.
25
Chapter 3
Engine Model
The T700 Engine model used as the plant for this research is based directly from the work
performed by Mark G. Ballin of the NASA Ames Research Center. The paper “A High
Fidelity Simulation of a Small Turboshaft Engine” [1] provides the equations to produce
a high fidelity non-linear simulation of the GE T700 engine. The equations are provided
in this thesis for reference and convenience however, this research is concentrated on the
development of an LPV controller provided in chapters 6 and 7. This engine is representative
of the current technology for gas turbine engines in this shaft horsepower class. Gas turbine
engines are described by the Brayton Cycle which is a thermodynamic process with four
major stages: compression, combustion or heat addition, expansion, and exhaust [6] [7]
[8]. Heat energy remaining in the gas generator turbine exhaust is expanded in the power
turbine to extract power to drive the helicopter rotor system.
Figure 3-1: Brayton Cycle [5]
27
3.1 Engine Model Assumptions
The engine model assumes the following for the purposes of simplification:
1. The inlet losses are approximately equal to the static ambient conditions.
2. The engine heat sink is not included.
3. The variable geometry and bleed valves are assumed to be on schedule and are not
included in the control system.
4. Other engine model assumptions are provided in Ballin’s paper [1].
3.2 Engine Model Tools
The engine model is implemented in native Matlab�Simulink�to take advantage of the
Matlab�toolset including the LMI toolbox [2] which contains the tools used to create the
LPV controller in chapter 7.
3.3 Engine Model Architecture
The equations to build the engine model are given in fragments pictorially as they appear
in the Simulink�model or in equation form depending on which method provided the best
clarity in communicating the implementation. The complete set of Simulink�diagrams is
given in Appendix A. The variables in the equations refer to engine stations associated with
different sections of the engine gas path. The numbers start with zero at the beginning of
the engine and end with nine at the exhaust of the engine. The engine stations are shown
in Figure 3-2.
28
Figure 3-2: Engine Stations [1]
In accordance with assumption 1, the pressures and temperatures at stations 1, 2 and
9 are approximately equal to the static ambient conditions.
P1 = P2 = Ps9 = P ambient (3.1)
T1 = T2 = T ambient (3.2)
The model normalizes temperature and pressure by creating delta and theta parameters
for stations 1 and 2.
δ =P
Pstd(3.3)
(where Pstd = 14.7 psia)
29
θ =T
Tstd(3.4)
(where Tstd = 518.67 R)
Figure 3-3 shows the implementation in the Simulink�model.
Figure 3-3: Delta and Theta Simulink�Implementation
Figure 3-4 shows the enthalpy at station 2. The constant Kh2 is defined in Table B.1.
Figure 3-4: Enthalpy at Station 2
Static pressure at station 3 (Figure 3-5) is a function of the total pressure. The constant
Kps3 is defined in Table B.1.
Figure 3-5: Static Pressure at Station 3
Figure 3-6 shows the calculation of referenced or corrected gas generator speed (core
speed).
30
Figure 3-6:√θ2 and Referenced Gas Generator Speed (NGR)
The corrected compressor airflow is a function of the pressures at stations 3 and 2 in
addition to the corrected core speed (Figure 3-7).
Figure 3-7: Corrected Compressor Airflow
The 2-D table utilized in Figure 3-7 was modified from its original form in order to ensure
that the linear interpolation would be performed properly. The plot and table definition
for the 2-D linear interpolation in Figure 3-7 is Figure C-1 and Table C.1 respectively.
Figure 3-8 implements the calculation for the uncorrected compressor airflow as a func-
tion of δ2 and θ2.
Figure 3-8: Compressor Airflow
The temperature at the compressor outlet (T3) is a function of the compressor pressure
ratio and T2 as shown in Figure 3-9. The plot and table definition for the 1-D linear
interpolation in Figure 3-9 is Figure C-2 and Table C.2 respectively.
Figure 3-9: Compressor Outlet Temperature
31
The enthalpy at station 3 is defined by equation 3.5.
H3 = KH31 ∗ T3 +KH32 (3.5)
(where KH31 and KH32 are defined in Table B.1)
There are three bleed fractions that are used to calculate the bleed for stations 2.4 and 3.
The bleed fractions B1, B2 and B3 are functions of corrected core speed and the corrected
airflow at station 2 as shown in Figure 3-10. The plot and table definition for the 1-D tables
in Figure 3-10 are Figure C-3 and Table C.3 for B1, Figure C-4 and Table C.4 for B2, and
Figure C-5 and Table C.5 for B3.
Figure 3-10: Bleed Fractions
The bleed flow extracted from station 2.4 is given by equation 3.6.
WA24 = WA2 ∗ (B1 +B2) (3.6)
The bleed flow extracted from station 3 is given by equation 3.7.
WA3bl = WA2 ∗ (B3 +Kb3) (3.7)
(where Kb3 is defined in Table B.1)
The flow at station 3 is a function of the station 2 flow minus the extracted bleed flow
from station 2 given by equation 3.8.
WA3 = WA2 −WA24 (3.8)
32
The flow at station 3.1, combustor inlet, is a function of combustor inlet pressure and
temperature as well as the combustor outlet pressure given by equation 3.9.
WA31 =
√P3 ∗ (P3 − P41)
Kdbp ∗ T3(3.9)
(where Kdbp is defined in Table B.1)
The fuel air ratio is the fuel flow over the airflow at the combustor inlet as shown by
Figure 3-11. A low limit was added on WA31 to avoid divide by zero issues.
Figure 3-11: Fuel Air Ratio
The combustor efficiency is a function of the fuel air ratio as shown by Figure 3-12. The
plot and table definition for the 1-D linear interpolation in Figure 3-12 is Figure C-6 and
Table C.6 respectively.
Figure 3-12: Combustor Efficiency
The no heat sink enthalpy at the combustor outlet, station 4.1, is a function of the
enthalpy at station 3, the efficient of the combustor and the fuel air ratio given by equa-
tion 3.10.
H41ns =H3 + (P3 ∗ FAR ∗HV F )
1 + FAR(3.10)
(where HVF is defined in Table B.1)
The temperature at the combustor outlet, station 4.1, is a function of enthalpy at that
station given by equation 3.11.
33
T41 = Kt411 ∗H41ns +Kt412 (3.11)
(where Kt411 and Kt412 is defined in Table B.1)
Note: a decision was made at this point not to implement the heat sink model described
in the NASA paper used to create the model[1]. Therefore, T41 was set equal to T41ns
where ns stands for “no sink”.
The heat sink enthalpy at station 4.1 is a function of T41 as given by equation 3.12.
H41 = Kh411 ∗ T41 +Kh412 (3.12)
(where Kh411 and Kh412 is defined in Table B.1)
The corrected temperature at station 4.1 is given by equation 3.13.
θ41 = Kth411 ∗ T41 +Kth412 (3.13)
(where Kth411 and Kth412 is defined in Table B.1)
The enthalpy drop across the gas generator is a function of pressure at station 4.5 and
4.1 as well as the corrected temperature at the combustor outlet, station 4.1, as shown in
Figure 3-13. The plot and table definition for the 1-D linear interpolation in Figure 3-13 is
Figure C-7 and Table C.7 respectively.
Figure 3-13: Enthalpy Drop Across the Gas Generator
The enthalpy at station 4.4 is the enthalpy at station 4.1 minus the enthalpy drop across
the gas generator, reference equation 3.14.
H44 = H41 −∆HGT (3.14)
34
The enthalpy at station 4.5 is a function of the enthalpy at station 4.5 as given be
equation 3.15.
H45 = H44 ∗Kh45 (3.15)
(where Kh45 is defined in Table B.1)
The airflow at the combustor outlet, station 4.1, is a function of the combustor outlet
pressure and corrected temperature as given by equation 3.16.
W41 =Kwgt ∗ P41√
θ41(3.16)
(where Kwgt is defined in Table B.1)
The temperature at the power turbine inlet, station 4.5, is a function of enthalpy at
station 4.5 as given by equation 3.17. A low limit was added on T41 to avoid divide by zero
issues.
T45 = Kt451 ∗H45 +Kt452 (3.17)
(where Kt451 and Kt452 is defined in Table B.1)
The corrected power turbine inlet temperature is a function of T45 as given by equa-
tion 3.18.
θ45 = Kth451 ∗ T45 +Kth452 (3.18)
(where Kth451 and Kth452 is defined in Table B.1)
The enthalpy drop across the power turbine is a function of pressure at station 4.9 and
4.5 as well as the corrected temperature at the power turbine inlet, station 4.5, as shown in
Figure 3-14. The plot and table definition for the 1-D linear interpolation in Figure 3-14 is
Figure C-8 and Table C.8 respectively.
35
Figure 3-14: Enthalpy Drop Across the Power Turbine
The corrected power turbine flow is a function of the pressure ratio between station 9 and
4.5 as shown in Figure 3-15. The plot and table definition for the 1-D linear interpolation
in Figure 3-15 is Figure C-9 and Table C.9 respectively.
Figure 3-15: Corrected Power Turbine Mass Flow
The uncorrected power turbine mass flow is a function of the corrected power turbine
mass flow, the power turbine inlet pressure and the corrected power turbine inlet tempera-
ture as shown in Figure 3-16.
Figure 3-16: Power Turbine Mass Flow
The enthalpy at the power turbine outlet is enthalpy at the power turbine inlet minus
the enthalpy drop across the power turbine, reference equation 3.19.
H49 = H45 −∆HPT (3.19)
The power turbine outlet pressure is a function of the corrected core speed and the
static pressure at station 9 as shown in Figure 3-17. The plot and table definition for the
1-D linear interpolation in Figure 3-17 is Figure C-10 and Table C.10 respectively.
36
Figure 3-17: Power Turbine Outlet Pressure
The compressor torque is a function of core speed, airflow at station 2 and 3, and
enthalpy at stations 2 and 3 as given by equation 3.20.
Qc = 778.12 ∗(
60
2π
)(1
NG
)(WA2 ∗ (KQC1 ∗H3 −H2) +WA3 ∗KQC2 ∗H3) (3.20)
(where KQC1 and KQC2 is defined in Table B.1)
The gas generator torque is a function of core speed, the flow at station 4.1 and enthalpy
drop across the gas generator as given by equation 3.21.
Qgt = 778.12 ∗(
60
2π
)(1
NG
)(W41 ∗∆HGT ) (3.21)
The power turbine torque is a function of power turbine speed, the power turbine flow
and enthalpy drop across the power turbine as given by equation 3.22.
Qpt = 778.12 ∗(
60
2π
)(1
NP
)(W45 ∗∆HPT −Kdamp ∗
(2π
60
)∗ (NP −NPdes)
)(3.22)
(where Kdamp is defined in Table B.1)
There are five states in the plant: the pressure at the compressor outlet (P3), the
pressure at the combustor outlet (P41), the pressure at the power turbine inlet (P45), core
speed (NG) and power turbine speed (NP).
The differential equation for the compressor outlet pressure(P3
)is a function of the
compressor outlet temperature and flow as given by equation 3.23.
P3 = Kv3 ∗ T3 ∗ (WA3 −WA3bl −WA31) (3.23)
(where Kv3 is defined in Table B.1)
37
Equation 3.23 is integrated in Simulink�as shown in Figure 3-18. A low limit is added
on P3 to avoid divide by zero issues.
Figure 3-18: Compressor Outlet Pressure
The differential equation for the combustor outlet pressure(
˙P41
)is a function of the
combustor outlet temperature and flow as given by equation 3.24.
˙P41 = Kv41 ∗ T41 ∗ (WA31 −WF −W41) (3.24)
(where Kv41 is defined in Table B.1)
Equation 3.24 is integrated in Simulink�as shown in Figure 3-19. A low limit is added
on P41 to avoid divide by zero issues.
Figure 3-19: Combustor Outlet Pressure
The differential equation for the combustor outlet pressure(
˙P45
)is a function of the
power turbine inlet temperature and power turbine flow including the cooling flow from the
compressor as given by equation 3.25.
˙P45 = Kv45 ∗ T45 ∗ (WA41 −W45 +B3 ∗Kbl ∗WA2) (3.25)
(where Kv45 and Kbl is defined in Table B.1)
Equation 3.25 is integrated in Simulink�as shown in Figure 3-20. A low limit is added
on P45 to avoid divide by zero issues.
38
Figure 3-20: Power Turbine Inlet Pressure
The differential equation for the core speed(
˙NG)
is a function of the compressor torque,
the gas generator torque and the combined inertia as given by equation 3.26.
˙NG =QGT −QC
JGT(3.26)
(where JGT is defined in Table B.1)
Equation 3.26 is integrated in Simulink�as shown in Figure 3-21. A low limit is added
on NG to avoid divide by zero issues.
Figure 3-21: Gas Generator Speed
The differential equation for the core speed(
˙NP)
is a function of the power turbine
torque, the requested load and the combined inertia of the power turbine and the load as
given by equation 3.27.
˙NP =QPT −Qreq
JPT + Jload(3.27)
(where JPT is defined in Table B.1 and Jload is defined by equation 4.1 )
Equation 3.27 is integrated in Simulink�as shown in Figure 3-22. A low limit is added
on NP to avoid divide by zero issues. This figure also includes the calculation for NP in
percent where NPdes is defined in Table B.1.
39
Figure 3-22: Power Turbine Speed
3.4 Engine Model Validation
The engine model is validated utilizing steady state points and transient cases provided
in reference [1]. In order to validate the model, the engine model with the rotor system
described in chapter 4 is connected but the fuel control system described in chapter 5 is
removed. Table 2 of reference [1] provides the steady state conditions including the load
demand and fuel flow. Table 3 of reference [1] provides the engine model results. The
Table 3.1 below provides the comparison between the data provided in reference [1] and
the model constructed for this research where “Reference” indicates it is from the reference
paper while “Simulink�” designates results from the model described in this thesis.
Table 3.1: Steady State Engine Model ResultsSteady State Conditions Model Results
Test Case Wf P2 T2 P49 Load Torque NG NP WA2 P3 T3 T45
Reference 1 140.1 14.37 516.7 14.4 30.1 70.0 83.8 3.6 63.4 855.9 1372.0
Simulink�1 140.1 14.37 516.7 15.9 29.2 72.6 77.1 3.8 64.3 893.7 1318.4
Reference 2 297.2 14.17 515.6 14.4 90.1 86.4 100.6 5.5 119.0 1043.0 1555.0
Simulink�2 297.2 14.17 515.6 14.6 87.4 86.7 106.4 6.1 123.8 1069.0 1460.3
Reference 3 372 14.16 508.3 14.5 148.3 88.1 97.8 6.3 141.7 1084.0 1629.0
Simulink�3 372 14.16 508.3 14.5 145.8 89.8 104.8 7.0 148.6 1107.5 1513.0
Reference 4 458.4 14.09 508 14.6 206.5 90.7 97.3 7.0 163.3 1130.0 1734.0
Simulink�4 458.4 14.09 508 14.5 202.1 92.5 105.6 7.8 170.9 1153.1 1609.2
Reference 5 560.6 14.02 507.2 14.6 274.3 92.8 98.2 7.7 186.4 1178.0 1855.0
Simulink�5 560.6 14.02 507.2 14.5 267.5 94.9 107.0 8.7 195.4 1202.1 1713.9
Reference 6 694.4 13.92 507.2 14.7 360.8 96.1 99.4 8.5 213.8 1233.0 2009.0
Simulink�6 694.4 13.92 507.2 14.7 349.4 97.5 106.6 9.4 220.9 1262.0 1874.6
The steady state results provided in Table 3.1 show relatively good agreement to the
results provided in reference [1] except for the NP parameter. The discrepancy between the
NP values can be explained based on the fact that the load model in the Simulink�model
is different than the one used in the reference paper.
Two transient case are analyzed: one, a step in fuel from 400 to 775 pph at an initial load
of 175 ft-lbs; two, a negative step in fuel from 400 to 125 pph at the same load conditions
40
as the first case. In both cases, the NP speed is maintained at 20900 RPM or 100% to
avoid a change horsepower due to the rotor speed. Figure 3-23 shows the transient case one
compared to the results provided in Figure 9 in reference [1].
−2 0 2 4 6400
500
600
700
800
sec
Wf (
pph)
−2 0 2 4 6150
200
250
sec
PS
3 (p
sia)
SimulinkPaper
−2 0 2 4 62000
2500
3000
3500
4000
sec
T41
(de
g R
)
SimulinkPaper
−2 0 2 4 61500
2000
2500
3000
sec
T45
(de
g R
)
SimulinkPaper
−2 0 2 4 690
95
100
sec
PC
NG
(%
)
SimulinkPaper
−2 0 2 4 6100
200
300
400
500
sec
TO
RQ
45 (
ft−lb
s)
SimulinkPaper
Figure 3-23: Fuel Flow Step From 400 to 775 pph at 175 ft-lbs
Figure 3-23 shows good agreement between the reference paper [1] results and the model
produced for this research. The critical parameters being core speed and torque since both
of these parameters will be outputs of the linear model.
Figure 3-24 shows the transient case two compared to the results provided in Figure 10
in reference [1].
41
−2 0 2 4 6100
200
300
400
sec
Wf (
pph)
−2 0 2 4 650
100
150
200
sec
PS
3 (p
sia)
−2 0 2 4 61400
1600
1800
2000
2200
sec
T41
(de
g R
)
−2 0 2 4 6800
1000
1200
1400
1600
sec
T45
(de
g R
)
−2 0 2 4 670
80
90
100
sec
PC
NG
(%
)
−2 0 2 4 6−100
0
100
200
sec
TO
RQ
45 (
ft−lb
s)
SimulinkPaper
SimulinkPaper
SimulinkPaper
SimulinkPaper
SimulinkPaper
Figure 3-24: Fuel Flow Step From 400 to 125 pph at 175 ft-lbs
Figure 3-24 shows fairly good agreement between the reference paper [1] results and
the model produced for this research. The Simulink�model decelerates at a different rate
than that of the reference model. However, the intent of this research is prove that an LPV
controller can be integrated into an engine control system. A perfect model match is not
required to achieve this end.
3.5 Engine Model Linearization
The purpose of this research was to replace the NP governor in the baseline fuel control
with a modern linear parameter varying H∞ controller. In order to find the new controller
a set of linear plants needs to be generated to use as input to the process. The engine
model was linearized by removing the baseline fuel control system and then providing the
inputs necessary to create the set of plants required. In this case, it was desired to produce
engine model plants from 76% to 100% NG with a linearization point every 2%. The
42
inputs required for the engine model are: fuel flow, load demand, ambient temperature and
ambient pressures (Wf, Qreq, Tamb, and Pamb respectively). The outputs of the plant are:
engine torque, power turbine speed, percent gas generator speed and gas generator rate
(Qpt, NP, PCNG, and NGDOT respectively). In addition to producing a plant every 2%
in core speed, the other requirement for the plant is that it is generated at an NP speed
of 100% or 20900 RPM. Figure 3-25 shows the top level Simulink�configuration used to
produce the linear plants where In1 and In2 are the inputs to the linearization process and
Out1 is the output of the linearization process.
Figure 3-25: Linear Model Configuration
In order to expedite the process required to determine the required values for WfInput
and QrefInput, an intermediate step is introduced. The model is modified as shown in
Figure 3-26.
43
Figure 3-26: Model to Find Operating Points
The fuel flow is proportional to core speed and therefore, an error signal between the
“NG goal” and the NG signal is created. The WfInput PID controller then produces a
WfInputBias that produces the desired core speed. The load demand correlates to the NP
speed and therefore, an error signal between the “NP goal” and the NP signal is created.
The QrefInput PID controller then produces a QrefInputBias that produces the desired
NP speed. These trimmers working together produce values for the WfInputBias and
QrefInputBias that simultaneously produce the desired NP and NG goals.
The process to find each operating point is as follows:
1. Set Tamb and Pamb to standard day. (For simplification, both are assumed to be
standard day)
2. Provide an “NG Goal”
3. Provide an “NP Goal”
4. Run the simulation until both NG and NP are with acceptable tolerances. In this
case, a 0.1% tolerance was used for both NP and NG.
The necessary inputs for WfInput and QrefInput were determined to be as shown in
Table 3-25. The first column correlates to WfInput and the second column correlates to
44
QrefInput. The table also shows the values of the states of the models NP , NG, P3, P41,
and P45.
Table 3.2: State Operating PointWf
(lbmhr
)Qreq (ft− lbf) NP (%) NG (%) P3 (psi) P41 (psi) P45 (psi)
832 460 99.15 99.26 251.1 238.2 51.06
732.1 401.4 99.92 98.12 240.5 228.1 48.83
617.8 328.4 99.89 96.16 217.4 205.9 44.08
526.3 263.3 99.81 94.23 195.6 185 39.71
445.2 205.4 99.86 92.18 175.3 165.6 35.69
377.8 157.5 99.93 90.09 156.6 147.8 32.14
336.1 127.3 99.82 88.22 143.5 135.4 29.74
287.6 90.46 99.92 86.08 126.2 119.1 26.73
251.9 60.7 99.84 84.16 111.3 105.1 24.22
220.5 38.74 99.93 82.09 99.35 93.83 22.44
187.7 18.7 99.9 80.13 87.44 82.55 20.82
172.7 8.906 99.98 78 81.5 76.96 20.07
161.5 1.585 99.98 76 76.7 72.44 19.49
150.3 -4.24 99.97 74 71.88 67.9 18.92
141 -3.949 100 72 67.24 63.55 18.39
133.4 -3.724 100 70 62.82 59.42 17.91
The following code was used to find the WfInputBias, QrefInputBias and state vector
to produce NG at 98% and NP at 100%:
1: WfInputBase = 832; %pph
2: QreqInputBase = 460; %Load ft-lbs
3: tol = 0.1;
4: %NG 98, NP 100
5: NgGoal = 98;
6: NpGoal = 100;
7: %Find the operating point
8: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
9: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
10: xInitialFindOp = xFinalFindOp;
11: sim(’NonLinearRTM FindOp’,50)
12: end
13: %Setup up inputs for linmod
14: WfInput = WfInputBase+WfInputBias.signals.values; %pph
15: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
16: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
17: InputOpPoint = [0 0 ]
18: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [StateOpPoint’;WfInput;QreqInput ];
19: %Linearize the operating point
20: NG098 = linmod(’NonLinearRTM Lin’,StateOpPoint,[0 0 ])
45
The complete m-file used to create all of the linearized plants can be found in ap-
pendix G.2.
The result from the code in appendix G.2 is a set of plants between 76% and 100%
NG with points every 2% NG. The state space matrices and eigenvalues for each of the
plants is in appendix H.1. At this point, the eigenvalues are reviewed to determine if the
plants are stable or unstable. In addition, the eigenvalues obtained are compared against
the eigenvalues from Ballin’s work the baseline paper “A High Fidelity Simulation of a
Small Turboshaft Engine” [1]. Figure 3-27 shows the eigenvalues obtained by linearizing
the model compared to the five degree of freedom model described in appendix B of the
model source paper [1].
Figure 3-27: Compare Eigenvalues to Source Paper
A review of Figure 3-27 reveals that there are three eigenvalues that are relatively low
frequency NP, NG and Ps3. The frequency of the eigenvalues of P45 and P41 are much
46
higher than bandwidth of the baseline controller and the LPV controller. Therefore, if
desired the model can be simplified by eliminating the three highest frequency eigenvalues.
47
Chapter 4
Load Model
The load demand model used for this research is based on the T700 engine model capabil-
ities. Two engines running at the maximum core speed producing the torque required to
maintain the rotor speed at 100% is defined as the 100% collective point. The zero percent
collective point is defined as zero shaft horsepower required. The curve between zero and
maximum load required follow a third order polynomial as given by equation 4.2. The load
model described in this chapter is compatible with the single pole rotor model described in
reference [1] that the engine model and baseline engine controller is derived from.
4.1 Load Model Assumptions
The following assumptions are applied to the construction of the load model:
1. The rotor can be represented the lumped inertia of the entire rotor system including
the main gear box. In practice, helicopter rotor models are normally much more
complex requiring attenuation for the main and tail rotor natural frequencies.
2. The collective to load application follows is a 3rd order polynomial.
3. The collective actuator response can be modeled by a simple lag.
4. The load remains constant across all airspeeds.
48
4.2 Load Model Architecture
The load model integrates the engine gas torque minus the load over the total inertia as
described by equation 3.27 and Figure 3-22. This architecture lumps the inertia of the
transmission, the main rotor and the tail rotor together. Table 4.1 shows the inertial values
used in this research based on the information provided by the work of W. Pfiel in his thesis
“Multivariate Control for the GE T700 engine using the LQR/LTR Design Methodology”
[6].
Table 4.1: Rotor Inertia Values
Description Signal Name Inertia (ft-lb-sec/RPM)
Transmission Inertia Jr 0.00538
Main Rotor Inertia Jr 0.1103
Tail Rotor Inertia Jet 0.01648
Since the power turbine inertia values are in units of ft ∗ lbf ∗ sec2 the inertial values
given in Table 4.1 must be converted. Equation 4.1 combines these parameters and performs
the conversion to the correct units.
Jload =(Jt+ Jmr + Jtr) ∗ 60
2 ∗ π(4.1)
The collective to shaft horsepower relationship used in this research as described in
the introduction of this chapter is based from a 3rd order polynomial which is given by
equation 4.2:
y = −0.0005 ∗ x3 + 0.47 ∗ x2 +−5 ∗ x+ 4 (4.2)
Table 4.2 resulting from this equation was modified slightly at the 10% point in Table 4.2
since the shaft horsepower required was negative at this point in the equation.
49
Table 4.2: Collective to Shaft Horsepower Relationship
Collective % Shaft Horsepower
0 4
10 10
20 88
30 263.5
40 524
50 866.5
60 1288
70 1785.5
80 2356
90 2996.5
100 3704
110 4475.5
The collective signal, labeled as “ACP”, is linearly interpolated to produce the load
shaft horsepower as shown in Figure 4-1. The figure shows that the relationship between
collective and shaft horsepower for a helicopter is a function of airspeed, however, for the
sake of simplicity this relationship is ignored for this research. Therefore, the values at 200
knots are set equal to the values at 0 knots in the model.
Figure 4-1: Load Shaft Horsepower
The engine requires that the load be in terms of torque in ft-lbs. Therefore, the shaft
horsepower is corrected for ambient temperature and pressure and then converted to torque
at 100% NP speed as shown in Figure 4-2. The output labeled “QrefLPV” is used in the
LPV controller implementation described in chapter 7. The time based input “QrefDist”
50
is used to input a load disturbance that is not compensated by the controller. The output
Qreq, used in the engine model as shown in Figure 3-22, is multiplied by half since the load
demand is for two engines.
Figure 4-2: Load Torque
51
Chapter 5
Engine Baseline Control System
Model
The T700 fuel control system model used as the baseline for this research was taken from
the paper written by Mark G. Ballin of the NASA Ames Research Center. The paper
“A High Fidelity Simulation of a Small Turbofan Engine” [1] provides the equations to
produce a high fidelity non-linear simulation of the GE T700 engine. The equations are
provided in this chapter for reference and convenience. The fuel control system provided
as the baseline is legacy technology involving a hydro-mechanical fuel unit (HMU) with
a digital trimming system. Current fuel control systems are based on a Full Authority
Digital Electronic Controller or FADEC which replace the most of the legacy controls with
electronic equivalents within the FADEC. However, the control system is still in use today
on several helicopter applications. In addition, the equations used to design HMU systems
are transferrable to a FADEC/FMU (fuel metering unit) system.
The control system on the T700 engine controls the fuel flow, the variable geometry, and
the operability bleed flow. The equations presented assume that the variable geometry and
operability bleed flow are controlled as scheduled. The equations for the plant make this
assumption as well. Therefore, the control system in this analysis considers only control of
the fuel flow into the engine. There are several boundary conditions that are considered
when designing a fuel control:
1. The following items are in order of decreasing importance:
52
(a) The core speed deceleration rate shall be greater than or equal to a minimum
scheduled reference.
(b) The core speed acceleration rate shall be less than or equal to a maximum
schedule reference.
(c) The core speed shall be greater than or equal to a minimum scheduled reference.
(d) The maximum fuel flow shall be less than or equal to a maximum scheduled
reference.
(e) The core speed shall be less than or equal to a maximum scheduled reference.
(f) The power available shall be less than or equal to the schedule set by the power
available spindle.
(g) The power turbine reference shall be kept at 100% or 20900 RPM.
2. It should be noted that the core speed acceleration is governed only byWf
Ps3and not
by ˙NG.
The purpose of this research is to determine if a modern linear parameter varying control
system can take the place of the baseline controller in controlling the NP speed.
5.1 Baseline Controller Assumptions
The following assumptions are applied to the construction of the baseline engine fuel control
model:
1. The model employs the following simplifications:
(a) The variable geometry and bleed valves are assumed to be on schedule and are
not included in the modeled control system.
(b) The T45 governor reference is set at a value such that it will not come into
regulation as this governor is not part of the primary analysis.
(c) The fuel flow actuator is modeled as a simple lag.
(d) The torque of the two engines is identical. Therefore, the load share governor
is ignored as it is not part of the primary analysis.
53
5.2 Baseline Controller Tools
The engine control system model is implemented in native Matlab�Simulink�since the
engine model and the LPV controller were also implemented in Simulink�facilitating the
back to back comparison.
5.3 Baseline Controller Architecture
The equations to build the baseline fuel control system model are given pictorially in frag-
ments as they appear in the Simulink�model. The complete set of Simulink�diagrams is
given in Appendix D. The variable names used in the diagrams and equations below are
defined in the Nomenclature section starting on page 14.
There are two inputs into the plant that determine where the engine will operate. The
fuel flow is provided by the fuel control system and the requested load is derived from the
rotor system model which is discussed in chapter 4.
As mentioned above, the fuel flow is determined by the fuel control system by selecting
between several governors utilizing a priority scheme. Part of this selection logic is shown
in Figure 5-1 where WFIDM is the NG idle fuel flow bottoming reference, WFPAC is the
NG acceleration topping reference and WFPDM is the deceleration bottoming reference.
WFPDM incorporates the fuel flow topping, NG toppping and the NP governor. WFPDM
also includes the open loop collective based feedforward (Note: The feedforward logic is not
within the scope of this research). The collective lever is part of the rotorcraft that the
pilot uses to control the lift of the helicopter. The purpose of this research is to replace the
baseline NP governor with a linear parameter varying H∞ controller.
Figure 5-1: Fuel Flow Governor Selection
(The units of HMUSEL are in ratio units or WfPs3
)
54
The NG idle fuel flow bottoming reference is defined in Figure 5-2. The plot and table
definitions for the 1-D linear interpolation labeled FHM5 HMUIdleSchedFunc1 in Figure 5-
2 is Figure F-6 and Table F.6 respectively. The plot and table definitions for the 1-D linear
interpolation labeled FHM6 HMUIdleSchedFunc2 in Figure 5-2 is Figure F-7 and Table F.7
respectively.
Figure 5-2: NG Idle Fuel Flow Governor
The signal PCNGHL is a lagged version of PCNG which is the gas generator speed in
percent as shown in Figure 5-3.
Figure 5-3: Percent Gas Generator Speed Lagged
(where NGdes is defined in Table B.1 and CNTL is defined in Table 1 )
The NG acceleration topping reference, WFPAC, is defined by Figure 5-4. The plot and
table definitions for the 2-D linear interpolation in Figure 5-4 is Figure F-8 and Table F.8
respectively.
Figure 5-4: NG Acceleration Topping Reference
The NG deceleration bottoming reference, WFPDC, is defined by Figure 5-5.
55
Figure 5-5: NG Deceleration Bottoming Reference
(where AWFP and BWFP is defined in Table 1 )
The WFPDM signal is a combination of the fuel flow topping schedule, the NG fuel
flow reference, the NG topping schedule, the load demand fuel flow reference and the NP
governor as shown in Figure 5-6.
Figure 5-6: Commanded Wf/Ps3 Signal Before Limiting Selector
(where NGREF and KNDRP is defined in Table 1 )
The fuel flow topping schedule is defined by Figure 5-7. The plot and table definitions
for the 1-D linear interpolation in Figure 5-7 is Figure F-2 and Table F.2 respectively.
Figure 5-7: Fuel Flow Topping Reference
The NG topping reference is based on the power available spindle which is another pilot
input as shown in Figure 5-8. The pilot uses this lever to set the NG speed between the
idle detent and the fly detent. This lever is also used to shutdown the engine. The plot and
table definitions for the 1-D linear interpolation in Figure 5-8 is Figure F-3 and Table F.3
respectively.
56
Figure 5-8: NG Topping Reference
The collective based feedforward logic is defined as shown in Figure 5-9. The plot and ta-
ble definitions for the 1-D linear interpolation labeled FHM3 HMULoadDmdCompSchedFunc1
in Figure 5-9 is Figure F-4 and Table F.4 respectively. The plot and table definitions for
the 1-D linear interpolation labeled FHM4 HMULoadDmdCompSchedFunc2 in Figure 5-2
is Figure F-5 and Table F.5 respectively.
Figure 5-9: Collective Based Feedforward
(Where ACP is the collective signal. Also, where NGREF and KNDRP are defined in
Table 1)
The feedforward logic is sent through a lag before entering the fuel flow command signal,
WFPDM, logic as shown in Figure 5-10.
Figure 5-10: Collective Based Feedforward Lagged
(Where CLLDS is defined in Table 1)
The NP governor has the most complex logic in the baseline fuel control system. The
NP error signal is calculated as shown in Figure 5-11. The XWLO Eng1 signal is the load
share bias. The torque of engine 1 has been set to the torque of engine 2 disabling the load
57
share logic. Therefore, the logic for load share is not provided here but it is provided in
appendix D.
Figure 5-11: NP Governor Error Signal
(Where CTPL is defined in Table 1)
The NP error signal is then compensated as shown in Figure 5-12.
Figure 5-12: NP Governor Error Signal Compensation
(Where CT13, CT14, CT14, ZK1,ZK5, ZK7, ZK9, ZK10, and B6 are defined in Table 1.
The input TRQL Eng1 is the torque of engine 1 from the engine model.)
The NP governor dynamics are then added to the compensated NP error signal as shown
in Figure 5-13.
Figure 5-13: NP Governor Dynamics
58
(Where T11, CT2, and CT12 are defined in Table 1)
The NP governor demand is then compared to the T45 governor signal and the maximum
between the two is chosen as shown in Figure 5-14. However, the T45 reference is set such
that the T45 is disabled as this is not in the primary area of this research. Therefore, the
logic for the T45 governor is not provided here but it is provided in appendix D.
Figure 5-14: NP Governor Selection Logic
The NP trim demand dynamics are shown in Figure 5-15 using the NP governor dy-
namics as the input.
Figure 5-15: NP Trim Dynamics
(Where XKPROP, XKING, and CT16 are defined in Table 1)
The low limit on the integrator is determined by the engine 2 torque level. This part
does not exist in native Simulink�and therefore, a variable low limit on the integrator was
implemented. Figure 5-16 shows the calculation for the low limit of the integrator and
Figure 5-17 shows the selection logic. While this logic was built into the model, the logic
was disabled when comparing the performance of the baseline NP governor to the LPV NP
Governor. The low limit on the integrator did not allow NP to return to the datum during
large load demand transients.
59
Figure 5-16: NP Trim Integrator Low Limit
Figure 5-17: NP Trim Integrator Low Limit Selection Logic
The torque motor dynamic compensation is added, as defined in the source paper [1] to
the NP trim demand signal as shown in Figure 5-18.
Figure 5-18: Torque Motor Compensation
(Where TMLG, TMGN, and TMLVG are defined in Table 1)
The selected fuel flow ratio unit signal, HMUSEL, is multiplied by Ps3 to obtain a fuel
flow demand in pounds per second, which is then applied to the fuel system dynamics
simulated as a simple lag, finally, the fuel flow from the fuel system is then converted
from pounds per second to pounds per hour for input into the engine model as shown in
Figure 5-19.
Figure 5-19: Fuel Flow to the Model
(Where CMLV is defined in Table 1)
60
5.4 Baseline Controller Validation
The baseline fuel control system is validated utilizing two transient cases provided in ref-
erence [1]. Figure 11 of reference [1] is a collective load disturbance while Figure 12 of the
reference paper provides a cyclic disturbance. The distinction between the two is important
to the engine control system. Currently, most helicopter engine control systems have knowl-
edge of the collective lever which is proportional to part of the load demand. However, there
are other factors that impact the rotor load such as cyclic movement, pedal movement, or
ambient conditions such as wind. Movement of the collective lever is called a compensated
maneuver due to the fact that engine control system reads the collective position and, in an
open loop fashion, adjusts the fuel flow in anticipation of the load application. Movement
of the cyclic or pedals is considered an uncompensated maneuver since the engine control
system does not have knowledge of the transient before the application of load. In this case,
the transient is driven solely from the error of the NP signal from the datum.
Figure 11 of reference [1] shows a collective pull producing a torque disturbance of about
40 ft-lbs with the engine model connected to the Sikorsky UH60A GENHEL rotor system
compared to flight test data. In this case, the aircraft is flying at approximately 90 knots.
However, the ambient pressures and temperatures are not provided. It should be noted that
the model prepared for this research does not include installed effects and therefore, does
not include the engine impacts due to ram air at the engine inlet. In addition, the rotor
system used in this research is much simpler than a typical rotor system model.
Since the ambient conditions were not disclosed, they were estimated by attempting to
match the core speed at the given fuel flow. It should also be noted that it is assumed
that there was an error in the labeling to the total torque parameter and that it should
have been “TOT.TORQUE, ft− lbsX10−1”. The T700 engines modeled for this research
are not capable of producing 12,000 ft-lbs or 1/2 of the 24,000 ft-lbs shown as the baseline
torque in Figure 11. The engine in the model is capable of providing approximately 460
ft-lbs at 100% NG and 100% NP speeds on a standard day at sea level. Finally, it should
be noted that the collective to load relationship is arbitrary, as discussed in chapter 4, for
this research while this relationship is modeled from the UH60A GENHEL model in the
reference paper.
Figure 5-20 shows a collective pull producing a load disturbance of approximately the
61
same magnitude as Figure 11 in the reference paper. The ambient pressure is set to 12.2
psia which corresponds to 5,000 feet on a standard day. The ambient temperature is set
to 518.67◦R. These parameters were adjusted in an attempt to match the transient in the
reference paper.
0 2 4 6 8280
300
320
340
360
380
400
420
sec
Wf (
pph)
0 2 4 6 899.5
100
100.5
101
secN
P (
%)
0 2 4 6 889
89.5
90
90.5
91
91.5
92
92.5
sec
PC
NG
(%
)
0 2 4 6 8200
220
240
260
280
300
sec
TO
RQ
45 (
ft−lb
s)
SimulinkPaper
SimulinkPaper
SimulinkPaper
SimulinkPaper
Figure 5-20: Baseline Controller Validation - Collective Pull
Figure 5-21 shows a cyclic movement producing a load disturbance of approximately
the same magnitude as Figure 12 in the reference paper. The ambient pressure is set to
12.2 psia which corresponds to 5,000 feet on a standard day. The ambient temperature is
set to 469.67◦R. These parameters were adjusted in an attempt to match the transient in
the reference paper.
62
−2 0 2 4 6 8280
300
320
340
360
380
400
sec
Wf (
pph)
0 2 4 6 898
98.2
98.4
98.6
98.8
sec
NP
(%
)
0 2 4 6 889.2
89.4
89.6
89.8
90
90.2
sec
PC
NG
(%
)
−2 0 2 4 6 8180
190
200
210
220
230
sec
TO
RQ
45 (
ft−lb
s)
SimulinkPaper
SimulinkPaper
SimulinkPaper
SimulinkPaper
Figure 5-21: Baseline Controller Validation - Cyclic Disturbance
While the two transients do not match absolutely, they do match fairly well dynamically.
In other words, the shape of the model response is very similar as well as the delta magnitude
for each of the parameters. Given the assumptions required to produce the transients and
the fact that the aircraft installation effects are not modeled, the match was considered
sufficient for the purposes of this research.
63
Chapter 6
Linear Parameter Varying (LPV)
Control Theory
6.1 Classical Approach
The classic approach to digital engine control design is to develop a non-linear model,
linearize that model at periodic core speed points, develop a controller for each linear point
and then interpolate or “gain schedule” between the LTI controllers as shown in Figure 6-1.
64
Figure 6-1: Classic Design Process
The major advantage to this process is that linear controller design methodologies can
be applied as long as the plant satisfies a few assumptions. While this is a proven method
with many fielded applications, there are inherent inefficiencies and potential de-stabilizing
results involved with this process. The most fundamental assumption that must be validated
when utilizing this approach is that the scheduling variable should vary slowly with respect
to the system dynamics [9]. This assumption is an indication the controller designs are
based from fixed time parameter plants and that those plants should represent the total time
varying plant in order to expect some reasonable guarantee of stability [10]. In engine control
design this is accomplished with extensive simulation and testing as well as conservative
gain and phase margin guidelines. This method can therefore sacrifice performance to cover
for un-modeled dynamics that are not compensated by the controller.
6.2 LPV Approach
A controller design that takes dynamics between the fixed operating points into account and
removes the slow varying parameter restriction could therefore, be desirable for an engine
control system. The controller design methodology utilized for this research is the linear
65
parameter varying (LPV) self scheduled H∞ control theory described in the work by Becker
and Packard [11]. This methodology utilizes a single quadratic Lyapunov function to find
a stabilizing linear finite dimensional controller, dependent on ρ, that performs well when
combined with a parameter varying plant also dependent upon ρ[11]. The symbol ρ stands
for a time varying parameter set. In the case of this research, ρ is the engine core speed
(NG).
This control methodology is limited to linear parameter varying plants where[12]:
� The model depends affinely on ρ
� The parameter set ρ is an available real time measurement(s)
� The time-varying parameter(s) ρ ranges within a fixed polytope
The state-space representation of the model is given by equation 6.1 [12]:
x = A(ρ(t))x+B(ρ(t))u
y = C(ρ(t))x+D(ρ(t))u(6.1)
The classical approach produces an LTI controller at specific values of ρ and then in-
terpolates between controllers to produce a “stable” system as ρ varies. However, this
approach does not guarantee stability or performance between linearized points. An LPV
controller takes advantage of the knowledge of the time varying parameter(s) resulting in a
controller structure given by equation 6.2 [12]:
xk = Ak(ρ(t))x+Bk(ρ(t))y
u = Ck(ρ(t))xk +Dk(ρ(t))y(6.2)
(where y and u designate the measurements and the controller inputs respectively)
The LPV control theory utilizes the Bounded Real Lemma, the definition of quadratic
H∞ performance and the Vertex property as the basis determining an LPV controller[12].
66
Lemma 6.2.1 (Bounded Real Lemma). Given a continuous transfer function G(s) = D+
C(sI −A)−1B, the following statements are equivalent:
(i) A is stable and ||G(s) = D + C(sI −A)−1B||∞ < γ
(ii) there exists a positive definite solution X to the matrix inequality:
M(X, γ) =
ATX +XA XB CT
BTX −γI DT
C D −γI
< 0 (6.3)
(Note: the Bounded Real Lemma is also applicable to discrete systems but the
equations presented here apply only to continuous systems)
The Bounded Real Lemma can be extended from purely LTI systems to LPV systems
utilizing the definition of Quadratic H∞ Performance.
Definition 6.2.2 (Quadratic H∞ Performance). The LPV system
x = A(ρ(t))x+B(ρ(t))u
y = C(ρ(t))x+D(ρ(t))u(6.4)
has quadratic H∞ performance γ if and only if there exists a single matrix X > 0 such
that
M(X, γ) =
A(ρ)TX +XA(ρ) XB(ρ) C(ρ)T
B(ρ)TX −γI D(ρ)T
C(ρ) D(ρ) −γI
< 0 (6.5)
for all admissible values of ρ.
The Quadratic H∞ Performance applies to systems with a fixed ρ, however, in the case
of polytopic LPV systems the matrix X in equation 6.5 can be found by solving a finite set
of LMIs. The Vertex property shows that 6.5 holds for all systems as a function of ρ if and
only if is holds at the vertices.
67
Theorem 6.2.3 (Vertex Property). Consider a polytopic LPV plant described by
x = A(ρ(t))x+B(ρ(t))u
y = C(ρ(t))x+D(ρ(t))u(6.6)
where all systems as a function of ρ exist within the collection of vertices
A(ρ) B(ρ)
C(ρ) D(ρ)
ε P = Co
Ai Bi
Ci Di
, i = 1, 2, ..., r
(6.7)
The following statements are equivalent:
(i) the LPV system is stable with quadratic H∞ performance γ
(ii) there exists a single matrix X > 0 such that, for all A(ρ) B(ρ)
C(ρ) D(ρ)
ε P,
M(X, γ) =
A(ρ)TX +XA(ρ) XB(ρ) C(ρ)T
B(ρ)TX −γI D(ρ)T
C(ρ) D(ρ) −γI
< 0 (6.8)
(iii) there exists X > 0 such that satisfying the system of LMIs
M(X, γ) =
AT
i X +XAi XBi CTi
BTi X −γI DT
i
Ci Di −γI
< 0, i = 1, 2, ..., r. (6.9)
Proof. Statements (i) and (ii) are equivalent by definition utilizing the Bounded Real
Lemma (6.2.1) and the definition of Quadratic H∞ Performance (6.2.2). The equivalence
of (ii) and (iii) is given by the fact that A(θ) B(θ)
B(θ) C(θ)
=
r∑i=0
αi
Ai Bi
Ci Di
(6.10)
with αi ≥ 0 andr∑
i=0αi = 1
68
Therefore, using the Bounded Real Lemma(6.2.1), the definition of Quadratic H∞ Per-
formance (6.2.2) and the Vertex property (6.2.3, a controller with quadratic H∞ perfor-
mance γ is found by finding X for the LMIs in equation 6.9[12]. In order to make this a
convex problem, the following restrictions are placed on the plant[12]:
Given the state space structure:
x = A(ρ(t))x+B1(ρ(t))w +B2(ρ(t))u
z = C1(ρ(t))x+D11(ρ(t))w +D12(ρ(t))u
y = C2(ρ(t))x+D21(ρ(t))w +D22(ρ(t))u
(6.11)
(where y is the measured output(s) and z is the controlled output(s))
(6.2a) D22(ρ(t)) = 0
(6.2b) B2(ρ(t)), C2(ρ(t)), D12(ρ(t)) and D21(ρ(t)) are parameter independent.
(6.2c) (A(ρ(t)), B2) and (A(ρ(t)), C2) are stabilizable and observable over the entire range
of polytope vertices.
Plant restriction (6.2a) can be worked around by using a loop shifting technique de-
scribed on page 77 of reference [13].
Plant restriction (6.2b) can be worked around by introducing new variables u and y
such that[12]
xu = Auxu +Buu
u = Cuxu
(6.12)
and
xy = Ayxy +Byy
y = Cyxy
(6.13)
(where Au and Ay are stable)
The resulting modified LPV is therefore,
69
x
xu
xy
=
A(ρ(t)) B2(ρ(t))Cu 0
0 Au 0
ByC2(ρ(t)) 0 Ay
x
xu
xy
+
B1(ρ(t))
0
ByD21(ρ(t))
w+
0
Bu
0
u
(6.14)
z =(C1(ρ(t)) D12(ρ(t))Cu 0
)x
xu
xy
+D11(ρ(t))w (6.15)
y =(
0 0 Cy
)x
xu
xy
(6.16)
It is clear from equations 6.14, 6.15 and 6.16 that the modified control and measurement
matrices are parameter independent satisfying Plant restriction (6.2b).
Plant restriction (6.2c) is necessary for the plant to be stabilizable via output feed-
back [13].
70
Chapter 7
LPV Controller Design
7.1 LPV Controller Assumptions
The following are the LPV controller assumptions:
� The plant must satisfy the assumptions detailed in section 6.2. Since the B matrix is
parameter dependent, the methods described in [12] must be utilized.
� It is assumed that the baseline controller provided in reference [1] was sufficiently
tuned for this application.
� It is assumed that there is no model uncertainty. In practice, this must be included
for robustness.
7.2 LPV Controller Tools
The LPV controller design described in this chapter is accomplished using the Matlab�LMI
control toolbox developed by Pascal Gahinet, Arkadi Nemirovski, Alan J. Laub and Mahout
Chilli [2]. There are several commands that were critical in the development of the LPV
controller for this research: “ltisys”, “psys”, “sconnect” and “hinfgs”. Descriptions of these
commands are provided in appendix G.1. The “ltisys” command packs the state-space
matrices A, B, C, D, and E into a single system matrix readable by the LMI toolbox. The
“psys” command takes the packed system matrices created by the “ltisys” command and
produces a polytopic model that can be referenced by “hinfgs”. The “sconnect” command
71
sets up the structure for the “hinfgs” command such that the inputs and outputs of the
controller are appropriately indicated. The “hinfgs” command takes the polytopic system
model and produces a gain scheduled H∞ controller.
In addition to the tools used to create the controller, the pdsimul command is used to
simulate the controller along parameter trajectories. The description for this command is
also provided in appendix G.1.
7.2.1 Changes to LMI toolset to deal with polytopic model
The pdsimul command was used to validate the controller against the linear plant. However,
as stated in the command description in appendix G.1 it was only designed for affine systems.
However, with a slight modification the code for pdsimul and the dependent function polsim,
it is possible to utilize these commands for the polytopic system in this research. The code
changes are provided in appendix G.3. To avoid confusion, the functions were renamed
from pdsimul and polsim to t700pdsimul and t700polsim respectively.
7.3 LPV Controller Architecture
The linearized plants obtained in section 3.5 have the following state space equation form:
x =
˙NP
˙P45
˙Ps3
˙P41
˙NG
= A
NP
P45
Ps3
P41
NG
︸ ︷︷ ︸
x
+B
Wf
Qref
︸ ︷︷ ︸
u
y =
Qpt
NP
NG%
˙NG
= C
NP
P45
Ps3
P41
NG
︸ ︷︷ ︸
x
+D
Wf
Qref
︸ ︷︷ ︸
u
(7.1)
72
However, the LPV controller for this research is based only on power turbine speed error
and therefore, the plant needs to be modified to support the architecture in Figure 7-1.
Figure 7-1: Modified Linear Plant Structure
As shown in Figure 7-1, in addition to the NP error output to the controller two other
outputs were added to the structure: NP error and Wf. These parameters serve as the
weighted outputs to drive the performance and ensure that the control input, Wf, remains
within the capability of the hardware. The state space equations are modified to take the
form:
x = Ax+(BQref 0
)︸ ︷︷ ︸
B
Qref
NPref
︸ ︷︷ ︸
w
+BWfWf︸︷︷︸u
z =
Wf
NPref
=
0
CNP
︸ ︷︷ ︸
C1
x+
0 0
0 −1
︸ ︷︷ ︸
D11
Qref
NPref
︸ ︷︷ ︸
w
+
1
0
Wf︸︷︷︸u
y =(NPref
)= CNPx+
(0 −1
)︸ ︷︷ ︸
D21
Qref
NPref
︸ ︷︷ ︸
w
+(0) Wf︸︷︷︸u
(7.2)
(where x remains the same as in equation 7.1)
The plant described by 7.2 provides the inputs Qref and NPref as external inputs, the
fuel flow input from the controller Wf , the outputs for weighting Wf and NPerror and
the final output NPerror as the input to the controller. This configuration was attempted
but unfortunately the B1 matrix was not parameter independent and the “hinfgs” script
returned an error per plant restriction (6.2b). Therefore, the plant must be further modified
73
as described in section 6.2. The state-space equations are further modified to produce a
pseudo-parameter independent B matrix as shown in equation 7.3. x
˙u
=
A BWf
0 −a
︸ ︷︷ ︸
A
x
u
+
BQref 0
0 0
︸ ︷︷ ︸
B
Qref
NPref
︸ ︷︷ ︸
w
+
0
1
Wf︸︷︷︸u
z =
Wf
NPref
=
0 0
CNP 0
︸ ︷︷ ︸
C1
x
u
+
0 0
0 −1
︸ ︷︷ ︸
D11
Qref
NPref
︸ ︷︷ ︸
w
+
1
0
Wf︸︷︷︸u
y =(NPref
)=(CNP 0
)x
u
+(
0 −1)
︸ ︷︷ ︸D21
Qref
NPref
︸ ︷︷ ︸
w
+(0) Wf︸︷︷︸u
(7.3)
(where x remains the same as in equation 7.1)
The state space equation 7.3 parameter dependent vector BWfis now part of the mod-
ified A matrix satisfying plant restriction (6.2b). The consequence is that a new parameter
is introduced u with the dynamics of a low pass filter with a corner at a.
˙u = u− au (7.4)
or
us = u− au (7.5)
which when rearranged provides the transfer function from u to u:
u
u=
1
s+ a(7.6)
The input point for the linear plant obtained in section 3.5 is the output WF shown in
Figure 5-19. The dynamics of the fuel flow actuator is a low pass filter of the form:
u
u=
1
CLMV ∗ s+ 1(7.7)
(where CLMV is defined in Table E)
74
Therefore, to include the fuel flow actuator dynamics as part of the modified plant the
structure in equation 7.3 is changed to:
x
˙u
=
A BWf
0 −1
︸ ︷︷ ︸
A
x
u
+
BQref 0
0 0
︸ ︷︷ ︸
B
Qref
NPref
︸ ︷︷ ︸
w
+
0
CLMV
Wf︸︷︷︸u
z =
Wf
NPref
=
0 0
CNP 0
︸ ︷︷ ︸
C1
x
u
+
0 0
0 −1
︸ ︷︷ ︸
D11
Qref
NPref
︸ ︷︷ ︸
w
+
1
0
Wf︸︷︷︸u
y =(NPref
)=(CNP 0
)x
u
+(
0 −1)
︸ ︷︷ ︸D21
Qref
NPref
︸ ︷︷ ︸
w
+(0) Wf︸︷︷︸u
(7.8)
(where x remains the same as in equation 7.1)
At this point, the modified plant is ready for the application of the weighting functions
which will determine the performance of the controller. In this case, the desired performance
is good disturbance rejection, fuel flow actuator commands appropriate for the hardware,
and zero steady state error. Therefore, the weighting function on the error signal should
be a low pass filter to achieve good steady state performance. The controller weighting
function on the other hand should be a high pass filter to penalize high frequencies and
keep the bandwidth of the control signal within the capabilities of the hardware.
We(s) =(10−3s+ 1)
(10−1s+ 1)(7.9)
(where We is the NP error weighting function)
Wc(s) =(10−2s+ 1)
(10−4s+ 1)(7.10)
(where Wc is the control input weighting function)
Once the weighting functions have been added to the modified plant, the LPV controller
must be setup using the sconnect command which indicates to the hinfgs command the plant
75
inputs and outputs as well as the controller inputs and outputs. The use of the sconnect
command is given in appendix G.4.2. At this point, the plant has been modified per the
plant restrictions given in section 6.2, the weighting functions on the control input and NP
error have been included and the inputs and outputs have been identified via the sconnect
command. Figure 7-2 shows this configuration.
Figure 7-2: Modified Linear Plant Structure with Weighting Functions
The linear parameter varying gain scheduled controller is now be determined by the
hinfgs command as shown in appendix G.4.2. The controller and linear plant are combined
using the slft command shown in appendix G.4.3. The vertices of the model are defined by
the pvec command and then incorporated into the system matrix using the addpv command.
In order to use the t700pdsimul function, the trajectory of the varying parameter must be
defined as well as the input function. The varying parameter in this case is the core speed
of the engine. The parameter varying system matrix is built as a function of core speeds
between 92 through 98% at intervals of 2%. To specify, for example, a plant and controller
at a core speed of 93.5 the parameter matrix returned by the trajectory m-file is:
p =
P92
P94
P96
P98
=
(1−(
93.5− 92
2
)(
93.5− 92
2
)0
0
=
0.25
0.75
0
0
(7.11)
The linear system is simulated using the t700pdsimul command which requires a trajec-
tory and an input function. The Matlab�code to produce core speed trajectory files with a
sinusoid pattern with various frequencies and bias is provided in appendix G.4.4. The input
function is a step input for both the disturbance, Qref, and the reference, NPref. The plant
76
simulated is set back to the configuration shown in equation 7.3 removing the weighting
functions.
Figure 7-3 shows the response of the control system to a 100 RPM step in the NP
reference. The graphs to the right show the parameter varying matrix as it transitions from
92% to 98% core speed, see equation 7.11 for an example, at frequencies of 1, 5, 10, 15, 20,
and 25 hertz.
Figure 7-3: 100 RPM Step in NP reference
Figure 7-4 shows the response of the control system to a 40 ft-lb load disturbance. The
graphs to the right show the parameter varying matrix as it transitions from 92% to 98%
core speed, see equation 7.11 for an example, at frequencies of 1, 5, 10, 15, 20, and 25 hertz.
77
Figure 7-4: 40 ft-lb Step Load Disturbance
Figure 7-3 shows a good control system response to the NP reference step input for the
following core speed trajectories 95 + 2 ∗ sin(ω ∗ t) where ω is set equal to 1, 5, 10, 15, 20
and 25. Figure 7-4 also shows a good system response even given the change in steady state
NP speed. The reason for undamped response at higher frequencies is that the controller
is based from a delta plant model and the load disturbance moved the plant off of the
controller design point. In order to bring the NP speed back to the original NP reference,
the delta in steady state fuel flow must be added which is done in the non-linear simulation.
At this point, the linear model is validated and the focus is shifted to developing a controller
for the non-linear model.
The baseline non-linear model controller consists of five selectable controllers as shown
in Figure 5-1. The intent of this research is to replace the NP governor while leaving
the engine acceleration and deceleration governors in place. Therefore, the LPV controller
78
replaces the calculations for WFPDM parameter. However, since the linear plant model
was derived from the WF parameter shown in Figure 5-19, the units of the output of the
LPV controller must be changed from pph to pphpsi or wf
Ps3 . In addition, the steady state fuel
flow must be added to the output of the controller due to the fact that the linear model is
a delta model. The following modifications, shown in Figure 7-5, are made to the baseline
fuel control system to incorporate the new LPV controller.
1. The LPV controller is added as an s-function with core speed and power turbine speed
error as inputs and fuel flow as an output.
(a) The output of the controller is in PPS which needs to be converted to PPH.
(b) The steady state fuel flow is added to the controller output. Two options are
considered:
i. The torque parameter, Qpt, is used as the input to a table lookup producing
steady state fuel flow.
ii. The load reference, QreqLPV , is used as the input to a table lookup produc-
ing steady state fuel flow assuming that this parameter is known.
(c) The pressure at stage 3, Ps3, must be divided to produce the correct units for
downstream logic.
(d) A selector is added which allows the user to select between the baseline and the
LPV controller
Figure 7-5: Simulink�Changes to Figure 5-6 To Incorporate LPV Controller
79
The controller s-function is required due to the fact that there are no native Simulink�parts
that implement the LPV controller structure. However, the s-function is relatively straight
forward and is based from the Limited Integrator Level 1 M-File structure provided in the
basic Matlab�installation at "matlabroot\toolbox\Simulink\texttrademark\blocks\limintm.m".
The LPV controller, pdK, obtained via an m-file similar to the one provided in appendix G.4.2
except that the NG range is expanded to 76 to 100% is provided as an s-function parameter.
The following modifications are made to the base s-function:
1. The state space matrices are defined as global variables. This is due to the fact that
they are calculated during the derivative case.
2. The function “GetModel” is added which pulls the state space matrices from pdK.
3. The function “NGInputConversion” is added to produce the input necessary obtain
the model at the specified point.
4. The model is initialized with:
(a) The “GetModel” function is called at 92% NG.
(b) 2 inputs: NG and NP speed error
(c) 1 output: fuel flow
(d) The number of continuous states is set equal to the rows in the A matrix
(e) X0 is set to a vector of zeros the size of number of states
5. In the derivative case the “GetModel” function is called prior to calculating the
derivative.
6. The output case uses the state space matrices obtained in the derivative case to
calculate the output.
The LPV controller s-function is provided in appendix G.4.6.
7.4 LPV Controller Validation
The initial tuning of the LPV controller was performed during the linear controller design
analysis described in section 7.3. However, it was determined that additional tuning was
desired to achieve the following:
80
1. The performance of the LPV controller should be as good, if not better than the
baseline controller.
2. Good performance is defined as:
(a) Fast reaction to a step in the NP reference or a load disturbance
(b) The torque does not exhibit mid-transient torque reversals (especially those
large enough to be felt at the aircraft level).
(c) The NP speed should settle to within 0.5% of the reference in 3 cycles or less.
(d) The NP speed overshoot/undershoot should be better than or equal to the
baseline controller.
3. The LPV control action should not be faster than the torque motor actuator capability
which is modeled by a 30 msec lag.
4. The LPV control action should not drive the fuel flow commands out side the limits
of the wfPs3 acceleration and deceleration governors.
The next section shows the results LPV controller versus the baseline controller after
the tuning exercise was performed to achieve the goals stated above.
7.4.1 Comparison of baseline controller versus LPV controller
The LPV controller is validated by comparing the results from the baseline controller to the
LPV controller. The LPV controller was tuned to satisfy the goals described in section 7.4.
The tuning exercise resulted in the following controller weighting functions:
We(s) = 3 ∗ (10−2s+ 1)
(101s+ 1)(7.12)
(where We is the NP error weighting function)
Wc(s) = 0.5 ∗ (5 ∗ 103s+ 1)
(5 ∗ 10−3s+ 1)(7.13)
(where Wc is the control input weighting function)
81
The bode plot for both weighting functions 7.12 and 7.13 is shown in Figure 7-6
Figure 7-6: Bode Plot of the LPV Controller Weighting Functions Wc and We
Figures 7-7 and 7-8 show the baseline and LPV controller responses to a 100 RPM NP
reference step input at collective positions of 25% and 77.2% respectively. It is clear from
the figures that the LPV controller performance is better than the baseline controller due
to faster NP rise time, lower NP overshoot and faster settling time of both NP and torque.
82
Figure 7-7: 100 RPM NP Step Response with Collective at 25
Figure 7-8: 100 RPM NP Step Response with Collective at 77.2
Figures 7-9 and 7-10 show the baseline and LPV controller responses to a 50 RPM/sec
ramp of the NP reference RPM step input at collective positions of 25% and 77.2% respec-
tively. Again, it is clear from the figures that the LPV controller performance is better than
83
the baseline controller due to faster NP rise time, lower NP overshoot and faster settling
time of both NP and torque.
Figure 7-9: NP Reference Ramp at 50 RPM/sec with Collective at 25
Figure 7-10: NP Reference Ramp at 50 RPM/sec with Collective at 77.2
84
Figures 7-11 and 7-12 show the baseline and LPV controller responses to a 40 ft-lb
load disturbance in the rotor system at collective positions of 25% and 77.2% respectively.
The distinction between a transient involving a change in the NP reference and a load
disturbance is that during a load disturbance the controller does not have knowledge that a
transient occurred except for the feedback via the NP signal. The performance of the LPV
in this case is again superior to the baseline controller in terms of rise time, overshoot and
settling time.
Figure 7-11: Rotor Load Disturbance of 40 ft-lbs with Collective at 25%
85
Figure 7-12: Rotor Load Disturbance of 40 ft-lbs with Collective at 77.2%
Figures 7-13 and 7-14 show the baseline and LPV controller response to small instan-
taneous collective pulls. It should be noted that the LPV controller uses the load demand
generated from the rotor model. Therefore, it is provided exactly the correct amount of
steady state fuel flow where the baseline controller is using an estimate of the steady state
fuel flow. The purpose of including these figures, given that they cannot be used for com-
parison between the baseline and LPV controllers, is to show that the entitlement of the
LPV controller. The anticipation and estimate of steady state fuel flow as a function of
collective is outside the scope of this research. As expected, the performance of the LPV in
this case is significantly better than the baseline controller in terms of rise time, overshoot
and settling time.
86
Figure 7-13: Collective Instantaneous Pull from 25% to 35%
Figure 7-14: Collective Instantaneous Pull from 65.64% to 82.5%
Figures 7-15 through 7-17 show the baseline and LPV controller responses large col-
lective pulls at rates of 1 second, 2 seconds and 3 seconds respectively. Again, it should
be noted that the LPV controller uses the load demand generated from the rotor model.
87
Therefore, it is provided exactly the correct amount of steady state fuel flow where the
baseline controller is using an estimate of the steady state fuel flow. Due to the magnitude
of the 1 second collective pull, the fuel flow requested by the NP controllers in both cases
exceeds theWf
Ps3acceleration schedule. This is the reason why the “droop” or undershoot of
the NP signal is approximately equal to the baseline controller. This is shown by the differ-
ence between the “Fuel Flow Command” and the “HMUSEL” plots. The “HMUSEL” plot
shows that the selected fuel flow signal is lower than “Fuel Flow Command” from the NP
governors. In the case of the 2 second pull, the performance of the LPV controller is slightly
better because the commanded fuel flow drops below theWf
Ps3schedule before the baseline
controller producing less droop, lower overshoot and faster settling time. In the case of
the 3 second pull, the LPV controller performance is far better than the baseline controller
due to the fact that fuel flow command remains below theWf
Ps3acceleration schedule for the
entire transient.
Figure 7-15: Collective 1 Second Pull from 10% to 90%
88
Figure 7-16: Collective 2 Second Pull from 10% to 90%
Figure 7-17: Collective 3 Second Pull from 10% to 90%
89
Chapter 8
Conclusions
The results in chapter 7 show that a LPV control system can be effectively applied to an
engine control system with positive results. In the cases of the NP step, NP ramp and load
disturbances the performance of the LPV controller is significantly better than the baseline
controller. With further tuning of the baseline controller, it is most likely possible to obtain
the same performance as the LPV controller. However, it would most like require a more
significant tuning effort to cover the same range of engine torque conditions.
In retrospect, the linear tuning effort produces controller weighting functions that were
not very effective in the non-linear model. This was due mainly to the fact that the goals,
described in section 7.4 could not be tested using the linear model since it did not contain
the other fuel flow governors. However, the effort was not wasted since it did provide
validation of the LPV controller against the engine itself.
The LPV controller that produced the best results was the one where the linear plant
was simplified to contain only the rotor system pole. This pole is a lumped state that
includes the power turbine, gear box, main rotor and tail rotor. This pole is also the closest
to the jω axis. Without question, the P41 and P45 can be excluded since these poles are
very fast compared to the rotor system pole. There could be an argument to include the
NG and Ps3 parameters since they are close to the range of the rotor system pole and they
are measured parameters. The inclusion of these additional parameters would have to be
weighed against the increase complexity of the controller. The smaller the linear plant the
less complex the resulting controller which makes a production implementation easier. This
research did not show an improvement in controller performance with these states included
90
in the linear plant.
The fact that the rotor system is modeled by a single lumped state also impacts the
complexity of the controller. In a practical application, the rotor system should be modeled
to a much higher fidelity to include the natural frequencies and damping of both the main
and tail rotors. However, the methods used to create the LPV controller can easily be
applied to a more complex plant without changes to the algorithm.
8.1 Future Work
This research does not attempt to address the anticipation and estimate of the steady state
fuel flow based on helicopter load demands signals. In a practical application, the exact
load demand of the rotor system is not known and must be estimated using these signals
mainly the collective signal. However, in practice the linear analysis and tuning of the NP
governor is performed outside of the tuning of the anticipation logic and therefore, it was
valid to neglect this for the scope of this research.
This research assumes no model uncertainty and therefore, in a practical application
this would have to be addressed. In addition, the concept of stability for the baseline con-
troller is based on gain margin and phase margin which the aerospace industry is familiar
and comfortable with. It may be necessary to produce equivalent gain and phase margin
assessments to obtain acceptance from the certification authorities.
The LPV controller did not attempt to limit the output when the acceleration or de-
celeration governors are selected. Therefore, as shown in 7-15 there is the potential for
the controller to windup. The performance of the governor could be improved if additional
”anti-windup” logic is incorporated.
91
Appendix B
Engine Model Constants
Table B.1: Engine Model Constants
Constant Value Units
HVF 18300.0 BTUlbm
Jgt 0.0445 ft ∗ lbf ∗ sec2
Jpt 0.062 ft ∗ lbf ∗ sec2
Kbl 0.7826 non-dimensional
Kb3 0.0025 non-dimensional
Kdamp 0.06854 (ft∗lbf∗sec)rad
Kdpb 0.03045 (lbf2∗sec2)(lbm2∗in4∗degR)
Kh2 0.239 BTU(lbm∗degR)
Kh31 0.2496 BTU(lbm∗degR)
Kh32 -8.4 BTUlbm
Kh411 0.3010 BTUlbm∗degR
continued on next page
97
continued from previous page
Constant Value Units
Kh412 -86.905 BTUlbm
Kh45 0.9623 non-dimensional
Kps3 0.956 non-dimensional
Kqc1 0.71 non-dimensional
Kqc2 0.29 non-dimensional
Kt411 3.322 lbm∗degRBTU
Kt412 288.7 degR
Kt451 3.519 lbm∗degRBTU
Kt452 179.1 degR
Kt491 3.516 lbm∗degRBTU
Kt492 172.3 degR
Kth411 0.0018326 1degR
Kth412 0.0856 non-dimensional
Kth451 0.0018326 1degR
Kth452 0.0856 non-dimensional
Kv3 0.97 lbf(in2∗lbm∗degR)
Kv41 6.17 lbf(in2∗lbm∗degR)
Kv45 13.63 lbf(in2∗lbm∗degR)
Kwgt 0.0876 lbm∗in2
(lbf∗sec)
NGdes 44700 rpm
NPdes 20900 rpm
TCt41 0.29 lbm45 ∗sec
95
degR12
98
0 2 4 6 8 10 12 14 16 18 202
3
4
5
6
7
8
9
10
11
Compressor Static Pressure Ratio, Ps3/P2
Sta
tion
2 C
orre
cted
Mas
s F
low
WA
2R, l
b/se
c
F1 − Compressor Mass Flow
65808285878992949698100
Figure C-1: F1 - Compressor Mass Flow
Table C.1: F1 - Compressor Mass FlowPs3/P2 NGR-65 NGR-80 NGR-82 NGR-85 NGR-87 NGR-89 NGR-92 NGR-94 NGR-96 NGR-98 NGR-100
1.008 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.954 9.642 10.09
1.012 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.954 9.642 10.09
1.015 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.954 9.642 10.09
1.019 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.024 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.038 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.046 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.048 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.051 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.053 3.137 4.772 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
1.069 3.137 4.773 5.274 5.869 6.278 6.724 7.635 8.248 8.955 9.642 10.09
3.151 3.143 4.778 5.28 5.875 6.284 6.73 7.633 8.254 8.96 9.643 10.09
3.245 3.124 4.779 5.28 5.875 6.284 6.73 7.633 8.254 8.961 9.643 10.09
3.386 3.125 4.779 5.281 5.876 6.285 6.731 7.633 8.255 8.961 9.643 10.09
3.479 3.106 4.779 5.281 5.876 6.285 6.731 7.633 8.255 8.961 9.643 10.09
3.62 3.07 4.78 5.281 5.876 6.285 6.731 7.633 8.255 8.962 9.643 10.09
continued on next page
100
continued from previous page
Ps3/P2 NGR-65 NGR-80 NGR-82 NGR-85 NGR-87 NGR-89 NGR-92 NGR-94 NGR-96 NGR-98 NGR-100
3.714 2.995 4.78 5.282 5.877 6.285 6.732 7.633 8.256 8.962 9.643 10.09
3.714 3.033 4.78 5.282 5.877 6.285 6.732 7.633 8.256 8.962 9.643 10.09
3.76 2.958 4.78 5.282 5.877 6.286 6.732 7.633 8.256 8.962 9.643 10.09
4.849 2.958 4.783 5.285 5.88 6.289 6.735 7.632 8.259 8.965 9.643 10.09
5.694 2.958 4.767 5.287 5.882 6.291 6.737 7.631 8.261 8.968 9.644 10.1
5.928 2.958 4.767 5.288 5.883 6.292 6.738 7.631 8.262 8.968 9.644 10.1
6.069 2.958 4.731 5.288 5.883 6.292 6.738 7.631 8.262 8.969 9.644 10.1
6.304 2.958 4.713 5.289 5.884 6.293 6.739 7.631 8.263 8.969 9.644 10.1
6.351 2.958 4.676 5.289 5.884 6.293 6.739 7.631 8.263 8.969 9.644 10.1
6.353 2.958 4.675 5.289 5.884 6.293 6.739 7.631 8.263 8.969 9.644 10.1
6.491 2.958 4.62 5.271 5.884 6.293 6.739 7.631 8.263 8.97 9.644 10.1
6.585 2.958 4.565 5.259 5.885 6.293 6.74 7.63 8.264 8.97 9.644 10.1
6.635 2.958 4.538 5.253 5.885 6.294 6.74 7.63 8.264 8.97 9.644 10.1
6.725 2.958 4.491 5.235 5.885 6.294 6.74 7.63 8.264 8.97 9.644 10.1
6.916 2.958 4.491 5.198 5.885 6.294 6.74 7.63 8.265 8.971 9.644 10.1
7.245 2.958 4.491 5.087 5.886 6.295 6.741 7.63 8.266 8.972 9.644 10.1
7.478 2.958 4.491 4.902 5.887 6.296 6.742 7.63 8.266 8.973 9.644 10.1
7.483 2.958 4.491 4.902 5.887 6.296 6.742 7.63 8.266 8.973 9.644 10.1
7.812 2.958 4.491 4.902 5.851 6.297 6.743 7.63 8.267 8.973 9.644 10.1
8.046 2.958 4.491 4.902 5.814 6.298 6.744 7.629 8.268 8.974 9.644 10.1
8.327 2.958 4.491 4.902 5.741 6.298 6.744 7.629 8.269 8.975 9.644 10.1
8.468 2.958 4.491 4.902 5.667 6.299 6.745 7.629 8.269 8.975 9.644 10.1
8.471 2.958 4.491 4.902 5.665 6.299 6.745 7.629 8.269 8.975 9.644 10.1
8.608 2.958 4.491 4.902 5.593 6.294 6.745 7.629 8.269 8.976 9.644 10.1
8.796 2.958 4.491 4.902 5.5 6.288 6.746 7.629 8.27 8.976 9.645 10.1
8.987 2.958 4.491 4.902 5.5 6.282 6.746 7.629 8.27 8.977 9.645 10.1
9.363 2.958 4.491 4.902 5.5 6.227 6.747 7.628 8.271 8.978 9.645 10.1
9.553 2.958 4.491 4.902 5.5 6.19 6.748 7.628 8.272 8.978 9.645 10.1
9.644 2.958 4.491 4.902 5.5 6.172 6.742 7.628 8.272 8.979 9.645 10.1
9.834 2.958 4.491 4.902 5.5 6.14 6.73 7.628 8.273 8.979 9.645 10.1
9.972 2.958 4.491 4.902 5.5 6.117 6.712 7.628 8.273 8.979 9.645 10.1
10.12 2.958 4.491 4.902 5.5 6.049 6.694 7.628 8.274 8.98 9.645 10.1
10.21 2.958 4.491 4.902 5.5 6.006 6.685 7.628 8.274 8.98 9.645 10.1
10.49 2.958 4.491 4.902 5.5 6.006 6.657 7.627 8.275 8.981 9.645 10.1
10.63 2.958 4.491 4.902 5.5 6.006 6.621 7.627 8.275 8.981 9.645 10.1
10.91 2.958 4.491 4.902 5.5 6.006 6.584 7.627 8.276 8.982 9.645 10.1
11.05 2.958 4.491 4.902 5.5 6.006 6.548 7.627 8.276 8.982 9.645 10.1
11.24 2.958 4.491 4.902 5.5 6.006 6.474 7.627 8.277 8.983 9.645 10.1
11.34 2.958 4.491 4.902 5.5 6.006 6.418 7.627 8.277 8.983 9.645 10.11
11.43 2.958 4.491 4.902 5.5 6.006 6.359 7.627 8.277 8.984 9.645 10.11
11.52 2.958 4.491 4.902 5.5 6.006 6.307 7.624 8.277 8.984 9.645 10.11
11.95 2.958 4.491 4.902 5.5 6.006 6.307 7.61 8.279 8.985 9.645 10.11
12.37 2.958 4.491 4.902 5.5 6.006 6.307 7.574 8.28 8.986 9.645 10.11
12.61 2.958 4.491 4.902 5.5 6.006 6.307 7.518 8.281 8.987 9.646 10.11
12.8 2.958 4.491 4.902 5.5 6.006 6.307 7.482 8.281 8.987 9.646 10.11
12.89 2.958 4.491 4.902 5.5 6.006 6.307 7.453 8.281 8.988 9.646 10.11
continued on next page
101
continued from previous page
Ps3/P2 NGR-65 NGR-80 NGR-82 NGR-85 NGR-87 NGR-89 NGR-92 NGR-94 NGR-96 NGR-98 NGR-100
12.98 2.958 4.491 4.902 5.5 6.006 6.307 7.427 8.274 8.988 9.646 10.11
13.08 2.958 4.491 4.902 5.5 6.006 6.307 7.39 8.267 8.988 9.646 10.11
13.26 2.958 4.491 4.902 5.5 6.006 6.307 7.297 8.253 8.989 9.646 10.11
13.36 2.958 4.491 4.902 5.5 6.006 6.307 7.249 8.245 8.989 9.646 10.11
13.74 2.958 4.491 4.902 5.5 6.006 6.307 7.249 8.209 8.99 9.646 10.11
14.11 2.958 4.491 4.902 5.5 6.006 6.307 7.249 8.155 8.991 9.646 10.11
14.39 2.958 4.491 4.902 5.5 6.006 6.307 7.249 8.081 8.992 9.646 10.11
14.45 2.958 4.491 4.902 5.5 6.006 6.307 7.249 8.051 8.992 9.646 10.11
14.68 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.977 9.646 10.11
15.01 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.956 9.646 10.11
15.38 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.939 9.646 10.11
15.76 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.847 9.646 10.11
15.86 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.825 9.646 10.11
16.09 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.773 9.639 10.11
16.32 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.632 10.11
16.42 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.629 10.11
16.84 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.593 10.11
16.85 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.593 10.11
17.22 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.535 10.1
17.31 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.52 10.09
17.5 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.445 10.08
17.55 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.428 10.07
17.73 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 10.04
17.74 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 10.04
17.92 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 10.01
18.11 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 9.987
18.25 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 9.932
18.35 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 9.895
18.49 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 9.84
18.58 2.958 4.491 4.902 5.5 6.006 6.307 7.249 7.915 8.663 9.317 9.803
102
0 5 10 15 20 25
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
3
Compressor Static Pressure Ratio, Ps3/P2
Com
pres
sor
Tem
pera
ture
Rat
io, T
3/T
2
F2 − Compressor Temperature
Figure C-2: F2 - Compressor Temperature
Table C.2: F2 - Compressor TemperaturePs3/P2 T3/T2
1.033 1.306
2.018 1.448
3.003 1.571
4.034 1.685
5.018 1.784
6.001 1.872
6.985 1.955
8.015 2.025
8.998 2.091
10.03 2.152
11.01 2.209
11.99 2.263
13.02 2.317
14.01 2.374
15.03 2.434
16.02 2.498
continued on next page
103
65 70 75 80 85 90 95 1000
0.02
0.04
0.06
0.08
0.1
0.12
Corrected Gas Generator Speed, NGR%
Ble
ed F
ract
ion,
B1
F3 − Seal Pressure Bleed Fraction
Figure C-3: F3 - Seal Pressure Bleed Fraction
Table C.3: F3 - Seal Pressure Bleed FractionNGR Bleed Fraction-B1
65.08 0.1089
65.41 0.1089
66.23 0.1089
67.04 0.109
67.86 0.109
68.68 0.109
69.5 0.109
70.32 0.109
71.13 0.109
71.95 0.109
72.77 0.109
73.59 0.109
74.4 0.1091
75.22 0.1091
76.04 0.1091
76.86 0.1091
continued on next page
105
continued from previous page
NGR Bleed Fraction-B1
77.59 0.1091
79.23 0.108
79.88 0.1066
80.21 0.1057
80.7 0.1038
81.19 0.102
81.6 0.09992
82.25 0.09624
82.5 0.09417
82.75 0.09186
83.24 0.0868
83.4 0.08449
83.56 0.08219
83.64 0.07988
84.14 0.07182
84.22 0.06951
84.3 0.06721
84.46 0.0649
84.54 0.0626
84.63 0.06029
84.71 0.05799
84.79 0.05591
84.95 0.05361
85.2 0.04808
85.36 0.04577
85.44 0.04347
85.85 0.03586
85.93 0.03355
86.1 0.03125
86.18 0.02964
86.34 0.02733
86.43 0.02503
86.59 0.02272
86.67 0.02042
86.83 0.01834
87.24 0.01143
87.41 0.009126
87.65 0.007053
87.82 0.004749
88.22 0.001986
88.88 0.0006112
89.29 0.0001554
90.11 0.0001661
90.92 0.0001769
91.74 0.0001877
92.56 0.0001985
continued on next page
106
continued from previous page
NGR Bleed Fraction-B1
93.38 0.0002092
97.06 2.71e-005
97.87 3.79e-005
98.69 4.87e-005
100 6.59e-005
107
3 4 5 6 7 8 9 10 11 12 138.8
9
9.2
9.4
9.6
9.8
10
10.2
10.4
10.6x 10
−3
Station 2 Corrected Mass Flow, WA2R, lbm/sec
Ble
ed F
ract
ion,
B2
F4 − Power Turbine Balance Bleed Fraction
Figure C-4: F4 - Power Turbine Balance Bleed Fraction
Table C.4: F4 - Power Turbine Balance Bleed FractionWA2R (lbm/sec) Bleed Fraction-B2
3 0.01057
5.023 0.008996
12.02 0.009
108
2 4 6 8 10 12 140.077
0.078
0.079
0.08
0.081
0.082
0.083
0.084
0.085
0.086
Station 2 Corrected Mass Flow, WA2R, lbm/sec
Ble
ed F
ract
ion,
B3
F5 − Impeller tip leakage and turbine cooling bleed fraction
Figure C-5: F5 - Impeller Tip Leakage and Turbine Cooling Bleed Fraction
Table C.5: F5 - Impeller Tip Leakage and Turbine Cooling Bleed FractionWA2R (lbm/sec) Bleed Fraction-B3
2.981 0.08508
8.297 0.08463
12.02 0.07792
109
0.01 0.011 0.012 0.013 0.014 0.015 0.016 0.017 0.018 0.019 0.02−0.5
0
0.5
1
1.5
2
Fuel−to−air ratio, FAR
Com
bust
or E
ffici
ency
, ET
A
F6 − Combustor Efficiency
Figure C-6: F6 - Combustor Efficiency
Table C.6: F6 - Combustor EfficiencyFuel-to-air ratio-FAR Combustor Efficiency-ETA
0.01 0.985
0.02 0.985
110
0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.3620
25
30
35
40
45
50
Gas Generator Turbine Pressure Ratio, P45/P41
Gas
Gen
erat
or E
thal
py D
rop
Par
amet
er, B
TU
/LB
M
F7 − Gas Generator Turbine Energy
Figure C-7: F7 - Gas Generator Turbine Energy
Table C.7: F7 - Gas Generator Turbine EnergyGG Turbine Pressure Ratio-P45/P41 GG Ethalpy Drop-BTU/LBM
0.1996 48.23
0.2149 40.32
0.22 39.04
0.2249 38.29
0.2299 37.55
0.3502 24.66
111
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5
0
5
10
15
20
25
30
35
Power Turbine Pressure Ratio, Ps49/P45
Pow
er T
urbi
ne E
thal
py D
rop
Par
amet
er, B
TU
/LB
M
F8 − Power Turbine Energy
Figure C-8: F8 - Power Turbine Energy
Table C.8: F8 - Power Turbine EnergyPT Pressure Ratio-Ps49/P45 PT Ethalpy Drop-BTU/LBM
0.2993 33.94
0.3503 30.33
0.4 26.58
0.4497 23.13
0.4982 20.13
0.5493 17.2
0.599 14.28
0.6488 11.35
0.6999 8.348
0.7484 5.272
0.7994 2.045
0.8491 -1.331
112
0.4 0.5 0.6 0.7 0.8 0.9 10.26
0.28
0.3
0.32
0.34
0.36
0.38
Power Turbine Pressure Ratio, P45/P41
Pow
er T
urbi
ne C
orre
cted
Mas
s F
low
, W45
R, l
bm/s
ec
F9 − Power Turbine Mass Flow
Figure C-9: F9 - Power Turbine Mass Flow
Table C.9: F9 - Power Turbine Mass FlowPT Pressure Ratio-P45/P41 PT Corrected Mass Flow-W45R (lbm/sec)
0.3013 0.372
0.3258 0.3718
0.3516 0.3717
0.3788 0.3708
0.3917 0.3706
0.4046 0.3699
0.4175 0.3694
0.4304 0.3683
0.442 0.3678
0.4549 0.3667
0.4665 0.366
0.4859 0.3642
0.4975 0.363
0.504 0.3623
0.5156 0.3612
0.5298 0.3594
continued on next page
113
continued from previous page
PT Pressure Ratio-P45/P41 PT Corrected Mass Flow-W45R (lbm/sec)
0.5414 0.3582
0.5543 0.3566
0.566 0.3557
0.5789 0.3543
0.5879 0.3529
0.5982 0.3513
0.6034 0.3506
0.6124 0.349
0.6202 0.3471
0.6292 0.3453
0.637 0.3434
0.6447 0.3416
0.6538 0.3393
0.6602 0.3374
0.668 0.3353
0.6783 0.3323
0.6835 0.3302
0.7041 0.3237
0.7106 0.3216
0.7157 0.3195
0.7222 0.3177
0.7286 0.3154
0.7338 0.3133
0.739 0.3112
0.7441 0.3091
0.7674 0.2998
0.7725 0.2977
0.779 0.2949
0.7842 0.2928
0.7893 0.2907
0.8035 0.284
0.8087 0.2819
0.8138 0.2796
0.8177 0.2775
0.8293 0.2721
0.8345 0.27
0.8384 0.2677
0.841 0.2666
0.8461 0.2645
0.8513 0.2612
114
65 70 75 80 85 90 95 100 1051.02
1.04
1.06
1.08
1.1
1.12
1.14
1.16
Corrected Gas Generator Speed, NGR%
Exh
aust
Pre
ssur
e R
atio
, Ps9
/P49
F10 − Exhaust Pressure Loss
Figure C-10: F10 - Exhaust Pressure Loss
Table C.10: F10 - Exhaust Pressure LossNGR Exhaust Pressure Ratio-Ps9/P49
65.02 1.124
65.19 1.124
65.92 1.123
66.66 1.122
67.39 1.121
68.13 1.12
68.94 1.12
69.68 1.119
70.17 1.118
71.15 1.116
71.48 1.114
71.89 1.112
72.22 1.11
72.63 1.108
72.96 1.106
73.37 1.104
continued on next page
115
continued from previous page
NGR Exhaust Pressure Ratio-Ps9/P49
73.78 1.102
74.11 1.1
74.52 1.098
74.85 1.096
75.26 1.095
75.59 1.093
76.16 1.09
76.57 1.088
76.98 1.086
77.39 1.084
77.81 1.082
78.22 1.081
78.71 1.079
78.96 1.077
79.28 1.074
79.61 1.073
79.94 1.071
80.27 1.069
80.52 1.066
80.85 1.065
81.18 1.063
81.75 1.059
82.08 1.057
82.41 1.055
82.74 1.053
83.07 1.051
83.48 1.049
83.81 1.047
84.14 1.045
84.47 1.043
84.8 1.041
85.13 1.039
85.7 1.036
86.03 1.034
86.61 1.03
87.02 1.028
87.59 1.026
88.16 1.025
88.66 1.023
89.31 1.022
89.88 1.021
90.94 1.021
91.68 1.022
92.08 1.022
92.65 1.024
93.14 1.025
continued on next page
116
continued from previous page
NGR Exhaust Pressure Ratio-Ps9/P49
93.71 1.027
94.11 1.028
94.68 1.03
95.25 1.032
95.74 1.033
96.15 1.035
96.47 1.037
96.71 1.039
97.03 1.041
97.36 1.043
98 1.049
98.24 1.051
98.41 1.053
98.65 1.055
98.89 1.057
99.05 1.059
99.29 1.061
99.53 1.064
100 1.066
117
0 2 4 6 8 10 12 14 161.5
2
2.5
3
3.5
4
4.5
5
5.5
Power Turbine Flow Parameter, W45R
Sen
sor
Tim
e C
onst
ant,
Tau
45, s
ec
Fec1 − ECU thermocouple sensor time constant
1260166020602460
Figure F-1: Fec1 - ECU Thermocouple Sensor Time Constant
Table F.1: Fec1 - ECU thermocouple sensor time constantPT Flow - W45R T45L=1260R T45L=1660R T45L=2060R T45L=2460R
1.009 5.001 4.214 3.642 3.406
1.021 4.992 4.206 3.636 3.4
1.062 4.963 4.18 3.617 3.383
1.069 4.958 4.175 3.614 3.38
2.525 3.934 3.224 2.938 2.768
2.528 3.932 3.224 2.936 2.766
2.529 3.931 3.223 2.936 2.766
2.564 3.907 3.216 2.929 2.76
6.486 2.52 2.35 2.168 2.081
6.533 2.516 2.339 2.158 2.073
6.535 2.516 2.339 2.158 2.073
6.536 2.516 2.339 2.158 2.073
9.989 2.199 1.991 1.922 1.858
9.992 2.199 1.991 1.922 1.858
9.992 2.199 1.991 1.922 1.858
10.04 2.197 1.986 1.92 1.857
continued on next page
125
continued from previous page
PT Flow - W45R T45L=1260R T45L=1660R T45L=2060R T45L=2460R
14.95 1.989 1.82 1.726 1.714
14.99 1.987 1.818 1.724 1.713
15.04 1.985 1.817 1.722 1.712
15.04 1.985 1.817 1.722 1.712
126
350 400 450 500 550 600 6500
0.5
1
1.5
2
2.5
3
3.5
4
Inlet Temperature, T2, Deg R
Fue
l Flo
w T
oppi
ng P
aram
eter
, WF
PT
P
Fhm1 − HMU topping line schedule
Figure F-2: Fhm1 - HMU Topping Line Schedule
Table F.2: Fhm1 - HMU Topping Line ScheduleT2 (Deg R) Fuel Flow Topping - WFPTP
393.9 0.09091
501.2 3.509
515.3 3.309
534.3 3.136
554.9 3.118
575.6 3.218
594.8 3.291
615.4 3.336
634.6 3.373
127
20 30 40 50 60 70 80 90 100 110 1200
2
4
6
8
10
12
Power Available Spindle Angle, deg
Fue
l Flo
w P
ower
Ava
ilabl
e P
aram
eter
, WF
PR
F
Fhm2 − HMU Power Available input schedule
Figure F-3: Fhm2 - HMU Power Available Input Schedule
Table F.3: Fhm2 - HMU Power Available Input SchedulePower Available Spindle Fuel Flow Reference - WFPRF
28.62 10.4
30.07 9.836
39.91 7.022
50.21 5.736
59.92 4.844
70.21 3.812
79.93 2.808
89.65 1.945
99.92 1.224
109.9 0.7857
119.9 0.03619
128
0 10 20 30 40 50 60 70 80 90 10080
85
90
95
100
105
110
Load Demand Spindle Angle, XLDSA, deg
Gas
Gen
erat
or S
peed
Dem
and
Par
amet
er, P
NG
Fhm3 − HMU load demand compensation schedule
Figure F-4: Fhm3 - HMU Load Demand Compensation Schedule
Table F.4: Fhm3 - HMU Load Demand Compensation ScheduleLoad Demand Spindle Angle NG REF
0.2833 80.15
9.915 83.81
20.11 87.24
30.31 90.6
40.23 93.35
50.14 95.72
60.06 98.7
70.25 102.3
80.17 107.4
90.08 107.4
100 107.4
129
−20 0 20 40 60 80 100 1202.2
2.4
2.6
2.8
3
3.2
3.4
3.6
3.8
Load Demand Spindle Angle, XLDSA, deg
Fue
l Flo
w D
elta
Dem
and
Par
amet
er, W
FQ
PS
3
Fhm4 − HMU load demand compensation schedule function 2
Figure F-5: Fhm4 - HMU Load Demand Compensation Schedule Function 2
Table F.5: Fhm4 - HMU Load Demand Compensation Schedule Function 2Load Demand Spindle Angle Fuel Flow Delta - WFOPS3
-0.03453 2.294
19.9 2.361
29.84 2.531
40.07 2.69
50.29 2.879
60.22 3.119
70.14 3.396
80.36 3.571
90.34 3.576
100.6 3.577
130
350 400 450 500 550 600 6502.1
2.15
2.2
2.25
2.3
2.35
2.4
2.45
2.5
2.55
2.6
Inlet Temperature, T2, Deg R
Fue
l Flo
w Id
le S
ched
ule
Lim
it P
aram
eter
, WF
IRF
Fhm5 − HMU idle schedule function 1
Figure F-6: Fhm5 - HMU Idle Schedule Function 1
Table F.6: Fhm5 - HMU Idle Schedule Function 1T2 (deg R) Fuel Flow Idle Reference
393.7 2.101
414.4 2.129
435 2.16
454.3 2.194
474.9 2.228
494.2 2.265
514.8 2.303
534.8 2.342
554.8 2.385
574.8 2.429
594.8 2.475
614.8 2.523
634.1 2.572
131
350 400 450 500 550 600 65062
64
66
68
70
72
74
Inlet Temperature, T2, Deg R
NG
Dro
op L
ine
Idle
Ref
eren
ce P
aram
eter
, PC
NG
I
Fhm6 − HMU idle schedule function 2
Figure F-7: Fhm6 - HMU Idle Schedule Function 2
Table F.7: Fhm6 - HMU Idle Schedule Function 2T2 (deg R) NG Droop Idle Reference
394.4 63.89
441.5 65.89
505.8 68.47
560.7 70.68
609.3 72.59
635 73.63
132
50 60 70 80 90 100 1100.5
1
1.5
2
2.5
3
3.5
4
4.5
Sensed Gas Turbine Speed, PCNGHL%
Fue
l Flo
w A
ccel
erat
ion
Lim
it P
aram
eter
, WF
PA
C
Fhm7 − HMU maximum fuel parameter limit during acceleration
395430460480519555590
Figure F-8: Fhm7 - HMU Maximum Fuel Parameter Limit During Acceleration
Table F.8: Fhm7 - HMU Maximum Fuel Parameter Limit During AccelerationNG T2=395 R T2=430R T2=460R T2=480R T2=519R T2=555R T2=590R
54.12 3.639 3.741 3.798 3.778 3.752 3.681 3.675
54.12 3.638 3.741 3.798 3.778 3.752 3.681 3.675
54.13 3.638 3.741 3.798 3.778 3.752 3.681 3.676
54.29 3.628 3.734 3.795 3.777 3.754 3.686 3.681
54.29 3.628 3.734 3.794 3.777 3.754 3.686 3.681
54.29 3.628 3.734 3.794 3.777 3.754 3.686 3.681
54.46 3.618 3.728 3.791 3.776 3.756 3.691 3.687
60.24 3.26 3.505 3.664 3.728 3.824 3.862 3.877
60.24 3.26 3.505 3.664 3.728 3.824 3.862 3.877
60.24 3.26 3.504 3.664 3.728 3.824 3.862 3.877
60.24 3.26 3.504 3.664 3.728 3.824 3.862 3.877
60.25 3.259 3.504 3.664 3.728 3.824 3.862 3.878
60.26 3.259 3.504 3.664 3.727 3.824 3.862 3.878
60.41 3.252 3.497 3.658 3.723 3.822 3.867 3.882
64.14 3.092 3.324 3.524 3.609 3.786 3.9 3.976
64.17 3.091 3.323 3.523 3.608 3.786 3.9 3.976
continued on next page
133
continued from previous page
NG T2=395 R T2=430R T2=460R T2=480R T2=519R T2=555R T2=590R
64.31 3.088 3.316 3.518 3.603 3.784 3.901 3.978
64.32 3.088 3.316 3.518 3.603 3.784 3.901 3.978
64.33 3.088 3.316 3.518 3.603 3.784 3.901 3.978
64.33 3.088 3.315 3.518 3.603 3.784 3.901 3.978
64.33 3.088 3.315 3.517 3.603 3.784 3.901 3.978
68.06 3.013 3.216 3.378 3.518 3.726 3.883 4.02
68.22 3.009 3.212 3.372 3.514 3.723 3.88 4.021
68.23 3.009 3.212 3.372 3.514 3.723 3.88 4.021
68.24 3.009 3.211 3.371 3.514 3.723 3.88 4.021
68.25 3.009 3.211 3.371 3.514 3.723 3.88 4.021
68.25 3.009 3.211 3.371 3.513 3.722 3.88 4.021
68.41 3.008 3.209 3.368 3.51 3.719 3.877 4.021
72.14 2.981 3.15 3.296 3.401 3.63 3.822 4.004
72.14 2.981 3.15 3.296 3.401 3.63 3.822 4.004
72.16 2.981 3.15 3.295 3.4 3.629 3.821 4.004
72.3 2.98 3.15 3.293 3.396 3.626 3.818 4.003
72.32 2.98 3.15 3.292 3.395 3.626 3.817 4.003
72.33 2.98 3.15 3.292 3.395 3.626 3.817 4.002
72.49 2.985 3.149 3.289 3.393 3.622 3.813 3.998
76.04 3.094 3.143 3.26 3.349 3.545 3.727 3.91
76.06 3.094 3.143 3.259 3.349 3.544 3.726 3.909
76.24 3.1 3.142 3.261 3.347 3.54 3.722 3.905
76.24 3.1 3.142 3.261 3.347 3.54 3.722 3.905
76.39 3.105 3.147 3.263 3.345 3.537 3.718 3.902
76.4 3.105 3.147 3.263 3.345 3.537 3.718 3.902
76.4 3.106 3.148 3.263 3.345 3.537 3.718 3.902
80.13 3.24 3.267 3.305 3.348 3.491 3.646 3.817
80.13 3.241 3.267 3.305 3.348 3.491 3.646 3.817
80.14 3.241 3.268 3.305 3.348 3.491 3.646 3.816
80.14 3.241 3.268 3.305 3.348 3.491 3.646 3.816
80.31 3.248 3.273 3.311 3.348 3.488 3.644 3.814
80.48 3.255 3.28 3.316 3.348 3.486 3.643 3.811
80.48 3.255 3.28 3.316 3.348 3.486 3.643 3.811
84.05 3.404 3.436 3.436 3.452 3.499 3.608 3.758
84.05 3.404 3.436 3.436 3.452 3.499 3.608 3.758
84.21 3.404 3.442 3.442 3.457 3.499 3.606 3.756
84.21 3.404 3.442 3.442 3.457 3.499 3.606 3.756
84.22 3.404 3.442 3.443 3.457 3.499 3.606 3.756
84.39 3.404 3.448 3.449 3.464 3.5 3.608 3.755
86.77 3.406 3.538 3.546 3.558 3.576 3.627 3.748
86.93 3.364 3.544 3.552 3.565 3.582 3.628 3.748
87.1 3.324 3.546 3.559 3.571 3.587 3.63 3.747
87.1 3.323 3.546 3.559 3.571 3.587 3.63 3.747
87.1 3.322 3.546 3.559 3.572 3.587 3.63 3.747
87.78 3.153 3.554 3.586 3.598 3.618 3.662 3.748
87.95 3.11 3.556 3.593 3.605 3.626 3.666 3.748
continued on next page
134
continued from previous page
NG T2=395 R T2=430R T2=460R T2=480R T2=519R T2=555R T2=590R
88.12 3.069 3.556 3.6 3.612 3.633 3.67 3.748
90.16 2.559 3.557 3.682 3.693 3.726 3.717 3.688
90.5 2.474 3.558 3.696 3.706 3.742 3.708 3.678
90.5 2.473 3.558 3.696 3.706 3.742 3.707 3.677
90.67 2.432 3.519 3.696 3.713 3.75 3.703 3.673
92.6 1.949 3.068 3.698 3.789 3.704 3.648 3.616
92.7 1.899 3.043 3.698 3.794 3.702 3.645 3.613
92.71 1.898 3.042 3.698 3.794 3.702 3.644 3.613
92.71 1.897 3.042 3.698 3.794 3.702 3.644 3.612
92.71 1.896 3.041 3.698 3.794 3.702 3.644 3.612
92.73 1.887 3.037 3.698 3.794 3.701 3.644 3.612
94.67 0.9806 2.546 3.699 3.795 3.656 3.605 3.561
94.75 0.9806 2.526 3.699 3.795 3.654 3.603 3.559
94.92 0.9808 2.484 3.699 3.795 3.65 3.6 3.555
94.96 0.9808 2.473 3.689 3.795 3.649 3.6 3.554
95.09 0.9809 2.442 3.655 3.795 3.646 3.597 3.55
96.95 0.9822 2.009 3.184 3.797 3.603 3.565 3.504
96.97 0.9822 2.004 3.178 3.791 3.602 3.565 3.503
97.01 0.9822 1.995 3.168 3.781 3.601 3.564 3.502
97.13 0.9823 1.969 3.139 3.753 3.598 3.562 3.499
101.5 0.9854 0.9854 2.064 2.677 3.497 3.461 3.391
101.6 0.9855 0.9855 2.042 2.655 3.495 3.459 3.389
101.7 0.9856 0.9856 2 2.614 3.491 3.415 3.384
101.7 0.9856 0.9856 2 2.613 3.49 3.414 3.384
101.8 0.9856 0.9856 1.993 2.606 3.484 3.407 3.377
101.8 0.9856 0.9856 1.988 2.601 3.478 3.402 3.371
104 0.9872 0.9872 0.9979 2.044 2.931 2.817 2.722
104.1 0.9873 0.9873 0.9497 2.017 2.905 2.789 2.69
104.2 0.9873 0.9873 0.9227 2.002 2.89 2.773 2.673
104.3 0.9874 0.9874 0.8759 1.976 2.864 2.745 2.642
104.3 0.9874 0.9874 0.8725 1.974 2.862 2.743 2.64
104.3 0.9874 0.9874 0.8624 1.968 2.856 2.737 2.633
104.4 0.9875 0.9875 0.8477 1.96 2.848 2.729 2.624
135
Appendix G
Matlab�Code
G.1 LMI Toolbox Commands [2]
LTISYS
sys = ltisys(a,b,c,d,e) sys = ltisys(’tf’,n,d)
Stores the state-space realization (A,B,C,D,E) of an LTI system as the SYSTEM matrix
SY S =
A+ j(E − I) 0 N/A
C D 0
0 0 −∞
(G.1)
where na = size(A,1). The matrices A through E should be real. When omitted, D and E
are set to the default values D=0 and E=I. The values 0 and 1 for E are interpreted as
E=0 and E=I.
SYS = LTISYS(A) and SYS = LTISYS(A,E) specify the autonomous systems
x = Ax
Ex = Ax(G.2)
SISO systems can also be specified via their transfer function N(s)/D(s). The syntax is
then SYS = LTISYS(’tf’,N,D) where N and D are the vector representation of the
polynomials N(s) and D(s).
136
PSYS
PSYS Specify a parameter-dependent system (P-system)
S = PSYS([S1,...,SN]) takes N LTI models S1,...,SN (created with LTISYS) and constructs
a polytopic uncertain model S with equations Specification of uncertain state-space
models
Ex = Ax+Bu
y = Cx+Du(G.3)
whose matrices A, B, C, D, and E can take any value in the convex hull of the matrices
(Aj, Bj, Cj, Dj, Ej) of the models S1,...,SN.
S = PSYS(PV,[S0,S1,...,SN]) creates an affine parameter-dependent uncertain model
S = S0 + p1*S1 + ... + pN*SN
The state-space matrices (A(p),...,E(p)) of S depend affinely on those of S0,...,SN, eg A(p)
= A0 + P1*A1 + ... + pN*AN. The first input PV describes the ranges and rates of the
parameters p1,...,pN (see PVEC).
SCONNECT
[P,r] = sconnect(inputs,outputs,K in,G1 in,g1,G2 in,g2,...)
SCONNECT computes the SYSTEM matrix P of the standard H-infinity plant P(s)
associated with a given control structure. It also returns the 1x2 vector R such that
R(1) = nbr of measurements (controller inputs)
R(2) = nbr of controls (controller outputs)
The control structure is described by the relations between the various signals flowing in
the control loop:
� the string INPUTS lists the exogenous input signals. For instance, INPUTS = ’r(2)
; d’ specifies two inputs, a vector r of size 2 and a scalar input d
� the string OUTPUTS lists the output signals. The output of a system G is denoted
simply by G. For instance, OUTPUTS = ’e=r-G ; G’ specifies two output signals
e=r-y and y where y is the output of the system G
137
� the string K IN gives the inputs of the controller in terms of the exogenous inputs
and the system outputs. For instance, K IN = ’K:e’ specifies a controller named K
and with input e
� each LTI system G in the loop but the controller is specified by its input list G IN
and its SYSTEM matrix G. For instance, G1 IN = ’S:K’ inserts a system named S
whose input is the output of the controller K
The syntax G([2,4]) selects the 2nd and 4th output of a system G. Note that the names
given to the various systems are immaterial provided that they are consistent throughout.
If one of the systems is polytopic or parameter-dependent, SCONNECT returns a
polytopic model of the interconnection.
HINFGS
HINFGS Design gain-scheduled H-infinity controllers
[GOPT,PDK,R,S]=HINFGS(PDS,R,GMIN,TOL,TOLRED) performs gain-scheduled
H-infinity control for the parameter-dependent systems with an affine dependence on the
time-varying parameters. These parameters are assumed to be measured in real-time.
This-function implements the quadratic H-infinity performance approach.
Input:
� PDS: parameter-dependent plant (see PSYS).
� R: 1x2 vector specifying the dimensions of D22:
– R(1) = nbr of measurements
– R(1) = nbr of measurements
� GMIN: target value for GOPT. Set GMIN = 0 to compute the optimum GOPT,
and set GMIN = GAMMA to test whether the performance GAMMA is achievable
(Default = 0)
� TOL: desired relative accuracy on the optimal performance GOPT (Default = 1e-2)
� TOLRED: optional (default value = 1e-4). Reduced-order synthesis is performed
whenever
138
– rho(X ∗ Y ) >= (1− TOLRED) ∗GAMA2
Output
� PDK: polytopic representation PDK = [K1 , ... , Kn] of the gain-scheduled
controller. The vertex controller Kj is associated with the j-th corner of the
parameter box as given by POLYDEC
� GOPT: optimal performance if GMIN=0, and some achievable performance <
GMIN otherwise
� R,S: solutions of the characteristic LMI system
PDSIMUL
PDSIMUL Simulate P-systems along parameter trajectories
[T,X,Y] = PDSIMUL(PDS,’TRAJ’,TF,’UT’,XI,OPTIONS) simulates the (affine)
parameter-dependent system PDS along the parameter trajectory specified by the
function ’TRAJ’. The function PDSIMUL calls ODE15s to integrate the time response of
this linear time-varying system.
Without output arguments, PDSIMUL plots the output
trajectories.
Input:
� PDS: affine parameter-dependent system (see PSYS)
� ’TRAJ’: name of the function p=TRAJ(t) specifying the parameter trajectory.
This-function takes a time t and returns a value p of the parameter vector.
� TF: final time for the integration (initial=0)
� ’UT’: name of the input function u=UT(t). The default is a step input.
� XI: initial state of the system (Default = 0)
OPTIONS control parameters for the ODE integration (see ODESET)
Output:
139
� T: integration time points
� X: state trajectories (X(:,1) = first state, etc.)
� Y: output trajectories (Y(:,1) = first output, etc)
G.2 Linearization Scripts
1: %Linearized Cases
2: clear StateOpPointArchive
3:4: WfInputBase = 832; %pph
5: QreqInputBase = 460; %Load ft-lbs
6:7: tol = 0.1;
8:9: %NG 100, NP 100
10: NgGoal = 100;
11: NpGoal = 100;
12:13: xInitialFindOp = 1.0e+004*[ 2.0900 0.0053 0.0258 4.4698 0.0002 0.0245 -0.0010 ];
14:15: sim(’NonLinearRTM FindOp’,50)
16: disp ’NG100 FindOp Complete’
17:18: WfInput = WfInputBase+WfInputBias.signals.values; %pph
19: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
20: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
21: InputOpPoint = [ 0 0 ]
22: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
23:24: NG100 = linmod(’NonLinearRTM Lin’,StateOpPoint,InputOpPoint)
25:26: disp ’NG100 Complete’
27:28: %NG 98, NP 100
29: NgGoal = 98;
30: NpGoal = 100;
31:32: %Find the operating point
33: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
34: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
35: xInitialFindOp = xFinalFindOp;
36: sim(’NonLinearRTM FindOp’,50)
37: end
38:39: disp ’NG098 FindOp Complete’
40:41: %Setup up inputs for linmod
42: WfInput = WfInputBase+WfInputBias.signals.values; %pph
43: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
44: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
45: InputOpPoint = [ 0 0 ]
46: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
140
47:48: %Linearize the operating point
49: NG098 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
50:51: disp ’NG098 Complete’
52:53: %NG 96, NP 100
54: NgGoal = 96;
55: NpGoal = 100;
56:57: SimCounter = 0;
58: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
59: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
60: xInitialFindOp = xFinalFindOp;
61: sim(’NonLinearRTM FindOp’,50)
62: SimCounter = SimCounter +1;
63: end
64:65: disp ’NG098 FindOp Complete’
66:67: WfInput = WfInputBase+WfInputBias.signals.values; %pph
68: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
69: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
70: InputOpPoint = [ 0 0 ]
71: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
72:73: NG096 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
74:75: %NG 94, NP 100
76: NgGoal = 94;
77: NpGoal = 100;
78:79: SimCounter = 0;
80: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
81: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
82: xInitialFindOp = xFinalFindOp;
83: sim(’NonLinearRTM FindOp’,50)
84: SimCounter = SimCounter +1;
85: end
86:87: disp ’NG094 FindOp Complete’
88:89: WfInput = WfInputBase+WfInputBias.signals.values; %pph
90: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
91: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
92: InputOpPoint = [ 0 0 ]
93: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
94:95: NG094 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
96:97: disp ’NG094 Complete’
98:99: %NG 92, NP 100
100: NgGoal = 92;
101: NpGoal = 100;
102:103: SimCounter = 0;
104: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
105: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
106: xInitialFindOp = xFinalFindOp;
107: sim(’NonLinearRTM FindOp’,50)
141
108: SimCounter = SimCounter +1;
109: end
110:111: disp ’NG092 FindOp Complete’
112:113: WfInput = WfInputBase+WfInputBias.signals.values; %pph
114: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
115: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
116: InputOpPoint = [ 0 0 ]
117: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
118:119: NG092 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
120:121: disp ’NG092 Complete’
122:123: %NG 90, NP 100
124: NgGoal = 90;
125: NpGoal = 100;
126:127: SimCounter = 0;
128: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
129: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
130: xInitialFindOp = xFinalFindOp;
131: sim(’NonLinearRTM FindOp’,50)
132: SimCounter = SimCounter +1;
133: end
134:135: disp ’NG090 FindOp Complete’
136:137: WfInput = WfInputBase+WfInputBias.signals.values; %pph
138: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
139: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
140: InputOpPoint = [ 0 0 ]
141: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
142:143: NG090 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
144:145: disp ’NG090 Complete’
146:147: %NG 88, NP 100
148: NgGoal = 88;
149: NpGoal = 100;
150:151: SimCounter = 0;
152: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
153: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
154: xInitialFindOp = xFinalFindOp;
155: sim(’NonLinearRTM FindOp’,50)
156: SimCounter = SimCounter +1;
157: end
158:159: disp ’NG088 FindOp Complete’
160:161: WfInput = WfInputBase+WfInputBias.signals.values; %pph
162: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
163: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
164: InputOpPoint = [ 0 0 ]
165: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
166:167: NG088 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
168:
142
169: disp ’NG088 Complete’
170:171: %NG 86, NP 100
172: NgGoal = 86;
173: NpGoal = 100;
174:175: SimCounter = 0;
176: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
177: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
178: xInitialFindOp = xFinalFindOp;
179: sim(’NonLinearRTM FindOp’,50)
180: SimCounter = SimCounter +1;
181: end
182:183: disp ’NG086 FindOp Complete’
184:185: WfInput = WfInputBase+WfInputBias.signals.values; %pph
186: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
187: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
188: InputOpPoint = [ 0 0 ]
189: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
190:191: NG086 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
192:193: disp ’NG086 Complete’
194:195: %NG 84, NP 100
196: NgGoal = 84;
197: NpGoal = 100;
198:199: SimCounter = 0;
200: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
201: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
202: xInitialFindOp = xFinalFindOp;
203: sim(’NonLinearRTM FindOp’,50)
204: SimCounter = SimCounter +1;
205: end
206:207: disp ’NG084 FindOp Complete’
208:209: WfInput = WfInputBase+WfInputBias.signals.values; %pph
210: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
211: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
212: InputOpPoint = [ 0 0 ]
213: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
214:215: NG084 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
216:217: disp ’NG084 Complete’
218:219: %NG 82, NP 100
220: NgGoal = 82;
221: NpGoal = 100;
222:223: SimCounter = 0;
224: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
225: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
226: xInitialFindOp = xFinalFindOp;
227: sim(’NonLinearRTM FindOp’,50)
228: SimCounter = SimCounter +1;
229: end
143
230:231: disp ’NG082 FindOp Complete’
232:233: WfInput = WfInputBase+WfInputBias.signals.values; %pph
234: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
235: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
236: InputOpPoint = [ 0 0 ]
237: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
238:239: NG082 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
240:241: disp ’NG082 Complete’
242:243: %NG 80, NP 100
244: NgGoal = 80;
245: NpGoal = 100;
246:247: SimCounter = 0;
248: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
249: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
250: xInitialFindOp = xFinalFindOp;
251: sim(’NonLinearRTM FindOp’,50)
252: SimCounter = SimCounter +1;
253: end
254:255: disp ’NG080 FindOp Complete’
256:257: WfInput = WfInputBase+WfInputBias.signals.values; %pph
258: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
259: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
260: InputOpPoint = [ 0 0 ]
261: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
262:263: NG080 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
264:265: disp ’NG080 Complete’
266:267: %NG 78, NP 100
268: NgGoal = 78;
269: NpGoal = 100;
270:271: SimCounter = 0;
272: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
273: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
274: xInitialFindOp = xFinalFindOp;
275: sim(’NonLinearRTM FindOp’,50)
276: SimCounter = SimCounter +1;
277: end
278:279: disp ’NG078 FindOp Complete’
280:281: WfInput = WfInputBase+WfInputBias.signals.values; %pph
282: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
283: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
284: InputOpPoint = [ 0 0 ]
285: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
286:287: NG078 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
288:289: disp ’NG078 Complete’
290:
144
291: %NG 76, NP 100
292: NgGoal = 76;
293: NpGoal = 100;
294:295: SimCounter = 0;
296: while not((xFinalFindOp(1)*100/NPdes>NpGoal-tol)&(xFinalFindOp(1)*100/NPdes<NpGoal+tol)...
297: &(xFinalFindOp(4)*100/NGdes>NgGoal-tol)&(xFinalFindOp(4)*100/NGdes<NgGoal+tol))
298: xInitialFindOp = xFinalFindOp;
299: sim(’NonLinearRTM FindOp’,50)
300: SimCounter = SimCounter +1;
301: end
302:303: disp ’NG076 FindOp Complete’
304:305: WfInput = WfInputBase+WfInputBias.signals.values; %pph
306: QreqInput = QreqInputBase-QreqInputBias.signals.values; %Load ft-lbs
307: StateOpPoint = [ xFinalFindOp(1) xFinalFindOp(2) xFinalFindOp(3) xFinalFindOp(6) xFinalFindOp(4) ]
308: InputOpPoint = [ 0 0 ]
309: StateOpPointArchive(:,((100-NgGoal)/2)+1) = [ StateOpPoint’;WfInput;QreqInput ];
310:311: NG076 = linmod(’NonLinearRTM Lin’,StateOpPoint,[ 0 0 ])
312:313: disp ’NG076 Complete’
G.3 Changes to LMI toolset code
1 % dx=polsim(t,x,flag,ufun,ptraj,pds,pv,range)2 %3 % Called by PDSIMUL: integrate a polytopic PDS with ODE15s45 % Author: P. Gahinet 6/946 % Copyright 1995−2004 The MathWorks, Inc.7 % $Revision: 1.1.6.1 $89 function dx=t700polsim(t,x,flag,ufun,ptraj,pds,pv,range)
101112 % current parameter and input values13 pt = feval(ptraj,t);14 ut = feval(ufun,t);1516 % check position in box17 if any(pt < range(:,1) | pt > range(:,2)),18 error(sprintf('The parameter trajectory leaves the parameter box at t = %6.3e',t));19 end2021 % get A(p),B(p),C(p),D(p)22 %The following line is modified to deal with a polytopic model23 %[ap,bp,cp,dp,ep]=ltiss(psinfo(pds,'eval',polydec(pv,pt))); %Old Code24 [ap,bp,cp,dp,ep]=ltiss(psinfo(pds,'eval',pt)); %New Code252627 if isempty(flag)28 % Return state derivative29 if ¬isequal(ep,eye(size(ap)))30 ap=ep\ap;31 bp=ep\bp;32 end33 dx=ap*x + bp*ut;34 else35 % Return output36 dx=(cp*x + dp*ut).';37 end
145
1 function [tout,x,y, p] = t700pdsimul(pds,ptraj,tf,ut,xi,options)2 % PDSIMUL Simulate P−systems along parameter trajectories3 %4 % [T,X,Y] = PDSIMUL(PDS,'TRAJ',TF,'UT',XI,OPTIONS) simulates the (affine)5 % parameter−dependent system PDS along the parameter trajectory specified6 % by the function 'TRAJ'. The function PDSIMUL calls ODE15s to integrate7 % the time response of this linear time−varying system.8 %9 % Without output arguments, PDSIMUL plots the output
10 % trajectories.11 %12 % Input:13 % PDS affine parameter−dependent system (see PSYS)14 % 'TRAJ' name of the function p=TRAJ(t) specifying the15 % parameter trajectory. This−function takes a time16 % t and returns a value p of the parameter vector.17 % TF final time for the integration (initial=0)18 % 'UT' name of the input function u=UT(t). The default19 % is a step input.20 % XI initial state of the system (Default = 0)21 % OPTIONS control parameters for the ODE integration22 % (see ODESET)23 %24 % Output:25 % T integration time points26 % X state trajectories (X(:,1) = first state, etc.)27 % Y output trajectories (Y(:,1) = first output, etc)28 %29 % See also GEAR, PSYS, PVEC.3031 % Author: P. Gahinet 6/94, Revised 11/13/9632 % Copyright 1995−2004 The MathWorks, Inc.33 % $Revision: 1.1.6.1 $34 %35 % J.M. Spack36 % Modified code such that pvec is polytopic instead of affine3738 if nargin<2,39 error('usage: pdsimul(pds,ptraj,tf)');40 elseif ¬ispsys(pds),41 error('PDS must be a parameter−dependent system');42 else43 if nargin≤2, tf=5; end44 if nargin≤3, ut='stepsml'; end45 if nargin≤4, xi=[]; end46 if nargin≤5, options=[]; end47 end48 %49 %50 if exist(ptraj) < 2,51 error(sprintf(['Undefined function ' ptraj]));52 else53 p0 = feval(ptraj,0);54 end5556 if exist(ut) < 2,57 error(sprintf(['Undefined function ' ut]));58 else59 u0 = feval(ut,0);60 end61 %62 %63 [pdtyp,nv,ns,ni,no]=psinfo(pds);64 pv=psinfo(pds,'par');65 if isempty(pv),66 error(sprintf([...67 'The parameter vector description is missing! \n' ...68 ' Execute the command pds = addpv(pds,pv) \n' ...69 ' and rerun PDSIMUL']));70 end71 [pvtyp,np]=pvinfo(pv);7273 % check consistency74 %if ¬strcmp(pvtyp,'box'), %Commented Out75 % error('PV must be of type ''box'' '); %Commented Out76 if ¬isempty(xi) & length(xi)6=ns,77 error(sprintf('Initial condition XI should have %d states',ns));78 elseif np6=length(p0),79 error(sprintf(['The function ' ptraj ...80 ' should return a parameter vector of length %d'],np));81 elseif ni6=length(u0),82 error(sprintf(['The input function UT ' ...83 'should return a parameter vector of length %d'],ni));84 elseif isempty(xi),85 xi = zeros(ns,1);86 end8788 %range=pvinfo(pv,'par'); %Old Code
146
89 range=pvinfo(pv,'par',[1 2]); %New Code90 pds=pds(:,1:1+nv*(ns+ni+2));9192 if strcmp(pdtyp,'aff'),93 [t,x] = ode15s('affsim',[0 tf],xi,options,ut,ptraj,pds,pv,range);94 y = zeros(length(t),no);95 for i=1:length(t),96 y(i,:) = affsim(t(i),x(i,:).','output',ut,ptraj,pds,pv,range);97 end9899 else
100 %Old Code101 %[t,x] = ode15s('polsim',[0 tf],xi,options,ut,ptraj,pds,pv,range);102 %New Code103 [t,x] = ode15s('t700polsim',[0 tf],xi,options,ut,ptraj,pds,pv,range);104 y = zeros(length(t),no);105 for i=1:length(t),106 %Old Code107 %y(i,:) = polsim(t(i),x(i,:).','output',ut,ptraj,pds,pv,range);108 %New Code109 y(i,:) = t700polsim(t(i),x(i,:).','output',ut,ptraj,pds,pv,range);110 p(i,:) = feval(ptraj,t(i)); %New Line111 end112113 end114115 if nargout>0,116 tout = t;117 else118 plot(t,y)119 title('Output trajectory')120 end
G.4 LPV Controller
G.4.1 Modified Plant Setup
1 function PaugReturn = SetupGSAugPlantDistContLinear(A,B,C,D,WithWeighting)23 %Jeffrey M Spack4 %Create Augmented Plant56 %Xdot = Ax + Bu7 %z = C1x+D1u −> error8 %y = C2x+D2u −> NP9
10 Aaug = A1112 %Include parameter dependent B matrix in Aaug1314 B1 = B(:,2)15 B2 = B(:,1)1617 % [xdot] = [Aaug(rho) B2(rho)] [x] + [0][uprime] + [B1][w]18 % [udot] [ 0 −a ] [u] [1] [0]1920 % udot = uprime − a*u21 % a = pole of actuator dynamics22 CLMV = 0.03;2324 [m,n] = size(Aaug);25 Aaug = [Aaug B2; zeros(1,n) −1]2627 [m,n] = size(B1)28 %Baug = [B1 zeros(m,n) B2]29 Baug = [[B1;0] zeros(m+1,n) [zeros(m,n);CLMV]]3031 C1 = C(2,:)32 C2 = C(2,:)3334 %Add control signal to output35 if WithWeighting ==136 Cwf = [zeros(size(C2)) 0] %utilda37 else38 Cwf = [zeros(size(C2)) 0] %u39 end
147
40 Cwe = C24142 %Create augmented plant with only weighted error and control input43 Caug = abv(Cwe,C2)4445 D2 = [0 −1 D(2,1)]4647 %Add control signal to output48 if WithWeighting ==149 Dwf = [0 0 1] %u Tilda50 else51 Dwf = [0 0 1] %u52 end53 Dwe = [0 −1 0]5455 %Add D12, D22 to augmented C56 Caug = [Caug [D(2,1); D(2,1)]]5758 %Add control input to output59 Caug2 = abv(Cwf,Caug)6061 %Add parameter dependent D matrix to Caug6263 %D matrix is already setup for augmented C since D(2,1) = 064 [m,n] = size(Dwe);65 Daug = abv(Dwf,Dwe,D2);6667 Paug = pck(Aaug,Baug,Caug2,Daug)6869 if WithWeighting ==170 w e = nd2sys([10ˆ−3 1],[10ˆ−1 1],1);71 else72 w e = 1;73 end7475 %Weighting function for control action76 if WithWeighting ==177 WC = nd2sys([10ˆ−2 1],[10ˆ−4 1],10); %Baseline78 else79 WC = 1;80 end81 Waug = daug(WC,w e,1);8283 %Baseline Control without weighting84 %Paug = sysbal(Paug)8586 %Weight only error term87 PaugW = mmult(Waug,Paug);8889 [AW,BW,CW,DW] = unpck(PaugW);90 PaugWlti = ltisys(AW,BW,CW,DW,1);9192 PaugReturn = PaugWlti;
G.4.2 LPV Controller Design
12 clear all3 close all4 cd 'D:\Users\a276svt\My Documents\MATLAB\Thesis\GainSchController'56 load '../LinearModelsNew101124'78 A92 = NG092.a;9 B92 = NG092.b;
10 C92 = NG092.c;11 D92 = NG092.d;1213 A94 = NG094.a;14 B94 = NG094.b;15 C94 = NG094.c;16 D94 = NG094.d;1718 A96 = NG096.a;19 B96 = NG096.b;20 C96 = NG096.c;21 D96 = NG096.d;2223 A98 = NG098.a;24 B98 = NG098.b;25 C98 = NG098.c;
148
26 D98 = NG098.d;2728 PaugW92lti=SetupGSAugPlantDistContLinear(A92,B92,C92,D92,1)29 PaugW94lti=SetupGSAugPlantDistContLinear(A94,B94,C94,D94,1)30 PaugW96lti=SetupGSAugPlantDistContLinear(A96,B96,C96,D96,1)31 PaugW98lti=SetupGSAugPlantDistContLinear(A98,B98,C98,D98,1)3233 pdG = psys([PaugW92lti PaugW94lti PaugW96lti PaugW98lti])3435 [pdP,r] = sconnect('dist; ref','G(1);G(2)','K:G(3)','G:dist;ref;K',pdG);3637 [gopt,pdK] = hinfgs(pdP,r);
G.4.3 LPV Controller Linear Simulation
12 pcl = slft(pdPorig,pdK)34 pvbox = pvec('pol',[0 1; 0 1; 0 1; 0 1])56 pclpv = addpv(pcl,pvbox);78 %plot step response at multiple frequencies9 bias = 95; ampl = 2;
10 tf = 50;11 MyUt = 'GSInputFunction2';1213 freq1 = 1; freq=freq1; WriteTrajFile92 9814 [t1,x,y1,pt1]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);1516 freq2 = 5; freq=freq2; WriteTrajFile92 9817 [t2,x,y2,pt2]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);1819 freq3 = 10; freq=freq3; WriteTrajFile92 9820 [t3,x,y3,pt3]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);2122 freq4 = 15; freq=freq4; WriteTrajFile92 9823 [t4,x,y4,pt4]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);2425 freq5 = 20; freq=freq5; WriteTrajFile92 9826 [t5,x,y5,pt5]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);2728 freq6 = 25; freq=freq6; WriteTrajFile92 9829 [t6,x,y6,pt6]=t700pdsimul(pclpv,['trajectory',num2str(freq)],tf,MyUt);
G.4.4 Write Trajectory File
1 fid = fopen(strcat('trajectory',num2str(freq),'.m'), 'w');2 fprintf(fid, strcat('function p = trajectory',num2str(freq),'(t)\n'));3 fprintf(fid, strcat('NGtrajectory = ',num2str(bias),'+',num2str(ampl),'*sin(',num2str(freq),'*t);\n'));4 fprintf(fid, 'flag92 94=0;\n');5 fprintf(fid, 'flag94 96=0;\n');6 fprintf(fid, 'flag96 98=0;\n');7 fprintf(fid, 'if ((NGtrajectory≥92)&&(NGtrajectory<94))\n');8 fprintf(fid, ' flag92 94=1;\n');9 fprintf(fid, 'elseif ((NGtrajectory≥94)&&(NGtrajectory<96))\n');
10 fprintf(fid, ' flag94 96=1;\n');11 fprintf(fid, 'elseif ((NGtrajectory≥96)&&(NGtrajectory≤98))\n');12 fprintf(fid, ' flag96 98=1;\n');13 fprintf(fid, 'end\n');14
15 fprintf(fid, 'p92=flag92 94*(1−(NGtrajectory−92)/2);\n');16 fprintf(fid, 'p94=flag92 94*((NGtrajectory−92)/2)+flag94 96*(1−(NGtrajectory−94)/2);\n');17 fprintf(fid, 'p96=flag94 96*((NGtrajectory−94)/2)+flag96 98*(1−(NGtrajectory−96)/2);\n');18 fprintf(fid, 'p98=flag96 98*((NGtrajectory−96)/2);\n');19 fprintf(fid, 'p = [p92;p94;p96;p98];\n');20 fclose(fid);
149
G.4.5 Linear Simulation Input Function
1 function u = GSInputFunction2(t)2 if t>0.13 if t<124 temp1=40;5 else6 temp1=0;7 end8 else9 temp1=0;
10 end1112 if (t>25)13 if t<4014 temp2=100;15 else16 temp2=0;17 end18 else19 temp2=0;20 end2122 u=[temp1;temp2];
G.4.6 LPV Controller s-function
1 function [sys,x0,str,ts] = LPVControllerSFunc2(t,x,u,flag,pdK)23 warning off all45 global ak bk ck dk pdK67 switch flag,8 %%%%%%%%%%%%%%%%%%9 % Initialization %
10 %%%%%%%%%%%%%%%%%%11 % Initialize the states, sample times, and state ordering strings.12 case 01314 [sys,x0,str,ts]=mdlInitializeSizes;1516 case 1,17 sys=mdlDerivatives(t,x,u);1819 %%%%%%%%%%%20 % Outputs %21 %%%%%%%%%%%22 % Return the outputs of the S−function block.23 case 324 sys=mdlOutputs(t,x,u);2526 %%%%%%%%%%%%%%%%%%%27 % Unhandled flags %28 %%%%%%%%%%%%%%%%%%%29 % There are no termination tasks (flag=9) to be handled.30 % Also, there are no continuous or discrete states,31 % so flags 1,2, and 4 are not used, so return an empty u32 % matrix33 case { 1, 2, 4, 9 }34 sys=[];3536 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%37 % Unexpected flags (error handling)%38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39 % Return an error message for unhandled flag values.40 otherwise41 error(['Unhandled flag = ',num2str(flag)]);4243 end4445 %46 %=============================================================================47 % mdlInitializeSizes48 % Return the sizes, initial conditions, and sample times for the S−function.49 %=============================================================================
150
50 %51 function [sys,x0,str,ts] = mdlInitializeSizes()52 global ak bk ck dk pdK5354 [ak,bk,ck,dk] = GetModel(pdK,92);5556 sizes = simsizes;57 sizes.NumContStates = size(ak,1); %dynamically sized58 sizes.NumDiscStates = 0;59 sizes.NumOutputs = 1; % 1 outputs: fuel flow (pps)60 sizes.NumInputs = 2; % 1 inputs: NP error61 sizes.DirFeedthrough = 1; % has direct feedthrough62 sizes.NumSampleTimes = 1;6364 sys = simsizes(sizes);65 str = [];66 x0 = zeros(sizes.NumContStates,1);67 ts = [0 0]; % inherited sample time6869 % end mdlInitializeSizes7071 %72 %=============================================================================73 % mdlDerivatives74 % Return the derivatives for the continuous states.75 %=============================================================================76 %77 function sys = mdlDerivatives(t,x,u)7879 global ak bk ck dk pdK8081 ak,bk,ck,dk] = GetModel(pdK,u(1));8283 sys=ak*x + bk*u(2);8485 % end mdlDerivatives8687 %88 %=============================================================================89 % mdlOutputs90 % Return the output vector for the S−function91 %=============================================================================92 %93 function sys = mdlOutputs(t,x,u)94 global ak bk ck dk pdK9596 sys=(ck*x + dk*u(2)).';9798 % end mdlOutputs99
100101 function [ak,bk,ck,dk] = GetModel(pdK,NGInput)102 [ak,bk,ck,dk]=ltiss(psinfo(pdK,'eval',NGInputConversion(NGInput)));103104 %end GetModel105106 function p = NGInputConversion(NGinput)107 x = 1;108 NGUL=100;109 NGLL=76;110 for i=NGLL:2:NGUL111112 if ((i==NGLL)&&(NGinput ≥i && NGinput<(i+2)))113 temp(x)= (1−(NGinput−i)/2);114 elseif ((i==NGUL)&&(NGinput ≥i && NGinput≤(i+2)))115 temp(x)= ((NGinput−(i−2))/2);116 elseif (NGinput >(i−2) && NGinput<(i))117 temp(x)= ((NGinput−(i−2))/2);118 elseif (NGinput ≥i && NGinput<(i+2))119 temp(x)= (1−(NGinput−i)/2);120 else121 temp(x)=0;122 end123 x=x+1;124125 end126 p = temp';127128 %End NGInputConversion
151
Appendix H
Results
H.1 Linear Plants
Table H.1: NG076 Linear PlantA B
-0.05483 74.11 -0.3139 0.2915 0.01312 59.11 -7.559
0 -6516 -267.2 1018 0.3269 5.012e+004 0
0 0 -373.3 358.3 0.1941 0 0
0 0 3674 -4033 0 1.866e+005 0
0 -809.2 -604.3 910.3 -1.157 8.374e+004 0
-0.007253 9.803 -0.04153 0.03856 0.001736 7.82 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -809.2 -604.3 910.3 -1.157 8.374e+004 0
C D
λNP = −0.05483;λP45 = −6516;λNG − 0.5975;λPs3 = −43.99;λP41 = −4363;
Table H.2: NG078 Linear PlantA B
-0.05747 74.26 -1.667 1.546 0.01172 312.2 -7.559
0 -6576 -266.3 1019 0.3274 4.964e+004 0
0 0 -376.1 360.6 0.2032 0 0
0 0 3684 -4044 0 1.867e+005 0
0 -793.1 -594.5 902.3 -1.19 8.374e+004 0
-0.007602 9.824 -0.2205 0.2045 0.00155 41.3 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -793.1 -594.5 902.3 -1.19 8.374e+004 0
C D
152
A B
C D
λNP = −0.05747;λP45 = −6576;λNG − 0.5903;λPs3 = −44.71;λP41 = −4376;
Table H.3: NG080 Linear PlantA B
-0.06099 78.8 -3.255 3.032 0.01709 604.1 -7.559
0 -5934 -265.7 1024 0.7109 4.904e+004 0
0 0 -379.3 363.7 0.4608 0 0
0 0 3705 -4070 0 1.869e+005 0
0 -778.5 -602.5 898.4 -2.653 8.364e+004 0
-0.008069 10.42 -0.4306 0.4011 0.00226 79.92 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -778.5 -602.5 898.4 -2.653 8.364e+004 0
C D
λNP = −0.06099;λP45 = −5933;λNG − 1.475;λPs3 = −45.78;λP41 = −4404;
Table H.4: NG082 Linear PlantA B
-0.06826 82 -6.064 5.672 0.01698 1083 -7.559
0 -2869 -138.7 519.8 0.2854 2.385e+004 0
0 0 -392.4 371.3 0.4164 0 0
0 0 3776 -4150 0 1.87e+005 0
0 -774.2 -594.9 920.8 -2.326 8.493e+004 0
-0.00903 10.85 -0.8021 0.7503 0.002247 143.2 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -774.2 -594.9 920.8 -2.326 8.493e+004 0
C D
λNP = −0.06826;λP45 = −2869;λNG − 1.204;λPs3 = −51.57;λP41 = −4492;
Table H.5: NG084 Linear PlantA B
-0.07621 84.47 -8.508 7.927 0.01765 1489 -7.559
0 -2496 -135.1 521.7 0.3817 2.297e+004 0
0 0 -397 376.3 0.8461 0 0
0 0 3810 -4185 0 1.874e+005 0
0 -765.3 -588.8 921.8 -4.04 8.481e+004 0
-0.01008 11.17 -1.125 1.049 0.002334 196.9 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -765.3 -588.8 921.8 -4.04 8.481e+004 0
C D
λNP = −0.07621;λP45 = −2496;λNG − 1.798;λPs3 = −52.73;λP41 = −4531;
153
Table H.6: NG086 Linear PlantA B
-0.08699 87.31 -10.99 10.06 0.01959 1936 -7.559
0 -2234 -130.4 500.4 0.383 2.208e+004 0
0 0 -403.1 380.6 0.7216 0 0
0 0 3816 -4197 0 1.877e+005 0
0 -1054 -581.8 983.8 -3.714 8.476e+004 0
-0.01151 11.55 -1.454 1.33 0.002592 256.1 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -1054 -581.8 983.8 -3.714 8.476e+004 0
C D
λNP = −0.08699;λP45 = −2234;λNG − 1.805;λPs3 = −54.81;λP41 = −4547;
Table H.7: NG088 Linear PlantA B
-0.1004 92.2 -13.71 11.82 0.008076 2347 -7.559
0 -1966 -126.5 456.7 0.3872 2.124e+004 0
0 0 -406.7 387.1 0.6577 0 0
0 0 3867 -4254 0 1.881e+005 0
0 -1793 -601.3 1153 -3.574 8.414e+004 0
-0.01328 12.2 -1.813 1.563 0.001068 310.5 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -1793 -601.3 1153 -3.574 8.414e+004 0
C D
λNP = −0.1004;λP45 = −1966;λNG − 1.654;λPs3 = −52.89;λP41 = −4610;
Table H.8: NG090 Linear PlantA B
-0.1112 97.11 -15.79 13.69 0.00132 2614 -7.559
0 -3752 -258 928.3 0.966 4.18e+004 0
0 0 -412.9 393 0.6894 0 0
0 0 3931 -4326 0 1.884e+005 0
0 -1781 -617.7 1163 -4.074 8.36e+004 0
-0.01471 12.85 -2.089 1.811 0.0001746 345.8 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -1781 -617.7 1163 -4.074 8.36e+004 0
C D
λNP = −0.1112;λP45 = −3752;λNG − 2.442;λPs3 = −53.67;λP41 = −4687;
Table H.9: NG092 Linear PlantA B
-0.1286 106.1 -19.1 16.66 -0.0107 2961 -7.559
0 -3722 -262.4 955.8 1.047 4.068e+004 0
C D
154
A B
0 0 -418 402 0.7379 0 0
0 0 4046 -4453 0 1.889e+005 0
0 -1780 -669.3 1190 -4.38 8.253e+004 0
-0.01701 14.04 -2.526 2.204 -0.001415 391.7 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -1780 -669.3 1190 -4.38 8.253e+004 0
C D
λNP = −0.1286;λP45 = −3722;λNG − 3.063;λPs3 = −50.6;λP41 = −4822;
Table H.10: NG094 Linear PlantA B
-0.1495 126.8 -23.06 17.7 -0.01199 3295 -7.559
0 -2665 -278.2 745.3 0.9913 3.98e+004 0
0 0 -428.9 413.3 0.8415 0 0
0 0 4202 -4624 0 1.891e+005 0
0 -3597 -709.9 1618 -4.935 8.137e+004 0
-0.01977 16.77 -3.05 2.341 -0.001586 435.9 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -3597 -709.9 1618 -4.935 8.137e+004 0
C D
λNP = −0.1495;λP45 = −2664;λNG − 2.582;λPs3 = −52.87;λP41 = −5003;
Table H.11: NG096 Linear PlantA B
-0.1731 128 -26.63 20.82 -0.02577 3583 -7.559
0 -2624 -283.9 768.6 0.9343 3.823e+004 0
0 0 -437.8 423.3 0.8101 0 0
0 0 4328 -4768 0 1.9e+005 0
0 -3614 -759.8 1651 -4.765 7.988e+004 0
-0.0229 16.94 -3.523 2.754 -0.003409 474 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -3614 -759.8 1651 -4.765 7.988e+004 0
C D
λNP = −0.1731;λP45 = −2624;λNG − 3.317;λPs3 = −52.21;λP41 = −5156;
Table H.12: NG098 Linear PlantA B
-0.1995 133.8 -31.02 24.82 -0.0397 3809 -7.559
0 -2695 -300.2 807.4 0.6872 3.687e+004 0
0 0 -450.9 437.6 0.5982 0 0
0 0 4531 -4996 0 1.905e+005 0
0 -3655 -827.4 1710 -3.543 7.816e+004 0
C D
155
A B
-0.02639 17.7 -4.104 3.284 -0.005251 503.9 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -3655 -827.4 1710 -3.543 7.816e+004 0
C D
λNP = −0.1995;λP45 = −2694;λNG − 2.863;λPs3 = −51.57;λP41 = −5396;
Table H.13: NG100 Linear PlantA B
-0.2168 139.5 -34.68 28.07 -0.04104 3858 -7.559
0 -2782 -324.3 848.2 0.7437 3.598e+004 0
0 0 -458.2 444.2 0.6295 0 0
0 0 4689 -5170 0 1.938e+005 0
0 -3716 -869.8 1771 -3.746 7.572e+004 0
-0.02868 18.46 -4.587 3.713 -0.005429 510.4 0
1 0 0 0 0 0 0
0 0 0 0 0.002237 0 0
0 -3716 -869.8 1771 -3.746 7.572e+004 0
C D
λNP = −0.2168;λP45 = −2781;λNG − 3.021;λPs3 = −52.87;λP41 = −5576;
156
Bibliography
[1] M. G. Ballin, “A high fidelity real-time simulation of a small turboshaft engine,” NASAAmes Research Center, Moffett Field, CA 94035, July 1998, nASA TM-100991.
[2] P. Gahinet, A. Nemirovski, A. Laub, and M. Chilli, “Manual of LMI control toolbox,”The MathWorks Inc., 1995.
[3] pilotfriend.com. (2010) helicopters: their main components and controls. Copyright:Used with permission. [Online]. Available: http://www.pilotfriend.com/training/flight training/rotary/helis.htm
[4] aerospaceweb.org. (2010) ”turboshaft and turboprop”.Copyright: Used with permission. [Online]. Available: http://www.aerospaceweb.org/question/propulsion/q0209.shtml
[5] Wikipedia:User:Duk. (2006, Mar.) ”file:brayton cycle.svg”. Copyright: Used withpermission under the Creative Commons Attribution ShareAlike 3.0 License. http://creativecommons.org/licenses/by-sa/3.0/. [Online]. Available: http://commons.wikimedia.org/wiki/File:Brayton cycle.svg
[6] W. H. Pfiel, “Multivariable control for the ge t700 engine using the lqr/ltr designmethodology,” Master’s thesis, Department of Mechanical Engineering, Cambridge,July 1984.
[7] M. P. Boyce, Gas Turbine Engineering Handbook - 3rd edition. 30 Corporate Drive,Suite 400, Burlington, MA 01803, USA: Gulf Professional Publishing, 2006.
[8] D. Quattrochi. (2006, Jun.) Brayton cycle. [Online]. Available: http://web.mit.edu/16.unified/www/SPRING/propulsion/notes/node27.html
[9] J. Shamma and M. Athans, “Guaranteed properties of gain scheduled control for linearparameter-varying plants,” Automatica, vol. 27, no. 3, pp. 559–564, 1991.
[10] M. Athans and J. Shamma, “Gain scheduling: Potential hazards and possible reme-dies,” IEEE Control Systems Magazine, vol. 12, pp. 101–107, 1992.
[11] G. Becker and A. Packard, “Robust performance of linear parametrically varyingsystems using parametrically-dependent linear feedback,” Systems & Control Letters,vol. 23, no. 3, pp. 205–215, 1994.
[12] P. Apkarian, P. Gahinet, and G. Becker, “Self-scheduled H∞ control of linearparameter-varying systems: a design example,” Automatica, vol. 31, no. 9, pp. 1251–1261, 1995.
157