Pull to refresh

Comments 23

Подбор PID-коэффициентов - это вообще отдельное ремесло и наука, и здесь мы этого вряд ли раскроем…

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

А процесс медленный даже при подаче максимального сигнала управления? Если так и при подаче любого фиксированного сигнала управления выходная величина монотонная ограниченная функция, то можно снять кривую разгона и по ней определить коэффициенты.

да, так называемая подача "единичного воздействия" и его снятие - построение кривых. и по ним определять. вот только как определить - в этом и хитрость, наука... а нужно ещё учесть не линейность воздействия .к примеру управление нагревом через длительность включения тэн в периоде сетевого напряжения... давно была такая задача , до сих пор удивляюсь как удалось её решить за реальное время :)

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

Да, когда банальная задача научить робота ехать вдоль линии превращается в еще тот квест

Регулирование компрессорного цеха на газоперекачке. Время устаканивания - полчаса. Капец, долгая настройка)))

ПИД на основе наблюдателя сам подбирает коэффициенты через несколько циклов работы, наблюдая за реакцией системы. Часто используется в ПЛК.

В Овен-ТРМ 500 тоже есть функция автоподбора коэффициентов.

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

Вот в серводвигателях для чпу управляемых по положению автоподбор отличный, но там сдается мне всё сложнее устроено.

В ЧРП тоже есть и не плохо работает, но там модель поля просчитывается.

Вопрос: Можно использовать для получения коэффициентов обучение с подкреплением?

Ответ ИИ:

Применение Reinforcement Learning (RL) для настройки ПИД-регуляторов

Обучение с подкреплением отлично подходит для настройки ПИД-регуляторов, особенно в сложных или динамически меняющихся системах. В отличие от классических методов (например, Циглера-Николса), RL делает регулятор адаптивным.

Как это работает:

  1. Агент (нейросеть): Наблюдает за состоянием системы (текущая ошибка, скорость изменения ошибки).

  2. Действие: Агент не управляет исполнительным механизмом напрямую, а динамически корректирует коэффициенты K_p, K_i, K_d.

  3. Награда (Reward): Агент получает «бонус» за быстрое достижение цели и «штраф» за перелет (overshoot) или колебания.

Преимущества RL:

  • Адаптивность: Перенастройка коэффициентов «на лету» при изменении внешних условий (например, изменение веса груза).

  • Работа с нелинейностью: Эффективность в системах, где математическая модель слишком сложна.

  • Автоматизация: Алгоритм самостоятельно находит оптимальные параметры через тысячи итераций в симуляции.

Популярные алгоритмы:

Для таких задач чаще всего используют алгоритмы непрерывного действия:

  • PPO (Proximal Policy Optimization)

  • DDPG (Deep Deterministic Policy Gradient)

  • SAC (Soft Actor-Critic)

Важно: Обучение обычно проводится в цифровом двойнике (симуляции), так как на реальном оборудовании ошибки агента в процессе обучения могут привести к поломкам.

https://share.google/aimode/ZXI15CJBN9YkBF5c4

Ждем продолжения статьи…

а в целом есть ТАУ, и коеффициенты пид регулятора,как частного случая звена коррекции считаются по формула в зависимости от условий устойчивости системы, быстродействия и пр.

Да, есть ТАУ, только вот надо составить формулы со своими коэффициентами для конкретной системы....

Здесь уровень воды должен быть «полным». Если есть ненулевая ошибка

то клапан приоткрывается и подаёт управляющий сигнал u(t), пропорциональный этой ошибке:

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

Почему же? Мы все равно клипуем от 0 до любого положительного.

Как будет обрабатываться ошибка "уровень воды превысил необходимый"?

Получится отрицательное значение, его округлим до 0. Вода не пойдет, но ошибка останется ;)

Это вы сейчас так думаете, закладываясь на то, что используемые вами агрегаты не просто имеют то поведение, которое Вы считаете разумным, но и то, что это поведение сохранится в будущем, включая замену агрегатов. :)

Как странно звучит слово "ошибка" по отношению к дельте в глазах программиста... )

а чего это нагревается выше нагревателя?

Это «ток» нагревателя. Да, наверное лучше было бы использовать вторую ось y чтобы не спуталось

мало вас стимулами стимулировали не сравнивать метры с килограммами и не рисовать с одной осью градусы и амперы

но всегда можно написать arb. units или условные единицы :)

Sign up to leave a comment.

Articles