Вычисление степени компрессора, необходимой в сверхзвуковой аэродинамической трубе

В этом примере показано, как вычислить необходимую степень компрессора в сверхзвуковой аэродинамической трубе.

Описание задачи

В этом разделе описываются проблему, которая будет решена. Это также обеспечивает необходимые уравнения и известные значения.

Вычислите, сколько степени компрессора требуется запустить фиксированную геометрию сверхзвуковая аэродинамическая труба в установившемся и запуске, чтобы симулировать условия работы Маха 2 потока на высоте 20 километров.

Экспериментальный участок является круговым с диаметром 25 сантиметров. После того, как экспериментальный участок является диффузором фиксированной области. Аэродинамическая труба использует вентилятор, чтобы отклонить дополнительную энергию, которая добавляется к системе компрессором. Поэтому вход компрессора и экспериментальный участок имеют ту же температуру застоя. Примите, что компрессор является изэнтропическим, и эффекты трения незначительны.

steadyPicture = astsswtschematic('steady');

Данная информация в проблеме:

diameter = 25/100;  % Diameter of the cross-section [m]
height   = 20e+03;    % Design altitude [m]
testMach = 2.0;     % Mach number in the test section [dimensionless]

Жидкость принята, чтобы быть воздухом, и поэтому это имеет следующие свойства.

k  = 1.4;        % Specific heat ratio [dimensionless]
cp = 1.004;     % Specific heat at constant pressure [kJ / (kg * K)]
The cross-section area of the test section is needed from the diameter.
testSectionArea = pi * (diameter)^2 / 4 ; % [m^2]

Поскольку высота проекта дана, решите для условий рейса на той высоте. Aerospace Toolbox имеет несколько функций, чтобы вычислить условия на различных высотах. Одна такая функция, atmosisa, использует Атмосферу Международного стандарта, чтобы вычислить условия рейса на левой стороне, учитывая высотный вход:

[testSectionTemp, testSectionSpeedOfSound, testSectionPressure, testSectionDensity] = atmosisa(height);

Эта функция использует следующие модули:

testSectionTemp = Static temperature in the test section        [K]
testSectionSpeedOfSound = Speed of sound in the test section    [m / s]
testSectionPressure = Static pressure in the test section       [kPa]
testSectionDensity = Density of the fluid in the test section   [kg / m^3]

Вычисление количеств застоя

Необходимо вычислить многие из застоя (общее количество) количества в экспериментальном участке. Отношения локальных статических условий к условиям застоя могут быть вычислены с flowisentropic.

[~,tempRatioIsen, presRatioIsen, ~, areaRatioIsen] = flowisentropic(k, testMach);

Все количества левой стороны являются безразмерными отношениями. Теперь мы можем использовать отношение статической температуры к температуре застоя, чтобы вычислить температуру застоя.

testSectionStagTemp = testSectionTemp / tempRatioIsen;

Оптимальное условие для установившейся операции сверхзвуковой аэродинамической трубы с диффузором фиксированной области происходит, когда нормальный шок присутствует в горловине диффузора. Для оптимального условия область горловины диффузора должна быть меньшей, чем область горловины сопла. При принятии совершенного газа с постоянными удельными теплоемкостями вычислите фактор, которым область диффузора должна быть меньшей, чем площадь сопла. Это вычисление является от упрощенной формы сохранения массового уравнения включающими общими давлениями и площадями поперечного сечения:

$$p_{t_{nozzle}} A^*_{nozzle} = p_{t_{diffuser}} A^*_{diffuser}$$

где

$$p_{t_{nozzle}} = Total\;pressure\;at\;the\;nozzle$$

$$p_{t_{diffuser}} = Total\;pressure\;at\;the\;di\!f\!f\!user$$

$$A^*_{nozzle} = Reference\;area\;for\;sonic\;flow\;at\;the\;nozzle$$

$$A^*_{diffuser} = Reference\;area\;for\;sonic\;flow\;at\;the\;di\!f\!f\!user$$

Перестройте уравнение:

$$\frac{A^*_{diffuser}}{A^*_{nozzle}} =
\frac{p_{t_{nozzle}}}{p_{t_{diffuser}}}$$

Этот пример принимает площадь горловины сопла, экспериментальный участок и область потока в горловине диффузора перед шоком, чтобы быть восходящим. Поскольку ударная волна в горловине диффузора, площадь горловины диффузора может быть рассмотрена или в восходящем направлении или в нисходящем направлении шока. Этот пример принимает площадь горловины диффузора, чтобы быть нисходящим. Поскольку восходящий поток является изэнтропическим до ударной волны, можно использовать Число Маха экспериментального участка в качестве восходящего Числа Маха. Выполнение этого позволяет вам вычислить общее отношение давления через шок и затем отношение области между соплом и областью диффузора.

Общее отношение давления:

$$stagPressRatio = \frac{p_{t_{diffuser}}}{p_{t_{nozzle}}}$$

Вычислите общее отношение давления с помощью нормальной функции шока от Aerospace Toolbox:

[~, ~, ~, ~, ~, stagPressRatio] = flownormalshock(k, testMach);

Отношение области в шоке:

$$areaRatioShock = \frac{A^*_{nozzle}}{A^*_{diffuser}}$$

У нас есть следующее выражение с помощью сохранения массы, как обсуждено ранее.

areaRatioShock = stagPressRatio;

Вычислите область диффузора:

diffuserArea = testSectionArea / (areaRatioShock * areaRatioIsen);

Поскольку площадь горловины диффузора меньше, чем область экспериментального участка, Число Маха потока должно сходиться к единице. Используя flowisentropic с отношением области как вход вычислите Число Маха только в восходящем направлении шока:

diffuserMachUpstreamOfShock = flowisentropic(k, (1 / areaRatioShock), 'sup');

Используйте flownormalshock вычислить свойства потока через ударную волну. Отметьте, здесь снова, нам только будет нужно общее отношение давления:

[~, ~, ~, ~, ~, P0] = flownormalshock(k, diffuserMachUpstreamOfShock);

Вычисление работы и степени, необходимой для установившегося случая

Работа, сделанная компрессором на единицу массы жидкости, равняется изменению энтальпии через компрессор. Из определения энтальпии вычислите определенную работу, сделанную путем знания изменения температуры и удельной теплоемкости жидкости при постоянном давлении:

$$specificWork = h_{out} - h_{in} = c_p(T_{out} - T_{in})$$

Для изэнтропического компрессора,

$$\frac{T_{out}}{T_{in}} = \left(\!\frac{p_{out}}{p_{in}}\!\right)^{\!\!\!\frac{k - 1}{k}}$$

Перестройте вышеупомянутое уравнение, чтобы решить для перепада температур. Вспомните, что температура в компрессор совпадает с температурой застоя экспериментального участка.

$$T_{out}-T_{in} = T_{in}\left[\left(\!\frac{p_{out}}{p_{in}}\!\right)^{\!\!\!\frac{k - 1}{k}} - \:1\right]$$

tempDiff = testSectionStagTemp * ((1 / P0)^((k - 1) / k) - 1); % [K]

Теперь определенная работа может быть найдена.

specificWork = cp * tempDiff; % [kJ / kg]

Требуемая степень равняется определенным рабочим временам массовый расход жидкости. Во время установившейся операции массовым расходом жидкости через экспериментальный участок дают:

$$\dot m = \rho A V = \rho A M a$$

где все количества потока являются значениями в экспериментальном участке:

$$\dot m = Mass\;flow\;rate$$

$$\rho = Density$$

$$A = Cross-sectional\;area\;of\;test\;section$$

$$V = Velocity$$

$$M = Mach\;number$$

$$a = Local\;speed\;of\;sound$$

massFlowRate = testSectionDensity * testSectionArea * testMach * testSectionSpeedOfSound; % [kg / s]

Наконец, вычислите степень, требуемую компрессором во время установившейся операции.

powerSteadyState = specificWork * massFlowRate;  % [kW]

Вычисление работы и степени, необходимой во время запуска

startupPicture = astsswtschematic('startup');

Поскольку условие запуска ударная волна находится в экспериментальном участке. Числом Маха сразу перед ударной волной является Число Маха экспериментального участка.

[~, ~, ~, ~, ~, stagPressRatioStartup] = flownormalshock(k, testMach);

Теперь вычислите определенную работу изэнтропического компрессора.

specificWorkStartup = cp * testSectionStagTemp * ((1 / stagPressRatioStartup)^((k - 1) / k) - 1); % [kJ / kg]

Затем вычислите степень, требуемую во время запуска:

powerStartup = specificWorkStartup * massFlowRate;   % [kW]

Степень, требуемая во время установившейся операции (53,1 кВт), намного ниже, чем требуемый компрессором во время запуска (97,9 кВт), Они приводят в действие требуемые результаты, представляют оптимум и условия операции худшего случая, соответственно.

power = [powerSteadyState powerStartup];
barGraph = figure('name','barGraph');
bar(power,0.1);
ylabel('Power required [kilowatts]')
set(gca,'XTickLabel',{'powerSteadyState', 'powerStartup'})

close(steadyPicture, startupPicture, barGraph)

Ссылка

[1] Джеймс, J. E. A. "газовая динамика, второй выпуск", Allyn and Bacon, Inc, Бостон, 1984.