Система поддержания положения ШД

Ответить
Алексей!
Сообщения: 3
Зарегистрирован: 13 апр 2023, 10:12

Система поддержания положения ШД

Сообщение Алексей! » 26 апр 2023, 14:42

Добрый день. Понравилась статья Поддержание положения в сервоприводе: подчинённое регулирование vs шаговый режим

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

Изображение

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Система поддержания положения ШД

Сообщение Лашкевич Максим » 26 апр 2023, 15:07

Нет. Регулятор скорости задаёт момент. Его нельзя заменить на частоту импульсов шагового двигателя. Получится, что регулятор скорости задаёт скорость. Получается ерунда.

Для шагового режима все эти контура неприменимы.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Алексей!
Сообщения: 3
Зарегистрирован: 13 апр 2023, 10:12

Re: Система поддержания положения ШД

Сообщение Алексей! » 26 апр 2023, 15:42

А как тогда это делается? Есть STEP, DIR (микростеппинг 1:256), датчик угла в виде [0...2^21) кода, причем этот датчик угла не на валу, а через понижающий редуктор.
Шаговик удерживает положение, никто/ничто ему текущий шаг не "скрутит" (как на видео к статье).
Но хочется чтобы работало так: задал ему программно int Pos или "многооборотный" float, а он возьми и подкрути быстренько к этой Pos, причем разогнался и затормозил. Pos в итоге инклинометр задавать будет, так что её реально "держать" надо будет шаговиком.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Система поддержания положения ШД

Сообщение Лашкевич Максим » 26 апр 2023, 17:00

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

Никаких контуров и регуляторов тут не надо. Только планировщик траектории.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Алексей!
Сообщения: 3
Зарегистрирован: 13 апр 2023, 10:12

Re: Система поддержания положения ШД

Сообщение Алексей! » 26 апр 2023, 21:09

Лашкевич Максим писал(а):
26 апр 2023, 17:00
Никакой датчик положения тогда не нужен. Вам заранее известно расстояние, которое надо проехать. Рассчитайте траекторию, где надо разгоняться и тормозить, чтобы приехать ровно заданное число меток. Внешний датчик положения можно использовать только для формирования ошибки, если шаговик пропустил шаги и не обработал, когда число отсчитанных импульсов не соответствует положению через редуктор. Никаких контуров и регуляторов тут не надо. Только планировщик траектории.

Благодарю за помощь!
Если вывалить сразу всё, то это стена текста. Такое никто не любит. Поэтому проблему приходится излагать постепенно.

Да, изначально всё так и было сделано, отсчитывались шаги, и изначальное положение калибровалось по оптическому концевику.
Но проблема в том что ШД на протяжении десятков минут без возможности перекалибровки вынужден постоянно ездить туда-сюда, совершая в fullstep несколько десятков тысяч шагов вперед-назад , в microstepping'е это миллион шагов. Потеря в одном цикле одной "полки" меандра (половины импульса) причиняет заметный уже через несколько минут всё больший уход от изначальной позиции.

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

Вот отсюда и появилась задача "отшагай неизвестное количество шагов N со скоростью W и приди в необходимый угол по энкодеру".

Сейчас она решена примитивно-алгоримически, сравнением двух углов, гоняя шаговик. Конечно, можно вычислить сколько приходится микрошагов от текущего угла до target-угла и построить "ramp" (скоростной профиль), плавно начиная и плавно заканчивая.
Но хотелось бы решить задачу не алгоритмами, а посредством ПИД, так как с их помощью решается задача слежения. Именно так я и вышел на вашу статью с тремя ПИД контурами.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Система поддержания положения ШД

Сообщение Лашкевич Максим » 27 апр 2023, 12:41

Опять же, не надо для задачи управления шагами использовать обратную связь по углу с датчика напрямую. Если шаги теряются, и хотите корректировать их по датчику, то так и надо делать "в лоб". Контура по положению тут будут работать хуже.
Я бы делал так - сравнивал угол с датчика положения и угол задания с шаговика, и очень медленным интегральным регулятором добавлял шаги, если есть расхождение. Так как вы говорите, что шаги теряются за минуты работы, то и скорость такого регулятора должна быть соответствующей, типа там по шагу в секунду в нужную сторону, не быстрее. Т.е. если на протяжении длительного времени есть расхождение углов, то гоните шаговик в нужную сторону добавляя ему потерянные шаги медленным интегральным регулятором. Скорее всего так вы и сделали, и это и есть правильное решение данной задачи на мой взгляд.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить