Таблицы свойств жидкости обеспечивают основные входы для блока Two-Phase Fluid Properties (2P). Если у вас установлено программное обеспечение REFPROP Национального института стандартов и технологий, можно автоматически сгенерировать эти таблицы с помощью twoPhaseFluidTables функция. Если вы получаете свойства жидкости из другого источника, такого как программное обеспечение CoolProp, можно все еще сгенерировать таблицы с помощью MATLAB® скрипт. В этом руководстве показано, как создать скрипт для генерации таблиц температуры жидкости.
Таблицы должны обеспечивать свойства жидкости при дискретных давлениях и нормализованных внутренних энергиях. Давления должны соответствовать столбцам таблицы, а нормированные внутренние энергии - строкам таблицы. Установка давления и нормированной внутренней энергии как независимых переменных позволяет вам задать таблицы свойств жидкости и паровой фазы на отдельных прямоугольных сетках с помощью матриц MATLAB.
Рисунок показывает два свойства жидкости решетки во внутреннем энергетическом пространстве (слева) и внутреннем энергетическом пространстве (справа), нормализованном давлением. Если вы получаете таблицы свойств жидкости на внутренней энергетической сетке, относящейся к давлению, вы должны преобразовать эту сетку в ее нормированный к давлению внутренний энергетический эквивалент. В этом руководстве это преобразование обрабатывается созданным вами скриптом MATLAB.

Скрипт MATLAB, который вы создаете в этом руководстве, выполняет следующие задачи:
Задайте критерии таблицы свойств, включая размерности и внутреннюю энергетическую область, зависящую от давления.
Создайте прямоугольные решетки в нормированном давлением внутреннем энергетическом пространстве.
Сопоставьте сетки с внутренним энергетическим пространством, зависящим от давления.
Получите свойства жидкости на внутренних энергетических сетках, относящихся к давлению.
Вы должны получить данные о свойствах жидкости во внутреннем энергетическом пространстве, зависящем от давления, например, путем прямого вычисления, из собственной базы данных или из стороннего источника. В этом руководстве вы создаете четыре функции MATLAB, чтобы предоставить пример данных о свойствах. В реальном приложении необходимо заменить эти функции эквивалентными функциями, записанными для доступа к данным о реальном свойстве.
Создайте следующие функции MATLAB. Эти функции предоставляют данные о свойствах примера, которые вы используете в этом руководстве. Убедитесь, что файлы функции указаны в пути MATLAB. Используйте имена функции и код, показанные:
Имя - liquidTemperature
function T = liquidTemperature(u, p) % Returns artificial temperature data as a function % of specific internal energy and pressure. T = 300 + 0.2*u - 0.08*p;
Имя - vaporTemperature
function T = vaporTemperature(u, p) % Returns artificial temperature data as a function % of specific internal energy and pressure. T = -1000 + 0.6*u + 5*p;
Имя - saturatedLiquidInternalEnergy
function u = saturatedLiquidInternalEnergy(p) % Returns artificial data for saturated liquid specific % internal energy as a function of pressure. u = sqrt(p)*400 + 150;
Имя - saturatedVaporInternalEnergy
function u = saturatedVaporInternalEnergy(p) % Returns artificial data for saturated vapor specific % internal energy as a function of pressure. u = -3*p.^2 + 40*p + 2500;
Запустите новый скрипт MATLAB. Сохраните скрипт в той же папке, что и функции MATLAB, которые вы создали, чтобы сгенерировать примеры данных о свойствах жидкости. В скрипте задайте критерии для таблиц свойств. Выполните это путем ввода следующего кода для размерностей таблицы и внутренних энергетических областей значений, относящихся к давлению:
% Number of rows in the liquid property tables mLiquid = 25; % Number of rows in the vapor property tables mVapor = 25; % Number of columns in the liquid and vapor property tables n = 60; % Minimum specific internal energy, kJ/kg uMin = 30; % Maximum specific internal energy, kJ/kg uMax = 4000; % Minimum pressure, MPa pMin = 0.01; % Maximum pressure, MPa pMax = 15; % Store minimum and maximum values in structure fluidTables fluidTables.uMin = uMin; fluidTables.uMax = uMax; fluidTables.pMin = pMin; fluidTables.pMax = pMax;
Задайте давление и нормированные внутренние энергетические векторы для сетки. Эти векторы обеспечивают дискретное давление и нормированные значения внутренней энергии, сопоставленные с каждой точкой решетки. Вектор давления логарифмически распределен из-за широкой области значений давления, рассматриваемого в этом примере. Однако можно использовать любой тип интервалов, подходящих для данных. В скрипте MATLAB добавьте этот код:
% Pressure vector, logarithmically spaced fluidTables.p = logspace(log10(pMin), log10(pMax), n); % Normalized internal energy vectors, linearly spaced fluidTables.liquid.unorm = linspace(-1, 0, mLiquid)'; fluidTables.vapor.unorm = linspace(1, 2, mVapor)';
Получите относительные внутренние энергии насыщенной жидкости и пара как функции давления. Внутренние энергии насыщения позволяют вам сопоставить нормированные внутренние векторы энергии с эквивалентными векторами в определенном внутреннем энергетическом пространстве. В скрипте MATLAB добавьте этот код:
% Initialize the saturation internal energies of the liquid and vapor phases
fluidTables.liquid.u_sat = zeros(1, n);
fluidTables.vapor.u_sat = zeros(1, n);
% Obtain the saturation internal energies at the pressure vector values
for j = 1 : n
fluidTables.liquid.u_sat(j) = saturatedLiquidInternalEnergy(fluidTables.p(j));
fluidTables.vapor.u_sat(j) = saturatedVaporInternalEnergy(fluidTables.p(j));
endsaturatedLiquidInternalEnergy
saturatedVaporInternalEnergy
Сопоставьте нормированные внутренние энергетические векторы с эквивалентными специфическими внутренними энергетическими векторами. В скрипте MATLAB добавьте этот код:
% Map pressure-specific internal energy grid onto % pressure-normalized internal energy space fluidTables.liquid.u = (fluidTables.liquid.unorm + 1)*... (fluidTables.liquid.u_sat - uMin) + uMin; fluidTables.vapor.u = (fluidTables.vapor.unorm - 2)*... (uMax - fluidTables.vapor.u_sat) + uMax;
Теперь можно получить свойства жидкости в каждой точке сетки. Следующий код показывает, как сгенерировать таблицы температур для жидкой и паровой фаз. Используйте аналогичный подход, чтобы сгенерировать оставшиеся таблицы свойств жидкости. В скрипте MATLAB добавьте этот код:
% Obtain temperature tables for the liquid and vapor phases
for j = 1 : n
for i = 1 : mLiquid
fluidTables.liquid.T(i,j) = ...
liquidTemperature(fluidTables.liquid.u(i,j), fluidTables.p(j));
end
for i = 1 : mVapor
fluidTables.vapor.T(i,j) = ...
vaporTemperature(fluidTables.vapor.u(i,j), fluidTables.p(j));
end
endЭтот код вызывает две функции, записанные для генерации примерных данных. Перед использованием этого кода в реальном приложении необходимо заменить функции эквивалентными выражениями, способными получить доступ к реальным данным. Необходимо заменить следующие функции:
liquidTemperature
vaporTemperature
Чтобы просмотреть сгенерированные таблицы температур, сначала запустите скрипт. Затем в командной строке MATLAB введите fluidTables. MATLAB перечисляет содержимое fluidTables массив структур.
fluidTables =
uMin: 30
uMax: 4000
pMin: 0.0100
pMax: 15
p: [1x20 double]
liquid: [1x1 struct]
vapor: [1x1 struct]Список таблиц свойств, хранящихся в liquidв командной строке MATLAB введите fluidTables.liquid.
305.9992 305.9988 305.9983 305.9975 ... 309.5548 309.7430 309.9711 310.2475 ... 313.1103 313.4872 313.9440 314.4976 ... 316.6659 317.2314 317.9169 318.747 ... ...
Чтобы визуализировать исходную сетку в нормированном давлением внутреннем энергетическом пространстве, в командной строке MATLAB введите этот код:
% Define p and unorm matrices with the grid
% point coordinates
pLiquid = repmat(fluidTables.p, mLiquid, 1);
pVapor = repmat(fluidTables.p, mVapor, 1);
unormLiquid = repmat(fluidTables.liquid.unorm, 1, n);
unormVapor = repmat(fluidTables.vapor.unorm, 1, n);
% Plot grid
figure;
hold on;
plot(unormLiquid, pLiquid, 'b.');
plot(unormVapor, pVapor, 'b.');
plot(zeros(1, n), fluidTables.p, 'k-');
plot(ones(1, n), fluidTables.p, 'k-');
hold off;
set(gca, 'yscale', 'log');
xlabel('Normalized Internal Energy');
ylabel('Pressure');
title('Grid in Normalized Internal Energy');Рисунок открывается нормированной давлением внутренней энергетической сеткой.

Чтобы визуализировать преобразованную сетку во внутреннем энергетическом пространстве, зависящем от давления, в командной строке MATLAB введите этот код:
% Define horizontal and vertical axes
% Plot grid
figure;
hold on;
plot(fluidTables.liquid.u, pLiquid, 'b.');
plot(fluidTables.vapor.u, pVapor, 'b.');
plot(fluidtables.liquid.u_sat, fluidTables.p, 'k-');
plot(fluidtables.vapor.u_sat, fluidTables.p, 'k-');
hold off;
set(gca, 'yscale', 'log');
xlabel('Specific Internal Energy');
ylabel('Pressure');
title('Grid in Specific Internal Energy'); Рисунок открывается внутренней энергетической сеткой, зависящей от давления.
