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

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

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

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

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

Только надо придумать, с чего начать :)

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

Добавлено: 29 июл 2013, 11:27
nkp
а чем оно будет лучше "крутилок" ?
там три генератора , все делается на лету...

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

Добавлено: 29 июл 2013, 11:47
Nick
Лучше тем, что может само все параметры подобрать ;)!
Тот же at_pid, только свой :).

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

Добавлено: 29 июл 2013, 12:28
pkasy
Nick писал(а):Тот же at_pid, только свой
давай, напиши уже. сильно поможешь сообществу.

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

Добавлено: 29 июл 2013, 12:30
Nick
Надо определиться с интерфейсом, и как будем настраивать :)

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

Добавлено: 29 июл 2013, 12:47
pkasy
Nick писал(а):подаем на axis.0.motor-pos-cmd нужный сигнал
а можно подробнее?

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

Добавлено: 29 июл 2013, 16:04
Алексс
pkasy писал(а):вообщем, переписываю at_pid.c под свои задачи, так мне проще показалось.
Nick писал(а):Готов оказать посильную помощь!
pkasy писал(а):давай, напиши уже.
я плакалъ :)

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

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

Да я даже написать н епротив. надо только все продумать, так, чтобы решение универсальное получилось...

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

Добавлено: 30 июл 2013, 00:00
nkp
а я не верю в эту затею...
может потому что не понимаю - как будут перебираться комбинации коэффициентов - даже если их 5-6 , то
вариантов слишком много...
и еще с каким шагом их перебирать...
или идея как то по другому построена?

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

Добавлено: 30 июл 2013, 00:28
Serg
Сегодня показательный случай: некоторое время назад я настроил PID на AG-400 по описанным методикам и получил 2000 мм/мин при FERROR 5 и 1 (ну не прикручен пока станок к фундаменту). В принципе это его паспортная скорость, правда смущало ferror и то, что по паспорту станок умел быстрые перемещения (не точные) в 5000 мм/мин. Сегодня пока ждал владельца станка развлекался выкручиванием параметров PID в разные немыслимые стороны - в итоге получил 4000 мм/мин при FERROR 1 и 0.1. Т.е. метод тыка победил научный метод. :)
Спрашивается: как это запрограммировать?

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

Добавлено: 30 июл 2013, 01:45
pkasy
Алексс писал(а):я плакалъ
крепись, дальше хуже будет.
UAVpilot писал(а):развлекался выкручиванием параметров PID в разные немыслимые стороны
а в какие именно? "немысленные"?
я вот попробовал 8-0-16 и вдруг ошибка стала в три раза меньше. только не понятно, почему.

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

Добавлено: 30 июл 2013, 01:53
pkasy
nkp писал(а):а я не верю в эту затею...
а зря. подобрать P вообще очень просто и быстро.
сложнее с другими коэф-ми.

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

Добавлено: 30 июл 2013, 07:19
Serg
pkasy писал(а):а в какие именно? "немысленные"?
я вот попробовал 8-0-16 и вдруг ошибка стала в три раза меньше. только не понятно, почему.
Отличающиеся от первоначальных в разы (абсолютными цифрами не буду искушать начинающих). И тоже не понял почему, теория этому противоречит.

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

Добавлено: 30 июл 2013, 09:23
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 вольта... там настройки вообще корявее некуда. никакой автонастройкой не получить рабочие значения
ВСЁ ЭТО МОЁ ЛИЧНОЕ МНЕНИЕ!!!

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

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

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

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

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

Добавлено: 30 июл 2013, 13:26
pkasy
шаманизьм это все!

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

Добавлено: 30 июл 2013, 13:49
Serg
Ты пиши давай, не отвлекайся! :hehehe:

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

Добавлено: 30 июл 2013, 14:07
Nick
Надо придумать интерфейс! Чтобы было удобно, чтобы можно было задавать различные входные функции и чтобы можно было корректировать начальные значения и пределы значений.
А еще надо бы придумать характеристическукю функцию - просто Ferror или что-то другое?

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

Добавлено: 30 июл 2013, 14:15
Алексс
- как настроить pid?
- да пес его знает.
- тогда замутим красивый интерфейс!
:)

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

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