Наверняка какую-то гадость подразумевает… под Брюсселе знаю Ватерлоо
Что касаемо кода - это не код, а какой-то огрызок без начала и конца. Он не компилируется.
Так что остаюсь при своем, нечего тут смотреть.
Наверняка какую-то гадость подразумевает… под Брюсселе знаю Ватерлоо
Что касаемо кода - это не код, а какой-то огрызок без начала и конца. Он не компилируется.
Так что остаюсь при своем, нечего тут смотреть.
Можно отправить товарища к знаменитой китайской горе ![]()
Да насрать.
Если он хочет отправить меня в брюсселье, как бы там город не назывался, пусть оплачивает билеты. А я с удовольствием
//--------------------------------------------------------------
void work_Relay() { // актуатор
if (stoppage) {
if ((millis() - closeAct) >= 20000) {
if (TempRoom < TroomSet - DIFF && ActuaStop) { // момент начала закрытия байпаса
count++;
Serial.print("counter :");
Serial.println(count);
Serial.println("актуатор закрывает байпас для прогреса батарей");
decoder.write1(opRelay, LOW); //выключаем реле
decoder.write1(clRelay, HIGH);
oled.drawBitmap(94, 0, icon16x16[2], 16, 16); // клапан прикрывается
}
if (TempRoom < TroomSet - DIFF && count == 6) { // момент полного закрытия байпаса
ActuaStop = 0;
strAct = 0;
count = 0;
Serial.println("актуатор ЗАКРЫЛ байпас ПОЛНОСТЬЮ ");
decoder.write1(opRelay, LOW); //выключаем реле
decoder.write1(clRelay, LOW);
oled.drawBitmap(94, 0, icon16x16[0], 16, 16); // клапан закрыт
}
if (TempRoom >= TroomSet - DIFF) { // после выполнения этого условия начинаеи работать вторая основноная часть
Serial.println("актуатор передал управление на регулеровку");
ActuaStop = 1;
strAct = 1;
}
Serial.print("strAct - ");
Serial.println(strAct);
closeAct = millis();
}
if (strAct) {
if ((millis() - tmr) >= (opening ? (SetSec * 1000) : 60000) && (TempRoom < TroomSet)) { //условие каждые 2 секунд включать реле на 60 секунд отключать.
opening = !opening;
Serial.println("включаем реле на приоткрытие XXXXX сек Вкл 1 мин Вык");
decoder.write1(opRelay, LOW); //выключаем реле
decoder.write1(clRelay, opening);
oled.drawBitmap(94, 0, icon16x16[2], 16, 16); // клапан приоткрывается
tmr = millis();
} else if (millis() - tmrWait >= 4000 && (TempRoom >= TroomSet)) {
Serial.println("Актуатор приостановился в каком-то положениии");
decoder.write1(opRelay, LOW); //выключаем реле
decoder.write1(clRelay, LOW);
oled.drawBitmap(94, 0, icon16x16[0], 16, 16); // клапан закрыт
tmrWait = millis();
} else if ((millis() - timer) >= (closing ? (SetSec * 1000) : 60000) && (TempRoom > TroomSet)) { //условие каждые 2 секунд включать реле на 60 секунд отключать.
closing = !closing;
Serial.println("включаем реле на закрытие XXXX сек Вкл 1 мин Вык");
decoder.write1(opRelay, closing); //выключаем реле
decoder.write1(clRelay, LOW);
oled.drawBitmap(94, 0, icon16x16[1], 16, 16); // клапан прикрывается
timer = millis();
}
}
}
Напиши пожалуйста словами принцип действия управления актуатором. Я за часик в своей ос это сделаю.
надо обдумать ! и технически описать
первая часть
TempRoom < TroomSet-DIFF
Температура в комнате ниже уставки минул дельта
Клапан перемещается в крайнее положение ( позиция 1), не важно в каком изначальном положении он был. Главное чтоб он закрывался на протяжении 120 сек. После этого реле отключаются и система ждет условия TempRoom >= TroomSet-DIFF
когда температура в комнате будет больше либо равно температуре уставки минус дельта
Вторая часть, часть работы по температуре в помещении
TempRoom < TroomSet
Температура в комнате ниже температуры уставки, в данный момент клапан должен быть либо в положении 1 либо прикрываться к нему.Принцип пошаговой регулировка ДОПУСТИМ 3 сек работы и 1.5-2 мин ожидания (не работает) смотрим на изменение температуры в помещении. ДА ТУТ СИСТЕМА ИНЕРТНА И МОЖЕТ ПОТРЕБУЕТСЯ ДРУГИЕ ВРЕМЕННЫЕ УСТАВКИ.
TempRoom >= TroomSet
Температура в помещении выше уставки реле выключаются оба заслонка замирает в каком-то положении , положение 3
TempRoom > TroomSet
Температура в помещении сильно выше уставки заслонка прикрывается в положение 2 либо в её сторону. Принцип пошаговой регулировка ДОПУСТИМ 3 сек работы и 1.5-2 мин ожидания (не работает) смотрим на изменение температуры в помещении. ДА ТУТ СИСТЕМА ИНЕРТНА И МОЖЕТ ПОТРЕБУЕТСЯ ДРУГИЕ ВРЕМЕННЫЕ УСТАВКИ.
Вторая часть повторяется постоянно регулируя температуру в комнате.
Если TempRoom >= TroomSet-DIFF
температура упала ниже данного условия, включается первая часть
Вроде как то так
я правильно понял, что у клапна два значения либо открыт либо закрыт?
нет варианта окрыт на половину, для подмешивания горячей воды в кольцо радиаторов?
все правильно поняли, в конструкции этих приводов стоят только концевики никакой обратной связи . По этому вся рабочая часть я так понимаю должна строится на шаговом движении, ХХХХ сек работы и ЧЧЧЧ сек остановки с обязательным сравнением регулируемой температуры с её уставкой. И в какой-то момент регулировка должна прийти в баланс, а заслонка как раз должна будет встать в каком-то нейтральном положении.
Кто мешает поставить такой привод:
https://aliexpress.ru/item/1005007197576369.html
И обратная связь есть, и управление пропорциональное.
все это можно сделать, А головняк себе сделать хочу, Просто хочу . Даже с термоголовкой на линии должен быть байпас. На первом этаже есть, а на втором не хочу все переделывать
Тогда тебе проще насос периодически включать и выключать, чем крутить актуатор.
Я на рециркуляцию ГВС поставил таймеры и время работы по несколько минут в назначенное время и каждый час по 1 минуте.
Получилось очень хорошо, и не холодная и не перегревается.
На самом деле вариантов много можно придумать, а вот так руки опускать, не ,не хочу не моё это. Все равно доведу то того состояния как это вижу я. ![]()
можно еще ввести параметр скорость температуры
как быстро она меняется VT=dT/dt
например за время прокачки/прогона всего контура
а от нее размах/отклонение задвижки
цель сделать VT=0
подскажите где прочитать по подробнее об формуле, а то пока не могу понять данные. d- это я так понимаю дельта, а вот что другое пока не понимаю, даже гугл предлагает ответы, а я не могу выбрать верный
Неправильно понимаете.
Любой учебник по дифференциальным уравнениям.
Андриано! Ты помнишь старую, черно-белую короткометражку “Математик и черт” с Кайдановским? Там было замечательное “3 в квадрате плюс 4 в квадрате, равно 5 в квадрате”! ![]()
Всё давно придумано до нас = ПИД регулятор. Тут придется смотреть методику настройки для инерционных процессов. Статей много и какая-нибудь да озарит нас сдвигом понимания
пример
Мне также интересен выше предложенный способ, как резервный режим управления при полностью открытой/полузакрытой/неисправной задвижке: где мы меняем период работы самого насоса “сколько-то десятков” минут в час. От частых пусков могут быть предположительно осложнения.
Возможно больший гистерезис температуры будет даже приятнее в жизни!