Обратная связь шагового двигателя по линейке ЛИР-7М

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
KDA_140
Новичок
Сообщения: 3
Зарегистрирован: 11 мар 2024, 15:05
Репутация: 2
Настоящее имя: Krupin Dmitry
Контактная информация:

Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение KDA_140 »

Здравствуйте, форумчане, я новичок в LinuxCNC. Захотел разобраться что это такое и с чем это едят.
В качестве образца выбрал токарный станок и начал выстраивать систему с обратной связью.

Вот конфигурация того, чем пользуюсь:
Мозги - Raspberry pi 5 with linuxcnc 2.9.2
Main board - 7i92 (with .bit for lpt-dptr)
Interfece board - LPT-DPTR 1.03
Microstep driver PLD545-G4
Stepper motor - PL57H76
Encoder - линейный преобразователь ЛИР-7М

Всё это дело собрал и столкнулся с проблемой: LinuxCNC видит и обрабатывает сигналы с линейки, двигатель запускается и работает отлично, но как только пытаюсь в hal файле их "подружить" ничего не работает! Направление и масштаб линейных перемещений подобрал, но программа выдает ошибку ~joint 0 following error~. Подумал, что рассогласование происходит из-за различий в показателях и выставил FERROR и MIN_FERROR по 10. Ошибка пропала, но двигатель жалобно кричит и драйвер уходит в сон. Что делать дальше не понимаю, подскажите в чем может быть проблема? Прикреплю конфигурационные файлы.
Вложения
LCNC.hal
(11.97 КБ) 35 скачиваний
LCNC.ini
(5.24 КБ) 30 скачиваний
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение hmnijp »

у вас там только
net x-pos-fb => pid.x.feedback
net x-pos-fb hm2_7i92.0.encoder.00.position
Рекомендуется добавить ещё фидбек скорости с энкодера, это точнее чем вычисление производной самим компонентом PID.
net x-vel-fb => pid.x.feedback-deriv
net x-vel-fb hm2_7i92.0.encoder.00.velocity

KDA_140 писал(а): Что делать дальше не понимаю, подскажите в чем может быть проблема?
А дальше - открывать в халскоп графики: "команда скорости -фидбек скорости- ferror" (по ним вы и масштабирование сигнала и энкодера проверить можете что он +- совпадает) и настраивать pid регулятор, для начала хотя бы по мануалу... (https://linuxcnc.org/docs/html/motion/pid-theory.html)

у вас там сейчас только Пропорциональный регулятор=850 - сомневаюсь что такое будет работать с реальной обратной связью с линеек.
Начните с простого - увеличивать P до момента когда будут автоколебания, уменьшить в половину, FF1=1(если масштаб команды скорости и энкодера верный, то оно в идеале должно быть =1 ), FF2 добавить совсем немного, обычно тысячные, чтобы убрать ступень ferror во время ускорений. Если более менее работает - можно попробовать настраивать весь pid. мелкая дрожж скорости убирается параметром deadband ~ равным дискретности или более.
KDA_140
Новичок
Сообщения: 3
Зарегистрирован: 11 мар 2024, 15:05
Репутация: 2
Настоящее имя: Krupin Dmitry
Контактная информация:

Re: Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение KDA_140 »

hmnijp писал(а): Пропорциональный регулятор=850
В этом была основная проблема! После некоторых тестов понял, что двигатель глохнет после P=250. Спасибо большое за подсказку - буду дальше осваивать LinuxCNC)
KDA_140
Новичок
Сообщения: 3
Зарегистрирован: 11 мар 2024, 15:05
Репутация: 2
Настоящее имя: Krupin Dmitry
Контактная информация:

Re: Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение KDA_140 »

xenon-alien писал(а): 11 мар 2024, 20:28
Подскажите, строго следуя инструкции в видео, у меня при самых лучших настройках PID происходит осцилляция по "синусоиде". Максимальное значение ошибки (без ускорения и торможении) почти 30мкм, такой точности не хватит не для чего( Почему может возникать такая ситуация и как ее исправить? в PID перебрал кажется уже все возможные варианты
Вложения
5_001.png (346 просмотров) <a class='original' href='./download/file.php?id=211448&sid=49fa7b30882b12fdbe47e947f5c16d16&mode=view' target=_blank>Загрузить оригинал (230.68 КБ)</a>
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение alex_sar »

P уменьшать до исчезновения осцилляции

точнее не так.
убрать все коэффициенты кроме P. P прибавлять до появления осцилляции, и потом убавить ( с небольшим запасом )

только потом можно крутить всё остальное. по крайней мере аналоговые приводы так настраиваются.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4510
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Обратная связь шагового двигателя по линейке ЛИР-7М

Сообщение xenon-alien »

KDA_140 писал(а): Подскажите, строго следуя инструкции в видео, у меня при самых лучших настройках PID происходит осцилляция по "синусоиде".
И как это понимать "при самых лучших настройках PID"?
Раз есть осцилляция, то это уже не лучшие настройки.
У автора видео есть расширенная версия видео и там он пояснил, как настраивается. Не говоря о том, нет ли каких-то помех...
Ответить

Вернуться в «LinuxCNC»