Позиционирование привода с обратной связью в Engee-Euler
Система управления приводом с обратной связью для циклического перемещения груза на пружине под действием сил сухого трения на основе косимуляции сред Engee и EULER
Введение
Проект демонстрирует замкнутую систему управления положением груза, движущегося по горизонтальной направляющей под действием сил сухого трения. Управляющая часть реализована в среде Engee, а механическая подсистема — в среде Euler. Обмен сигналами между средами организован с помощью DLL-библиотеки Engee_Euler.dll. Модель иллюстрирует совместное применение программной (разомкнутой) и корректирующей (замкнутой) составляющих управления: базовая траектория привода формируется по разомкнутому принципу с упреждением, а ПИД-регулятор компенсирует отклонения, вызванные трением, проскальзыванием контактного захвата и инерцией промежуточного звена.
1. Постановка задачи
1.1. Механическая схема
Рассматривается следующая механическая система (расчётная модель в Euler, подробное описание тел и связей см. в разделе 2):
- Манипулятор A — приводится в движение через канал
differential2, получающий командуpos_cmdиз Engee - Сферическое звено M — промежуточное тело, удерживаемое П-образным захватом манипулятора за счёт контактного трения
- Груз G — целевое тело, соединённое со звеном M пружиной жёсткостью
- Балка длиной 2 м с левым краем в ; груз размером 0.5 м должен циклически перемещаться между началом и концом балки.
1.2. Обозначения
1.3. Цель управления
Обеспечить циклическое возвратно-поступательное движение груза между крайними положениями:
Ошибка регулирования:
где — текущее целевое положение груза, формируемое подсистемой «Задание траектории».
2. Механическая подсистема в Euler
2.1. Твёрдые тела и кинематические связи
В Euler объявлены следующие тела (ключевые):
| Тело | Обозначение | Масса | Описание |
|---|---|---|---|
solid |
основания | — | Неподвижное основание (балка, стойка, кожух) |
G |
груз | 2 кг | Перемещается по направляющей, трение о поверхность |
M |
звено | 100 кг | Сферическое тело в захвате манипулятора |
A |
манипулятор | — | П-образный захват на выдвижной штанге |
Кинематические ограничения — две поступательных пары:
joint_G = translational(base, G, p1, projectX),
joint_A = translational(base, A, p4, projectX).
Груз G и манипулятор A имеют по одной степени свободы вдоль оси . Звено программного движения не получает — оно перемещается исключительно за счёт силового взаимодействия с захватом манипулятора.
2.2. Силовые элементы
Пружина между грузом и звеном :
force_GM = spring(G, p1, M, p2, k, damp = 0.5[s])
Сила упругости вдоль оси :
где , — эквивалентное демпфирование (параметр damp = 0.5 с).
Сухое трение груза о направляющую:
force_transFrict = transFrict(G, p1, base, projectX, F_frict, kU, cU, k_r = k_rest)
Модель трения — упруго-демпферная с ограничением:
где
Параметры: , .
Контактный захват манипулятора:
force_grip_contact = contactMB(
list(A, M),
contactParameters(
kelvinVoigt1(k_contact, b_contact),
frictionParameters = brush(mu_contact, k_r = k_r_contact)
)
)
Нормальная сила контакта (модель Кельвина–Фойгта):
где , .
Касательная сила (модель сухого трения brush):
Примечание о поведении захвата: захват является односторонним контактом с зазором. При обратном направлении движения манипулятор отрывается от сферы, обгоняет её и перехватывает противоположной стенкой.
2.3. Привод манипулятора
Положение манипулятора задаётся каналом второго порядка:
motion motion_drive = differential2(joint_A.s, drive_cmd, 0.05[s], 0.3[s])
Передаточная функция привода:
Привод сглаживает командный сигнал, уменьшая ударные нагрузки в захвате и пружине.
2.4. Обмен сигналами с Engee
| Направление | Сигнал | Единицы | Назначение |
|---|---|---|---|
| Engee → Euler | pos_cmd |
м | Командное положение манипулятора |
| Euler → Engee | Pos_G |
м | Положение груза |
| Euler → Engee | V_G |
м/с | Скорость груза |
| Euler → Engee | V_M |
м/с | Скорость звена M |
| Euler → Engee | Sensor_F_frict |
кгс | Сила сухого трения груза |
Настройки UDP-соединения: IP 127.0.0.1, порт приёма 7467, порт отправки 7456, шаг обмена 0.001 с.
3. Математическая модель движения вдоль оси X
После учёта наложенных в Euler связей динамика системы сводится к двум уравнениям:
где , , — проекция контактной силы захвата на ось . Манипулятор описывается не силовым уравнением, а передаточной функцией привода .
В квазистатическом приближении (малые ускорения, пренебрежение демпфированием):
Минимальный разнос между манипулятором и грузом, необходимый для преодоления трения:
Эта оценка задаёт нижнюю границу для выбора запаса базовой траектории (см. раздел 5.2).
4. Система управления в Engee
4.1. Подсистемы верхнего уровня
Управляющая часть в Engee состоит из трех подсистем:
- Подсистема «Задание траектории»
- Подсистема «ПИД-регулятор»
- Подсистема «Обмен данными»
4.2. Подсистема «Задание траектории»
Вход: (положение груза)
Выходы: (целевая координата груза), (базовая траектория привода)
Подсистема решает две задачи:
(1) определить, в каком направлении двигаться;
(2) сформировать опорные сигналы для ПИ-регулятора и для прямой связи.
4.2.1. Логика направления: релейный элемент с гистерезисом
Используется блок Relay с порогами и :
Пороги выбраны с небольшим отступом от механических границ балки ( и м) — это предотвращает выход груза за край направляющей, за счёт упреждающего переключения. Нижний отступ м больше верхнего ( м), поскольку при движении влево манипулятор уходит далеко вперёд ( м), создавая значительное ускорение груза.
4.2.2. Формирование целевых координат: блоки «Переключатель»
Применены два блока «Переключатель» (критерий ), работающие как логические мультиплексоры — при пропускают нижний вход, при — верхний.
Переключатель :
| Выход | |
|---|---|
| (вправо) | м |
| (влево) | м |
Переключатель :
| Выход | |
|---|---|
| (вправо) | м |
| (влево) | м |
4.2.3. Итоговые формулы
Запас базовой траектории: при движении вправо м (создаёт тяговое усилие пружины кгс против трения 5 кгс). При движении влево запас значительно больше: м — это необходимо для надёжного перезахвата сферы противоположной стенкой захвата после смены направления движения.
4.3. Подсистема «ПИД-регулятор»
Входы: (целевое положение), (фактическое положение)
Выход: (корректирующая добавка, ограниченная насыщением)
4.3.1. Ошибка регулирования
4.3.2. Дискретный ПИ-регулятор
Реализован блоком Discrete PID Controller ( с, метод интегрирования — трапеции):
с параметрами , .
Выбор коэффициентов: означает, что при максимальной ошибке м пропорциональная составляющая составляет м — в пределах насыщения. обеспечивает медленное накопление интегральной составляющей для компенсации статической ошибки от трения без чрезмерного интегрального насыщения.
4.3.3. Насыщение
Ограничение выбрано как компромисс между достаточной корректирующей способностью и безопасностью: слишком резкое движение манипулятора может привести к срыву контактного захвата (проскальзыванию сферы M). Верхняя оценка допустимого ускорения определяется условием неразрыва контакта.
4.4. Подсистема «Обмен данными»
Входы: (рассчитанное положение привода);
Выходы: положение груза (целевой сигнал для анализа качества регулирования), скорость груза, скорость промежуточного звена M, сила сухого трения
4.4.1. Сборка команды: прямая связь + обратная связь
Итоговая команда на привод формируется суммированием:
Принцип разделения:
- (прямая связь): грубая, но мгновенная оценка — «манипулятор должен быть здесь, чтобы груз поехал в нужную сторону». Обеспечивает основную часть управляющего воздействия.
- (обратная связь): точная, но запаздывающая коррекция — «груз недотянул 3 см с учетом накопленной суммы трения, добавить недостающее воздействие». Доводит положение точно до целевого.
Такой подход позволяет ПИД-регулятору работать в малом диапазоне, не выводя систему из насыщения, и ускоряет отработку больших перемещений.
5. Параметры регулирования
5.1. Гистерезис [, ]
Пороги переключения должны удовлетворять условию:
где с — время разворота привода. При характерной скорости подхода м/с запас м технически мал, но достаточен за счёт того, что в момент подхода к границе пружина разжимается (движение вправо). Точные значения подобраны экспериментально по результатам симуляции.
5.2. Запасы базовой траектории [ м, м]
Минимальный разнос для преодоления трения (см. раздел 3):
Запас м при движении вправо обеспечивает четырёхкратное превышение над минимальным — достаточное для компенсации динамических потерь в захвате и инерции груза. Запас м при движении влево продиктован необходимостью надёжного перезахвата сферы массой 100 кг после смены направления движения: манипулятор должен убежать далеко влево, чтобы гарантированно обогнать сферу, движущуюся по инерции вправо.
5.3. ПИД-коэффициенты [, ]
При данных параметрах регулятор остаётся в линейной зоне () при ошибках до м — с запасом перекрывает максимально возможную ошибку м. Интегральная составляющая накапливается со скоростью за шаг, что обеспечивает компенсацию статической ошибки за характерное время порядка нескольких секунд.
5.4. Насыщение []
Выбрано из условия, что диапазон м покрывает все допустимые положения манипулятора без избыточных бросков, способных сорвать контактный захват. Увеличение насыщения не даёт выигрыша в качестве регулирования, но повышает риск проскальзывания.
6. Симуляция процесса и полученные результаты
Симуляция процесса:
На графиках выводятся четыре сигнала обратной связи из Euler:
-
Sensor_F_frict — сила сухого трения
-
V_G — скорость груза
-
V_M — скорость промежуточного звена M
-
Pos_G — положение груза
При штатной работе груз совершает циклические движения между и м с перерегулированием не более нескольких сантиметров. Сила трения скачкообразно меняет знак при обратном движении, что соответствует физике сухого трения. Скорость звена M имеет характерные всплески в моменты перезахвата сферы.
7. Итоговая структура проекта
| Файл | Назначение |
|---|---|
friction_pid_relay_feedforward.engee |
Модель в Engee |
friction_pid_relay_feedforward.elr |
Модель в Euler |
Engee_Euler.dll |
Библиотека для взаимодействия Engee ↔ Euler |
settings.cfg |
Текстовое представление настроек косимуляции |
Параметры симуляции
-
Решатель: Euler (fixed-step)
-
Шаг: с
-
Длительность: с
Заключение
На рассмотренном примере продемонстрировано, что использование обратной связи по положению груза, PI-регулирования и логики переключения направления движения позволяет реализовать устойчивый циклический режим перемещения между крайними положениями направляющей с учетом влияния сухого трения и упругой связи в приводной системе. При этом косимуляционный обмен данными обеспечивает согласованную работу управляющей и механической подсистем в едином замкнутом контуре.