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

"Народный контроллер" для теплового насоса

Тема в разделе "Геотермальные тепловые насосы", создана пользователем Pav2000, 21.03.16.

Статус темы:
Закрыта.
  1. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    На UNO у меня ПИНОВ не хватило, решил передавать показания датчиков через TX - RX на другую UNO, а ей уже управлять еще одним ЭРВ... На DUO должно хватить, правда я еще не смотрел, сколько сейчас ПИНОВ занято?
     
  2. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Отчет о проделанной работе.
    1. Устранена критическая ошибка в парсере запросов (выход за границы диапазона в некоторых вариантах запросов).
    2. Добавлен сторожевой таймер (wdt), теперь зависание контролера на 8 секунд приводит к его сбросу. Для корректной работы WDT надо править стандартные файлы IDE (правленные файлы в архиве).
    3. Распаян часовой кварц на дуне, запущены встроенные часы. НО при сбросе или отключении питания они сбрасываются (надо еще цепи питания и сброса переделывает для устранения сброса часов). Сделана обработка двух запросов на получение времени и даты. В дальнейшем будут использованы часы I2C и по ним будет при старте устанавливаться время при отсутствии инета.
    4. Сделана синхронизация времени с NTP сервером при старте. При наличии интернета часы работают штатно.
    5. Сделана обработка всех необходимых запросов для привязки датчиков температуры. Поддерживаться три типа датчиков ds18b20 ds18s20 ds1822/
    6. Сделана обработка всех необходимых запросов экрана "Состояние".

    Поглядеть можно здесь http://31.130.206.212/v1

    На следующей неделе в планах начать собирать макет - собрать в кучу due, w5200, rtc, шаговик, реле и ds18b20.

    ЗЫ. Пришел второй комплект, пока не могу запустить второю сетевую плату - она с самого начала была кривая. Сейчас то работает то нет, пока причину не нашел.
     

    Вложения:

    • 20160513_100011.jpg
  3. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    А кварц какой? на фото почти не видно...
     
  4. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    @Sheeny, традиционно должен быть часовой...
     
  5. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Кварц часовой частота 32 кгц с копейками. Я снял его со строй материнской платы.
    Подключение немного не по даташиту (по нему еще два конденсатора 20 пик на землю надо, площадки есть но уж больно они мелкие). Может не завестись. Нужен кварц с минимальной емкостью.
     
  6. Sheeny
    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881

    Sheeny

    Живу здесь

    Sheeny

    Живу здесь

    Регистрация:
    25.05.10
    Сообщения:
    740
    Благодарности:
    881
    Адрес:
    Ивантеевка
    можно к ножкам кварца подпаять... а площадки на плате да, под безвыводные керамические конденсаторы
     
  7. Ljutik
    Регистрация:
    21.02.11
    Сообщения:
    1.925
    Благодарности:
    898

    Ljutik

    инженер-теоретик

    Ljutik

    инженер-теоретик

    Регистрация:
    21.02.11
    Сообщения:
    1.925
    Благодарности:
    898
    Адрес:
    Москва
    Стандартный конденсатор поверхностного монтажа. При небольшой сноровке, паять даже легче чем выводной. Кому нужны такие - велкам.
     
  8. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Не прошло и года как добрался до алгоритма управления ЭРВ
    Предлагается рассмотреть пока алгоритм без датчиков давления.
    Моя конфигурация. Вопрос - у меня РТО стоит или нет (вроде стоит)?
    Дано
    Датчики температуры - читаются, усредняются, контролируются ошибки (это уже реализовано) т. е на это не смотрим.
    1. TOUT Температура улицы
    2. TIN Температура в доме
    3. TEVAIN Температура на входе испарителя (по фреону)
    4. TEVAOUT Температура на выходе испарителя (по фреону)
    5. TCONIN Температура на входе конденсатора (по фреону)
    6. TCONOUT Температура на выходе конденсатора (по фреону)
    7. TBOILER Температура в бойлере ГВС
    8. TACCUM Температура на выходе теплоаккмулятора
    9. TRTOOUT Температура на выходе RTO (по фреону)
    10. TCOMP Температура нагнетания компрессора

    Особая благодарность уважаемому SergCh за предоставленные исходники которые взяты за основу.
    Алгоритм работы ЭРВ (без датчика давления с РТО)
    1. При старте всего теплового насоса
    1.1 Задать первоначальное положение — середина рабочего диапазона ЭРВ (480-66)/2+66=273 шага) переменная step0. Максимум 480 шагов, открытие 66 шагов
    1.2 Уйти на паузу на время задержки (например 10 секунд) что бы появились нормальные (рабочие) температуры в ТН.
    1.3 Промежуточная величина интегрирования Cint=0, предыдущая ошибка pre_err=0
    1.4 Установить коэффициенты ПИД регулятора
    K_PRO - Пропорциональная составляющая = 10
    K_IN — Интегральная составляющая = 1
    K_DIF - Дифференциальная составляющая = 0 (при отладке)

    2. Цикл управления (если задержка кончилась) это постоянная интегрирования времени крутится пока включен ТН. Сейчас это 2 секунды.
    2.2 Собственно алгоритм управления ЭРВ
    2.1 Вычислить перегрев TEVAOUT - TCONIN = перегрев
    2.2 Вычислить ошибку err = перегрев-целевой_перегрев
    2.3 Проверка граничных условий
    2.3.1 Ограничение выражения step0+K_IN*Cint пределами (0 шагов- 480 шагов) относительно средней точки step0
    if (K_IN*Cint)<=(480-step0) Cint=Cint+err;}else {C=(480-step0)/K_IN;}
    2.3.2. Ограничение произведения step0+K_IN*Cint
    if (K_IN*Cint>=-step0){Cint=Cint+err;}else {C=-step0/K_IN;}
    2.4 Вычислить позицию шаговика ЭРВ pos=step0+K_PRO*err+K_IN*Cint+(K_DIF*(err-pre_err);
    2.5 Проверка границ шаговика
    if (pos>=480){pos=480;}
    if (pos<=66){pos=66;}
    2.6 Передвинуть шаговик ЭРВ в позицию (абсолютную) pos
    2.7 pre_err=err
    Конец цикла управления

    Вопросы
    1. Перегрев я правильно определяю для своей конфигурации?
    2. Если есть/нет РТО как это влияет на алгоритм?
    3. Предложения по алгоритму?
    4. Если есть датчик давления как это повлияет на определение перегрева?
    5. Первоначальные коэффициент подойдут? Хватит целых или нужна дробная часть?
    6. Задержка между стартом ТН и стартом алгоритма ЭРВ нужна? или выкинуть?
    7. Какой оптимальный период (постоянная интегрирования времени) для алгоритма ЭРВ, и нужно ли это менять пользователю (переменная или константа).

    PS Прошу писать по делу и конструктивно -)
     
  9. дед марос
    Регистрация:
    28.02.08
    Сообщения:
    5.540
    Благодарности:
    6.313

    дед марос

    печник ТН

    дед марос

    печник ТН

    Регистрация:
    28.02.08
    Сообщения:
    5.540
    Благодарности:
    6.313
    Адрес:
    Усть-Каменогорск
    Никак
    достаточно
     
  10. Saga
    Регистрация:
    28.11.09
    Сообщения:
    1.621
    Благодарности:
    1.391

    Saga

    Живу здесь

    Saga

    Живу здесь

    Регистрация:
    28.11.09
    Сообщения:
    1.621
    Благодарности:
    1.391
    Адрес:
    Россия, Московская область, Балашиха, Железнодорож
    В Ивантеевке можно пробурить 50 метров обычной прялкой, которую переносят двое рабочих. В собраном состоянии занимает 1 м2
     
  11. SergCh
    Регистрация:
    23.01.09
    Сообщения:
    3.261
    Благодарности:
    2.310

    SergCh

    Живу здесь

    SergCh

    Живу здесь

    Регистрация:
    23.01.09
    Сообщения:
    3.261
    Благодарности:
    2.310
    Адрес:
    Москва
    @Pav2000,
    Постоянную времени интегрирования надо бы побольше сделать. От 30 секунд до нескольких минут.
    У данфоса вроде бы даже в инструкции по настройке их контроллера эрв были примеры коэффициентов для разных систем. Причём на уменьшение перегрева отклик сделать бы пошустрее, а на его увеличение можно не так торопиться.
    Да, коэффициенты пропорциональности и время интегрирования лучше было бы сделать настраиваемыми.
     
  12. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Поменял алгоритм согласно замечаний.

    Алгоритм работы ЭРВ (без датчика давления с РТО)
    1. При старте всего теплового насоса
    1.1 Задать первоначальное положение — середина рабочего диапазона ЭРВ (480-66)/2+66=273 шага) переменная step0. Максимум 480 шагов, открытие 66 шагов
    1.3 Промежуточная величина интегрирования Cint=0, предыдущая ошибка pre_err=0
    1.4 Установить коэффициенты ПИД регулятора. Их можно менять из веб морды, это целые значения.
    K_PRO - Пропорциональная составляющая (по умолчанию 10), диапазон допустимых значений 0-30
    K_IN — Интегральная составляющая (по умолчанию 1), диапазон допустимых значений 0-20
    K_DIF - Дифференциальная составляющая, (по умолчанию 0) диапазон допустимых значений 0-5
    T_IN - Постоянная интегрирования времени в секундах (по умолчанию 20) диапазон 5-600 T=T_IN

    2. Цикл управления это постоянная интегрирования времени (период цикла T) крутится пока включен ТН. Это есть алгоритм управления ЭРВ.
    2.1 Изменение постоянной интегрирования при чрезмерном отклонении ошибки от нулевой. Уменьшение постоянной времени в 2 раза при ошибке более 1.5 градусов в минус и 5 в плюс.
    if (err < -1.5 | err > 5) {T = T_IN / 2;} else {T = T_IN;}
    Изменение периода цикла управления T.
    2.2 Вычислить перегрев TEVAOUT - TCONIN = перегрев
    2.3 Вычислить ошибку err = перегрев-целевой_перегрев
    2.4 Проверка граничных условий
    2.5.1 Ограничение выражения step0+K_IN*Cint пределами (0 шагов- 480 шагов) относительно средней точки step0
    if (K_IN*Cint)<=(480-step0) Cint=Cint+err;}else {C=(480-step0)/K_IN;}
    2.5.2. Ограничение произведения step0+K_IN*Cint
    if (K_IN*Cint>=-step0){Cint=Cint+err;}else {C=-step0/K_IN;}
    2.6 Вычислить позицию шаговика ЭРВ (это и есть формула ПИД регулятора)
    pos=step0+K_PRO*err+K_IN*Cint+(K_DIF*(err-pre_err);
    2.7 Проверка границ шаговика
    if (pos>=480){pos=480;}
    if (pos<=66){pos=66;}
    2.8 Передвинуть шаговик ЭРВ в позицию (абсолютную) pos
    2.9 pre_err=err
    Конец цикла управления

    Прошу внимательно изучить и одобрить, и я начинаю кодить. Посмотрите диапазоны переменных параметров и их значения по умолчанию.

    Доп. вопросы.
    1. Есть конфигурации с датчиком давления. Как при этом определить перегрев (я хочу сделать единый алгоритм ЭРВ)?
    2. Отрицательный перегрев - это критическая ошибка и надо останавливать ТН?

    ЗЫ Жду реакции на описание алгоритма.
     
  13. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    По алгоритмам я слаб, могу только о допах рассказать:
    1) В конфигурациях с датчиком давления нужно иметь:
    - константу с типом хладагента.
    - таблицу соответствий давления-температуры хладагента.
    Температура кипения, вычисленная по давлению кипения и есть температура кипения, для расчета перегрева. Должна быть подставлена в TEVAOUT - TCONIN = перегрев вместо TCONIN.
    2) Отрицательным перегрев быть не может... да это критическая ошибка.
    Но есть нюанс! В режиме работы на охлаждение хладагент идет в другую сторону и перегрев нужно определять иначе.
     
  14. дед марос
    Регистрация:
    28.02.08
    Сообщения:
    5.540
    Благодарности:
    6.313

    дед марос

    печник ТН

    дед марос

    печник ТН

    Регистрация:
    28.02.08
    Сообщения:
    5.540
    Благодарности:
    6.313
    Адрес:
    Усть-Каменогорск
    Этим контрола грузить излишне - схемотехникой фреоновой)
     
  15. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    А вот у меня есть режим охлаждения - и мне нужно предусмотреть работу ЭРВ в режиме охлаждения.
    Тогда сразу еще вопрос
    При охлаждении перегрев будет также вычисляться TEVAOUT - TCONIN = перегрев? и он будет положительным? или отрицательным?
    Мне нужен универсальный алгоритм управления ЭРВ для нагрев/охлаждение и датчик давления есть/нет.
     
Статус темы:
Закрыта.