Последние статьи
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
- Использование солнечных панелей в качестве датчика освещенности
- Согласование датчиков с выходом типа TTL со стандартными входами контроллера
- DPS368 - датчик атмосферного давления индустриального класса повышенной точности
- DS18B20 Waterpoof - импортзамещение
- TMP117 - высокоточный датчик температуры с интерфейсом I2C
- MegaD-16R-XT - расширитель на 16 релейных выходов
- MegaD-2561-RTC V3 - больше портов, зуммер и ИОН
Расчет заморозков
03/04/2011 21:40:38
Заморозки на почве и облысенье леса,
небо серого цвета кровельного железа.
Выходя во двор нечетного октября,
ежась, число округляешь до "ох ты б#я".
(Иосиф Бродский, 1976)
Интересную идею подсказал постоянный пользователь сайта Ставр. Он прислал ссылку на статью, в которой предлагается рассчитывать вероятность ночных заморозков. Такой расчет интересен дачникам, сельским жителям - одним словом, всем, кто имеет дело с землей. Как и в случае предсказателя погоды Zambretti на основании длительных наблюдений за природой было установлено, что вероятность заморозков зависит от скорости изменения температуры в промежутке между часом дня и 9 часами вечера. Графически эту зависимость представил профессор Броунов следующим образом.
График вероятности ночных заморозков
По вертикальной оси обозначена температура воздуха в 9 часов вечера.
По горизонтальной оси - разница между температурой воздуха в 9 вечера и час дня.
Пользоваться этой схемой просто. Необходимо только определить в какой точке лежит пересечение двух этих параметров.
Но поскольку у нас установлены температурные датчики на улице (1-wire или в наружном блоке метеостанции), было бы интересно делать расчет заморозков автоматически. Сделать это совсем нетрудно. Необходимо только вспомнишь школьные уроки математики.
На рисунке выше показаны прямые. Любую прямую можно описать в виде функции
y = ax + b, где a и b - параметры, определяющие направление/наклон прямой.
Осталось только найти значения этих параметров. Для этого снова обратимся к учебнику. У нас имеется графическое представление функции, а, значит, мы знаем значения x и y функции.
a = (y2 – y1)/(x2 – x1)
b = ( y1 x2 – x1 y2 )/(x2 – x1)
Используя формулы, для каждого графика, задающего область вероятности заморозков, рассчитаем значения a и b и напишем программу на PHP.
Ставр прислал имеющиеся у него варианты скриптов на Perl и PHP, но я написал свою версию программы, учитывающую только определенную область температурных значений, в которых алгоритм дает адекватный результат.
<? if ( date('G') < 20 ) $z = "расчет возможен только после 21 часа"; else { // Считываем из БД или другим способом значение температуры в час дня $t13 = 9; // Считываем из БД или другим способом значение температуры в 21 час вечера $t21 = 4; $z = "0%"; $x = $t13 - $t21; if ( $t21 >= $t13 ) $z = "расчет невозможен. Температура растет"; elseif ( $t21 < 0 ) $z = "расчет невозможен. Температура ниже нуля"; elseif ( $t21 < 11 && $x < 11 ) { $t_graph = array( 0 => array(0.375, 11, 0), 1 => array(0.391, 8.7, 10), 2 => array(0.382, 6.7, 20), 3 => array(0.382, 4.7, 40), 4 => array(0.391, 2.7, 60), 5 => array(0.4, 1.6, 80)); $z = "100%"; for ( $i = 0; $i < count($t_graph); $i++ ) { $y1 = $t_graph[$i][0] * $x + $t_graph[$i][1]; if ( $t21 > $y1) { $z = $t_graph[$i][2]."%"; break; } } } } echo "Вероятность заморозков: $z"; ?>
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху
2015-02-06 10:46:06 | Gendrive
А как выяснить РЕАЛЬНЫЕ 13 и 21 час в данной местности? С учетом наших многочисленных переходов по времени плюс еще декретное время, какие цифры нужно подставлять в формулы?
2011-04-04 11:01:36 | Ставр
Вы как всегда все предельно четко и понятно обрисовали! Думаю, что мой пост можно и затереть, все равно он криво отобразился.
Кстати по ссылке, где описывается алгоритм вычисления, еще учитывается и точка росы. Там написано, что как правило температура не опускается ниже точки росы, поэтому о заморозке еще можно судить и по графику "Дью поинт".