?

Log in

No account? Create an account

Previous Entry | Next Entry

Реализован онлайн-расчет эквивалентного диаметра соединенных последовательно участков газопровода разного диаметра.
Результат расчета может быть использован при определении пропускной способности или коэффициента гидравлической эффективности газопроводов.

Ссылка на онлайн-расчет à Link.

Методика расчета:

·    Шаг первый. Рассчитывается эквивалентная длина участков МГ при условии приведения их к максимальному из имеющихся диаметров;
·    Шаг второй. Рассчитывается эквивалентный диаметр газопровода при условии приведения суммарной длины участков МГ к реальной длине газопровода.

Результат расчета может быть использован для определения пропускной способности газопровода и коэффициента гидравлической эффективности.

Используемые при расчете выражения:

Эквивалентная длина параллельных участков газопровода:
equi_01
Эквивалентный диаметр последовательных участков газопровода:
equi_02
Размерность:

Длина (L) - метр;
Диаметр (D) - метр.

Листинг (PHP):
<?php
// Расчет эквивалентного диаметра магистрального газопровода
// (последовательное соединение, до пяти участков МГ включительно)
// Внимание!
// проверки на адекватность исходных данных
// выполняются на стороне клиента!
//
header('Content-Type^ text/html; charset=utf-8');
if ($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){
if ($_POST){
// исходные данные из клиента
$l1 = $_POST['l1'];
$d1 = $_POST['d1'];
//
$l2 = $_POST['l2'];
$d2 = $_POST['d2'];
//
$l3 = $_POST['l3'];
$d3 = $_POST['d3'];
//
$l4 = $_POST['l4'];
$d4 = $_POST['d4'];
//
$l5 = $_POST['l5'];
$d5 = $_POST['d5'];
// децимальный разделитель
$l1 = str_replace(",", ".", $l1);
$d1 = str_replace(",", ".", $d1);
//
$l2 = str_replace(",", ".", $l2);
$d2 = str_replace(",", ".", $d2);
//
$l3 = str_replace(",", ".", $l3);
$d3 = str_replace(",", ".", $d3);
//
$l4 = str_replace(",", ".", $l4);
$d4 = str_replace(",", ".", $d4);
//
$l5 = str_replace(",", ".", $l5);
$d5 = str_replace(",", ".", $d5);
// обработка массивов
$DataCount = 0;
//
if($l1>0 && $d1>0) {
$DataCount = $DataCount+1;
$l[1] = $l1;
$d[1] = $d1;
} else {
$l[1] = 0;
$d[1] = 0;
}
//
if($l2>0 && $d2>0) {
$DataCount = $DataCount+1;
$l[2] = $l2;
$d[2] = $d2;
} else {
$l[2] = 0;
$d[2] = 0;
}
//
if($l3>0 && $d3>0) {
$DataCount = $DataCount+1;
$l[3] = $l3;
$d[3] = $d3;
} else {
$l[3] = 0;
$d[3] = 0;
}
//
if($l4>0 && $d4>0) {
$DataCount = $DataCount+1;
$l[4] = $l4;
$d[4] = $d4;
} else {
$l[4] = 0;
$d[4] = 0;
}
//
if($l5>0 && $d5>0) {
$DataCount = $DataCount+1;
$l[5] = $l5;
$d[5] = $d5;
} else {
$l[5] = 0;
$d[5] = 0;
}
// расчет
$dmax = 0; $lsum = 0;
// длина МГ и наибольший диаметр
for ($x=1; $x<=5; $x++) {
if($l[$x]>0 && $d[$x]>0) {
$lsum = $lsum+$l[$x];
if($d[$x]>$dmax) {
$dmax = $d[$x];
}
}
}
// приведение участков к максимальному диаметру
// эквивалентные переметры МГ по максимальному диаметру
$dle = 0;
for ($x=1; $x<=5; $x++) {
if($l[$x]>0 && $d[$x]>0) {
$nsum = exp(log($d[$x])*2.6)/exp(log($dmax)*2.6);
  $lx[$x] = $l[$x]/$nsum;
  $dle = $dle+$lx[$x];
}
}
// приведение к реальной длине участков МГ
$lde = Pow(($lsum*1000/($dle*1000/(Pow($dmax/1000, 5.2)))),  5/26)*1000;
//
if ($lde>0){
$lde = number_format($lde, 1);
$lsum = number_format($lsum, 3);
$lde = str_replace(",","",$lde);
$lde = str_replace(".",",",$lde);
$lsum = str_replace(",","",$lsum);
$lsum = str_replace(".",",",$lsum);
$resrt = '<p>Количество участков МГ: '.$DataCount.'</p>';
//
$resrt = $resrt.'<p>При длине МГ: '.$lsum.' км</p>';
//
$resrt = $resrt.'<p>Эквивалентный диаметр: '.$lde.' мм</p>';
print $resrt;
} else {
print '<p>Ошибка расчета: нулевое значение диаметра.</p>';
}
}
}
?>








Error running style: S2TIMEOUT: Timeout: 4, URL: gascount.livejournal.com/157821.html at /home/lj/src/s2/S2.pm line 531.