AT_PID для автонастройки параметров PID servo

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

Можно через halui и mdi сделать или еще хитрее, подаем на axis.0.motor-pos-cmd нужный сигнал, в спец конфигурации для тюнинга осей, туда можно было завести или меандр или пилу или синусоиду. Потом через streamer стримим Ferror, или можно еще проще - ссумируем его через integ или abs+integ - это будет наша харрактеристическая функция, останется найти ее минимум в зависимости от параметров P I D FF0 FF1 FF2 и какие там еще есть.

В принципе все делается любым удобным методом вычей (вычислительной математики). Самая большая проблема - мы можем найти только локальный минимум....

---------
Предлагаю написать такую штуку! Готов оказать посильную помощь!

Только надо придумать, с чего начать :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение nkp »

а чем оно будет лучше "крутилок" ?
там три генератора , все делается на лету...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

Лучше тем, что может само все параметры подобрать ;)!
Тот же at_pid, только свой :).
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

Nick писал(а):Тот же at_pid, только свой
давай, напиши уже. сильно поможешь сообществу.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

Надо определиться с интерфейсом, и как будем настраивать :)
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

Nick писал(а):подаем на axis.0.motor-pos-cmd нужный сигнал
а можно подробнее?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

pkasy писал(а):вообщем, переписываю at_pid.c под свои задачи, так мне проще показалось.
Nick писал(а):Готов оказать посильную помощь!
pkasy писал(а):давай, напиши уже.
я плакалъ :)
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

pkasy писал(а):а можно подробнее?
Ну берем siggen, и подаем его сигнал на axis... хотя нет, не не axis..., а на pid command...
http://linuxcnc.org/docs/html/man/man9/siggen.9.html

Да я даже написать н епротив. надо только все продумать, так, чтобы решение универсальное получилось...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение nkp »

а я не верю в эту затею...
может потому что не понимаю - как будут перебираться комбинации коэффициентов - даже если их 5-6 , то
вариантов слишком много...
и еще с каким шагом их перебирать...
или идея как то по другому построена?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Сегодня показательный случай: некоторое время назад я настроил PID на AG-400 по описанным методикам и получил 2000 мм/мин при FERROR 5 и 1 (ну не прикручен пока станок к фундаменту). В принципе это его паспортная скорость, правда смущало ferror и то, что по паспорту станок умел быстрые перемещения (не точные) в 5000 мм/мин. Сегодня пока ждал владельца станка развлекался выкручиванием параметров PID в разные немыслимые стороны - в итоге получил 4000 мм/мин при FERROR 1 и 0.1. Т.е. метод тыка победил научный метод. :)
Спрашивается: как это запрограммировать?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

Алексс писал(а):я плакалъ
крепись, дальше хуже будет.
UAVpilot писал(а):развлекался выкручиванием параметров PID в разные немыслимые стороны
а в какие именно? "немысленные"?
я вот попробовал 8-0-16 и вдруг ошибка стала в три раза меньше. только не понятно, почему.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

nkp писал(а):а я не верю в эту затею...
а зря. подобрать P вообще очень просто и быстро.
сложнее с другими коэф-ми.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

pkasy писал(а):а в какие именно? "немысленные"?
я вот попробовал 8-0-16 и вдруг ошибка стала в три раза меньше. только не понятно, почему.
Отличающиеся от первоначальных в разы (абсолютными цифрами не буду искушать начинающих). И тоже не понял почему, теория этому противоречит.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Dmaster »

UAVpilot писал(а):Сегодня показательный случай: некоторое время назад я настроил PID на AG-400 по описанным методикам и получил 2000 мм/мин при FERROR 5 и 1 (ну не прикручен пока станок к фундаменту). В принципе это его паспортная скорость, правда смущало ferror и то, что по паспорту станок умел быстрые перемещения (не точные) в 5000 мм/мин. Сегодня пока ждал владельца станка развлекался выкручиванием параметров PID в разные немыслимые стороны - в итоге получил 4000 мм/мин при FERROR 1 и 0.1. Т.е. метод тыка победил научный метод.
Спрашивается: как это запрограммировать?
Если понимать как оно считается, то по форме Feror можно максимально хорошо настроить ось, только надо понимать, где её пределы реальных возможностей.
Давече тут настраивал Формики (для тех кто знает)...
Сначала отстроил привода, тахогенератор в порядок привел, дрейф убрал точно....
Причем значение P не более 0.7-1.1 ( на разных осях)
Бегает 10 000 с ошибкой (ДАЖЕ ПРИ РАЗГОНЕ!) не более 0.2, а до 5000 не более 0.08 (без нагрузки естественно)
Только пришлось крутить и редкоиспользуемые параметры? ака ограниечение ошибки первого порядка, второго порядка
FF2 пришлось подбирать, хоть и очень маленькое... в общем....

Лично я считаю, что надо объяснить влияние каждого параметра на форму Ferror на встроенном осциллографе .. Тут автонастройку не сделать...

Настраивал на ДРЕВНИХ ПРИВОДАХ 76 ГОДА!!!! линух... так там привод пришлось порезать, отрубить тахогенератор, отрезать часть уравнивающей цепи.. и вуаля.. работает,
только не видит он напряжение задания меньше 0,3 вольта... там настройки вообще корявее некуда. никакой автонастройкой не получить рабочие значения
ВСЁ ЭТО МОЁ ЛИЧНОЕ МНЕНИЕ!!!
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

UAVpilot писал(а): в итоге получил 4000 мм/мин при FERROR 1 и 0.1. Т.е. метод тыка победил научный метод.
Спрашивается: как это запрограммировать?
Это простая экстремальная задача. У нас есть функция от 6 параметров. Нужно найти ее минимум.
Функция может быть или максимальный Ferror на участке, или например интеграл от Ferror.

Далее, т.к. функция не определена аналитически, а только через опытные данные, ищем экстремум численными методами. Например самый простой метод Ньютона : http://ru.wikipedia.org/wiki/%D0%9C%D0% ... 0%BD%D0%B0 (будет тоже самое, только для 6-ти мерного пространства нашей функции :) )

Есть только 1 проблема - наша функция условно непрерывная, т.к. при прохождении физического процесса неизбежно будут возникать "шумы" и неточности измерений. Но эту можно решить за несколько пробегов + плюс уменьшить коэффициент влияния производной.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

шаманизьм это все!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Ты пиши давай, не отвлекайся! :hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

Надо придумать интерфейс! Чтобы было удобно, чтобы можно было задавать различные входные функции и чтобы можно было корректировать начальные значения и пределы значений.
А еще надо бы придумать характеристическукю функцию - просто Ferror или что-то другое?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

- как настроить pid?
- да пес его знает.
- тогда замутим красивый интерфейс!
:)
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

UAVpilot писал(а):Ты пиши давай, не отвлекайся!
я, как Nick, не умею. он в три!!! раза умнее.
у меня была другая идея. у Nick-а - лучше.
Ответить

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