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

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

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

Сообщение Lexxa »

И вообще. Скорость вращения двигателем это единственное чем мы можем управлять.
Крайне неправильно использовать в качестве регулируемого ПИДом параметра положение. Никакой мягости хода не будет.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

хмм... интересно, как это можно замерить? вот скажем будет у меня серва, повешу на нее блин от штанги и буду гонять. Что нужно измерять, чтобы понять какой вид управления хуже?

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

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

Сообщение Lexxa »

ну хоть бы и ferror.
Ник, координаты можно только отслеживать, а управлять только скоростью при условии того, что момент двигатель держит.
:bender:
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

Lexxa писал(а): ооооооооооооочень важно по какой траектории сверло придет в точку сверления!!!!
Читайте внимательней - станок сверлильный, по контуру идти не нужно. Для сверлильных важна безопасная высота. Пришли в точку опустили пиноль, просверлили, подняли. Всё.

Lexxa писал(а): Нет. Если управляешь скоростью, то контролировать надо скорость (про ПИД), и одновременно контролировать положение (про траекторию)
Все современные серовприводы имеют двойной контур ПИД - момент и скорость. Не современные - только момент. Поддержанием заданной(расчетной) скорости занимается в этом случае ЧПУ, а привод обеспечивает лишь заданный момент. Поэтому если, например, сервопривод имеет управление +-10В, то супер неправильно подгонять значения PID, регулирующего положение, чтобы станок нормально ездил.
Заблуждение. Управление +-10В это всего лишь аналоговый способ задания. Может задавать что угодно (скорость, момент, положение, температуру, давление и т.д.).
Для приводов подач задают скорость (аналог или цифра не имеет значения), как сервопривод будет поддерживать скорость это его проблемы. С энкодера получаем положение каждые 1/1000 секунды. А что такое скорость? Ээто путь делить на время. Вот и получается, что каждую тысячную секунды получаем текущую скорость привода.

И про двойной ПИД. Серва делает ПИД по скорости,а УЧПУ по положению. Это и есть двойной контур. Но его может и не быть, если серва не использует ПИД (шаговый привод с заданием скорости), а ПИД по положению задействован.

P.S. Настройка ПИД сервы и УЧПУ это разные вещи. Сперва нужно серву настроить, а потом УЧПУ.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ну если честно, то и сверлильному нужна стабильная подача. А для этого надо следовать траектории.

А скачки подачи могут серьезно навредить инструменту.
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

Nick писал(а):Ну если честно, то и сверлильному нужна стабильная подача. А для этого надо следовать траектории.

А скачки подачи могут серьезно навредить инструменту.
Для позиционирования стабильной подачи не надо. Для сверления да.
Ну хоть историей ЧПУ поинтересуйтесь. С чего начиналось и что в перспективе.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

xentaur писал(а):Читайте внимательней - станок сверлильный, по контуру идти не нужно
нужно и по контуру иногда зайти в точку сверления, чтобы например не ударить инструментом в заготовку, а безопасной высоты может не хватить, это я уже проходил.
xentaur писал(а):Вот и получается, что каждую тысячную секунды получаем текущую скорость привода.
Заблуждение. каждую тысячную секунды мы получаем положение. А скорость это пройденный путь делить на время))
xentaur писал(а): Серва делает ПИД по скорости,а УЧПУ по положению.
xentaur писал(а): Настройка ПИД сервы и УЧПУ это разные вещи. Сперва нужно серву настроить, а потом УЧПУ.
Это ясно как светлый день
xentaur писал(а):Серва делает ПИД по скорости,а УЧПУ по положению
Ник, поясни, какой из компонентов ЕМС занимается планированием траектории? Мне думается, что моушн, так что ПИД по положению тут совсем непричем.
:bender:
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

Lexxa писал(а):
xentaur писал(а):Вот и получается, что каждую тысячную секунды получаем текущую скорость привода.
Заблуждение. каждую тысячную секунды мы получаем положение. А скорость это пройденный путь делить на время))
xentaur писал(а):С энкодера получаем положение каждые 1/1000 секунды. А что такое скорость? Ээто путь делить на время. Вот и получается, что каждую тысячную секунды получаем текущую скорость привода.
Вот пример. За один период опроса с энкодера считали 133 импульса. Время периода 0.001с. Внимание вопрос - какая была скорость вращения вала, если энкодер имеет 1000 рисок (4000 имп/об квадратура)?
Вал провернулся на 133имп/4000имп/об=0.03325 об.
Скорость 0.03325об/0.001с=33,25об/с=1995об/мин.
Всё просто :hehehe:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Нет понятия скорость вращения, есть касательная, это раз.
Понятие скорость в широком смысле это быстрота изменения некоторой величины, это два, в школе проходят.

В нашем случае скорость это (X0-X)/t, где Х0 - начальная координата, Х - текущая координата, t - время наблюдения, равное 1 мс.
И если внимательно посмотреть на то, что выдает 5i20 с энкодера, то там есть и скорость (с учетом редуктора), и положение, то сразу всё станет ясно, что такое скорость, а что положение.
:bender:
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

Lexxa писал(а):Нет понятия скорость вращения, есть касательная, это раз.
Понятие скорость в широком смысле это быстрота изменения некоторой величины, это два, в школе проходят.

В нашем случае скорость это (X0-X)/t, где Х0 - начальная координата, Х - текущая координата, t - время наблюдения, равное 1 мс.
И если внимательно посмотреть на то, что выдает 5i20 с энкодера, то там есть и скорость (с учетом редуктора), и положение, то сразу всё станет ясно, что такое скорость, а что положение.
Скорость вращения через передачи преобразуется в линейную скорость и то не для всех механизмов. В некоторых так вращением и остается.

Быстрота изменения некоторой величины это производная. V=dx/dt. a=dv/dt. (только не нужно сюда релятивистскую механику приплетать).

Что конкретно выдает 5i20 с энкодера Я не знаю. В большинстве систем данные с энкодера попадают в инкрементальный/декрементальный счетчик/регистр и УЧПУ считывает значение регистра. Думаю в 5i20 тоже самое. Однако Я встречал плату управления движением (motion controller) в которых ПИД железный на борту, а управление на языке высокого уровня. Команды записываются в память ПК разделяемую с этой платой (memory maped).

P.S. Про касательную Я так ничего и не понял. Про какую касательную идет речь? Про касательную скорость? Тогда чем угловая не устраивает? Тем что Я её в об/мин использовал, а не радиан/с или градус/час (можно и в имп/мин энкодера)?
И как это "нет понятия скорость вращения..."? Как это понимать? Что на моторах пишут?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

xentaur писал(а):Что на моторах пишут?
Частоту.
Весь спор собственно из-за того что по умолчанию подается на вход ПИД-регулятора именно в ЕМС, а подается положение:

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

net zpos-cmd    axis.2.motor-pos-cmd   => pid.z.command
#Обратная связь тоже в миллиметрах!!!
net zpos-fb               <=  hm2_5i20.0.encoder.03.position
net zpos-fb               =>  pid.z.feedback
:bender:
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

Так всё правильно! Частота и скорость это, по сути, одно и тоже.
Теперь про серву.

net zpos-cmd    axis.2.motor-pos-cmd   => pid.z.command #записываем команду задания позиции в мм.
#Обратная связь тоже в миллиметрах!!!
net zpos-fb               <=  hm2_5i20.0.encoder.03.position #получаем значение энкодера, точнее оси, в мм.
net zpos-fb               =>  pid.z.feedback #записываем его в ПИД

Не нужно забывать, что здесь задание позиции делается для интервала 1мс. Но серва не синхронизирована с ПИД ЕМС и может иметь другой период, поэтому принять задание позиции не может, а принимает задание скорости +-10В (для примера). Таким образом нужно серве задать скорость, что просто решается дифференцированием позиции. Обратную связь берем по положению - так проще ошибку позиции подсчитать, можно и скорость взять - но точность тахогенераторов и таходатчиков значительно ниже энкодеров. Можно и с энкодера скорость пересчитать, а потом назад в позицию. :)

P.S. Я написал получаем и записываем - это не совсем верно. Это на самом деле связи и за один цикл ПИД происходит чтение/вычисление/запись по этим связям.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Предположим, что энкодер.позишн это расстояние, которое проехал станок за сервопериод. Почему тогда на НАЛ-скопе при невращающемся энкодере это значение не обнуляется?
Ответ: потому что это абсолютное положение оси станка.
За то производная от него повторяет график скорости:

Изображение
http://cnc-club.ru/forum/download/file. ... &mode=view
А вот так мы будем эту скорость регулировать

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

#Включение привода
net xenable     => pid.x.enable
# Регулируемая величина - скорость
net xpos-cmd    axis.0.motor-pos-cmd   => ddt.0.in
net xvel ddt.0.out => pid.x.command
net xoutput     pid.x.output           => hm2_5i20.0.pwmgen.01.value
#Обратная связь по скорости
net xpos-fb 						<=  	hm2_5i20.0.encoder.01.position
net xpos-fb               				=>  	axis.0.motor-pos-fb
net x-fb-vel	 hm2_5i20.0.encoder.01.velocity		=> 	pid.x.feedback
net x-index-enable axis.0.index-enable  		<=>  	hm2_5i20.0.encoder.01.index-enable
net xenable axis.0.amp-enable-out  			=> 	hm2_5i20.0.pwmgen.01.enable
:bender:
xentaur
Опытный
Сообщения: 178
Зарегистрирован: 09 ноя 2010, 02:29
Репутация: 1
Откуда: Украина Харьков
Контактная информация:

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

Сообщение xentaur »

продифференцировали позицию задания => получили скорость => направили в ПИД => на генератор => +-10в
в приведенном примере hm2_5i20.0.encoder.01.position в ПИД не попадает,
а попадает в ПИД hm2_5i20.0.encoder.01.velocity. Должно работать вполне нормально, но логичнее продифференцировать выход ПИД, тогда обратная связь останется по положению.
Lexxa писал(а):Предположим, что энкодер.позишн это расстояние, которое проехал станок за сервопериод. Почему тогда на НАЛ-скопе при невращающемся энкодере это значение не обнуляется?
Ответ: потому что это абсолютное положение оси станка.
За то производная от него повторяет график скорости:
Зачем это писать?
Последний раз редактировалось xentaur 04 июн 2012, 01:52, всего редактировалось 1 раз.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Не пойму, о чем вы спорите. В Linuxcnc можно сделать ПИД по скорости, можно - по положению. Кажется, можно и оба одновременно сделать, а мотором управлять по моменту.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

PKM, поясни как кроме дифференцирования получить скорость, чтобы управлять пидом по скорости и не получить на малых значениях вот это:
http://www.cnc-club.ru/forum/download/f ... &mode=view
:bender:
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

ЕМС выдает раз в 1мс только один параметр - скорость. И использует (если ПИД - компонент ХАЛ) данные о полученной позиции только с одной целью - опознать ошибку позиционирования. Ни в каких ПИДах данные о позиции не используются.
Если это внешний ПИД, находящийся в приводе, то с привода требуется только сигнал ошибки, опять же для того, чтобы остановить ЕМС.
Ошибка позиционирования это фатальная ошибка и ничем ее исправить нельзя.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Impartial, +1, но

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

net zpos-cmd    axis.2.motor-pos-cmd   => pid.z.command
#Обратная связь тоже в миллиметрах!!!
net zpos-fb               <=  hm2_5i20.0.encoder.03.position
net zpos-fb               =>  pid.z.feedback
:bender:
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

Все это относится только к ХАЛ компонентам. С месы получают данные о позиции с только с одной целью - опознать ошибку.
Надо разделять ХАЛ и ЕМС. Скорость выдает планировщик траектории. Это не ХАЛ компонент.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Разве за позицией следит не моушн?
Ведь на вхходе ПИД-регулятора который в ЕМС позишн, на входе фидбэка тоже позишн.
Я не понимаю как этот позишн в ПИДЕ преобразуется в скорость.
:bender:
Ответить

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