UserManual ITB

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 87

A Complete Parametric Cycle Analysis for Ideal

TurboFan Engine with Interstage Turbine Burner


S.L. Yang, Y.K. Siow, K.H. Liew, and E. Urip
Mechanical Engineering Engineering Mechanics Department
Michigan Technological University
1400 Townsend Drive
Houghton, MI 49931-1295
906/487-2624
906/487-2822 (Fax)
slyang@mtu.edu
C. J. Marek
Combustion Technology Branch, MS 5-10
NASA Glenn Research Center
21000 Brookpark Road
Cleveland, OH 44135
216/433-3584
216/433-3000 (Fax)
Cecil.J.Marek@grc.nasa.gov
October 23, 2002
ABSTRACT
Today modern aircraft is based on air-breathing jet propulsion systems, which uses
moving fluids as substances to transform energy carried by the fluids into output power.
Throughout aero-vehicle evolution, improvements have been made on the engine
efficiency and pollutants reduction. This parametric study focuses on a complete
parametric cycle analysis of a turbofan engine with an Interstage Turbine Burner (ITB).
The major advantages associated with the addition of an ITB are the improvement of
thermal efficiency and reduction in NOx emission. Lower temperature peaks in the main
combustor results in lower thermal NOx emission and a lower amount of cooling air
required.
The objective of this study is to make use of the engine component parameters, namely
compressor or turbine polytropic efficiency, burner efficiency, pressure drop across the
engine components, design limitation (burner exit temperature), and flight environment
as inputs to calculate engine performance, specific thrust and thrust specific fuel
consumption. This relation can provide guidance in identifying the characteristics of the
engines components. The knowledge can subsequently be used to develop and optimize
the performance and integration of each component.
In this study, each component in the engine is treated individually. The first-law energy
equation, second-law, and conservation of momentum are then applied.
ii
Visual Basic program, Excel macrocode, and Excel neuron code are used to facilitate
Excel software to plot engine performance versus engine design parameters. This
program computes and plots the data sequentially without forcing users to open other
types of plotting programs. A users manual on how to use the program is also included
in this report.
ACKNOWLEDGEMENTS
This project on evaluating the improvement in performance of an aircraft gas turbine by
adding an Interstage turbine burner (ITB) is really challenging and would have not been
accomplished without the technical assistance and suggestion given from our graduate
advisor, Dr. S.L. (Jason) Yang.
Our sincere gratitude next goes to Dr. Cecil John Marek, for giving us this opportunity to
employ our limited knowledge in engineering mechanics in solving such an interesting
and practical problem related to gas turbine propulsion like this.
The authors would like to thank Dr. Paul Penko for being the grant monitor on this
project. Appreciation also goes to Dr. Scott John at NASA Glenn Research Center for
providing us the listing data for a two-spool high bypass turbofan engine with and
without ITB, and suggesting some valuable improvement that can be done to the code.
Special thank is due to Mr. Jeffrey R. Herbon from Williams International for carefully
reviewing and test-driving the code. Based on his experience and expertise in cycle
iii
analysis, he has given us many valuable suggestions on how the program could be
enhanced for increased usefulness in the future.
iv
TABLE OF CONTENTS
ABSTRACT .... ii
ACKNOWLEDGEMENT ... iii
LIST OF FIGURES ... v
LIST OF TABLES . vi
NOMENCLATURE ... vii
1. INTRODUCTION ............. 1
2. ENGINE PERFORMANCE PARAMETERS. 3
3. TURBOFAN with ITB CYCLE ANALYSIS.. 11
4. SUMMARY of EQUATIONS... 20
5. USER MANUAL ... 24
6. DATA VALIDATION... 32
7. RESULTS AND DISCUSSIONS.. 35
APPENDIX
A1 EXCEL MACRO VISUAL BASIC CODE .. 44
A2 FORTRAN 77 CODE ..... 52

REFERENCES.. 78
v
LIST OF FIGURES
Figure 1.1 A Gas Generator propulsion system.. 1
Figure 1.2 A TurboJet Engine. 1
Figure 1.3 A TurboFan Engine... 2
Figure 3.1 Turbofan with Interstage Turbine Burner 11
Figure 5.1 Excel Input sheet screenshot.... 25
Figure 6.1 Turbofan Engine with ITB: specific thrust vs flight Mach number
(both Fortran77 and Excel) .. 32
Figure 6.2 Turbofan Engine with ITB: specific thrust vs flight Mach number
(both Fortran77 and Excel) .. 33
Figure 6.3 Turbofan Engine with ITB: specific thrust vs flight Mach number
(both Fortran77 and Excel) ...... 33
Figure 6.4 Turbofan Engine ITB: specific thrust vs flight Mach number
(both Fortran77 and Excel) ...... 34
Figure 7.1 Turbofan Engine: specific thrust vs flight Mach number. 36
Figure 7.2 Turbofan Engine: thrust specific fuel consumption vs flight Mach
number . 37
Figure 7.3 Turbofan Engine: specific thrust vs compressor pressure ratio .. 38
Figure 7.4 Turbofan Engine: thrust specific fuel consumption vs compressor pressure
ratio ..... 38
Figure 7.5 Turbofan Engine: fuel/air ratio vs flight Mach number ..... 39
Figure 7.6 Turbofan Engine: specific thrust vs fan pressure ratio ... 40
Figure 7.7 Turbofan Engine: thrust specific fuel consumption vs fan pressure
ratio .... 40
Figure 7.8 Turbofan Engine: specific thrust vs bypass ratio .... 41
Figure 7.9 Turbofan Engine: thrust specific fuel consumption vs bypass pressure
ratio .... 42
vi
LIST OF TABLES
Table 7.1 Input Data for Engine Parameters (SI unit) ... 35
Table 7.2 Input Data for Option 1 (SI unit) ... 36
Table 7.3 Input Data for Option 2 (SI unit) ... 37
Table 7.4 Input Data for Option 3 (SI unit) ... 39
Table 7.5 Input Data for Option 4 (SI unit) ... 41
Table A.1 Description of variables in MS Excel Macro Visual Basic code ..44
Table B.1 Description of Input Variables in input file (English and SI unit).. 55
vii
NOMENCLATURE
A cross-sectional area
a sound speed
C
P
specific heat at constant pressure
D drag force
e polytropic efficiency
F force uninstalled thrust
f fuel/air ratio
g
c
Newtons constant
h enthalpy
h
PR
low heating value of fuel
M mach number
m

mass flow rate


P pressure
P
t
total pressure
Q

rate of thermal energy released or absorbed


R universal gas constant
S uninstalled thrust specific fuel consumption
T temperature or installed thrust
TSFC installed specific fuel consumption
T
t
total temperature
V absolute velocity
W

power
viii
bypass ratio
ratio of specific heats,
v
p
c
c
m

mechanical Efficiency

O
overall Efficiency

P
propulsive Efficiency

T
thermal Efficiency
ratio of total pressure

r
(exception) ratio between total pressure and static pressure due to the
ram effect,
P
P
t
ratio of total temperature

r
(exception) ratio between total temperature and static temperature due
to the ram effect,
T
T
t

ratio between total enthalpy and enthalpy at ambient condition


ix
SUBSCRIPTS
b
main burner or properties between main burner exit and ITB
c
properties between upstream and main burner or engine core
d
diffuser
e
exit
f
fan
fn
fan-nozzle
HPC
high pressure compressor
HPT
high pressure turbine
ITB
interstage turbine combustors
LPC
low pressure compressor
LPT
low pressure turbine
O
inlet
n
nozzle
r
ram
t
properties between ITB exit and downstream or total/stagnation
values of properties (i.e. temperature, pressure or enthalpy)
x
1. Introduction
This program is designed to give a complete parametric cycle analysis of an ideal Turbo
Fan air-breathing propulsion system. In most common air-breathing propulsion engines,
the heart of a gas turbine is the gas generator. It consists of three major components
namely, compressor, combustor, and turbine as shown schematically in Figure 1.1.
Figure 1.1 A Gas Generator Propulsion System
The idea behind a gas generator is to convert intake air mixed with fuel into high
temperature and high pressure gas. Depending on the applications of the gas turbine, the
energy provided is extracted and used for different applications (turbojet, turbofan, turbo-
shaft, turboprop, and ramjet) through different mechanisms. A turbojet engine can be
constructed by adding an inlet and a nozzle as shown in Figure 1.2.
Figure 1.2 A Turbo Jet Engine
The nozzle converts the internal energy of the hot gas into kinetic energy or thrust. The
work extracted by the turbine is used to drive the compressor. In the case of a turbofan,
turboprop, and turbo-shaft engine, the work from the turbine is required to drive a shaft
for the turbo-shaft, a fan for the turbofan, and a propeller for the turboprop in addition to
driving the compressor. The ramjet engine consists of an inlet, a combustor, with a nozzle
at the exit. It does not require the compressor because the inlet already uses a ram air-
compressing mechanism such that intake air has sufficient kinetic energy to increase its
pressure.
xi
The main objective of this analysis is to determine the relationships between engine
performance (primarily specific thrust
m
F
, thrust specific fuel consumption) to design
parameters (compressor pressure ratio, fan pressure ratio, bypass ratio, etc), to design
constraints (burner exit temperature, compressor exit pressure, etc), and to flight
environment (Mach number, ambient temperature, ambient pressure, etc).
Figure 1.3 A Turbo Fan Engine
2. Aircraft Engine Performance Parameters
Thrust
Thrust is the force used to sustain the flight (thrust = drag), accelerated flight (thrust >
drag), deceleration (thrust < drag). Using Figure 1.3 for the control volume, we can apply
a momentum balance to the control volume. Uninstalled thrust F of a jet engine (single
inlet and single exhaust) is given by
xii
)
( )
A P P
g
V m V m
m
e o e
c
o e o fuel o
F +
+

(2.1)
where
m m fuel o
. .
, are mass flow rates of air and fuel respectively
V V e o
, are velocities at inlet and exit respectively
P P e o
, are pressure at inlet and exit respectively
For the ideal case, the hot gas is expanded to the ambient pressure which gives P
e
= P
o
.
Equation (2.1) then becomes
)
g
V m V m
m
c
o e
o
fuel
o
F

(2.2)
The installed thrust T is given by
D D
F T
nozzle inlet
(2.3)
where D
inlet
and D
nozzle
are the drag force from the inlet and the nozzle.
Specific Fuel Consumptions
The specific fuel consumption is the rate of fuel use by the propulsion system per unit of
thrust produced. The installed specific fuel consumptions, TSFC, and the uninstalled
specific fuel consumptions, S, are given by
T
m
TSFC
fuel

(2.4)
xiii
F
m
S
fuel

(2.5)
Efficiency of an Engine
Some of the following parameters will be used widely in this program namely, thermal
efficiency, propulsive efficiency, and overall efficiency
The thermal efficiency characterizes the net energy output extracted (shaft work) from
the engine divided by the available thermal energy (fuel).
Q
W
in
out
T


(2.6)
where,

,
_

h m released energy thermal of rate Q


engine of out power net
W
efficiency thermal
PR
out
T
f
in

The propulsive efficiency defines the ratio between the engine power output and the
power being used to run the aircraft.
W
V T
out
P

(2.7)
xiv
where,
engine of out power net
W
aircraft of velocity
V
system propulsion of thrust T
engine of efficiency propulsive
out
P

An overall performance of a propulsion system is given by the combination between


thermal and propulsive efficiencies.

T P O
(2.8)
where,
efficiency overall
O

Notations
Some useful quantity notations for compressible flow will be used in this report namely,
stagnation temperature, stagnation pressure, and Mach number.
Stagnation temperature or total temperature T
t
is defined as the temperature obtained
when steadily flowing fluid is brought to rest adiabatically without extraction of work.
Applying the first law of thermodynamic to a calorically perfect gas gives:
xv
2
V
+ h = h
2
t
(2.9)
where,
h = static enthalpy
h
t
= enthalpy at stagnation condition
V = velocity
With the assumptions of constant specific heat coefficient, the above equation can be
written as:
C 2
V
T
P
2
t
+ T =

2
1
+ 1 T =
M T
2
t
(2.10)
where,
heats specific of ratio
number Mach M
e temperatur static T
e temperatur stagnation
Tt

xvi
Stagnation pressure or total pressure P
t
is defined as the pressure reached when a steady
flowing fluid is brought to rest adiabatically and reversibly. Using the isentropic relation,
the total pressure is given by
M
2
1
+ 1 P
2
P =
1

t
(2.11)
The ratio of total temperatures and the ratio of total pressure across a component is
denoted by the subscript: d for diffuser, LPC for low pressure compressor, HPC for high
pressure compressor, b for main burner, ITB for inter-stage turbine burner, LPT for low
pressure turbine, HPT for high pressure turbine, n for nozzle, and f for fan.
For example:
diffuser entering pressure total
diffuser leaving pressure total
d

diffuser entering e temperatur total


diffuser leaving e temperatur total
d

Exceptions
For the free stream, ram, we define
r
as a ratio of total temperature/static temperature
and
r
as a ratio of total pressure/static pressure.
M
T
T

0
2
1
+ 1 = =
2
0
0 t
r
(2.12)
( )
M
2
1
+ 1
P
P

0
2
= =
1
0
0 t
r
(2.13)
A ratio between total enthalpy of the burner exit and ambient enthalpy, denoted by

,
is defined such that it will be one of the input parameters.
( )
( )
T C
T C

p
t p
=
ambient for , 0
exit burner
b
(2.14)
( )
( ) T
C
T C
p
t p
ambient for
exit burner stage Inter
ITB
, 0


(2.15)
Component Performance
In this analysis it is acceptable to assume that the working fluid in the engine can be
idealized as a perfect gas. Properties of an ideal gas strongly depend on the temperature.
This cycle allows fluid properties variation across the engine which assumes constant
fluid properties from the main burner entrance upstream (C
pc
,
c
), from ITB entrance to
the main burner exit (C
pb
,
b
), and from ITB exit downstream (C
pt
,
t
).
Inlet and Diffuser
Pressure losses occur due to the friction with the inlet wall. The total pressure ratio,
d
, is
always less than 1.
In supersonic flight, the pressure losses cause shock waves which produce greater
pressure losses. The inlet total pressure is defined as the product of the ram pressure ratio
and the diffuser pressure ratio. Therefore the portion of the pressure loss due to the shock
waves and wall friction is defined by:


r
d d max
(2.16)
From the Military Specification 5008B (Ref. 2), the following relation is obtained:
( )

'

<
+
<

M
M
M M
M
r
0
4
0
35 . 1
0
5
935
800
5 1 1 075 . 0 1
1 1
0
0
(2.17a,b,c)
Compressor and Turbine
The compressor is measured through two type of efficiencies namely, isentropic
efficiency and poly-tropic efficiency. The Isentropic efficiency is defined by
( )
1
1
1


c
c
c
c
c
c
given for n compressio of work actual
given for n compressio of work ideal
(2.18)
The poly-tropic efficiency is defined as
change pressure al differenti a for n compressio of work actual
change pressure al differenti a for n compressio of work ideal
ec

(2.19)
With the assumption of constant e
c
, we can obtain the relation between
c
and
c
:
( ) ( )


c
ec
c c
c
1
(2.20)
Going through a similar procedure as the compressor, we obtain turbine isentropic
efficiency, turbine poly-tropic efficiency and the relationship between
t
and
t
as
follows:
( )


t
t
t
t
t
t
given for work turbine actual
given for work tubine ideal
1
1
1

(2.21)
( ) [ ]


t t
et
1
(2.22)
3. TurboFan-Seperate Exhaust Streams with ITB Cycle
Analysis
Figure 3.1 TurboFan with Interstage Turbine Burner (ITB)
Assumptions:
1. Perfect gas upstream of main burner with constant properties
c
, R
c
, C
pc.
2. Perfect gas between station four and five with constant properties
b
, R
b
, C
pb.
3. Perfect gas downstream of inter-stage burner with constant properties
t
, R
t
,
C
pt.
4. All components are adiabatic, no heat loss.
5. The efficiencies of the compressor-HPC, compressor-LPC, fan, turbine-HPT,
and turbine-LPT are described through the use of polytropic efficiencies e
HPC
,
e
LPC,
e
f
, e
HPT,
and e
LPT
, respectively.
Fan Stream
Step 1.
Uninstalled thrust of the fan stream F
f
is given by
( ) ( )
P P A V V
g
m
F
c
f
f 0 19 19 0 19
+

(3.1)
rearranging gives:

,
_

c c
f
f P
P
a
V
T
T
M
a
V
g
a
m
F
19
0
0
19
0
19
0
0
19 0
1
.
(3.2)
Step 2.
M
T
T
a
M a
a
V
2
2
2 2
19
0
19
0
19 19
2
0
19

,
_

(3.3)
Step 3.
( )
1
1
]
1


,
_

1
1
2
1
19
19
19
2

c c
P
P
M
t
c
(3.4a)
where
fn f d r
t
P
P
P
P
19
0
19
19

(3.4b)
Step 4.
( )
c c
P
P
T T
T
T
T
T
T
T
t
t
t
t
1
19
19
0 19
19
19
0
19
0
19

,
_


(3.5a)
where
f r
t
T
T

0
19
(3.5b)
Engine Core Stream
Step 1.
Uninstalled thrust
( )
P P A V
m
V
m
g
F
c
c
c 0 10 10 0 10
10
1
+
,
_

(3.6)
rearranging gives:

,
_

,
_

P
P
m
P A
M
a
V
m
m
g
a
m
F
c c
c
c
c
10
0 10 10
0
0
10 10 0
1 (3.7)
Step 2.
f
m
m
c
+

1
10
(3.8a)
where
m m m m ITB b c

+ +
10
(3.8b)
f f f
ITB b
+
(3.8c)
m
m
f
c
b
b

(3.8d)
m
m
f
c
ITB
ITB

(3.8e)
Step 3.

,
_

P
P
m
P A
c
10
0 10 10
1
.
multiplied by
T R
a a
V A
m
c
c
0
0 0
10 10
10
10

(3.9)
rearranging gives:
( )
1
1
1
]
1

+
,
_

c c c
t
c
P
P
g
a
a
V
T
T
R
R
f
P
P
m
P A
10
0
0
0
10
0
10
10
0 10 10
1
1 1 (3.10)
Step 4.
Uninstalled thrust for the engine core becomes:
( ) ( )
1
1
1
]
1

,
_

+ + +

c
c
t
c
c
c
P
P
a
V
T
T
R
R
f
M
a
V
f
g
a
m
F
1
1 1 1
10
0
0
10
0
10
0
0
10 0
(3.11)
Step 5.
T R
T R
M
a
V
c
c
t
t
0
10
10
2
2
0
10

1
]
1

(3.12)
From the total pressure and mach number relation
( )
1
1
]
1


,
_

1
1
2
1
10
10
10
2

t t
P
P
M
t
t
(3.13)
( )

,
_

P
P
T T
T
T
T
T
T
T
t
t t
t
t
t
10
10
1
0 10
10
10
0
10
0
10

(3.14a)
where
n LPT ITB HPT b HPC LPC d r
t
P
P
P
P
10
0
10
10

(3.14b)
n LPT ITB HPT b HPC LPC d r
t
T
T

0
10
(3.14c)
1
d
(isentropic) (3.14d)
1
n
(isentropic) (3.14e)
LPC HPC r
t
b
T
T

0
4

(3.14f)
Step 6.
Applying the First Law of Thermodynamics and ideal gas relation to the main
burner, neglecting kinetic and potential energy changes:
T C
m
h
m
T C
m
t pb b PR
b
b
t pc
c
4
4
3

+

(3.15)
Multiplying the above equation with
T T C
m
T
t pc
c
t
2 0
0

, and re-arranging gives:


( )

b
b
pc
b
b PR
b
r c
f
T C
f
h

+ + 1
0
(3.16)
Solving for f
b
T C
h
f
pc
b PR
b
b
b r c
b
0

(3.17a)
where
T
T
C
C t
pc
pb
b
0
4

;
T T t t 2 0
for the case adiabatic (3.17b)
LPC HPC c
(3.17c)
Step 7.
Applying the First Law of Thermodynamics and the ideal gas relation to the ITB,
neglecting kinetic and potential energy changes:
T C
m
h
m
T C
m
t pt ITB PR
ITB
ITB
t pb 6
6
5
4

+

(3.18)
Multiplying the above equation with
T T C
m
T
t pb
t
7 0
4
10

, and re-arranging gives:


,
_

+
+

,
_

+
+

f C
C
f
f
T C
h
b
pb
pc
ITB
b
ITB
pb
ITB PR
ITB
b c d r
f
1
1
1
0


(3.19)
Solving for f
ITB
[ ] f
T C
h
C
C
C
C
f
b
pb
ITB PR
ITB
ITB
pb
pc
ITB
pb
pc
b c d r
ITB
+

,
_

,
_

1
0

(3.20a)
where
T
T
C
C t
pc
pt
ITB
0
6

;
T T t t 7 10
for the case adiabatic (3.20b)
LPC HPC c

(3.20c)
LPC HPC r
t
b
T
T

0
4

(3.20d)
1
d

(3.20e)
Step 8.
Applying the first law to each individual compressor and turbine, neglecting
kinetic and potential energy changes:
Power balance for LPC: ( )
T T C
m W
t t pc
c LPC
2 5 . 2
. .
(3.21)
Power balance for HPC: ( )
T T C
m W
t t pc
c HPC
5 . 2 3
. .
(3.22)
Power balance for HPT: ( )
T T C
m W
t t
HPT m
pb
HPT
5 4
4
. .


(3.23)
Power balance for LPT: ( )
T T C
m W
t t
LPT m
pt
LPT
7 6
6
. .


(3.24)
Power balance for Fan:
( )
T T C
m W
t t pc
F f
2 13
. .

(3.25)
It is chosen that the HPT and HPC are connected by a single shaft; therefore for an ideal
turbofan the work relation is given by:
HPT HPC W W

(3.26)
Multiplying both sides by
T C
m
t pc
c
5 . 2
.
1
gives:
( ) ( ) ( )
HPT HPT m
b HPC
b
pc
pb
HPC
f
C
C


+

1 1 1
(3.27)
Solving for
HPT
:
( )

HPT m
b HPC
pc
pb
b
HPC
HPT
C
C
f

+

+
1
1
1
(3.28a)
where
c r
t
b
T
T

0
4

(3.28b)
LPT, LPC, and the fan are connected by a single shaft; therefore for an ideal turbofan, the
work relation is given by:
W W W LPT f LPC
. . .
+
(3.29)
multiplying both sides by
T C
m
t pc
c
2
.
1
gives:
( ) ( ) ( ) ( )

LPT
LPT m
t
t
pc
pt
f LPC
T
T
f
C
C
+ +

1 1 1 1
2
6
(3.30)
Solving for
LPT
:
( )
( )

LPT m
t
t
pc
pt
f LPC
LPT
T
T
C
C
f

+
+
+
2
6
1
1 1
1
(3.31a)
where
ITB HPT b HPC LPC
t
t
T
T

2
6
(3.31b)
HPT b c r
t
ITB
T
T

0
6

(3.31c)
Step 9.
The total uninstalled thrust per unit mass flow rate intake is given by:
( )

+
+

1
. .
.
0
m
F
m
F
m
F
F
F
c
c
(3.32)
Step 10,
The thrust specific fuel consumption S is give by:
( )
( )
m
F
f f
S
ITB b
.
0
1 +
+

(3.33)
4. Summary of Equations:
INPUTS: M
0
, T
0
,
c
, C
pc
,
b
, C
pb
,
t
, C
pt
, h
PR-b
, h
PR-ITB
,
d max
,
b
,
ITB
,
n
,
fn
, e
HPC
,
e
LPC
, e
f
, e
HPT
, e
LPT
,
b
,
ITB
,
m-HPT
,
m-LPT
, P
0
/P
10
, P
0
/P
19
, T
t4
, T
t6
,
HPC
,

LPC
,
f
,
OUTPUTS:
f S
m
F
, ,
.
0
EQUATIONS:
C R pc
c
c
c

(4.1)
C R pb
b
b
b

(4.2)
C R pt
t
t
t

(4.3)
T R a c
c
0 0

(4.4)
M a V 0 0 0
(4.5)
M
c
r 0
2
2
1
1

+

(4.6)
( )


r
c c
r
1
(4.7)
( )

'

>
+
<

5
935
800
5 1 1 075 . 0 1
1 1
0 4
0
0
35 . 1
0
0
M for
M
M for
M
M
for
r
(4.8)


r
d d max
(4.9)
T
T
C
C t
pc
pb
b
0
4

(4.10)
T
T
C
C
t
pc
pt
ITB
0
6

(4.11)
( ) ( )


HPC
eHPC
c c
HPC
1
(4.12)
( ) ( )


LPC
eLPC
c c
LPC
1
(4.13)
( ) ( )


f
ef c c
f
1

(4.14)
LPC HPC c
(4.15)
c r
t
b
T
T

0
4

(4.16)
1
1

HPC
HPC
HPC
eHPC
(4.17)
1
1

LPC
LPC
LPC
eLPC
(4.18)
1
1

f
f
f e
f
(4.19)
T C
h
f
pc
b PR
b
B
b r c
b
0

(4.20)
( )

HPT m
b HPC
pc
pb
b
HPC
HPT
C
C
f

+

+
1
1
1
(4.21)
[ ] f
T C
h
C
C
C
C
f
b
pb
ITB PR
ITB
ITB
pb
pc
ITB
pb
pc
HPT b c r
ITB
+

,
_

,
_

1
0

(4.22)
f f f
ITB b
+ (4.23)
HPT b c r
t
ITB
T
T

0
6

(4.24)
ITB HPT b HPC LPC
t
t
T
T

2
6
(4.25)
( )
( )

LPT m
t
t
pc
pt
f LPC
LPT
T
T
C
C
f

+
+
+
2
6
1
1 1
1
(4.26)
( ) [ ]


HPT
eHPT t t
HPT
1
(4.27)
( ) [ ]


LPT
eLPT t t
LPT
1
(4.28)

HPT
eHPT
HPT
HPT 1
1
1

(4.29)

LPT
eLPT
LPT
LPT 1
1
1

(4.30)
n LPT ITB HPT b HPC LPC d r
t
P
P
P
P
10
0
10
10

(4.31)
LPT ITB HPT b c r
t
T
T

0
10
(4.32)
( )

,
_

P
P
T T
T
T
T
T
T
T
t
t t
t
t
t
10
10
1
0 10
10
10
0
10
0
10

(4.33)
( )
1
1
]
1


,
_

1
1
2
1
10
10
10

t t
P
P
M
t
t
(4.34)
T R
T R
M
a
V
c
c
t
t
0
10
10
0
10

(4.35)
fn f d r
t
P
P
P
P
19
0
19
19

(4.36)
( )
1
1
]
1


,
_

1
1
2
1
19
19
19

c c
P
P
M
t
c
(4.37)
f r
t
T
T

0
19
(4.38)
( )
c c
P
P
T T
T
T
T
T
T
T
t
t
t
t
1
19
19
0 19
19
19
0
19
0
19

,
_


(4.39)
M
T
T
a
M a
a
V
19
0
19
0
19 19
0
19
(4.40)
( ) ( )
1
1
1
]
1

,
_

+ + +

c c
t
c
c
P
P
a
V
T
T
R
R
f M
a
V
f
g
a
m
F
c

1
1 1 1
10
0
0
10
0
10
0
0
10 0
(4.41)

,
_

c c
f
f P
P
a
V
T
T
M
a
V
g
a
m
F
19
0
0
19
0
19
0
0
19 0
1
(4.42)
) 1 (

+
+

f
f
c
c
m
F
m
F
m
F
(4.43)
( )
( )

+
+

0
1
m
F
S
f f
ITB b

(4.44)
5. Users Manual
The excel program is written in combination between spreadsheet neuron cells, Visual
Basic, and macro code. These three combinations provide user-friendly software such
that compilation and preprocessing are no longer necessary. The user obtains result plots
right a way just by clicking some simple buttons.
The program is mainly comprised of six sheets namely CoverPage, Instruction, Input,
plot sheet, data sheet, and Otape&Test.
CoverPage sheet
The CoverPage sheet contains the authors of this program. Any questions regarding the
program can be addressed to us through email or phone.
Instruction sheet
First time users are strongly recommended to read this sheet before running the program.
Since there are always possibilities of getting error computations such as division by
zero, square root of a negative quantity, or over floating under floating number, the
program is written such that it will not crash if those errors are encountered during the
computation. It will instead tell the user where the computation encounters those errors.
In this sheet, you will find details of how to run the program and how to fix a problem if
something goes wrong.
This sheet also explains several assumptions made in the equations so that the users are
aware of some cases in the equations that have been idealized to simplify the problems.
Figure 5.1 Excel Input Sheet Screenshot
Input sheet
This sheet is where most of the inputs are specified. The program will check input value
in this sheet to make sure that all of the inputs are specified. It will tell the user if there
are inputs that are not specified. There are three Combo Box in the Input sheet (Combo
Box is a list box that displays a list of values and lets the users select one of the values in
the list) namely ITB, Units, and Choose a Plot as shown in Figure 5.1. You need first to
specify the value in combo box ITB and combo box Units before moving on to combo
box Choose a Plot. Combo Box Units lets you specify the input and output unit system.
Currently, the program can handle only two units systems, which are English or SI.
Combo Box ITB lets you turn ON or OFF the Interstage Burner (ITB) feature. This
feature provides a flexibility to choose two types of engine and they are engine with ITB
- ON and engine with ITB - OFF. With this feature, you will be able to see how much
additional engine performance you can get with ITB-ON or with ITB-OFF. Note that the
equations used for ITB-OFF are not the same as the equations from the reference book,
Elements of Gas Turbine Propulsion. This is because the cycle analysis in this program is
based on two shafts engine, and the one in the reference book is based on one shaft
engine.
When ITB-OFF is chosen, the program will execute as if there is no ITB added to the
Turbofan engine. Accordingly, the following variables will be changed internally and
automatically:
1. C
pt
= C
pc
2.
t
=
c
3. f
itb
= 0
4.
itb
= 1.0
5.
itb
= 1.0
Once all the inputs values are specified and combo box values on both ITB and Units are
specified, you can specify a value in combo box Choose a Plot. This combo box provides
several option lists to choose from, and they are:
1. Specific Thrust and TSFC Vs Compressor Pressure Ratio
2. Specific Thrust Vs Flight Condition Mach Number
3. TSFC Vs Flight Condition Mach Number
4. Specific Thrust Vs Fan Pressure Ratio
5. TSFC Vs Fan Pressure Ratio
6. Specific Thrust Vs ByPass Ratio
7. TSFC Vs ByPass Ratio
Once you select one of them, you will be directed to a new sheet. Basically once the
value of the combo box changed, it will execute a certain macro code. The macro code
associated with this combo box will open hidden plot sheets and hidden data sheets
depending on the selection you made.
The following discussion describes the instruction of how to run the program for each
different option.
Specific Thrust and TSFC Vs Compressor Pressure Ratio
When this option is chosen, the program opens four sheets namely ST_VS_PIc,
SF_VS_PIc, DataSTPIc, and DataSFPIc. You will be directed from Input sheet to
ST_VS_PIc sheet. ST_VS_PIc plots specific thrust and fuel-air mass fraction versus
compressor pressure ratio, and SF_VS_PIc plots thrust fuel specific consumption versus
compressor pressure ratio.
ST_VS_PIc
You expect to see result profiles similar to Figure 7-13a
1
and Figure 7-13b
1
. You need to
complete all the inputs parameters indicated in green cells of the Input sheet and
ST_VS_PIc sheet. Click the combo box to select number of plots for different s,
bypass ratio. New input parameters for different bypass ratio will be created indicated in
green cells. Once all the green cells are filled, you will need to specify the relation
between high total pressure compressor and low total pressure compressor ratios. To do
this you need to click on the Enter Relation. Once the relation between the two
compressors has been established, you need to click Generate to generate a table for
compressor pressure ratio. At this point you are ready to run the program and generate the
plots, simply by clicking Calculate button. Data computed will be stored in the
DataSTPIc sheet.
SF_VS_PIc
You expect to see results profiles similar to Figure 7-13c
1
. Most of the inputs are taken
from the Input sheet and ST_VS_PIc sheet except for the bypass ratio. You need to
specify number of bypass ratio you want to plot, then you can click Calculate to perform
computation and to plot the results. Data computed will be stored in the DataSFPIc sheet.
Specific Thrust Vs Flight Condition Mach Number or TSFC Vs Flight Condition Mach
Number
When you choose this option, the program closes the plot sheets and data sheets from the
previous use and opens one plot sheet and one data sheet, ST_VS_Mo and DataSTMo or
SF_VS_Mo and DataSFMo. You will then be directed from Input sheet to ST_VS_Mo or
SF_VS_Mo. This sheet is used to plot specific thrust or thrust specific fuel consumption
versus flight condition Mach number with different bypass ratio.
ST_VS_Mo or SF_VS_Mo
You expect to see result profiles similar to Figure 7-14a
1
or Figure 7-14b
1
. You need to
complete all the input parameters indicate in the green cells of this sheet. Then you can
click Calculate to run the program and plot the results. Data computed associated with
this sheet will be stored in the DataSTMo sheet.
Specific Thrust Vs Fan Pressure Ratio or TSFC Vs Fan Pressure Ratio
Similar to Flight Condition Mach Number, this option opens ST_VS_PIf and DataSTPIf
or SF_VS_PIf and DataSTPIf. It plots specific thrust or thrust specific fuel consumption
vs fan pressure ratio with different bypass ratio. The steps to run the program in this
sheet are the same from option two or three of the Choose a Plot combo box.
Specific Thrust Vs ByPass Ratio or TSFC Vs ByPass Ratio
This option opens ST_VS_Alp and DataSTAlp or SF_VS_Alp and DataSFAlp. It plots
specific thrust or thrust specific fuel consumption vs bypass ratio with different fan total
pressure ratio,
f
. The steps to run the program in this sheet are the same from option two
or three of the Choose a Plot combo box.
In summary you need to do the followings to run the program:
1. Go to the Input sheet
2. Specify the Unit system (SI or English)
3. Specify the ITB switch. Is the computation for engine with ITB-ON or for
engine with ITB-OFF?
4. Enter all the input parameters indicated in green cells (do not modify or
change the value indicated in cyan).
5. Specify Choose a Plot. You will be directed to a new sheet depending on the
selection.
If you select to engine performance (Specific Thrust and TSFC) Vs Compressor Pressure
Ratio, do the followings:
ST_VS_PIc:
a. Specify number of bypass ratio (new green cells will be created).
b. Click Enter Relation (Enter relation).
c. Specify all input parameters indicated in green.
d. Click Generate to generate compressor total pressure ratio.
e. Click Calculate to compute and plot the results.
f. Repeat the above steps for different input parameters. If you want to
change the input parameters in the Input sheet, you need to go to the
Input sheet.
SF_VS_PIc:
a. Specify number of bypass ratio (new green cells will be created).
b. Specify all input parameters indicated in green.
c. Click Calculate.
d. Repeat the above steps for different bypass ratio. If you want to
change the input parameters in the Input sheet or in the ST_VS_PIc
sheet, you need to go back to one of those sheets and change the input
parameters.
ST_VS_Mo, SF_VS_Mo, ST_VS_PIf, and SF_VS_PIf:
a. Specify number of bypass ratio (new green cells will be created).
b. Specify all input parameters indicated in green.
c. Click Calculate.
d. Repeat the above steps for different input parameters. If you want to
change the input parameters in the Input sheet, you need to go to the
Input sheet.
ST_VS_Alp and SF_VS_Alp:
a. Specify number of fan total pressure ratio (new green cells will be
created).
b. Specify all input parameters indicated in green.
c. Click Calculate.
d. Repeat the above steps for different input parameters. If you want to
change the input parameters in the Input sheet, you need to go to the
Input sheet.
Discussions
The last sheet in the program is the Otape&Test; this is where the user can check a single
quantity namely Specific Thrust or Thrust Specific Fuel Consumption. Most of the input
parameters are from the Input sheet; additional inputs are inputs parameters that you see
in the plot sheets. By clicking the Test, you will obtain Specific Thrust and Thrust
Specific Fuel Consumption stored in cyan cells.
This program has been debugged several times. Therefore whenever you encounter
computation errors due to either zero division or square root of a negative quantity, you
will be notified by a pop up window indicating where the computation problem is. It will
indicate which equation that the computational error is encountered. If you have any
comments or bug problems you encounter in the program, you can report them to us for
further improvement. Detail about the contact number can be found in the CoverPage
sheet of the program.
It is also predicted that the plotting macro can encounter some problems in the future if
the users are not fully understand the program. Therefore I have set up a way how to fix
the problem. In case the plot starts giving problem, you need to do the followings (apply
to all plot sheets: ST_VS_PIc, SF_VS_PIc, ST_VS_PIf, SF_VS_PIf, ST_VS_Mo,
SF_VS_Mo, ST_VS_Alp, and SF_VS_Alpp):
a. Go to the plot sheet (e. ST_VS_Mo)
b. Go to cell D5
c. Note that you will not be able to click on that cell because it is lying on the
back of the plot chart. You may want to use cursor button from your
keyboard.
d. In that cell it reads SUCCESS. Change the value to any other type of
character, FAIL for example.
e. Clear the series in the chart plot by clicking right mouse button on the chart
plot.
f. Choose Source Data
g. Select Series and remove all the series. For the case ST_VS_PIc, you need to
clear the series on both charts.
Users are not expected to understand macro code in the program. However the part that
takes care the computation can be found in Module1 Sub Itb( ). In order to open it, you
need to open Excel Visual Basic by pressing Alt + F11. Any modification can be made in
subroutine Itb ( ). Do not add new variables into the program!
6. Data Validation
Since there is no experimental data for this application, a Fortran 77 code is written for
the comparison between results computed by Excel and Fortran 77. All the equations
used are the same in both codes and can be found in section 4 of Summary of equations.
Under the same turbofan engine operating conditions with ITB-ON, specific thrust (i.e.

m
F
, SI unit:
s kg
N
/
) is computed using both codes and plotted versus various design
parameters, namely flight Mach number (M
0
), compressor pressure ratio (
c
), fan
pressure ratio (
f
), and bypass ratio (). All the plots are in Tecplot 9.0 format as shown
below.
Figure 6.1 Turbofan engine with ITB: Specific thrust vs flight Mach number
Figure 6.2 Turbofan engine with ITB: Specific thrust vs compressor pressure
ratio
Figure 6.3 Turbofan engine with ITB: Specific thrust vs fan pressure ratio
Figure 6.4 Turbofan engine with ITB: Specific thrust vs bypass ratio
7. RESULTS AND DISCUSSIONS
Using data provided in eng_itb.dat (a sample listing data file for a two-spool high bypass
turbofan provided by Scott Jones, currently at Propulsion Systems Analysis Office,
NASA Glenn Research Center), results at different operating conditions are plotted using
Tecplot 9.0 and shown as below.
Table 7.2 - The input data for Option 1:
Table 7.1 Input data for Engine parameters (SI unit)
Pressure drop ratio
engine-core
P0/P10 = 0.9 T0 = 216.6667K
engine - fan
P0/P19 = 0.9
Total pressure ratio
Maximum diffuser total pressure ratio d max = 0.99 Properties of air and fuel
main burner total pressure ratio b = 0.96
Specific heat at constant pressure
ITB - burner total pressure ratio ITB = 0.96 region 0 --> 3 Cpc = 1.000645KJ/Kg-K
engine nozzle total pressure ratio n = 1.333 region 4 --> 5 Cpb = 1.159743KJ/Kg-K
fan nozzle total pressure ratio fn = 1.274 region 6 -->10 Cpt = 1.147183KJ/Kg-K
Polytropic efficiency Ratio of specific heat
eHPC = 0.9066 region 0 --> 3 c = 1.39999
eLPC = 0.9036 region 4 --> 5 b = 1.27284
eHPT = 0.9029 region 6 -->10 t = 1.27882
eLPT = 0.9174
Low heating value of fuel
ef = 0.8961 Burner hPR-b = 7917.12KJ/Kg
Burner efficiency
ITB hPR-ITB = 7917.12KJ/Kg
b = 0.999
ITB = 0.999
Turbine mechanical efficiency
m-HPT = 0.92
m-LPT = 0.93
Burner exit temperature
main-burner Tt4 = 1785.594K
ITB - burner Tt6 = 1563.844K
Figure 7.1 - Specific thrust vs flight M0
Figure 7.2 - TSFC vs flight M0
Mo = 0 To 3 1 = 0.5
Mo = 0.1 2 = 2
HPC = 25
LPC = 1.3
f = 1.3
Figure 7.1 Turbofan engine: Specific thrust vs flight Mach number
Figure 7.2 Turbofan engine: thrust specific fuel consumption vs flight Mach
number
Table 7.3 - The input data for Option 2:
Figure 7.3 - Specific thrust vs compressor pressure ratio
Figure 7.4 - TSFC vs compressor pressure ratio
Figure 7.5 - Fuel/air ratio vs compressor pressure ratio
Scalec = 19.23
LPC = 1.01 c = 19.62 to 50
HPC = 19.42 c = 1
f = 1.3 1 = 0.5
0.9 2 = 2
Figure 7.3 Turbofan engine: Specific thrust vs compressor pressure ratio
Figure 7.4 Turbofan engine: thrust specific fuel consumption
vs compressor pressure ratio
Figure 7.5 Turbofan engine: fuel/air ratio vs compressor pressure ratio:
Table 7.4 - The input data for Option 3:
Figure 7.6 - Specific thrust vs fan pressure ratio
Figure 7.7 - TSFC vs fan pressure ratio
f = 1.01 To 10
f = 0.25
1 = 3
HPC = 25 2 = 5
LPC = 1.3 3 = 10
0.9
Figure 7.6 Turbofan engine: Specific thrust vs fan pressure ratio
Figure 7.7 Turbofan engine: thrust specific fuel consumption
vs fan pressure ratio
Table 7.5 - The input data for Option 4:
Figure 7.8 - Specific thrust vs bypass ratio
Figure 7.9 - TSFC vs bypass ratio
= 0 To 10
= 0.1
HPC = 25 f1 = 1.5
LPC = 1.3 f2 = 3.5
0.9
Figure 7.8 Turbofan engine: Specific thrust vs bypass ratio
Figure 7.9 Turbofan engine: thrust specific fuel consumption
vs bypass ratio
Discussions
The computations are successful in providing an estimation of how the turbofan
performance is improved by adding an Inter-Stage Turbine Burner. As expected, the
specific thrust is increased at four different engine design parameters, namely Mach
number, compressor pressure ratio, fan pressure ratio and bypass ratio with the addition
of ITB. Nevertheless, the specific fuel consumption is relatively increased.
Typical ranges for each engine design parameter is based on Chapter 7 of Elements of
Gas Turbine Propulsion by Dr. Jack Mattingly
1
.
In addition, more plots will be added in the future if necessary. For convenience purpose,
a Visual-Basic code may be developed to act as an interface between fortran77 data file
and MS Excel plot function. Then, user can plot the result data computed using Fortran77
on MS Excel without knowing how to use Tecplot 9.0 or any other equivalent post-
processing software.
Appendix
A - MACRO VISUAL BASIC CODE in MS EXCEL
VB code variable VB code variable VB code variable
a0 a0 gamab b
T10_T0 T10/T0
alpha gamac c
T19_T0 T19/T0
Cpb Cpb gamat t
tau_alp_itb
-b
Cpc Cpc hPRb hPR-b tau_alp_itb
-ITB
Cpt Cpt hPRitb hPR-ITB tau_b b
ef ef M10 M10 tau_c c
eff_hpc HPC
M19 M19 tau_f f
eff_hpt HPT
pi_d d
tau_hpc HPC
eff_lpc LPC
pi_f f
tau_hpt HPT
eff_lpt LPT
pi_hpc HPC
tau_itb ITB
eff_r r
pi_hpt HPT
tau_lpc LPC
effm_hpt m-HPT
pi_lpc LPC
tau_lpt LPT
effm_lpt m-LPT
pi_lpt LPT
tau_r r
ehpc eHPC pi_r r
Tt10_T0 Tt10/T0
elpc eLPC Pt10_P10 Pt10/P10 Tt19_T0 Tt19/T0
fb fb Pt19_P19 Pt19/P19 Tt6_Tt2 Tt6/Tt2
fc_mc rb Rb v0 v0
ff_mf rc Rc v10_a0 v10/a0
fitb fITB rt Rt v19_a0 v19/a0
f_mo s S
Table A.1 Description of variables in MS Excel Macro Visual Basic code
c
c
m
F

f
f
m
F

m
F
Sub itb()
Dim rc, rb, rt, a0, v0, tau_r, pi_r, eff_r, pi_d, tau_alp_b, tau_alp_itb, tau_hpc, tau_lpc,
tau_f
Dim tau_c, tau_b, eff_hpc, eff_lpc, eff_f, fb, tau_hpt, fitb, tau_itb, Tt6_Tt2, tau_lpt
Dim pi_hpt, pi_lpt, eff_hpt, eff_lpt, Pt10_P10, Tt10_T0, M10, v10_a0, Pt19_P19, M19,
Tt19_T0
Dim T19_T0, v19_a0, fc_mc, ff_mf, T10_T0

'zero-ing internal variables
rc = 0#: rb = 0#: rt = 0#: a0 = 0#: v0 = 0#: tau_r = 0#: pi_r = 0#: eff_r = 0#: pi_d = 0#
tau_alp_b = 0#: tau_alp_itb = 0#: tau_hpc = 0#: tau_lpc = 0#: tau_f = 0#
tau_c = 0#: tau_b = 0#: eff_hpc = 0#: eff_lpc = 0#: eff_f = 0#: fb = 0#
tau_hpt = 0#: fitb = 0#: tau_itb = 0#: Tt6_Tt2 = 0#: tau_lpt = 0#
pi_hpt = 0#: pi_lpt = 0#: eff_hpt = 0#: eff_lpt = 0#: Pt10_P10 = 0#: Tt10_T0 = 0#
M10 = 0#: v10_a0 = 0#: Pt19_P19 = 0#: M19 = 0#: Tt19_T0 = 0#
T19_T0 = 0#: v19_a0 = 0#: fc_mc = 0#: ff_mf = 0#

'empty-ing output variables
F_mo = Empty: s = Empty: f = Empty

Style = vbYes
Title = "ITB Cycle Analysis"

Style1 = vbYesNo
Msg = "Do you want to jump to the next alpha?"

Msg1 = "Division by zero ==> Refer to equations 1, 2, 3"
Msg2 = "Square root of a negative quantity ==> Refer to equation 4"
Msg3 = "Division by zero ==> Refer to equation 7"
Msg4 = "Division by zero ==> Refer to equations 10, 11, 12, 13, 14"
Msg5 = "Division by zero ==> Refer to equation 16"
Msg6 = "Division by zero ==> Refer to equations 17, 18, 19"
Msg7 = "Division by zero ==> Refer to equation 20"
Msg8 = "Square root of a negative quantity ==> Refer to equation 34"
Msg9 = "Square root of a negative quantity ==> Refer to equation 37"


If gamac = 0# Or gamab = 0# Or gamat = 0# Then
response = MsgBox(Msg1, Sytle, Title)
Msg1 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg1, Style, Title)
jump = MsgBox(Msg1, Style1, Title)
GoTo 10
End If
rc = (gamac - 1#) * Cpc / gamac '(1)
rb = (gamab - 1#) * Cpb / gamab '(2)
rt = (gamat - 1#) * Cpt / gamat '(3)

If gamac < 0# Or rc < 0# Or T_o < 0# Or gc < 0# Then
response = MsgBox(Msg2, Style, Title)
Msg2 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg2, Sytle, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
a0 = (gamac * rc * T_o * gc) ^ 0.5 '(4)
v0 = a0 * M0 '(5)

If gamac = 1# Then
response = MsgBox(Msg3, Sytle, Title)
Msg3 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg3, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
tau_r = (gamac - 1#) * (0.5 * M0 ^ 2) + 1# '(6)
pi_r = tau_r ^ (gamac / (gamac - 1)) '(7)

If M0 <= 1# Then '(8)
eff_r = 1#
Else
eff_r = 1# - 0.075 * (M0 - 1#) ^ 1.35
End If

pi_d = pi_dmax * eff_r '(9)

If Cpc = 0# Or T_o = 0# Or gamac = 0# Or ehpc = 0# Or elpc = 0# Or ef = 0# Then
response = MsgBox(Msg4, Sytle, Title)
Msg4 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg4, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
tau_alp_b = Cpb * Tt4 / (Cpc * T_o) '(10)
tau_alp_itb = Cpt * Tt6 / (Cpc * T_o) '(11)
tau_hpc = pi_hpc ^ ((gamac - 1#) / (gamac * ehpc)) '(12)
tau_lpc = pi_lpc ^ ((gamac - 1#) / (gamac * elpc)) '(13)
tau_f = pi_f ^ ((gamac - 1#) / (gamac * ef)) '(14)

tau_c = tau_hpc * tau_lpc '(15)

If T_o = 0# Or tau_r = 0# Or tau_c = 0# Then
response = MsgBox(Msg5, Style, Title)
Msg5 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg5, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
tau_b = Tt4 / (T_o * tau_r * tau_c) '(16)

If tau_hpc = 1# Or tau_lpc = 1# Or tau_f = 1# Then
response = MsgBox(Msg6, Style, Title)
Msg6 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg6, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
eff_hpc = ((tau_hpc ^ ehpc) - 1#) / (tau_hpc - 1#) '(17)
eff_lpc = ((tau_lpc ^ elpc) - 1#) / (tau_lpc - 1#) '(18)
eff_f = ((tau_f ^ ef) - 1#) / (tau_f - 1#) '(19)

If tau_alp_b = eff_b * hPRb / (Cpc * T_o) Then
response = MsgBox(Msg7, Style, Title)
Msg7 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg7, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
fb = (tau_c * tau_r - tau_alp_b) / (tau_alp_b - (eff_b * hPRb / (Cpc * T_o)))
'(20)

tau_hpt = 1# + (1# - tau_hpc) / ((1# + fb) * (Cpb / Cpc) * tau_hpc * tau_b * effm_hpt)
'(21)

If Sheets("Input").ComboBox2.Value = "ON" Then '(22)
fitb = (1# + fb) * (tau_r * tau_c * tau_b * tau_hpt - (Cpc / Cpb) * tau_alp_itb) / ((Cpc /
Cpb) * tau_alp_itb - eff_itb * hPRitb / (Cpb * T_o))
Else
fitb = 0#
End If

f = fb + fitb '(23)

If Sheets("Input").ComboBox2.Value = "ON" Then
'(24)
tau_itb = Tt6 / (T_o * tau_r * tau_c * tau_b * tau_hpt)
Else
tau_itb = 1#
End If

Tt6_Tt2 = tau_c * tau_b * tau_hpt * tau_itb '(25)

tau_lpt = 1# + (1# - tau_lpc + alpha * (1# - tau_f)) / ((1# + f) * (Cpt / Cpc) * Tt6_Tt2 *
effm_lpt) '(26)

pi_hpt = tau_hpt ^ (gamat / ((gamat - 1#) * ehpt)) '(27)
pi_lpt = tau_lpt ^ (gamat / ((gamat - 1#) * elpt)) '(28)

eff_hpt = (1# - tau_hpt) / (1# - tau_hpt ^ (1# / ehpt)) '(29)
eff_lpt = (1# - tau_lpt) / (1# - tau_lpt ^ (1# / elpt)) '(30)

Pt10_P10 = P0_P10 * pi_r * pi_d * pi_lpc * pi_hpc * pi_b * pi_hpt * pi_itb * pi_lpt *
pi_n '(31)
Tt10_T0 = tau_r * tau_c * tau_b * tau_hpt * tau_itb * tau_lpt
'(32)

T10_T0 = Tt10_T0 / Pt10_P10 ^ ((gamat - 1#) / gamat)
'(33)

If gamat < 1# Or Pt10_P10 ^ ((gamat - 1#) / gamat) < 1# Then
response = MsgBox(Msg8, Style, Title)
Msg8 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg8, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
M10 = (((Pt10_P10 ^ ((gamat - 1#) / gamat)) - 1#) * 2# / (gamat - 1#)) ^ 0.5
'(34)

v10_a0 = M10 * (gamat * rt * T10_T0 / (gamac * rc)) ^ 0.5
'(35)

Pt19_P19 = P0_P19 * pi_r * pi_d * pi_f * pi_fn '(36)

If gamac < 1# Or Pt19_P19 ^ ((gamac - 1#) / gamac) < 1# Then
response = MsgBox(Msg9, Style, Title)
Msg9 = "Occurs at " & "PIc,PIf,Mo,ByPass = " & pi_hpc * pi_lpc & "," & pi_f & ","
& M0 & "," & alpha
response = MsgBox(Msg9, Style, Title)
jump = MsgBox(Msg, Style1, Title)
GoTo 10
End If
M19 = (((Pt19_P19 ^ ((gamac - 1#) / gamac)) - 1#) * 2# / (gamac - 1#)) ^ 0.5
'(37)

Tt19_T0 = tau_r * tau_f '(38)

T19_T0 = Tt19_T0 / Pt19_P19 ^ ((gamac - 1#) / gamac)
'(39)

v19_a0 = M19 * T19_T0 ^ 0.5 '(40)

fc_mc = (a0 / gc) * ((1# + f) * v10_a0 - M0 + (1# + f) * (rt / rc) * (T10_T0 / v10_a0) *
(1# - P0_P10) * (1# / gamac)) '(41)

ff_mf = (a0 / gc) * (v19_a0 - M0 + (T19_T0 / v19_a0) * (1# - P0_P19) / gamac)
'(42)

F_mo = (fc_mc + alpha * ff_mf) / (1# + alpha)
'(43)

s = f / ((1# + alpha) * F_mo)
'(44)
10
End Sub
B - FORTRAN 77 code
Three separate files are needed to execute this code, namely itb.f, comitb.i, and
input. All the equations used in this code are summarized in the section 4 - Summary of
equations.
(A) Main program: itb.f
itb.f is the main program for this application. It comprises of a main driver and
nine subroutines. Each subroutine has its own specific function and is described in detail
below.
1) Subroutine START
START is the first subroutine called by main driver itb. It ensures that the input
file exists, and then the program will carry on. Or else, the program will terminate.
2) Subroutine RINPUT
Once the file input is provided at the same directory as itb.f is located, RINPUT will
then be called and read in the data file.
3) Subroutine CONSTANT
All the constants will be initialized in this subroutine. This subroutine is called only
once before performing necessary computation.
4) Subroutine SELECT
SELECT allows user to specify which plot they desire to get. Up to this point, there
are only four options to choose, which include:
Option 1:
(a). Specific Thrust vs Mach Number (ST_M0.dat)
(b). TSFC vs Mach Number (TSFC_M0.dat)
Option 2:
(a). Specific Thrust vs Compressor Pressure Ratio (ST_PIc.dat)
(b). TSFC vs Compressor Pressure Ratio (TSFC_PIc.dat)
(c). Fuel-air Ratio vs Compressor Pressure Ratio (f_PIc.dat)
Option 3:
(a). Specific Thrust vs Fan Pressure Ratio (ST_PIf.dat)
(b). TSFC vs Fan Pressure Ratio (TSFC_PIf.dat)
Option 4:
(a). Specific Thrust vs Bypass Ratio (ST_Alpha.dat)
(b). TSFC vs Bypass Ratio (TSFC_Alpha.dat)
The selected plots will be plotted and stored in the same directory where the program
is executed.
5) Subroutine MACH
MACH is called to plot engine performance parameters (for instance, specific thrust
or thrust specific fuel consumption) vs flight mach number.
6) Subroutine COMPR
COMPR is called to plot engine performance parameters vs compressor pressure
ratio.
7) Subroutine FANPR
FANPR is called to plot engine performance parameters vs fan pressure ratio.
8) Subroutine BYPASS
BYPASS is called to plot engine performance parameters vs bypass ratio.
9) Subroutine EQUATION
EQUATION is called to perform all necessary computations. It includes all
equations here.
(B) Variable initialization: comitb.i
All variables will be declared and initialized before running main program and all
subroutines. Variables are grouped into five common blocks, i.e. inputs, outputs,
equations, constants, and chardat.
(C) Data file: input
Since two types of unit system will be used for computation, namely SI and
English unit, user needs to specify the input parameter unitsys to be either 0. 0
(English unit) or 1.0 (SI unit).
Another important input parameter is itbsw. When itbsw is set to be 1. 0 ,
ITB will be turned on and vice versa (i.e. itbsw is set to be 0.0 ).
Table shown below is the brief descriptions of input variables in input file:
Input Variables Unit
program literature English SI
unitsys - - -
itbsw - - -
T0 T
0 R
K
gamac
c
- -
cpc c
pc
R lbm
Btu
K kg
kJ

gamab
b
- -
cpb c
pb
R lbm
Btu
K kg
kJ

gamat
t
- -
cpt c
pt
R lbm
Btu
K kg
kJ

hprb h
PR-b
lbm
Btu
kg
kJ
hpritb h
PR-itb
lbm
Btu
kg
kJ
pidmax
d max
- -
pib
b
- -
piitb
itb
- -
pin
n
- -
pifn
fn
- -
ehpc e
HPC
- -
elpc e
LPC
- -
ef e
f
- -
ehpt e
HPT
- -
elpt e
LPT
- -
effb
b
- -
effitb
itb
-
effmhpt
hpt
-
effmlpt
lpt
-
p0op10
10
0
P
P -
p0op19
19
0
P
P -
Tt4 T
t4 R
K
Tt6 T
t6 R
K
Table B.1 Description of input variables in input file in Fortran77 code (both SI
and English units)
Main program: itb.f
*deck itb
program itb
c
c +++
c
c===========================================================
c
c ITB is the main driver.
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
c +++
call start
c +++
call rinput
c +++
call constant
c
call select
c +++
if (plot.eq.1) call mach
c
if (plot.eq.2) call compr
c
if (plot.eq.3) call fanpr
c
if (plot.eq.4) call bypass
c +++
end
c
*deck bypass
subroutine bypass
c
c===========================================================
c
c BYPASS determines the range for bypass ratio for
c plotting.
c
c BYPASS is called by: itb
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
write(3,*) 'Subroutine BYPASS'
c
open(unit=18,file='ST_Alpha.dat')
open(unit=19,file='TSFC_Alpha.dat')
c
WRITE(18,*) 'Title="','Specific Thrust VS Alpha"'
if (unitsys.eq.0.0) then
WRITE(18,*) 'Variables = "`a","Sp. thrust [lbf/(lbm/sec)]"'
else
WRITE(18,*) 'Variables = "`a","Specific thrust [N/(kg/s)]"'
endif
c
WRITE(19,*) 'Title="','TSFC VS Alpha"'
if (unitsys.eq.0.0) then
WRITE(19,*) 'Variables = "`a","TSFC [(lbm/hr)/lbf]"'
else
WRITE(19,*) 'Variables = "`a","TSFC [mg/(N-sec)]"'
endif
c
if (npif.gt.0) then
do 90 i=1,npif
pif=pi_f(i)
write(*,*) 'pif(',i,')=',pif
c
if (itbsw.eq.0.) then
write(18,314)'Zone T="`p_f = ',pif,'(no itb)"'
write(19,314)'Zone T="`p_f = ',pif,'(no itb)"'
else
write(18,314)'Zone T="`p_f = ',pif,'(itb)"'
write(19,314)'Zone T="`p_f = ',pif,'(itb)"'
endif
c
do 100 alpha = ialp,falp,dalp
c
alpp1 = alpha+1.0
ralpp1 = 1.0/alpp1
c
call equation
if (error.eq.1.0) then
write(*,*) 'error'
go to 90
endif
write(18,313) alpha,st
write(19,313) alpha,tsfc
100 continue
90 continue
endif
c
close(18)
close(19)
return
313 format(f10.5,2x,f13.8)
314 format(a15,f5.2,a9)
end
c
*deck compr
subroutine compr
c
c===========================================================
c
c COMPR determines the range for compressor pressure
c ratio for plotting.
c
c COMPR is called by: itb
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
write(3,*) 'Subroutine COMPR'
c
open(unit=15,file='ST_PIc.dat')
open(unit=16,file='TSFC_PIc.dat')
open(unit=17,file='f_PIc.dat')
c
WRITE(15,*) 'Title="','Specific Thrust VS Pi Comp"'
if (unitsys.eq.0.0) then
WRITE(15,*)'Variables ="`p_c","Sp.thrust [lbf/(lbm/sec)]"'
else
WRITE(15,*)'Variables ="`p_c","Sp.thrust [N/(kg/s)]"'
endif
c
WRITE(16,*) 'Title="','TSFC VS Pi Comp"'
if (unitsys.eq.0.0) then
WRITE(16,*)'Variables = "`p_c","TSFC [(lbm/hr)/lbf]"'
else
WRITE(16,*)'Variables = "`p_c","TSFC [mg/(N-sec)]"'
endif
c
WRITE(17,*) 'Title="','f VS Pi Comp"'
WRITE(17,*) 'Variables = "`p_c","f"'
c
ipic = scalec*pilpc*pilpc
k=1
do 60 pic = ipic,fpic,dpic
term = pic/scalec
tpilpc(k) = sqrt(term)
tpihpc(k) = pic/tpilpc(k)
k=k+1
60 continue
write(3,*) pilpc,pihpc,pic
write(3,*) ipic,fpic,dpic
c
if (nalpha.gt.0) then
do 70 i=1,nalpha
alpha=alp(i)
write(*,*) 'alpha(',i,')=',alpha
if (itbsw.eq.0.) then
write(15,12)'Zone T="`a =',alpha,'(no itb)"'
write(16,12)'Zone T="`a =',alpha,'(no itb)"'
write(17,12)'Zone T="`a =',alpha,'(no itb)"'
else
write(15,12)'Zone T="`a =',alpha,'(itb)"'
write(16,12)'Zone T="`a =',alpha,'(itb)"'
write(17,12)'Zone T="`a =',alpha,'(itb)"'
endif
c
alpp1 = alpha+1.0
ralpp1 = 1.0/alpp1
c write(3,*) 'alpp1=',alpp1
c write(3,*) 'ralpp1=',ralpp1
c
j=1
write(3,*) pilpc,pihpc,pic
write(3,*) ipic,fpic,dpic
do 80 pic = ipic,fpic,dpic
pilpc = tpilpc(j)
pihpc = tpihpc(j)
write(3,*) pilpc,pihpc,pic
c
call equation
if (error.eq.1.0) then
write(*,*) 'error'
go to 70
endif
write(15,11) pic,st
write(16,11) pic,tsfc
write(17,11) pic,f
c count=count+1
j=j+1
80 continue
70 continue
endif
c
close (15)
close (16)
close (17)
return
11 format(f10.5,2x,f13.9)
12 format(a13,f5.2,a9)
end
c
*deck constant
subroutine constant
c
c===========================================================
c
c EQUATION performs all necessary computations.
c
c EQUATION is called by: mach,compr,fanpr,bypass
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
write(3,*)
write(3,*) '*******Check constant begins!!******'
c
gc=32.174
if (unitsys.eq.1.0) gc = 1.0
c
ecvrn = 778.14
if (unitsys.eq.1.0) ecvrn = 1000.0
c
rgc = 1.0/gc
write(3,*) 'gc=',gc
write(3,*) 'rgc=',rgc
c
rgamac = 1.0/gamac
rgamat = 1.0/gamat
rgamab = 1.0/gamab
write(3,*) 'rgamac=',rgamac
write(3,*) 'rgamat=',rgamat
write(3,*) 'rgamab=',rgamab
c
gcm1ogc = (gamac-1.0)*rgamac
gtm1ogt = (gamat-1.0)*rgamat
gbm1ogb = (gamab-1.0)*rgamab
write(3,*) 'gcm1ogc=',gcm1ogc
write(3,*) 'gtm1ogt=',gtm1ogt
write(3,*) 'gbm1ogb=',gbm1ogb
c
rgcm1ogc = 1.0/gcm1ogc
rgtm1ogt = 1.0/gtm1ogt
rgtm1 = 1.0/(gamat-1.0)
rgcm1 = 1.0/(gamac-1.0)
write(3,*) 'rgcm1ogc=',rgcm1ogc
write(3,*) 'rgtm1ogt=',rgtm1ogt
write(3,*) 'rgcm1=',rgcm1
write(3,*) 'rgtm1=',rgtm1
c
Tt4oT0 = Tt4/T0
Tt6oT0 = Tt6/T0
write(3,*) 'Tt4oT0=',Tt4oT0
write(3,*) 'Tt6oT0=',Tt6oT0
c
cpbocpc = cpb/cpc
cptocpc = cpt/cpc
cpcocpb = 1.0/cpbocpc
write(3,*) 'cpbocpc=',cpbocpc
write(3,*) 'cptocpc=',cptocpc
write(3,*) 'cpcocpb=',cpcocpb
c
rehpc = 1.0/ehpc
relpc = 1.0/elpc
write(3,*) 'rehpc=',rehpc
write(3,*) 'relpc=',relpc
c
rehpt = 1.0/ehpt
relpt = 1.0/elpt
write(3,*) 'rehpt=',rehpt
write(3,*) 'relpt=',relpt
c
taud = 1.0
c
write(3,*) '******constant check ENDs!!******'
write(3,*)
c
return
end
c
*deck equation
subroutine equation
c
c===========================================================
c
c EQUATION performs all necessary computations.
c
c EQUATION is called by: itb
c
c===========================================================
c
include 'comitb.i'
INTEGER eqn
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
error=0.
eqn = 0
write(3,*) '-----------------------------'
write(3,*) 'Subroutine EQUATION'
write(3,*) '-----------------------------'
c
c --- equation 1,2,3
c
rc = gcm1ogc*cpc*ecvrn
rb = gbm1ogb*cpb*ecvrn
rt = gtm1ogt*cpt*ecvrn
write(3,*) 'Rc=',rc
write(3,*) 'Rt=',rt
write(3,*) 'Rb=',rb
c
rtorc = rt/rc
write(3,*) 'rtorc=',rtorc
c
c --- equation 4 & 5
c
term = gamac*rc*gc*T0
if (term.lt.0) then
eqn = 4
write(3,201) eqn
endif
c
a0 = sqrt(term)
v0 = a0*M0
write(3,*) 'a0=',a0
write(3,*) 'v0=',v0
c
c --- equation 6,7,8
c
taur = 1.0+(gamac-1.0)/2*M0*M0
pir = taur**rgcm1ogc
effr = 1.
if (M0.gt.5.0) then
effr = 800/(M0**4+935.0)
else if (M0.gt.1.0) then
effr = 1.0-0.075*(M0-1)**1.35
endif
c
write(3,*) 'taur=',taur
write(3,*) 'pir=',pir
write(3,*) 'effr=',effr
c
c --- equation 9,10,11
c
pid = pidmax*effr
taulb = cpbocpc*Tt4oT0
taulitb = cptocpc*Tt6oT0
write(3,*) 'pid=',pid
write(3,*) 'taulb=',taulb
write(3,*) 'taulitb=',taulitb
c
c
c --- equation 12 & 13
c
tauhpc = pihpc**(gcm1ogc*rehpc)
taulpc = pilpc**(gcm1ogc*relpc)
write(3,*) 'tauhpc=',tauhpc
write(3,*) 'taulpc=',taulpc
c
c --- equation 14,15,16
c
if (ef.lt.0) then
eqn = 14
write(3,201) eqn
endif
c
tauf = pif**(gcm1ogc/ef)
tauc = tauhpc*taulpc
c
term = taur*tauc*taud
if (term.lt.0) then
eqn = 16
write(3,201) eqn
endif
c
taub = Tt4oT0/(term)
c
write(3,*) 'tauf=',tauf
write(3,*) 'tauc=',tauc
write(3,*) 'taub=',taub
c
c --- equation 17,18,19
c
if (tauhpc.eq.1.0) then
eqn = 17
write(3,201) eqn
go to 299
endif
c
effhpc = (tauhpc**ehpc-1.0)/(tauhpc-1.0)
write(3,*) 'effhpc=',effhpc
c
if (taulpc.eq.1.0) then
eqn = 18
write(3,201) eqn
go to 299
endif
c
efflpc = (taulpc**elpc-1.0)/(taulpc-1.0)
write(3,*) 'efflpc=',efflpc
c
if (tauf.eq.1.0) then
eqn = 19
write(3,201) eqn
go to 299
endif
c
efff = (tauf**ef-1.0)/(tauf-1.0)
write(3,*) 'efff=',efff
c
c --- equation 20
c
num = tauc*taur-taulb
denom = taulb-(effb*hprb)/(cpc*T0)
write(3,*) 'num=',num
write(3,*) 'denom=',denom
c
if (denom.eq.0) then
eqn = 20
write(3,201) eqn
go to 299
endif
c
fb = num/denom
write(3,*) 'fb=',fb
c
c --- equation 21
c
denom = (1.0+fb)*cpbocpc*tauhpc*taub*effmhpt
write(3,*) 'denom=',denom
c
if (denom.eq.0) then
eqn = 21
write(3,201) eqn
go to 299
endif
c
tauhpt = 1.0+(1.0-tauhpc)/denom
write(3,*) 'tauhpt=',tauhpt
c
c --- equation 22 & 23
c
if (itbsw.eq.1.0) then
denom1 = cpcocpb*taulitb
denom2 = (effitb*hpritb)/(cpb*T0)
denom = denom1-denom2
num = taur*taud*tauc*taub*tauhpt-cpcocpb*taulitb
write(3,*) 'denom1=',denom1
write(3,*) 'denom2=',denom2
write(3,*) 'denom=',denom
write(3,*) 'num=',num
c
if (denom.eq.0) then
eqn = 22
write(3,201) eqn
go to 299
endif
fitb = num/denom*(1.0+fb)
else
fitb = 0.0
endif
c
f = fb+fitb
write(3,*) 'fitb=',fitb
write(3,*) 'f=',f
c
c --- equation 24 & 25
c
if (itbsw.eq.1.0) then
num=taur*tauc*taub*tauhpt
write(3,*) 'num=',num
if (num.eq.0) then
eqn = 24
write(3,201) eqn
go to 299
endif
tauitb = Tt6oT0/num
else
tauitb = 1.0
endif
c
Tt6oTt2 = tauitb*taulpc*tauhpc*taub*tauhpt
write(3,*) 'tauitb=',tauitb
write(3,*) 'Tt6oTt2=',Tt6oTt2
c
c --- equation 26,27,28,29,30
c
fp1 = f+1.0
num = 1.0-taulpc+alpha*(1.0-tauf)
denom = fp1*cptocpc*Tt6oTt2*effmlpt
write(3,*) 'num=',num
write(3,*) 'denom=',denom
c
c
if (denom.eq.0) then
eqn = 26
write(3,201) eqn
go to 299
endif
c
taulpt = 1.0+num/denom
write(3,*) 'taulpt=',taulpt
c
pihpt = tauhpt**(rgtm1ogt*rehpt)
pilpt = taulpt**(rgtm1ogt*relpt)
write(3,*) 'pihpt=',pihpt
write(3,*) 'pilpt=',pilpt
c
denom = 1.0-tauhpt**rehpt
write(3,*) 'denom=',denom
if (denom.eq.0) then
eqn = 29
write(3,201) eqn
go to 299
endif
c
effhpt = (1.0-tauhpt)/denom
write(3,*) 'effhpt=',effhpt
c
denom = 1.0-taulpt**relpt
write(3,*) 'denom=',denom
if (denom.eq.0) then
eqn = 30
write(3,201) eqn
go to 299
endif
c
efflpt = (1.0-taulpt)/denom
write(3,*) 'efflpt=',efflpt
c
c --- eqaution 31,32,33,34,35
c
pt10op10 = p0op10*pir*pid*pilpc*pihpc*pib
pt10op10 = pt10op10*pihpt*piitb*pilpt*pin
write(3,*) 'pt10op10=',pt10op10
c
Tt10oT0 = taur*tauc*taub*tauhpt*taulpt*tauitb
denom = pt10op10**gtm1ogt
write(3,*) 'Tt10oT0=',Tt10oT0
write(3,*) 'denom=',denom
if (denom.eq.0) then
eqn = 33
write(3,201) eqn
go to 299
endif
c
T10oT0 = Tt10oT0/denom
write(3,*) 'T10oT0=',T10oT0
c
term = denom
if (term.lt.1.0) then
eqn = 34
write(3,200) eqn
go to 299
endif
c
M10 = sqrt(2.0*(term-1.0)/(gamat-1.0))
c
term = rtorc*T10oT0*gamat/gamac
write(3,*) 'term=',term
c
if (term.lt.0.0) then
eqn = 35
write(3,200) eqn
go to 299
endif
c
v10oa0 = M10*sqrt(term)
write(3,*) 'M10=',M10
write(3,*) 'v10oa0=',v10oa0
c
c --- equation 36,37,38,39,40
c
pt19op19 = p0op19*pir*pid*pif*pifn
c
term = pt19op19**gcm1ogc
write(3,*) 'pt19op19=',pt19op19
write(3,*) 'term=',term
if (term.lt.1.0) then
eqn = 37
write(3,200) eqn
go to 299
endif
c
M19 = sqrt(2.0*(term-1.0)/(gamac-1.0))
write(3,*) 'M19=',M19
c
Tt19oT0 = taur*tauf
c
denom = term
T19oT0 = Tt19oT0/denom
write(3,*) 'Tt19oT0=',Tt19oT0
write(3,*) 'T19oT0=',T19oT0
c
if (T19oT0.lt.0) then
eqn = 40
write(3,200) eqn
go to 299
endif
c
v19oa0 = sqrt(T19oT0)*M19
write(3,*) 'v19oa0=',v19oa0
c
c --- equation 41 & 42
c
term = fp1*rtorc*T10oT0*(1.0-p0op10)*rgamac/v10oa0
write(3,*) 'term=',term
write(3,*) 'a0=',a0
write(3,*) 'rgc=',rgc
write(3,*) 'fp1=',fp1
write(3,*) 'v10oa0=',v10oa0
write(3,*) 'M0=',M0
fcomc = a0*rgc*(fp1*v10oa0-M0+term)
if (fcomc.lt.0) then
eqn = 41
write(3,202) eqn
go to 299
endif
c
write(3,*) 'term=',term
write(3,*) 'fcomc=',fcomc
c
term = T19oT0*(1.0-p0op19)*rgamac/v19oa0
ffomf = a0*rgc*(v19oa0-M0+term)
write(3,*) 'term=',term
write(3,*) 'ffomf=',ffomf
c
c --- equation 43 & 44
c
st = (fcomc+ffomf*alpha)*ralpp1
c
tsfc = ((1.0-unitsys)*3600+unitsys*1e6)*(f*ralpp1/st)
write(3,*) 'st=',st
write(3,*) 'tsfc=',tsfc
write(3,*) '------------------------------'
c ---
299 if (eqn.gt.0) error=1.0
return
c
200 format(' Error: Square root of a negative number! Check
& equation',i3)
201 format(' Error: Division by zero !! Check equation', i3)
202 format(' Error: Negative Fc/mcdot !! Check equation',i3)
end
c
*deck fanpr
subroutine fanpr
c
c===========================================================
c
c FANPR determine the range of Fan pressure ratio for
c plotting.
c
c FANPR is called by: itb
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
write(3,*) 'Subroutine FANPR'
c
open(unit=13,file='ST_PIf.dat')
open(unit=14,file='TSFC_PIf.dat')
c
WRITE(13,*) 'Title="','Specific Thrust VS Pi Fan"'
if (unitsys.eq.0.0) then
WRITE(13,*)'Variables = "`p_f","Sp. thrust [lbf/(lbm/sec)]"'
else
WRITE(13,*)'Variables = "`p_f","Sp. thrust [N/(kg/s)]"'
endif
c
WRITE(14,*) 'Title="','TSFC VS Pi Fan"'
if (unitsys.eq.0.0) then
WRITE(14,*)'Variables = "`p_f","TSFC [(lbm/hr)/lbf]"'
else
WRITE(14,*)'Variables = "`p_f","TSFC [(mg/(N-sec)]"'
endif
c
if (nalpha.gt.0) then
do 40 i=1,nalpha
alpha=alp(i)
write(*,*) 'alpha(',i,')=',alpha
c
if (itbsw.eq.0.) then
write(13,12)'Zone T="`a = ',alpha,'(no itb)"'
write(14,12)'Zone T="`a = ',alpha,'(no itb)"'
else
write(13,12)'Zone T="`a = ',alpha,'(itb)"'
write(14,12)'Zone T="`a = ',alpha,'(itb)"'
endif
c
alpp1 = alpha+1.0
ralpp1 = 1.0/alpp1
write(3,*) 'alpp1=',alpp1
write(3,*) 'ralpp1=',ralpp1
c
do 50 pif = ipif,fpif,dpif
call equation
if (error.eq.1.0) then
c write(*,*) 'error'
go to 40
endif
write(13,11) pif,st
write(14,11) pif,tsfc
c count=count+1
50 continue
40 continue
endif
c
close (13)
close (14)
return
11 format(f10.5,2x,f13.9)
12 format(a13,f5.2,a9)
end
c
*deck mach
subroutine mach
c
c===========================================================
c
c MACH determine the range of Mach number for plotting.
c
c MACH is called by: itb
c
c===========================================================
c
include 'comitb.i'
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
write(3,*) 'Subroutine MACH'
c
open(unit=11,file='ST_M0.dat')
open(unit=12,file='TSFC_M0.dat')
c
WRITE(11,*) 'Title="','Specific Thrust VS Mach #"'
if (unitsys.eq.0.0) then
WRITE(11,*)'Variables = "M_0","Sp. thrust [lbf/(lbm/sec)]"'
else
WRITE(11,*)'Variables = "M_0","Sp. thrust [N/(kg/s)]"'
endif
c
WRITE(12,*) 'Title="','TSFC VS Mach #"'
if (unitsys.eq.0.0) then
WRITE(12,*)'Variables = "M_0","TSFC [(lbm/hr)/lbf]"'
else
WRITE(12,*)'Variables = "M_0","TSFC [mg/(N-sec)]"'
endif
c
if (nalpha.gt.0) then
do 20 i=1,nalpha
alpha=alp(i)
write(*,*) 'alpha(',i,')=',alpha
c count=0
if (itbsw.eq.0.) then
write(11,12)'Zone T="`a = ',alpha,'(no itb)"'
write(12,12)'Zone T="`a = ',alpha,'(no itb)"'
else
write(11,12)'Zone T="`a = ',alpha,'(itb)"'
write(12,12)'Zone T="`a = ',alpha,'(itb)"'
endif
c
alpp1 = alpha+1.0
ralpp1 = 1.0/alpp1
write(3,*) 'alpp1=',alpp1
write(3,*) 'ralpp1=',ralpp1
c
do 10 M0 = iM0,fM0,dM0
call equation
if (error.eq.1.0) then
write(*,*) '!!error!!'
go to 20
endif
write(11,11) M0,st
write(12,11) M0,tsfc
10 continue
20 continue
endif
c
close(11)
close(12)
return
11 format(f10.5,2x,f13.7)
12 format(a13,f5.2,a9)
end
c
*deck rinput
subroutine rinput
c
c===========================================================
c
c RINPUT reads the 'input' data file.
c
c RINPUT is called by: itb
c
c===========================================================
c
include 'comitb.i'
character *10 id(4)
c
c//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
read (1,310) id(1),unitsys
write(3,310) ' unitsys',unitsys
c
read (1,310) id(1),itbsw
write(3,310) ' itbsw ',itbsw
c
read (1,310) id(1),T0
write(3,310) ' T0 ',T0
c
read (1,310) id(1),gamac,id(2),cpc
write(3,310) ' gamac ',gamac,' cpc ',cpc
c
read (1,310) id(1),gamab,id(2),cpb
write(3,310) ' gamab ',gamab,' cpb ',cpb
c
read (1,310) id(1),gamat,id(2),cpt
if (itbsw.eq.0.0) then
cpt = cpb
gamat = gamab
endif
write(3,310) ' gamat ',gamat,' cpt ',cpt
c
read (1,310) id(1),hprb,id(2),hpritb
write(3,310) ' hprb ',hprb, ' hpritb ',hpritb
c
read (1,310) id(1),pidmax,id(2),pib,id(3),piitb
if (itbsw.eq.0.0) piitb = 1.0
write(3,310) ' pidmax ',pidmax,' pib ',pib,
& ' piitb ',piitb
c
read (1,310) id(1),pin,id(2),pifn
write(3,310) ' pin ',pin,' pifn ',pifn
c
read (1,310) id(1),ehpc,id(2),elpc,id(3),ef
write(3,310) ' ehpc ',ehpc,' elpc ',elpc,
& ' ef ',ef
c
read (1,310) id(1),ehpt,id(2),elpt
write(3,310) ' ehpt ',ehpt,' elpt ',elpt
c
read (1,310) id(1),effb,id(2),effitb
write(3,310) ' effb ',effb,' effitb ',effitb
c
read (1,310) id(1),effmhpt,id(2),effmlpt
write(3,310) ' effmhpt',effmhpt,' effmlpt',effmlpt
c
read (1,310) id(1),p0op10,id(2),p0op19
write(3,310) ' p0op10 ',p0op10,' p0op19 ',p0op19
c
read (1,310) id(1),Tt4,id(2),Tt6
write(3,310) ' Tt4 ',Tt4,' Tt6 ',Tt6
c
return
310 format(a8,f14.8)
311 format(a8,i5)
end
c
*deck select
subroutine select
c===========================================================
c
c SELECT allows user to specify the desired plots.
c
c SELECT is called by: itb
c
c===========================================================
c
include 'comitb.i'
CHARACTER *2 try
c
c///////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
1 write(*,*)
write(*,*) 'Please choose a plot:'
write(*,*) '--------------------'
write(*,*) '(1)'
write(*,*) ' a. Specific Thrust vs Mach Number'
write(*,*) ' b. TSFC vs Mach Number'
write(*,*) '(2)'
write(*,*) ' a. Specific Thrust vs Compressor Pres.Ratio'
write(*,*) ' b. TSFC vs Compressor Pres.Ratio'
write(*,*) ' c. Fuel-air Ratio vs Compressor Pres.Ratio'
write(*,*) '(3)'
write(*,*) ' a. Specific Thrust vs Fan Pres.Ratio'
write(*,*) ' b. TSFC vs Fan Pres.Ratio'
write(*,*) '(4)'
write(*,*) ' a. Specific Thrust vs Bypass Ratio'
write(*,*) ' b. TSFC vs Bypass Ratio'
write(*,*) '--------------------'
write(*,*) '(1~4)?'
read (*,*) plot
c
if (plot.lt.1.or.plot.gt.4) then
write(*,*) '!!Invalid selction number!!'
write(*,*) ' Try again (y/n)?'
read (*,*) try
if (try.eq.'y'.or.try.eq.'Y') go to 1
endif
c
c +++ Plot 1
c
if (plot.eq.1) then
write(*,*) 'Initial M0 (iM0):'
read (*,*) iM0
2 write(*,*) 'Final M0 (fM0):'
read (*,*) fM0
c
if (fM0.le.iM0) then
write(*,*) ' >>Error: iM0 >= fM0 !!'
go to 2
endif
c
write(*,*) 'Delta M0 (dM0):'
read (*,*) dM0
write(*,*) 'HPC Pressure Ratio (pihpc):'
read (*,*) pihpc
write(*,*) 'LPC Pressure Ratio (pilpc):'
read (*,*) pilpc
write(*,*) 'Fan Pressure Ratio (pif):'
read (*,*) pif
endif
c
c +++ Plot 2
c
if (plot.eq.2) then
write(*,*) 'LPC Pressure Ratio (pilpc):'
read (*,*) pilpc
write(*,*) 'Constant between LPC & HPC (scalec):'
write(*,*) ' i.e. HPC = scalec*LPC'
read (*,*) scalec
c
pihpc = scalec*pilpc
ipic = scalec*pilpc*pilpc
write(*,'(a6,f6.2)') ' HPC =',pihpc
write(*,'(a21,f6.2)') ' Initial pic (ipic) =',ipic
3 write(*,*) 'Final pic (fpic):'
read (*,*) fpic
c
if (fpic.le.ipic) then
write(*,*) ' >>Error: ipic >= fpic'
go to 3
endif
c
write(*,*) 'Delta pic (dpic):'
read (*,*) dpic
write(*,*) 'Fan Pressure Ratio (pif):'
read (*,*) pif
write(*,*) 'Mach Number (M0):'
read (*,*) M0
endif
c
c +++ Plot 3
c
if (plot.eq.3) then
4 write(*,*) 'Initial pif (ipif):'
read (*,*) ipif
c
if (ipif.le.1.0) then
write(*,*)'>>Error: "ipif" has to be greater than 1.0'
go to 4
endif
c
5 write(*,*) 'Final pif (fpif):'
read (*,*) fpif
c
if (fpif.le.ipif) then
write(*,*) ' >>Error: ipif >= fpif'
go to 5
endif
c
write(*,*) 'Delta pif (dpif):'
read (*,*) dpif
write(*,*) 'HPC Pressure Ratio (pihpc):'
read (*,*) pihpc
write(*,*) 'LPC Pressure Ratio (pilpc):'
read (*,*) pilpc
write(*,*) 'Mach number (M0):'
read (*,*) M0
endif
c
c +++ Plot 4
c
if (plot.eq.4) then
write(*,*) 'Initial alpha (ialp):'
read (*,*) ialp
6 write(*,*) 'Final alpha (falp):'
read (*,*) falp
c
if (falp.le.ialp) then
write(*,*) ' >>Error: ialp >= falp'
go to 6
endif
c
write(*,*) 'Delta alpha (dalp):'
read (*,*) dalp
write(*,*) 'HPC Pressure Ratio (pihpc):'
read (*,*) pihpc
write(*,*) 'LPC Pressure Ratio (pilpc):'
read (*,*) pilpc
write(*,*) 'Mach number (M0):'
read (*,*) M0
write(*,*)
write(*,*) 'Plot at different fan pres. ratio (pif)'
write(*,*) '---------------------------------------'
write(*,*) 'Number of pif (npif):'
read (*,*) npif
write(*,*) 'Please input',npif,' pif(s):'
do 7 i=1,npif
write(*,*) 'pif',i,' ->'
read (*,*) pi_f(i)
7 continue
endif
c
if (plot.le.3) then
write(*,*)
write(*,*) 'Plot at different bypass ratio (alpha)'
write(*,*) '--------------------------------------'
write(*,*) 'Number of alpha (nalpha):'
read (*,*) nalpha
write(*,*) 'Please input',nalpha,' alpha(s):'
do 8 i=1,nalpha
write(*,*) 'alpha',i,' ->'
read (*,*) alp(i)
8 continue
endif
c
return
end
c
*deck start
subroutine start
c===========================================================
c
c START performs initialization for 'itb' run.
c
c START is the first subroutine called by the driver.
c
c START is called by: itb
c
c===========================================================
c
include 'comitb.i'
logical present
c
c///////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
c
open(unit=3,file='check')
c +++
c +++ ensure that 'input' file exists
c +++
inquire(file='input',exist=present)
if(.not.present) then
write(*,300)
write(3,300)
call exit(0)
endif
c
open(unit=1,file='input')
read (1,301) name
write(3,301) name
300 format(' data file input is missing: run aborted')
301 format(a80)
return
end
Variable initialization: comitb.i
*deck comitb
c
c implicit double precision (a-h,o-z)
parameter (na=10,ncomp=1000)
c na = maximum number of different alpha values
c
REAL M0,iM0,M10,M19,num,ipic,ialp,ipif,itbsw
CHARACTER *80 name
c
common /inputs/ unitsys,itbsw,T0,gamac,cpc,gamab,cpb,
1 gamat,cpt,hprb,hpritb,pidmax,pib,piitb,pin,pifn,ehpc,
2 elpc,ef,ehpt,elpt,effb,effitb,effmhpt,effmlpt,p0op10,
3 p0op19,Tt4,Tt6,M0,iM0,dM0,fM0,pihpc,pilpc,pic,ipic,
4 dpic,fpic,tpilpc(ncomp),tpihpc(ncomp),scalec,pif,ipif,
5 dpif,fpif,npif,pi_f(na),ialp,dalp,falp,nalpha,alpha,
6 alp(na),taud,plot
c
common /outputs/ f,st,tsfc
c
common /equations/ rc,rb,rt,a0,v0,taur,pir,effr,pid,taulb,
1 taulitb,tauhpc,taulpc,tauf,tauc,taub,effhpc,efflpc,efff,
2 fb,tauhpt,fitb,tauitb,Tt6oTt2,taulpt,pihpt,pilpt,effhpt,
3 efflpt,pt10op10,Tt10oT0,t10oT0,M10,v10oa0,pt19op19,M19,
4 Tt19oT0,T19oT10,v19oa0,fcomc,ffomf
c
common /constants/ gc,rgc,ecvrn,gcm1ogc,gbm1ogb,gtm1ogt,
1 rgcm1ogc,denom,fp1,rgtm1ogt,rehpt,relpt,num,pt10rgt,
2 rgtm1,term,rgcm1,pt19rgc,rgamac,alpp1,ralpp1,rgamat,
3 rgamab,Tt4oT0,Tt6oT0,cpbocpc,cptocpc,cpcocpb,rehpc,
4 relpc,denom1,denom2,rtorc,error
c
common /chardat/ name
c
Input data file: input
/062302/ ITB
unitsys 0.0
itbsw 1.0
T0 390.0
gamac 1.39999
cpc 0.239
gamab 1.27284
cpb 0.277
gamat 1.27882
cpt 0.274
hprb 18400.0
hpritb 18400.0
pidmax 0.99
pib 0.96
piitb 0.96
pin 0.99
pifn 1.3
ehpc 0.9066
elpc 0.9036
ef 0.8961
ehpt 0.9029
elpt 0.9174
effb 0.999
effitb 0.999
effmhpt 0.92
effmlpt 0.93
p0op10 0.9
p0op19 0.9
Tt4 3214.07
Tt6 2814.92
References
1. Mattingly, J. D., Elements of Gas Turbine Propulsion, McGraw-Hill series in
mechanical engineering, McGraw Hill, Inc. Singapore 1996.
2. Model Specification for Engines, Aircraft, Turbojet, Military Specification MIL-E-
5008B, Department of Defense. January 1959
3. F. Liu, W.A. Sirignano, Turbojet and Turbofan Engine Performance Increases
Through Turbine Burners, Journal of Propulsion and Power, Vol. 17, No. 3, May-June
2001, pp 695-705.

You might also like