среда, 15 марта 2017 г.

Температура термодинамического равновесия газа


По сути расчета:
Выполняется расчет температуры природного газа, являющейся (при заданных значениях абсолютной плотности и давления) граничным условием для образования кристаллов гидрата.
Интерпретация результата расчета: в случае, если реальная температура газа (при заданных значениях абсолютной плотности и давления) ниже полученного результата (или равна ему), то для выбранного участка газопровода существуют условия для образования гидратов.
Основа расчета - номограмма "Условия образования гидратов для газов различной плотности" (пересчет используемых в исходных данных "килограммов" в "атмосферы" выполняется в теле расчета):

Примечание. Вторым условием образования гидратов является наличие воды в жидкой фазе.
Ссылка на онлайн-расчет:


Исходный код расчета (PHP):
<?php
// Внимание!
// проверки на адекватность исходных данных
// выполняются на стороне клиента!
//
header('Content-Type^ text/html; charset=utf-8');
if ($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){
       if ($_POST){
             // исходные данные из приложения
             $ro = $_POST['ro'];// плотность газа абсолютная, кг,м3
             $pn  = $_POST['pn'];// избыточное давление газа, кгс/см2
             $prt  = $_POST['prt'];// атмосферное давление, мм рт.ст.
             // децимальный разделитель
             $ro = str_replace(",", ".", $ro);
             $pn = str_replace(",", ".", $pn);
             $prt = str_replace(",", ".", $prt);
             // расчет
             $patm = $prt*0.001359511;// атмосферное давление из мм рт.ст. в кгс/см2
             $pabs = $pn+$patm;// абсолютноа давление, кгс/см2
             $pabs = $pabs/1.03323129;// перевод кгс/см2 в атм
             $a = $ro/1.2044;
             // Выбор участка номограммы и расчет коэффициентов полинома:
             // (переменная "a" - относительная плотность газа)
             if($pabs<5){
                    $az = -44.3123016-15.1504154*$a+31.4464703*$a*$a;
                    $bz = -25.5766296+80.1382751*$a-45.2678986*$a*$a;
                    $cz = 2.2348225-6.0446453*$a+3.3035731*$a*$a;
             } else
             if($pabs<10){
                    $az = -32.7285767+28.857151*$a-4.2857189*$a*$a;
                    $bz = -3.5314314+16.802866*$a-10.7142906*$a*$a;
                    $cz = 0.3414287-1.1628575*$a+0.714286*$a*$a;
             } else
             if($pabs<30){
                    $az = -49.3750191+101.0500412*$a-52.5000267*$a*$a;
                    $bz = 1.9349995-2.8049986*$a+1.749999*$a*$a;
                    $cz = -0.03875+0.076*$a-0.05*$a*$a;
             } else
             if($pabs<50){
                    $az = -127.1750488+329.3501282*$a-207.5000763*$a*$a;
                    $bz = 5.3587523-13.2875061*$a+8.8750038*$a*$a;
                    $cz = -0.064625+0.1672501*$a-0.1125*$a*$a;
             } else
             if($pabs<100){
                    $az = -41.534565+115.7922516*$a-67.4497757*$a*$a;
                    $bz = 0.6851823-1.283832*$a+0.8674625*$a*$a;
                    $cz = -0.0038662+0.0087374*$a-0.0059673*$a*$a;
             } else {
                    $az = -3.466677+34.1000252*$a-18.3333473*$a*$a;
                    $bz = 0.0695+0.0949999*$a-0.0499999*$a*$a;
                    $cz = -2.33e-5-0.00058*$a+0.0003333*$a*$a;
             }
             // Температура термодинамического равновесия:
             // (переменная "pabs" - абсолютная плотность газа)
             $thydro = $az+$bz*$pabs+$cz*$pabs*$pabs;
             //
             $thydro = number_format($thydro, 1);
             $thydro = str_replace(",","",$thydro);
             $thydro = str_replace(".",",",$thydro);
             print '<p>Температура термодинамического равновесия, по Цельсию: '.$thydro.'</p>';
       }
}
?>