<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Программы расчета &#8212; Мир Климата и Холода</title>
	<atom:link href="https://mir-klimata.info/programmy-rascheta/feed/" rel="self" type="application/rss+xml" />
	<link>https://mir-klimata.info</link>
	<description></description>
	<lastBuildDate>Wed, 04 Mar 2026 13:41:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.3</generator>
	<item>
		<title>Проверка сечения воздуховодов</title>
		<link>https://mir-klimata.info/proverka-secheniya-vozduhovodov/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Wed, 04 Mar 2026 13:38:16 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=44669</guid>

					<description><![CDATA[Проверка сечения воздуховодов.xls]]></description>
										<content:encoded><![CDATA[<p><a href="https://hvac-school.ru/wp-content/uploads/2026/02/Proverka-secheniya-vozduhovodov.xls" rel="nofollow noopener" target="_blank">Проверка сечения воздуховодов.xls</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Что такое воздухообмен и кратность воздухообмена. Расчёт вентиляции в помещениях</title>
		<link>https://mir-klimata.info/chto-takoe-vozduhoobmen-i-kratnost-vozduhoobmena-raschjot-ventilyacii-v-pomeshheniyah/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 14:19:19 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=32766</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
	<style>
		label {display: block; float:left; padding: 2px 10px 0 0;}
		input[type="number"] {width:100px; }
		.tip {font-size: smaller; color: #aaa;}
		
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}
	</style>
	<table>
		<tr>
			<th colspan=2>Онлайн-расчет воздухообмена по людям</th>
		</tr>
		<tr>
			<td><label for='Post'>Количество постоянных рабочих мест:<br><span class='tip'>Более 2 часов непрерывно</span></label></td>
			<td><input type='number' id='Post' onkeyup="recount_people()" onmouseup="recount_people()" value='5' step='1' min='0'/> чел.</td>
		</tr>
		<tr>
			<td><label for='Vrem'>Количество посетителей:<br><span class='tip'>Менее 2 часов непрерывно</span></label></td>
			<td><input type='number' id='Vrem' onkeyup="recount_people()" onmouseup="recount_people()" value='2' step='1' min='0'/> чел.</td>
		</tr>
		<tr>
			<td><label for='Sport'>Количество спортсменов:</label></td>
			<td><input type='number' id='Sport' onkeyup="recount_people()" onmouseup="recount_people()" value='0' step='1' min='0'/> чел.</td>
		</tr>
		<tr>
			<td>Расход воздуха:</td>
			<td align=center><span id='Flow_people'></span> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2>&nbsp;</td>
		</tr>

	<script>
		function recount_people() {
			Post = document.getElementById('Post').value;
			Vrem = document.getElementById('Vrem').value;
			Sport = document.getElementById('Sport').value;

		    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_vent_flow', {Post : Post, Vrem : Vrem, Sport : Sport, ajax : ajax}, function(ret){
                document.getElementById('Flow_people').innerHTML = ret;
            });
		}
		recount_people();
	</script>

		<tr>
			<th colspan=2>Онлайн-расчет воздухообмена по кратностям</th>
		</tr>
		<tr>
			<td><label for='V'>Объем помещения:</label></td>
			<td><input type='number' id='V' onkeyup="recount_krat()" onmouseup="recount_krat()" value='150' step='10' min='0'/> м<sup>3</sup></td>
		</tr>
		<tr>
			<td><label for='Krat'>Кратность:</label></td>
			<td><input type='number' id='Krat' onkeyup="recount_krat()" onmouseup="recount_krat()" value='3' step='0.1' min='0'/> 1/ч</td>
		</tr>
		<tr>
			<td>Расход воздуха:</td>
			<td align=center><span id='Flow_krat'></span> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2>&nbsp;</td>
		</tr>

	<script>
		function recount_krat() {
			V = document.getElementById('V').value;
			Krat = document.getElementById('Krat').value;

		    ajax=2;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_vent_flow', {V : V, Krat : Krat, ajax : ajax}, function(ret){
                document.getElementById('Flow_krat').innerHTML = ret;
            });
		}
		recount_krat();
	</script>

		<tr>
			<th colspan=2>Онлайн-расчет воздухообмена на удаление тепла</th>
		</tr>
		<tr>
			<td><label for='Q'>Тепловыделение:</label></td>
			<td><input type='number' id='Q' onkeyup="recount_teplo()" onmouseup="recount_teplo()" value='5' step='0.5' min='0'/> кВт</td>
		</tr>
		<tr>
			<td><label for='Tin'>Температура в помещении:</label></td>
			<td><input type='number' id='Tin' onkeyup="recount_teplo()" onmouseup="recount_teplo()" value='22' step='1'/> °C</td>
		</tr>
		<tr>
			<td><label for='Tsup'>Температура приточного воздуха:</label></td>
			<td><input type='number' id='Tsup' onkeyup="recount_teplo()" onmouseup="recount_teplo()" value='16' step='1'/> °C</td>
		</tr>
		<tr>
			<td>Расход воздуха:</td>
			<td align=center><span id='Flow_teplo'></span> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2><span id='Warn_teplo' style='color: #f00; font-size: smaller;'></span>&nbsp;</td>
		</tr>

	<script>
		function recount_teplo() {
			Q = document.getElementById('Q').value;
			Tin = document.getElementById('Tin').value;
			Tsup = document.getElementById('Tsup').value;

		    ajax=3;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_vent_flow', {Q : Q, Tin : Tin, Tsup : Tsup, ajax : ajax}, function(ret){
                document.getElementById('Flow_teplo').innerHTML = ret;
                document.getElementById('Warn_teplo').innerHTML = (ret=='–') ? "Температура приточного воздуха должна быть ниже внутреннего" : "";
            });
		}
		recount_teplo();
	</script>

		<tr>
			<th colspan=2>Онлайн-расчет воздухообмена на удаление влаги</th>
		</tr>
		<tr>
			<td><label for='W'>Влаговыделение:</label></td>
			<td><input type='number' id='W' onkeyup="recount_vlaga()" onmouseup="recount_vlaga()" value='500' step='0.5' min='0'/> г/ч</td>
		</tr>
		<tr>
			<td><label for='Win'>Влагосодержание воздуха в помещении:</label></td>
			<td><input type='number' id='Win' onkeyup="recount_vlaga()" onmouseup="recount_vlaga()" value='12' step='0.1'/> г/кг</td>
		</tr>
		<tr>
			<td><label for='Wsup'>Влагосодержание приточного воздуха:</label></td>
			<td><input type='number' id='Wsup' onkeyup="recount_vlaga()" onmouseup="recount_vlaga()" value='10' step='0.1'/> г/кг</td>
		</tr>
		<tr>
			<td>Расход воздуха:</td>
			<td align=center><span id='Flow_vlaga'></span> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2><span id='Warn_vlaga' style='color: #f00; font-size: smaller;'></span>&nbsp;</td>
		</tr>

	<script>
		function recount_vlaga() {
			W = document.getElementById('W').value;
			Win = document.getElementById('Win').value;
			Wsup = document.getElementById('Wsup').value;

		    ajax=4;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_vent_flow', {W : W, Win : Win, Wsup : Wsup, ajax : ajax}, function(ret){
                document.getElementById('Flow_vlaga').innerHTML = ret;
                document.getElementById('Warn_vlaga').innerHTML = (ret=='–') ? "Влагосодержание приточного воздуха должно быть ниже внутреннего" : "";
            });
		}
		recount_vlaga();
	</script>

		<tr>
			<th colspan=2>Онлайн-расчет воздухообмена на удаление вредностей</th>
		</tr>
		<tr>
			<td><label for='Type'>Вредное вещество:</label></td>
			<td><select id='Type' onchange="document.getElementById('PDK').value = $('#Type').val(); recount_vred()">
				<option value='9000'>CO<sub>2</sub> (Углекисный газ)</option>
				<option value='20'>CO (Оксид углерода)</option>
				<option value='2'>NO<sub>2</sub> (Диоксид азота)</option>
				<option value='5'>NO (Оксиды азота)</option>
				<option value='10'>SO<sub>2</sub> (Диоксид серы)</option>
				<option value='20'>Аммиак</option>
				<option value='1'>Хлор</option>
				<option value='5'>Фенол/Бензол</option>
			</select></td>
		</tr>
		<tr>
			<td><label for='Speed'>Скорость выделения вредности в помещении:</label></td>
			<td><input type='number' id='Speed' onkeyup="recount_vred()" onmouseup="recount_vred()" value='100' step='1' min='0'/> мг/ч</td>
		</tr>
		<tr>
			<td><label for='PDK'>Предельно допустимая концентрация (ПДК):<br><span class='tip'>Меняется при выборе вещества или задайте вашу ПДК</span></label></td>
			<td><input type='number' id='PDK' onkeyup="recount_vred()" onmouseup="recount_vred()" value='3' step='0.1' min='0'/> мг/м<sup>3</sup></td>
		</tr>
		<tr>
			<td><label for='Fon'>Концентрация в наружном воздухе:<br><span class='tip'>Фоновая концентрация в окружающей среде</span></label></td>
			<td><input type='number' id='Fon' onkeyup="recount_vred()" onmouseup="recount_vred()" value='0.2' step='0.1' min='0'/> мг/м<sup>3</sup></td>
		</tr>
		<tr>
			<td>Расход воздуха:</td>
			<td align=center><span id='Flow_vred'></span> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2><span id='Warn_vred' style='color: #f00; font-size: smaller;'></span>&nbsp;</td>
		</tr>

	<script>
		function recount_vred() {
			PDK = document.getElementById('PDK').value;
			Fon = document.getElementById('Fon').value;
			Speed = document.getElementById('Speed').value;

		    ajax=5;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_vent_flow', {PDK : PDK, Fon : Fon, Speed : Speed, ajax : ajax}, function(ret){
                document.getElementById('Flow_vred').innerHTML = ret;
                document.getElementById('Warn_vred').innerHTML = (ret=='–') ? "Фоновая концентрация должна быть ниже ПДК" : "";
            });
		}
		recount_vred();
	</script></table>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет воздуховодов систем вентиляции: алгоритм, таблица, онлайн-калькулятор</title>
		<link>https://mir-klimata.info/raschet-vozduhovodov-sistem-ventilyacii-algoritm-tablica-onlajn-kalkulyator/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 14:17:49 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=32764</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
	<table><tbody>
		<tr>
			<th colspan=5>Исходные данные</th>
		</tr>
		<tr>
			<td><label for='G1'>Расход воздуха:</label></td>
			<td colspan=4><input type='number' id='G1' onkeyup="recount_section()" onmouseup="recount_section()" value='1000' step='100'/> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td><label for='v1'>Максимальная скорость воздуха:</label></td>
			<td colspan=4><input type='number' id='v1' onkeyup="recount_section()" onmouseup="recount_section()" value='4' step='0.1'/> м/с</td>
		</tr>
		<tr>
			<td colspan=5>&nbsp;</td>
		</tr>
		<tr>
			<th colspan=5>Результаты расчета</th>
		</tr>
		<tr>
			<th>Параметр</th>
			<th>Сечение</th>
			<th>Скорость</th>
			<th>D<sub>экв</sub></th>
			<th>Потери</th>
		</tr>
		<tr>
			<td>Сечение круглого воздуховода:</td>
			<td align=center><span id='sect_circ'></span></td>
			<td align=center><span id='sect_circ_spd'></span></td>
			<td align=center><span id='sect_circ_ekv'></span></td>
			<td align=center><span id='sect_circ_res'></span></td>
		</tr>
		<tr>
			<td>Рекомендуемые сечения прямоугольных воздуховодов:</td>
			<td align=center><span id='sect_rect'></span></td>
			<td align=center><span id='sect_rect_spd'></span></td>
			<td align=center><span id='sect_rect_ekv'></span></td>
			<td align=center><span id='sect_rect_res'></span></td>
		</tr>
		<tr id='dopust'>
			<td>Допустимые сечения прямоугольных воздуховодов:</td>
			<td align=center><span id='sect_rect1'></span></td>
			<td align=center><span id='sect_rect_spd1'></span></td>
			<td align=center><span id='sect_rect_ekv1'></span></td>
			<td align=center><span id='sect_rect_res1'></span></td>
		</tr>
	</tbody></table>

	<script>
		function recount_section() {
			G1 = document.getElementById('G1').value;
			v1 = document.getElementById('v1').value;

		    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_duck_section', {G1 : G1, v1 : v1, ajax : ajax}, function(ret){
                ret1=ret.split("//");
                
    			document.getElementById('sect_circ').innerHTML = ret1[0];
    			document.getElementById('sect_circ_spd').innerHTML = ret1[1];
    			document.getElementById('sect_circ_ekv').innerHTML = ret1[2];
    			document.getElementById('sect_circ_res').innerHTML = ret1[3];
    			
    			document.getElementById('sect_rect').innerHTML = ret1[4];
    			document.getElementById('sect_rect_spd').innerHTML = ret1[5];
    			document.getElementById('sect_rect_ekv').innerHTML = ret1[6];
    			document.getElementById('sect_rect_res').innerHTML = ret1[7];
    			document.getElementById('sect_rect1').innerHTML = ret1[8];
    			document.getElementById('sect_rect_spd1').innerHTML = ret1[9];
    			document.getElementById('sect_rect_ekv1').innerHTML = ret1[10];
    			document.getElementById('sect_rect_res1').innerHTML = ret1[11];
			
            });
		}
		recount_section();
	</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчёт скорости воздуха в воздуховоде</title>
		<link>https://mir-klimata.info/raschjot-skorosti-vozduha-v-vozduhovode/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 14:14:28 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=32762</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
	<table><tbody>
		<tr>
			<th colspan=2>Для круглых воздуховодов</th>
		</tr>
		<tr>
			<td><label for='G1'>Расход воздуха:</label></td>
			<td><input type='number' id='G1' onkeyup="recount_speed()" onmouseup="recount_speed()" value='600' step='100'/> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td><label for='D1'>Диаметр воздуховода:</label></td>
			<td><input type='number' id='D1' onkeyup="recount_speed()" onmouseup="recount_speed()" value='250' step='10'/> мм</td>
		</tr>
		<tr>
			<td>Скорость воздуха:</td>
			<td align=center><span id='speed1'></span></td>
		</tr>
		<tr>
			<td>Потери давления:</td>
			<td align=center><span id='res1'></span></td>
		</tr>
		<tr>
			<td colspan=2>&nbsp;</td>
		</tr>
		<tr>
			<th colspan=2>Для прямоугольных воздуховодов</th>
		</tr>
		<tr>
			<td><label for='G2'>Расход воздуха:</label></td>
			<td><input type='number' id='G2' onkeyup="recount_speed()" onmouseup="recount_speed()" value='2000' step='100'/> м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td><label for='A2'>Ширина:</label></td>
			<td><input type='number' id='A2' onkeyup="recount_speed()" onmouseup="recount_speed()" value='500' step='50'/> мм</td>
		</tr>
		<tr>
			<td><label for='B2'>Высота:</label></td>
			<td><input type='number' id='B2' onkeyup="recount_speed()" onmouseup="recount_speed()" value='300' step='50'/> мм</td>
		</tr>
		<tr>
			<td>Скорость воздуха:</td>
			<td align=center><span id='speed2'></span></td>
		</tr>
		<tr>
			<td>Потери давления:</td>
			<td align=center><span id='res2'></span></td>
		</tr>
	</tbody></table>

	<script>
		function recount_speed() {
			G1 = document.getElementById('G1').value;
			D1 = document.getElementById('D1').value;
			G2 = document.getElementById('G2').value;
			A2 = document.getElementById('A2').value;
			B2 = document.getElementById('B2').value;

		    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_air_speed', {G1 : G1, D1 : D1, G2 : G2, A2 : A2, B2 : B2, ajax : ajax}, function(ret){
                ret1=ret.split("//");
                
    			document.getElementById('speed1').innerHTML = ret1[0];
    			document.getElementById('res1').innerHTML = ret1[1];
    			document.getElementById('speed2').innerHTML = ret1[2];
    			document.getElementById('res2').innerHTML = ret1[3];

            });
		}
		recount_speed();
	</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет площади воздуховодов</title>
		<link>https://mir-klimata.info/raschet-ploshhadi-vozduhovodov/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 14:09:49 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=32760</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
	<table><tbody>
		<tr>
			<th colspan=2>Площадь круглого воздуховода</th>
		</tr>
		<tr>
			<td><label for='D1'>Диаметр:</label></td>
			<td><input type='number' id='D1' onkeyup="recount_square()" onmouseup="recount_square()" value='200' step='10'/> мм</td>
		</tr>
		<tr>
			<td><label for='L1'>Длина:</label></td>
			<td><input type='number' id='L1' onkeyup="recount_square()" onmouseup="recount_square()" value='10' step='1'/> м</td>
		</tr>
		<tr>
			<td>Площадь поверхности:</td>
			<td align=center><span id='square1'></span></td>
		</tr>
		<tr>
			<td colspan=2>&nbsp;</td>
		</tr>
		<tr>
			<th colspan=2>Площадь прямоугольного воздуховода</th>
		</tr>
		<tr>
			<td><label for='A2'>Ширина:</label></td>
			<td><input type='number' id='A2' onkeyup="recount_square()" onmouseup="recount_square()" value='600' step='50'/> мм</td>
		</tr>
		<tr>
			<td><label for='B2'>Высота:</label></td>
			<td><input type='number' id='B2' onkeyup="recount_square()" onmouseup="recount_square()" value='300' step='50'/> мм</td>
		</tr>
		<tr>
			<td><label for='L2'>Длина:</label></td>
			<td><input type='number' id='L2' onkeyup="recount_square()" onmouseup="recount_square()" value='10' step='1'/> м</td>
		</tr>
		<tr>
			<td>Площадь поверхности:</td>
			<td align=center><span id='square2'></span></td>
		</tr>
	</tbody></table>
	<script>
		function recount_square() {
			D1 = document.getElementById('D1').value;
			L1 = document.getElementById('L1').value;

			A2 = document.getElementById('A2').value;
			B2 = document.getElementById('B2').value;
			L2 = document.getElementById('L2').value;

		    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_duck_square', {D1 : D1, L1 : L1, A2 : A2, B2 : B2, L2 : L2, ajax : ajax}, function(ret){
                ret1=ret.split(";");
                document.getElementById('square1').innerHTML = ret1[0];
                document.getElementById('square2').innerHTML = ret1[1];
            });
		}
		recount_square();
	</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет смеси влажного воздуха на ID-диаграмме онлайн</title>
		<link>https://mir-klimata.info/raschet-smesi-vlazhnogo-vozduha-na-id-diagramme-onlajn/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Mon, 18 Oct 2021 08:37:19 +0000</pubDate>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[Программы расчета]]></category>
		<category><![CDATA[Теория и практика]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=31099</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
    <script language="javascript" type="text/javascript" src="/wp-content/themes/Newspaper/flot/jquery.flot.js"></script>

    <style>
		input[type="number"] {width: 70px;}
		.dot {border-bottom: 1px dotted black; font-weight:normal; font-size:smaller; float:right;}
		.dot:hover {cursor:pointer;}
		.bez_radio {margin-left:25px;}

		table {margin: 0 auto};
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}

        .demo-container {
        	box-sizing: border-box;
        	width: 100%;
        	height: 800px;
        	padding: 20px 25px 15px 10px;
        	margin: 15px auto 30px auto;
        	border: 1px solid #ddd;
        	background: linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
        	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        	-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .demo-placeholder {
        	background: #fff;
        	background: url('/images/logo-mkhwh-300x95.png') center repeat-y;
        	background-size: contain;
        	width: 100%;
        	height: 100%;
        	font-size: 14px;
        	line-height: 1.2em;
        }
        
        @media (max-width:767px) {
            table td { padding: 0px; }
            table { font-size: 10px; }
            .demo-placeholder { font-size: 10px; }
            .demo-container { height: 500px; padding: 3px; }
            input[type="number"] { width: 50px; }
        }
    
    </style>
	
<script>
    
    jQuery (function() {

        TmaxDef=40;
        TminDef=-20;
        DmaxDef=30;
        DminDef=0;
        TmaxMax=100;
        TminMin=-100;
        DmaxMax=100;
        DminMin=0;
    
        chk_value1=2;
        chk_value2=2;
        function pt (t) {
            if (t>=0) return 6.1121*Math.exp((18.678-t/234.5)*t/(257.14+t*1))*100;
            else return 6.1115*Math.exp((23.036-t/333.7)*t/(279.82+t*1))*100;
        }
        function tdfi (d1,fi1) {
            var tp_tmin=TminMin;
            var tp_tmax=TmaxMax;
            tp_t=(tp_tmin+tp_tmax)/2;
            for (var tp_i=1;tp_i<=20;tp_i++) {
                fi11=d1*101375/(622+d1*1)/pt(tp_t)*100;
                tp_t1=tp_t;
                if (fi11<fi1) {tp_t=(tp_t+tp_tmin)/2; tp_tmax=tp_t1;}
                if (fi11>fi1) {tp_t=(tp_t+tp_tmax)/2; tp_tmin=tp_t1;}
                if (fi11==fi1) return tp_t;
            }
            return tp_t;
        }
        function dp (p) {
            return 622*p/(101325-p*1);
        }
        
        jQuery("[name=type]").click(function() {
            jQuery("#N2").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#i2").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#t2").prop('disabled', !jQuery("#ad").is(':checked'));
            jQuery("#N2_status").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#i2_status").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#t2_status").prop('disabled', !jQuery("#ad").is(':checked'));
        });
        jQuery(".point1, .point2").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) {
                document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
                jQuery('#'+jQuery(this).attr("id")+'_status').trigger('click');
                document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            } else {
                recount_id();
            }
        });
        jQuery(".par").on('input', function() {
            recount_id();
        });
        jQuery(".point1_status, .point2_status").click(function(){
            if(jQuery(this).attr("class")=="point1_status") {
                chk_value=chk_value1;
                var arr=['d1','p1','tr1']; var arr1=[];
                arr1['d1']='влагосодержание'; arr1['p1']='парциальное давление'; arr1['tr1']='точку росы';
            } else if(jQuery(this).attr("class")=="point2_status") {
                chk_value=chk_value2;
                var arr=['d2','p2','tr2']; var arr1=[];
                arr1['d2']='влагосодержание'; arr1['p2']='парциальное давление'; arr1['tr2']='точку росы';
            }
            ide0=jQuery(this).attr("id").replace('_status','');
            e1=document.querySelector('input.'+jQuery(this).attr("class")+'[value="c'+(chk_value-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input.'+jQuery(this).attr("class")+'[value="c'+chk_value+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            e3=document.getElementById(ide0+'_status');
//            alert(ide1+idi1+ide2+idi2+ide0);
            if (e3.checked==false) {
                e3.checked=true;
                alert ('Нельзя снимать галочки. Просто выберите другие параметры')
            } else if ((arr.indexOf(ide0)!=-1) && (arr.indexOf(ide2)!=-1)) {
                e3.checked=false;
                alert ('Нельзя выбрать '+arr1[ide2]+' и '+arr1[ide0]+', так как это взаимосвязанные параметры')
            } else {
                e1.checked=false;
                chk_value++;
                e3.value='c'+chk_value;
                e3.checked=true;
                
                if (arr.indexOf(ide0)!=-1) {
                    for (var j=0;j<=2;j++) {
                        if (ide0!=arr[j]) {
                            document.getElementById(arr[j]+'_status').disabled=true;
                            document.getElementById(arr[j]).disabled=true;
                        }
                    }
                } else {
                    for (var j=0;j<=2;j++) {
                        document.getElementById(arr[j]+'_status').disabled=false;
                        document.getElementById(arr[j]).disabled=false;
                    }
                }
            }
            if(jQuery(this).attr("class")=="point1_status") chk_value1=chk_value;
            if(jQuery(this).attr("class")=="point2_status") chk_value2=chk_value;
            recount_id();
        });
        function recount_id() {
            e1=document.querySelector('input.point1_status[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input.point1_status[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            idi1=document.getElementById(ide1).value;
            idi2=document.getElementById(ide2).value;
            e3=document.querySelector('input.point2_status[value="c'+(chk_value2-1)+'"]');
            ide3=e3.getAttribute("id").replace('_status','');
            e4=document.querySelector('input.point2_status[value="c'+chk_value2+'"]');
            ide4=e4.getAttribute("id").replace('_status','');
            idi3=document.getElementById(ide3).value;
            idi4=document.getElementById(ide4).value;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_mix', {ide1:ide1, ide2:ide2, idi1:idi1, idi2:idi2, ide3:ide3, ide4:ide4, idi3:idi3, idi4:idi4, G1:jQuery("#G1").val(), G2:jQuery("#G2").val(), ajax:1}, function(ret){
                ret1=ret.split("|");

                jQuery('#t1').val(ret1[0]);  t1=ret1[0];
                jQuery('#fi1').val(ret1[1]);
                jQuery('#d1').val(ret1[2]);  d1=ret1[2];
                jQuery('#i1').val(ret1[3]);  i1=ret1[3];
                jQuery('#p1').val(ret1[4]);
                jQuery('#tr1').val(ret1[5]);
                jQuery('#t2').val(ret1[6]);  t2=ret1[6];
                jQuery('#fi2').val(ret1[7]);
                jQuery('#d2').val(ret1[8]);  d2=ret1[8];
                jQuery('#i2').val(ret1[9]);  i2=ret1[9];
                jQuery('#p2').val(ret1[10]);
                jQuery('#tr2').val(ret1[11]);
                jQuery('#t3').val(ret1[12]);  t3=ret1[12];
                jQuery('#fi3').val(ret1[13]);
                jQuery('#d3').val(ret1[14]);  d3=ret1[14];
                jQuery('#i3').val(ret1[15]);  i3=ret1[15];
                jQuery('#p3').val(ret1[16]);
                jQuery('#tr3').val(ret1[17]);
                jQuery('#t4').val(ret1[18]);  t4=ret1[18];
                jQuery('#d4').val(ret1[20]);  d4=ret1[20];
                jQuery('#W3').val(ret1[24]);

        		data[point1].data=[[d1,t1]];
        		data[point2].data=[[d2,t2]];
        		data[point3].data=[[d3,t3]];
        		data[point4].data=[[d4,t4]];
    
                jQuery('#tmax').val(Math.max(TmaxDef, Math.min(TmaxMax, Math.max(Math.ceil(t1/5)*5, Math.ceil(t2/5)*5))));
                jQuery('#tmin').val(Math.min(TminDef, Math.max(TminMin, Math.min(Math.floor(t1/5)*5, Math.floor(t2/5)*5))));
                jQuery('#dmax').val(Math.max(DmaxDef, Math.min(DmaxMax, Math.max(Math.ceil(d1/5)*5, Math.ceil(d2/5)*5))));
                jQuery('#dmin').val(Math.min(DminDef, Math.max(DminMin, Math.min(Math.floor(d1/5)*5, Math.floor(d2/5)*5))));
                id_draw();
                jQuery('#error1').text(ret1[25]);
            });
    	}

		function id_draw() {
            
        	data = new Array();
    
            for (var i=0; i<=9; i+=1) {
                data[i] = {color: 'black', lines: {lineWidth: (i==9)?1:0.5}, shadowSize:0, data: []};
            }
            
            tmin=jQuery('#tmin').val()*1;
            tmax=jQuery('#tmax').val()*1;
        	for (var t = tmin; t <= tmax; t += 0.5) {
        	    for (var i=0; i<=9; i+=1) {
        	        if ((t>=0) || ((t<0) && (i%2==1))) data[i].data.push([dp(pt(t)*(i+1)/10), t]);
        	    }
        	}
    
            imin=jQuery('#tmin').val();
            imax=(1.01+0.00197*jQuery('#dmax').val())*jQuery('#tmax').val()+2.493*jQuery('#dmax').val();
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
                if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;

        	    data.push({color: 'black', lines: {lineWidth: (i%10==0)?1:0.5}, shadowSize:0, data: [[0,i/1.01],[d1/3, (i-2.493*d1/3)/(1.01+0.00197*d1/3)],[d1*2/3, (i-2.493*d1*2/3)/(1.01+0.00197*d1*2/3)],[d1, (i-2.493*d1)/(1.01+0.00197*d1)]]});
        	}
        	    
        	t1 = jQuery('#t1').val();
        	d1 = jQuery('#d1').val();
        	t2 = jQuery('#t2').val();
        	d2 = jQuery('#d2').val();
        	point1=data.length;
            data.push({color: 'red',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d1,t1]]});
        	point2=data.length;
            data.push({color: 'blue',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d2,t2]]});
        	point3=data.length;
            data.push({color: 'MediumVioletRed',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d3,t3]]});
        	point4=data.length;
            data.push({color: 'MediumVioletRed',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d4,t4]]});
        	line1=data.length;
            data.push({color: 'green',  points: {show: false}, lines: {lineWidth: 2}, shadowSize:0, data: [[d1,t1],[d2,t2]]});
        	line2=data.length;
            data.push({color: 'MediumVioletRed',  points: {show: false}, lines: {lineWidth: 2}, shadowSize:0, data: [[d3,t3],[d4,t4]]});

    		plot = jQuery.plot(jQuery("#placeholder"), data, {
                xaxis: {min:jQuery('#dmin').val(), max:jQuery('#dmax').val()},    
                yaxis: {min:jQuery('#tmin').val(), max:jQuery('#tmax').val()},
            });
            label_draw();
    	}

		function label_draw() {
		    o = plot.pointOffset({x:jQuery('#d1').val(),y:jQuery('#t1').val()});
            jQuery("#placeholder").append("<div id='point1_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))-5)+"px;top:"+(Math.min(763,Math.max(0,o.top))+7)+"px;color:red'><b>т.1</b></div>");
		    o = plot.pointOffset({x:jQuery('#d2').val(),y:jQuery('#t2').val()});
            jQuery("#placeholder").append("<div id='point2_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:blue'><b>т.2</b></div>");
		    o = plot.pointOffset({x:jQuery('#d3').val(),y:jQuery('#t3').val()});
            jQuery("#placeholder").append("<div id='point3_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))-20)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:MediumVioletRed'><b>см.</b></div>");
            for (var i=0; i<=9; i+=1) {
                x1=dp(pt(jQuery('#tmax').val())*(i+1)/10);
                if ((x1>jQuery('#dmin').val())&&(x1<jQuery('#dmax').val())) {
                    o = plot.pointOffset({x:x1,y:jQuery('#tmax').val()});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-5)+"px;top:"+(o.top-17)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                } else {
                    y1=tdfi(jQuery('#dmax').val(),(i+1)*10);
                    if ((y1>jQuery('#tmin').val())&&(y1<jQuery('#tmax').val())) {
                        o = plot.pointOffset({x:jQuery('#dmax').val(),y:y1});
                        jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left+5)+"px;top:"+(o.top-5)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                    }
                }
            }
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
        	    if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;
        	    t1=(i-2.493*d1)/(1.01+0.00197*d1);
    
        	    if ((i%10==0)&&(d1<jQuery('#dmax').val())&&(d1>jQuery('#dmin').val())&&(t1>(jQuery('#tmin').val()*1+1)&&(t1<(jQuery('#tmax').val()*1+1)))) {
                    o = plot.pointOffset({x:d1,y:t1});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-2)+"px;top:"+(o.top+2)+"px;color:#666;font-size:smaller'>"+i+"</div>");
        	    }
        	}
    	}
    	
        jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef);
        jQuery(".sel").click(function(){jQuery(this).select()});
        jQuery(".dot").click(function(){jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef); id_draw();});

        jQuery("#tmin").on('input', function(){if(this.value<TminMin)this.value=TminMin;   if(this.value*1>=jQuery('#tmax').val()*1)this.value=jQuery('#tmax').val()*1-1; id_draw()});
        jQuery("#tmax").on('input', function(){if(this.value>TmaxMax)this.value=TmaxMax;   if(this.value*1<=jQuery('#tmin').val()*1)this.value=jQuery('#tmin').val()*1+1; id_draw()});
        jQuery("#dmin").on('input', function(){if(this.value<DminMin)this.value=DminMin;   if(this.value*1>=jQuery('#dmax').val()*1)this.value=jQuery('#dmax').val()*1-1; id_draw()});
        jQuery("#dmax").on('input', function(){if(this.value>DmaxMax)this.value=DmaxMax;   if(this.value*1<=jQuery('#dmin').val()*1)this.value=jQuery('#dmin').val()*1+1; id_draw()});

    	id_draw();
    	recount_id();
    });
</script>

    <table id='calc_table'><tbody>
		<tr>
			<th colspan=5>Настройка ID-диаграммы <span class='dot'>по умолчанию</span></th>
		</tr>
		<tr>
			<td colspan=3>Минимальная температура</td>
			<td><input class='sel' type='number' id='tmin' value='-20' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=3>Максимальная температура</td>
			<td><input class='sel' type='number' id='tmax' value='40' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=3>Минимальное влагосодержание</td>
			<td><input class='sel' type='number' id='dmin' value='0' min='0' max='50' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td colspan=3>Максимальное влагосодержание</td>
			<td><input class='sel' type='number' id='dmax' value='50' min='0' max='100' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<th colspan=5>Расчет смеси по ID-диаграмме</th>
		</tr>
		<tr>
			<td colspan=3>Расход воздуха т.1</td>
			<td><input type='number' id='G1' value='3000' class='sel par' min='0' step='10'/></td>
			<td>м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=3>Расход воздуха т.2</td>
			<td><input type='number' id='G2' value='1000' class='sel par' min='0' step='10'/></td>
			<td>м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<th>Параметр</th>
			<th style='color:red;'>Точка 1</th>
			<th style='color:blue;'>Точка 2</th>
			<th style='color:MediumVioletRed;'>Смесь</th>
			<th></th>
		</tr>
		<tr>
			<td>Температура</td>
			<td><input class='point1_status' id='t1_status' type='checkbox' value='c2' checked /> <input class='sel point1' type='number' id='t1' value='10' step='1'/></td>
			<td><input class='point2_status' id='t2_status' type='checkbox' value='c2' checked /> <input class='sel point2' type='number' id='t2' value='30' step='1'/></td>
			<td><input class='sel point3' type='number' id='t3' value='' step='1' disabled/><input class='sel point4' type='number' id='t4' value='' step='1' disabled hidden/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td>Влажность</td>
			<td><input class='point1_status' id='fi1_status' type='checkbox' value='c1' checked /> <input class='sel point1' type='number' id='fi1' value='50' min='0' step='1'/></td>
			<td><input class='point2_status' id='fi2_status' type='checkbox' value='c1' checked /> <input class='sel point2' type='number' id='fi2' value='60' min='0' min='100' step='1'/></td>
			<td><input class='sel point3' type='number' id='fi3' value='' step='1' disabled/></td>
			<td>%</td>
		</tr>
		<tr>
			<td>Влагосодержание</td>
			<td><input class='point1_status' id='d1_status' type='checkbox' value='c0' /> <input class='sel point1' type='number' id='d1' value='' min='0' step='1'/></td>
			<td><input class='point2_status' id='d2_status' type='checkbox' value='c0' /> <input class='sel point2' type='number' id='d2' value='' min='0' step='1'/></td>
			<td><input class='sel point3' type='number' id='d3' value='' step='1' disabled/><input class='sel point4' type='number' id='d4' value='' step='1' disabled hidden/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td>Энтальпия</td>
			<td><input class='point1_status' id='i1_status' type='checkbox' value='c0' /> <input class='sel point1' type='number' id='i1' value='' step='1'/></td>
			<td><input class='point2_status' id='i2_status' type='checkbox' value='c0' /> <input class='sel point2' type='number' id='i2' value='' step='1'/></td>
			<td><input class='sel point3' type='number' id='i3' value='' step='1' disabled/></td>
			<td>кДж/кг</td>
		</tr>
		<tr>
			<td>Парц.давление</td>
			<td><input class='point1_status' id='p1_status' type='checkbox' value='c0' /> <input class='sel point1' type='number' id='p1' value='' min='0' step='0.1'/></td>
			<td><input class='point2_status' id='p2_status' type='checkbox' value='c0' /> <input class='sel point2' type='number' id='p2' value='' min='0' step='0.1'/></td>
			<td><input class='sel point3' type='number' id='p3' value='' step='1' disabled/></td>
			<td>кПа</td>
		</tr>
		<tr>
			<td>Точка росы</td>
			<td><input class='point1_status' id='tr1_status' type='checkbox' value='c0' /> <input class='sel point1' type='number' id='tr1' value='' step='1'/></td>
			<td><input class='point2_status' id='tr2_status' type='checkbox' value='c0' /> <input class='sel point2' type='number' id='tr2' value='' step='1'/></td>
			<td><input class='sel point3' type='number' id='tr3' value='' step='1' disabled/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=3>Расход конденсата</td>
			<td><input class='sel point3' type='number' id='W3' value='' step='1' disabled/></td>
			<td>кг/ч</td>
		</tr>
		<tr>
            <td colspan=5 id='error1' style='color: #f00; font-size: smaller;'></td>
		</tr>
	</tbody></table>
	<div id='zzz'></div>

	<div class="demo-container">
		<div id="placeholder" class="demo-placeholder"></div>
	</div>
    
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет процесса охлаждения на ID-диаграмме</title>
		<link>https://mir-klimata.info/raschet-processa-ohlazhdeniya-na-id-diagramme/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Sun, 17 Oct 2021 13:54:54 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<category><![CDATA[Статьи]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=31093</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
    <script language="javascript" type="text/javascript" src="/wp-content/themes/Newspaper/flot/jquery.flot.js"></script>

    <style>
		input[type="number"] {width: 70px;}
		.dot {border-bottom: 1px dotted black; font-weight:normal; font-size:smaller; float:right;}
		.dot:hover {cursor:pointer;}
		.bez_radio {margin-left:25px;}
		
		table {margin: 0 auto};
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}

        .demo-container {
        	box-sizing: border-box;
        	width: 100%;
        	height: 800px;
        	padding: 20px 25px 15px 10px;
        	margin: 15px auto 30px auto;
        	border: 1px solid #ddd;
        	background: linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
        	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        	-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .demo-placeholder {
        	background: #fff;
        	background: url('/images/logo-mkhwh-300x95.png') center repeat-y;
        	background-size: contain;
        	width: 100%;
        	height: 100%;
        	font-size: 14px;
        	line-height: 1.2em;
        }
        
        @media (max-width:767px) {
            table td { padding: 0px; }
            table { font-size: 10px; }
            .demo-placeholder { font-size: 10px; }
            .demo-container { height: 500px; padding: 3px; }
            input[type="number"] { width: 50px; }
        }
    
    </style>
	
<script>
    
    jQuery (function() {

        TmaxDef=40;
        TminDef=-20;
        DmaxDef=30;
        DminDef=0;
        TmaxMax=100;
        TminMin=-100;
        DmaxMax=100;
        DminMin=0;
    
        chk_value1=2;
        function pt (t) {
            if (t>=0) return 6.1121*Math.exp((18.678-t/234.5)*t/(257.14+t*1))*100;
            else return 6.1115*Math.exp((23.036-t/333.7)*t/(279.82+t*1))*100;
        }
        function tdfi (d1,fi1) {
            var tp_tmin=TminMin;
            var tp_tmax=TmaxMax;
            tp_t=(tp_tmin+tp_tmax)/2;
            for (var tp_i=1;tp_i<=20;tp_i++) {
                fi11=d1*101375/(622+d1*1)/pt(tp_t)*100;
                tp_t1=tp_t;
                if (fi11<fi1) {tp_t=(tp_t+tp_tmin)/2; tp_tmax=tp_t1;}
                if (fi11>fi1) {tp_t=(tp_t+tp_tmax)/2; tp_tmin=tp_t1;}
                if (fi11==fi1) return tp_t;
            }
            return tp_t;
        }
        function dp (p) {
            return 622*p/(101325-p*1);
        }
        
        jQuery(".point1").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) {
                jQuery('#' + jQuery(this).attr("id")+'_status').prop('checked', true); 
                jQuery('#'+jQuery(this).attr("id")+'_status').trigger('change');
                //document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            } else {
                recount_id();
            }
        });
        jQuery(".point2").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            recount_id();
        });
        jQuery(".point3").on('input', function() {
        	d3 = dp(pt(jQuery('#t3').val())*jQuery('#fi3').val()/100);
        	jQuery("#d3").val(d3);
            if (d3*1>jQuery("#d1").val()*1) { d3=jQuery("#d1").val()*1; jQuery("#d3").val(d3); jQuery("#t3").val(tdfi(d3,jQuery("#fi3").val())); }
            if (jQuery("#t3").val()*1>=jQuery("#t1").val()*1) { jQuery("#t3").val(jQuery("#t1").val()-1); }
            recount_id();
        });
        jQuery(".point1_status").change(function(){
            ide3=jQuery(this).attr("id").replace('_status','');
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            e3=document.getElementById(ide3+'_status');
            var arr=['d1','p1','tr1'];
            var arr1=[]; arr1['d1']='влагосодержание'; arr1['p1']='парциальное давление'; arr1['tr1']='точку росы';
            if (e3.checked==false) {
                e3.checked=true;
                alert ('Нельзя снимать галочки. Просто выберите другие параметры')
            } else if ((arr.indexOf(ide3)!=-1) && (arr.indexOf(ide2)!=-1)) {
                e3.checked=false;
                alert ('Нельзя выбрать '+arr1[ide2]+' и '+arr1[ide3]+', так как это взаимосвязанные параметры')
            } else {
                e1.checked=false;
                chk_value1++;
                e3.value='c'+chk_value1;
                e3.checked=true;
                
                if (arr.indexOf(ide3)!=-1) {
                    for (var j=0;j<=2;j++) {
                        if (ide3!=arr[j]) {
                            document.getElementById(arr[j]+'_status').disabled=true;
                            document.getElementById(arr[j]).disabled=true;
                        }
                    }
                } else {
                    for (var j=0;j<=2;j++) {
                        document.getElementById(arr[j]+'_status').disabled=false;
                        document.getElementById(arr[j]).disabled=false;
                    }
                }
            }
            recount_id();
        });
        function recount_id() {
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            idi1=document.getElementById(ide1).value;
            idi2=document.getElementById(ide2).value;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_cool', {ide1 : ide1, ide2 : ide2, idi1 : idi1, idi2 : idi2, ajax : 1}, function(ret){
                ret1=ret.split("|");
                jQuery('#t1').val(ret1[0]);  t1=ret1[0];
                jQuery('#fi1').val(ret1[1]);
                jQuery('#d1').val(ret1[2]);  d1=ret1[2];
                jQuery('#i1').val(ret1[3]);  i1=ret1[3];
                jQuery('#p1').val(ret1[4]);
                jQuery('#tr1').val(ret1[5]);
        		data[point1].data=[[d1,t1]];
    
                e2=document.querySelector("input[type='radio']:checked");
                ide2=e2.getAttribute("id").replace('_status','');
                idi2=document.getElementById(ide2).value;
                
                jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_cool', {t1 : t1, d1 : d1, i1 : i1, G1 : jQuery("#G1").val(), t3 : jQuery("#t3").val(), fi3 : jQuery("#fi3").val(), ide2 : ide2, idi2 : idi2, proc : 'cool', ajax : 2}, function(ret){
                    ret1=ret.split("|");
                    jQuery('#t2').val(ret1[0]);  t2=ret1[0];
                    jQuery('#fi2').val(ret1[1]);
                    jQuery('#d2').val(ret1[2]);  d2=ret1[2];
                    jQuery('#i2').val(ret1[3]);
                    jQuery('#p2').val(ret1[4]);
                    jQuery('#tr2').val(ret1[5]);
                    jQuery('#N2').val(ret1[6]);
                    jQuery('#W2').val(ret1[7]);
                    data[point2].data=[[d2,t2]];
                    data[line1].data=[[d1,t1],[d2,t2]];
                    
                    jQuery('#tmax').val(Math.max(TmaxDef, Math.min(TmaxMax, Math.max(Math.ceil(t1/5)*5, Math.ceil(t2/5)*5))));
                    jQuery('#tmin').val(Math.min(TminDef, Math.max(TminMin, Math.min(Math.floor(t1/5)*5, Math.floor(t2/5)*5))));
                    jQuery('#dmax').val(Math.max(DmaxDef, Math.min(DmaxMax, Math.max(Math.ceil(d1/5)*5, Math.ceil(d2/5)*5))));
                    jQuery('#dmin').val(Math.min(DminDef, Math.max(DminMin, Math.min(Math.floor(d1/5)*5, Math.floor(d2/5)*5))));
                    id_draw();
                    jQuery('#error1').text(ret1[8]);
                });
            });
    	}

		function id_draw() {
            
        	data = new Array();
    
            for (var i=0; i<=9; i+=1) {
                data[i] = {color: 'black', lines: {lineWidth: (i==9)?1:0.5}, shadowSize:0, data: []};
            }
            
            tmin=jQuery('#tmin').val()*1;
            tmax=jQuery('#tmax').val()*1;
        	for (var t = tmin; t <= tmax; t += 0.5) {
        	    for (var i=0; i<=9; i+=1) {
        	        if ((t>=0) || ((t<0) && (i%2==1))) data[i].data.push([dp(pt(t)*(i+1)/10), t]);
        	    }
        	}
    
            imin=jQuery('#tmin').val();
            imax=(1.01+0.00197*jQuery('#dmax').val())*jQuery('#tmax').val()+2.493*jQuery('#dmax').val();
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
                if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;

        	    data.push({color: 'black', lines: {lineWidth: (i%10==0)?1:0.5}, shadowSize:0, data: [[0,i/1.01],[d1/3, (i-2.493*d1/3)/(1.01+0.00197*d1/3)],[d1*2/3, (i-2.493*d1*2/3)/(1.01+0.00197*d1*2/3)],[d1, (i-2.493*d1)/(1.01+0.00197*d1)]]});
        	}
        	    
        	t1 = jQuery('#t1').val();
        	d1 = jQuery('#d1').val();
        	t2 = jQuery('#t2').val();
        	d2 = jQuery('#d2').val();
        	t3 = jQuery('#t3').val();
        	d3 = dp(pt(t3)*jQuery('#fi3').val()/100);
        	jQuery('#d3').val(d3);
        	point1=data.length;
            data.push({color: 'red',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d1,t1]]});
        	point2=data.length;
            data.push({color: 'blue',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d2,t2]]});
        	point3=data.length;
            data.push({color: 'gray',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d3,t3]]});
        	line2=data.length;
            data.push({color: 'gray',  points: {show: false}, lines: {lineWidth: 1}, shadowSize:0, data: [[d1,t1],[d3,t3]]});
        	line1=data.length;
            data.push({color: 'green',  points: {show: false}, lines: {lineWidth: 2}, shadowSize:0, data: [[d1,t1],[d2,t2]]});

    		plot = jQuery.plot(jQuery("#placeholder"), data, {
                xaxis: {min:jQuery('#dmin').val(), max:jQuery('#dmax').val()},    
                yaxis: {min:jQuery('#tmin').val(), max:jQuery('#tmax').val()},
            });

            label_draw();
    	}

		function label_draw() {
		    o = plot.pointOffset({x:jQuery('#d1').val(),y:jQuery('#t1').val()});
            jQuery("#placeholder").append("<div id='point1_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:red'><b>т.1</b></div>");
		    o = plot.pointOffset({x:jQuery('#d2').val(),y:jQuery('#t2').val()});
            jQuery("#placeholder").append("<div id='point2_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:blue'><b>т.2</b></div>");
		    o = plot.pointOffset({x:jQuery('#d3').val(),y:jQuery('#t3').val()});
            jQuery("#placeholder").append("<div id='point2_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:gray'><b>охл</b></div>");
            for (var i=0; i<=9; i+=1) {
                x1=dp(pt(jQuery('#tmax').val())*(i+1)/10);
                if ((x1>jQuery('#dmin').val())&&(x1<jQuery('#dmax').val())) {
                    o = plot.pointOffset({x:x1,y:jQuery('#tmax').val()});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-5)+"px;top:"+(o.top-17)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                } else {
                    y1=tdfi(jQuery('#dmax').val(),(i+1)*10);
                    if ((y1>jQuery('#tmin').val())&&(y1<jQuery('#tmax').val())) {
                        o = plot.pointOffset({x:jQuery('#dmax').val(),y:y1});
                        jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left+5)+"px;top:"+(o.top-5)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                    }
                }
            }
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
        	    if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;
        	    t1=(i-2.493*d1)/(1.01+0.00197*d1);
    
        	    if ((i%10==0)&&(d1<jQuery('#dmax').val())&&(d1>jQuery('#dmin').val())&&(t1>(jQuery('#tmin').val()*1+1)&&(t1<(jQuery('#tmax').val()*1+1)))) {
                    o = plot.pointOffset({x:d1,y:t1});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-2)+"px;top:"+(o.top+2)+"px;color:#666;font-size:smaller'>"+i+"</div>");
        	    }
        	}
    	}
    	
        jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef);
        jQuery(".sel").click(function(){jQuery(this).select()});
        jQuery(".dot").click(function(){jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef); id_draw();});

        jQuery("#tmin").on('input', function(){if(this.value<TminMin)this.value=TminMin;   if(this.value*1>=jQuery('#tmax').val()*1)this.value=jQuery('#tmax').val()*1-1; id_draw()});
        jQuery("#tmax").on('input', function(){if(this.value>TmaxMax)this.value=TmaxMax;   if(this.value*1<=jQuery('#tmin').val()*1)this.value=jQuery('#tmin').val()*1+1; id_draw()});
        jQuery("#dmin").on('input', function(){if(this.value<DminMin)this.value=DminMin;   if(this.value*1>=jQuery('#dmax').val()*1)this.value=jQuery('#dmax').val()*1-1; id_draw()});
        jQuery("#dmax").on('input', function(){if(this.value>DmaxMax)this.value=DmaxMax;   if(this.value*1<=jQuery('#dmin').val()*1)this.value=jQuery('#dmin').val()*1+1; id_draw()});

    	id_draw();
    	recount_id();
    });
</script>

    <table><tbody>
		<tr>
			<th colspan=4>Настройка ID-диаграммы <span class='dot'>по умолчанию</span></th>
		</tr>
		<tr>
			<td colspan=2>Минимальная температура</td>
			<td><input class='bez_radio sel' type='number' id='tmin' value='-20' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Максимальная температура</td>
			<td><input class='bez_radio sel' type='number' id='tmax' value='40' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Минимальное влагосодержание</td>
			<td><input class='bez_radio sel' type='number' id='dmin' value='0' min='0' max='50' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td colspan=2>Максимальное влагосодержание</td>
			<td><input class='bez_radio sel' type='number' id='dmax' value='50' min='0' max='100' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<th colspan=4>Расчет воздухоохладителя по ID-диаграмме</th>
		</tr>
		<tr>
			<td colspan=2>Расход воздуха</td>
			<td><input type='number' id='G1' class='bez_radio point3' value='1000' min='0' step='1'/></td>
			<td>м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<td colspan=2>Температура охладителя</td>
			<td><input type='number' id='t3' class='bez_radio point3' value='9' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Влажность вблизи поверхности охладителя</td>
			<td><input type='number' id='fi3' class='bez_radio point3' value='95' min='0' max='100' step='1'/><input type='number' id='d3' value='0' hidden/></td>
			<td>%</td>
		</tr>
		<tr>
			<th>Параметр</th>
			<th style='color:red;'>Точка 1</th>
			<th style='color:blue;'>Точка 2</th>
			<th></th>
		</tr>
		<tr>
			<td>Температура</td>
			<td><input class='point1_status' id='t1_status' type='checkbox' value='c2' checked />   <input class='sel point1' type='number' id='t1' value='24' step='1'/></td>
			<td><input class='point2_status' id='t2_status' type='radio' name='radio_p2' checked /> <input class='sel point2' type='number' id='t2' value='16' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td>Влажность</td>
			<td><input class='point1_status' id='fi1_status' type='checkbox' value='c1' checked />  <input class='sel point1' type='number' id='fi1' value='50' min='0' step='1'/></td>
			<td><input class='point2_status' id='fi2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='fi2' value='' min='0' step='1' disabled/></td>
			<td>%</td>
		</tr>
		<tr>
			<td>Влагосодержание</td>
			<td><input class='point1_status' id='d1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='d1' value='' min='0' step='1'/></td>
			<td><input class='point2_status' id='d2_status' type='radio' name='radio_p2' />         <input class='sel point2' type='number' id='d2' value='' min='0' step='.1' /></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td>Энтальпия</td>
			<td><input class='point1_status' id='i1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='i1' value='' step='1'/></td>
			<td><input class='point2_status' id='i2_status' type='radio' name='radio_p2' />         <input class='sel point2' type='number' id='i2' value='' step='1'/></td>
			<td>кДж/кг</td>
		</tr>
		<tr>
			<td>Парц.давление</td>
			<td><input class='point1_status' id='p1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='p1' value='' min='0' step='0.1'/></td>
			<td><input class='point2_status' id='p2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='p2' value='' min='0' step='0.1' disabled/></td>
			<td>кПа</td>
		</tr>
		<tr>
			<td>Точка росы</td>
			<td><input class='point1_status' id='tr1_status' type='checkbox' value='c0' />          <input class='sel point1' type='number' id='tr1' value='' step='1'/></td>
			<td><input class='point2_status' id='tr2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='tr2' value='' step='1' disabled/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Холодильная мощность</td>
			<td><input class='point2_status' id='N2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='N2' value='' min='0' step='1'/></td>
			<td>кВт</td>
		</tr>
		<tr>
			<td colspan=2>Расход конденсата</td>
			<td><input class='point2_status' id='W2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='W2' value='' min='0' step='.1'/></td>
			<td>л/ч</td>
		</tr>
		<tr>
            <td colspan=3 id='error1' style='color: #f00; font-size: smaller;'></td>
		</tr>
	</tbody></table>

	<div class="demo-container">
		<div id="placeholder" class="demo-placeholder"></div>
	</div>
    
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет калорифера для нагрева воздуха на ID-диаграмме</title>
		<link>https://mir-klimata.info/raschet-kalorifera-dlya-nagreva-vozduha-na-id-diagramme/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Sun, 17 Oct 2021 13:53:35 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<category><![CDATA[Статьи]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=31091</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
    <script language="javascript" type="text/javascript" src="/wp-content/themes/Newspaper/flot/jquery.flot.js"></script>

    <style>
		input[type="number"] {width: 70px;}
		.dot {border-bottom: 1px dotted black; font-weight:normal; font-size:smaller; float:right;}
		.dot:hover {cursor:pointer;}
		.bez_radio {margin-left:25px;}
		
		table {margin: 0 auto};
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}

        .demo-container {
        	box-sizing: border-box;
        	width: 100%;
        	height: 800px;
        	padding: 20px 25px 15px 10px;
        	margin: 15px auto 30px auto;
        	border: 1px solid #ddd;
        	background: linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
        	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        	-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .demo-placeholder {
        	background: #fff;
        	background: url('/calc/logo-mkhwh-300x95.png') center repeat-y;
        	background-size: contain;
        	width: 100%;
        	height: 100%;
        	font-size: 14px;
        	line-height: 1.2em;
        }
        
        @media (max-width:767px) {
            table td { padding: 0px; }
            table { font-size: 10px; }
            .demo-placeholder { font-size: 10px; }
            .demo-container { height: 500px; padding: 3px; }
            input[type="number"] { width: 50px; }
        }
        
        
    
    </style>
	
<script>
    
    jQuery (function() {

        TmaxDef=40;
        TminDef=-20;
        DmaxDef=30;
        DminDef=0;
        TmaxMax=100;
        TminMin=-100;
        DmaxMax=100;
        DminMin=0;
    
        chk_value1=2;
        function pt (t) {
            if (t>=0) return 6.1121*Math.exp((18.678-t/234.5)*t/(257.14+t*1))*100;
            else return 6.1115*Math.exp((23.036-t/333.7)*t/(279.82+t*1))*100;
        }
        function tdfi (d1,fi1) {
            var tp_tmin=TminMin;
            var tp_tmax=TmaxMax;
            tp_t=(tp_tmin+tp_tmax)/2;
            for (var tp_i=1;tp_i<=20;tp_i++) {
                fi11=d1*101375/(622+d1*1)/pt(tp_t)*100;
                tp_t1=tp_t;
                if (fi11<fi1) {tp_t=(tp_t+tp_tmin)/2; tp_tmax=tp_t1;}
                if (fi11>fi1) {tp_t=(tp_t+tp_tmax)/2; tp_tmin=tp_t1;}
                if (fi11==fi1) return tp_t;
            }
            return tp_t;
        }
        function dp (p) {
            return 622*p/(101325-p*1);
        }
    
        jQuery(".point1").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) {
                jQuery('#' + jQuery(this).attr("id")+'_status').prop('checked', true); 
                jQuery('#'+jQuery(this).attr("id")+'_status').trigger('change');
                //document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            } else {
                recount_id();
            }
        });
        jQuery(".point2").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            recount_id();
        });
        jQuery(".par").on('input', function() {
            recount_id();
        });
        jQuery(".point1_status").change(function(){
            ide3=jQuery(this).attr("id").replace('_status','');
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            e3=document.getElementById(ide3+'_status');
            var arr=['d1','p1','tr1'];
            var arr1=[]; arr1['d1']='влагосодержание'; arr1['p1']='парциальное давление'; arr1['tr1']='точку росы';
            if (e3.checked==false) {
                e3.checked=true;
                alert ('Нельзя снимать галочки. Просто выберите другие параметры')
            } else if ((arr.indexOf(ide3)!=-1) && (arr.indexOf(ide2)!=-1)) {
                e3.checked=false;
                alert ('Нельзя выбрать '+arr1[ide2]+' и '+arr1[ide3]+', так как это взаимосвязанные параметры')
            } else {
                e1.checked=false;
                chk_value1++;
                e3.value='c'+chk_value1;
                e3.checked=true;
                
                if (arr.indexOf(ide3)!=-1) {
                    for (var j=0;j<=2;j++) {
                        if (ide3!=arr[j]) {
                            document.getElementById(arr[j]+'_status').disabled=true;
                            document.getElementById(arr[j]).disabled=true;
                        }
                    }
                } else {
                    for (var j=0;j<=2;j++) {
                        document.getElementById(arr[j]+'_status').disabled=false;
                        document.getElementById(arr[j]).disabled=false;
                    }
                }
            }
            recount_id();
        });
        function recount_id() {
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            idi1=document.getElementById(ide1).value;
            idi2=document.getElementById(ide2).value;
    	    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_heat', {ide1 : ide1, ide2 : ide2, idi1 : idi1, idi2 : idi2, ajax : ajax}, function(ret){
                ret1=ret.split("|");
                jQuery('#t1').val(ret1[0]);  t1=ret1[0];
                jQuery('#fi1').val(ret1[1]);
                jQuery('#d1').val(ret1[2]);  d1=ret1[2];
                jQuery('#i1').val(ret1[3]);  i1=ret1[3];
                jQuery('#p1').val(ret1[4]);
                jQuery('#tr1').val(ret1[5]);
        		data[point1].data=[[d1,t1]];
    
                jQuery("#d2").val(jQuery("#d1").val());
                jQuery("#p2").val(jQuery("#p1").val());
                jQuery("#tr2").val(jQuery("#tr1").val());
                ide1="d1";//jQuery("#d2").getAttribute("id").replace('_status','');
                idi1=document.getElementById(ide1).value;
                
                e2=document.querySelector("input[type='radio']:checked");
                ide2=e2.getAttribute("id").replace('_status','');
                idi2=document.getElementById(ide2).value;
                
                ajax=2;
                jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_heat', {t1 : t1, d1 : d1, i1 : i1, G1 : jQuery("#G1").val(), ide2 : ide2, idi2 : idi2, proc : 'heat', ajax : ajax}, function(ret){
                    ret1=ret.split("|");
                    jQuery('#t2').val(ret1[0]);  t2=ret1[0];
                    jQuery('#fi2').val(ret1[1]);
                    jQuery('#d2').val(ret1[2]);  d2=ret1[2];
                    jQuery('#i2').val(ret1[3]);
                    jQuery('#p2').val(ret1[4]);
                    jQuery('#tr2').val(ret1[5]);
                    jQuery('#N2').val(ret1[6]);
                    data[point2].data=[[d2,t2]];
                    data[line1].data=[[d1,t1],[d2,t2]];
                    
                    jQuery('#tmax').val(Math.max(TmaxDef, Math.min(TmaxMax, Math.max(Math.ceil(t1/5)*5, Math.ceil(t2/5)*5))));
                    jQuery('#tmin').val(Math.min(TminDef, Math.max(TminMin, Math.min(Math.floor(t1/5)*5, Math.floor(t2/5)*5))));
                    jQuery('#dmax').val(Math.max(DmaxDef, Math.min(DmaxMax, Math.max(Math.ceil(d1/5)*5, Math.ceil(d2/5)*5))));
                    jQuery('#dmin').val(Math.min(DminDef, Math.max(DminMin, Math.min(Math.floor(d1/5)*5, Math.floor(d2/5)*5))));
                    id_draw();
                });
            });
    	}

		function id_draw() {
            
        	data = new Array();
    
            for (var i=0; i<=9; i+=1) {
                data[i] = {color: 'black', lines: {lineWidth: (i==9)?1:0.5}, shadowSize:0, data: []};
            }
            
            tmin=jQuery('#tmin').val()*1;
            tmax=jQuery('#tmax').val()*1;
        	for (var t = tmin; t <= tmax; t += 0.5) {
        	    for (var i=0; i<=9; i+=1) {
        	        if ((t>=0) || ((t<0) && (i%2==1))) data[i].data.push([dp(pt(t)*(i+1)/10), t]);
        	    }
        	}
    
            imin=jQuery('#tmin').val();
            imax=(1.01+0.00197*jQuery('#dmax').val())*jQuery('#tmax').val()+2.493*jQuery('#dmax').val();
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
                if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;

        	    data.push({color: 'black', lines: {lineWidth: (i%10==0)?1:0.5}, shadowSize:0, data: [[0,i/1.01],[d1/3, (i-2.493*d1/3)/(1.01+0.00197*d1/3)],[d1*2/3, (i-2.493*d1*2/3)/(1.01+0.00197*d1*2/3)],[d1, (i-2.493*d1)/(1.01+0.00197*d1)]]});
        	}
        	    
        	t1 = jQuery('#t1').val();
        	d1 = jQuery('#d1').val();
        	t2 = jQuery('#t2').val();
        	d2 = jQuery('#d2').val();
        	point1=data.length;
            data.push({color: 'red',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d1,t1]]});
        	point2=data.length;
            data.push({color: 'blue',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d2,t2]]});
        	line1=data.length;
            data.push({color: 'green',  points: {show: false}, lines: {lineWidth: 2}, shadowSize:0, data: [[d1,t1],[d2,t2]]});

    		plot = jQuery.plot(jQuery("#placeholder"), data, {
                xaxis: {min:jQuery('#dmin').val(), max:jQuery('#dmax').val()},    
                yaxis: {min:jQuery('#tmin').val(), max:jQuery('#tmax').val()},
            });

            label_draw();
    	}

		function label_draw() {
		    o = plot.pointOffset({x:jQuery('#d1').val(),y:jQuery('#t1').val()});
            jQuery("#placeholder").append("<div id='point1_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:red'><b>т.1</b></div>");
		    o = plot.pointOffset({x:jQuery('#d2').val(),y:jQuery('#t2').val()});
            jQuery("#placeholder").append("<div id='point2_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:blue'><b>т.2</b></div>");
            for (var i=0; i<=9; i+=1) {
                x1=dp(pt(jQuery('#tmax').val())*(i+1)/10);
                if ((x1>jQuery('#dmin').val())&&(x1<jQuery('#dmax').val())) {
                    o = plot.pointOffset({x:x1,y:jQuery('#tmax').val()});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-5)+"px;top:"+(o.top-17)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                } else {
                    y1=tdfi(jQuery('#dmax').val(),(i+1)*10);
                    if ((y1>jQuery('#tmin').val())&&(y1<jQuery('#tmax').val())) {
                        o = plot.pointOffset({x:jQuery('#dmax').val(),y:y1});
                        jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left+5)+"px;top:"+(o.top-5)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                    }
                }
            }
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
        	    if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;
        	    t1=(i-2.493*d1)/(1.01+0.00197*d1);
    
        	    if ((i%10==0)&&(d1<jQuery('#dmax').val())&&(d1>jQuery('#dmin').val())&&(t1>(jQuery('#tmin').val()*1+1)&&(t1<(jQuery('#tmax').val()*1+1)))) {
                    o = plot.pointOffset({x:d1,y:t1});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-2)+"px;top:"+(o.top+2)+"px;color:#666;font-size:smaller'>"+i+"</div>");
        	    }
        	}
    	}
    	
        jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef);
        jQuery(".sel").click(function(){jQuery(this).select()});
        jQuery(".dot").click(function(){jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef); id_draw();});

        jQuery("#tmin").on('input', function(){if(this.value<TminMin)this.value=TminMin;   if(this.value*1>=jQuery('#tmax').val()*1)this.value=jQuery('#tmax').val()*1-1; id_draw()});
        jQuery("#tmax").on('input', function(){if(this.value>TmaxMax)this.value=TmaxMax;   if(this.value*1<=jQuery('#tmin').val()*1)this.value=jQuery('#tmin').val()*1+1; id_draw()});
        jQuery("#dmin").on('input', function(){if(this.value<DminMin)this.value=DminMin;   if(this.value*1>=jQuery('#dmax').val()*1)this.value=jQuery('#dmax').val()*1-1; id_draw()});
        jQuery("#dmax").on('input', function(){if(this.value>DmaxMax)this.value=DmaxMax;   if(this.value*1<=jQuery('#dmin').val()*1)this.value=jQuery('#dmin').val()*1+1; id_draw()});

    	id_draw();
    	recount_id();
    });
</script>

    <table><tbody>
		<tr>
			<th colspan=4>Настройка ID-диаграммы <span class='dot'>по умолчанию</span></th>
		</tr>
		<tr>
			<td colspan=2>Минимальная температура</td>
			<td><input class='sel bez_radio' type='number' id='tmin' value='-20' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Максимальная температура</td>
			<td><input class='sel bez_radio' type='number' id='tmax' value='40' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Минимальное влагосодержание</td>
			<td><input class='sel bez_radio' type='number' id='dmin' value='0' min='0' max='50' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td colspan=2>Максимальное влагосодержание</td>
			<td><input class='sel bez_radio' type='number' id='dmax' value='50' min='0' max='100' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<th colspan=4>Расчет нагревателя по ID-диаграмме</th>
		</tr>
		<tr>
			<td colspan=2>Расход воздуха</td>
			<td><input class='par bez_radio' type='number' id='G1' value='1000' min='0' step='1'/></td>
			<td>м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<th>Параметр</th>
			<th style='color:red;'>Точка 1</th>
			<th style='color:blue;'>Точка 2</th>
			<th></th>
		</tr>
		<tr>
			<td>Температура</td>
			<td><input class='point1_status' id='t1_status' type='checkbox' value='c2' checked />   <input class='sel point1' type='number' id='t1' value='20' step='1'/></td>
			<td><input class='point2_status' id='t2_status' type='radio' name='radio_p2' checked /> <input class='sel point2' type='number' id='t2' value='30' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td>Влажность</td>
			<td><input class='point1_status' id='fi1_status' type='checkbox' value='c1' checked />  <input class='sel point1' type='number' id='fi1' value='50' min='0' step='1'/></td>
			<td><input class='point2_status' id='fi2_status' type='radio' name='radio_p2' />        <input class='sel point2' type='number' id='fi2' value='' min='0' step='1'/></td>
			<td>%</td>
		</tr>
		<tr>
			<td>Влагосодержание</td>
			<td><input class='point1_status' id='d1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='d1' value='' min='0' step='1'/></td>
			<td><input class='point2_status' id='d2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='d2' value='' min='0' step='1' disabled/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td>Энтальпия</td>
			<td><input class='point1_status' id='i1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='i1' value='' step='1'/></td>
			<td><input class='point2_status' id='i2_status' type='radio' name='radio_p2' />         <input class='sel point2' type='number' id='i2' value='' step='1'/></td>
			<td>кДж/кг</td>
		</tr>
		<tr>
			<td>Парц.давление</td>
			<td><input class='point1_status' id='p1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='p1' value='' min='0' step='0.1'/></td>
			<td><input class='point2_status' id='p2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='p2' value='' min='0' step='0.1' disabled/></td>
			<td>кПа</td>
		</tr>
		<tr>
			<td>Точка росы</td>
			<td><input class='point1_status' id='tr1_status' type='checkbox' value='c0' />          <input class='sel point1' type='number' id='tr1' value='' step='1'/></td>
			<td><input class='point2_status' id='tr2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='tr2' value='' step='1' disabled/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Мощность нагревателя</td>
			<td><input class='point2_status' id='N2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='N2' value='' min='0' step='1'/></td>
			<td>кВт</td>
		</tr>
	</tbody></table>
	<div id='zzz'></div>

	<div class="demo-container">
		<div id="placeholder" class="demo-placeholder"></div>
	</div>
    
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет увлажнителей воздуха на ID-диаграмме онлайн</title>
		<link>https://mir-klimata.info/raschet-uvlazhnitelej-vozduha/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Sat, 16 Oct 2021 14:28:53 +0000</pubDate>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[Программы расчета]]></category>
		<category><![CDATA[Теория и практика]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=31089</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
    <script language="javascript" type="text/javascript" src="/wp-content/themes/Newspaper/flot/jquery.flot.js"></script>

    <style>
		input[type="number"] {width: 70px;}
		.dot {border-bottom: 1px dotted black; font-weight:normal; font-size:smaller; float:right;}
		.dot:hover {cursor:pointer;}
		.bez_radio {margin-left:25px;}

		table {margin: 0 auto};
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}

        .demo-container {
        	box-sizing: border-box;
        	width: 100%;
        	height: 800px;
        	padding: 20px 25px 15px 10px;
        	margin: 15px auto 30px auto;
        	border: 1px solid #ddd;
        	background: linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
        	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        	-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .demo-placeholder {
        	background: #fff;
        	background: url('/images/logo-mkhwh-300x95.png') center repeat-y;
        	background-size: contain;
        	width: 100%;
        	height: 100%;
        	font-size: 14px;
        	line-height: 1.2em;
        }
        
        @media (max-width:767px) {
            table td { padding: 0px; }
            table { font-size: 10px; }
            .demo-placeholder { font-size: 10px; }
            .demo-container { height: 500px; padding: 3px; }
            input[type="number"] { width: 50px; }
        }
    
    </style>
	
<script>
    
    jQuery (function() {

        TmaxDef=40;
        TminDef=-20;
        DmaxDef=30;
        DminDef=0;
        TmaxMax=100;
        TminMin=-100;
        DmaxMax=100;
        DminMin=0;
    
        chk_value1=2;
        function pt (t) {
            if (t>=0) return 6.1121*Math.exp((18.678-t/234.5)*t/(257.14+t*1))*100;
            else return 6.1115*Math.exp((23.036-t/333.7)*t/(279.82+t*1))*100;
        }
        function tdfi (d1,fi1) {
            var tp_tmin=TminMin;
            var tp_tmax=TmaxMax;
            tp_t=(tp_tmin+tp_tmax)/2;
            for (var tp_i=1;tp_i<=20;tp_i++) {
                fi11=d1*101375/(622+d1*1)/pt(tp_t)*100;
                tp_t1=tp_t;
                if (fi11<fi1) {tp_t=(tp_t+tp_tmin)/2; tp_tmax=tp_t1;}
                if (fi11>fi1) {tp_t=(tp_t+tp_tmax)/2; tp_tmin=tp_t1;}
                if (fi11==fi1) return tp_t;
            }
            return tp_t;
        }
        function dp (p) {
            return 622*p/(101325-p*1);
        }
        
        jQuery("[name=type]").click(function() {
            jQuery("#N2").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#i2").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#t2").prop('disabled', !jQuery("#ad").is(':checked'));
            jQuery("#N2_status").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#i2_status").prop('disabled', jQuery("#ad").is(':checked'));
            jQuery("#t2_status").prop('disabled', !jQuery("#ad").is(':checked'));
        });
        jQuery(".point1").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) {
                jQuery('#' + jQuery(this).attr("id")+'_status').prop('checked', true); 
                jQuery('#'+jQuery(this).attr("id")+'_status').trigger('change');
                //document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            } else {
                recount_id();
            }
        });
        jQuery(".point2").on('input', function() {
            if (document.getElementById(jQuery(this).attr("id")+'_status').checked==false) document.getElementById(jQuery(this).attr("id")+'_status').checked=true;
            recount_id();
        });
        jQuery(".par").on('input', function() {
            recount_id();
        });
        jQuery(".point1_status").change(function(){
            ide3=jQuery(this).attr("id").replace('_status','');
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            e3=document.getElementById(ide3+'_status');
            var arr=['d1','p1','tr1'];
            var arr1=[]; arr1['d1']='влагосодержание'; arr1['p1']='парциальное давление'; arr1['tr1']='точку росы';
            if (e3.checked==false) {
                e3.checked=true;
                alert ('Нельзя снимать галочки. Просто выберите другие параметры')
            } else if ((arr.indexOf(ide3)!=-1) && (arr.indexOf(ide2)!=-1)) {
                e3.checked=false;
                alert ('Нельзя выбрать '+arr1[ide2]+' и '+arr1[ide3]+', так как это взаимосвязанные параметры')
            } else {
                e1.checked=false;
                chk_value1++;
                e3.value='c'+chk_value1;
                e3.checked=true;
                
                if (arr.indexOf(ide3)!=-1) {
                    for (var j=0;j<=2;j++) {
                        if (ide3!=arr[j]) {
                            document.getElementById(arr[j]+'_status').disabled=true;
                            document.getElementById(arr[j]).disabled=true;
                        }
                    }
                } else {
                    for (var j=0;j<=2;j++) {
                        document.getElementById(arr[j]+'_status').disabled=false;
                        document.getElementById(arr[j]).disabled=false;
                    }
                }
            }
            recount_id();
        });
        function recount_id() {
            e1=document.querySelector('input[value="c'+(chk_value1-1)+'"]');
            ide1=e1.getAttribute("id").replace('_status','');
            e2=document.querySelector('input[value="c'+chk_value1+'"]');
            ide2=e2.getAttribute("id").replace('_status','');
            idi1=document.getElementById(ide1).value;
            idi2=document.getElementById(ide2).value;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_humi', {ide1 : ide1, ide2 : ide2, idi1 : idi1, idi2 : idi2, ajax : 1}, function(ret){
                ret1=ret.split("|");
                jQuery('#t1').val(ret1[0]);  t1=ret1[0];
                jQuery('#fi1').val(ret1[1]);
                jQuery('#d1').val(ret1[2]);  d1=ret1[2];
                jQuery('#i1').val(ret1[3]);  i1=ret1[3];
                jQuery('#p1').val(ret1[4]);
                jQuery('#tr1').val(ret1[5]);
        		data[point1].data=[[d1,t1]];
    
                e2=document.querySelector("input.point2_status[type='radio']:checked");
                ide2=e2.getAttribute("id").replace('_status','');
                idi2=document.getElementById(ide2).value;

                if (jQuery("#ad").is(':checked')==true) type=1; else type=0;
                jQuery.post('/wp-admin/admin-ajax.php?action=calc_id_diagram_humi', {t1 : t1, d1 : d1, i1 : i1, G1 : jQuery("#G1").val(), ide2 : ide2, idi2 : idi2, type: type, proc : 'humi', ajax : 2}, function(ret){
                    ret1=ret.split("|");
                    jQuery('#t2').val(ret1[0]);  t2=ret1[0];
                    jQuery('#fi2').val(ret1[1]);
                    jQuery('#d2').val(ret1[2]);  d2=ret1[2];
                    jQuery('#i2').val(ret1[3]);
                    jQuery('#p2').val(ret1[4]);
                    jQuery('#tr2').val(ret1[5]);
                    jQuery('#N2').val(ret1[6]);
                    jQuery('#W2').val(ret1[7]);
                    data[point2].data=[[d2,t2]];
                    data[line1].data=[[d1,t1],[d2,t2]];
                    
                    jQuery('#tmax').val(Math.max(TmaxDef, Math.min(TmaxMax, Math.max(Math.ceil(t1/5)*5, Math.ceil(t2/5)*5))));
                    jQuery('#tmin').val(Math.min(TminDef, Math.max(TminMin, Math.min(Math.floor(t1/5)*5, Math.floor(t2/5)*5))));
                    jQuery('#dmax').val(Math.max(DmaxDef, Math.min(DmaxMax, Math.max(Math.ceil(d1/5)*5, Math.ceil(d2/5)*5))));
                    jQuery('#dmin').val(Math.min(DminDef, Math.max(DminMin, Math.min(Math.floor(d1/5)*5, Math.floor(d2/5)*5))));
                    id_draw();
                    jQuery('#error1').text(ret1[8]);
                });
            });
    	}

		function id_draw() {
            
        	data = new Array();
    
            for (var i=0; i<=9; i+=1) {
                data[i] = {color: 'black', lines: {lineWidth: (i==9)?1:0.5}, shadowSize:0, data: []};
            }
            
            tmin=jQuery('#tmin').val()*1;
            tmax=jQuery('#tmax').val()*1;
        	for (var t = tmin; t <= tmax; t += 0.5) {
        	    for (var i=0; i<=9; i+=1) {
        	        if ((t>=0) || ((t<0) && (i%2==1))) data[i].data.push([dp(pt(t)*(i+1)/10), t]);
        	    }
        	}
    
            imin=jQuery('#tmin').val();
            imax=(1.01+0.00197*jQuery('#dmax').val())*jQuery('#tmax').val()+2.493*jQuery('#dmax').val();
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
                if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;

        	    data.push({color: 'black', lines: {lineWidth: (i%10==0)?1:0.5}, shadowSize:0, data: [[0,i/1.01],[d1/3, (i-2.493*d1/3)/(1.01+0.00197*d1/3)],[d1*2/3, (i-2.493*d1*2/3)/(1.01+0.00197*d1*2/3)],[d1, (i-2.493*d1)/(1.01+0.00197*d1)]]});
        	}
        	    
        	t1 = jQuery('#t1').val();
        	d1 = jQuery('#d1').val();
        	t2 = jQuery('#t2').val();
        	d2 = jQuery('#d2').val();
        	point1=data.length;
            data.push({color: 'red',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d1,t1]]});
        	point2=data.length;
            data.push({color: 'blue',  points: {show: true}, lines: {lineWidth: 1}, shadowSize:0, data: [[d2,t2]]});
        	line1=data.length;
            data.push({color: 'green',  points: {show: false}, lines: {lineWidth: 2}, shadowSize:0, data: [[d1,t1],[d2,t2]]});

    		plot = jQuery.plot(jQuery("#placeholder"), data, {
                xaxis: {min:jQuery('#dmin').val(), max:jQuery('#dmax').val()},    
                yaxis: {min:jQuery('#tmin').val(), max:jQuery('#tmax').val()},
            });

            label_draw();
    	}

		function label_draw() {
		    o = plot.pointOffset({x:jQuery('#d1').val(),y:jQuery('#t1').val()});
            jQuery("#placeholder").append("<div id='point1_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:red'><b>т.1</b></div>");
		    o = plot.pointOffset({x:jQuery('#d2').val(),y:jQuery('#t2').val()});
            jQuery("#placeholder").append("<div id='point2_label' style='position:absolute;left:"+(Math.min(659,Math.max(0,o.left))+5)+"px;top:"+(Math.min(763,Math.max(0,o.top))-17)+"px;color:blue'><b>т.2</b></div>");
            for (var i=0; i<=9; i+=1) {
                x1=dp(pt(jQuery('#tmax').val())*(i+1)/10);
                if ((x1>jQuery('#dmin').val())&&(x1<jQuery('#dmax').val())) {
                    o = plot.pointOffset({x:x1,y:jQuery('#tmax').val()});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-5)+"px;top:"+(o.top-17)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                } else {
                    y1=tdfi(jQuery('#dmax').val(),(i+1)*10);
                    if ((y1>jQuery('#tmin').val())&&(y1<jQuery('#tmax').val())) {
                        o = plot.pointOffset({x:jQuery('#dmax').val(),y:y1});
                        jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left+5)+"px;top:"+(o.top-5)+"px;color:#666;font-size:smaller'>"+(i+1)*10+"%</div>");
                    }
                }
            }
        	for (var i=imin; i<=imax; i++) {
        	    d1=i/(2.493+1/2.493);
        	    if (i>-30) d1+=10;
        	    if (i>-25) d1-=1;
        	    if (i>-20) d1-=1;
        	    if (i>-10) d1-=2.5;
        	    if (i>0) d1-=2;
        	    if (i>10) d1-=2;
        	    if (i>20) d1-=2;
        	    if (i>30) d1-=1.5;
        	    if (i>50) d1-=1.5;
        	    if (i>80) d1-=1.5;
        	    if (i>=250) d1+=1.5;
        	    if (i<=-20) d1=1.43;
        	    if (i%5==0) d1+=0.15;
        	    if (i%10==0) d1+=0.15;
        	    t1=(i-2.493*d1)/(1.01+0.00197*d1);
    
        	    if ((i%10==0)&&(d1<jQuery('#dmax').val())&&(d1>jQuery('#dmin').val())&&(t1>(jQuery('#tmin').val()*1+1)&&(t1<(jQuery('#tmax').val()*1+1)))) {
                    o = plot.pointOffset({x:d1,y:t1});
                    jQuery("#placeholder").append("<div style='position:absolute;left:"+(o.left-2)+"px;top:"+(o.top+2)+"px;color:#666;font-size:smaller'>"+i+"</div>");
        	    }
        	}
    	}
    	
        jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef);
        jQuery(".sel").click(function(){jQuery(this).select()});
        jQuery(".dot").click(function(){jQuery('#tmax').val(TmaxDef); jQuery('#tmin').val(TminDef); jQuery('#dmax').val(DmaxDef); jQuery('#dmin').val(DminDef); id_draw();});

        jQuery("#tmin").on('input', function(){if(this.value<TminMin)this.value=TminMin;   if(this.value*1>=jQuery('#tmax').val()*1)this.value=jQuery('#tmax').val()*1-1; id_draw()});
        jQuery("#tmax").on('input', function(){if(this.value>TmaxMax)this.value=TmaxMax;   if(this.value*1<=jQuery('#tmin').val()*1)this.value=jQuery('#tmin').val()*1+1; id_draw()});
        jQuery("#dmin").on('input', function(){if(this.value<DminMin)this.value=DminMin;   if(this.value*1>=jQuery('#dmax').val()*1)this.value=jQuery('#dmax').val()*1-1; id_draw()});
        jQuery("#dmax").on('input', function(){if(this.value>DmaxMax)this.value=DmaxMax;   if(this.value*1<=jQuery('#dmin').val()*1)this.value=jQuery('#dmin').val()*1+1; id_draw()});

    	id_draw();
    	recount_id();
    });
</script>

    <table id='calc_table'><tbody>
		<tr>
			<th colspan=4>Настройка ID-диаграммы <span class='dot'>по умолчанию</span></th>
		</tr>
		<tr>
			<td colspan=2>Минимальная температура</td>
			<td><input class='sel bez_radio' type='number' id='tmin' value='-20' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Максимальная температура</td>
			<td><input class='sel bez_radio' type='number' id='tmax' value='40' min='-100' max='100' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Минимальное влагосодержание</td>
			<td><input class='sel bez_radio' type='number' id='dmin' value='0' min='0' max='50' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td colspan=2>Максимальное влагосодержание</td>
			<td><input class='sel bez_radio' type='number' id='dmax' value='50' min='0' max='100' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<th colspan=4>Расчет увлажнителя по ID-диаграмме</th>
		</tr>
		<tr>
			<td>Тип увлажнителя</td>
			<td colspan=3><input type='radio' id='ad' name='type' class='par' checked/><label for='ad'>Адиабатический</label>&nbsp;&nbsp;&nbsp;<input type='radio' id='el' name='type' class='par' /><label for='el'>Пароувлажнитель</label></td>
		</tr>
		<tr>
			<td colspan=2>Расход воздуха</td>
			<td><input type='number' id='G1' value='1000' class='par bez_radio' min='0' step='1'/></td>
			<td>м<sup>3</sup>/ч</td>
		</tr>
		<tr>
			<th>Параметр</th>
			<th style='color:red;'>Точка 1</th>
			<th style='color:blue;'>Точка 2</th>
			<th></th>
		</tr>
		<tr>
			<td>Температура</td>
			<td><input class='point1_status' id='t1_status' type='checkbox' value='c2' checked /> <input class='sel point1' type='number' id='t1' value='20' step='1'/></td>
			<td><input class='point2_status' id='t2_status' type='radio' name='radio_p2' /> <input class='sel point2' type='number' id='t2' value='30' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td>Влажность, %</td>
			<td><input class='point1_status' id='fi1_status' type='checkbox' value='c1' checked />  <input class='sel point1' type='number' id='fi1' value='50' min='0' step='1'/></td>
			<td><input class='point2_status' id='fi2_status' type='radio' name='radio_p2' checked /> <input class='sel point2' type='number' id='fi2' value='90' min='0' min='100' step='1'/></td>
			<td>%</td>
		</tr>
		<tr>
			<td>Влагосодержание, г/кг</td>
			<td><input class='point1_status' id='d1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='d1' value='' min='0' step='1'/></td>
			<td><input class='point2_status' id='d2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='d2' value='' min='0' step='1'/></td>
			<td>г/кг</td>
		</tr>
		<tr>
			<td>Энтальпия</td>
			<td><input class='point1_status' id='i1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='i1' value='' step='1'/></td>
			<td><input class='point2_status' id='i2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='i2' value='' step='1' disabled/></td>
			<td>кДж/кг</td>
		</tr>
		<tr>
			<td>Парц.давление, кПа</td>
			<td><input class='point1_status' id='p1_status' type='checkbox' value='c0' />           <input class='sel point1' type='number' id='p1' value='' min='0' step='0.1'/></td>
			<td><input class='point2_status' id='p2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='p2' value='' min='0' step='0.1'/></td>
			<td>кПа</td>
		</tr>
		<tr>
			<td>Точка росы, °С</td>
			<td><input class='point1_status' id='tr1_status' type='checkbox' value='c0' />          <input class='sel point1' type='number' id='tr1' value='' step='1'/></td>
			<td><input class='point2_status' id='tr2_status' type='radio' name='radio_p2'/>         <input class='sel point2' type='number' id='tr2' value='' step='1'/></td>
			<td>°С</td>
		</tr>
		<tr>
			<td colspan=2>Расход воды, кг</td>
			<td><input class='point2_status' id='W2_status' type='radio' name='radio_p2'/>          <input class='sel point2' type='number' id='W2' value='' min='0' step='1'/></td>
			<td>кг/ч</td>
		</tr>
		<tr>
			<td colspan=2>Потребляемая мощность, кВт</td>
			<td><input class='point2_status' id='N2_status' type='radio' name='radio_p2' disabled/> <input class='sel point2' type='number' id='N2' value='' min='0' step='1' disabled/></td>
			<td>кВт</td>
		</tr>
		<tr>
            <td colspan=4 id='error1' style='color: #f00; font-size: smaller;'></td>
		</tr>
	</tbody></table>
	<div id='zzz'></div>

	<div class="demo-container">
		<div id="placeholder" class="demo-placeholder"></div>
	</div>
    
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Электронная ID-диаграмма и расчет параметров влажного воздуха онлайн</title>
		<link>https://mir-klimata.info/elektronnaya-id-diagramma-i-raschet-parametrov-vlazhnogo-vozduha-onlajn/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Thu, 14 Oct 2021 08:43:17 +0000</pubDate>
				<category><![CDATA[Программы расчета]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[Теория и практика]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=31084</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
    <style>
		input[type="number"] {width: 100px;}
		.dot {border-bottom: 1px dotted black; font-weight:normal; font-size:smaller; float:right;}
		.dot:hover {cursor:pointer;}
		
		table {margin: 0 auto};
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}

        .demo-container {
            max-width:100%;
        	box-sizing: border-box;
        	width: 100%;
        	height: 800px;
        	padding: 20px 25px 15px 10px;
        	margin: 15px auto 30px auto;
        	border: 1px solid #ddd;
        	background: #fff;
        	background: linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
        	background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
        	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        	-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        	-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .demo-placeholder {
        	width: 100%;
        	height: 100%;
        	font-size: 14px;
        	line-height: 1.2em;
        	background: #fff;
            background: url('/images/logo-mkhwh-300x95.png') center repeat-y;
            background-size: contain;
        }
        @media (max-width:767px) {
            table td { padding: 0px; }
            table { font-size: 10px; }
            .demo-placeholder { font-size: 10px; }
            .demo-container { height: 500px; padding: 3px; }
            input[type="number"] { width: 50px; }
        }
    
    </style>
    <script src="/wp-content/themes/Newspaper/flot/jquery.flot.js"></script>
    <script src="/wp-content/themes/Newspaper/flot/flot_script.js"></script>
<table><tbody>
		<tr>
			<th colspan=2>Настройка ID-диаграммы <span class='dot'>по умолчанию</span></th>
		</tr>
		<tr>
			<td>Минимальная температура</td>
			<td><input class='sel' type='number' id='tmin' value='-20' min='-100' max='100' step='1'/> °С</td>
		</tr>
		<tr>
			<td>Максимальная температура</td>
			<td><input class='sel' type='number' id='tmax' value='40' min='-100' max='100' step='1'/> °С</td>
		</tr>
		<tr>
			<td>Минимальное влагосодержание</td>
			<td><input class='sel' type='number' id='dmin' value='0' min='0' max='50' step='1'/> г/кг</td>
		</tr>
		<tr>
			<td>Максимальное влагосодержание</td>
			<td><input class='sel' type='number' id='dmax' value='50' min='0' max='100' step='1'/> г/кг</td>
		</tr>
		<tr>
			<th colspan=2>Расчет ID-диаграммы</th>
		</tr>
		<tr>
			<th>Параметр</th>
			<th style='color:red;'>Точка 1</th>
		</tr>
		<tr>
			<td>Температура</td>
			<td><input id='t1_status' type='checkbox' onchange="upd_chkbox('t1')" value='c2' checked /><span id='t1_span'> </span><input class='sel' type='number' id='t1' onkeyup="upd_input('t1')" onmouseup="upd_input('t1')" value='20' step='1'/> °С</td>
		</tr>
		<tr>
			<td>Влажность</td>
			<td><input id='fi1_status' type='checkbox' onchange="upd_chkbox('fi1')" value='c1' checked /><span id='fi1_span'> </span><input class='sel' type='number' id='fi1' onkeyup="upd_input('fi1')" onmouseup="upd_input('fi1')" value='50' min='0' step='1'/> %</td>
		</tr>
		<tr>
			<td>Влагосодержание</td>
			<td><input id='d1_status' type='checkbox' onchange="upd_chkbox('d1')" value='c0' /><span id='d1_span'> </span><input class='sel' type='number' id='d1' onkeyup="upd_input('d1')" onmouseup="upd_input('d1')" value='' min='0' step='1'/> г/кг</td>
		</tr>
		<tr>
			<td>Энтальпия</td>
			<td><input id='i1_status' type='checkbox' onchange="upd_chkbox('i1')" value='c0' /><span id='i1_span'> </span><input class='sel' type='number' id='i1' onkeyup="upd_input('i1')" onmouseup="upd_input('i1')" value='' step='1'/> кДж/кг</td>
		</tr>
		<tr>
			<td>Парц.давление</td>
			<td><input id='p1_status' type='checkbox' onchange="upd_chkbox('p1')" value='c0' /><span id='p1_span'> </span><input class='sel' type='number' id='p1' onkeyup="upd_input('p1')" onmouseup="upd_input('p1')" value='' min='0' step='0.1'/> кПа</td>
		</tr>
		<tr>
			<td>Точка росы</td>
			<td><input id='tr1_status' type='checkbox' onchange="upd_chkbox('tr1')" value='c0' /><span id='tr1_span'> </span><input class='sel' type='number' id='tr1' onkeyup="upd_input('tr1')" onmouseup="upd_input('tr1')" value='' step='1'/> °С</td>
		</tr>
	</tbody></table>
	<div id='zzz'></div>

	<div class="demo-container">
		<div id="placeholder" class="demo-placeholder"></div>
	</div>
    
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Расчет расхода холодоносителя</title>
		<link>https://mir-klimata.info/raschet-rashoda-holodonositelya/</link>
		
		<dc:creator><![CDATA[Редакция МКХ]]></dc:creator>
		<pubDate>Tue, 23 Feb 2021 21:16:44 +0000</pubDate>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[Программы расчета]]></category>
		<guid isPermaLink="false">https://mir-klimata.info/?p=29237</guid>

					<description><![CDATA[Расчет расхода холодо- или теплоносителя – одна из задач, с которой сталкиваются инженеры в ходе проектирования и наладки систем холодоснабжения. Например, если известна холодопроизводительность чиллера, то часто требуется определить расход жидкости в системе. И наоборот, если на схеме указан расход холодоносителя, нужно определить, какую холодильную мощность он обеспечит. Расчет расхода холодоносителя в системе онлайн Для [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Расчет расхода холодо- или теплоносителя – одна из задач, с которой сталкиваются инженеры в ходе проектирования и наладки систем холодоснабжения. Например, если известна холодопроизводительность чиллера, то часто требуется определить расход жидкости в системе. И наоборот, если на схеме указан расход холодоносителя, нужно определить, какую холодильную мощность он обеспечит.</p>
<h1>Расчет расхода холодоносителя в системе онлайн</h1>
<p>Для расчета расхода холодоносителя онлайн воспользуйтесь калькулятором ниже. В качестве исходных данных должна быть указана холодильная мощность системы и параметры холодоносителя.</p>
<p>Если же известен расход холодоносителя и его параметры, программа определит холодопроизводительность системы.</p>
<p style="text-align: center;"><a href="https://hvac-school.ru/course/dpo_mp3/" rel="nofollow noopener" target="_blank"><strong>Научиться рассчитывать холодоноситель и проектировать чиллерные системы</strong></a></p>

	<style>
		label {display: block; float:left; padding: 2px 10px 0 0;}
		input[type="number"] { width: 100px; }
		
		table, tr, th, td {border-collapse: collapse; border: solid #eee 1px;}
		th, td {padding: 5px;}
		th {background: #eee;}
		span.razm {display:inline-block; width:50px; text-align:left;}
	</style>

	<table>
		<tr>
			<th colspan=2>Расчет расхода холодоносителя в системе онлайн</th>
		</tr>
		<tr>
			<td><label for='Q'>Холодильная/тепловая мощность:</label></td>
			<td><input type='number' id='Q' onkeyup="recount_section()" onmouseup="recount_section()" value='100' step='1' min='0'/> кВт</td>
		</tr>
		<tr>
			<td><label for='W_type'>Тип жидкости:</label></td>
			<td><select id='W_type' onchange="recount_pc('W_type', 'p', 'c')">
				<option value='1000' data-c='4.2'   data-type='1' selected>Вода</option>
				<option value='1018' data-c='4.025' data-type='1'>Этиленгликоль 10%</option>
				<option value='1035' data-c='3.85'  data-type='1'>Этиленгликоль 20%</option>
				<option value='1053' data-c='3.675' data-type='1'>Этиленгликоль 30%</option>
				<option value='1070' data-c='3.5'   data-type='1'>Этиленгликоль 40%</option>
				<option value='1087' data-c='3.325' data-type='1'>Этиленгликоль 50%</option>
				<option value='1105' data-c='3.15'  data-type='1'>Этиленгликоль 60%</option>
				<option value='-1'   data-c='-1'    data-type='0'>Другая жидкость</option>
			</select></td>
		</tr>
		<tr>
			<td><label for='Th'>Плотность жидкости:</label></td>
			<td><input type='number' id='p' onkeyup="recount_section()" onmouseup="recount_section()" value='1000' step='1' disabled/> кг/м<sup>3</sup></td>
		</tr>
		<tr>
			<td><label for='Th'>Теплоемкость жидкости:</label></td>
			<td><input type='number' id='c' onkeyup="recount_section()" onmouseup="recount_section()" value='4.2' step='0.1' disabled/> кДж/(кг·°C)</td>
		</tr>
		<tr>
			<td><label for='Th'>Температура прямого потока:</label></td>
			<td><input type='number' id='Th' onkeyup="recount_section()" onmouseup="recount_section()" value='7' step='1'/> °C</td>
		</tr>
		<tr>
			<td><label for='Tt'>Температура обратного потока:</label></td>
			<td><input type='number' id='Tt' onkeyup="recount_section()" onmouseup="recount_section()" value='12' step='1' /> °C</td>
		</tr>
		<tr>
            <td colspan=2 id='error' style='color: #f00; font-size: smaller;'></td>
		</tr>
		<tr>
			<th colspan=2>Результаты расчета</th>
		</tr>
		<tr>
			<td rowspan=5>Расход холодоносителя</td>
			<td align=right><span id='G1'></span> <span class='razm'>м<sup>3</sup>/c</span></td>
		</tr>
		<tr><td align=right><span id='G2'></span> <span class='razm'>м<sup>3</sup>/ч</span></td></tr>
		<tr><td align=right><span id='G3'></span> <span class='razm'>л/с</span></td></tr>
		<tr><td align=right><span id='G4'></span> <span class='razm'>кг/с</span></td></tr>
		<tr><td align=right><span id='G5'></span> <span class='razm'>кг/ч</span></td></tr>
		<tr><td colspan=2>&nbsp;</td></tr>



		<tr>
			<th colspan=2>Расчет холодильной/тепловой мощности блока по расходу онлайн</th>
		</tr>
		<tr>
			<td><label for='G'>Расход жидкости:</label></td>
			<td>
                <input type='number' id='G' onkeyup="recount_section1()" onmouseup="recount_section1()" value='10' step='1' min='0'/> 
                <select id='Grazm' onchange="recount_section1()">
                    <option value='1'>м³/с</option>
                    <option value='3600'>м³/ч</option>
                    <option value='1000' selected>л/с</option>
                    <option value='-1'>кг/с</option>
                    <option value='-3600'>кг/ч</option>
                </select>
			</td>
		</tr>
		<tr>
			<td><label for='W_type1'>Тип жидкости:</label></td>
			<td><select id='W_type1' onchange="recount_pc('W_type1', 'p1', 'c1')">
				<option value='1000' data-c1='4.2'   data-type='1' selected>Вода</option>
				<option value='1018' data-c1='4.025' data-type='1'>Этиленгликоль 10%</option>
				<option value='1035' data-c1='3.85'  data-type='1'>Этиленгликоль 20%</option>
				<option value='1053' data-c1='3.675' data-type='1'>Этиленгликоль 30%</option>
				<option value='1070' data-c1='3.5'   data-type='1'>Этиленгликоль 40%</option>
				<option value='1087' data-c1='3.325' data-type='1'>Этиленгликоль 50%</option>
				<option value='1105' data-c1='3.15'  data-type='1'>Этиленгликоль 60%</option>
				<option value='-1'   data-c1='-1'    data-type='0'>Другая жидкость</option>
			</select></td>
		</tr>
		<tr>
			<td><label for='p1'>Плотность жидкости:</label></td>
			<td><input type='number' id='p1' onkeyup="recount_section1()" onmouseup="recount_section1()" value='1000' step='1' disabled/> кг/м<sup>3</sup></td>
		</tr>
		<tr>
			<td><label for='c1'>Теплоемкость жидкости:</label></td>
			<td><input type='number' id='c1' onkeyup="recount_section1()" onmouseup="recount_section1()" value='4.2' step='0.1' disabled/> кДж/(кг·°C)</td>
		</tr>
		<tr>
			<td><label for='Th1'>Температура прямого потока:</label></td>
			<td><input type='number' id='Th1' onkeyup="recount_section1()" onmouseup="recount_section1()" value='7' step='1'/> °C</td>
		</tr>
		<tr>
			<td><label for='Tt1'>Температура обратного потока:</label></td>
			<td><input type='number' id='Tt1' onkeyup="recount_section1()" onmouseup="recount_section1()" value='12' step='1' /> °C</td>
		</tr>
		<tr>
            <td colspan=2 id='error1' style='color: #f00; font-size: smaller;'></td>
		</tr>
		<tr>
			<th colspan=2>Результаты расчета</th>
		</tr>
		<tr>
			<td>Холодильная/тепловая мощность</td>
			<td align=center><span id='Q1'></span> кВт</td>
		</tr>
	</table>
	
	<script>
		function recount_pc(W_typet, pt, ct) {
			p=jQuery("#"+W_typet).val();
            c=jQuery("#"+W_typet+" option:selected").data(ct);
		    if (p>0) document.getElementById(pt).value = p;
		    if (c>0) document.getElementById(ct).value = c;
		    type=jQuery("#"+W_typet+" option:selected").data("type");
		    jQuery("input[id='"+ct+"']").prop('disabled', type);
		    jQuery("input[id='"+pt+"']").prop('disabled', type);
		    recount_section();
		    recount_section1();
		}
		function recount_section() {
			Q = document.getElementById('Q').value;
			p = document.getElementById('p').value;
			c = document.getElementById('c').value;
			Tt = document.getElementById('Tt').value;
			Th = document.getElementById('Th').value;

		    ajax=1;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_water_flow', {Q : Q, p : p, c : c, Tt : Tt, Th : Th, ajax : ajax}, function(ret){
                ret1=ret.split("|");
    			document.getElementById('G1').innerHTML = ret1[0];
    			document.getElementById('G2').innerHTML = ret1[1];
    			document.getElementById('G3').innerHTML = ret1[2];
    			document.getElementById('G4').innerHTML = ret1[3];
    			document.getElementById('G5').innerHTML = ret1[4];
    			document.getElementById('error').innerHTML = ret1[5];
            });
		}
		function recount_section1() {
			G = document.getElementById('G').value;
			Grazm=jQuery("#Grazm").val();
			p = document.getElementById('p1').value;
			c = document.getElementById('c1').value;
			Tt = document.getElementById('Tt1').value;
			Th = document.getElementById('Th1').value;

		    ajax=2;
            jQuery.post('/wp-admin/admin-ajax.php?action=calc_water_flow', {G : G, Grazm : Grazm, p : p, c : c, Tt : Tt, Th : Th, ajax : ajax}, function(ret){
                ret1=ret.split("|");
    			document.getElementById('Q1').innerHTML = ret1[0];
    			document.getElementById('error1').innerHTML = ret1[1];
            });
		}
		recount_section();
		recount_section1();
	</script>
<p>Для удобства пользователей онлайн-калькулятор сразу выдает расход в м<sup>3</sup>/с, м<sup>3</sup>/ч, л/с, кг/с и кг/ч.</p>
<h1>Как определить расход холодоносителя в системе холодоснабжения</h1>
<p>Базовая формула, на основе которой выполняются вычисления, имеет следующий вид:</p>
<p><strong>Q = c ·</strong><strong> m ·</strong><strong> dT</strong>, где</p>
<ul>
<li>Q – количество теплоты</li>
<li>с – теплоемкость теплоносителя</li>
<li>m – масса теплоносителя</li>
<li>dT – изменение температуры теплоносителя (разница температур между прямым и обратным потоками)</li>
</ul>
<p>Данная формула статична: в ней нет такого параметра, как время. Поэтому, например, в ней фигурирует масса теплоносителя, а не его расход. Чтобы придать динамики, нужно обе части уравнения разделить на время. Тогда слева от знака равенства будет мощность, а справа вместо массы – расход теплоносителя. Получим:</p>
<ul>
<li><strong>M = </strong><strong>Q<sub>Х</sub> / (с · </strong><strong>dT)</strong> – для массового расхода (кг/с)</li>
<li><strong>G = </strong><strong>Q<sub>Х</sub> / (с · ρ · </strong><strong>dT)</strong> – для объемного расхода (м<sup>3</sup>/с)</li>
</ul>
<p>Важный момент – не запутаться в размерностях. В первую очередь это касается расхода. Чтобы получить расход в м<sup>3</sup>/с, надо расход в м<sup>3</sup>/ч разделить на 3600, а расход в л/с разделить на 1000. Если мощность измеряется в Вт, то теплоемкость следует брать в Дж/(кг·°С), если в кВт, то в кДж/(кг·°С).</p>
<h1>Упрощенные формулы для расхода теплоносителя в типовых случаях</h1>
<p>Полученные формулы могут быть упрощены, если известен тип теплоносителя и разность температур. Так, в подавляющем большинстве систем холодоснабжения применяется чистая вода (ρ = 1000 кг/м<sup>3</sup>; с = 4.2 кДж/(кг·°С)) или 40% раствор этиленгликоля в воде (ρ = 1070 кг/м<sup>3</sup>; с = 3.5 кДж/(кг·°С)), а перепад температур составляет dT = 5°С.</p>
<p>Подставив указанные численные значения, получим для чистой воды:</p>
<ul>
<li><strong>M<sub>вода</sub> = </strong><strong>Q<sub>Х</sub> [кВт] / 21</strong> – массовый расход для чистой воды (кг/с)</li>
<li><strong>G<sub>вода</sub> = </strong><strong>Q<sub>Х</sub> [кВт] / 21</strong> – объемный расход для чистой воды (л/с)</li>
</ul>
<p>Для 40% раствора гликоля:</p>
<ul>
<li><strong>M<sub>40%ЭГ</sub> = </strong><strong>Q<sub>Х</sub> [кВт] / 17.5</strong> – массовый расход для 40% раствора гликоля (кг/с)</li>
<li><strong>G<sub>40%ЭГ</sub> = </strong><strong>Q<sub>Х</sub> [кВт] / 18.7</strong> – объемный расход для 40% раствора гликоля (л/с)</li>
</ul>
<p>Для быстрого укрупненного расчета можно принять единую формулу и для воды, и для гликоля: G = Q<sub>Х</sub> / 20 или Q<sub>Х</sub> · 5 / 100 (умножить на 5 и отнять два нуля).</p>
<p>Например, при Q<sub>Х</sub> = 200 кВт получим точный расход воды G = 200/21 = 9,5л/с и расход гликоля 10,7л/с, а укрупненная формула даст результат 200/20 = 10л/с.</p>
<p>И наоборот, если на схеме указан расход по воде G = 17.5л/с при dT = 5°С, то для определения холодильной мощности блока нужно умножить этот расход на 20: Q<sub>Х</sub> = 17.5 · 20 = 350кВт (точное значение 367кВт).</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
