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

Тема: Альтернатива ПИДу. Ненужная ерунда, или давно известный велосипед?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Мое мнение такое - качество регулирования вашего регулятора будет очень низким.

  2. #2
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Реальность гораздо хуже вами описанного. В автобусе те, кому холодно всегда сидят раздетые и на местах, расположенных прям под лючком, откуда дует.
    Те же, кому жарко сидят вдалеке от лючка, запакованные в полярные шубы "бир юса". Попытка пересадить "подлюков" на другие места или раздеть альпинистов ни к чему не приводит)
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  3. #3
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Причесал в итоге уравнение регулирования и получил соедующий результат.
    Величина управления раскладывается на три слагаемых.
    Первое пропорционально отстройке, второе пропорционально производной температуры, а третий зависит от истории работы нагревателя (фактически оно равно среднему значению мощности нагревателя за "интегральное" время).
    Таким образом, он почти совпадает с обычным ПИДом. Замена интегральной поправки по температуре на поправку связанную с историей работы однозначно положительно сказывается на регулировании. Эта поправка не срезается из-за достижения предельной мощности, как это происходит обычно. Но она и не приводит к запоздалому началу регулирования как это происходит в моей версии ПИД, где интегральная составляющая считается отдельно.
    Кроме того, этот регулятор наглядно показывает интересный факт: пропорциональный и дифференциальный коэффициент могут быть выбраны сколь угодно круто при условии, если между ними соблюдено адекватное соотношение. Если дифференциальное время оказывается слишком низким - возникает перерегулирование. Если слишком высоким - недорегулирование (при сколь угодно низком Xp!). Таким образом распространенный в интернете совет по наладке ПИД о том, чтобы поставить нулевое время дифференцирования и добиться пропорциональным коэффициентом отсуствия перерегулирования оказывается полной ерундой. Кстати до этого я исследовал ПИД аналитически и постоянно получал этот результат - что Xp можно задать сколь угодно крутым, и никак не мог поверить, что это действительно возможно, мне постоянно казалось, что я разучился решать дифференциальные уравнения и искал ошибки).

    Вобщем, теперь уже окончательно ясно, что нового регулятора как такового я не открыл, а открыл - адекватный метод вычисления интегральной поправки, коим и буду теперь пользоваться. Ну и плюс открыл неожиданные возможности наладки ПИД, о которых не знал раньше. Есть правда одно НО. Это сработает только если регулятор адекватно фильтрует входные данные и считает производную. Не все регуляторы адекватно считают производную - проверено на опыте)
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  4. #4

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Причесал в итоге уравнение регулирования и получил соедующий результат.
    Величина управления раскладывается на три слагаемых.
    Первое пропорционально отстройке, второе пропорционально производной температуры, а третий зависит от истории работы нагревателя (фактически оно равно среднему значению мощности нагревателя за "интегральное" время).
    Таким образом, он почти совпадает с обычным ПИДом. Замена интегральной поправки по температуре на поправку связанную с историей работы однозначно положительно сказывается на регулировании. Эта поправка не срезается из-за достижения предельной мощности, как это происходит обычно. Но она и не приводит к запоздалому началу регулирования как это происходит в моей версии ПИД, где интегральная составляющая считается отдельно.
    Кроме того, этот регулятор наглядно показывает интересный факт: пропорциональный и дифференциальный коэффициент могут быть выбраны сколь угодно круто при условии, если между ними соблюдено адекватное соотношение. Если дифференциальное время оказывается слишком низким - возникает перерегулирование. Если слишком высоким - недорегулирование (при сколь угодно низком Xp!). Таким образом распространенный в интернете совет по наладке ПИД о том, чтобы поставить нулевое время дифференцирования и добиться пропорциональным коэффициентом отсуствия перерегулирования оказывается полной ерундой. Кстати до этого я исследовал ПИД аналитически и постоянно получал этот результат - что Xp можно задать сколь угодно крутым, и никак не мог поверить, что это действительно возможно, мне постоянно казалось, что я разучился решать дифференциальные уравнения и искал ошибки).

    Вобщем, теперь уже окончательно ясно, что нового регулятора как такового я не открыл, а открыл - адекватный метод вычисления интегральной поправки, коим и буду теперь пользоваться. Ну и плюс открыл неожиданные возможности наладки ПИД, о которых не знал раньше. Есть правда одно НО. Это сработает только если регулятор адекватно фильтрует входные данные и считает производную. Не все регуляторы адекватно считают производную - проверено на опыте)
    а можете указать данный источник по поводу обнуления Д составляющей? это всё при также происходит при также обнулённой И составляющей?
    просто на 3 курсе учебника ТАУ банально видно что П регулятор всегда имеет перерегулирование + статическую погрешность регулирования, ПД - не такое перерегулирование как у П но всё равно не идеально.
    и только интеграл помогает нам в конечном счёте избавиться от статической погрешности ( хотя он и разносит колебания динамической )
    в общем лично моё мнение по теории и практике настройки - П - скорость выхода на уставку и окно статической погрешности, И - забываем про статику и уже настраиваем колебания кривой разгона , Д - ускоряем тех двух перцев , что перед ним.

    и дополню - в большинстве процессов степень затухания 1/3 считается оптимальной - крайне редко , где требуется более точный выход.

  5. #5
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Так изложи нам свою авторскую методику расчета коэффициентов ПИД регулятора.
    Могу предложить - согласно данной модели. На картинке: пропорциональный коэффициент, дифференциальное время, интегральное время, а ниже - добавка, которой нет в ПИД-регуляторах) Не могу сказать, как нужно её правильно учесть.
    temp2.jpg
    Кроме параметров, которые уже расшифровывались тау - это "крутизна управления". Нужно ставить в 2-3 раза больше, чем задержка от воздействия до реакции.

    Цитата Сообщение от Трофимов Артем Посмотреть сообщение
    просто на 3 курсе учебника ТАУ банально видно что П регулятор всегда имеет перерегулирование + статическую погрешность регулирования,
    изменение регулируемой величины ПД регулятором описываются (в простейшей модели типа той что я использую) диффурой второго порядка. Там возникает характеристическое уравнение второй степени. Где его дискриминант отрицательный, возникает перерегулирование (решение кроме затухающей экспоненты содержит синус и косинус), где положительный - недорегулирование (решение- постоянная умноженная на затухающую экспоненту), ноль - наибыстрейшее затухание (решение - полином 1 степени умноженный на затухающую экспоненту). При определенных условиях экспонента может перестать быть затухающей
    и только интеграл помогает нам в конечном счёте избавиться от статической погрешности ( хотя он и разносит колебания динамической )
    Теория позволяет сколь угодно крутой пропорциональный коэффициент при правильно выбранном дифференциальном. Поэтому гипотетически статическую погрешность можно сделать сколь угодно малой без интегрального регулирования.
    Но на практике возможности ограничены запаздыванием измеренной датчиком реакции системы на управление. В модели этой задержки нет, при включении нагревателя сразу растет 1 производная температуры. Поэтому на практике нельзя сделать слишком низкое Xp и приходится добавлять интегральную подстройку.
    Последний раз редактировалось anthrwpos; 24.10.2018 в 12:59.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  6. #6

    По умолчанию

    Так изложи нам свою авторскую методику расчета коэффициентов ПИД регулятора.
    Последний раз редактировалось Вольд; 23.10.2018 в 18:50.

  7. #7

    По умолчанию

    С, C_h и Q как определить ?

  8. #8
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    С, C_h и Q как определить ?
    Пока что приходит в голову только так:
    Задать на глазок, а затем корректировать с помощью корреляционного анализа.
    Теплопотери определяются следующим образом:

    Pe(t)=Q*Err(t)+(Wh(t)*Q)/Ch-dT/dt*C;

    Соответственно, если Pe(t) коррелирует с Err(t) (отстройка) - нужно корректировать Q
    Если с dT/dt - нужно корректировать C
    если с Wh(t) - Ch.

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

    PS Картина работы данного регулятора. Мне лично нравится)управление.JPG
    Красным - температура, по левой шкале. По правой шкале - синее - вычисленные теплопотери, зеленое - мощность нагревателя.

    PPS Сделал стенд на жабке. Кто владеет жабкой - можете поразвлекаться, а то и улучшить. Забабахал туда простенькую рисовалку графиков, модель комнаты близкую к реальности, с шумами датчика и простенький ПИД-регулятор и свой регулятор.
    https://github.com/anthrwpos1/RegTest
    Пид сделан специально обычным, дубовым, как его делают в промышленности, чтобы разработчики ПИД-алгоритмов наглядно увидели, как он регулирует)
    Чуть позже сделаю "мой ПИД". Разработчикам ОВЕН рекомендую тоже побаловаться со стендом, а так-же посмотреть, не является ли случайно ваша реализация ПИД в ТРМках и прочих местах той самой дубовой, как в этой программе, потому что очень похоже=)
    Последний раз редактировалось anthrwpos; 27.10.2018 в 20:27.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  9. #9

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Решил разработать регулятор, работающий на основе физической модели с привлечением элементов предуправления.
    Мне кажется, или Вы недавно отучились в вузе?) ... Столько оптимизма

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Если полная тепловая энергия ниже целевой, нагреватель включен на полную.
    Если полная тепловая энергия выше целевой, нагреватель выключен.
    В случае равенства мощность нагревателя выбирается равной вычисленным тепловым потерям.
    Судя по описанию, сам ваш регулятор гораздо проще ПИД, но содержит дополнительные вычисления для частного использования.
    Вообще, можно попробовать глянуть в сторону FuzzyLogic управления.

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    В случае равенства мощность нагревателя выбирается равной вычисленным тепловым потерям.
    Обычно, нагреватели управляются дискретно включен/выключен.
    Если он с какого-то рода симисторным управлением, имитирующим управление мощностью (температурой нагрева), значит модель самого нагревателя тоже надо учитывать (дискретную). Может, конечно, я не прав.


    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Например при постоянной отстройке управление растет не линейно, а ускоренно
    Линейно работает П-регулятор.
    ПИД-регулятор на то и имеет 3 коэффицента, чтобы "пропорционировать", "опережать (ускоряться)" и учитывать наработку "в прошлом". Если не устраивает ПИД-регулятор из коробки, реализацию дифференцирования можно написать самому с дискретизацией как вам удобно.

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    имеет смысл описанное вообще или ерунда всё это?=)
    Имеет, если вы:
    1. в состоянии составить полную мат. модель реальной системы (что по моему мнению очень сложно на практике).
    2. учесть в модели, что она на самом деле дискретна, а методики синтеза в основном для непрерывных систем (применить теорему Котельникова-Шеннона, если получается,... или опечалиться)
    3. синтезировать оптимальный регулятор, используя полученные знания за 5-6 лет вуза (потратив мнооого времени)
    4. объект управления - шаттл с посадкой на вертикальную платформу, а не обогрев курятника

    Синтезированный регулятор будет естественно лучше ПИД, и настраивать его не придется методом научного тыка, но на практике это как правило не реально, трудозатратно, немозгохватаемо (это я про себя если что ), не поставить на поток, недостаточно времени, недостаточно сведений для составления мат. модели, т.к. используются датчики и исполнительные механизмы с начинкой "черный ящик".

  10. #10
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Мне кажется, или Вы недавно отучились в вузе?) ... Столько оптимизма
    Давно. Но вообще я физик, а вот с КИП/АСУ работаю не так давно.

    Судя по описанию, сам ваш регулятор гораздо проще ПИД, но содержит дополнительные вычисления для частного использования.
    По сложности он такой-же как ПИД, но в нем другой алгоритм компенсации статической ошибки ПД-регулятора. Не интегральный.
    Обычно, нагреватели управляются дискретно включен/выключен.
    Обычно аналоговый выход с регуляторов подается на ШИМ, а он уже управляет нагревателем дискретно.
    Линейно работает П-регулятор.
    Оператор называют линейным, если A(ax+by) = a*A(x) + b*A(y), где x,y - вектора, a,b - произвольные числа.
    Операторы интегрирования и дифференцирования линейны. (интересно, в технических вузах преподают всякие ФункАны и ЛинАлы? =) )
    Имеет, если вы:
    1. в состоянии составить полную мат. модель реальной системы (что по моему мнению очень сложно на практике).
    2. учесть в модели, что она на самом деле дискретна, а методики синтеза в основном для непрерывных систем (применить теорему Котельникова-Шеннона, если получается,... или опечалиться)
    3. синтезировать оптимальный регулятор, используя полученные знания за 5-6 лет вуза (потратив мнооого времени)
    4. объект управления - шаттл с посадкой на вертикальную платформу, а не обогрев курятника
    Синтезированный регулятор будет естественно лучше ПИД, и настраивать его не придется методом научного тыка, но на практике это как правило не реально, трудозатратно, немозгохватаемо (это я про себя если что ), не поставить на поток, недостаточно времени, недостаточно сведений для составления мат. модели, т.к. используются датчики и исполнительные механизмы с начинкой "черный ящик".
    Моя цель была сделать не регулятор какой либо одной реальной системы, а регулятор столь-же универсальный как ПИД, на основе модели, которая приближенно описывает большинство существующих реальных систем.
    Вообще изначально моей целью было на основе некой простой модели вывести, чему физически должны соответствовать коэффициенты ПИД. Но в итоге я пришел к выводу, что физическое соответствие есть только у дифференциального времени ПИД, наполовину у пропорционального коэффициента, а интегральная компенсация вообще не имеет смысла и её нужно заменить другим алгоритмом.
    В итоге на настоящий момент я окончательно пришел к модели ПД+ регулятора, в котором вместо интегрирования отстройки мы в качестве добавки используем нечто что я называю "вычисленными потерями".
    Всего у меня так-же как и в ПИД, 3 параметра:
    Основной параметр D равный отношению мощности управления к скорости роста величины.
    Время инерции системы tU определяется как время отклика системы на управление (строго - время, нужное для того, чтобы скорость роста величины достигла 63% установившегося значения)
    Время крутизны регулирования tX.
    Тогда пропорциональный коэфициент ПД-регулятора Xp = tX / D
    дифференциальное время ПД регулятора tD = tU
    добавка, компенсирующая статическую ошибку <PE>_tX (среднее значение потерь за время tX)
    где PE = <P>_tU - D * (dX/dt) (среднее значение управления минус основной параметр на производную величины)
    Понять смысл данной поправки очень легко. По определению параметра D, произведение D * (dX/dt) есть скорость изменения полной энергии системы. Тогда как <P>_tU есть ни что иное как поступление энергии в систему от исполнительного устройства. Вычитаем из поступлений изменения - получаем потери энергии. Усредняем их за некое время tX, которое обеспечивает достаточное сглаживание и получаем ту самую статическую поправку.
    В итоге ПД-регулятор определяет нехватку энергии, которую нужно компенсировать, чтобы "догреть" изолированную систему до уставки за время tX. А добавка определяет потери, которые нужно компенсировать.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

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

Похожие темы

  1. Ответов: 37
    Последнее сообщение: 19.10.2018, 11:06
  2. Альтернатива User Managment'a
    от Anjei в разделе СПК1xx (архив)
    Ответов: 3
    Последнее сообщение: 19.08.2016, 15:15
  3. Ответов: 3
    Последнее сообщение: 20.02.2016, 16:29
  4. Альтернатива СП 270 с большей диагональю
    от Alex_Kos в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 03.07.2013, 13:42
  5. мучает меня давно вопрос...
    от Pasha_99 в разделе Трёп (Курилка)
    Ответов: 5
    Последнее сообщение: 16.07.2009, 15:09

Ваши права

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