Страница 4 из 7 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 63

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

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

    По умолчанию

    Цитата Сообщение от kon48 Посмотреть сообщение
    Добрый вечер!
    Коллега anthrwpos.
    1.О каком сравнении может идти речь если из представленной регистрации видно, что ПИД регулятор не настроен. Такой процесс свойственен П-регулятору.
    2.Часто употребляете выражение опримальные настройки регулятора. О каком критерии оптимальности идет речь? Сформулируйте его.
    С уважением Николай Митюхин
    Критерий оптимальности - минимизация среднеквадратичного отклонения от уставки в данных условиях работы.

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

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

  2. #32

    По умолчанию

    Руководство по применению своего регулятора по какому-то конкретному объекту регулирования приведите. С ПИД регулятором все понятно, там все сводится к подбору коэффициентов. А как у вас ?

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

    По умолчанию

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

  4. #34

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Затем я настроил их параметры на наилучшее прохождение переходных процессов и получил следующую картину.
    Вложение 40583
    Можете пояснить что нарисовано на этих графиках?
    По оси x, очевидно, время. А что по оси Y?

    О каком воздействии на систему речь?

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Кто владеет java - можете поразвлекаться тоже а заодно проверить, что я не жульничаю)
    Добавили бы unit-test'ы. Было бы проще на всё это смотреть.

    Например, сдаётся мне, что ваш "волшебный" регулятор может выдать управляющий сигнал "больше 100%" (или меньше 0) (см https://github.com/anthrwpos1/RegTes...g.java#L48-L50 -- возвращается значение pRaw, которое, очевидно, может выходить за границы), и модель подчинится такому управлению и заставит нагреватель сгенерировать больше тепла (или вообще батарею превратит в кондиционер).

    Я бы в обработку модели предложил добавить проверку на то, что регулятор не пытается возвращать управляющий сигнал за пределами 0..1

    Как у вас работает датчик -- непонятно (я про dSense0/dSense1). Почему не идёте по своей концепции и не делаете в духе "теплопроводность датчика", "теплоёмкость датчика"?


    PS. На "new PhysReg(50, 200, 300, 0.1, 20, 40, 300);" без боли смотреть невозможно. Что означают все эти цифры?
    Тут нужно либо на Kotlin'е писать (там есть именованые параметры), либо в духе new PhysReg().setTimeStep(0.1).set... , либо ещё как. Но на 50, 200, 300 смотреть невозможно, и, очевидно, тут какое-то жульничество, которое даже проверять не хочется.

  5. #35

    По умолчанию

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

    А что, если попробовать в вашем примере вот такие коэффициентики ПИДа:
    Код:
    PID_Fine pid = new PID_Fine(4.3, 60, 300, 0.1, 40, 20);  //создаем ПИД-регулятор

  6. #36

    По умолчанию

    Ребята, много букв, не осилил. Только давно уже известен регулятор с нечеткой логикой (fuzzy logic), и вы, уважаемый anthrwpos изобретаете велосипед, а по идее fuzzy-регулятор под конкретную задачу, не более того.
    С задачей регулирования температуры прекрасно справляется обычный ПИ-регулятор.

  7. #37

    По умолчанию

    Цитата Сообщение от o_nik Посмотреть сообщение
    Комментариев коде явно не хватает, чтобы у желающих посмотреть возникло желание вникнуть , стиль программирования на яве тоже странноватый, например, интерфейс регулятора, где нет уставки (хотел ее вывести на график)...
    Всё так!
    Я сначала тоже думал это же самое написать, но остановился на мысли "как бы разговор не перешёл в плоскость Java программирования".

  8. #38

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    как бы разговор не перешёл в плоскость Java программирования
    Похоже, уже переходит Только я с Вами сильно дискутировать=спорить не буду, т.к. уже лет 7 на Java не писал.

    Да, впрочем, ... с ней с явой.
    Хотелось бы, таки, чтоб автор прокомментировал ПИД-регулятор с предложенными коэффициентами, интересно дальнейшее развитие темы.

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

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Можете пояснить что нарисовано на этих графиках?
    По оси x, очевидно, время. А что по оси Y?
    значение регулируемой величины.
    Например, сдаётся мне, что ваш "волшебный" регулятор может выдать управляющий сигнал "больше 100%" (или меньше 0) (см https://github.com/anthrwpos1/RegTes...g.java#L48-L50 -- возвращается значение pRaw, которое, очевидно, может выходить за границы), и модель подчинится такому управлению и заставит нагреватель сгенерировать больше тепла (или вообще батарею превратит в кондиционер).

    Я бы в обработку модели предложил добавить проверку на то, что регулятор не пытается возвращать управляющий сигнал за пределами 0..1
    Код:
    pHeater = limit(regulator.control(tSensor)) * pHeaterMax;
    limit - это оно и есть - ограничитель выхода регулятора.
    А сам регулятор должен выдавать управление и меньше 0 и больше 1 на случай, если он регулирует не процент включения нагревателя, а какую либо другую величину, которая может изменяться в других пределах.
    Например у меня есть регулятор, который вычисляет температуру теплоносителя. Тут уж диапазоном 0..1 никак не обойтись.
    Как у вас работает датчик -- непонятно (я про dSense0/dSense1). Почему не идёте по своей концепции и не делаете в духе "теплопроводность датчика", "теплоёмкость датчика"?
    этот финт дает более глубокую задержку данных от датчика, которую невозможно компенсировать по производной. Всё как в жестокой реальности)

    PS. На "new PhysReg(50, 200, 300, 0.1, 20, 40, 300);" без боли смотреть невозможно. Что означают все эти цифры?
    В стандартной библиотеке java есть полно конструкторов с простым перечислением кучи параметров. Я лично уже привык смотреть в исходники либо в документацию, чтобы понять что это всё такое.
    Может это конечно плохой стиль, спорить не буду.
    Цитата Сообщение от o_nik Посмотреть сообщение
    Комментариев коде явно не хватает, чтобы у желающих посмотреть возникло желание вникнуть , стиль программирования на яве тоже странноватый, например, интерфейс регулятора, где нет уставки (хотел ее вывести на график)...
    У меня к сожалению очень мало опыта в программировании. Уж что вышло то вышло. Ну и плюс делал второпях, чтобы провести нужные испытания и хоть что нибудь по существу тут задаваемых вопросов ответить. Ну и самому убедиться, что регулятор работает как положено.

    А что, если попробовать в вашем примере вот такие коэффициентики ПИДа:
    Код:
    PID_Fine pid = new PID_Fine(4.3, 60, 300, 0.1, 40, 20);  //создаем ПИД-регулятор
    Я сегодня устранил баг в модели, поэтому там все параметры поменялись. Если вы рассчитывали эти параметры регулятора под старую модель, то нужно пересчитать.
    А если просто так - то сейчас оно выглядит так:
    temp2.png
    уставка черным, график температуры красным.
    Последний раз редактировалось anthrwpos; 29.12.2018 в 16:52.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

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

Похожие темы

  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

Ваши права

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