реклама на сайте
подробности

 
 
> Алгоритм позиционирования, при использовании энкодера 45 имп/об
haker_fox
сообщение Nov 20 2008, 07:03
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Здравствуйте!
Тема перекочевала отсюда.

В моем приводе это вопрос позиционирования встал ребром. По началу я не считал эту задачу сложной, но теперь понял, что все не так просто...
Застабилизировать скорость, когда вал должен просто вращаться, оказалось делом не сложным. PI регулятор работает.
Но вот вопрос позиционирования раскусить не могу... то, что смог реализовать работает с затухающими колебаниями относительно точки, в которую приводу нужно уйти.
Привожу код, который сможет пояснить суть алгоритма. Но общий принцип такой: берется рассогласованиее по координатам, которое домножается на некоторой коэффициент posTolPGain (пропорциональная часть), получаем скорость, на которой приказываем приводу двигаться. По мере приближения к заданной точке, рассогласование будет уменьшаться, пока не достигнет того минимума, при котором привод останавливается. Остается некоторая ошибка. Эта ошибка (ее величина определяется переменной posTolerance), компенсируется следующей ступенью пропорционального регулятора, у которого коэффициент posTolPGain1, который много больше, чем posTolPGain, в силу малости ошибки. Перввая ступень регулятора работает великолепно, но всегда остается ошибка. Вторая ступень дает колебания. Будут ли они затухающими, или нет, зависит от posTolPGain1, но они есть всегда... Мне не приходит идея, что делать? Использовать еще и интегральную составляющую для устранения ошибки позиционирования? Но это уже будет целых два ПИ-регулятора со своими коэффициентами... многовато их получается... Есть ли какие-нибудь идей у уважаемых профессионалов? Спасибо!
Да, датчик обратной связи - энкодер. Больше ничего нет..., и добалять нельзя. Привода аппаратно готов и какой бы ущербный он не был, придется придумывать, как реализовать позиционирование на энкодере.
Код
/*
    This function must be called every 5 ms in Position Mode
    IN:
        pos - desired position
    OUT:
        servo result codes
*/
uint8_t TServoControl::positionModeProcess(int16_t pos)
{
    int32_t pos_tolerance = pos - getPosition();
    int32_t dp = pos_tolerance;
    if(dp < 0)
        dp*= -1L;
    if(dp > posTolerance)
        {
            int32_t vel = ((pos - getPosition()) * posTolPGain) / 128L;
            if(vel > 0)
                {
                    if(vel > velocityLimit)
                        vel = velocityLimit;
                }
            else
                if(vel < 0)
                    {
                        if(vel < -velocityLimit)
                            vel = -velocityLimit;
                    }
            velocityModeProcess(vel);
        }
    else
        {
            int16_t s_pwm = pos_tolerance * posTolPGain1 / 128L;
            if(s_pwm > 0)
                setServoMode(SERVO_POS_VELOCITY_MODE);
            else
                if(s_pwm < 0)
                    {
                        setServoMode(SERVO_NEG_VELOCITY_MODE);
                        s_pwm*= -1;
                    }
            if(s_pwm > 250L)
                s_pwm = 250;
            if(s_pwm)
                setPWM((uint8_t)s_pwm);
            else
                setServoMode(SERVO_FAST_STOP_MODE);
        }
    return SERVO_OK_RESULT;
}

Требования не высокие: нужно просто перемещаться из текущей точки в заданную. Ускорение и максимальная скорость, до которой разгоняемя - задаются. Погрешность допустима.. ну сколько, даже не знаю как выразить. Ну вал двигателя может провернуться или не довернуться процентов на 20 - 40 от того значения, которое соответсвует заданной координате. Извините за доморощенные термины. Ну вот, пока вроде все.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
11 страниц V  « < 4 5 6 7 8 > »   
Start new topic
Ответов (75 - 89)
alexander55
сообщение Dec 3 2008, 05:45
Сообщение #76


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(haker_fox @ Dec 3 2008, 04:58) *
Данных для расчета практически нет. Ну двигатель известен. А звенья манипулятора уже готовые. На них нет ни чертежей, ни какой другой документации. А без этих данных не приведенный момент инерции посчитать, ничего не сделать... Брать штангель, весы и вручную мерить? smile.gif

Для определения электромагнитной постоянной (L/R) (лучший метод экспериментальный)- двигатель зажимают (чтобы не ерзал). Подают ступеньки и по осцилоскопу смотрят переходный процесс. Время до 0.65 от установившегося значения тока и есть постоянная времени.
Электромеханическую постоянную можно посчитать, но это не очень актуально, т.к. настройка привода будет компромисной с учетом механики (люфты, ограниченная жесткость). Дело в том, что механика - это не просто интегратор от скорости в положение, а гораздо круче, чем даже модель двигателя. biggrin.gif
Go to the top of the page
 
+Quote Post
PhX
сообщение Dec 3 2008, 06:05
Сообщение #77


Местный
***

Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249



Цитата(alexander55 @ Dec 3 2008, 09:45) *
Для определения электромагнитной постоянной (L/R) (лучший метод экспериментальный)- двигатель зажимают (чтобы не ерзал). Подают ступеньки и по осцилоскопу смотрят переходный процесс. Время до 0.65 от установившегося значения тока и есть постоянная времени.

Ну если использовать замкнутый контур тока, с достаточно большим коэффициентом усиления, задумоваться о электромагнитной постоянной практически не придется.
Цитата(alexander55 @ Dec 3 2008, 09:45) *
Электромеханическую постоянную можно посчитать, но это не очень актуально, т.к. настройка привода будет компромисной с учетом механики (люфты, ограниченная жесткость). Дело в том, что механика - это не просто интегратор от скорости в положение, а гораздо круче, чем даже модель двигателя. biggrin.gif

Механика, это в первом приближении, тупо J(dw/dt), для многих случаев.
Для других случаев это две массы с упругой связью.
Далее добавляем гистерезис...
Для очень точных систем нелинейное трение...
А если сложнее, то проще механику поменять, чтобы описывалать первым или вторым случаем.
Тут пока нужно рассматривать первый случай.


--------------------
Если все, то не я...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 3 2008, 06:33
Сообщение #78


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(PhX @ Dec 3 2008, 09:05) *
Ну если использовать замкнутый контур тока, с достаточно большим коэффициентом усиления, задумоваться о электромагнитной постоянной практически не придется.

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

Цитата(PhX @ Dec 3 2008, 09:05) *
Механика, это в первом приближении, тупо J(dw/dt), для многих случаев.

Так.

Цитата(PhX @ Dec 3 2008, 09:05) *
Для других случаев это две массы с упругой связью.

Могут быть и 3-х массовые и т.д.

Цитата(PhX @ Dec 3 2008, 09:05) *
Для других случаев это две массы с упругой связью.
Далее добавляем гистерезис...
Для очень точных систем нелинейное трение...
А если сложнее, то проще механику поменять, чтобы описывалать первым или вторым случаем.
Тут пока нужно рассматривать первый случай.


Если интересно, могу накидать структуру.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 5 2008, 07:08
Сообщение #79


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Могу ли я применить для контроля тока (момента) схему дифференциального усилителя? Вот примерно, как на рисунке. Выход усилителя буду заводить на АЦП ATmega168.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 5 2008, 07:33
Сообщение #80


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(haker_fox @ Dec 5 2008, 10:08) *

Можно. Подумайте насчет гальванических развязок (может они не нужны, а может нужны).
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 5 2008, 07:38
Сообщение #81


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Как и обещал, формулирую требования к приводу: хотелось бы, чтобы привода работал в двух независимых друг от друга режимах, конечно только в одном из них в один момент времени. Режимы:
1. Только стабилизация угловой скорости, без привязки к координатам, например для стабилизации вращения шпиндельной головки. Там не нужно знать, сколько прошли, нужно поддерживать определенную угловую скорость. В этом режим должно задаваться желаемое ускорение (профиль трапезоидальный, как один из простых), и стабилизируемая скорость (ну это само собой).
2. Режим позиционирования. При вращении вала двигателя для достижения заданной координаты используется также режим 1 внутри этого (2) режима. Т.е. при перемещении в точку разгоняемся с заданным ускорением, достигаем какой-то заданной скорости, плавно тормозим и приходим в желаемую точку. Далее в этой точки стоим и не даем себя сдвинуть, те сопротивляемся возмущениям.

Ну вот примерно и все...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Dec 5 2008, 08:27
Сообщение #82


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(haker_fox @ Dec 5 2008, 11:08) *
Могу ли я применить для контроля тока (момента) схему дифференциального усилителя? Вот примерно, как на рисунке. Выход усилителя буду заводить на АЦП ATmega168.
У Linear Technology есть более интересная схема,
даёт больше функциональных возможностей. Ваша схема не
позволит диагностировать состояние плеч моста.


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
dpss
сообщение Dec 5 2008, 08:29
Сообщение #83


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(haker_fox @ Dec 5 2008, 10:08) *
Могу ли я применить для контроля тока (момента) схему дифференциального усилителя? Вот примерно, как на рисунке. Выход усилителя буду заводить на АЦП ATmega168.

Можно использовать готовые микросхемы усилители тока , например Analog Devices
Если делать на "россыпи" ,то будет примерно так http://www.awenwen.com/gb/doc/DMC550.pdf
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 5 2008, 08:32
Сообщение #84


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



А какие преимущества у дифусилителя перед схемой измерения тока истока нижних транзисторов?
упс, evgeny_ch опередил.
PS: или перед ir2172
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 5 2008, 09:00
Сообщение #85


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(evgeny_ch @ Dec 5 2008, 16:27) *
У Linear Technology есть более интересная схема,
даёт больше функциональных возможностей. Ваша схема не
позволит диагностировать состояние плеч моста.

У меня монолитная L298. Не получится вклиниться в плечи мостов.

Цитата(alexander55 @ Dec 5 2008, 15:33) *
Можно. Подумайте насчет гальванических развязок (может они не нужны, а может нужны).

Я думаю, что желательны.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
dpss
сообщение Dec 5 2008, 09:17
Сообщение #86


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(alexander55 @ Dec 5 2008, 10:33) *
Можно. Подумайте насчет гальванических развязок (может они не нужны, а может нужны).

Развязки нужны если используете несколько двигателей. При выборе развязки обратите внимание на
CMR (Common Mode Rejection). Он должен быть не хуже 15 kV/ms
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 5 2008, 09:20
Сообщение #87


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(dpss @ Dec 5 2008, 17:17) *
Развязки нужны если используете несколько двигателей. При выборе развязки обратите внимание на
CMR (Common Mode Rejection). Он должен быть не хуже 15 kV/ms

Нет, у меня на один привод - один двигатель.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Dec 5 2008, 09:49
Сообщение #88


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Dec 5 2008, 12:32) *
А какие преимущества у дифусилителя перед схемой измерения тока истока нижних транзисторов?
упс, evgeny_ch опередил.
PS: или перед ir2172
Больше не буду.
Токовые мониторы от TI.
Products Tagged with current sensing.
Должна быть возможность мерять ток, протекающий в источник,
при работе двигателя в генераторном режиме .
Что не исключает измерения тока в цепи "земли".

Сообщение отредактировал evgeny_ch - Dec 5 2008, 09:54


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
dpss
сообщение Dec 5 2008, 09:50
Сообщение #89


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(PhX @ Dec 3 2008, 09:05) *
Механика, это в первом приближении, тупо J(dw/dt), для многих случаев.
Для других случаев это две массы с упругой связью.
Далее добавляем гистерезис...
Для очень точных систем нелинейное трение...

Нельзя ли по подробнее рассказать, как учитывается - компенсируется нелинейное трение в системе.
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 5 2008, 10:35
Сообщение #90


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(haker_fox @ Dec 5 2008, 10:08) *
Могу ли я применить для контроля тока (момента) схему дифференциального усилителя? Вот примерно, как на рисунке. Выход усилителя буду заводить на АЦП ATmega168.

Мне кажется лучше ток "снимать" с шунта включенный по питанию, обычно в GND, во первых
ты сразу контролируешь сквозной ток во вторых полярность выходного тока у тебя постоянный,
независимо от вращения.
Go to the top of the page
 
+Quote Post

11 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01515 секунд с 7
ELECTRONIX ©2004-2016