1 2 3 4 5 6 7 8 9 10 10/10 9,80оценок: 15

Автоматика управления ТТ котлами своими руками

Тема в разделе "Котлы, горелки, котельное об-е своими руками", создана пользователем Senkiivan, 28.03.14.

Метки:
  1. montirovka
    Регистрация:
    07.09.11
    Сообщения:
    165
    Благодарности:
    56

    montirovka

    Живу здесь

    montirovka

    Живу здесь

    Регистрация:
    07.09.11
    Сообщения:
    165
    Благодарности:
    56
    Адрес:
    Геленджик
    А все же, что может дать разряжение? У меня вместо датчика разряжения легко поставить датчик веса. Тем более датчики с платой дешевые (300-400 рэ). Заслонка действует на датчик веса, тем самым определяя разряжение (тягу) в котле. Но что этот параметр даст?
     
  2. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    На ум приходит только трубка микроманометра с тремя контактами и электролитом. Наклоняем её допустим шаговиком. И считаем шаги между срабатываниями.
    Или в U - образную вилку опускать перепад считать. В ней ноль не нужно выставлять. Остальное арифметика. Насколько соображу 20 паскалей соответствует 2 мм водяного столба.
     
  3. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Вести с зимней дачи выходного дня.
    ПИ регулятор отработал нормально. За бортом было -20. Решил попробовать встроить D составляющую. По наитию где то так. Правильно соображаю?
    /ПИД РЕГУЛЯТОР

    Err_T=Set_T-sensors.getTempC (sensor2);
    Int_Err=constrain (Int_Err+Err_T,-300,300);

    Dif_Err=(Err_T-Dif_Err); / новая строка
    Dif_Err=Err_T; /новая строка

    pos=(int)(P_gain*Err_T+I_gain*Int_Err+Dif_Err*D_gain+20); /для цикла 1 мин и периода 2ч I_gain =0,3 D_gain =2.4
     
  4. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Нет.
    У вас всегда дифференциал будет равен ошибке.
     
  5. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Dif_Err=(Err_T-prevErr);
    prevErr=Err_T;
    Так? Время поучавствует в Кd.
     
    Последнее редактирование: 27.12.21
  6. arsenty
    Регистрация:
    15.01.15
    Сообщения:
    3.095
    Благодарности:
    1.079

    arsenty

    Живу здесь

    arsenty

    Живу здесь

    Регистрация:
    15.01.15
    Сообщения:
    3.095
    Благодарности:
    1.079
    Ждём весны, ранее ж сказал. А там скетч будет похоже вааааще новый.
     
  7. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    да.
    В смысле?
     
  8. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Да это я маленько снова заплутал. У нас же коэффициенты уже приведены ко времени.
    Классическое начертание формулы сбило.
    Кстати поправку +20 в последнем скетче можно ввести как функцию температуры за бортом. Тогда при сбросе или перезагрузке интеграл почти готов. Сейчас при правке скетча он само собой пропадает, что и несколько сдерживает её. Хотя сейчас всё переменные могу вносить через блютуз.
    Но допустим строб от зависания можно прикрутить. Ну мало ли.
     
  9. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Немножко русифицировал заставку. Всех с Новым Годом! Тепла и взаимопонимания!
     

    Вложения:

    • IMG_20211229_123210.jpg
  10. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Я как обычно на даче. Топлю вторые сутки с Дифференциалом. Ушли качания температуры. Но его коэффициент увеличил впятеро от расчетного, что бы само собой отлавливать десятые градуса. Корректирует интеграл где в фазе, а где и наоборот. Вторая колонка датчик температуры помещения. В конце I, D, P и расчитанный угол сервы
     

    Вложения:

    • Screenshot_2022-01-01-23-22-43-855_de.kai_morich.serial_bluetooth_terminal.jpg
  11. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.411
    Благодарности:
    1.871

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.411
    Благодарности:
    1.871
    Адрес:
    Уфа
    Я правильно понимаю, что 0,2 гр температуры в помещении ловите изменением положения заслонки в 10-20 диапазоне в течении 20 минут. А если 20 минут заслонку не двигать - что будет?
     
  12. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Температура будет либо медленно подрастать до какого то момента баланса. Либо само собой падать. Если вдумчиво, то можно поймать положение заслонки для какой то определённой мощи. Которая по любому сползет в сторону уменьшения. Свойство бубы из за изменения площади теплосьема при прогорании закладки и её состава.
     
  13. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.411
    Благодарности:
    1.871

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.411
    Благодарности:
    1.871
    Адрес:
    Уфа
    Интересуют конкретные цифры. Без воды. Дел то - заслонку зафиксировать на 20 минут.
     
  14. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Приехал с дачи. Для Оксфорда два варианта. Само собой двухчасовое предварительное устаканивание.
    Первый. За бортом -6. Догорание оставшейся пол чурки от предыдущих выходных. Вторая колонка датчик температуры. Третья дымовые. В конце I, D, P и расчётный угол сервы. Она отключена. Запись угла идёт в небо.
    Screenshot_2022-01-08-18-31-27-583_de.kai_morich.serial_bluetooth_terminal.jpg
    На следующий день. Но новая полчурка и за бортом -14.
    Screenshot_2022-01-09-12-50-51-525_de.kai_morich.serial_bluetooth_terminal.jpg

    Вдогонку. Фото процесса. Свет в конце тоннеля то биш трубы подачи воздуха. До примерно 80 дымовых пламя. Ниже раскалённый уголь. Но мощь уже "околонулевая" и ПИД сбивается на интеграле. Сейчас ищу точку чёткого возврата.
    IMG_20220109_121627.jpg
    А вот фото разгона за два часа до вышеизложенного. Можно смотреть бесконечно
    IMG_20220109_101735.jpg
     
    Последнее редактирование: 09.01.22
  15. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    :hello:
    Приветствую всех! У меня снова незадача. Бьюсь написать ШИМ на mill is(). Компилятор пропускает, но оно не работает как регулируемый ШИМ. Ни с одним вариантом с использованием миллис.
    Один из вариантов. pos из под пида.
    Где ошибка?

    if (millis()-mil3<pos){
    digitalWrite (TEN,HIGH);/ включить тен
    }
    else{digitalWrite (TEN,LOW);
    }

    if (millis()-mil3>1000){mil3=millis();
    digitalWrite (TEN,LOW);
    }