Показано с 1 по 10 из 24

Тема: Пишем свой ПИД-регулатор

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

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

    По умолчанию

    Цитата Сообщение от Евгений Зубков Посмотреть сообщение
    Интересный, свежий взгляд на классику. Ваше наблюдение, что «время интегрирования» по сути не является временем, открывает простор для новой, более образной терминологии. Вероятно, и «время дифференцирования» стоит называть «коэффициентом предчувствия ошибки», чтобы не вводить инженеров в заблуждение простыми физическими величинами.
    Просто, исходя из формулы
    OUT=error*Kp + error*(1/Ti)*TCycle + DeltaError*Td/TCycle
    видно, что размерность слагаемых
    [%]=[EU]*[1] + [EU]/[c]*[c] + [EU]*[c]/[c]
    [%]=[EU] + [EU] + [EU]
    что явно противоречит смыслу
    А значит все параметры ПИД регулятора зависят и от единиц измерения и от их диапазона, т.е. не являются какими либо временами, а лишь коэффициентами с размерностями и времени в том числе.

    Можно сделать эмуляцию ПИД регулятора объекта управления (на основе звена 1-порядка) и сделать два эксперимента - у объекта управления коэффициент умножения 4000 и 0,4 - при смене коэффициента поплывут все настройки - и K и Ti и Td.
    Для OwenLogic как-то делал такой эмулятор
    https://owen.ru/forum/showthread.php...l=1#post447749

  2. #2

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Просто, исходя из формулы
    OUT=error*Kp + error*(1/Ti)*TCycle + DeltaError*Td/TCycle
    видно, что размерность слагаемых
    [%]=[EU]*[1] + [EU]/[c]*[c] + [EU]*[c]/[c]
    [%]=[EU] + [EU] + [EU]
    что явно противоречит смыслу
    А значит все параметры ПИД регулятора зависят и от единиц измерения и от их диапазона, т.е. не являются какими либо временами, а лишь коэффициентами с размерностями и времени в том числе.

    Можно сделать эмуляцию ПИД регулятора объекта управления (на основе звена 1-порядка) и сделать два эксперимента - у объекта управления коэффициент умножения 4000 и 0,4 - при смене коэффициента поплывут все настройки - и K и Ti и Td.
    Для OwenLogic как-то делал такой эмулятор
    https://owen.ru/forum/showthread.php...l=1#post447749

    У вас при разборе формулы у интегральной и дифференциальной частей по дороге потерялся общий множитель Kp. В классической форме весь ПИД в скобках умножается на Kp, а Ti и Td это реальные времена в секундах. В параллельной форме они связаны как Ki = Kp / Ti и Kd = Kp * Td, поэтому с размерностями там все в порядке: именно Kp отвечает за перевод ошибки из [EU] в [%].

    Ваш эксперимент с усилением объекта 4000 и 0.4, хороший пример того, почему Ti и Td не должны меняться. Вы изменили усиление объекта (Ko), а не его динамику. Усиление определяет, насколько сильно объект реагирует, а динамика - как быстро. Когда меняется Ko, нужно подправить Kp (чтобы не сорвать устойчивость), но времена Ti и Td, отражающие инерционность системы, должны остаться теми же. Физика у объекта не поменялась, он не стал нагреваться или остывать быстрее.

    Если при этом «плывут» все три параметра, это значит, где-то уже смешались разные формы записи. Ki/Kd в вашей реализации, вероятно, уже содержат Kp и/или не учитывают dt. Отсюда и эффект.

    Ваш эмулятор, кстати, отличная идея, как раз помогает увидеть, почему важно разделять статическую настройку (Kp) и динамическую (Ti, Td). Когда это сделано корректно, секунды остаются секундами, а ПИД - ПИДом, а не «коэффициентом философского времени»
    Инженер направления “Контрольно-измерительные приборы”
    e-mail: e.zubkov@owen.ru

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Зубков Посмотреть сообщение
    В классической форме весь ПИД в скобках умножается на Kp, а Ti и Td это реальные времена в секундах.
    К сожалению, живу и работаю в несовершенном мире, где даже Ваши классические коллеги реализуют неклассические встроенные ПИД регуляторы для ПР в Owen Logic - среди них нет ни одного классического.
    Если не затруднит - Вы уж их (коллег) приведите в классическую форму! Научите ПИД любить!

  4. #4
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,211

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    К сожалению, живу и работаю в несовершенном мире, где даже Ваши классические коллеги реализуют неклассические встроенные ПИД регуляторы для ПР в Owen Logic - среди них нет ни одного классического.
    Если не затруднит - Вы уж их (коллег) приведите в классическую форму! Научите ПИД любить!
    А это разве не классический ПИД?
    Безымянный.png

  5. #5

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    А это разве не классический ПИД?
    Увы мне!

    Пользовался только из компонентов - для переносимости между разными поколениями ПР - и думал, что и встроенные на том же принципе... Не перепроверил!

    Уйду в монастырь!

    P.S. А как устроен PID для приборов первого поколения?

    P.P.S. А параметры-то в справке называют коэффициентами... Видимо, что-то подозревают...
    Последний раз редактировалось FPavel; 17.10.2025 в 20:45.

  6. #6
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,211

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    P.S. А как устроен PID для приборов первого поколения?
    Ну, это легко проверить, натравив оба ПИДа на ваш эмулятор

  7. #7

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    А это разве не классический ПИД?
    Цитата Сообщение от FPavel Посмотреть сообщение
    Увы мне!
    По результатам эксперимента
    https://owen.ru/forum/showthread.php?t=42055
    выяснилось, что по крайней мере при симуляции Owen Logic 2.11.369.0 - формула из справки ошибочна и используется прямая, а не обратная зависимость выхода от Xp, и, возможно, всю формулу из справки нужно ставить под сомнение - там "неклассическое" параллельное вычисление слагаемых.

  8. #8
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,211

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    По результатам эксперимента
    https://owen.ru/forum/showthread.php?t=42055
    выяснилось, что по крайней мере при симуляции Owen Logic 2.11.369.0 - формула из справки ошибочна и используется прямая, а не обратная зависимость выхода от Xp, и, возможно, всю формулу из справки нужно ставить под сомнение - там "неклассическое" параллельное вычисление слагаемых.
    Ну, Ti - это точно постоянная времени и она умножается на пропорциональный коэффициент, потому что, при значении, например, 10, ПИД через 10 секунд удвоит значение на выходе. Думаю, и с Td та же ситуация будет

Похожие темы

  1. Пишем музыку
    от МихаилГл в разделе Трёп (Курилка)
    Ответов: 5
    Последнее сообщение: 16.09.2023, 11:28
  2. Пишем музыку
    от МихаилГл в разделе Трёп (Курилка)
    Ответов: 1
    Последнее сообщение: 15.09.2023, 11:32
  3. Свой таймер
    от Спорягин Кирилл в разделе ПЛК1хх
    Ответов: 41
    Последнее сообщение: 28.08.2015, 11:17
  4. Пишем грамотно
    от superMAX в разделе Трёп (Курилка)
    Ответов: 7
    Последнее сообщение: 19.10.2009, 18:18
  5. Пишем грамотно
    от superMAX в разделе Разработки
    Ответов: 0
    Последнее сообщение: 28.07.2009, 03:03

Ваши права

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