Страница 1 из 4
AT_PID для автонастройки параметров PID servo
Добавлено: 11 июл 2013, 12:37
pkasy
кто умеет пользоваться, расскажите.
коротки из мануала:
at_pid has a built in auto tune mode. It works by setting up a limit cycle to characterize the process. From this, Pgain/Igain/Dgain or Pgain/Igain/FF1 can be determined using Ziegler-Nichols. When using FF1, scaling must be set so that output is in user units per second.
During auto tuning, the command input should not change. The limit cycle is setup around the commanded position. No initial tuning values are required to start auto tuning. Only tune-cycles, tune-effort and tune-mode need be set before starting auto tuning. When auto tuning completes, the tuning parameters will be set. If running from LinuxCNC, the FERROR setting for the axis being tuned may need to be loosened up as it must be larger than the limit cycle amplitude in order to avoid a following error.
To perform auto tuning, take the following steps. Move the axis to be tuned, to somewhere near the center of it’s travel. Set tune-cycles (the default value should be fine in most cases) and tune-mode. Set tune-effort to a small value. Set enable to true. Set tune-mode to true. Set tune-start to true. If no oscillation occurs, or the oscillation is too small, slowly increase tune-effort. Auto tuning can be aborted at any time by setting enable or tune-mode to false.
подробности:
http://www.linuxcnc.org/docs/html/man/m ... pid.9.html
п.с. поиск по этому сайту по слову "at_pid" не работает, поэтому извиняйте, если тема уже была!

Re: AT_PID для автонастройки параметров PID servo
Добавлено: 11 июл 2013, 12:57
Nick
Темы были, но ничего утешительного... Основной вывод, что этот at_pid работает странненько... и не дает хороших результатов, по крайней мере нормальных результатов не добились...
(
http://yandex.ru/yandsearch?text=site%3 ... t_pid&lr=2 )
Вроде как берем вместо пид загружаем at_pid и настраиваем нужные параметры. Потом запускаем эту подстройку.... ... ... как-то так

Re: AT_PID для автонастройки параметров PID servo
Добавлено: 11 июл 2013, 13:32
pkasy
сам пробовал?
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 11 июл 2013, 14:16
Nick
Неа... все хочу, но пока не на чем

Re: AT_PID для автонастройки параметров PID servo
Добавлено: 11 июл 2013, 14:23
Алексс
я пробовл и тоже не очень успешно. но в моем случае были другие косяки, помешавшие настройке.
соберусь с духом, буду настраивать.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 12 июл 2013, 01:51
pkasy
Алексс писал(а):я пробовл и тоже не очень успешно
а расскажи подробнее, пожалуйста
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 12 июл 2013, 08:44
Алексс
pkasy писал(а):Алексс писал(а):я пробовл и тоже не очень успешно
а расскажи подробнее, пожалуйста
вот тут начал.
http://cnc-club.ru/forum/viewtopic.php? ... 363#p75363
спрашивай. что смогу, отвечу. но у меня не сервы.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 12 июл 2013, 14:03
pkasy
при ручной настройке я смотрю на размер ошибки при заданной скорости.
под него и подбираю параметры.
здесь, похоже, что то такое же.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 12 июл 2013, 14:30
Алексс
есть формула для вычисления. at_pid вроде как ее использует.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 13 июл 2013, 13:39
pkasy
Zeigler-Nichols (ZN)?
что то я в тексте не нашел упоминания. там, вроде все проще.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 13 июл 2013, 19:33
Алексс
вот комментарий из изсодников
/*
* Perform an auto-tune operation. Sets up a limit cycle using the specified
* tune effort. Averages the amplitude and period over the specifed number of
* cycles. This characterizes the process and determines the ultimate gain
* and period, which are then used to calculate PID.
*
* CO(t) = P * [ e(t) + 1/Ti * (f e(t)dt) - Td * (d/dt PV(t)) ]
*
* Pu = 4/PI * tuneEffort / responseAmplitude
* Ti = 0.5 * responsePeriod
* Td = 0.125 * responsePeriod
*
* P = 0.6 * Pu
* I = P * 1/Ti
* D = P * Td
*/
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 14 июл 2013, 02:27
pkasy
Алексс писал(а):вот комментарий из изсодников
это все уже читали. исходники есть у всех.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 14 июл 2013, 03:40
pkasy
вот это лучше:
Rule Name Tuning Parameters
Classic Ziegler-Nichols Kp = 0.6 Ku Ti = 0.5 Tu Td = 0.125 Tu
Pessen Integral Rule Kp = 0.7 Ku Ti = 0.4 Tu Td = 0.15 Tu
Some Overshoot Kp = 0.33 Ku Ti = 0.5 Tu Td = 0.33 Tu
No Overshoot Kp = 0.2 Ku Ti = 0.5 Tu Td = 0.33 Tu
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 27 июл 2013, 12:49
pkasy
мда. странненькая программка

Re: AT_PID для автонастройки параметров PID servo
Добавлено: 28 июл 2013, 05:02
pkasy
при вводе первой же команды
серво уходит с траектории, хотя команды
еще не было.
судя по желаю разработчиков выкинуть ее из стандартной поставки - программка себя не оправдала.
есть два варианта - плюнуть и забыть, или переписать ее заново.
я думаю помучать второй вариант.
где-то я видел ролики, как автоматические программы тюнинга настраивали серву.
гоняли ее несколько раз по траектории туда-сюда и чего то там в своем мозгу считали.
можно ведь сделать и так.
задать участок траектории - разгон-ход-торможение и подобрать коэф-ты для f-error минимум для скорости максимум.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 28 июл 2013, 07:10
pkasy
а какая функция на С выполняет собственно перемещение?
или исполняет кусок G-Code?
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 28 июл 2013, 07:11
pkasy
или это можно как-то через пины организовать?
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 28 июл 2013, 08:11
Serg
pkasy писал(а):я думаю помучать второй вариант.
похвальное желание!
Но вопрос
pkasy писал(а):а какая функция на С выполняет собственно перемещение?
не внушает уверенности в результате.
P.S. Тоже было такое желание, но когда понял что именно оно там в своём мозгу считает (а ведь без этого не написать автомат), то оказалось проще настроить PID в ручную. Разве что помогла та панелька с крутилками и то по сути только генератором сигнала.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 28 июл 2013, 08:41
pkasy
я могу и без этой функции сделать.
просто хотелось бы автоматизировать все и сразу

и заодно сразу сделать, что для двух двигателей сразу делала, чтоб в разнос не пошли.
Re: AT_PID для автонастройки параметров PID servo
Добавлено: 29 июл 2013, 09:38
pkasy
вообщем, переписываю at_pid.c под свои задачи, так мне проще показалось.