Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя
Показано с 51 по 60 из 63

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

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

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Если действительно интересно, откатитесь к ветке предыдущей (вы же под гитом) и подставьте мои коэффициенты и графики в студию.
    откатил, действительно ваши параметры дают ошибку 0,19, мои 0,31. График температур такой.
    temp2.png

    Переделал параметры своего регулятора так, чтобы они соответствовали вашим.
    Код:
    PhysReg pr = new PhysReg(14, 300, 60, 0.1, 20, 40, 60);
    ошибка ПИД 0,19, PR - 0,24
    temp2.png

    А при таких параметрах мой регулятор уже выигрывает:
    Код:
    PhysReg pr = new PhysReg(8, 150, 22, 0.1, 20, 40, 22);
    Ошибка ПИД 0,19, PR - 0,16
    temp2.png

    а вот при таких параметрах ПИД ошибка будет около 0,15 у обоих регуляторов.
    Код:
    PID_Fine pid = new PID_Fine(2.7, 74, 150, 0.1, 40, 20);
    Графики уже не буду приводить.
    Да, на графиках температур:
    красный - температура датчика в модели управляемой ПИД
    розовый - температура комнаты в модели управляемой ПИД
    синий - температура датчика в модели управляемой pr
    голубой - температура компаны в модели управляемой pr.
    Последний раз редактировалось anthrwpos; 29.12.2018 в 20:17.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  2. #52

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Это как?
    Если ваш регулятор алгебраически пересчитывается в ПИД один к одному, значит он и есть ПИД (ну, я выше об этом писал если что).
    Т.е. вы не изобретали регулятора, а придумали (возможно) методику его настройки (при чем, как видно, - не оптимальную)
    Или я не прав?
    Нет, из картинок явно видно, что характер управления во время скачка качественно другой.

    Дифференциальное время ПИД точно соответствует моему времени инерции tU
    Пропорциональный коэффициент ПИД точно соответствует отношению tX / D.
    Ну это логично, поскольку ПД-часть обоих регуляторов одинаковая.

    А вот интегральное время ПИД вообще говоря не совсем соответствует моему параметру tX. При фильтрации вычисленных потерь PE за время tX без компенсации тренда моя поправка стремится к стационарному значению примерно за то-же время, что и интегральная поправка ПИД.
    Я тут начал писать описание своего регулятора.
    Альфа версия пока выглядит примерно так.
    temp2.png
    Параметр β я сейчас не использую вообще, он у меня везде равен нулю. Я пока не придумал реальных ситуаций, когда он мог бы быть отличным от нуля)
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  4. #54

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Почему тогда, вы его изначально настроили хуже, чем я настроил ПИД для вашей модели?
    Я так понимаю, он прост в настройке (по вашим словам)
    Вот это и есть причина по которой я поменял физмодель. Я никак не мог понять, почему модельные параметры плохо работают. Оказалось в модели баг засел)
    Цитата Сообщение от Валенок Посмотреть сообщение
    "Ваши реализации ПИД" - и как именно они это делали ?
    В моей реализации запрещается повышать интегральную поправку если управление выше единицы и понижать если управление ниже нуля.
    Обычно это работает сильно лучше разностной реализации.
    пока нет никаких доказательств невозможности применения ПИД на Вашем ГПУ.
    Может быть существуют такие неочевидные параметры, при которых обычный ПИД бы работал нормально.
    Только вот адаптивный ПИД там заработал со вбитыми на глазок параметрами.
    Для меня это вполне себе аргумент в пользу такой модификации)

    Хотя у адаптивного ПИД есть целая гора побочных эффектов. Например, он очень медленно переходит на новую уставку. Может надолго зависнуть в положении, отличающемся от уставки и много чего еще.
    Зато он моментально парирует "попытки коня улететь на Марс" и при этом подавляет автогенерацию, что мне было и нужно.

    это не "альтернатива ПИДу" (см.название темы), а одна из специализированных модификаций ПИДа
    Нет, мой PhysReg регулятор это не модификация ПИД поскольку в нем нет интегрирования отстройки вообще.
    Последний раз редактировалось anthrwpos; 29.12.2018 в 21:09.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  6. #56

    По умолчанию

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

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    а вот при таких параметрах ПИД ошибка будет около 0,15 у обоих регуляторов.
    Код:
    PID_Fine pid = new PID_Fine(2.7, 74, 150, 0.1, 40, 20);
    Я не очень понимаю: вы настроили свой регулятор по моим коэффициентам ПИД, потом еще донастроили его, и регуляторы стали примерно одинаковы... и чем ваш регулятор лучше ПИД?

    Чтобы отвечать вам по существу, придется вникать в тему полностью... если вдруг время будет, попробую подробнее ознакомиться с вашей концепцией.
    Вы будете сюда подробное описание выкладывать вашего регулятора и его настройки?

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

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Я не очень понимаю: вы настроили свой регулятор по моим коэффициентам ПИД, потом еще донастроили его, и регуляторы стали примерно одинаковы... и чем ваш регулятор лучше ПИД?
    Я сперва настроил свой по вашим коэффициентам, затем донастроил его с помощью автоматической настраивалки (класс OptiFind) - он стал давать ошибку меньше ПИД. А затем этой-же настраивалкой подстроил и сам ПИД. Ошибки сравнялись.
    Если судить по значениям ошибки - то получается что ничем не лучше. Но по графикам например мне поведение моего physreg больше нравится).

    Чтобы убедиться, что physreg однозначно лучше ПИД, нужно проводить множество тестов, варируя параметры окружения включая например ситуацию когда обогреватель не может догреть систему и когда систему не нужно греть вообще. Тогда мне кажется, можно будет показать, что усредненно оптимальная настройка моего регулятора будет давать по совокупности разных тестов значительно меньшую ошибку чем ПИД. Я думаю такие тесты со временем провести и показать результаты.
    Вы будете сюда подробное описание выкладывать вашего регулятора и его настройки?
    Как только оно устаканится - выложу.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Исполнение "местной" заплатки - иное. Сомневаетесь ?
    Обычная заплатка - это так называемый разностный метод. У него противоположная беда: ложные включения и выключения.
    У моего ТРМ-500 постоянно такое видел. В комнате +30. Подул ветерок - снизилось до +28. уставка +24, дифференциальное время = 0. Обогреватель включился. Нафига?
    А всё просто. При разностном методе производная управления зависит от производной температуры делить на пропорциональный коэффициент плюс отстройка делить на интегральное время. Если температура снижается медленно - интегральная часть этой разности зануляет управление быстрее чем пропорциональная пытается его повысить. А если нет - возникает то что я называю ложным включением.
    Против этой беды и направлена моя реализация заплатки.
    Если медленно изменяет выход - см. параметры ПИДа (обычно П)
    Если регулируемая величина медленно выходит на новую уставку - см. параметры и инерцию регулируемой системы включающую инерцию датчика и исполнительного механизма, но на инерцию системы выбор регулятора не влияет.
    Завис выход ПИДа - см. настройки (обычно И). Не реагирует обратная связь - см. выше про инерцию системы.
    Так пишете, как буд-то я ни разу ПИД не настраивал) Я на работе все ПИДы перенастроил так, что коллеги называли меня гуру ПИДа=) Я отлично понимаю какой там коэффициент за какое поведение отвечает.
    Так как устраняется статическая ошибка ?
    Поправка к ПД-регулированию, которая устраняет статическую ошибку физически является некими "потерями энергии" из управляемой системы, назовем это так.
    Потери равны поступлениям минус полному изменению "энергии".
    Поступления от исполнительного устройства вычисляются как среднее значение управления за время инерции τU (дифференциальное время ПД).
    Полное изменение - как производная умножить на параметр емкости (D).
    Наконец, полученная разность усредняется, потому что производная обычно содержит много шумов.

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

  9. #59

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Но по графикам например мне поведение моего physreg больше нравится).
    Нас в учительница в школе учила, что при синтезе регулятора устанавливаются начальные условия: время регулирования и перерегулирование (как один из популярных вариантов), а также надо обеспечить определенный запас устойчивости, чтобы система не перешла в неустойчивое состояние при выходе параметров её модели за определенные пределы (например, из-за старения элементов системы).
    "Больше нравится", - звучит как-то по-дилетантски. Вы же все-таки физик, давайте мат. часть подтянем, когда поясняете критерии "лучшезны".

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    что коллеги называли меня гуру ПИДа
    Тогда зовите меня Владыка, я настроил ваш регулятор лучше вас, ничего не делая

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

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    У моего ТРМ-500
    Не лучший пример для эталона ПИД

    В общем и целом, спасибо за тему ... заставляет немного подумать, а то мозг вянет.

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    "дифференциальное время = 0" ? В виду недостижимости этого в натуре, "0" имеет особое значение, например у некоторых отключает Д-часть.
    Нет, это у интегрального времени ноль недостижим поскольку оно в знаменателе. Дифференциальное время ноль это вполне нормальное значение..
    Тут ?
    Пока обозначили плохую настройку. Но это не проблема регулятора.
    Тут можно снизить интегральное время и эффект станет проявляться не так сильно. Но вылезет перерегулирование, а то и автогенерация. Проходили всё это)
    Повышать в ответ пропорциональный коэффициент нельзя - эффект вылезет снова.
    А вот потери - это как ? Потихоньку сочится ?
    Просто некие абстрактные потери.
    Никак не могу определиться с тем, в каких терминах объяснять работу регулятора.
    Если объяснять в понятных всем терминах обогрева комнаты - начинаются вопросы "твой регулятор только для обогрева годится?"
    Если объяснять в полностью абстрактных терминах - вообще никому ничего не понятно)
    Поэтому я синтезировал нечто промежуточное - адаптированная терминология из теплотехники применительно к общим абстрактным вещам.
    Мне на самом деле больше нравится терминология из электроники. Тогда будут не потери, а утекающий со второй емкости ток. Плюс можно понятную схему нарисовать. Но поймут только знакомые с электроникой.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

Страница 6 из 7 ПерваяПервая ... 4567 ПоследняяПоследняя

Похожие темы

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

Ваши права

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