Русский
Русский
English
Статистика
Реклама

Пид-регулятор

Акселерометр в системе ПИД-регулирования круиз-контроля автомобиля

26.08.2020 02:14:36 | Автор: admin
Я эксплуатирую в общем-то довольно современный, напичканный электроникой американский автомобиль. Из того, что управляет движением, в нем есть электронная система стабилизации, ПБС с эмуляцией блокировки дифференциала, естественно АБС, и конечно же, круиз-контроль. Последний еще не адаптивный (то есть без функции поддержания дистанции до впереди идущего авто). В машине электронная педаль газа (это принципиальный момент для данной статьи позже объясню, почему).
Всем, кто хочет знать, чем не угодил круиз-контроль, и что предлагается улучшить welcome под кат.

Вообще, современные электронные системы автомобиля, отвечающие за непосредственно движение, довольно сложны. В частности, ECU вместе с PCU (powertrain control unit, контроллер АКПП, может быть отдельным устройством, или интегрирован с ECU), знают не только характеристики (то есть имеют и используют физическую модель) двигателя и трансмиссии, но и физическую модель самого автомобиля.

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

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

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

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

Давайте сделаем оценку важности этих факторов в плане их влияния на качество регулирования скорости и возможности их автоматического учета и компенсации в течение времени работы круиз-контроля:
фактор а) доступен для моделирования (зависит от температуры трансмисии, включенной передачи, параметров вязкости ATF все эти данные контроллеру доступны), но малозначим в установившемся режиме движения в диапазоне авторегулирования (прогретая трансмиссия, скорость включения круиза > 30 км/ч) им в ПИД-модели можно просто пренебречь
фактор б) достаточно значимый, по крайней мере, в диапазоне разрешенных ПДД скоростей, и состоит из статического (тип шин, масса автомобиля), динамического (скорость автомобиля) и стохастического (тип покрытия под колесами) компонентов.
В совокупности факторы а) и б) можно просто заложить в модель в виде усредненных параметров, либо выводить их коэффициенты статистическим анализом текущей динамики автомобиля, как отклика на расчетный момент на колесах.
Далее, фактор в) зависит в основном от текущей скорости, проекции скорости ветра на ось движения, и наличия нештатных элементов, меняющих мидель и Cx автомобиля. Базовые параметры (мидель, Сх, плотность воздуха при стандарнтых условиях) можно закодировать в модели автомобиля, конструктивные отклонения определить долговременным анализом динамики на больших скоростях (когда сила сопротивления воздуха превалирует над остальными), краткосрочные (от проекции скорости ветра на ось движения) считать случайным возмущающим моментом (ограничив его величину сверху разумным пределом [скажем, 20 м/c при большей скорости ветра не то что на круизе в ручном режиме на скорости удержать автомобиль сложно]), текущую скорость относительно дороги контроллер знает практически точно итого, фактор в) с определенной стохастической составляющей можно посчитать
Наконец, фактор г) достаточно значимый; имеет 100% стохастическую составляющую при отсутствии акселерометра, и практически нулевую при его наличии.

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

Замечу, что акселерометр сам по себе (без API) не гироскоп и не чудо-прибор в наших гаджетах, который якобы знает истинное положение нормали к поверхности земли (на самом деле рекалибруется с запоминанием разложения по осям в те моменты, когда модуль вектора ускорения, выдаваемого датчиком ускорения, равен строго 1g), но поскольку инициатором тяги на колесах может быть только сам контроллер (привет системам с электронной педалью), то величина продольного ускорения относительно оси автомобиля может быть легко вычислена и скомпенсирована и мы после усреднения получим хорошее приближение величины продольного профиля дороги, который сможем ввести в модель управления скоростью.

Вот и вся идея. Понятно, что реализовать ее в прошивке контроллера на уровне DIY (вне автозавода) дело практически нереальное. Однако, мы можем построить свой вычислитель рядом с основным контроллером автомобиля, анализировать текущие параметры движения через CAN, и туда же отдавать управляющие воздействия. Я не уверен, что текущий момент на колесах можно взять с CAN'а, но включенную передачу, расход воздуха и обороты точно можно (это позволяет косвенно рассчитать момент). Дальше, командовать дросселем напрямую скорее всего, через CAN нельзя (это было бы очень опасно) но мы можем, скорее всего, давать упреждающие команды на увеличение или уменьшение установленной круизной скорости, или (если CAN это не поддерживает ) подключиться к соответствующим кнопкам на руле автомобиля. Все остальное, похоже, можно реализовать в этом внешнем контроллере.
Подробнее..

Динамика квадро-, гекса- и октокоптеров. Моделирование системы управления

03.11.2020 00:14:12 | Автор: admin
Продолжение статьи "Введение в моделирование динамики квадро-, гекса- и октокоптеров".
В этой части автор Александр Щекатуров, рассказывает основные принципы создания системы управления и ее моделирования в структурном виде. Всем кто одолел первые части лекций по теории управления в технических система, все будет ясно и понятно (ну почти). Лекции на хабре лежат по ссылкам:
1. Введение в теорию автоматического управления.
2. Математическое описание систем автоматического управления 2.1 2.3, 2.3 2.8, 2.9 2.13

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




4 Управление моделью коптера


Всё что было описано в предыдущей части это, по сути, формулировка внутреннего закона полета коптера отвечающего на вопрос как именно объект будет менять свои ускорения, скорости и координаты в зависимости от приложенных сил и моментов. Т.е. мы записали уравнение F(t) = ma(t) (и аналогичное для суммарного момента и углового ускорения) для октокоптера заданной геометрической конструкции. В эти уравнения входят некоторые константы масса коптера, его моменты инерции по главным осям (составляющие тензора инерции), угол отклонения силы тяги ВМГ от вертикали, длины лучей рамы коптера, и некоторые другие массогабаритные характеристики. Как правило, это константы, за редким исключением. Но т.к. задача поставлена в общем виде, мы не подставили ещё конкретных чисел, а все эти величины заменили на символы (символьные константы и/или переменные), и теперь требуется их задать числами для работоспособности модели. Для двигателей это будет коэффициент пропорциональности между квадратом угловой скорости и силой тяги, для массы коптера масса рамы плюс массы всех ВМГ и т.д.


4.1 Переменные проекта сигналы модели


В SimInTech используется плоский неструктурированный список сигналов, и/или структурированная (объектно-ориентированная) база сигналов для задания констант и переменных модели, если в ней есть типовые (повторяющиеся) элементы. В данной модели были и тем и другим способом заведены следующие сигналы (переменные и константы), см. рисунки 13 и 14:



Рисунок 13. Сигналы проекта

Рисунок 14. База сигналов проекта

Среди повторяющихся элементов в коптере явно можно выделить ВМГ они все однотипны и параметризуются одинаковыми (по смыслу) переменными. Также, для регуляторов, которых будет всего 6 (по числу каналов регулирования) тоже можно выделить однотипные элементы. Если это будут ПИД-регуляторы, то коэффициенты пропорциональности P, I, D будут в наличии у каждого из регуляторов, со своим конкретным значением.


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


Рассмотрим немного подробнее параметризацию двигателей (см. рисунок 15). Всего в базе 8 групп сигналов, по 15 сигналов в каждой то есть 120 переменных и констант, описывающих состояние всех двигателей. Важными и задаваемыми пользователем (разработчиком модели) являются wnom, wmin номинальная и минимальная частоты вращения. В дальнейшем эти значения используются в модели двигателя, ограничивая снизу текущую частоту вращения, и для расчета текущих оборотов ВМГ в единицах измерения. Остальные переменные расчитываются в модели и зависят от времени. В эту же категорию можно в дальнейшем добавить и коэффициенты пропорциональности между квадратом угловой скорости и силой тяги ВМГ.



Рисунок 15. Категория Двигатели

4.2 Оптимальное управление


С точки зрения управления коптер представляет собой не самую простую конструкцию мы имеем 8 двигателей, которыми можно управлять индивидуально, но практически каждый из них влияет на все 12 из переменных состояния (фазовых координат) коптера. То есть, если мы будем рулить одним из двигателей менять его обороты в большую или меньшую сторону, это будет оказывать воздействие на каждую из координат x, y, z и на каждую из трёх угловых скоростей. Кроме случаев, когда вектор тяги параллелен какой-либо из координатных плоскостей системы B тогда на 4 из 12 переменных состояния данная сила тяги воздействовать не будет. И, если бы мы делали всё методами классической теории управления, то можно было бы записать 8х12 = 96 передаточных функций между 8 входными воздействиями и 12 выходными (переменными состояния) коптера.


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


Задача оптимального управления заключается в том, чтобы перевести коптер из точки А в точку Б с минимальным перерегулированием, по оптимальной (как правило кратчайшей) траектории и за минимальное время. При этом налагаются ограничения на максимальную скорость, ускорения и углы наклона коптера (отклонение от горизонтальности). Проблема заключается в том, что в прямую сторону можно довольно несложно посчитать как воздействует каждый из двигателей (8 переменных 8 частот вращения) на каждую из 12 переменных состояния. А если учитывать еще и ускорения, то на каждую из 18 переменных. Но в задаче управления требуется наоборот при заданных начальных и конечных координатах требуется вычислить как именно надо управлять двигателями чтобы коптер перешел из одного состояния в другое.


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


Чтобы упростить изложение, приведем краткий ход решения задачи. Для начала запишем матрицу Г размерностью 6х8 по количеству каналов управления (6) и количеству ВМГ (8), которая будет отображать как именно каждый из двигателей влияет на каждый из каналов управления:

$$display$$Г =\left( \begin{gathered} f1x & f2x & f3x & f4x & f5x & f6x & f7x & f8x \\ f1y & f2y & f3y & f4y & f5y & f6y & f7y & f8y \\ f1z & f2z & f3z & f4z & f5z & f6z & f7z & f8z \\ m1x & m2x & m3x & m4x & m5x & m6x & m7x & m8x \\ m1y & m2y & m3y & m4y & m5y & m6y & m7y & m8y \\ m1z & m2z & m3z & m4z & m5z & m6z & m7z & m8z \\ \end{gathered} \right). $$display$$

$\overrightarrow{f_i(t)} =C_T \cdot \overrightarrow{e_{Mi}} \\ \overrightarrow{m_i(t)} =C_T \cdot \overrightarrow{r_{Mi}} \times \overrightarrow{e_{Mi}}$


Где: fi|x,y,z это коэффициент перед $_{Mi}^2 (t)$ для вычисления силы, которую создаёт i-ая ВМГ в соответствующем направлении, а mi|x,y,z коэффициент перед $_{Mi}^2 (t) $для вычисления момента сил, который создаёт i-ая ВМГ в том же направлении:


Примечание: если у ВМГ будет еще реактивный момент, то у $m_i$ будет еще одно слагаемое.


Легко видеть, что матрица Г показывает зависимость между квадратом угловой скорости i-ой ВМГ и управляющими (силовыми) воздействиями по каждому из каналов управления: $u(t)=Г\cdot _M^2 (t) $. Нам же нужно получить обратное решение зависимость угловой скорости i-ого двигателя от поданного управляющего воздействия по какому-либо из каналов управления. В общем виде эта задача имеет бесконечное множество решений, однако среди этого бесконечного множества можно выделить по тому или иному критерию или способу оптимальное решение.



Рисунок 16. Структура регулятора

Методами теории оптимального управления (подробнее см. [1, раздел 4.1.1]) задача решается поиском так называемой обратной псевдоинверсной матрицы $А^+$, которая вычисляется как: $inline$А^+= Г^Т (Г \cdot Г^Т)^{-1}$inline$. Она же и является оптимальным решением поставленной задачи с наложенными ограничениями на решение.


На практике, для заданной геометрии коптера и полученных 48 чисел в матрице Г, получаем другие 48 чисел, которые определяют правило управления (микширования) двигателей, при поступлении той или иной команды по какому-либо каналу управления. На рисунке 16 представлена общая схема построения регулятора. Задатчик положения вырабатывает нужные координаты, в которые требуется привести коптер. Они сравниваются по какому-то алгоритму с измеренными координатами и управляющий алгоритм вырабатывает 6 управляющих воздействий, по каждому из каналов управления.


На основе посчитанной псевдообратной матрицы $ А^+$, блок управления двигателями вычисляет текущие заданные значения угловых скоростей для каждого из 8 двигателей, как бы суммируя пришедшие 6 команд по каналам управления и определенным образом микшируя двигатели при этом. Сформированные 8 угловых скоростей отправляются на задатчик оборотов двигателей и осуществляется регулирование и управление коптером (см. рисунок 16).


Управляющие команды по каждому из каналов управления формируются как рассогласование между заданной координатой (углом) и текущей, измеренной координатой. Это в самом простом варианте. В более сложном управляющий алгоритм должен иметь в своём составе алгоритм приоритетности стабилизации положения коптера над алгоритмом перемещения в пространстве. Дело в том, что по каждому из каналов есть запас (располагаемая у ВМГ возможность) управления. И, если (например) мы сделаем приоритетным перемещение по оси х то при большом рассогласовании между текущей координатой x и заданной регулятор будет стремиться наклонить всё больше и больше коптер вокруг оси y, и при определенном наклоне уже не хватит возможностей двигателей обеспечивать стабилизацию коптера и регулирование высоты полёта. Для коптера с конкретными параметрами двигателей, винтов, массы и размеров это всё можно вычислить и наложить нужные ограничения на управляющие воздействия ui(t), а также их приоритет. Но это выходит за рамки данной статьи, где мы делаем модель в общем виде. Просто отметим, что стабилизация положения для коптера самая важная задача, перемещение уже вторична, поскольку без стабильного положения переместиться куда-либо целенаправленно будет невозможно.


Выпишем аналитические выражения для элементов первых двух столбцов матрицы Г в случае рассматриваемого октокоптера (без реактивного момента ВМГ и без прецессии!):


$$display$$\begin{gathered} &f1x =&0; \ \ &f2x =&-\frac{1}{\sqrt{2}}C_T \cdot sin(\gamma);\\ &f1y =& -C_T \cdot sin(\gamma); \ \ &f2y =&\frac{1}{\sqrt{2}}C_T \cdot sin(\gamma);\\ &f1z =& -C_T \cdot cos(\gamma); \ \ &f2z =&-C_T \cdot cos(\gamma);\\ &m1x =& 0; \ \ &m2x =&-\frac{1}{\sqrt{2}}C_T \cdot cos(\gamma) \cdot l_2;\\ &m1y =& -C_T \cdot cos(\gamma) \cdot \_1; \ \ &m2y =& \frac{1}{\sqrt{2}}C_T \cdot cos(\gamma) \cdot l_2;\\ &m1z =& -C_T \cdot sin(\gamma) \cdot \_1; \ \ &m2z =&C_T \cdot sin(\gamma) \cdot l_2;\\ \end{gathered}$$display$$


Видно, что первая ВМГ (ось силы тяги которой параллельна плоскости yz) не создаёт никакой силы вдоль оси x и никакого момента вокруг оси x (т.к. пересекает её). Поэтому при управлении по оси x или для создания вращательного момента вокруг оси x первый двигатель бесполезен. Аналогично будет с 5-ым двигателем, а для 3-его и 7-ого будет такая же картина для оси y (всё справедливо в системе координат В).


image

Аналитические выражения для матрицы А^+ будут гораздо более громоздкими и большого смысла не имеют проще вычислить численно матрицу Г, а потом и искомую А^+. В нашем случае для одного из вариантов октокоптера, она получилась равной:

$$display$$A^+ =\left( \begin{gathered} 0&-191.9&-5.029&0&7.112&-67.86 \\ -191.9&191.9&-7.112&-5.029&5.029&67.86 \\ 191.9&0&-5.029&-7.112&0&-67.86 \\ -191.9&-191.9&-7.112&-5.029&-5.029&67.86 \\ 0&191.9&-5.029&0&-7.112&-67.8 \\ -191.9&-191.9&-7.112&5.029&-5.029&67.86 \\ 191.9&0&-5.029&7.112&0&-67.86\\ -191.9&191.9&-7.112&5.029&5.029&67.86\\ \end{gathered} \right).$$display$$


Смысл матрицы примерно в следующем: она показывает на какое количество (рад/с)^2 надо изменить частоту вращения каждой i-ой ВМГ (из 8), чтобы осуществить единичное управляющее воздействие на объект по тому или иному каналу управления. Например, если мы хотим к коптеру приложить силу 1 Н по каналу управления x (первая колонка), то угловую скорость 1-го двигателя и 5-го менять не надо, а к текущим угловым скоростям других двигателей надо добавить или отнять примерно 13,8 рад/с. Это довольно приличное изменение угловой скорости, и вообще управляемость по каналам x, y появилась здесь как побочное следствие того, что каждая из ВМГ повёрнута вокруг своего луча еще на 3 градуса.


Если бы все ВМГ были расположены вертикально, то первые две колонки матрицы А^+ получились бы бесконечными т.е. коптер с вертикально расположенными ВМГ по горизонтальным осям не управляется вообще! Управление по этим осям (в инерциальном пространстве) достигается поворотом коптера вокруг осей и перенаправлением суммарного вектора тяги в какую-либо сторону.


Третья колонка управление по оси z, имеет отрицательные числа т.к. ось z направлена вниз, а вектора силы тяги ВМГ вверх. Обратим внимание, что абсолютные значения чисел третьей колонки гораздо меньше, чем первой и второй и все имеют один и тот же знак. Это означает что коптер имеет гораздо лучшую управляемость по вертикальной оси, что очевидно, т.к. все ВМГ как раз и работают практически в эту сторону (а не влево-вправо-вперёд-назад). Четвёртая колонка и пятая это управляемость коптера по крену и тангажу, последняя шестая по курсу. Видно, что по курсу коптер гораздо слабее управляем, чем по крену и тангажу. Но для наших целей, и для целей настоящей обучающей статьи, этого было достаточно. Подбором направлений сил тяги ВМГ (и перевычислением матриц для новой геометрии) можно этот баланс менять.


Обратим также внимание на то, что теоретически при вычисленном и приведенном здесь количественно микшировании двигателей, достигается только управление по выбранному каналу, без влияния на другие каналы управления. Т.е. при выбранном расположении ВМГ у октокоптера, в некоторых малых пределах можно изменять направление вектора тяги, без создания поворотных моментов т.е. не наклоняя сам коптер, и он будет горизонтально лететь и управляться без наклонов. Но только в очень узком диапазоне скоростей и внешних возмущений.


Общая структура регулятора приведена на рисунках 17 и 18.



Рисунок 17. Общая схема регулятора

Рисунок 18. Схема каналов регулятора

В самом простейшем случае на 6 входов регулятора поступают заданные фазовые координаты, они сравниваются с текущими (измеренными) и в общем случае в соответствии с матрицей А^+ и ПИД-регулированием по каждому из каналов, вырабатывается 6 управляющих векторов, по 8 переменных в каждом, которые суммируются и получаем итоговый вектор управления с заданными угловыми скоростями для каждого из двигателей. На практике, не всё так просто


4.3 Регулятор высоты


Регулятор высоты можно выделить отдельно от других, поскольку он задействует примерно одинаково все двигатели, и даже без матриц Г и А^+ понятно: для того чтобы коптер летел вверх, надо увеличивать газ, а чтобы вниз уменьшать обороты ВМГ. В качестве простейшего регулятора высоты можно взять обычный ПИД-регулятор, который справится с управлением при верно подобранных коэффициентах. На рисунке 19 показан один из вариантов регулятора, с доработкой ограничения вертикальной скорости, если текущая позиция отличается от заданной более чем на 5 метров.



Рисунок 18. Регулятор высоты, один из вариантов

В чем основная идея регулятора: на вход подается текущая величина рассогласования между заданной высотой и измеренной высотой, подаётся текущая вертикальная скорость и ограничение на вертикальную скорость. Если рассогласование больше 5 метров, то регулятор работает в режиме ограничения скорости и стремится к тому, чтобы вертикальная скорость vz стала равной +OGRV м/с или -OGRV м/с в зависимости от направления полёта. Если рассогласование менее 5 м, то регулятор стремится к нулевой скорости полёта и сведению в ноль рассогласования по высоте.


Выходной сигнал регулятора подается с коэффициентами матрицы $А^+$ (согласно третьей колонке) на каждый из 8 двигателей.


4.4 Регулятор ориентации коптера


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


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


Для сведения к нулю трёх составляющих угла, скорости и момента они должны быть входными сигналами в регулятор. Один из вариантов представлен на рисунке 19. Заданное значение равно нулю, и в стабильном состоянии выходной сигнал сумматора будет равен нулю. Если появляется какое-то ненулевой состояние, то выход регулятора будет также отличен от нуля, далее он домножается на вектор, равный 4-ой колонке псевдообратной матрицы А^+, представленной выше и формируется вектор усилий на 8 ВМГ, который должен компенсировать возникший дисбаланс поворота вокруг оси $x_B$.



Рисунок 19. Регулятор крена

Рисунок 20. Коэффициенты блока типа Размножитель в регуляторе крена

Аналогично выполнен и регулятор по каналу тангажа (представлен на рисунке 21).



Рисунок 21. Регулятор тангажа

Рисунок 22. Коэффициенты блока типа Размножитель в регуляторе тангажа

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


4.5 Регулятор положения коптера в пространстве


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


Во-первых, они работают в системе координат В, а в общем случае коптер вращается в пространстве (по курсу) и направления осей x и y системы В не совпадают с такими же осями в системе I. Поэтому рассогласование его позиции в системе I надо переводить в систему В и дополнительно подготавливать задание на регулятор положения по осям x и y.


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


В-третьих, у классического коптера с винтами, расположенными в одной плоскости и параллельными силами тяги, направленными вверх, практически нет возможности создавать боковую силу тяги т.е. по существу, коптер является неуправляемым по осям X и Y. В нашем варианте, когда винты довернуты еще на 3 градуса вокруг своих лучей, у них появляется небольшая сила тяги направленная в стороны, и микшированием двигателей можно создавать боковую силу тяги. Однако, она очень несущественна, почти нулевая об этом свидетельствуют большие числа в 1 и 2 колонках матрицы А+ для того, чтобы создать силу тяги величиной 1Н в сторону, нужно изменить частоту вращения двигателей почти на 15 рад/с (квадрат частоты вращения на 191 (1/с)2). С точки зрения управления, это слишком большая величина. Поэтому коптеры управляются по направлениям X и Y при помощи других каналов управления поворачиваясь вокруг осей X и Y (об этом напишем дальше).


Но структурно если делать регулятор по каналам Х и Y типовым образом, регулятор может быть выполнен аналогично регуляторам ориентации на выходе формируется управляющее воздействие по каналу X (Y) и домножается на вектор 1 (или 2) колонку матрицы $А^+$, а полученные 8 сигналов подаются на ВМГ.


Один из вариантов регулятора по каналу X и Y представлены на рисунке 23 и 24.



Рисунок 23. Регулятор по каналу Х

Рисунок 24. Регулятор по каналу Y

Регуляторы двухрежимные, при отклонении от заданной позиции более чем на 5 метров, переключаются в режим работы V и поддерживают скорость по направлению на уровне REGX_OGRV (или REGY_OGRV) м/с. При этом, интегрирующая ветка регулятора отключается. При переходе в режим позиции, интегрирующая ветка включается в работу с некоторой задержкой чтобы коптер успел подлететь к заданной точке и не набралась существенная величина на интеграторе за время подлета.


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


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


В сумме, на выходе всех 6 каналов управления (по курсу регулятор во многом аналогичен регуляторам ориентации и для сокращения материала не приводим его здесь) мы имеем по каналу регулятора высоты некоторую базовую желаемую частоту вращения для каждой из 8 ВМГ, и некоторую добавку, сформированную остальными 5-ю каналами управления. Единственный нюанс микшированные добавки, т.к. это не прямая добавка к частоте вращения, а добавка к квадрату частоты вращения, и для того чтобы вычислить добавку именно к частоте вращения, надо еще дополнительно проделать несложные математические вычисления, см. рисунок 25:



Рисунок 25. Суммирование каналов управления

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

$\omega_i = \omega_{ibase} + \Delta \omega_i \\ \Delta \omega_i = \sqrt{(\Delta \omega_i)^2+(\omega_{ibase})^2} - \sqrt{(\omega_{ibase})^2}$


где квадраты скоростей это сигналы, выходы каналов управления.


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


4.6 Регулятор положения коптера в пространстве по каналам крена и тангажа


Опишем кратко подход, который используется для формирования задания по крену и тангажу для того, чтобы коптер летел в заданном направлении. Для простоты, предположим что курс коптера нулевой (угол равен нулю всегда), тогда для того чтобы коптер двигался вдоль оси X, требуется изменить его угол тангажа , а для того чтобы он двигался вдоль оси Y, требуется изменить угол крена.


Путем несложных выкладок, можно получить следующие формулы для вычисления угла наклона:

$\phi_{звд} = arcsin(y_{задI}); \\ \theta_{зад} = arcsin(\frac{x_{задI}}{cos(\phi_{зад})})$


где $y_{задI}$ и $x_{задI}$ рассогласования заданных значений координат и измеренных в инерциальной системе отсчета, а выражения под арксинусом дополнительно ограничиваются некоторой величиной (полученной исходя из запасов управляемости коптера по крену и тангажу), например, диапазоном $\left[ -\frac{\pi}{16};+\frac{\pi}{16}\right]$ .


Если такие величины подать вместо нулевого значения на вход регуляторам крена и тангажа, то регулятор будет дополнительно доворачивать коптер на небольшой угол, для полета вдоль своих осей X и Y. Если учитывать еще и возможность изменения курса, то формулы получатся посложнее, но смысл управления будет тем же самым. Реализация такого управления показана на рисунке 26.



Рисунок 26. Формирование задания на крен и тангаж
Модель коптера можно взять по этой ссылке здесь...:
Видео модели коптера можно посмотреть здесь

Список литературы


  1. Первая часть. Введение в моделирование динамики квадро-, гекса- и октокоптеров
  2. Design, Modeling and Control of an Octocopter, Oscar Oscarson, Royal Institute of Technology 2015
  3. Development, Modelling and Control of a Multirotor Vehicle, Markus Mikkelsen, Ume University 2015.
Подробнее..

Настройка ПИД-регуляторов так ли страшен чёрт, как его малюют? Часть 1. Одноконтурная система

22.07.2020 12:20:51 | Автор: admin


Эта статья открывает цикл статей, посвященных автоматизированным способам настройки ПИД-регуляторов в среде Simulink. Сегодня разберемся, как работать с приложением PID Tuner.


Введение


Наиболее популярным типом применяемых в промышленности регуляторов в системах управления замкнутыми системами можно считать ПИД-регуляторы. И если структуру и принцип действия контроллера инженеры помнят еще со студенческой скамьи, то его настройка, т.е. расчет коэффициентов регулятора, до сих пор является проблемой. Существует огромное количество литературы, как зарубежной (например, [1, 2]), так и отечественной (например, [3, 4]), где настройка регуляторов объясняется на достаточно непростом языке теории автоматического управления.


В этой серии статей будут описываться автоматизированные способы настройки ПИД-регуляторов с помощью инструментов среды Simulink, таких как:


  • PID Tuner,
  • Response Optimizer,
  • Control System Tuner,
  • Frequency Response Based PID Tuner,
  • Closed-Loop PID Autotuner.

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


  • напряжение питания двигателя, $U_{пит} = 24 \; В$;
  • активное сопротивление обмотки якоря двигателя, $R = 4.8 \; Ом$;
  • индуктивное сопротивление обмотки якоря двигателя, $L = 0.0016 \; Гн$;
  • коэффициент момента двигателя, $c_{e} = 0.066 \; Нм/А$;
  • момент инерции ротора двигателя, $J_{дв} = 2.510^{-5} \; кг \cdot м^{2}$.

Параметры нагрузки и редуктора:


  • момент инерции нагрузки, $J_{н} = 0.01 \; кг \cdot м^{2}$;
  • передаточное число редуктора, $q = 5$.

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


Модель системы


Рассмотрим линейную систему управления угловой скоростью следящего электропривода, упрощенная структурная схема которой представлена ниже.



В соответствии с приведенной структурой в среде Simulink была построена модель такой системы.



Модели электропривода (подсистема Electric actuator) и инерционной нагрузки (подсистема Load) созданы с помощью блоков библиотеки физического моделирования Simscape:


  • модель электропривода,


  • модель инерционной нагрузки.


Модели электропривода и нагрузки также включают подсистемы датчиков различных физических величин:


  • тока, протекающего в обмотке якоря двигателя (подсистема А),


  • напряжения на его обмотке (подсистема V),


  • угловой скорости объекта управления (подсистема ).


Перед настройкой параметров ПИД-регулятора запустим модель на расчет, приняв передаточную функцию регулятора $W_{р}(s) = 1$. Результаты моделирования при отработке входного сигнала 150 об/мин показаны ниже.





Из анализа приведенных графиков видно, что:


  • Выходная координата системы управления не достигает заданного значения, т.е. в системе присутствует статическая ошибка.
  • Напряжение на обмотках двигателя достигает значения 150 В в начале моделирования, что повлечет за собой выход его из строя вследствие подачи на его обмотку напряжения больше номинального (24 В).

Пусть реакция системы на единичный импульс должна соответствовать следующим требованиям:


  • перерегулирование (Overshoot) не более 10%,
  • время нарастания (Rise time) менее чем 0.8 с,
  • время переходного процесса (Settling time) менее чем 2 с.

Кроме того, регулятор должен ограничивать напряжение, подаваемое на обмотку двигателя, до значения напряжения питания.


Настраиваем контроллер


Настройка параметров регулятора осуществляется с помощью инструмента PID Tuner, который доступен непосредственно в окне параметров блока PID Controller.



Приложение запускается нажатием на кнопку Tune, расположенную на панели Automated tuning. Стоит отметить, что до выполнения этапа настройки параметров контроллера необходимо выбрать его вид (П, ПИ, ПД и др.), а также его тип (аналоговый или дискретный).


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


  1. Переходим во вкладку Output Saturation.
  2. Нажимаем на флаговую кнопку Limit output, в результате чего активируются поля для задания верхней (Upper limit) и нижней (Lower limit) границы диапазона выходной величины.
  3. Устанавливаем границы диапазона.

Корректная работа блока регулятора в составе системы предполагает использования методов, направленных на борьбу с интегральным насыщением. В блоке реализованы два метода: back-calculation и clamping. Подробная информация о данных методах располагается здесь. Выпадающее меню выбора метода расположено на панели Anti-windup.


В рассматриваемом случае запишем значения 24 и -24 в поля Upper limit и Lower limit соответственно, а также используем метод clamping для исключения интегрального насыщения.



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


Далее, приняв все изменения нажатием кнопки Apply, возвращаемся во вкладку Main и нажимаем кнопку Tune, в результате чего откроется новое окно приложения PIDTuner.



В графической области окна отображаются два переходных процесса: при текущих параметрах регулятора, т.е. для ненастроенного регулятора, и при значениях, подобранных автоматически. Новые значения параметров можно посмотреть, нажав на кнопку Show Parameters, расположенную на панели инструментов. При нажатии на кнопку появятся две таблицы: подобранные параметры регулятора (Controller Parameters) и произведенные оценки характеристик переходного процесса при подобранных параметрах (Performance and Robustness).


Как видно из значений второй таблицы, автоматически рассчитанные коэффициенты регулятора удовлетворяют всем требованиям.



Настройка регулятора завершается нажатием на кнопку с зеленым треугольником, расположенной справа от кнопки Show Parameters, после чего новые значения параметров автоматически изменятся в соответствующих полях в окне настройки параметров блока PID Controller.


Результаты моделирования системы с настроенным регулятором для нескольких входных сигналов показаны ниже. При больших уровнях входных сигналов (голубая линия) система будет работать в режиме с насыщением по напряжению.





Отметим, что инструмент PID Tuner подбирает коэффициенты регулятора по линеаризованной модели, поэтому при переходе к нелинейной модели требуется уточнять его параметры. В этом случае можно воспользоваться приложением Response Optimizer.


Литература


  1. Handbook of PI and PID Controller Tuning Rules. Aidan O'Dwyer
  2. PID Control System Design and Automatic Tuning using MATLAB, Simulink. Wang L.
  3. ПИД-управление в нестрогом изложении. Карпов В.Э.
  4. ПИД-регуляторы. Вопросы реализации. Части 1, 2. Денисенко В.
Подробнее..

Настройка ПИД-регуляторов так ли страшен чёрт, как его малюют? Часть 2. Двухконтурная система. Control System Tuner

28.07.2020 12:21:05 | Автор: admin


При реализации системы управления положением объекта часто применяют двухконтурную структуру, включающую в себя два регулятора: положения нагрузки и скорости исполнительного устройства. В таком случае возникает необходимость одновременной настройки обоих регуляторов. Данная задача может быть решена с использованием инструмента Control System Tuner.


Модель системы


Структурная схема двухконтурной системы и ее модель, созданная на основе этой схемы, показаны ниже.



Параметры электропривода и нагрузки указаны в первой части серии.


Отличие моделей Electric actuator и Load от заключается в добавлении новых датчиков: датчик угловой скорости измеряет скорость ротора исполнительного двигателя привода и датчик положения измеряет положение объекта управления.


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


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


Без регуляторов, т.е. предположив $W_{p_{i}}(s) = 1$, переходный процесс апериодический с временем переходного процесса, равным 2.5 с.



Предъявим следующие требования к переходному процессу системы:


  • Перерегулирование (Overshoot) не более 5%;
  • Время переходного процесса (Settling time) менее чем 1 с.

Настраиваем контроллеры


Приложение Control System Tuner располагается во вкладке APPS окна модели Simulink, в разделе CONTROL SYSTEMS.


Настройка регуляторов осуществляется в соответствии со следующим алгоритмом:


  1. После открытия окна приложения переходим во вкладку TUNING и нажимаем кнопку Select Block.


  2. В открывшемся диалоговом окне нажимаем на кнопку Add Blocks для добавления блоков регуляторов.


  3. Устанавливаем флажок рядом с требуемыми блоками подтверждаем выбор нажатием кнопки OK. В результате выбранные блоки отобразятся в разделе Tuned Blocks панели Data Browser.


  4. Создаем новую задачу для настройки. Для этого нажимаем кнопку New Goal и в выпадающем меню выбираем опцию Tracking of step commands в разделе TIME-DOMAIN REQUIREMENTS. В результате откроется диалоговое окно Step Tracking Goal.


  5. Необходимо указать входной и выходной сигналы системы. Для этого в полях
    Specify step-response inputs и Specify step-response inputs нажимаем на кнопку
    Add signal to list Select signal from model.

    Переходим в окно модели и выбираем соответствующие сигналы, в нашем случае Reference и Position. Возвращается в окно приложения. В диалоговом окне Select Signals должен отобразиться выбранный сигнал. Нажимаем на кнопку Add Signal(s).


  6. Задаем желаемый вид переходного процесса на панели Desired Response и соответственно вид передаточной функции процесса. Можно выбрать апериодический процесс (First-order characteristics), колебательный процесс (Second-order characteristics) или иной вид процесса (Custom reference model). Для нашего случая выбираем колебательный процесс.


  7. В поле Time constant указывается постоянная времени ($\,T\,$) передаточной функции процесса в секундах. В поле Overshoot (%) величина перерегулирования ($\, \sigma \,$). Соотношения между постоянной времени колебательного звена и временем переходного процесса ($\, t_{п.п.} \,$) и коэффициентом демпфирования ($\, \zeta \,$) и перерегулированием выражаются зависимостями [1]:


    $T = \frac{4 t_{п.п.}}{\zeta},$


    $\zeta = -\frac{ln \, \sigma}{\sqrt{\pi^2 + ln^{2}\, \sigma}}$


    Таким образом, максимальное значение постоянной времени, удовлетворяющее требованию, составляет 0.1725 с. Укажем постоянную времени, равную 0.1 с. Также вводим требуемой значение перерегулирования во второе поле. Подтверждаем изменения.


  8. В появившемся графическом окне приложения можно видеть два переходных процесса: текущий, т.е. переходный процесс системы до настройки регуляторов, и желаемый, по заданной передаточной функции. Нажимаем на кнопку Tune для настройки регуляторов. Выбирая настраиваемые блоки на панели Data Browser в разделе Data Preview можно просмотреть вид передаточной функции контроллера и подобранные параметры. При выборе текущей задачи настройки в разделе Tuning Goals отображаются входные и выходные сигналы системы, а также передаточная функция процесса. Ниже показаны характеристики переходного процесса. Видно, что эти значения соответствуют требуемым.


  9. Для автоматического обновления параметров регуляторов переходим во вкладку CONTROL SYSTEM и нажимаем кнопку Update Blocks.



Результаты моделирования системы с настроенным регулятором для максимального уровня входного сигнала показаны ниже.





Литература


  1. Modern Control Engineering (5th Edition). Katsuhiko Ogata
Подробнее..

Настройка ПИД-регуляторов так ли страшен черт, как его малюют? Часть 3. Response Optimizer

05.08.2020 12:20:05 | Автор: admin


В данной статье рассмотрим процесс настройки регулятора нелинейной модели электропривода с помощью инструмента Response Optimizer.


До сих пор мы рассматривали только линейные системы (часть 1 и часть 2). Они нужны для понимания принципа работы настоящей (нелинейной) системы и грубого определения ее характеристик. Однако на практике приходится иметь дело именно с нелинейной моделью.


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


Сегодня рассмотрим систему, где вместо идеального датчика скорости используется инкрементальный энкодер. Он формирует три цифровых сигнала A, B и Z, на основе которых определяются угловое положение и скорость объекта управления.


Настройка регулятора системы, включающей как цифровую, так и непрерывную часть, не может осуществляться с помощью инструментов, работающих с линеаризуемыми моделями (PID Tuner). В таком случае на помощь приходят численные методы.


Модель системы


Ниже показана модель рассматриваемой системы.



Помимо уже знакомых подсистем электропривода, нагрузки и регулятора скорости, она включает в себя:


  • датчик скорости (подсистема Sensor),



  • функцию обработки сигналов от энкодера, реализуемая в цифровом вычислителе (подсистема Incremental shaft decoder)




Все параметры системы приведены в первой части. Разрешение энкодера составляет 256 имп/об.


Результаты моделирования до настройки регулятора ($W_{р}(s) = 1$) приведены ниже.





Пусть реакция системы на единичный импульс должна соответствовать следующим требованиям:


  • перерегулирование (Overshoot) не более 8%,
  • время нарастания (Rise time) менее чем 0.3 с,
  • время переходного процесса (Settling time) менее чем 0.85 с.

Кроме того, регулятор должен ограничивать напряжение, подаваемое на обмотку двигателя, до значения напряжения питания. Это означает, в регуляторе необходимо применить метод для борьбы с интегральным насыщением.


Настраиваем контроллер


Приложение Response Optimizer располагается во вкладке APPS окна модели Simulink, в разделе CONTROL SYSTEMS.


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


Настройка регуляторов осуществляется в соответствии со следующим алгоритмом:


  1. Создаем MATLAB переменные, соответствующие параметрам регулятора, в окне Model Explorer и присваиваем их значениям начальные приближения.


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



  2. Записываем переменные в соответствующие поля в окне параметров блока PID Controller.



  3. Открываем инструмент Response Optimizer. Слева в разделе Model Workspace на панели Data Browser показаны созданные ранее переменные.


  4. Определяем список оптимизируемых параметров. Для этого нажимаем на кнопку None редактируемого поля Design Variables Set.



    В выпадающем меню нажимаем New.... В правом списке открывшегося окна Create Design Variables Set расположены переменные модели, а в левом параметры для оптимизации. Выделяем переменные и нажимаем на кнопку со стрелкой, расположенной между двумя списками, для переноса их в левый список.


    Опционально можно указать границы диапазоны оптимизируемых параметров в столбцах Minimum и Maximum.



  5. Выбираем задачу оптимизации. В блоке REQUIREMENTS нажимаем на кнопку New и в выпадающем меню в разделе TIME-DOMAIN REQUIREMENTS выбираем опцию Step Response Envelope.



  6. Задаем характеристики требуемого переходного процесса в появившемся окне в разделе Specify Step Response Characteristics.



  7. Задаем сигнал, к которому предъявляются требования по переходному процессу. В разделе Select Signals to Bound нажимаем на кнопку с плюсом рядом со списком. Переходим в модель и выбираем необходимый сигнал. В нашем случае сигнал Speed. Возвращаемся в окно инструмента. В левом списке открывшегося окна Create Signal Set выбираем сигнал и нажимаем на кнопку со стрелкой. Завершаем выбор сигналов нажатием ОК.



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


    В разделе Data на панели Data Browser расположены три переменные: DesignVars содержит информацию о списке оптимизированных параметров, Sig свойства выбранного сигнала и StepRespEnvelope информацию о требованиях к переходному процессу.


    Построим переходный процесс до настройки регулятора. Для этого выбираем переменную Sig и нажимаем на кнопку Plot Model Response, расположенную в блоке PLOTS.



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


  8. Оптимизируем параметры регулятора. Выбираем переменную DesignVars и нажимаем на кнопку с зеленым треугольником в блоке OPTIMIZE.


    Результаты процесса оптимизации отображаются в окне прогресса.



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




Результаты моделирования системы с настроенным регулятором показаны ниже.




Подробнее..

Настройка ПИД-регуляторов так ли страшен черт, как его малюют? Часть 4. Frequency Response Based PID Tuner

12.08.2020 12:22:47 | Автор: admin


Среда Simulink предоставляет возможность исследования нелинеаризуемых систем и настройки их регуляторов с помощью метода гармонического анализа. Одним из инструментов, использующих данный метод, является Frequency Response Based PID Tuner.


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


Модель системы


Рассматриваемая система приведена ниже.



Драйвер управления двигателем:



Добавление блока управления двигателем вынуждает модифицировать блоки регулятора



и электропривода



Результаты моделирования при отработке входного сигнала 150 об/мин без регулятора показаны ниже. Из их анализа видно, что:


  • Выходная координата системы управления не достигает заданного значения, т.е. в системе присутствует статическая ошибка;
  • Напряжение на обмотках двигателя достигает максимального значения (напряжения питания) при малых входных сигналах.




Пусть реакция системы на единичный импульс должна соответствовать следующим требованиям:


  • Перерегулирование (Overshoot) не более 10%;
  • Время нарастания (Rise time) менее чем 0.8 с;

При попытке настроить регулятор описанным в первом части способом в окне приложения PID Tuner появится предупреждение о невозможности линеаризации системы.



Настраиваем контроллер


Приложение Frequency Response Based PID Tuner располагается в окне параметров блока PID Controller в выпадающем меню Select tuning method. Для его запуска необходимо нажать кнопку Tune.



В открывшемся окне представлено краткое описание работы метода, а также параметры настройки эксперимента.



Алгоритм задания цели эксперимента:


  1. Указать количество расчетов моделей (Number of simulations): 2 расчета для систем с возмущающими воздействиями, 1 расчет для систем без возмущающих воздействий. Поскольку в данной системе их нет, то выбираем 1 расчет.
  2. Указать тип системы (Plant information): асимптотически устойчивая система, либо система с астатизмом первого порядка (система имеет один интеграл). В данном случае система асимптотически устойчива.
  3. Задание времени начала моделирования $t_{0}$ и продолжительности моделирования $t_{span}$. Эксперимент рекомендуется начинать, когда система вышла на установившейся режим, т.е. когда закончился переходный процесс. Установим начало эксперимента в 0.2 с. Продолжительность моделирования определяется требуемым временем нарастания согласно формуле $t_{span} = 50 t_{r}$.
  4. Задать амплитуды тестовых сигналов. Амплитуды сигналов рекомендуется брать такими, чтобы значения превышали амплитуды шумов в системе, но не выходили за ее ограничения. В данном случае указываем амплитуды сигналов, равными 1.
  5. Указать требования к переходному процессу (Design Specifications). Значение требуемой полосы пропускания определяется формулой $\omega_{b} = 2/t_{r}$. В нашем случае оно равно 4.83 рад/с. Величина перерегулирования 10% примерно соответствует запасу по фазе 60, поэтому оставляем это значение без изменения.

Далее, нажимаем кнопку Tune для запуска эксперимента. После завершения эксперимента настроенные параметры регулятора появятся на панели Tuning Results.



Нажимая кнопку Update PID Block, новые параметры автоматически изменятся в соответствующих полях окна параметров блока регулятора.


Результаты моделирования системы с настроенным регулятором для нескольких входных сигналов представлены ниже.





Полученные эпюры близки к результатам расчета линейной модели из первой части.

Подробнее..

Настройка ПИД-регуляторов так ли страшен черт, как его малюют? Часть 5. Closed-Loop PID Autotuner

19.08.2020 20:12:15 | Автор: admin


Заключающая статья серии, посвященной автоматизированным способам настройки ПИД-регуляторов в среде Simulink, в которой мы рассмотрим применение блока автоматической настройки Closed-Loop PID Autotuner.


Этот блок похож на ранее рассмотренный инструмент Frequency Response Based PID Tuner: он также базируется на методе гармонического анализа. Располагается блок в разделе Simulink Control Design библиотеки Simulink.


Сразу стоит сказать, что система аналогична приведенной в предыдущей статье, поэтому все результаты моделирования можно посмотреть там же.


Модель системы


Рассматриваемая система приведена ниже.



Содержимое всех подсистем, кроме подсистемы регулятора, было рассмотрено в предыдущих статьях: Driver, Electric actuator, Load.


Для того чтобы использовать блок Closed-Loop PID Autotuner, необходимо включить его последовательно с блоком PID Controller, как показано ниже.



На порт входа 1 приходит сигнал ошибки с дискриминатора, на порт 2 сигнал обратной связи; в данном случае угловая скорость объекта управления. В подсистеме Tune enable формируется сигнал начала и завершения эксперимента по настройке параметров регулятора.



В модель добавлены блоки Display для регистрации выполнения эксперимента в процентах
(% conv) и подобранных параметров регулятора (pid gains).


Предъявим к этой системе такие же требования, как к системе из предыдущей статьи.


Настраиваем контроллер


Окно параметров блока Closed-Loop PID Autotune позволяет выбрать тип используемого в системе регулятора, его форму, задавать цель эксперимента, а также его параметры.



Желаемое значение полосы пропускания (Target bandwidth) рассчитывается также, как в предыдущей статье. В нашем случае оно равно 4.83 рад/c.


Если используемый в системе регулятор цифрового типа, то в блоке автонастройки указывается его период квантования; при применении непрерывного регулятора задается шаг расчета модели при выполнении эксперимента (Experiment sample time). Рекомендуемое значение шага моделирования составляет $0.02/\omega_{b}$. В нашем случае это значение равно 0.0041.


Во вкладке Experiment задаются параметры эксперимента. Рассматриваемая система является устойчивой, поэтому тип системы (Plant Type) указываем как Stable. Знак системы (Plant Sign) указывает на свойство совпадения знака выходной и входной координат. В данном случае оставляем этот параметр без изменения. Далее указывается амплитуда тестового гармонического сигнала (Sine Amplitudes) в соответствии с рекомендациями, приведенными в предыдущем параграфе. Устанавливаем амплитуду, равную 1.


Время начала эксперимента выбирается из расчета перехода системы в установившийся режим без регулятора. Время завершения эксперимента рекомендуется рассчитывать по формуле $200/\omega_{b}$. Для нашей системы время начало эксперимента будет $t_{start} = 0.1$ с, а время завершения $t_{end} = 42$ с. Оба значения указываются в полях Step time соответствующих блоков Step в подсистеме Tune enable.


Следует отметить, что время завершения моделирования (Stop Time) необходимо указывать больше, чем время окончания эксперимента, иначе процесс настройки параметров регулятора не завершится.


После расчета модели подобранные параметры отобразятся в блоке Display.



Эти значения придется записать в соответствующие поля блока PID Controller вручную.


Для нормального функционирования системы переводим тумблер Manual Switch в подсистеме Tune Enable на вход нулевого сигнала. Таким образом, блок автонастройки не включится при моделировании системы.


Можно заметить, что рассчитанные параметры с помощью блока Closed-Loop PID Autotune практически совпадают с параметрами, полученными с помощью инструмента Frequency Response Based PID Tuner.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru