ПИД-регулирование. Общие вопросы.
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
почему только пр смене направления? после остановки никаких выбросов при повторении направления
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
При смене направления логично предположить backlash.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Может за счет ускорения и "инерции" отстает и пытается догнать, отсюда и скачек...Lexxa писал(а):Скачки только при смене направления, что непонятно
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
backlash - люфт. Параметр компенсации люфта или таблица компенсации оси.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Почему компенсация люфта приводит к скачку?
Почему при этом выскакивает ошибка?
Почему при этом выскакивает ошибка?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Чтобы компенсировать люфт, надо при смене направления движения быстро переместиться на величину люфта, чтобы его выбрать и не отстать от траектории. Поэтому происходит скачек. А зачем ты его настроил?
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Логически правильно, причем компенсация люфта происходит на максимальной скорости.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Чтоб люфт убрать) 6 соток люфт. НО! На станке при скачке ошибка также выскакивалаNick писал(а): А зачем ты его настроил?
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Оказалось что скорость компенсации отдельно задается и для каждой оси своя.xentaur писал(а):компенсация люфта происходит на максимальной скорости.
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
[Показать установки HAL]
HAL Configuration
HAL Configuration
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Вот ссылочки на wiki.linuxcnc.org
Tuning LinuxCNC/HAL PID loops
PWM Servo Amplifiers
Может стоит их перевести и в шапку?
Tuning LinuxCNC/HAL PID loops
PWM Servo Amplifiers
Может стоит их перевести и в шапку?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
+1Lexxa писал(а):Полезная инфа
Сейчас просто добавлю, потом надо будет шапку полностью переоформить.xentaur писал(а):Вот ссылочки на wiki.linuxcnc.org
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Итак вместе с TOOT крутили сегодня PID-параметры на станке.
долго мучались а at_pid, в итоге запустили.
Результат такой
P = 1.4
I = 34.5
D = 0.014
I великоват)
Ковыряли с такими настройками:
FERROR = 1
MIN_FERROR = 10
Для проверки их поставили в 0,02 и 1 соответственно - вылетает с ошибкой joint 2 error...
Короче вопрос такой.
Если пользоваться штукой pid_tuning, то каков должен быть алгоритм?
Например настрамваем ось Z.
В осциле смотрим пины
1) пид-комманд
2) енкодер.позишн
3) пид.еррор
Цель - свести к минимуму пид.еррор, правильно?
Делали мы так - увеличивали параметр P до тех пор, пока значение амплитуды выхода pid.output не станет равным заданному ползунком. Значение получилось 0.1
Далее увеличивая и уменьшая параметры I и D добились почти точного совпадения пид.комманд и энкодер.позишн, но при этом пид.эррор никак не хотел уменьшаться, т.е. конечно разница по сравнению с тем что было изначально и что стало в пид.еррор заметна, но очень мала.
Т.е. графика типа этого

где эррор начинает меняться особо мы не получили, это всегда был четкий синус.
Куда копать, кто посоветует?
P.S. 5i20 + 7i33
долго мучались а at_pid, в итоге запустили.
Результат такой
P = 1.4
I = 34.5
D = 0.014
I великоват)
Ковыряли с такими настройками:
FERROR = 1
MIN_FERROR = 10
Для проверки их поставили в 0,02 и 1 соответственно - вылетает с ошибкой joint 2 error...
Короче вопрос такой.
Если пользоваться штукой pid_tuning, то каков должен быть алгоритм?
Например настрамваем ось Z.
В осциле смотрим пины
1) пид-комманд
2) енкодер.позишн
3) пид.еррор
Цель - свести к минимуму пид.еррор, правильно?
Делали мы так - увеличивали параметр P до тех пор, пока значение амплитуды выхода pid.output не станет равным заданному ползунком. Значение получилось 0.1
Далее увеличивая и уменьшая параметры I и D добились почти точного совпадения пид.комманд и энкодер.позишн, но при этом пид.эррор никак не хотел уменьшаться, т.е. конечно разница по сравнению с тем что было изначально и что стало в пид.еррор заметна, но очень мала.
Т.е. графика типа этого

где эррор начинает меняться особо мы не получили, это всегда был четкий синус.
Куда копать, кто посоветует?
P.S. 5i20 + 7i33
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Эм... а не наоборот?Lexxa писал(а): FERROR = 1
MIN_FERROR = 10
По идее ты должен увеличивать P пока на feedback не начнут появляться колебания. Колебания будут лучше всего видны не при синусоиде, а при квадратной форме.
Описание тюнинга в двух словах:
If the system must remain on line, one tuning method is to first set the I and D values to zero. Increase the P until the output of the loop oscillates. Then increase I until oscillation stops. Finally, increase D until the loop is acceptably quick to reach its reference.
Вот это читали: http://www.linuxcnc.org/docs/2.4/html/m ... tml#r1_1_3
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Конечно наоборот)
Читали)))
Как-то у меня не укладывается в голове вот что:
Если увеличивать P-параметр, не контролируя Uзадания, то можно ненароком его усилить до степени, когда максимум и минимум синусоиды будет обрезаться, т.е. превышать +-10В, что не есть хорошо. Вот какая штука. Если поставить в pid_tunning режим синус или прямоугольник (на треугольнике это тоже есть, просто видно плохо), установить амплитуду 1В в gui0, и увеличивать P, то рано или поздно на выходе 7i33 будет не 1В, как задано, а все 10.
Т.е. получается, что задав 1 раз коэффициент Р менять его уже нельзя. Или же при дальнейшем увеличении I и D значене P, установленное выше, уже будет иметь новый верхний предел?
Читали)))
Как-то у меня не укладывается в голове вот что:
Если увеличивать P-параметр, не контролируя Uзадания, то можно ненароком его усилить до степени, когда максимум и минимум синусоиды будет обрезаться, т.е. превышать +-10В, что не есть хорошо. Вот какая штука. Если поставить в pid_tunning режим синус или прямоугольник (на треугольнике это тоже есть, просто видно плохо), установить амплитуду 1В в gui0, и увеличивать P, то рано или поздно на выходе 7i33 будет не 1В, как задано, а все 10.
Т.е. получается, что задав 1 раз коэффициент Р менять его уже нельзя. Или же при дальнейшем увеличении I и D значене P, установленное выше, уже будет иметь новый верхний предел?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ПИД-регулирование. Общие вопросы.
Смотри, задание - это pid.command на PID у тебя должна приходить скорость или положение, что в принципе не важно.
Т.е. синусоида - это задание, а выход пид это или скорость или момент, и выход не должен быть ни синусоидой, ни чем-то похожем. Плюс выход может быть обрезан +10В, ничего такого в этом нет, это просто значит, что серва должна тянуть со всей скоростью. Хотя, если появляется +10В, это скорее всего значит, что серва не справляется и нужно понижать ускорение.
Амплитуда синуса и прямоугольника, это задание по перемещению, т.е. поставил 20 - это +-20мм в каждую сторону, к абсолютному значению P это не относится.
Главное попробуй отловить колебания на углу прямоугольника при увеличении P.
Т.е. синусоида - это задание, а выход пид это или скорость или момент, и выход не должен быть ни синусоидой, ни чем-то похожем. Плюс выход может быть обрезан +10В, ничего такого в этом нет, это просто значит, что серва должна тянуть со всей скоростью. Хотя, если появляется +10В, это скорее всего значит, что серва не справляется и нужно понижать ускорение.
Амплитуда синуса и прямоугольника, это задание по перемещению, т.е. поставил 20 - это +-20мм в каждую сторону, к абсолютному значению P это не относится.
Главное попробуй отловить колебания на углу прямоугольника при увеличении P.
