Перейти до публікації
Пошук в
  • Додатково...
Шукати результати, які містять...
Шукати результати в...

Sattva

Пользователи
  • Публікації

    11
  • Зареєстрований

  • Відвідування

Усі публікації користувача Sattva

  1. Связь между желаемой температурой в помещении температурой теплоносителя и температурой окружающей среды видна на графике ниже. Как видим, температурные кривые рассчитаны так, чтобы сформировать в помещении температуру около 20 С. По коду мы видим, как автор решает задачу "сдвига" температуры в помещении: float temp_k = 0; // Поправка на желаемую комнатную температуру (сдвиг температурной кривой при изменении желаемой температуры) // desired - Желаемая температура в помещении // float delta_k = 3; // Шаг поправки комнатной температуры в °С // Поправка на желаемую комнатную температуру, кривые расчитаны на желаемую температру 20°С // Tk = (Tu — 20) × 5 temp_k = (desired - 20) * delta_k; // => сдвиг температурной кривой
  2. Спасибо. Это важное замечание, которое нужно учесть, так как я и забыл об этом и вот почему. Для котла, который в квартире с двумя комнатами и кухней+санузлами это справедливо. Если же это 3-этажный коттедж с более чем 10 жилыми комнатами или 12 этажное здание с десятками квартир, то температура в комнатах не учитывается котлом или тепло-пунктом. Она регулируется термоголовками радиаторов. Важно лишь задать верно температуру теплоносителя. Приблизительно внутренняя температура состоит из таких параметров: Количество отопительных приборов (радиаторы, конвекторы, теплые полы, регистры - отопительные трубы большого диаметра, теплые плинтуса и стены, инфракрасные обогреватели и другие источники тепла). Теплоизоляция ограждающих конструкций. Под ними мы подразумеваем наружные стены, окна, двери, кровлю, полы нижнего этажа, фундамент или цоколь — в общем, всё, что так или иначе контактирует с менее нагретой окружающей средой. Тепловая инертность отапливаемого сооружения, то есть скорость изменения его температуры при определенной разнице температур. Это суммарная теплоемкость отапливаемых элементов. Инертность легкого каркасного дома, например, намного ниже, чем у дома кирпичного. Система должна адаптироваться к тепловой инертности сооружения. Для начала мы можем задавать это вручную. Это как раз указанная вами температура внутри дома. Воздухообмен в помещениях. Когда мы открываем окна, чтобы проветрить комнату, нагретый воздух из нее сменяется более холодным наружным. С воздухообменом уносится от 10 до 30 % тепла. Время разогрева системы отопления в зависимости от длины и количества теплотрасс, а так же мощности котла — система должна подстраивать алгоритмы работы, не только учитывая параметры зданий, но и свои собственные характеристики (например, типы радиаторов, этажность здания). Заданные пользователем минимумы и максимумы температур. Например, можно заставить систему греть «чуть сильнее», когда на улице слякоть и создать атмосферу тепла и уюта даже если на улице не очень холодно или ограничить максимальную температуру в целях экономии. Потому и задача у меня разобраться в параболах для расчета теплоносителя, в соответствии с температурой за бортом и потерями каждого конкретного дома. Это мы выверим экспериментально на базе данных с множества датчиков и зададим с сервера. А потом замеряем по комнатам / квартирам и сделаем выводы. Как я понимаю, Maxim Vdovin (код которого приведен), так же не учитывал температуру в комнате, так как делал для частного дома с множеством комнат.
  3. Годы прошли. Домена больше нет. Ссылка не работает. Я же решаю ту же задачу построения графиков. Получается:
  4. Как вы верно заметили, ESP32 это для обучения, то есть любой желающий разберется. Язык программирования С++ тоже не уникален. Ничего сложного там нет. Код заказчик получил. Ну, а электроника фабричная, легко повторяемая (что и сделано мною, пока едет нужная Заводская конфигурация). Что за плата такая? Пока умолчу название. Конфигурацию описал. Большинство ваших тезисов верны с поправкой на год, эдак 2010. Все же за 12 последних лет рынок сильно изменился. Сейчас спроектировать и запустить в производство, если вдруг нужно, можно за несколько недель. При наличии опытного образца - за несколько дней. Так же никто не мешает иметь запас изделий на случай выхода из строя. Развернуть новый веб-сервер на случай смерти разработчика можно за 1 рабочий день. И, кстати, никого я не убалтывал. Ко мне пришел заказчик, который сам может построить простой контроллер, а так же запрограммировать ПЛК и попросил сделать что-то посложнее. Так и полетели. Какая-то реклама услуг по разработке получается. Цель 1: поделиться найденным кодом от Maxim Vdovin. Цель 2: подобрать рабочие графики для погодозависимой автоматики управления отоплением, а не услуги свои рекламировать. По результату испытаний отпишусь. Вы же почему-то подняли философский вопрос: Следует ли самоделки (по факту фабричный контроллер на базе ESP32 с выданным исходным кодом) ставить на ответственные объекты, в случае смерти / ухода разработчика? Как мне на это реагировать, работая в отрасли разработок и прототипирования более 4 лет, при том, что тема не об эффективности работы ESP32 в сравнении с ПЛК? В качестве альтернативы вы предложили Программируемый логический контроллер "Омрон" (если я верно понял), что сразу отброшено, как решение. Скажу больше: заказчик не идиот, у него есть 4 ПЛК по $1000 каждый какого-то именитого бренда. Они его не устраивают совершенно. Не сбивайте меня, пожалуйста.
  5. Кстати, одно из мест, которое подтверждает использование параболы: temp_n = (a * x * x) + (b * x) + c; Строка 54, файл controller.ino
  6. Чтобы закрыть тему прошивки Maxim Vdovin привожу ЕГО код расчета температуры контура отопления: github.com/maxvdovin/termostat/blob/master/termostat/controller.ino // Настройки float curve = 1.6; // Кривая отопления float delta_t = 5; // Шаг поправки термостата в °С float delta_k = 3; // Шаг поправки комнатной температуры в °С // Функция расчитывает температуру контура отопления // Подробнее тут: https://wdn.su/blog/1154 // float desired - Желаемая температура в доме // float in - Фактическая температура в доме // float out - Фактическая наружая температура float getController(float desired, float in, float out) { float a, b, c, x, t; float temp_n = 0; // Рассчетная температура контура отопления на основе температурной кривой float temp_t = 0; // Поправка термостата (если желаемая температура сильно отличается от фактической) float temp_k = 0; // Поправка на желаемую комнатную температуру (сдвиг температурной кривой при изменении желаемой температуры) float result = 0; // Температура контура отопления котла, возвращаемый результат // Расчет поправки термостата // Tt = (Tu — T2) × 5 t = desired - in; // Ограничиваем влияние термостата if (t > 2) t = 2; if (t < -2) t = -2; temp_t = t * delta_t; // Рассчитываем поправку термостата // Поправка на желаемую комнатную температуру, кривые расчитаны на желаемую температру 20°С // Tk = (Tu — 20) × 5 temp_k = (desired - 20) * delta_k; // Если кривая отопления больше 1,5, то используем явно заданную кривую // Подробнее тут: https://wdn.su/blog/1287 if (curve > 1.5) { // Кривая задается с шагом 1 градус от +30 до -30 int i = round(30 - out); if (i < 0) i = 0; if (i > 60) i = 60; // Матрица с кривой: iv_curve[0] - температура контура отопления при +30, iv_curve[60] - при -30 int curve_explicit[] = {1, 3, 5, 7, 10, 12, 14, 16, 18, 20, 21, 23, 25, 27, 29, 30, 32, 34, 35, 37, 38, 40, 41, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 69, 69, 69, 70, 70, 70}; temp_n = curve_explicit[i]; } else { // Рассчитытваем температура контура отопления на основе кривой отопления // Tn = ax2 + bx + c // a = -0,21k — 0,06 // b = 6,04k + 1,98 // с = -5,06k + 18,06 // x = -0.2*t1 + 5 x = (-0.2 * out) + 5; a = (-0.21 * curve) - 0.06; b = (6.04 * curve) + 1.98; c = (-5.06 * curve) + 18.06; temp_n = (a * x * x) + (b * x) + c; } // Расчетная температура конура отопления // T = Tn + Tk + Tt result = temp_n + temp_k + temp_t; // Ограничиваем температуру if (result > 75) result = 75; if (result < 0) result = 0; return result; }
  7. После рядя махинаций, удалось собрать формулу, для построения графика, который очень похож на температурные кривые 2.0 (красная) и 2.5 (синяя).
  8. Спасибо за конструктивную критику. Уже на 2 объектах работает. Делаем еще для двух. Это прямо традиция: все мои коммерчески успешные проекты получают подобный отзыв в начале пути. По истине, признак хорошего начинания, когда опытные люди говорят "не имеет смысла".
  9. Для построения параболы используется функция вида: Y = ax2 + bx + c Она называется квадратичной и графиком ее является парабола. Если эту параболу положить на бочок и взять левую часть, то получим именно температурные кривые.
  10. Идея написать пост родилась по ходу изучения того, что есть погодозависимое управление отоплением с учетом теплопотерь. Тема для меня новая и требует изучения. Именно на этом форуме нашел вот такой пост: Великолепный standov подсказал ссылку: На 2022 год mxjournal.ru - оказался нерабочим, так как был личным сайтом Maxim Vdovin - PHP-разработчик, который сменил домен. Теперь его блог на новом ресурсе: wdn.su Статья, которая нас интересует: Группа тем о разработке контроллера и прошивке wdn.su/blog/1154 Новая прошивка wdn.su/blog/1472 Сама Прошивка Контроллера для погодозависимого управления отоплением здесь: github.com/maxvdovin/termostat Эта новая ссылка на прошивку Maxim Vdovin одна из причин начать тему. Ну, и раз тема создана, поделюсь размышлениями на тему погодозависимого управления. Основная задача: расчет целевой температуры теплоносителя в системе отопления. Входные данные: температура за окном. Основа расчета: замудренные температурные кривые. P. S. Кривые сильно напоминают Параболу.
  11. Разрабатываю прошивку контроллера для управления пунктом отопления. Главные задачи: погодозависимое управление отоплением с учетом теплопотерь, сбор данных на свой сервер, удаленное управление, удаленное конфигурирование. Коммерческие решения сразу отпадают, так как используют закрытые протоколы и свои сервера. Платы с операционной системой и прочими нежными местами - долой. Программируемые логические контроллеры - тоже долой. Особенности: 9 датчиков температуры DS18B20 (возможно будет больше). 8 входов 12/24 В гальванически развязанных для наблюдения за работой клапанов и насосов 8 выходов транзисторных для управления реле 12 / 24 / 220 В Силовыми нагрузками управляет релейный шкаф Данные раз в 20 сек .. 10 мин отправляются на сервер Связь: WiFi, Ethernet Отладка: Bluetooth, Serial Monitor Память: минимально, состояние выходов RS-485: Да База данных: MySQL (Maria DB) + свои страницы на PHP Сервер 1: Web LAMP (Linux, Apache, MySQL, PHP) Сервер 2: MQTT Mosquitto (для отладки и работы приложения на Android / iOS) Микроконтроллер: ESP32-Wroom (Dev Kit V1 или LuaNode32) Настройка конфигурации: Web-страница, Android приложение, Bluetooth Паяю пару прототипов, пока фабричные контроллеры едут из Китая. Пишу прошивку.
×
×
  • Створити...