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

Контроллеры, драйверы, датчики, управляющие устройства.

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

Сообщение Nick » 29 июн 2012, 11:24

Кстати, у тебя основные вылеты ошибки на ускорениях, попробуй поиграть с FF2 или FF1.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение Lexxa » 29 июн 2012, 13:31

ок, сегодня вечерком
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2598
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 300
Медальки:
Настоящее имя: Алексей

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

Сообщение Dmaster » 01 июл 2012, 23:35

Lexxa писал(а):почему только пр смене направления? после остановки никаких выбросов при повторении направления


100% не верное ускорение на моторе. Снизь!. У самого такаяя-же гадость была.
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
 
Сообщения: 1152
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 435
Медальки:

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

Сообщение Lexxa » 18 дек 2012, 00:07

переду сюда с ПИД от сюда viewtopic.php?f=3&p=48749#p48749
Вобщем.
Нужно три скрипта.
Первый скриптик, который с servo-trhread запишет в файл значения пина axis.N.position-cmd, поделит его значение на servo-thread и запишет в виде таблицы n V, где n - номер, V - скорость.
Второй скриптик должен из этой таблицы нарисовать график функции V(n).
Третий скриптик должен взять первую производную V(n) и найти его экстремумы.
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2598
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 300
Медальки:
Настоящее имя: Алексей

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

Сообщение Nick » 18 дек 2012, 00:21

Lexxa писал(а):Первый скриптик, который с servo-trhread запишет в файл значения пина axis.N.position-cmd, поделит его значение на servo-thread и запишет в виде таблицы n V, где n - номер, V - скорость.

Это надо делать через:
http://www.linuxcnc.org/docs/2.5/html/m ... ler.1.html
http://www.linuxcnc.org/docs/2.5/html/m ... mer.1.html
Lexxa писал(а):Второй скриптик должен из этой таблицы нарисовать график функции V(n).

Ну для этого и halscope подойдет.
Lexxa писал(а):Третий скриптик должен взять первую производную V(n) и найти его экстремумы.

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

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

Сообщение Lexxa » 30 дек 2012, 03:04

Итак, сегодня я любопытства ради на входы регулятора ПИД подал
Код: Выделить всёРазвернуть
axis.0.joint-vel-cmd => pid.0.command
блаблабла.encoder.velocity => pid.0.feedback
pid.0.output => 5i25.analogout или как он там называется.

В результате я наблюдал чрезвычайно мягкую работу привода (у меня КЕМРОН), настолько мягкой я его не видел никода.
При этом axis.0.f-error стаоа вдруг инкрементальной, будто энкодера вообще нет, хотя координаты менялись, кроме того в регулировках поменялись местами P I D и FF0 FF1 FF2 соответственно.
Ось постоянно меееееееееееееееедленно "ползла", типа самохода. При этом странно что EMС видит этот самоход и не корректирует его.
Вывод.
1) Никакие входные нелинейности приводов обходить не надо как советует vmariiv. Привод добростовестно отрабатывает то, что ему подсунули на вход Uзадания.
2) На вход пид регулятора подать скорость не axis.0.joint-vel-cmd, а производную от axis.0.joint-pos-cmd. Думаю, что тут уж не уберется никуда слежение за координатами.
3) Видимо axis.0.joint-vel-cmd <> только при движении, спровоцированном программой или оператором.
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2598
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 300
Медальки:
Настоящее имя: Алексей

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

Сообщение Nick » 31 дек 2012, 00:21

А что на реальный feedback в motion подается?
Хотя наверное оно так и должно быть -наверняка joint-vel-cmd это просто производная отjoint-pos-cmd соответственно пока joint-pos-cmd не меняется joint-vel-cmd равен нулю, поэтому pid может ползать куда ему хочется.


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

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

Сообщение Lexxa » 02 янв 2013, 12:30

на фидбэк в моушн подается тоже что и обычно подавалось.
Т.е. я сделал так:
Код: Выделить всёРазвернуть
net motor.00.pos-fb    hm2_[HOSTMOT2](BOARD).0.encoder.00.position    =>    axis.0.motor-pos-fb
net axis-0-fb-vel    hm2_[HOSTMOT2](BOARD).0.encoder.00.velocity    =>    pid.0.feedback
net axis-0-cmd-vel  axis.0.joint-vel-cmd => pid.0.command


а было так:
Код: Выделить всёРазвернуть
net motor.00.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.00.position => pid.0.feedback
net motor.00.pos-fb => axis.0.motor-pos-fb #push copy back to Axis GUI
net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
net motor.00.command  pid.0.output  =>  hm2_[HOSTMOT2](BOARD).0.7i77.0.1.analogout
0

кстати, интересно, что будет если к pos-cmd применить filter?

тоже интересно, особенно интересно как на точность следования траектории повлияет))) сгладить бы его конечно было б хорошо

Не понял на счет производных. почему это пид может ползать? По идее команды на перемещение нет, соответсвенно слежение за координатами должно вестись постояно и чпу должна держать координату на месте. Т.е. если чпу видит самоход, то она должна включать движение в противоположную сторону, разве нет?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2598
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 300
Медальки:
Настоящее имя: Алексей

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

Сообщение Nick » 04 янв 2013, 00:49

Lexxa писал(а):на фидбэк в моушн подается тоже что и обычно подавалось.

Значит velocity-cmd - это просто производная от position-cmd. Кстати он находится в:
DEBUGGING PINS
Many of the pins below serve as debugging aids, and are subject to change or removal at any time.
Lexxa писал(а):Не понял на счет производных. почему это пид может ползать? По идее команды на перемещение нет, соответсвенно слежение за координатами должно вестись постояно и чпу должна держать координату на месте. Т.е. если чпу видит самоход, то она должна включать движение в противоположную сторону, разве нет?

Смотри, если ПИД управляет скоростью и на feedbck получает скорость, то при задании скорости =0, ПИД будет стараться удерживать ось на месте. Предположим, что на оси появилась дополнительная сила и ось сместилась на dx мм при этом ось приобрела скорость v1. ПИД будет стремиться остановить ось, но не вернуть ее в начальное положение. Поэтому такая ось с ПИД управляющим скоростью может плавать.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение PKM » 04 янв 2013, 02:40

Nick писал(а):Смотри, если ПИД управляет скоростью и на feedbck получает скорость, то при задании скорости =0, ПИД будет стараться удерживать ось на месте. Предположим, что на оси появилась дополнительная сила и ось сместилась на dx мм при этом ось приобрела скорость v1. ПИД будет стремиться остановить ось, но не вернуть ее в начальное положение. Поэтому такая ось с ПИД управляющим скоростью может плавать.

если появляется рассогласование, за счет интегрального компонента выход ПИД увеличивается и стремится вернуть ось в прежнее положение. потому такие отклонения могут быть только кратковременными
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 702
Медальки:
Настоящее имя: Андрей

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

Сообщение Nick » 04 янв 2013, 03:01

Мне кажется, что при таком виде управления погрешность все равно будет расти. Тем более у нас работает не только интегральный компонент, но и все остальные.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение Lexxa » 04 янв 2013, 03:08

в итоге прямо, емс нифига не следит за координатами, а лишь косьвенно посредствам пид
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2598
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 300
Медальки:
Настоящее имя: Алексей

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

Сообщение PKM » 04 янв 2013, 03:49

Lexxa писал(а):в итоге прямо, емс нифига не следит за координатами, а лишь косьвенно посредствам пид

Так же как и все остальные системы чпу
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 702
Медальки:
Настоящее имя: Андрей

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

Сообщение PKM » 04 янв 2013, 03:50

Nick писал(а):Мне кажется, что при таком виде управления погрешность все равно будет расти. Тем более у нас работает не только интегральный компонент, но и все остальные.

Пронаблюдай за поведением оси под нагрузкой и убедишься
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 702
Медальки:
Настоящее имя: Андрей

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

Сообщение Nikomas » 02 май 2018, 10:01

Подыму-ка тему.

Похожая с автором ситуация и у меня. Только у меня приводы могут регулировать ПИД петлю. Плюс есть параметр Drop Pulses некий аналог ferror LCNC. Приводы Panasonic Minas. Начитался теории по настройке петли. Принцип понимаю. И решился настроить привод пока он лежит на столе. Мотор с родным прецизионным планетарным редуктором и шестерней.

Даю команду x50 при f2000. Включаю Хал-Скоп и получаем красивую такую энкодерную пилу (синусоиду) на всей кривой команды. Особенно она ярко выражена на разгонах и торможениях. Начинаю шаманить с настройками LCNC. Максимум что мне удалось, это сгладить синусоиду на прямой перемещения. Пики на разгоне и торможении остались. Но ferror в любом случае большой - около 3х десяток.

Вот что я думаю: 2 ПИД петли это не есть хорошо. В любом случае реакция их не мгновенная и между ними есть некий временной промежуток. ЧПУ дает команду - поехали. У привода своя петля и команда исполняется медленнее чем это надо ЧПУ. ЧПУ поддает газку чтобы нагнать позицию и в итоге получаем перебег. ЧПУха подтормаживает привод. И в итоге получаем колебания вдоль линии задания.

Резюмируя: пока речь о знакопеременных пиках не идет, справиться бы с равномерным разгоном и торможением, поэтому буду ставить приводы на станок, так правильнее, и настраивать ПИД только на приводе. Сканы Скопа приложу позднее.
Nikomas
Мастер
 
Сообщения: 583
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 54

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

Сообщение michael-yurov » 02 май 2018, 10:45

Nikomas писал(а):ЧПУ поддает газку чтобы нагнать позицию и в итоге получаем перебег. ЧПУха подтормаживает привод. И в итоге получаем колебания вдоль линии задания.

Если бы был только пропорциональный коэффициент - так бы и было. Но есть ведь и другие параметры настройки.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
 
Сообщения: 11039
Зарегистрирован: 26 июл 2012, 00:10
Откуда: Новоуральск, Свердловская область.
Репутация: 4344
Медальки:
Настоящее имя: Михаил Львович

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

Сообщение UAVpilot » 02 май 2018, 12:15

Nikomas писал(а):Вот что я думаю: 2 ПИД петли это не есть хорошо.

ПИД по позиции должен быть только один - либо в приводе, либо в ЧПУ.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18662
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4564
Медальки:
Настоящее имя: Сергей

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

Сообщение Nikomas » 02 май 2018, 14:27

Немного покалдовал В приводе и LCNC. Второй вариант заметно лучше, но смущает пик при разгоне. Общий ferror около 4мкм.
Вложения
ПИД-регулирование. Общие вопросы. 001.png
До настройки.
ПИД-регулирование. Общие вопросы. 002.png
После настройки с приводе и LCNC.
Nikomas
Мастер
 
Сообщения: 583
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 54

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

Сообщение Nikomas » 02 май 2018, 14:57

Еще раз перечитал доки на усилок: при управлении аналогом только ПИ регулирование.
ПИД-регулирование. Общие вопросы. 2018-05-02_145537.jpg
Nikomas
Мастер
 
Сообщения: 583
Зарегистрирован: 07 янв 2012, 14:31
Откуда: Беларусь
Репутация: 54

Пред.

Вернуться в Электроника

Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Dimka, Google [Bot], MSN [Bot], ScrewDriver, spryt, UAVpilot, xenon-alien, Yandex [bot], ЫЫЫ, ДмитрийП, шпиндель

Reputation System ©'