Страница 9 из 11

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 08 июн 2012, 13:26
xentaur
А ПИД настроен? Ускоряться собрался :) Интересно что в ускорении и компенсации люфтов записано и как влияет на выбросы?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 08 июн 2012, 13:47
Lexxa
почему только пр смене направления? после остановки никаких выбросов при повторении направления

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 08 июн 2012, 14:13
xentaur
При смене направления логично предположить backlash.

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 08 июн 2012, 17:00
Nick
Lexxa писал(а):Скачки только при смене направления, что непонятно
Может за счет ускорения и "инерции" отстает и пытается догнать, отсюда и скачек...

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 08 июн 2012, 23:46
Lexxa
Что такое backlash?
Скачки и на станке и на столе

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 09 июн 2012, 02:57
xentaur
backlash - люфт. Параметр компенсации люфта или таблица компенсации оси.

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 09 июн 2012, 09:58
Lexxa
Почему компенсация люфта приводит к скачку?
Почему при этом выскакивает ошибка?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 09 июн 2012, 13:24
Nick
Чтобы компенсировать люфт, надо при смене направления движения быстро переместиться на величину люфта, чтобы его выбрать и не отстать от траектории. Поэтому происходит скачек. А зачем ты его настроил?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 09 июн 2012, 13:50
xentaur
Логически правильно, причем компенсация люфта происходит на максимальной скорости.

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 09 июн 2012, 20:51
Lexxa
Nick писал(а): А зачем ты его настроил?
Чтоб люфт убрать) 6 соток люфт. НО! На станке при скачке ошибка также выскакивала

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 10 июн 2012, 07:57
xentaur
xentaur писал(а):компенсация люфта происходит на максимальной скорости.
Оказалось что скорость компенсации отдельно задается и для каждой оси своя.

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 10 июн 2012, 21:51
Lexxa
Где и чем?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 10 июн 2012, 22:13
xentaur
[Показать установки HAL]
HAL Configuration
Снимок-HAL Configuration.png (2208 просмотров) <a class='original' href='./download/file.php?id=5827&mode=view' target=_blank>Загрузить оригинал (28.9 КБ)</a>

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 10 июн 2012, 22:34
Lexxa
Полезная инфа

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 10 июн 2012, 22:51
xentaur
Вот ссылочки на wiki.linuxcnc.org
Tuning LinuxCNC/HAL PID loops
PWM Servo Amplifiers
Может стоит их перевести и в шапку?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 11 июн 2012, 15:21
Nick
Lexxa писал(а):Полезная инфа
+1
xentaur писал(а):Вот ссылочки на wiki.linuxcnc.org
Сейчас просто добавлю, потом надо будет шапку полностью переоформить.

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 29 июн 2012, 00:21
Lexxa
Итак вместе с 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

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 29 июн 2012, 00:52
Nick
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

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 29 июн 2012, 01:21
Lexxa
Конечно наоборот)
Читали)))
Как-то у меня не укладывается в голове вот что:
Если увеличивать P-параметр, не контролируя Uзадания, то можно ненароком его усилить до степени, когда максимум и минимум синусоиды будет обрезаться, т.е. превышать +-10В, что не есть хорошо. Вот какая штука. Если поставить в pid_tunning режим синус или прямоугольник (на треугольнике это тоже есть, просто видно плохо), установить амплитуду 1В в gui0, и увеличивать P, то рано или поздно на выходе 7i33 будет не 1В, как задано, а все 10.
Т.е. получается, что задав 1 раз коэффициент Р менять его уже нельзя. Или же при дальнейшем увеличении I и D значене P, установленное выше, уже будет иметь новый верхний предел?

Re: ПИД-регулирование. Общие вопросы.

Добавлено: 29 июн 2012, 11:20
Nick
Смотри, задание - это pid.command на PID у тебя должна приходить скорость или положение, что в принципе не важно.
Т.е. синусоида - это задание, а выход пид это или скорость или момент, и выход не должен быть ни синусоидой, ни чем-то похожем. Плюс выход может быть обрезан +10В, ничего такого в этом нет, это просто значит, что серва должна тянуть со всей скоростью. Хотя, если появляется +10В, это скорее всего значит, что серва не справляется и нужно понижать ускорение.

Амплитуда синуса и прямоугольника, это задание по перемещению, т.е. поставил 20 - это +-20мм в каждую сторону, к абсолютному значению P это не относится.

Главное попробуй отловить колебания на углу прямоугольника при увеличении P.