Эффект кавитации в гидравлических системах
Автор
# Код для построения графиков результатов моделирования из проекта cavitation_two_phase_fluid
# Описание графика:
#
# На графике показана нормированная внутренняя энергия (unorm) объема жидкости
# в поступательном механическом преобразователе (2Ф). Фазу жидкости можно
# определить, анализируя этот график: жидкость представляет собой:
#
# * жидкость в нормальном состоянии, когда -1 <= unorm < 0;
# * двухфазная смесь, когда 0 <= unorm <= 1;
# * перегретый пар, когда 1 < unorm <= 2.
#
# Когда жидкость находится в двухфазной области, значение unorm соответствует
# паросодержанию.
# Для интерполяции используем пакет Interpolations.jl
if "Interpolations" ∉ [p.name for p in values(Pkg.dependencies())] Pkg.add("Interpolations"); end
using Interpolations
# Загрузить результаты прошлого выполнения
simlog_CavitationInTwoPhaseFluid = engee.get_results();
# Функция для создания графика по результатам моделирования
function plotNormalizedInternalEnergy(simlog)
# Пример свойств жидкости (в кДж/кг)
p_TLU = [ 0.001000,0.001123,0.001261,0.001415,0.001589,0.001784,0.002003,0.002249,0.002525,0.002835,0.003183,0.003573,0.004012,0.004504,0.005057,0.005678,0.006375,0.007157,0.008036,0.009022,0.010130,0.011373,0.012769,0.014336,0.016096,0.018072,0.020290,0.022780,0.025576,0.028716,0.032240,0.036198,0.040641,0.045629,0.051230,0.057518,0.064578,0.072504,0.081403,0.091395,0.102613,0.115208,0.129349,0.145225,0.163050,0.183063,0.205533,0.230761,0.259085,0.290885,0.326589,0.366675,0.411682,0.462213,0.518946,0.582642,0.654157,0.734450,0.824598,0.925811,1.039447,1.167031,1.310274,1.471100,1.651666,1.854396,2.082008,2.337558,2.624475,2.946609,3.308282,3.714348,4.170255,4.682121,5.256815,5.902048,6.626478,7.439826,8.353007,9.378273,10.529383,11.821782,13.272813,14.901947,16.731045,18.784649,21.090318,23.678990,26.585400,29.848550,33.512226,37.625590,42.243836,47.428937,53.250467,59.786545,67.124876,75.363929,84.614262,95] # Таблица давлений (МПа)
u_sat_liq_TLU = [29.297639,36.427446,43.650294,50.968824,58.385713,65.903686,73.525516,81.254031,89.092117,97.042729,105.108887,113.293691,121.600318,130.032032,138.592187,147.284237,156.111736,165.078350,174.187857,183.444164,192.851303,202.413450,212.134922,222.020196,232.073911,242.300883,252.706111,263.294791,274.072326,285.044341,296.216691,307.595483,319.187081,330.998131,343.035571,355.306653,367.818961,380.580431,393.599373,406.884495,420.444926,434.290247,448.430516,462.876302,477.638716,492.729452,508.160822,523.945804,540.098083,556.632111,573.563154,590.907363,608.681837,626.904701,645.595189,664.773740,684.462102,704.683450,725.462519,746.825756,768.801489,791.420131,814.714398,838.719580,863.473848,889.018616,915.398973,942.664206,970.868427,1000.071351,1030.339262,1061.746232,1094.375705,1128.322551,1163.695841,1200.622640,1239.253336,1279.769366,1322.394737,1367.413889,1415.200692,1466.268923,1521.370901,1581.730341,1649.732321,1731.301972,1847.179278,2056.349481,2088.495817,2112.437417,2129.369812,2147.148508,2169.190513,2190.911232,2210.887097,2227.718653,2239.892901,2246.200687,2246.553765,2242.7635] # Таблица внутренней энергии насыщенной жидкости
u_sat_vap_TLU = [2384.488871,2386.819073,2389.179568,2391.570904,2393.993636,2396.448325,2398.935536,2401.455843,2404.009820,2406.598048,2409.221107,2411.879580,2414.574048,2417.305091,2420.073284,2422.879198,2425.723396,2428.606429,2431.528838,2434.491147,2437.493863,2440.537468,2443.622420,2446.749145,2449.918035,2453.129439,2456.383659,2459.680940,2463.021467,2466.405351,2469.832621,2473.303214,2476.816959,2480.373567,2483.972610,2487.613509,2491.295512,2495.017673,2498.778826,2502.577565,2506.412211,2510.280783,2514.180965,2518.110067,2522.064991,2526.042181,2530.037581,2534.046585,2538.063976,2542.083872,2546.099651,2550.103879,2554.088227,2558.043369,2561.958874,2565.823079,2569.622940,2573.343855,2576.969469,2580.481425,2583.859086,2587.079199,2590.115492,2592.938206,2595.513520,2597.802876,2599.762154,2601.340671,2602.479964,2603.112265,2603.158609,2602.526420,2601.106423,2598.768591,2595.356738,2590.681147,2584.508252,2576.545848,2566.421196,2553.647404,2537.569292,2517.270712,2491.402207,2457.820417,2412.685304,2347.380498,2226.485557,2056.349481,2088.495817,2112.437417,2129.369812,2147.148508,2169.190513,2190.911232,2210.887097,2227.718653,2239.892901,2246.200687,2246.553765,2242.7635] # Таблица внутренней энергии насыщенного пара
u_min = 0.0 # Минимальная внутренняя энергия
u_max = 4000.0 # Максимальная внутренняя энергия
# В реальной реализации данные извлекаются из simlog.
# Здесь мы создаем заглушки для демонстрации.
t = simlog["Translational Mechanical Converter (2P).port.u"].time # Вектор времени
u_I = simlog["Translational Mechanical Converter (2P).port.u"].value ./ 1000 # Внутренняя энергия (кДж/кг)
p_I = simlog["Translational Mechanical Converter (2P).p"].value ./ 1_000_000 # Давление (МПа)
# Вычисление нормированной внутренней энергии
# Интерполяция значений насыщения
u_sat_liq = LinearInterpolation(p_TLU, u_sat_liq_TLU, extrapolation_bc = Line())(p_I)
u_sat_vap = LinearInterpolation(p_TLU, u_sat_vap_TLU, extrapolation_bc = Line())(p_I)
# Векторизованное вычисление unorm
unorm_I = zeros(size(u_I))
# Вычисление нормированной внутренней энергии
unorm_I = zeros(size(u_I))
for i in eachindex(u_I)
if u_I[i] <= u_sat_liq[i]
# Недогретая жидкость
unorm_I[i] = (u_I[i] - u_min) / (u_sat_liq[i] - u_min) - 1
elseif u_I[i] > u_sat_liq[i] && u_I[i] < u_sat_vap[i]
# Двухфазная смесь
unorm_I[i] = (u_I[i] - u_sat_liq[i]) / (u_sat_vap[i] - u_sat_liq[i])
else # u_I[i] >= u_sat_vap[i]
# Перегретый пар
unorm_I[i] = (u_I[i] - u_max) / (u_max - u_sat_vap[i]) + 2
end
end
# Построение графика
plot(t, unorm_I, linewidth=2, xlims=(0,100))
plot!([t[1], t[end]], [0, 0], linestyle=:dash, color=:black, legend=false, grid=true, guidefont=font(8), titlefont=font(10))
xlabel!("Время (с)")
ylabel!("Нормированная внутренняя энергия")
title!("Нормированная внутренняя энергия жидкости в поршне")
annotate!(2, 0.002, text("Двухфазная смесь", 8, :left))
annotate!(2, -0.002, text("Жидкость", 8, :left))
end
# Построение графика нормированной внутренней энергии
plotNormalizedInternalEnergy(simlog_CavitationInTwoPhaseFluid)