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

Обсуждение установки, настройки и использования 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
Зачётный участник
Зачётный участник
 
Сообщения: 27768
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 4565
Медальки:

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
Мастер
 
Сообщения: 1087
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 161
Настоящее имя: Андрей

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
Мастер
 
Сообщения: 1087
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 161
Настоящее имя: Андрей

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

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

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

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

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

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

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

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

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

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 писал(а):Пид конечно настраивался. Процедура аналогична приведенной по ссылке выше.

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

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
Мастер
 
Сообщения: 1698
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 247
Настоящее имя: Манн Геннадий Геннадьевич

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

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

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

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

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

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

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

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
Мастер
 
Сообщения: 3750
Зарегистрирован: 19 дек 2012, 15:49
Откуда: Москва
Репутация: 522

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

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

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

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

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

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

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

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

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

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

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

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

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

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

След.

Вернуться в LinuxCNC

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

Зарегистрированные пользователи: Alex2x, alkg, anbod, Bing [Bot], frezeryga, GalenEl, Google [Bot], konsys, maagalex, maratNC, Maxekb77, MGG, MIX, nickoass, NikolayUa24, qulet, Remton, s29, Sashalex24, shalek, Smlua, SNS, Taganrog, tooshka, tsurika, Yandex [bot], Вячеслав86, шпиндель

Поделиться

Reputation System ©'