Академический Документы
Профессиональный Документы
Культура Документы
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ…………..……………………………………………………….. 5
ВВЕДЕНИЕ
Публикации
По результатам диссертационной работы опубликовано 7 печатных
работ, в том числе 2 статьи в журналах, рекомендованных ВАК, и 5 докладов
в сборниках трудов научно-технических конференций.
Рисунок 1.1 — Схема охлаждения газовой турбины ГТУ типа W501F фирмы
«Westinghouse»: 1 — горячие газы после камеры сгорания; 2 — газы после
турбины; 3 — охлаждающий воздух из-за компрессора для охлаждения
проточной части турбины и дисков; 4 — полость подвода охлаждающего
воздуха к роторным деталям; 5 — лабиринтное уплотнение; 6 — роторные
стяжки; 7 — полости для подвода охлаждающего воздуха к сопловым
лопаткам 2, 3 и 4-й ступеней
14
Уравнение состояния.
Уравнение состояния принимается в простейшем виде, применимом для
идеального газа:
pv RT , (2.6)
1
где v — удельный объѐм газа; R — универсальная газовая постоянная.
df dq
В системе уравнений (2.1), (2.3), (2.5), (2.6) величины mв , , , , F
ds ds
считаются известными функциями от s. Величины R, сp, сpв считаются
постоянными, не зависящими от температуры.
41
cp
где обозначено k — показатель изоэнтропы.
cp R
k 1
c 2
k T c 2
с 2
k p1 k
R 1 t ,
0
1
R 1 c 02 . (2.15)
2 k 1 T0 2 2 k 1 p0
Подставляя (2.14), (2.15) в (2.13), после преобразований имеем
зависимость
0
0,5
1 1
k 1
F1
, (2.16)
1 0 F ( s)
T1t T
где , 0 1t .
Tt T0
T1 T1t
s
1 к df
. (2.20)
T1t c p 0 Tt
Н с 2 1
sк
T1t 2
1 1 0 Tt df . (2.25)
Н 0с Н
0с
Аналогичную зависимость имеем для рабочей решетки. Скорость на
выходе из решетки (сопловой) определяется по зависимости
с1 2Н 0 с 2 .
1
(2.26)
46
T1 T1t
sк sк
1 df 1 dq
T1t
cp 0 Tt c p T
0 t
, (2.28)
df H H 0 1 2 ,
sк
T1t
T
0 t
(2.30)
H т 1 1t ds (2.33)
0 ds
Tt
48
dq
при 0 всегда отрицательный, и, следовательно, он определяет
ds
дополнительные потери от конвективного охлаждения сопл и рабочих
лопаток.
H т 1 1t ds , (2.34)
0 ds
Tt
T1t
поскольку на участке DF величина 1 0 .
Tt
Таким образом, теплообмен на участке косого среза не влияет на
величину располагаемого теплоперепада решетки, но вследствие охлаждения
газа за счет теплоотдачи приводит к снижению энтальпии газа в сечении 22
струи по отношению к выходному сечению 11.
dq
Рассмотрим частный случай, при котором const на участке ED.
ds
Тогда на участке DF, где происходит охлаждение газа только с одной
стороны струи (на поверхности профиля), а на другой стороне струи
охлаждения не происходит, интенсивность подвода тепла вдвое меньше и
dq
составляет 0,5 . Общий отвод тепла от газа к лопатке составит
ds
dq 1 dq dq 1
q sк sкс sк sкс . (2.35)
dx 2 ds ds 2
49
Из (2.35) имеем:
dq q
ds s 1 s . (2.36)
к кс
2
Учитывая (2.32), (2.34) и (2.36), дополнительные потери при
конвективном охлаждении с учетом влияния косого среза в решетке
представим в виде:
T1t
sк
H т q 2
H0
2c p T0
,
T 1
1 0 Tt
ds ,
(2.37)
1 1t sк sкс
T0 2
где Δq — полный удельный подвод (со знаком минус) тепла к газу в каналах
решеток; cp — средняя удельная теплоемкость газа для процесса расширения;
T 0 — температура торможения перед решеткой; T1t — температура в конце
H т
— определяется по (2.37). Температура (энтальпия) за решеткой
H0
c p T0 T1
c12
H 0 2 H т . (2.44)
2
T c 2 m df dq
dT dTt T Tв г в в ds , (2.46)
Tt 2c p G cp cp
где сг в c c 2 с св cos
1
2 2
в
2 — это модуль геометрической разности
скоростей с и св (рисунок 2.3).
Поделим все члены (2.46) на Tt, тогда первые два члена (как и ранее)
представляют полный дифференциал
dT T T
2 dTt d . (2.47)
Tt Tt Tt
С учетом (2.47) уравнение (2.46) может быть представлено в виде
d T T mв c 2 mв 1 df 1 dq
Tв в
г
ds Tt G T c T ds c T ds .
(2.48)
Tt G 2c p t p t p t
d c2
T c
2 mв
cв2 mв
1 dq
T T
ds 2c p 2c p G в 2c G c ds . (2.49)
p p
c 2c p T ( s ) T .
1
2 (2.50)
Совокупность дифференциального уравнения (2.48) и конечного
соотношения (2.50) полностью определяют обе неизвестные величины: c и T.
Выражая в (2.48) величину cг-в как функцию от c, получим
дифференциальное уравнение относительно единственной неизвестной
функции — температуры T. Решая его любым численным способом, получим
T как функцию от s — т.е. задача может быть решена «точно».
53
Если обозначить
c2
T T ( s) , (2.51)
2c p
mв
a( s) , (2.52)
G
mв 1 dq
Tв св
2
b( s ) , (2.53)
2c р G c ds
p
c02
где s1, s2 — переменные интегрирования; T0 T0 — температура
2 cp
T1t сг2в mв 1 df 1 dq
b( s )
Tв .
2с p G c p ds c p ds
(2.57)
Tt
Коэффициент потерь в сопловой решетке имеет вид:
H c T T (T1 T1 )
с 0 1t . (2.58)
c p (T0 T1t ) T0 T1t
Подставляя правые части (2.55), (2.56) в правую часть (2.58), получаем
1
sк
T0 T1t 0
1
с (1 g п ) g п (1 g ( s ))b ( s ) ds , (2.59)
где обозначено
к
c p T0 T1t 0
,
Tt ds
(2.64)
sк
c2 T1t cв2 mв
п 1 g п
1
1
gп Tв Tв ds . (2.65)
T0 T1t 0 2c p Tt 2c p G0
В зависимости (2.65) температура охлаждающего воздуха Tв заменена на
приведенную температуру охлаждающего воздуха Tв , определяемую из
соотношения
h(T ) hв (Tв )
Tв Tв . (2.66)
cp
1 к T1t сг2в
s
G0 g п 0 Tt
Tп
Tв mв ds ,
2c p
(2.68)
Tп
gп
Tп T1t , (2.69)
1 gп
кs
Ta
1
T1t
1 g (s) df ds ,
с p 1 g п 0 Tt
(2.70)
ds
s
к
1 T1t
dq
c p 1 g п 0 Tt
Tк 1 g ( s ) ds . (2.71)
ds
l Tw (2.73)
tB
1
l
Здесь а — аэродинамические потери из справочника без учета
м
Коэффициент
потерь в сопловой
решетке ζ
0,12
0,1
0,08
0,06
0,04
0,02
0
0 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1
Относительный расход охлаждающего воздуха
Коэффициент
потерь в сопловой
решетке ζ
0,12
0,1
0,08
0,06
0,04
0,02
0
0 10 20 30 40 50 60 70 80 90
Угол выхода охлаждающего воздуха, град
Коэффициент
потерь в сопловой
решетке ζ
0,12
0,1
0,08
0,06
0,04
0,02
0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
Отношение расхода на пленочное охлаждение к общему расходу
охлаждающего воздуха
cф 2Н 0 , (2.78)
u
u cф .
c (2.79)
ф опт
4. Оптимальный средний диаметр ступени:
u
d , (2.80)
n
где n — частота вращения, с-1.
Далее возможно задаться значением среднего диаметра, которое будет
использоваться в дальнейших расчетах в случае допущения о постоянстве
среднего диаметра для всех ступеней газовой турбины.
5. Теплоперепады на рабочую и сопловую решетки:
H 0p H 0 ст , (2.81)
H 0 с H 0 (1 ст ) . (2.82)
68
1 с . (2.88)
11. Действительная скорость потока на выходе из сопловой решетки:
с1 с1t . (2.89)
12. По формулам (2.68)-(2.71) производится расчет величин ΔTп, ΔTa и
ΔTк, характеризующих изменение действительной температуры газа за
решеткой, вызванное наличием охлаждения.
Температура за сопловой решеткой представляется в виде:
T1 T1t Tп Tа Tк . (2.90)
69
1 р . (2.103)
k 1
p2 k
H в 2 С рв 2Tв 2 1 , (2.113)
в2
p
где величины Tв1, Tв2, pв1, pв2 обозначают параметры воздуха при его отборе в
компрессоре.
30. Мощность ступени на ободе лопаток:
N u G0 Lu . (2.114)
31. Относительный КПД ступени:
Lu
u . (2.115)
E0
32. Коэффициенты потерь от утечек через диафрагменные и
периферийные уплотнения ξу и потери от трения дисков ξтр, а также потери
мощности в результате этих факторов определяются по методике [41] в
соответствии с формулами, которые применяются для нахождения
аналогичных величин при расчете паровых турбин.
Следует учесть, что из-за конструктивных особенностей газовой
турбины в первой ступени существуют только утечки через периферийное
уплотнение.
33. Теоретическая мощность ступени:
N 0 G0 H 0 Gв1H в1 Gв 2 H в 2 . (2.116)
34. Внутренняя мощность ступени:
N i G0 Lu N у N тр . (2.117)
Здесь остаются неучтенными потери мощности на сжатие в системе
охлаждающего воздуха, а также расход воздуха на охлаждение дисков и
прочих элементов проточной части, поскольку условно принимается, что
весь охлаждающий воздух распределяется по венцам лопаток, чего в
действительности не происходит. Оценка этих потерь представляет собой
отдельную задачу и не входит в рамки данной работы.
73
При расчете тепловой схемы простой ГТУ (рисунок 3.1) без учета
охлаждения деталей газовой турбины исходными величинами, заданными
или принимаемыми по оценке, являются:
— электрическая мощность Nэ, кВт;
— температура газов перед турбиной Тс, К;
— температура воздуха на входе в компрессор Tа, К;
— отношение давлений компрессора ε = pb/pa;
— коэффициент потерь давления λ = δ/ε;
— коэффициент использования теплоты топлива в камере сгорания ηкс;
— механический КПД турбины ηм;
— КПД электрического генератора ηэг;
— характеристики топлива: теплота сгорания топлива Кт, кДж/кг;
количество воздуха, необходимое для сжигания 1 кг топлива L0, кг/кг;
энтальпия топлива hтп, кДж/кг;
— изоэнтропийный КПД турбины ηт;
— изоэнтропийный КПД компрессора ηк;
— характеристики чистых продуктов сгорания;
— коэффициент утечек αу.
H т 1 H ст1 H ст2 H ст z
... . (3.32)
H z H cт H cт H cт
H ст i
Далее введем обозначение i
охл
— относительная потеря в
H cт
H т iохл g в z
H
1 охл
z
охл охл gв z
1 2 ... z i i i ,
z i 1 g в i z i 1
(3.33)
gв i
где обозначено i — отношение относительного расхода воздуха на
gв
охлаждение i-ой ступени к относительному расходу охлаждающего воздуха
iохл
на всю турбину, i — дополнительные потери на охлаждение в i-ой
gв i
ступени, отнесенные к расходу охлаждающего воздуха.
82
Рисунок 3.2 — Окно ввода исходных данных для расчета тепловой схемы
ГТУ в программе «GTU»
Gк L0 B B
a ; b ; d bK т hтп кс , (4.4)
Gк B Gк B
где обозначено
Gв
g в . (4.5)
Gк B
Рисунок 4.1 — Распределение температур газа в проточной части газовой турбины ГТЭ-180 (штриховая линия —
конструкторский расчет; сплошная линия — расчет по разработанной программе)
99
Рисунок 4.2 — Распределение температур газа в проточной части газовых турбин «Мицубиси»: 1 — ГТУ серии G; 2 —
ГТУ серии F; 3 — ГТУ серии D
101
u
u cф 810 ,1 0,573 464 ,2 м/с.
c
ф опт
Оптимальный средний диаметр ступени:
u 464,2
d 2,96 м.
n 50
Далее принимаем средний диаметр для всех ступеней d = 2,8 м.
105
1 р 1 0,1107 0,943 .
Рисунок 5.1 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ηк = 0,88 и Tw = 800оС (ε = var)
116
Рисунок 5.2 — Графики зависимости коэффициента полезной работы и температуры уходящих газов ГТУ от
температуры газов перед турбиной при ηк = 0,88 и Tw = 800оС (ε = var)
117
Рисунок 5.3 — Графики зависимости КПД ГТУ от степени сжатия в компрессоре при ηк = 0,88 и Tw = 800оС (Tc = var)
119
Рисунок 5.4 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ηк = 0,86 и Tw = 800оС (ε = var)
121
Рисунок 5.5 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ηк = 0,90 и Tw = 800оС (ε = var)
122
Рисунок 5.6 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ηк = 0,92 и Tw = 800оС (ε = var)
123
Рисунок 5.7 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ε =25 и Tw = 800оС (ηк = var)
124
Рисунок 5.8 — Графики зависимости КПД ГТУ от температуры газов перед турбиной при ε =25 и ηк = 0,88 (Tw = var)
126
Рисунок 5.11 — График зависимости максимального КПД ПГУ при данной температуре от температуры газов перед
газовой турбиной: 1 — двухконтурная ПГУ; 2 — трехконтурная ПГУ с промперегревом
134
ЗАКЛЮЧЕНИЕ
T1t
τ0 — безразмерная температура 0 ;
T0
e — коэффициент пропорциональности;
e 0 — поправочный коэффициент на углы входа и выхода решетки;
c2 t
2t — относительная скорость в выходном сечении канала 2t ;
c2*
СПИСОК ЛИТЕРАТУРЫ
31. Кашин Д.С., Стехов П.А. Защитные покрытия для жаропрочных сплавов
на основе ниобия // Труды ВИАМ, № 6, 2015.
32. Кириллов И.И. Газовые турбины и газотурбинные установки. М.:
Машгиз: 1956.
33. Клер А.М., Захаров Ю.Б. Оптимизация параметров газотурбинной
установки с охлаждаемой проточной частью // Вестник Иркутского
государственного технического университета, №4, 2012.
34. Клер А.М., Захаров Ю.Б., Потанина Ю.М. Оптимизация параметров ПГУ
и системы охлаждения газовой турбины // Восточно-Европейский журнал
передовых технологий, №23 (63), 2013.
35. Копелев С.З. Охлаждаемые лопатки газовых турбин. М.: Наука, 1983.
36. Копелев С.З. Проектирование проточной части турбин авиационных
двигателей. М.: Машиностроение, 1984.
37. Копелев С.З., Тихонов Н.Д. Расчет турбин авиационных двигателей. М.:
Машиностроение, 1974.
38. Костюк А.Г., Карпунин А.П. Исследование влияния параметров ГТУ на
ее характеристики с учетом дополнительных потерь в охлаждаемой газовой
турбине // Теплоэнергетика, №8, 2014.
39. Костюк А.Г., Карпунин А.П. Расчет температур газа на выходе из камеры
сгорания и в проточной части ГТУ по данным приемных испытаний по ISO //
Теплоэнергетика, №1, 2016.
40. Костюк А.Г. Тепловой расчет охлаждаемой ступени газовой турбины. М.:
Издательский дом МЭИ, 2016.
41. Костюк А.Г., Фролов В.В., Булкин А.Е., Трухний А.Д. Паровые и газовые
турбины для электростанций. Ред. А.Г. Костюк. М.: Издательский дом МЭИ,
2008.
42. Костюк А.Г., Шерстюк А.Н. Газотурбинные установки. М.: Высшая
школа, 1979.
152
66. Швец И.Т., Дыбан Е.П. Воздушное охлаждение деталей газовых турбин.
К.: Наукова думка, 1974.
67. Boyce Meherwan. Gas turbine engineering handbook. Elsevier inc., 2002.
68. Camci C., Arts T. Short-duration measurements and numerical simulation of
heat transfer along the suction side of a film-cooled gas turbine blade. The 30th
international gas turbine conference and exhibit. Houston, USA, 1985.
69. Can Gulen S. A simple parametric model for the analysis of cooled gas
turbines // J. Eng. gas Turbines Power, T. 133(1), 2011.
70. Cleeton J.P.E. Blade cooling optimisation in humid-air and steam-injected gas
turbines / J.P.E. Cleeton, R.M. Kavanagh, G.T. Parks // Applied Thermal
Engineering, T.29 (16), 2009.
71. Cohen H., Rogers G.F.C., Saravanamuttoo H.I.H. Gas turbine theory
(4th edition). Longman Group Limited, Harlow, 1996.
72. Drawin S., Justin J.F. Advanced lightweight silicide and nitride dased materials
for turbo-engint applicatons // The Onera Journal AerospaceLab, № 3, 2011.
73. Huttunen J. Optimization of the mean radius flow path of a multi-stage steam
turbine with evolution algorithms / J. Huttunen, l. Jaakko, T. Turunen-Saaresti, J.
Backman //Journal of Thermal Science, T. 20(4), 2011.
74. ISO/DIS 2314. Gas turbine — acceptance tests (MOD).
75. Jordal K. Optimization with genetic algorithms of a gas turbine cycle with H2-
separating membrane reactor for Co2 capture / K. Jordal, O. Bolland, F. M. Björn,
T. Torisson // International Journal of green Energy, T. 2(2), 2005.
76. Kim W-Y., Tanaka H., Kasama A., Hanada S. Effects of carbon on the tensile
properties of Nb-Mo-W allows at 1773 K // Journal of allows and compounds,
Vol.333, 2002.
77. Moffitt T.P., Stepka F.S., Rohlik H.E. Summary of NASA aerodynamic and
heat transfer studies in turbine vanes and blades. Levis research center, Cleveland,
USA, 1976.
155
unit GTU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, AppEvnts, Menus, ComCtrls, Math, ExtCtrls;
type
massiv=array[1..11] of double;
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
TabSheet2: TTabSheet;
StringGrid1: TStringGrid;
TabSheet3: TTabSheet;
StringGrid2: TStringGrid;
TabSheet4: TTabSheet;
Button2: TButton;
Memo1: TMemo;
TabSheet5: TTabSheet;
Edit16: TEdit;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Edit17: TEdit;
Label22: TLabel;
Edit18: TEdit;
Label23: TLabel;
Label24: TLabel;
Edit19: TEdit;
Edit20: TEdit;
Button3: TButton;
Label25: TLabel;
Label26: TLabel;
Edit21: TEdit;
Label27: TLabel;
Edit22: TEdit;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Edit23: TEdit;
Edit24: TEdit;
Label32: TLabel;
Label33: TLabel;
157
Edit25: TEdit;
Edit26: TEdit;
Label35: TLabel;
Edit27: TEdit;
Edit28: TEdit;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Edit29: TEdit;
Label44: TLabel;
Edit30: TEdit;
Label45: TLabel;
Label46: TLabel;
Edit31: TEdit;
Edit32: TEdit;
Label47: TLabel;
Label48: TLabel;
Edit33: TEdit;
Edit34: TEdit;
Label49: TLabel;
Label50: TLabel;
Edit35: TEdit;
Edit36: TEdit;
Label51: TLabel;
GroupBox1: TGroupBox;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
GroupBox2: TGroupBox;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
GroupBox3: TGroupBox;
RadioButton11: TRadioButton;
RadioButton12: TRadioButton;
RadioButton13: TRadioButton;
GroupBox4: TGroupBox;
RadioButton14: TRadioButton;
RadioButton15: TRadioButton;
RadioButton16: TRadioButton;
GroupBox5: TGroupBox;
RadioButton17: TRadioButton;
RadioButton18: TRadioButton;
RadioButton19: TRadioButton;
GroupBox6: TGroupBox;
RadioButton20: TRadioButton;
RadioButton21: TRadioButton;
RadioButton22: TRadioButton;
GroupBox7: TGroupBox;
RadioButton23: TRadioButton;
RadioButton24: TRadioButton;
RadioButton25: TRadioButton;
GroupBox8: TGroupBox;
RadioButton26: TRadioButton;
RadioButton27: TRadioButton;
RadioButton28: TRadioButton;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Button4: TButton;
Label59: TLabel;
Label60: TLabel;
Edit48: TEdit;
Label65: TLabel;
Label56: TLabel;
ComboBox1: TComboBox;
GroupBox9: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton29: TRadioButton;
GroupBox10: TGroupBox;
RadioButton30: TRadioButton;
RadioButton31: TRadioButton;
RadioButton32: TRadioButton;
GroupBox11: TGroupBox;
RadioButton33: TRadioButton;
RadioButton34: TRadioButton;
RadioButton35: TRadioButton;
GroupBox12: TGroupBox;
RadioButton36: TRadioButton;
RadioButton37: TRadioButton;
RadioButton38: TRadioButton;
Label57: TLabel;
158
Label58: TLabel;
Label61: TLabel;
Label62: TLabel;
Label63: TLabel;
Label64: TLabel;
Label34: TLabel;
Edit41: TEdit;
Edit42: TEdit;
Edit43: TEdit;
Edit44: TEdit;
Edit45: TEdit;
Edit46: TEdit;
Edit47: TEdit;
Edit49: TEdit;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Label69: TLabel;
Edit37: TEdit;
Label70: TLabel;
Label71: TLabel;
Edit38: TEdit;
Label72: TLabel;
Edit39: TEdit;
Label73: TLabel;
Edit40: TEdit;
Label74: TLabel;
Edit50: TEdit;
Label75: TLabel;
Edit51: TEdit;
Label76: TLabel;
Edit52: TEdit;
Label77: TLabel;
Edit53: TEdit;
Label78: TLabel;
Edit54: TEdit;
Label79: TLabel;
Edit55: TEdit;
Label80: TLabel;
Edit56: TEdit;
Label81: TLabel;
Edit57: TEdit;
Label82: TLabel;
Edit58: TEdit;
Label83: TLabel;
Edit59: TEdit;
Label84: TLabel;
Edit60: TEdit;
Label85: TLabel;
Edit61: TEdit;
Label86: TLabel;
Edit62: TEdit;
Label87: TLabel;
Edit63: TEdit;
Label88: TLabel;
Edit64: TEdit;
Label89: TLabel;
Edit65: TEdit;
Label90: TLabel;
Edit66: TEdit;
Label91: TLabel;
Edit67: TEdit;
Label92: TLabel;
Edit68: TEdit;
Label93: TLabel;
Edit69: TEdit;
Edit70: TEdit;
Label94: TLabel;
procedure Button1Click(Sender: TObject);
procedure StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure OnCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton9Click(Sender: TObject);
procedure RadioButton10Click(Sender: TObject);
procedure RadioButton11Click(Sender: TObject);
procedure RadioButton12Click(Sender: TObject);
procedure RadioButton13Click(Sender: TObject);
procedure RadioButton14Click(Sender: TObject);
procedure RadioButton15Click(Sender: TObject);
procedure RadioButton16Click(Sender: TObject);
procedure RadioButton17Click(Sender: TObject);
159
procedure RadioButton18Click(Sender: TObject);
procedure RadioButton19Click(Sender: TObject);
procedure RadioButton20Click(Sender: TObject);
procedure RadioButton21Click(Sender: TObject);
procedure RadioButton22Click(Sender: TObject);
procedure RadioButton23Click(Sender: TObject);
procedure RadioButton24Click(Sender: TObject);
procedure RadioButton25Click(Sender: TObject);
procedure RadioButton26Click(Sender: TObject);
procedure RadioButton27Click(Sender: TObject);
procedure RadioButton28Click(Sender: TObject);
procedure RadioButton29Click(Sender: TObject);
procedure RadioButton30Click(Sender: TObject);
procedure RadioButton31Click(Sender: TObject);
procedure RadioButton32Click(Sender: TObject);
procedure RadioButton33Click(Sender: TObject);
procedure RadioButton34Click(Sender: TObject);
procedure RadioButton35Click(Sender: TObject);
procedure RadioButton36Click(Sender: TObject);
procedure RadioButton37Click(Sender: TObject);
procedure RadioButton38Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Button4Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
but:array[1..500] of TButton;
implementation
{$R *.dfm}
var n,top,z:integer;
a,pc,pd,tc,alfa,eta,hc,h0,tdt,td,hd,rot,ro,pa,pb,ta,tbt,tb,hb,ha,
Ne,pik,lambda,etaks,etameh,etaeg,etat,etat2,etak,alfaut,fi,b,L0,Btop,
htur,hkom,hgtu,Ntur,Nkom,etagtu,tw,Gtur,Gkom,Gexit,etagtuohl,hgtuohl,
tkon,nun:double;
const RR=8.31441; {Дж/(моль*К), универсальная газовая постоянная}
muvozd=28.97; {г/моль}
{табличные данные}
temp:array [1..26] of double=(-50,0,50,100,150,200,250,300,400,500,600,
700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,
2100);
{воздух}
hvozd:array [1..26] of double=(223.35,273.50,323.75,374.15,424.82,475.83,
527.29,579.27,684.92,792.97,903.36,1015.93,1130.45,1246.71,1364.49,
1483.60,1603.89,1725.23,1847.49,1970.59,2094.44,2218.98,2344.15,
2469.90,2596.19,2722.98);
pivozd:array [1..26] of double=(9.6930,9.9997,10.2550,10.4743,10.6670,
10.8394,10.9959,11.1394,11.3963,11.6225,11.8256,12.0103,12.1798,
12.3366,12.4824,12.6186,12.7466,12.8671,12.9811,13.0892,13.1921,
13.2905,13.3850,13.4762,13.5647,13.6511);
Cpvozd:array [1..26] of double=(1.0026,1.0037,1.0062,1.0104,1.0165,1.0245,
1.0341,1.0449,1.0684,1.0924,1.1151,1.1358,1.1543,1.1705,1.1848,
1.1973,1.2083,1.2182,1.2270,1.2349,1.2421,1.2486,1.2547,1.2603,
1.2654,1.2703);
{диоксид углерода}
h2:array [1..26] of double=(152.57,192.03,234.21,278.86,325.72,374.56,
425.19,477.44,586.19,699.82,817.54,938.68,1062.68,1189.10,1317.55,
1447.73,1579.38,1712.30,1846.32,1981.31,2117.15,2253.74,2391.01,
2528.89,2667.30,2806.21);
pi2:array [1..26] of double=(10.6257,10.9922,11.3181,11.6130,11.8836,
12.1341,12.3678,12.5870,12.9890,13.3510,13.6805,13.9827,14.2618,
14.5210,14.7629,14.9896,15.2028,15.4041,15.5945,15.7752,15.9473,
16.1119,16.2700,16.4226,16.5706,16.7149);
{водяной пар}
h3:array [1..26] of double=(410.66,503.44,596.67,690.67,785.73,882.05,
979.77,1078.97,1282.09,1491.81,1708.42,1932.11,2162.93,2400.80,
2645.51,2896.76,3154.16,3417.32,3685.82,3959.27,4237.28,4519.51,
4805.65,5095.40,5388.51,5684.71);
pi3:array [1..26] of double=(9.3504,9.7039,9.9989,10.2534,10.4784,
10.6808,10.8655,11.0359,11.3432,11.6167,11.8647,12.0931,12.3056,
12.5050,12.6932,12.8719,13.0420,13.2044,13.3597,13.5087,13.6521,
13.7906,13.9248,14.0553,14.1827,14.3076);
{азот}
h4:array [1..26] of double=(231.55,283.51,335.49,387.55,439.75,492.19,
544.98,598.20,706.20,816.55,929.30,1044.36,1161.54,1280.61,1401.35,
1523.56,1647.05,1771.67,1897.27,2023.74,2150.98,2278.91,2407.44,
2536.52,2666.09,2796.10);
pi4:array [1..26] of double=(9.5416,9.8479,10.1027,10.3210,10.5125,
160
10.6833,10.8380,10.9797,11.2329,11.4556,11.6556,11.8375,12.0046,
12.1592,12.3032,12.4378,12.5643,12.6836,12.7965,12.9036,13.0055,
13.1027,13.1957,13.2849,13.3707,13.4535);
{продукты сгорания метана}
hps:array [1..26] of double=(241.48,296.53,352.07,408.13,464.76,
522.02,579.97,638.66,758.41,881.40,1007.61,1136.87,1269.00,1403.73,
1540.84,1680.10,1821.28,1964.19,2108.66,2254.53,2401.67,2549.95,
2699.26,2849.52,3000.64,3152.55);
Cpps:array [1..26] of double=(1.0964,1.1058,1.1158,1.1267,1.1387,1.1519,
1.1663,1.1816,1.2136,1.2462,1.2777,1.3073,1.3347,1.3596,1.3822,
1.4025,1.4208,1.4372,1.4519,1.4652,1.4773,1.4881,1.4980,1.5070,
1.5153,1.5228);
Form1.StringGrid1.Cells[2,j]:=format('%10.2f',[alfa]);
Form1.StringGrid1.Cells[3,j]:=format('%10.4f',[fi]);
Form1.StringGrid1.Cells[5,j]:=format('%10.4f',[etagtu]);
end;
procedure GTUohl(Ne,tc,ta,pa,pik,lambda,etaks,etameh,etaeg,etat,etak,alfaut:double;
tw,nun:double;
top,z,j:integer;
var tb,td,htur,hkom,hgtuohl,Gtur,Gkom,Gexit,fi,etagtuohl,
Btop,Qniz:double);
var Ntur,Nkom,gw,t2,Cpgas,gamma,b,h,Gks:double;
begin
GTUneohl(Ne,tc,ta,pa,pik,lambda,etaks,etameh,etaeg,etat,etak,alfaut,top,j,
tb,td,htur,hkom,hgtu,Ntur,Nkom,fi,b,alfa,L0,etagtu,Qniz);
gw:=0.02+0.00032*(tc-tw); {кг/с}
Cpgas:=1.22; {кДж/(кг*К)}
t2:=(tc+273.15)-(1/z)*(htur/Cpgas); {К}
162
gamma:=((1-fi)/fi)-((z-1)/(z*fi))*((tb+273.15)/t2)+(nun/fi)*(1/z); {-}
h:=htur-b*hkom; {кДж/кг}
hgtuohl:=h*(1-gamma*gw); {кДж/кг}
etameh:=1-(1-etameh)/fi; {-}
Gtur:=Ne*1000/(hgtuohl*etameh*etaeg); {кг/с}
Btop:=Gtur/(1+alfa*L0); {кг/с}
Gks:=(alfa*L0/(1+alfa*L0))*Gtur; {кг/с}
Gkom:=Gtur*(b+gw); {кг/с}
Gexit:=Gtur*(1+gw); {кг/с}
etagtuohl:=etagtu*(1-gamma*gw); {-}
Form1.StringGrid1.Cells[7,j]:=format('%10.2f',[Gtur]);
Form1.StringGrid1.Cells[6,j]:=format('%10.2f',[Btop]);
Form1.StringGrid1.Cells[8,j]:=format('%10.2f',[Gexit]);
end;
{----------------------------------------------------------------------}
{------Процедура расчета охлаждаемой газовой турбины-------------------}
{----------------------------------------------------------------------}
begin
163
l:=l*1000; {высота лопатки (мм)}
if lopat='13' then
begin
beta1mod:=97.17;
beta2mod:=17.72;
tmod:=0.707;
deltamod:=9.20;
delkrmod:=0.107;
Bmod:=0.579;
a2mod:=0.215;
bbmod:=66.62;
end else
begin
beta1mod:=51.17;
beta2mod:=28.03;
tmod:=0.649;
deltamod:=3.97;
delkrmod:=0.151;
Bmod:=0.825;
a2mod:=0.305;
bbmod:=59.90;
end;
a2mod:=a2mod*bbmod; {модельное горло канала (мм)}
delkrmod:=delkrmod*a2mod; {модельная толщина выходной кромки (мм)}
Bmod:=Bmod*bbmod; {модельная ширина канала (мм)}
delta:=deltamod; {угол отгиба выходной кромки (град)}
t:=tmod; {шаг решетки (безразм)}
lks:=t*(bb/1000)*cos(beta2*pi/180); {длина косого среза (м)}
delbeta:=180-(beta1+beta2);
delbetamod:=180-(beta1mod+beta2mod);
e0:=fune0(delbeta);
edelta:=funedelta(beta1,delta);
elambda:=funelambda(lambda2t);
e:=(e0-edelta)*elambda;
e0mod:=fune0(delbetamod);
edeltamod:=funedelta(beta1mod,deltamod);
elambdamod:=funelambda(lambda2t);
emod:=(e0mod-edeltamod)*elambdamod;
delkr:=(delkrmod*bb/bbmod)+dotv; {толщина выходной кромки (мм)}
a2:=a2mod*bb/bbmod; {горло канала (мм)}
etakr:=e*delkr/a2;
etakrmod:=emod*delkrmod/a2mod;
if (lopat='13') then etaprmod:=1-sqr(0.98-0.008*((bb/1000)/l))
else etaprmod:=1-sqr(0.96-0.014*((bb/1000)/l));
function funtau(x,f,p0,p1:double):double;
var kk,pp:double;
const k=1.29;
begin
pp:=exp(((k-1)/k)*ln(p1/p0));
kk:=1/(k-1);
funtau:=1/exp(kk*ln(x))*sqrt((1-pp/x)/(1-pp))-f;
end;
begin
for i:=1 to 8 do
if lopat='13' then
begin
koor[i]:=koor13[i];
plo[i]:=plo13[i];
end else
begin
koor[i]:=koor89[i];
plo[i]:=plo89[i];
end;
dlina:=koor[8];
w:=koor[8]/10;
koord:=w;
otnplo[1]:=plo[1]/plo[8];
for i:=2 to 11 do begin
j:=1;
while koord>koor[j] do j:=j+1;
plonov:=plo[j-1]+(plo[j]-plo[j-1])*((koord-koor[j-1])/(koor[j]-koor[j-1]));
otnplo[i]:=plonov/plo[8];
koord:=koord+w;
end;
for i:=1 to 11 do begin
a:=exp(((k-1)/k)*ln(p1/p0))+0.001;
b:=1.01;
eps:=1;
while (eps>0.00001) do begin
tau[i]:=(b+a)/2;
if (funtau(tau[i],otnplo[i],p0,p1)*funtau(a,otnplo[i],p0,p1))>0 then
a:=tau[i]
else b:=tau[i];
eps:=abs(b-a);
end;
Tiso[i]:=(t1t+273.15)/tau[i]-273.15;
end;
end;
{-----------------------Функция расхода в канале-------------------------}
procedure rashod(gohl,dlina:double;
var ras:massiv);
var i:integer;
w,x:double;
begin
w:=dlina/10;
x:=0;
for i:=1 to 11 do begin
ras[i]:=gohl*(1-x/(2*dlina));
x:=x+w;
end;
end;
{--------------------------------------------------------------------}
{--------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var i,j,jmax:integer;
k,delta,Gexit,Gkon,Qniz,Gvozd1,Gvozd2,Gvozd3,Gvozd4,etagtuohl2,fi2,
tcmin,tcmax,tcstep,tdop,gv1s,gv1r,gv2s,gv2r,gv3s,gv3r,gv4s,gv4r:double;
deltatt,deltah1,deltapi1,deltah2,deltapi2,deltah3,deltapi3,
deltah4,deltapi4:array[1..24] of double;
begin
if not trystrtofloat(edit1.text, k) then
170
begin
showmessage('Введите мощность ГТУ от 1 до 1000 МВт');
exit;
end
else if (strtofloat(edit1.Text)<1) or (strtofloat(edit1.Text)>1000) then
begin
showmessage('Введите мощность ГТУ от 1 до 1000 МВт');
exit;
end;
if not trystrtofloat(edit2.text, k) then
begin
showmessage('Введите степень сжатия от 2 до 60');
exit;
end
else if (strtofloat(edit2.Text)<2) or (strtofloat(edit2.Text)>60) then
begin
showmessage('Введите степень сжатия от 2 до 60');
exit;
end;
if not trystrtofloat(edit3.text, k) then
begin
showmessage('Введите температуру перед компрессором от -50 до 70°С');
exit;
end
else if (strtofloat(edit3.Text)<-50) or (strtofloat(edit3.Text)>70) then
begin
showmessage('Введите температуру перед компрессором от -50 до 70°С');
exit;
end;
if not trystrtofloat(edit4.text, k) then
begin
showmessage('Введите давление перед компрессором от 0,9 до 1,1 бар');
exit;
end
else if (strtofloat(edit4.Text)<0.9) or (strtofloat(edit4.Text)>1.1) then
begin
showmessage('Введите давление перед компрессором от 0,9 до 1,1 бар');
exit;
end;
if not trystrtofloat(edit5.text, k) then
begin
showmessage('Введите отношение давлений от 0,5 до 1');
exit;
end
else if (strtofloat(edit5.Text)<0.5) or (strtofloat(edit5.Text)>1) then
begin
showmessage('Введите отношение давлений от 0,5 до 1');
exit;
end;
if not trystrtofloat(edit6.text, k) then
begin
showmessage('Введите КПД камеры сгорания от 0,5 до 1');
exit;
end
else if (strtofloat(edit6.Text)<0.5) or (strtofloat(edit6.Text)>1) then
begin
showmessage('Введите КПД камеры сгорания от 0,5 до 1');
exit;
end;
if not trystrtofloat(edit7.text, k) then
begin
showmessage('Введите механический КПД от 0,5 до 1');
exit;
end
else if (strtofloat(edit7.Text)<0.5) or (strtofloat(edit7.Text)>1) then
begin
showmessage('Введите механический КПД от 0,5 до 1');
exit;
end;
if not trystrtofloat(edit8.text, k) then
begin
showmessage('Введите КПД электрогенератора от 0,5 до 1');
exit;
end
else if (strtofloat(edit8.Text)<0.5) or (strtofloat(edit8.Text)>1) then
begin
showmessage('Введите КПД электрогенератора от 0,5 до 1');
exit;
end;
if not trystrtofloat(edit9.text, k) then
begin
showmessage('Введите изоэнтропийный КПД турбины от 0,5 до 1');
exit;
end
else if (strtofloat(edit9.Text)<0.5) or (strtofloat(edit9.Text)>1) then
begin
showmessage('Введите изоэнтропийный КПД турбины от 0,5 до 1');
exit;
end;
171
if not trystrtofloat(edit10.text, k) then
begin
showmessage('Введите изоэнтропийный КПД компрессора от 0,5 до 1');
exit;
end
else if (strtofloat(edit10.Text)<0.5) or (strtofloat(edit10.Text)>1) then
begin
showmessage('Введите изоэнтропийный КПД компрессора от 0,5 до 1');
exit;
end;
if not trystrtofloat(edit11.text, k) then
begin
showmessage('Введите коэффициент утечек от 0 до 0,1');
exit;
end
else if (strtofloat(edit11.Text)<0) or (strtofloat(edit11.Text)>0.1) then
begin
showmessage('Введите коэффициент утечек от 0 до 0,1');
exit;
end;
if not trystrtofloat(edit12.text, k) then
begin
showmessage('Введите допускаемую температуру металла лопаток от 600 до 1400°С');
exit;
end
else if (strtofloat(edit12.Text)<600) or (strtofloat(edit12.Text)>1400) then
begin
showmessage('Введите допускаемую температуру металла лопаток от 600 до 1400°С');
exit;
end;
if not trystrtofloat(edit13.text, k) then
begin
showmessage('Введите начальную температуру газа');
exit;
end
else if (strtofloat(edit13.Text)<600) or (strtofloat(edit13.Text)>2000) then
begin
showmessage('Начальная температура газа должна находиться в диапазоне от 600 до
2000°С');
exit;
end;
if not trystrtofloat(edit14.text, k) then
begin
showmessage('Введите начальную температуру газа');
exit;
end
else if (strtofloat(edit14.Text)<600) or (strtofloat(edit14.Text)>2000) then
begin
showmessage('Начальная температура газа должна находиться в диапазоне от 600 до
2000°С');
exit;
end;
if not trystrtofloat(edit15.text, k) then
begin
showmessage('Введите шаг по начальной температуре газа');
exit;
end
else if strtofloat(edit15.Text)<0.1 then
begin
showmessage('Шаг по начальной температура газа должен быть не менее 0,1°С');
exit;
end;
with Form1.StringGrid1 do
for i:=1 to RowCount-1 do
Rows[i].Clear;
PageControl1.ActivePageIndex:=1;
Ne:=strtofloat(edit1.text);
pik:=strtofloat(edit2.text);
ta:=strtofloat(edit3.text);
pa:=strtofloat(edit4.text);
lambda:=strtofloat(edit5.text);
etaks:=strtofloat(edit6.text);
etameh:=strtofloat(edit7.text);
etaeg:=strtofloat(edit8.text);
etat:=strtofloat(edit9.text);
etak:=strtofloat(edit10.text);
alfaut:=strtofloat(edit11.text);
tw:=strtofloat(edit12.text);
tcmin:=strtofloat(edit13.text);
tcmax:=strtofloat(edit14.text);
tcstep:=strtofloat(edit15.text);
if RadioButton1.Checked=True then top:=1;
if RadioButton2.Checked=True then top:=2;
z:=4;
tc:=tcmin;
tdop:=tcmin;
jmax:=1;
while tdop<=tcmax do
172
begin
jmax:=jmax+1;
tdop:=tdop+tcstep;
end;
for j:=1 to jmax-1 do
begin
nun:=0.6;
Form1.StringGrid1.Cells[10,j]:='расчет ГТ';
Form1.StringGrid1.OnMouseUp:=StringGrid1MouseUp;
GTUohl(Ne,tc,ta,pa,pik,lambda,etaks,etameh,etaeg,etat,etak,alfaut,tw,nun,
top,z,j,tb,td,htur,hkom,hgtuohl,Gtur,Gkom,Gexit,fi,etagtuohl,Btop,Qniz);
Form1.StringGrid1.Cells[1,j]:=format('%10.2f',[tc]);
Form1.StringGrid1.Cells[9,j]:=format('%10.4f',[etagtuohl]);
Form1.StringGrid1.Cells[20,j]:=format('%10.2f',[tb]);
tc:=tc+tcstep;
end;
end;
alfa0[1]:=strtofloat(edit52.text);
alfa0[2]:=strtofloat(edit53.text);
alfa0[3]:=strtofloat(edit54.text);
alfa0[4]:=strtofloat(edit55.text);
alfa0[5]:=strtofloat(edit56.text);
alfa0[6]:=strtofloat(edit57.text);
175
alfa1[1]:=strtofloat(edit58.text);
alfa1[2]:=strtofloat(edit59.text);
alfa1[3]:=strtofloat(edit60.text);
alfa1[4]:=strtofloat(edit61.text);
alfa1[5]:=strtofloat(edit62.text);
alfa1[6]:=strtofloat(edit63.text);
ro[1]:=strtofloat(edit64.text);
ro[2]:=strtofloat(edit65.text);
ro[3]:=strtofloat(edit66.text);
ro[4]:=strtofloat(edit67.text);
ro[5]:=strtofloat(edit68.text);
ro[6]:=strtofloat(edit69.text);
gvs[1]:=strtofloat(edit21.text);
gvr[1]:=strtofloat(edit22.text);
gvs[2]:=strtofloat(edit23.text);
gvr[2]:=strtofloat(edit24.text);
gvs[3]:=strtofloat(edit25.text);
gvr[3]:=strtofloat(edit26.text);
gvs[4]:=strtofloat(edit27.text);
gvr[4]:=strtofloat(edit28.text);
gvs[5]:=strtofloat(edit41.text);
gvr[5]:=strtofloat(edit42.text);
gvs[6]:=strtofloat(edit43.text);
gvr[6]:=strtofloat(edit44.text);
if ((gvs[1]+gvr[1]+gvs[2]+gvr[2]+gvs[3]+gvr[3]+gvs[4]+gvr[4]+gvs[5]+gvr[5]+
gvs[6]+gvr[6])>100.01)
{or ((gv1s+gv1r+gv2s+gv2r+gv3s+gv3r+gv4s+gv4r+gv4r+gv5s+gv5r+gv6s+gv6r)<99.99)}
then begin
showmessage('Сумма расходов охлаждающего воздуха по венцам должна составлять 100%');
exit;
end;
if RadioButton5.Checked=true then ohlazds[1]:=1;
if RadioButton6.Checked=true then ohlazds[1]:=2;
if RadioButton7.Checked=true then ohlazds[1]:=3;
if RadioButton8.Checked=true then ohlazdr[1]:=1;
if RadioButton9.Checked=true then ohlazdr[1]:=2;
if RadioButton10.Checked=true then ohlazdr[1]:=3;
if RadioButton11.Checked=true then ohlazds[2]:=1;
if RadioButton12.Checked=true then ohlazds[2]:=2;
if RadioButton13.Checked=true then ohlazds[2]:=3;
if RadioButton14.Checked=true then ohlazdr[2]:=1;
if RadioButton15.Checked=true then ohlazdr[2]:=2;
if RadioButton16.Checked=true then ohlazdr[2]:=3;
if RadioButton17.Checked=true then ohlazds[3]:=1;
if RadioButton18.Checked=true then ohlazds[3]:=2;
if RadioButton19.Checked=true then ohlazds[3]:=3;
if RadioButton20.Checked=true then ohlazdr[3]:=1;
if RadioButton21.Checked=true then ohlazdr[3]:=2;
if RadioButton22.Checked=true then ohlazdr[3]:=3;
if RadioButton23.Checked=true then ohlazds[4]:=1;
if RadioButton24.Checked=true then ohlazds[4]:=2;
if RadioButton25.Checked=true then ohlazds[4]:=3;
if RadioButton26.Checked=true then ohlazdr[4]:=1;
if RadioButton27.Checked=true then ohlazdr[4]:=2;
if RadioButton28.Checked=true then ohlazdr[4]:=3;
if RadioButton3.Checked=true then ohlazds[5]:=1;
if RadioButton4.Checked=true then ohlazds[5]:=2;
if RadioButton29.Checked=true then ohlazds[5]:=3;
if RadioButton30.Checked=true then ohlazdr[5]:=1;
if RadioButton31.Checked=true then ohlazdr[5]:=2;
if RadioButton32.Checked=true then ohlazdr[5]:=3;
if RadioButton33.Checked=true then ohlazds[6]:=1;
if RadioButton34.Checked=true then ohlazds[6]:=2;
if RadioButton35.Checked=true then ohlazds[6]:=3;
if RadioButton36.Checked=true then ohlazdr[6]:=1;
if RadioButton37.Checked=true then ohlazdr[6]:=2;
if RadioButton38.Checked=true then ohlazdr[6]:=3;
tohls[1]:=strtofloat(edit29.text);
tohlr[1]:=strtofloat(edit30.text);
tohls[2]:=strtofloat(edit31.text);
tohlr[2]:=strtofloat(edit32.text);
tohls[3]:=strtofloat(edit33.text);
tohlr[3]:=strtofloat(edit34.text);
tohls[4]:=strtofloat(edit35.text);
tohlr[4]:=strtofloat(edit36.text);
tohls[5]:=strtofloat(edit45.text);
tohlr[5]:=strtofloat(edit46.text);
tohls[6]:=strtofloat(edit47.text);
tohlr[6]:=strtofloat(edit49.text);
alfavozd:=strtofloat(edit70.text);
z:=strtoint(combobox1.Text);
with Form1.StringGrid2 do
for i:=1 to ColCount-1 do
176
Cols[i].Clear;
PageControl1.ActivePageIndex:=3;
gasturbine(true,z,Gtur,tc,p0,pk,tw,gohl,alfavozd,
gvs,gvr,tohls,tohlr,d,alfa0,alfa1,ro,ohlazds,ohlazdr,
etat2,Gkon,tkon,nun,Ntur,Gvozd);
end;
function separ(s:string):string;
var i:integer;
begin
for i:=1 to length(s) do
if (s[i]='.') or (s[i]=',') then s[i]:=decimalseparator;
separ:=s;
end;