Таблицы свойств жидкости обеспечивают основные входы для блока 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)); 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');
Рисунок открывается внутренней энергетической сеткой, зависящей от давления.