ПИД регулятор с учётом люфта для серво-двигателя - как настроить или что использовать?

Порутчик
Offline
Зарегистрирован: 25.05.2021

Приветствую!

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

У привода был родной блок управления (грубо говоря коробка без каких-либо настроек и регулировок), внутри мотором управлял H мост. Сигнал с датчика - PWM, 1 кГц. Датчик достаточно точный (0.2 градуса отличит уж точно)

Я пытаюсь реализовать блок управления на ESP32 и L298N.

Пытаюсь прикрутить PID регулятор. На данный момент использую библиотеку AutoPID.

Проблема в том, что я не могу подобрать коэффициенты (пробовал и по методикам из книжек про ТАУ и вручную эмпирическим путём). С PID я раньше дело имел, не скажу что много, но удавалось настроить. 

Конкретнее - не могу избавиться от постоянных качель в обе стороны.
НО если на вал повесить нагрузку в несколько килограмм, то PID прекрасно отрабатывает и можно легко настроить.

Я считаю, что добавлением нагрузки мы просто выбираем люфт.

У меня научный интерес добиться работы именно без нагрузки с таким большим люфтом, потом что родной блок управления с ним справлялся прекрасно (если вручную пытаться повернуть вал, то привод не стоял, а сопротивлялся, то есть тут не тупо введение погрешности в 6 градусов, а что-то умное)!

Я так понимаю, одним лишь PID нормальной работы не добиться и нужно что-то ещё вводить?  Подскажите, пожалуйста, что именно?

 

 

 

 

 

Порутчик
Offline
Зарегистрирован: 25.05.2021

Может быть нужно кроме вращаем по/против часовой управлять ещё и длительностью импульса? Вот только что для этого использовать...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Серво - это круто, а кто такой "поруТчик"? Откуда в наименовании младшего офицерского чина царской армии буква "Т"? ;))

Ну а груз - конечно просто люфт выбирает. ;)))

Порутчик
Offline
Зарегистрирован: 25.05.2021

Орфографический вариант написания в каких-то там веках =)

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

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Порутчик пишет:

Орфографический вариант написания в каких-то там веках =)

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

 

ПИД тут с какого бока? Выбирать люфт при смене направлений. По обратной связи или по расчету.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Порутчик пишет:

Орфографический вариант написания в каких-то там веках =)

ну и да,  - такого варианта нет, это слово польского происхождения, никаких "Т" там отродясь не было. ;)))

Порутчик
Offline
Зарегистрирован: 25.05.2021

Чем, если не PID достичь положения?  Движком управляю H мостом, то есть либо крутим на всех порах по часовой, либо против, либо стоим. Можно конечно двигать по чуть-чуть за раз, но тогда скорость реакции будет слишком медленной, да и момент на валу так же будет страдать.

 

 

 

rkit
Offline
Зарегистрирован: 23.11.2016

Мертвую зону добавь.

Порутчик
Offline
Зарегистрирован: 25.05.2021

Вы подразумеваете, что в пределах этой "зоны" ПИД не должен будет реагировать на изменения?

Тогда, получается, что погрешность установки вала будет 3 градуса, что не допустимо.

У родного контроллера явно меньше было (мерил транспортиром), значит можно этого как-то избежать. 

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так повесьте на тросике минимальный груз выбирающий люфт и не парьте мозги. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

кто такой "поруТчик"?

Как кто? Офицер для порутчений.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

И что серво так устроена, что энкодер висит на промежуточном валу ? Серьезно ?

Порутчик
Offline
Зарегистрирован: 25.05.2021

Да. По-моему весьма грамотная конструкция, что бы можно было компенсировать люфт .

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Грамотная конструкция  !? Когда энкодер на промежуточном валу  ? Это просто бред, тогда люфты убивают точность.

Порутчик
Offline
Зарегистрирован: 25.05.2021

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

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Так в сервоприводе энкодер и должен стоять на выходном валу. Если у вас так, то о какой компенсации идет речь ? Вы и так имеете точные показания положения вала.