PDA

Просмотр полной версии : ПРИОРИТЕТЫ



deniska13
03.06.2020, 12:28
Добрый день, уважаемые коллеги! Есть такая задача: имеется несколько потребителей сети отопления (теплые полы, радиаторы, полотенцесушители, бойлер), естественно имеющие свои "ветки" с регулирующими клапанами с приводом, и заданной уставкой, задача состоит в том чтобы расставить приоритеты потребителей и если уставка потребителя не соответствует текущей температуре (можно добавить условие если клапан полностью при этом открыт какое-то время) то его уставка задается котлу. Попробую проще)...бойлер имеет самый высокий приоритет, затем идут полотенцесушители, радиаторы 2 эт., радиаторы 1эт., ТП 1эт, ТП 2эт, ТП 0эт., например: все у нас работало в нормальном режиме и у радиаторов 2эт. температура подачи стала ниже уставки (например на 5С) при этом клапан открыт на 100% в течении 5 минут ничего не меняется и уставку температуры радиаторов 2эт. задаем котлу и он начинает греть теплоноситель котлового контура до уставки радиаторов 2эт. + 10С, далее аналогичная ситуация происходит с полотенцесушителями (температура подачи у них по желанию заказчика выше), соответственно уставка температуры котла становится уставка полотенцесушителей + 10С ну и так далее.....мне нужно составить приоритеты, как это сделать программно и при этом чтобы код был "красиво" написан пока ничего не приходит в голову....может кто из вас даст какую-то идею как это можно реализовать, был бы очень признателен!)

lazy
03.06.2020, 14:11
Может так?
Допустим пять веток у каждой свой термометр складываем(или берем среднюю) и отправляем на вход пид регулятора котла. А у каждого термометра коэффициент (вес) сумма всех весов равна единице. (t1*k1 +...+ tn*kn)/n = ts, при k1 +...+ kn = 1
кофф-ты можно прикинуть по количеству теплоносителя в ветке. например

deniska13
03.06.2020, 14:51
Может так?
Допустим пять веток у каждой свой термометр складываем(или берем среднюю) и отправляем на вход пид регулятора котла. А у каждого термометра коэффициент (вес) сумма всех весов равна единице. (t1*k1 +...+ tn*kn)/n = ts, при k1 +...+ kn = 1
кофф-ты можно прикинуть по количеству теплоносителя в ветке. например

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

lazy
03.06.2020, 15:16
имелось ввиду "среднее арифметическое взвешенное" (в вики формулы есть)
и да. лажанулся я немного. с делением на n (надо на сумму весов)

выходит так (t1*k1 +...+ tn*kn) = ts

deniska13
03.06.2020, 22:52
имелось ввиду "среднее арифметическое взвешенное" (в вики формулы есть)
и да. лажанулся я немного. с делением на n (надо на сумму весов)

выходит так (t1*k1 +...+ tn*kn) = ts

Тут сложность в том, что заказчик хочет так чтобы котел не грел котловой контур когда в этом нет необходимости, если мы посчитаем средние значения температур с учетом приоритетов (предположим применив ваше решение), то мы получим текущее среднее например при практически закрытых клапанах потребителей, получается что им сейчас тепло не нужно а мы греем котловой контур. Он говорит что нужно отслеживать потребителей и необходимо ли им тепло в данный момент и тогда греть котловой контур на уставку запроса...как по мне это слишком сложный алгоритм в котором нет никакого смысла, так как лучше чтобы температура в котловом контуре была постоянной, а уже потребители расходовали сколько им необходимо...

melky
03.06.2020, 22:59
Основной приоритет это загрузка бойлера, остальное должно отключаться совсем, для быстрого нагрева бойлера.

А если у вас например требуют нагрева батареи скажем 65 гр, и тут появилась потребность в ТП, всего 40 гр ?
или никому кроме ТП не требуется ?

deniska13
03.06.2020, 23:40
Основной приоритет это загрузка бойлера, остальное должно отключаться совсем, для быстрого нагрева бойлера.

А если у вас например требуют нагрева батареи скажем 65 гр, и тут появилась потребность в ТП, всего 40 гр ?
или никому кроме ТП не требуется ?

про бойлер понятно, самый высокий приоритет, насосы отключается/клапаны закрываются/мощность котла на максимум итд, а вот ответов на Ваши вопросы у меня и нет), как по мне этот алгоритм, который хочет заказчик не реализуемый, либо будет очень громоздкий и глючный...просто может кто-то делал что-то подобное

melky
04.06.2020, 00:16
а чего он будет громоздким ? надо греть помещение, включаем согласно его уставки котел (ТП или батареи и т.д.), надо греть другое помещение, меняем уставку если ему требуется большая температура, а другому помещению с меньшей прикрываем клапан, так как для него Т больше чем надо. Если новому помещению нуна менье температура чем уже работает, не меняем уставку и открывам клапана под свою Т...

melky
04.06.2020, 08:35
Валенок а нафига тут мощности ? а схему автор и сам знает. Есть общие правила и теплоотдача разных систем. Если батареи стоят не переразмеренные под работу на пониженных температурах тут хоть что делай, а им надо подавать Т больше чем в ТП. да и бойлер там же, хочешь нагреть быстрее, остальное надо отрубить.

Eugene.A
04.06.2020, 08:51
Оставьте только приоритет ГВС, остальное - в топку!

melky
04.06.2020, 09:06
з.ы. я бы тоже оставил только приоритет ГВС, ну и контроль температур для разных систем. Если греем батареи, регулируем ТП исходя из Т уставки для батарей.
Если греть надо только ТП, то уставка для котла на Т теплых полов. Если бойлер только нагрелся, то соответственно регулировать и батареи и ТП исходя их текущей Т воды.

deniska13
04.06.2020, 10:41
а чего он будет громоздким ? надо греть помещение, включаем согласно его уставки котел (ТП или батареи и т.д.), надо греть другое помещение, меняем уставку если ему требуется большая температура, а другому помещению с меньшей прикрываем клапан, так как для него Т больше чем надо. Если новому помещению нуна менье температура чем уже работает, не меняем уставку и открывам клапана под свою Т...

В том то и дело что на каждом потребителе стоит свой регулирующий 3-х ходовой электропривод, работающий по уставке рассчитанной по наружному воздуху. Здесь суть в том, что нужно написать код, который будет давать уставку котлу в зависимости от нужды потребителей...средняя уставка тут не пойдет, так как бойлеру нужно 70, понятно что при нем все нагрузки отключаются, можно впринципе его отбросить...радиаторам 65, два этажа с цоколем, 3 ветки радиаторов, по приоритетам сначала 2 эт, потом 1эт., потом цоколь, потом ТП в аналогичной последовательности...если все потребители то это выглядет так (бойлер, полотенцесушители, радиаторы 2 этаж, радиаторы 1 этаж, радиаторы 0 этаж, ТП второй этаж, ТП 1 этаж, ТП 0 этаж)

deniska13
04.06.2020, 10:42
Оставьте только приоритет ГВС, остальное - в топку!

Думаете нет смысла городить этот алгоритм? я вот тоже думаю что это не будет работать так как хочет заказчик, херня получится...

deniska13
04.06.2020, 10:53
Ни схем, ни мощностей, ни объема бойлера и т.п. Советами - завалили.
А от исходных данных совет может быть от "да нормуль" до "ваще хрень"

Может Вы подскажете как лучше такой алгоритм реализовать? Вы в программировании сильны!) Возможно сталкивались с такой задачей. С бойлером все понятно, у него наивысший приоритет, все остальные нагрузки отключаем как только бойлер "просит" нагрева. А вот как быть с остальными...я набросал код, но он мне самому не нравится, суть его в том, что я вычитаю из уставки текущее значение температуры, и если оно меньше 5С (ну или другого значения) и в то же время клапан этого потребителя открыт на 100% то выставляем приоритет (в соответствии с приоритетами нагрузок...если это радиаторы 2эт (например) то присваиваем приоритет 3 и переходим в цикл CASE там у нас значение уставки котла получается равной текущей уставки радиаторов 2эт + 10С. Но этот код мне не нравится, он не будет работать когда например у нас потребуют тепла два контура ТП и полотенцесушители...нужно как-то рассчитать необходимое среднее для всех потребителей учитывая положение клапана и температуру подаваемую потребителю...(например ход привода радиаторов это соответствует температуре от 10С (нижняя температура тоже не понятно как ее определить, типа комнатная) до 65С значит следя за положением привода в % и текущей температуре можно определить сколько еще необходимо подать чтобы выйти на уставку, такой алгоритм реализовать на всех потребителях, затем складывать все эти полученные значения и делить на их количество (количество может быть разным так как некоторые клапана могут полностью закрываться) и вот эту уставку подавать котлу....но блин как говорится легко сказать а трудно сделать, у меня нет никакой идеи как это программно реализовать...может через интегрирование....помогите, у вас по более знаний в программировании)

melky
04.06.2020, 11:03
deniska13 не совсем так. Для батарей своя температура, с учетом коррекции от уличного воздуха, для ТП своя с учетом коррекции. Бойлеру пофигу, выбирается по заказу и от улицы не зависит. По этому если вы греете батареи, то запускаете котел на Т для батарей + коррекция от улицы и тут помещения с ТП тоже изъявили желание нагреваться, а Т воды то под батареи, соответственно трех-ходовой ТП должен учесть, что котел сейчас греет батареи и надо исходя из этой Т отрегулировать 3-х ходовой. А если котел не работал и тут потребовался нагрев ТП, то надо сказать котлу запуститься на Т для ТП. А далее опять батареи надумали греться, должны поднять Т уставки для котла и регулятор ТП должен это увидеть и принять меры.

Вам нужен какой-то код, который будет выполнять функцию диспетчера.
например Батареи - "нас надо греть" - диспетчер: "больше никого не надо?", запускает котел на Т для батарей, остальное закрыто.
Тут простунлся ТП - "нас тоже надо греть" - диспетчер: "я грею батареи" и варианты - "ТП, пошли на" или "Ок, ТП, открываю тебе воду с учетом того, что я грею батареи". Батареи нагрели, снизил уставку Т котла, отрегулировал по необходимости регулировку ТП.
Если ТП проснулись раньше с запросом "нас надо греть", диспетчер сказал котлу на какой Т запустится...

И так по кругу. Не нужны тут приоритеты, кроме бойлера.

Если просто, ваш приоритет это потребители у кого температура выше, остальных регулируете от этой тепературы. Ну а Бойлер отключает всех.

И кстати регулировка от макс Т более правильная. Простая ситуация, бойлер только нагрелся, Т в котле еще 70гр. Тут ТП заявляет что его надо греть, вроде все выключено, но вода еще даже остывать не начала после бойлера, хоть вы и скажете котлу 45 гр например, но при открытом 3-х ходовом для ТП и уставке 45гр у вас сперва попрет в ТП вода с Т 70 гр.
Так что контроль Т в любом случае должен быть а не только знание, что она перед этим была 70 или 65 или 58...

deniska13
04.06.2020, 11:43
deniska13 не совсем так. Для батарей своя температура, с учетом коррекции от уличного воздуха, для ТП своя с учетом коррекции. Бойлеру пофигу, выбирается по заказу и от улицы не зависит. По этому если вы греете батареи, то запускаете котел на Т для батарей + коррекция от улицы и тут помещения с ТП тоже изъявили желание нагреваться, а Т воды то под батареи, соответственно трех-ходовой ТП должен учесть, что котел сейчас греет батареи и надо исходя из этой Т отрегулировать 3-х ходовой. А если котел не работал и тут потребовался нагрев ТП, то надо сказать котлу запуститься на Т для ТП. А далее опять батареи надумали греться, должны поднять Т уставки для котла и регулятор ТП должен это увидеть и принять меры.

Вам нужен какой-то код, который будет выполнять функцию диспетчера.
например Батареи - "нас надо греть" - диспетчер: "больше никого не надо?", запускает котел на Т для батарей, остальное закрыто.
Тут простунлся ТП - "нас тоже надо греть" - диспетчер: "я грею батареи" и варианты - "ТП, пошли на" или "Ок, ТП, открываю тебе воду с учетом того, что я грею батареи". Батареи нагрели, снизил уставку Т котла, отрегулировал по необходимости регулировку ТП.
Если ТП проснулись раньше с запросом "нас надо греть", диспетчер сказал котлу на какой Т запустится...

И так по кругу. Не нужны тут приоритеты, кроме бойлера.

Если просто, ваш приоритет это потребители у кого температура выше, остальных регулируете от этой тепературы. Ну а Бойлер отключает всех.

И кстати регулировка от макс Т более правильная. Простая ситуация, бойлер только нагрелся, Т в котле еще 70гр. Тут ТП заявляет что его надо греть, вроде все выключено, но вода еще даже остывать не начала после бойлера, хоть вы и скажете котлу 45 гр например, но при открытом 3-х ходовом для ТП и уставке 45гр у вас сперва попрет в ТП вода с Т 70 гр.
Так что контроль Т в любом случае должен быть а не только знание, что она перед этим была 70 или 65 или 58...

ну да, я тоже так думаю, я Валенку это и описал...но для того чтобы высчитать точную устаку необходимую в данный момент, нужно ее рассчитать (это своего рода мощность), она должна рассчитываться исходя из положения клапана потребителя и диапазона температур для каждого потребителя (и вот вопросы: какой диапазон температур выставлять для радиаторов, ТП, и полотенцесушителей, этот диапазон это температура работы (радиаторы 45-65, ТП 20-40) или же температура возможной воды (радиаторы 10-65, ТП 10 - 40)) то есть получится такой алгоритм, например прямой теплоноситель радиаторов 60С, а нужно 65С, получается не хватает 5-10С чтобы радиаторы вышли в норму, то есть получается мне нужно сложить все разницы температур (уставка - текущее значение) и получится уставка для котла, при этом ограничить ее максимально возможной температурой на выходе котла (а это 80С)...вроде так наверное и да никаких приоритетов не нужно иначе получится каша какая-то...

deniska13
04.06.2020, 12:08
Изучив схему увидели что там не подмес, а тупой перепуск ?
А, ну да - "а нафига тут мощности ? а схему автор и сам знает"


А зачем мне это ? Я курсы по изучению кофейной гущи не проходил. А диапазон ответов показал выше.

Я просто думал, что Вы предложите какой-то, логичный для Вас, способ решения данной задачи и очень мне поможете)

deniska13
04.06.2020, 12:15
Изучив схему увидели что там не подмес, а тупой перепуск ?
А, ну да - "а нафига тут мощности ? а схему автор и сам знает"


А зачем мне это ? Я курсы по изучению кофейной гущи не проходил. А диапазон ответов показал выше.

Как Вы думаете мой вариант будет работать? уставка котла = [(уставка1 - тек.темп.1) + (уставка2 - теку.темп.2)+....+(уставка9 - тек.темп.9)]. Как считаете это будет работать?

deniska13
04.06.2020, 17:27
В некоторых случаях работать будет

хороший ответ, а в каких не будет?)...а если у меня будет поддерживаться минимальная температура котла, например 40С, далее прибавляем к этой температуре полученное значение по формуле которую ранее писал, это тоже не очень правильное решение будет?