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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

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

Сообщение K.Viktor » 10 окт 2017, 21:53

Добрый день!
Станок МС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 работает? :) Там же по большому счету точно такой же ПИД регулятор...
K.Viktor
Новичок
 
Сообщения: 13
Зарегистрирован: 20 июн 2013, 13:58
Откуда: Россия, Москва
Репутация: 3

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

Сообщение aftaev » 10 окт 2017, 22:25

K.Viktor писал(а):При движении на 500мм/мин - ferror начинает плавно увеличиваться и может достигать довольно больших значений

А как ты это заметил что ferror увеличивается? Смотришь график? В 2С42 тоже график есть? :)

K.Viktor писал(а):Как оно вообще на 2С42 работает?

Как узнать что оно там работало правильно на 4м/мин ?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 28295
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 4772
Медальки:

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

Сообщение K.Viktor » 10 окт 2017, 22:44

2с42 показывает рассогласование в режиме ручного управления. Примерно как halmeter в linuxcnc.
На 4м/мин оно конечно больше чем на 100мм мин. Но постоянное и небольшое (0.1-0.2мм) . На линуксе рассогласование быстро растет, как при маленьком P. При увеличении P или ff1 - раскачка на малой скорости.
K.Viktor
Новичок
 
Сообщения: 13
Зарегистрирован: 20 июн 2013, 13:58
Откуда: Россия, Москва
Репутация: 3

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

Сообщение Duhas » 11 окт 2017, 05:36

дык может и нарастание скорости на старой стойке было меньше чем сейчас? по физику процесса понимаете? как думаете можно при мгновенном изменении задания положение также быстро поменять реальное положение?

ПС как у вас с документацией на МС-ку? у меня такой зверь в длительном процессе перерождения в 5-ти осевик. был бы рад документации на гидравлику и смазку.
Duhas
Мастер
 
Сообщения: 1110
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 167
Настоящее имя: Андрей

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

Сообщение K.Viktor » 11 окт 2017, 09:18

Физику процесса представляю. Рассогласование не должно меняться при установившемся режиме по скорости. И цифры я смотрю естественно после завершения разгона оси. Время разгона/торможения выставлено такое же как на родной стойке.
Документация есть вся, но в описании стойки отсутствует математика ПИДа. Такое ощущение что жесткость регулятора должна меняться в зависимости от скорости, но вот по какому закону?
K.Viktor
Новичок
 
Сообщения: 13
Зарегистрирован: 20 июн 2013, 13:58
Откуда: Россия, Москва
Репутация: 3

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

Сообщение Duhas » 11 окт 2017, 10:40

на счет жесткости - маловероятно, вы как жесткость регулируете? какие вообще настройки есть у вас в линуксе? я с LCNC дел пока не имел. есть что-то вроде kflop-овского?
Сервы + ремни: настройка ПИД ServoFlowDiagram.png
Duhas
Мастер
 
Сообщения: 1110
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 167
Настоящее имя: Андрей

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

Сообщение UAVpilot » 11 окт 2017, 14:13

А PID вообще хоть как-то настраивался?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16321
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3991
Медальки:
Настоящее имя: Сергей

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

Сообщение solo » 11 окт 2017, 15:53

http://gnipsel.com/linuxcnc/tuning/servo.html
я себе по этой методе настроил ПИД
на мах скорости (у меня 2700 мм/мин) феррор не более 0.03, на рабочей подачи феррор в пределах одного тыка энкодера
Аватара пользователя
solo
Мастер
 
Сообщения: 1108
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 204
Настоящее имя: Юрий Соловьев

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

Сообщение SVP » 11 окт 2017, 17:38

У меня по этой получается так, что (условно) если настраивать на 1000мм/мин, то потом на 3000мм/мин проблемы, если на 3000, то на 1000.
Т.е. получается что на каждую подачу хорошо-бы свой набор коэффициентов.
Почему так, пока не копал, проект побочный, всё нет времени разобраться.
SVP
Мастер
 
Сообщения: 3969
Зарегистрирован: 19 дек 2012, 15:49
Откуда: Москва
Репутация: 575

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

Сообщение K.Viktor » 11 окт 2017, 20:38

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 такая же.
K.Viktor
Новичок
 
Сообщения: 13
Зарегистрирован: 20 июн 2013, 13:58
Откуда: Россия, Москва
Репутация: 3

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

Сообщение UAVpilot » 11 окт 2017, 20:47

K.Viktor писал(а):Пид конечно настраивался. Процедура аналогична приведенной по ссылке выше.

Значит неправильно настроен...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16321
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3991
Медальки:
Настоящее имя: Сергей

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

Сообщение MGG » 12 окт 2017, 01:13

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

Тоже самое, настрапвается или под низкие или под высокие скорости
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1804
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 274
Настоящее имя: Манн Геннадий Геннадьевич

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

Сообщение PKM » 12 окт 2017, 02:56

SVP писал(а):получается что на каждую подачу хорошо-бы свой набор коэффициентов.

При желании можно связать коэффициенты ПИД со скоростью движения оси.
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4239
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 690
Медальки:
Настоящее имя: Андрей

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

Сообщение Dmaster » 12 окт 2017, 07:49

Вот ещё какой момент. А привода то какие? Советские привода бывает имеют нелинейную характеристику. Там есть варианты постройки нелинейности.. Они не особо точные, так что придётся мириться.
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
 
Сообщения: 1095
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 385
Медальки:

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

Сообщение K.Viktor » 12 окт 2017, 11:01

Привод постоянного тока с тахогенератором.
Моторы УПС-6, блок управления ПТ-0.5 .
K.Viktor
Новичок
 
Сообщения: 13
Зарегистрирован: 20 июн 2013, 13:58
Откуда: Россия, Москва
Репутация: 3

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

Сообщение SVP » 12 окт 2017, 12:10

MGG писал(а):Тоже самое, настрапвается или под низкие или под высокие скорости

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

Привода яскавы первых серий, без редукторов, обратная связь от линеек.
SVP
Мастер
 
Сообщения: 3969
Зарегистрирован: 19 дек 2012, 15:49
Откуда: Москва
Репутация: 575

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

Сообщение UAVpilot » 12 окт 2017, 14:14

SVP писал(а):Так и чего делать ?

Таки нормально настраивать PID по известной методике. Никакого увеличения погрешности на меньшей скорости быть не должно.
Я б даже сказал на любой скорости. Погрешность имеет право расти разве что при увеличении ускорения, ибо движимая масса и мощность привода постоянны.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16321
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3991
Медальки:
Настоящее имя: Сергей

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

Сообщение botcman » 12 окт 2017, 15:07

Можно методику в студию?
botcman
Мастер
 
Сообщения: 396
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 3
Настоящее имя: Андрей

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

Сообщение UAVpilot » 12 окт 2017, 17:31

http://gnipsel.com/linuxcnc/tuning/servo.html
Ну и понимание принципов (теории) очень сильно помогает.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16321
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3991
Медальки:
Настоящее имя: Сергей

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

Сообщение Dmaster » 12 окт 2017, 18:43

UAVpilot писал(а):Никакого увеличения погрешности на меньшей скорости быть не должно.

Не соглашусь . Привода mezomatic-V имеют нелинейную характеристику скорости даже имея тахогенератор. Приходится настраивать идеально и подбирать ff1 под скорости на которых будет вестись обработка. .. а при холостых уже идет значительное отставание. К примеру Feror в пределах подачи 0-800 мм мин не превышает 0.04 .. а при подаче в 4000 уже 0.2. Это на постоянной скорости. без разгона. Об этой проблеме приводов писал еще Чернов в своей книге. "Чернов Е.А., Кузьмин В.П. Комплектные электроприводы станков с ЧПУ" Страница 17-18 разбирается блок нелинейности и балансировка пи регулятора данного привода.
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
 
Сообщения: 1095
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 385
Медальки:

След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Alex lamaka, Bing [Bot], Google [Bot], Hamster13, ignv, IgorSizov_1979, kLeR1k, Leopold_V, NikolayUa24, Олег., rehden, stiks, vala, Yandex [bot], Yarrr

Поделиться

Reputation System ©'