Страница 2 из 8

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 02:41
michael-yurov
Дрюня писал(а):Так, а если к шаговику с валом на две стороны приделать энкодер на одну из сторон - тоже серва получится?
Есть и такие - сервошаговый привод получается. http://darxton.ru/Netshop/mechatronics/ ... ervodrive/
Разница с обычной сервой в типе мотора. В сервах все же не очень часто используются шаговые моторы с несколькими десятками / сотнями устойчивых положений на оборот.
isx писал(а):Ну не знаю. В своё время столкнулся с разногласиями касательно того, что называть драйвером. Единого ответа так и не нашёл, поэтому остался на стороне тех, кто считает, что драйвер - это исключительно силовая часть.
Применительно к шаговому приводу - действительно, драйвером лучше называть силовую часть.
Подали импульс шага на драйвер и он переключил состояние обмоток шагового мотора в соседнее положение (про микрошаг пока забудем).

А силовую часть сервопривода я бы называл сервоусилителем (особенно, если серва управляется аналоговым напряжением задающем скорость или крутящий момент).

Большинство современных недорогих сервоприводов (мотор + сервоусилитель) управляются, как и шаговый привод - сигналом Step / Dir.
В этом случае вся управляющая электроника находится в сервоусилителе, энкодер от сервомотора тоже передает сигналы в сервоусилитель, а уже сервоусилитель корректирует ток в обмотках так, чтобы мотор находился в требуемом положении.
isx писал(а):Если серва работает через степ/дир, то получается, что фактически, двигатель тормозит после каждого шага (риски в энкодере). Опять резонанс и шум как в шаговиках. Я правильно понимаю?
aftaev писал(а):у нее буфер есть.
isx писал(а):Тогда работа сервы будет иметь задержку из за буферизации...
Ну там не то чтобы буфер...
Поведение сервопривода, действительно будет похоже на шаговый привод.
Подали импульс - мотор повернулся в соседнее положение (по энкодеру).

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

Серва, действительно, переходит в новое требуемое положение не мгновенно, но и задержки в общем то тоже нет, т.к. начинает разгоняться и двигаться в новое требуемое положение она сразу после получения команды.
В этом плане серва работает "правильнее" шаговика. Шаговику отдали команду повернуться на пару шагов - драйвер перекомутировал обмотки и предполагается, что вал мотора уже находится в новом положении, а на самом то деле это не так - вал только должен будет в ближайшее время перескочить в новое положение, и при этом не пролететь мимо него по инерции. А серва - она знает, куда ей надо и знает, где она сейчас находится, и знает, насколько сильно ей нужно "торопиться" попасть в новое положение.
aftaev писал(а):используются дорогие платы типо KFLOP
isx писал(а):А принцип их работы? Или коммерческая тайна?
Да нет никакой тайны.
Принцип работы - пропорционально-интегрально-дифференциальное регулирование (ПИД). Можно почитать в википедии про это.
В двух словах не объяснить.
Положение - это первообразная (интеграл от) скорости. Скорость первообразная (интеграл от) ускорения. Ускорение - пропорционально крутящему моменту.
И наоборот - ускорение - производная (дифференциал) скорости, скорость - производная ускорения.

Решив несложную систему уравнений (с учетом известных дополнительных коэффициентов) можно определить какой ток нужно подать на обмотки, чтобы повернуть мотор на требуемый угол (даже не глядя на энкодер).

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

В общем-то такие платы, как KFlop способны обрабатывать сигнал от энкодера сервомотора и рассчитывать требуемый управляющий сигнал для передачи в сервоусилитель.


Расчеты ПИД могут производиться, как в сервоисилителе, так и в контроллере или управляющем компьютере. Все зависит от типа оборудования и способа подключения и настройки.
Может даже пропорционально интегральная часть быть в сервоусилителе, а остальное - в контроллере.
isx писал(а):Я просто понять не могу, как обычный движок можно позиционировать с точностью в единицы градуса?
А как человеку удается двигать конечностями строго на требуемый угол / расстояние?
Или как водителю, оперируя педалями газ/сцепление/тормоз удается переместить автомобиль точно на требуемое расстояние?

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 03:21
isx
michael-yurov писал(а):Большинство современных недорогих сервоприводов (мотор + сервоусилитель) управляются, как и шаговый привод - сигналом Step / Dir.
Тоесть дорогие управляются иначе?
michael-yurov писал(а):Подали импульс - мотор повернулся в соседнее положение (по энкодеру).
Получается что подали импульс, застопорили, ждём следующий импульс, разгоняем и т.д. И опять движение с точками-шагами получается...
michael-yurov писал(а):А как человеку удается двигать конечностями строго на требуемый угол / расстояние?
Человек знает, что ему чтобы пройти расстояние 5 метров, нужно сделать 10 шагов. Так, он сначала делает 9 быстрых шагов, а на 10-ом начинает плавное торможение, чтоб не упасть по инерции :) . А наш привод знает только текущее положение и следующее, а при скоростях в 100об/мин. он за доли секунды узнает, что ему мгновенно нужно остановиться.
michael-yurov писал(а):Решив несложную систему уравнений (с учетом известных дополнительных коэффициентов) можно определить какой ток нужно подать на обмотки, чтобы повернуть мотор на требуемый угол (даже не глядя на энкодер).

Но т.к. мотор обычно совершает какую-то работу - получается, что усилие на валу будет не постоянным, и нужно это дело как-то контролировать и компенсировать - для этого энкодер и нужен - чтобы быстро и точно перемещаться в требуемую позицию при различных внешних воздействиях.
И какой смысл тогда в ПИД, если мы заранее не можем рассчитать усилие на валу?

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 04:26
michael-yurov
isx писал(а):Тоесть дорогие управляются иначе?
По разному. Дело вкуса.
Тут уже был спор. Я типу управления сравнил с аналоговым, цифровым и кодированным звуком (Dolby Prologic, например).
Нельзя сказать, что какой-то из вариантов во всем лучше.
isx писал(а):Получается что подали импульс, застопорили, ждём следующий импульс, разгоняем и т.д. И опять движение с точками-шагами получается...
Если импульсы очень редкие - то так и получается.
Но на то и нужно ПИД регулирвоание - чтобы не двигаться рывками и при этом не отставать от требуемой позиции.
Пропорциональная составляющая зависит от разницы текущей позиции и требуемой (чем сильнее отстали - тем быстрее догоняем).
Интегральная - чем дольше мотор отстает от требуемого положения - тем активнее сервопривод будет стараться догнать нужную позицию.
Дифференциальная - играет на опережение. Т.е. если привод заметил, что увеличивается разрыв между текущей позицией и требуемой - он учтет это, чтобы сразу ускориться и тем самым минимизировать рассогласование в дальнейшем.

У вас есть автомобиль? Стояли в постепенно движущейся пробке?
Можно сравнить впереди идущий автомобиль с требуемой позицией, и если он двигается рывками - это совсем не означает, что и вам нужно делать то же самое. Можно ведь прикинуть некоторую среднюю скорость движения пробки и потихоньку ехать за дергающимся автомобилем перед вами.
А если увидите, что в целом отстаете - немного ускориться, ну или наоборот, если нужно. Это получается Пропорционально Интегральное управление. А если еще пытаться играть на опережение и предугадывать изменение поведения потока - получится еще и дифференциальная составляющая.
isx писал(а):Человек знает, что ему чтобы пройти расстояние 5 метров, нужно сделать 10 шагов. Так, он сначала делает 9 быстрых шагов, а на 10-ом начинает плавное торможение, чтоб не упасть по инерции . А наш привод знает только текущее положение и следующее, а при скоростях в 100об/мин. он за доли секунды узнает, что ему мгновенно нужно остановиться.
А что сделает человек, если ему на бегу отдадут команду остановиться в данном месте?
Мне кажется - чуда не произойдет (если, конечно, в этом месте не возникнет бетонная стена). Человек пробежит по инерции дальше требуемого, а потом вернется в ту позицию, где ему сказали встать.
Так же поведет себя и сервопривод.
Вывод довольно простой - не отдавать невыполнимые команды.
Шаговики, кстати, тоже не будут рады такому управлению.
isx писал(а):И какой смысл тогда в ПИД, если мы заранее не можем рассчитать усилие на валу?
Ну и что?
Нам же не нужно прогноз погоды рассчитывать.
Нужно просто выполнять требуемые указания и двигаться по необходимой траектории с минимальными отклонениями.

Скорость реакции электроники на внешние воздействия довольно высока, и вполне позволяет держать ситуацию под контролем.

https://www.youtube.com/watch?v=3qmqWjyTNlk

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 11:13
isx
michael-yurov писал(а):Но на то и нужно ПИД регулирвоание - чтобы не двигаться рывками и при этом не отставать от требуемой позиции.
Вот этот момент я никак не могу понять :) . Нам ведь подаётся только команда "шагнуть" со STEP, а сколько шагов будет впереди - серва не знает. Как же она может пргнозировать? Если только сама программа управления (МАЧ к примеру), не будет давать плавное замедление перед полной остановкой. Тогда можно будет анализировать период следования сигналов STEP, и при изменении периода переходить в "шаговый режим" (шаг-фиксация-шаг...) а при равном периоде просто удерживать скорость вращения постоянной. Но тогда на такой медленный старт/стоп будет израсходовано много времени.
michael-yurov писал(а):Т.е. если привод заметил, что увеличивается разрыв между текущей позицией и требуемой - он учтет это, чтобы сразу ускориться и тем самым минимизировать рассогласование в дальнейшем.
Получается, что погрешность сервы будет +- 1 риска энкодера?

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 11:29
Сергей Саныч
isx писал(а):Получается, что погрешность сервы будет +- 1 риска энкодера?
Статическая - да. Динамическая (в движении) будет больше.
isx писал(а):Нам ведь подаётся только команда "шагнуть" со STEP, а сколько шагов будет впереди - серва не знает. Как же она может пргнозировать?
Поступил 1 step - появился сигнал рассогласования, серва начала его не спеша отрабатывать. В это время пришел второй - рассогласование выросло, скорость отработки - тоже, и так далее. Это работает пропорциональный компонент (П). Два других (интегральный и дифференциальный) "помогают" ему. "И" помогает справиться со статической ошибкой ("время идет, шаги не поступают, а рассогласование не уменьшается - надо еще подкрутить"), "Д" - с динамической ("рассогласование растет, скорее всего оно будет расти и дальше - надо "поддать газку"").
PS: Вообще, этим серьезная наука занимается - теория автоматического управления. Для студентов соответствующих специальностей это все равно, что сопромат для механиков. Такая же нудная и математически насыщенная. И такой же кайф, когда наконец-то сдашь :)
Понимание внутренней сути и необходимости, приходит, как правило, позже, при работе по специальности.

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 11:30
nik1
А вообще, кто нить настраивает гейн Д?

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 14:20
aftaev
isx писал(а): Нам ведь подаётся только команда "шагнуть" со STEP, а сколько шагов будет впереди - серва не знает. Как же она может пргнозировать?
ЧПУ прогнозирует, для этого есть планировщик.

Re: Серва. Как же она работает?

Добавлено: 18 авг 2014, 14:43
michael-yurov
aftaev писал(а):ЧПУ прогнозирует, для этого есть планировщик.
Точно, точно!
А вот написать хороший планировщик - очень сложная задача.

Re: Серва. Как же она работает?

Добавлено: 19 авг 2014, 10:03
isx
Сергей Саныч писал(а):Статическая - да. Динамическая (в движении) будет больше.
А по сколько рисок в энкодерах сервы обычно бывает?
Кстати, ещё вопрос. Сервы с управлением по скважности не могут вращаться? http://www.youtube.com/watch?v=_-UopFAcS-A
aftaev писал(а):ЧПУ прогнозирует, для этого есть планировщик.
Если используется ПК, то где работает планировщик - в программе ПК или в схеме сервы?
michael-yurov писал(а):А вот написать хороший планировщик - очень сложная задача.
Если настроить программу ПК на плавный старт/стоп движков, то можно будет при постоянной скорости точно знать ближайшие шаги, а при пуск/торможении воспользоваться формулой (на примере с MACH3, как я думаю, используется линейное ускорение). Ну и в движении корректировать погрешности энкодером.

Re: Серва. Как же она работает?

Добавлено: 19 авг 2014, 10:44
aftaev
isx писал(а):А по сколько рисок в энкодерах сервы обычно бывает?
у всех "обычно" разное у кого 2000, у кого 12000000. Кто с какими сервами работает для того это обычно ;)
У сервы что на видео стоит подстроечный резистор для обратной связи
isx писал(а):Если настроить программу ПК на плавный старт/стоп движков, то можно будет при постоянной скорости точно знать ближайшие шаги, а при пуск/торможении воспользоваться формулой (на примере с MACH3, как я думаю, используется линейное ускорение). Ну и в движении корректировать погрешности энкодером.
и куды ты в Мач заведешь энкодер?

Re: Серва. Как же она работает?

Добавлено: 19 авг 2014, 11:45
isx
aftaev писал(а):у кого 2000, у кого 12000000
На оборот?? :shock: Или это с редуктором? Я энкодеров на 2000 рисок/об. даже в глаза не видел :)
aftaev писал(а):и куды ты в Мач заведешь энкодер?
Зачем? В МАЧ в "Motor Tuning" выставить плавный старт/стоп и подавать степ/дир на схему управления сервы. Схема замеряет время между сигналами STEP и если оно одинаково, то подстраивает движок к определённой скорости. Если время разное, то двигатель идёт на ускорение. Высчитывает разность времени и примерно знаем следующие положения (по формуле) вплоть до полной остановки/раскрутки. По этим данный корректируем ток на обмотках двигателя в каждом "шаге". В промежуточных состояниях опираемся на данные энкодера, чтоб с прогнозированием не пролететь текущее положение.

Re: Серва. Как же она работает?

Добавлено: 19 авг 2014, 14:21
michael-yurov
Ну не совсем так - интервал между импульсами у mach3 очень не стабильный и на него ориентироваться не стоит.
Алгоритму расчета скорости / крутящего момента на самом деле не нужен точный интервал между импульсами.
В общем то в управляющем сигнале step / dir и так очень большая избыточность. И нам, грубо говоря нужно убрать из сигнала высокочастотный шум.

Как заботает фильтр низкой частоты в звуковоспроизводящем тракте? Он ведь не знает, что там будет дальше, однако как-то работает!

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

А учитывая, что скорость по определению не может изменяться мгновенно, и система ЧПУ не может такого потребовать от приводов - оно в итоге нормально работает.

Re: Серва. Как же она работает?

Добавлено: 19 авг 2014, 16:38
aftaev
isx, что ты хочешь получить вот что не понятно.

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 03:49
isx
Совсем запутали. :) . Если не прогнозировать, то какой смысл в Пид?
Я просто хочу понять, как работает вся эта связка. Для меня сейчас это что-то невероятное.....

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 04:05
asutpka
aftaev писал(а):isx, что ты хочешь получить вот что не понятно.
ИМХО Потрындеть

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 04:06
michael-yurov
isx писал(а):Совсем запутали. :) . Если не прогнозировать, то какой смысл в Пид?
Я просто хочу понять, как работает вся эта связка. Для меня сейчас это что-то невероятное.....
Там весь прогноз заключается в определении текущей скорости, ускорения и скорости изменения ускорения. Этого достаточно, для стабильного и точного движения.
Причем эти величины определяются уже с учетом действующих усилий на мотор.

Давай начнем с интегральной составляющей - чем больше отставание по энкодеру от требуемой позиции - тем больший ток подается на обмотки (допустим у нас коллекторный мотор) чтобы получить больший крутящий момент.
Как такое будет работать - понятно?

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 08:10
Сергей Саныч
michael-yurov писал(а):интегральной составляющей - чем больше отставание по энкодеру от требуемой позиции - тем больший ток подается на обмотки (допустим у нас коллекторный мотор) чтобы получить больший крутящий момент
Михаил, небольшое уточнение. То, что ты описал - это пропорциональная составляющая. Интегральная работает, чтобы компенсировать статическую ошибку. Допустим, у нас ось Z (для простоты) - там статическая погрешность появляется из-за веса шпинделя - импульсы не идут, разность между заданной позицией и фактической ненулевая, в результате ток через двигатель течет ровно такой чтобы шпиндель не опускался и не поднимался. Это при пропорциональном регулировании. Интегратор же эту статическую ошибку будет накапливать и соответственно увеличивать ток двигателя, пока ошибка не обнулится.

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 08:36
Сергей Саныч
Добавлю - тут говорили про планировщик траектории, так он может вообще не представлять, как там работают сервы или ШД. Этим занимается контроллер движения (motion controller). Планировщик осуществляет "общее руководство". Разумеется, для правильной работы он должен "знать" параметры приводов (максимальную скорость, ускорение).

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 08:59
aftaev
isx писал(а):Я просто хочу понять, как работает вся эта связка. Для меня сейчас это что-то невероятное.....
тогда нужно купить серву, разок настроить и сразу понятно станет ;)

Re: Серва. Как же она работает?

Добавлено: 20 авг 2014, 14:26
azbukived
aftaev писал(а):
isx писал(а):Тоесть, в серву мы уже посылаем команду о необходимости совершить x оборотов, а не сообщаем ей только направление последующего шага (как с шаговиками)? Это двоичный код или что-то другое? Как тогда оно сопрягается с ПК (контроллеру шаговика даётся сигнал STEP/DIR, и от этого он знает куда и когда ему крутить)?
Сервы есть разные. Могут управятся по степ/диру, аналогу (управление скоростью или моментом)
Если серва работает по аналогу то аналоговое задание +-10в выдает ЧПУ, но в ЧПУ тогда нужно завести энкодер чтобы серва знала когда "тормозить"
Если к серве подаем 1в серва вращается с одной скоростью, подаем 5в серва будет крутиться в 50% от номинала оборотов, если подали 10в серва вращается на максимальных оборотах. Если поменяли местами +- то серва вращается в обратку.

Вот форумчанин видео снял
https://www.youtube.com/watch?v=lNgmkfpMTv8

Скорость сервы задается аналоговым сигналом от -10в === 0в === +10в
HELP!!! У меня причина не ясная: ОБРАТНОГО хода движки не дают. ПИДы настроил - стали реагировать на остановку в местах точек координат, а обратки нет...
Платы 5и25 + 7и77 = сервопривод и движки с тахогенераторами. Кто знает, в чем дело?