Страница 2 из 10 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 93

Тема: ПИД регулятор на клапан

  1. #11
    Пользователь Аватар для Ефремов Николай
    Регистрация
    08.02.2008
    Адрес
    Кемерово
    Сообщений
    122

    По умолчанию

    Если интересно, посмотрите как я сделал импульсный ПИД-регулятор. Любым замечаниям буду рад.
    ** Ксожалению, много логических ошибок, которые надо исправлять**
    Вложения Вложения
    Последний раз редактировалось Ефремов Николай; 15.12.2014 в 15:50. Причина: ошибки

  2. #12
    Пользователь
    Регистрация
    09.02.2010
    Адрес
    Кубинка МО
    Сообщений
    12

    По умолчанию

    Наконец то!!!
    После двух месяцев трудов и поисков мне удалось наконец написать полностью работоспособный ШИМ для клапана без датчика положения.
    В проекте использовались только блоки из стандартной библиотеки CoDeSys и из Util собственно, сам ПИД регулятор, испытания проводил на этом стенде https://yadi.sk/i/0VWFUN4ecnPiQ
    ссылка на мой Яндекс диск. Как это не удивительно я не являюсь специалистом в области составления алгоритмов ПИД регулирования, но результат меня приятно удивил.
    Может мне показалось но мой ПИД регулятор на заданную уставку выходит лучше чем ТРМ212 почти без "проскока" и держит температуру -+ 1 гр. с от заданной уставки.
    Конечно алгоритм еще требует доработки, но проект полностью работоспособен, и может использоваться на реальных объектах регулирования.
    Тестировал в течении нескольких часов и остался доволен результатом. По его принципу написал алгоритм в CoDeSys v2.3 на ПЛК110, и также остался доволен результатом.
    И чему несказанно был рад, что, клапан не дергался туда-сюда почти сразу нашел нужную точку и встал в необходимое положение.
    Выкладываю проект в свободный доступ, ничего не закодировано и не запаролено. Буду рад любым доработкам и улучшениям, также надеюсь, что вы протестируете у себя на объектах, стенд стендом, а реальный объект, это совсем другое. Надеюсь что все выложил правильно на форуме и с открытием файла проекта проблем не возникнут, я новичок в этом деле.
    Стенд обрезано: Стенд упр..jpg
    Фото моих уставок P1010216.JPG
    Всем кто использует в своих проектах PID из Util, нужно иметь ввиду и предусмотреть способ сброса ПИДа при смене уставки, как показали мои наблюдения на некоторое время ему (ПИДу) первое время "сносит" "башню".
    А выражаясь грамотно происходит "удар" при регулировании. И это правильно, просто ПИД выдает результат с учетом новой уставки и накопленной старой интегральной составляющей.

    22.11.2014г.
    Тестировал ШИМ, и PID из библиотеки Util, на даче у своего коллеги (на форуме зарегистрирован как "Монтер", огромное ему спасибо), остались оба доволены результатом, правда в начале нам пришлось по-колдовать с Кp, Tn, Tv но результат получили хороший -+ 1,5 гр. после выхода на уставку 55гр., это при условии что газовый котел работал дискретно в диапазоне от 70гр. до 90гр..
    Я устранил проблему с "броском" во время смены уставки и добавил блок архивации (кому не нужно можно удалить) по двум параметрам.
    Скорректированный проект с архивацией также выкладываю (надеюсь все откроется без проблем).
    Фото объекта Клапан на даче.jpg
    Вложения Вложения
    Последний раз редактировалось Ворона; 13.01.2015 в 17:57.

  3. #13
    Пользователь
    Регистрация
    27.08.2011
    Адрес
    Курган
    Сообщений
    212

    По умолчанию

    В вашем проекте Ворона, используеться блок вашего изготовления с именем "Generator", в место него нельзя использовать блок "BLINK" ?

  4. #14

    По умолчанию

    Цитата Сообщение от Ворона Посмотреть сообщение
    По его принципу написал алгоритм в CoDeSys v2.3 на ПЛК110, и также остался доволен результатом.
    Проект на ПЛК110 интересно посмотреть.
    Последний раз редактировалось Newcomer; 18.11.2014 в 18:25.

  5. #15
    Пользователь
    Регистрация
    09.02.2010
    Адрес
    Кубинка МО
    Сообщений
    12

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Проект на ПЛК110 интересно посмотреть.
    Проект на CoDeSys V2.3 c панелью СП270 здесь.
    Поведение ПИДа при резкой смене уставки (нужно доработать ПИД должен быть сброшен после смены уставки) https://yadi.sk/i/CHKsfJOocnimA
    Поведение ПИДа при обычной регулировке https://yadi.sk/i/k7QCIGRYcniNX
    Также выкладываю файл панели.
    Вложения Вложения

  6. #16
    Пользователь
    Регистрация
    09.02.2010
    Адрес
    Кубинка МО
    Сообщений
    12

    По умолчанию

    Цитата Сообщение от kukla100 Посмотреть сообщение
    В вашем проекте Ворона, используеться блок вашего изготовления с именем "Generator", в место него нельзя использовать блок "BLINK" ?
    Генератор Blink "запоминает" состояние выхода после его "отключения" входом EN, и начинает работать с этого же состояния, а мне нужно что-бы он "заводился" с подачи "свежего" импульса.

  7. #17
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,318

    По умолчанию

    Цитата Сообщение от Ефремов Николай Посмотреть сообщение
    ШИМ и ПИД-регулятор вещи несовместимые..
    Несовместимы ? А мужики-то и не знали

    Если нету готового ШИМ на выходе, мастерим из Do
    Код:
    function psw : bool
    var_input
      in : real; //0..1.0
      period : time;
    ---------------
    psw := ((time_to_dword(time()) mod (time_to_dword(period))) / time_to_real(period)) < in;
    Теперь дружим с пидом

    Код:
    function_block pid_to_2psw
    var_input
      actual, set_point : real; //текучка и задание соотв
      period : time; //общий
    var_output
      plus, minus : bool;
    var
      pid : pid; //стандартный из util
    ---------------
    pid(
      actual := actual - set_point, //именно E на вход.
      set_point := 0, //именно 0, т.к. E=0 и есть цель
      y_min := -1,
      y_max := 1
      ... //тута сами
    );
    
    plus := psw(limit(0, pid.Y, 1), period); 
    minus := psw(abs(limit(-1, pid.Y, 0)), period);
    Дергание механизма ? Зона нечуйствительности около нуля соответственно знаку.
    Код:
    var_input
      n : real; //0..1.0
    ----
    pid(...);
    plus := psw(sel(pid.Y > n, 0, limit(0, pid.Y,1)),..);
    minus := psw(abs(sel(pid.Y < -n, 0, limit(0, pid.Y,1))),..);
    Сообсно всё.

    PS
    Просьба не поднимать баян про якобы кривой util.pid


    Всем кто использует в своих проектах PID из Util, нужно иметь ввиду и предусмотреть способ сброса ПИДа при смене уставки, как показали мои наблюдения на некоторое время ему (ПИДу) первое время "сносит" "башню".
    Потому что смена уставки для пида - то же что и скачок actual в другую сторону. Зачем тут ломать голову ?
    Хотите безударно - поставьте для уставки прокладку из ramp_real
    Код:
    var
      ramp : ramp_real;
    -----------
    ramp(in:=set_point, ...);
    pid(
      actual := actual - ramp.out,
      ...
    );
    ...
    Последний раз редактировалось Валенок; 19.11.2014 в 09:23.

  8. #18
    Пользователь Аватар для Ефремов Николай
    Регистрация
    08.02.2008
    Адрес
    Кемерово
    Сообщений
    122

    По умолчанию

    Несовместимы ? А мужики-то и не знали
    У нас в России мужики могут всякое совместить. А нормальный ПИД-регулятор находит равновесное положение системы за 3-4 импульса. Длительность этих импульсов разная: 1 длинный(пропорциональная часть) устанавливает регулирующий орган в положение близкое к равновесному, следующие 2-3 импульса короткие убирают ошибку рассогласования (интегральная часть). Дифференциальная составляющая вносит коррекцию в зависимости от скорости движения системы к равновесному состоянию. Правильному ПИД-регулятору не нужны прокладки из ramp. Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.

  9. #19
    Пользователь
    Регистрация
    09.02.2010
    Адрес
    Кубинка МО
    Сообщений
    12

    По умолчанию

    Цитата Сообщение от Ефремов Николай Посмотреть сообщение
    Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.
    Этим "недоразумением" компания "Овен" занимается в промышленных масштабах, и выпуском приборов которые по вашим словам также являются "недоразумением".
    Вы уверены что зарегистрировались на нужном форуме? Извините, но "выпендриватся" проще всего!
    Последний раз редактировалось Ворона; 20.11.2014 в 12:25.

  10. #20
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от Ефремов Николай Посмотреть сообщение
    У нас в России мужики могут всякое совместить. А нормальный ПИД-регулятор находит равновесное положение системы за 3-4 импульса. Длительность этих импульсов разная: 1 длинный(пропорциональная часть) устанавливает регулирующий орган в положение близкое к равновесному, следующие 2-3 импульса короткие убирают ошибку рассогласования (интегральная часть). Дифференциальная составляющая вносит коррекцию в зависимости от скорости движения системы к равновесному состоянию. Правильному ПИД-регулятору не нужны прокладки из ramp. Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.
    Не вижу реализации правильного, по-вашему мнению, ПИД-регулятора.
    Раз открыли глаза - покажите как правильно.

Страница 2 из 10 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Какой ПИД – регулятор выбрать на котёл ДЕ -16
    от Sasha55 в разделе Подбор Оборудования
    Ответов: 20
    Последнее сообщение: 02.04.2019, 16:02
  2. Ответов: 4
    Последнее сообщение: 01.11.2013, 17:42
  3. пид регулятор на плк160
    от smokin в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 20.09.2011, 15:49
  4. ПИД-регулятор на ПЛК100
    от Алексей в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 07.08.2008, 15:02
  5. ПИД регулятор на ПЛК150
    от zilog в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 17.03.2008, 18:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •