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

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

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

Сообщение 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" не работает, поэтому извиняйте, если тема уже была! :)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Темы были, но ничего утешительного... Основной вывод, что этот at_pid работает странненько... и не дает хороших результатов, по крайней мере нормальных результатов не добились...
( http://yandex.ru/yandsearch?text=site%3 ... t_pid&lr=2 )

Вроде как берем вместо пид загружаем at_pid и настраиваем нужные параметры. Потом запускаем эту подстройку.... ... ... как-то так :freak:
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

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

Сообщение pkasy »

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

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

Сообщение Nick »

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

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

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

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

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

Сообщение pkasy »

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

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

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

pkasy писал(а):
Алексс писал(а):я пробовл и тоже не очень успешно
а расскажи подробнее, пожалуйста
вот тут начал. http://cnc-club.ru/forum/viewtopic.php? ... 363#p75363
спрашивай. что смогу, отвечу. но у меня не сервы.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

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

Сообщение pkasy »

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

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

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

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

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

Сообщение pkasy »

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

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

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

вот комментарий из изсодников
/*
* 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
*/
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

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

Сообщение pkasy »

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

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

Сообщение 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
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

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

Сообщение pkasy »

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

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

Сообщение pkasy »

при вводе первой же команды

Код: Выделить всё

halcmd setp pid.0.tune-mode 1
серво уходит с траектории, хотя команды

Код: Выделить всё

halcmd setp pid.0.tune-start 1
еще не было.
судя по желаю разработчиков выкинуть ее из стандартной поставки - программка себя не оправдала.
есть два варианта - плюнуть и забыть, или переписать ее заново.

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

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

Сообщение pkasy »

а какая функция на С выполняет собственно перемещение?
или исполняет кусок G-Code?
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 »

pkasy писал(а):я думаю помучать второй вариант.
похвальное желание!
Но вопрос
pkasy писал(а):а какая функция на С выполняет собственно перемещение?
не внушает уверенности в результате. :)

P.S. Тоже было такое желание, но когда понял что именно оно там в своём мозгу считает (а ведь без этого не написать автомат), то оказалось проще настроить PID в ручную. Разве что помогла та панелька с крутилками и то по сути только генератором сигнала.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

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

Сообщение pkasy »

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

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

Сообщение pkasy »

вообщем, переписываю at_pid.c под свои задачи, так мне проще показалось.
Ответить

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