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

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

Добавлено: 29 июн 2012, 11:24
Nick
Кстати, у тебя основные вылеты ошибки на ускорениях, попробуй поиграть с FF2 или FF1.

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

Добавлено: 29 июн 2012, 13:31
Lexxa
ок, сегодня вечерком

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

Добавлено: 01 июл 2012, 23:35
Dmaster
Lexxa писал(а):почему только пр смене направления? после остановки никаких выбросов при повторении направления
100% не верное ускорение на моторе. Снизь!. У самого такаяя-же гадость была.

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

Добавлено: 18 дек 2012, 00:07
Lexxa
переду сюда с ПИД от сюда http://cnc-club.ru/forum/viewtopic.php? ... 749#p48749
Вобщем.
Нужно три скрипта.
Первый скриптик, который с servo-trhread запишет в файл значения пина axis.N.position-cmd, поделит его значение на servo-thread и запишет в виде таблицы n V, где n - номер, V - скорость.
Второй скриптик должен из этой таблицы нарисовать график функции V(n).
Третий скриптик должен взять первую производную V(n) и найти его экстремумы.

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

Добавлено: 18 дек 2012, 00:21
Nick
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) и найти его экстремумы.
Попробуем.

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

Добавлено: 30 дек 2012, 03:04
Lexxa
Итак, сегодня я любопытства ради на входы регулятора ПИД подал

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

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 <> только при движении, спровоцированном программой или оператором.

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

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


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

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

Добавлено: 02 янв 2013, 12:30
Lexxa
на фидбэк в моушн подается тоже что и обычно подавалось.
Т.е. я сделал так:

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

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?
тоже интересно, особенно интересно как на точность следования траектории повлияет))) сгладить бы его конечно было б хорошо

Не понял на счет производных. почему это пид может ползать? По идее команды на перемещение нет, соответсвенно слежение за координатами должно вестись постояно и чпу должна держать координату на месте. Т.е. если чпу видит самоход, то она должна включать движение в противоположную сторону, разве нет?

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

Добавлено: 04 янв 2013, 00:49
Nick
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. ПИД будет стремиться остановить ось, но не вернуть ее в начальное положение. Поэтому такая ось с ПИД управляющим скоростью может плавать.

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

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

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

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

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

Добавлено: 04 янв 2013, 03:08
Lexxa
в итоге прямо, емс нифига не следит за координатами, а лишь косьвенно посредствам пид

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

Добавлено: 04 янв 2013, 03:49
PKM
Lexxa писал(а):в итоге прямо, емс нифига не следит за координатами, а лишь косьвенно посредствам пид
Так же как и все остальные системы чпу

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

Добавлено: 04 янв 2013, 03:50
PKM
Nick писал(а):Мне кажется, что при таком виде управления погрешность все равно будет расти. Тем более у нас работает не только интегральный компонент, но и все остальные.
Пронаблюдай за поведением оси под нагрузкой и убедишься

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

Добавлено: 02 май 2018, 10:01
Nikomas
Подыму-ка тему.

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

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

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

Резюмируя: пока речь о знакопеременных пиках не идет, справиться бы с равномерным разгоном и торможением, поэтому буду ставить приводы на станок, так правильнее, и настраивать ПИД только на приводе. Сканы Скопа приложу позднее.

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

Добавлено: 02 май 2018, 10:45
michael-yurov
Nikomas писал(а):ЧПУ поддает газку чтобы нагнать позицию и в итоге получаем перебег. ЧПУха подтормаживает привод. И в итоге получаем колебания вдоль линии задания.
Если бы был только пропорциональный коэффициент - так бы и было. Но есть ведь и другие параметры настройки.

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

Добавлено: 02 май 2018, 12:15
Serg
Nikomas писал(а):Вот что я думаю: 2 ПИД петли это не есть хорошо.
ПИД по позиции должен быть только один - либо в приводе, либо в ЧПУ.

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

Добавлено: 02 май 2018, 14:27
Nikomas
Немного покалдовал В приводе и LCNC. Второй вариант заметно лучше, но смущает пик при разгоне. Общий ferror около 4мкм.

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

Добавлено: 02 май 2018, 14:57
Nikomas
Еще раз перечитал доки на усилок: при управлении аналогом только ПИ регулирование.
2018-05-02_145537.jpg (2869 просмотров) <a class='original' href='./download/file.php?id=138374&mode=view' target=_blank>Загрузить оригинал (90.13 КБ)</a>

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

Добавлено: 03 ноя 2019, 13:20
ex71
У меня токарный станок на щеточных моторах постоянного тока. Сами моторы родные для станка, а управляют ими AMC привода.

После длительных мучений, раза с 5-го я смог добиться такого показателя (скрин приложил). На графике только рассогласование и выход управления. Сама ошибка в районе 5 соток пляшет.
В первые разы перемещения были пульсирующими, с постоянным недоходом (это было видно в координатах системы). Потом получилось победить недоход, но почему-то точность перемещений была ... ну на 25мм реального перемещения не доезжал 0.3мм, хотя по координатам системы все было четко. Уже и энкодер проверил, и все настройки оси (только по Х) - все якобы отлично, но .. некий косяк по стрелочному индикатору есть. В итоге решилось очередной перенастройкой ПИД и железа. Теперь точу детали с точностью в +/-1 сотку.

Я готов описать как я делал все настройки, с нуля. При этом я настраивал и софт и железо.
Но вот хотел спросить - куда и как лучше оформить? там около 20 скринов.