Как стать автором
Обновить

Разработка робастного управления сервоприводом

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.1K
Всего голосов 19: ↑19 и ↓0+19
Комментарии14

Комментарии 14

Добрый день, предлагаю посмотреть метод цифрового управления:

https://www.academia.edu/53690067/Design_of_digital_control_systems_with_two_time_scale_motions

Управление достаточно простое - получается регулятор вида B(z)/A(z), где B(z) - полином числителя, A(z) - полином знаменателя. Надо только выбрать нужную модель поведения (в виде референсной цифровой передаточной функции нужной степени) и рассчитать коэффициенты полиномов A и B. Вроде бы гарантировалось подавление помех и возмущений. Примеры моделирования в матлабе там в статье приведены

С полиномами работает LQR регулятор.
У меня практически точная мат.модель в пространстве состояний получилась, и я показал как далеко расходятся результаты, когда созданный на линейной модели регулятор переносят на реальный объект.
Поэтому я бы не торопился любую статью по теоретическим регуляторам браться проверять.

Регулятор как раз предназначен для нелинейных нестационарных объектов, и реально применялся - в управлении манипулятором робота, вентиляцией шахты в зависимости от концентрации метана в воздухе и др. Названия статей могу найти, с их текстами сложнее. В этой статье просто как раз есть формулы расчёта параметров, можно посчитать, помоделировать, реализовать. И регулятор вроде несложный. Если это вообще нужно, конечно)

LQR не работает «с полиномами», он работает с пространством состояний. Это не одно и то же. С полиномами скорее работает pole placement.

А можете дать ссылку, где вы это сравнивали? Потому что если вы, например, сравнивали базовый LQR с PI-регулятором при отработке постоянного задания, то это не совсем одно и то же, PI - динамический регулятора, а LQR статический.

Если вопрос мне, то с LQR ещё дела не имел.

А, я, видимо, не так понял

и я показал как далеко расходятся результаты, когда созданный на линейной модели регулятор переносят на реальный объект

Решил, что речь как раз про LQR.

Отличная статья, спасибо! Буквально неделю назад случайно наткнулся на ADRC. Основные идеи ADRC следующие:

  • объект управления является системой второго порядка (двигатели как раз попадают в эту категорию, т.к. ускорение пропорционально приложенному моменту)

  • основная задача ADRC - убрать всё кроме прямой пропорциональности ускорения и момента при меняющейся нагрузке на двигатель (привет PID с gain scheduling)

  • главная фишка ADRC - менять коэффициенты контроллера постоянно наблюдая за реакцией планта на приложенный контроллером сигнал (типа PID с постоянной подстройкой его коэффициентов)

В имеющихся публикациях упоминается нетривиальность реализации ADRC, типа каких-то ноу-хау, которые авторы не имеют права раскрывать. Также не встречал освещения необходимости сохранения типичного для двигателей двухконтурного контроллера (sic!). Здесь я имею в виду первый контур работающий по скорости и второй контур - по позиции. Построить feedback контроллер для планта, поворачивающего фазу на 180°, используя только один контур - практически нереализуемая и не несущая особой пользы затея. В двухконтурной же системе мы имеем два планта первого порядка, где каждый поворачивает фазу в своей петле управления только на 90°, оставляя ещё примерно 90° в качестве запаса по фазе.

микроконтроллер с достаточно скромными ресурсами (ARM Cortex-M4, 120 МГц)

Может DSP или специализированные сопроцессоры смогут помочь в этой задаче?

Отличная идея.
Но беда специализации сопроцессоров в их специализации. Т.е. они оптимизированы под некие классические известные алгоритмы: CORDIC или длинные FIR фильтры и т.п.
А если вдруг окажется что лучше всех Reinforcement Learning ?
Но такие сопроцессоры пока ещё слишком трудно достать.

Indemsys, объясните, пожалуйста, чем англицизм "робастность" отличается от русского слова "надежность"?

Робастность - это то как реальная реакция соотносится с референтным сигналом при изменении внешних условий. Обратное поведение робастности - агрессивность. Речь о формах кривых на графиках.
Как здесь применить термин надёжность я плохо представляю. Скорее всего его в этом контексте никто не поймёт. У слова "надёжный" коннотация - "хороший". А робастность регулятора - это может быть и хорошо, но может быть и плохо.

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

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

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

Способность следить за референтным сигналом при изменении условий может достигаться и адаптивным управлением, с перенастройкой регулятора на лету. А может за счет построения такого (робастного) регулятора, который даёт нужное качество в широком диапазоне возможных изменений без перенастройки.

Я сторонник нерусских слов, потому что они не дают включиться интуитивной убеждённости. Назовёшь регулятор "грубым" или "нечувствительным" и сразу придут в голову коннотации плохой, недоделанный, не стоящий внимания и т.п.
А непонятное слово не оставит места предубеждениям.
Термины, на мой взгляд, не должны быть обычными словами, иначе они неявно вводят в заблуждение.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории