exponenta event banner

Создание вручную таблиц свойств жидкости

Таблицы свойств жидкости

Таблицы свойств текучей среды предоставляют основные входные данные для блока двухфазных свойств текучей среды (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));
end
Этот код вызывает две функции, записанные для создания примерных данных. Перед использованием этого кода в реальном приложении необходимо заменить функции эквивалентными выражениями, способными получать доступ к реальным данным. Необходимо заменить следующие функции:

  • saturatedLiquidInternalEnergy

  • 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'); 

Откроется рисунок с внутренней энергосистемой, зависящей от давления.