Страница 1 из 2

Сервы + ремни: настройка ПИД

Добавлено: 10 окт 2017, 21:53
K.Viktor
Добрый день!
Станок МС12-250. Кинематика - двигатели постоянного тока с тахогенераторами, редукторы к ШВП на зубчатых ремнях, ШВП с регулируемым преднатягом.
На осях - датчики положения, индуктосины.
Когда все это работало на стойке 2С-42 - никаких проблем не было. Станок держал позицию с точностью около 0,005-0,01мм без раскачки приводов, максимальная скорость движения стола около 4000мм/мин.

Потребовалось перевести станок под управление LinuxCNC для решения некоторой специфической задачи, связанной с прикручиванием 5й оси.
Вместо индуктосинов установлены линейки с разрешением 0.001мм. Двигатели на осях и привода оставлены старые.
Проблема с настройкой ПИДа...
Чем выше скорость - тем больше ferror. Например, едем со скоростью 100мм/мин. ferror 0.01 . Если не превышать эту скорость то все работает... При движении на 500мм/мин - ferror начинает плавно увеличиваться и может достигать довольно больших значений, 1-2 и т.д... Чем дольше едет тем больше ferror. До тех пор пока не остановится по following error. Если увеличиваю жесткость ПИДа чтобы получить низкий и постоянный ferror на больших скоростях - получаю раскачку на удержании, что и понятно т.к. ремень имеет некий небольшой люфт.

Куда смотреть-что делать? :thinking: Как оно вообще на 2С42 работает? :) Там же по большому счету точно такой же ПИД регулятор...

Re: Сервы + ремни: настройка ПИД

Добавлено: 10 окт 2017, 22:25
aftaev
K.Viktor писал(а):При движении на 500мм/мин - ferror начинает плавно увеличиваться и может достигать довольно больших значений
А как ты это заметил что ferror увеличивается? Смотришь график? В 2С42 тоже график есть? :)
K.Viktor писал(а):Как оно вообще на 2С42 работает?
Как узнать что оно там работало правильно на 4м/мин ?

Re: Сервы + ремни: настройка ПИД

Добавлено: 10 окт 2017, 22:44
K.Viktor
2с42 показывает рассогласование в режиме ручного управления. Примерно как halmeter в linuxcnc.
На 4м/мин оно конечно больше чем на 100мм мин. Но постоянное и небольшое (0.1-0.2мм) . На линуксе рассогласование быстро растет, как при маленьком P. При увеличении P или ff1 - раскачка на малой скорости.

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 05:36
Duhas
дык может и нарастание скорости на старой стойке было меньше чем сейчас? по физику процесса понимаете? как думаете можно при мгновенном изменении задания положение также быстро поменять реальное положение?

ПС как у вас с документацией на МС-ку? у меня такой зверь в длительном процессе перерождения в 5-ти осевик. был бы рад документации на гидравлику и смазку.

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 09:18
K.Viktor
Физику процесса представляю. Рассогласование не должно меняться при установившемся режиме по скорости. И цифры я смотрю естественно после завершения разгона оси. Время разгона/торможения выставлено такое же как на родной стойке.
Документация есть вся, но в описании стойки отсутствует математика ПИДа. Такое ощущение что жесткость регулятора должна меняться в зависимости от скорости, но вот по какому закону?

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 10:40
Duhas
на счет жесткости - маловероятно, вы как жесткость регулируете? какие вообще настройки есть у вас в линуксе? я с LCNC дел пока не имел. есть что-то вроде kflop-овского?
ServoFlowDiagram.png (3802 просмотра) <a class='original' href='./download/file.php?id=121906&mode=view' target=_blank>Загрузить оригинал (37.49 КБ)</a>

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 14:13
Serg
А PID вообще хоть как-то настраивался?..

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 15:53
solo
http://gnipsel.com/linuxcnc/tuning/servo.html
я себе по этой методе настроил ПИД
на мах скорости (у меня 2700 мм/мин) феррор не более 0.03, на рабочей подачи феррор в пределах одного тыка энкодера

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 17:38
SVP
У меня по этой получается так, что (условно) если настраивать на 1000мм/мин, то потом на 3000мм/мин проблемы, если на 3000, то на 1000.
Т.е. получается что на каждую подачу хорошо-бы свой набор коэффициентов.
Почему так, пока не копал, проект побочный, всё нет времени разобраться.

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 20:38
K.Viktor
Duhas писал(а):на счет жесткости - маловероятно, вы как жесткость регулируете?
Величина P и FF1 определяющая максимальное рассогласование, и deadband обеспечивающий нечувствительность к малым перемещениям.
Duhas писал(а):какие вообще настройки есть у вас в линуксе? я с LCNC дел пока не имел. есть что-то вроде kflop-овского?
Коэффициенты P,I,D, deadband, FF0, FF1, FF2, scale .

Код: Выделить всё

error = command - feedback
    if ( abs(error) < deadband ) then error = 0
    limit error to +/- maxerror
    errorI += error * period
    limit errorI to +/- maxerrorI
    errorD = (error - previouserror) / period
    limit errorD to +/- maxerrorD
    commandD = (command - previouscommand) / period
    limit commandD to +/- maxcmdD
    commandDD = (commandD - previouscommandD) / period
    limit commandDD to +/- maxcmdDD
    output = bias + error * Pgain + errorI * Igain +
             errorD * Dgain + command * FF0 + commandD * FF1 +
             commandDD * FF2
    limit output to +/- maxoutput
Вообще написать можно любой алгоритм с любыми коэффициентами, знать бы правильный закон регулирования для этих приводов.
UAVpilot писал(а):А PID вообще хоть как-то настраивался?..
Пид конечно настраивался. Процедура аналогична приведенной по ссылке выше.
SVP писал(а):У меня по этой получается так, что (условно) если настраивать на 1000мм/мин, то потом на 3000мм/мин проблемы, если на 3000, то на 1000.
Ситуация 1-в-1 такая же.

Re: Сервы + ремни: настройка ПИД

Добавлено: 11 окт 2017, 20:47
Serg
K.Viktor писал(а):Пид конечно настраивался. Процедура аналогична приведенной по ссылке выше.
Значит неправильно настроен...

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 01:13
MGG
SVP писал(а):У меня по этой получается так, что (условно) если настраивать на 1000мм/мин, то потом на 3000мм/мин проблемы, если на 3000, то на 1000.
Т.е. получается что на каждую подачу хорошо-бы свой набор коэффициентов.
Почему так, пока не копал, проект побочный, всё нет времени разобраться.
Тоже самое, настрапвается или под низкие или под высокие скорости

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 02:56
PKM
SVP писал(а):получается что на каждую подачу хорошо-бы свой набор коэффициентов.
При желании можно связать коэффициенты ПИД со скоростью движения оси.

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 07:49
Dmaster
Вот ещё какой момент. А привода то какие? Советские привода бывает имеют нелинейную характеристику. Там есть варианты постройки нелинейности.. Они не особо точные, так что придётся мириться.

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 11:01
K.Viktor
Привод постоянного тока с тахогенератором.
Моторы УПС-6, блок управления ПТ-0.5 .

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 12:10
SVP
MGG писал(а):Тоже самое, настрапвается или под низкие или под высокие скорости
Так и чего делать ?
У меня (условно) при чистовом точении скорости ожидаемые в десятки, дай бог сотни мм/мин,
(мелочевка, и разного диаметра может быть)
а холостые можно было бы и десятки метров в минуту делать, механика скорее всего позволит.
Ползать везде как при чистовых проходах не вариант...
ferror конечно можно для mix/max подобрать, наверное, но как-то это "не так", хотелось бы
выдавать правильное задание, а не игнорировать неправильные настройки.

Привода яскавы первых серий, без редукторов, обратная связь от линеек.

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 14:14
Serg
SVP писал(а):Так и чего делать ?
Таки нормально настраивать PID по известной методике. Никакого увеличения погрешности на меньшей скорости быть не должно.
Я б даже сказал на любой скорости. Погрешность имеет право расти разве что при увеличении ускорения, ибо движимая масса и мощность привода постоянны.

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 15:07
botcman
Можно методику в студию?

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 17:31
Serg
http://gnipsel.com/linuxcnc/tuning/servo.html
Ну и понимание принципов (теории) очень сильно помогает.

Re: Сервы + ремни: настройка ПИД

Добавлено: 12 окт 2017, 18:43
Dmaster
UAVpilot писал(а):Никакого увеличения погрешности на меньшей скорости быть не должно.
Не соглашусь . Привода mezomatic-V имеют нелинейную характеристику скорости даже имея тахогенератор. Приходится настраивать идеально и подбирать ff1 под скорости на которых будет вестись обработка. .. а при холостых уже идет значительное отставание. К примеру Feror в пределах подачи 0-800 мм мин не превышает 0.04 .. а при подаче в 4000 уже 0.2. Это на постоянной скорости. без разгона. Об этой проблеме приводов писал еще Чернов в своей книге. "Чернов Е.А., Кузьмин В.П. Комплектные электроприводы станков с ЧПУ" Страница 17-18 разбирается блок нелинейности и балансировка пи регулятора данного привода.