Добрый день. Понравилась статья Поддержание положения в сервоприводе: подчинённое регулирование vs шаговый режим
У меня шаговый двигатель.
Правильно ли я понимаю, что в этом случае схема становится двухконтурной?
Система поддержания положения ШД
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Система поддержания положения ШД
Нет. Регулятор скорости задаёт момент. Его нельзя заменить на частоту импульсов шагового двигателя. Получится, что регулятор скорости задаёт скорость. Получается ерунда.
Для шагового режима все эти контура неприменимы.
Для шагового режима все эти контура неприменимы.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Система поддержания положения ШД
А как тогда это делается? Есть STEP, DIR (микростеппинг 1:256), датчик угла в виде [0...2^21) кода, причем этот датчик угла не на валу, а через понижающий редуктор.
Шаговик удерживает положение, никто/ничто ему текущий шаг не "скрутит" (как на видео к статье).
Но хочется чтобы работало так: задал ему программно int Pos или "многооборотный" float, а он возьми и подкрути быстренько к этой Pos, причем разогнался и затормозил. Pos в итоге инклинометр задавать будет, так что её реально "держать" надо будет шаговиком.
Шаговик удерживает положение, никто/ничто ему текущий шаг не "скрутит" (как на видео к статье).
Но хочется чтобы работало так: задал ему программно int Pos или "многооборотный" float, а он возьми и подкрути быстренько к этой Pos, причем разогнался и затормозил. Pos в итоге инклинометр задавать будет, так что её реально "держать" надо будет шаговиком.
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Система поддержания положения ШД
Никакой датчик положения тогда не нужен. Вам заранее известно расстояние, которое надо проехать. Рассчитайте траекторию, где надо разгоняться и тормозить, чтобы приехать ровно заданное число меток. Внешний датчик положения можно использовать только для формирования ошибки, если шаговик пропустил шаги и не обработал, когда число отсчитанных импульсов не соответствует положению через редуктор.
Никаких контуров и регуляторов тут не надо. Только планировщик траектории.
Никаких контуров и регуляторов тут не надо. Только планировщик траектории.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Система поддержания положения ШД
Лашкевич Максим писал(а): ↑26 апр 2023, 17:00Никакой датчик положения тогда не нужен. Вам заранее известно расстояние, которое надо проехать. Рассчитайте траекторию, где надо разгоняться и тормозить, чтобы приехать ровно заданное число меток. Внешний датчик положения можно использовать только для формирования ошибки, если шаговик пропустил шаги и не обработал, когда число отсчитанных импульсов не соответствует положению через редуктор. Никаких контуров и регуляторов тут не надо. Только планировщик траектории.
Благодарю за помощь!
Если вывалить сразу всё, то это стена текста. Такое никто не любит. Поэтому проблему приходится излагать постепенно.
Да, изначально всё так и было сделано, отсчитывались шаги, и изначальное положение калибровалось по оптическому концевику.
Но проблема в том что ШД на протяжении десятков минут без возможности перекалибровки вынужден постоянно ездить туда-сюда, совершая в fullstep несколько десятков тысяч шагов вперед-назад , в microstepping'е это миллион шагов. Потеря в одном цикле одной "полки" меандра (половины импульса) причиняет заметный уже через несколько минут всё больший уход от изначальной позиции.
Поэтому, по многим причинам, таким как винтовая механика в некоторых вариантах исполнения имеющая cos'инусный закон, долгая перекалибровка при каждом включении и был применен энкодер. Теперь система всегда "знает" текущий угол.
Вот отсюда и появилась задача "отшагай неизвестное количество шагов N со скоростью W и приди в необходимый угол по энкодеру".
Сейчас она решена примитивно-алгоримически, сравнением двух углов, гоняя шаговик. Конечно, можно вычислить сколько приходится микрошагов от текущего угла до target-угла и построить "ramp" (скоростной профиль), плавно начиная и плавно заканчивая.
Но хотелось бы решить задачу не алгоритмами, а посредством ПИД, так как с их помощью решается задача слежения. Именно так я и вышел на вашу статью с тремя ПИД контурами.
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Система поддержания положения ШД
Опять же, не надо для задачи управления шагами использовать обратную связь по углу с датчика напрямую. Если шаги теряются, и хотите корректировать их по датчику, то так и надо делать "в лоб". Контура по положению тут будут работать хуже.
Я бы делал так - сравнивал угол с датчика положения и угол задания с шаговика, и очень медленным интегральным регулятором добавлял шаги, если есть расхождение. Так как вы говорите, что шаги теряются за минуты работы, то и скорость такого регулятора должна быть соответствующей, типа там по шагу в секунду в нужную сторону, не быстрее. Т.е. если на протяжении длительного времени есть расхождение углов, то гоните шаговик в нужную сторону добавляя ему потерянные шаги медленным интегральным регулятором. Скорее всего так вы и сделали, и это и есть правильное решение данной задачи на мой взгляд.
Я бы делал так - сравнивал угол с датчика положения и угол задания с шаговика, и очень медленным интегральным регулятором добавлял шаги, если есть расхождение. Так как вы говорите, что шаги теряются за минуты работы, то и скорость такого регулятора должна быть соответствующей, типа там по шагу в секунду в нужную сторону, не быстрее. Т.е. если на протяжении длительного времени есть расхождение углов, то гоните шаговик в нужную сторону добавляя ему потерянные шаги медленным интегральным регулятором. Скорее всего так вы и сделали, и это и есть правильное решение данной задачи на мой взгляд.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.