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

 
 
> Алгоритм позиционирования, при использовании энкодера 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
 
Start new topic
Ответов
evgeny_ch
сообщение Dec 2 2008, 12:54
Сообщение #2


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

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



DSP Servo Control With the MC68HC16Z1.
Algorithms for Industrial Manipulators.

Сообщение отредактировал evgeny_ch - Dec 2 2008, 12:58


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 2 2008, 13:11
Сообщение #3


;
******

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



Цитата(evgeny_ch @ Dec 2 2008, 16:54) *

А чего у них D-звено из другой бочки получает входные данные ? wacko.gif
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Dec 2 2008, 14:31
Сообщение #4


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

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



Цитата(Pasha @ Dec 2 2008, 17:11) *
А чего у них D-звено из другой бочки получает входные данные ? wacko.gif
Чтобы не заводился привод, там усреднение есть.
_Pasha, я только разместил объяву. biggrin.gif
На этом этапе считаю преждевременной возню с регуляторами,
поскольку не получена передаточнае функция разомкнутой системы.
Типа отклик на ед. воздействие. Там может оказаться такое, что никакой
регулятор не поможет. Если мощности двигателя достаточно, в механике отсутствуют
люфты, избыточное трение и гибкие мех. связи, то обычно хватает простого
PID регулятора и двух контуров ОС - по моменту и положению.
Далее на него наворачивается подчинённость и пр. перекрёстные связи.
Если механика никудышная, а привод недостаточен по тяг. усилию,
контроллер не успевает, то чем регулировать?
Нагрузочная характеристика должна быть гладкой,
усилитель без смещения и мертвой зоны. Где-то так.

Сообщение отредактировал evgeny_ch - Dec 2 2008, 14:56


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 3 2008, 01:58
Сообщение #5


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

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



Цитата(evgeny_ch @ Dec 2 2008, 22:31) *
На этом этапе считаю преждевременной возню с регуляторами,
поскольку не получена передаточнае функция разомкнутой системы.
Типа отклик на ед. воздействие.

Не ругайтесь сильно, но как ее получить? Данных для расчета практически нет. Ну двигатель известен. А звенья манипулятора уже готовые. На них нет ни чертежей, ни какой другой документации. А без этих данных не приведенный момент инерции посчитать, ничего не сделать... Брать штангель, весы и вручную мерить? smile.gif
Цитата(evgeny_ch @ Dec 2 2008, 22:31) *
Если мощности двигателя достаточно, в механике отсутствуют
люфты, избыточное трение и гибкие мех. связи, то обычно хватает простого
PID регулятора и двух контуров ОС - по моменту и положению.

Мощности достаточно. Манипулятор заводского производства, не самопал smile.gif Люфты есть, ибо передачи цилиндрические косозубые и винт-гайка. Гибкие механические связи отсутствуют.
Цитата(evgeny_ch @ Dec 2 2008, 22:31) *
двух контуров ОС - по моменту и положению.

Раз по моменту, значит все-таки ток мерить нужно..., верно? Как не хотелось, а, видимо придется... Для связи по положению хватит такого "грубого" энкодера, как у меня?


evgeny_ch и _Pasha отдельный респект!!!
Вы прямо живые энциклопедии!!!)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 3 2008, 05:45
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #8


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

Группа: Свой
Сообщений: 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   Алгоритм позиционирования   Nov 20 2008, 07:03
- - Tanya   Цитата(haker_fox @ Nov 20 2008, 10:03) Зд...   Nov 20 2008, 08:02
|- - haker_fox   Цитата(Tanya @ Nov 20 2008, 16:02) А в че...   Nov 20 2008, 08:51
|- - Tanya   Цитата(haker_fox @ Nov 20 2008, 11:51) Ду...   Nov 20 2008, 09:03
|- - haker_fox   Цитата(Tanya @ Nov 20 2008, 17:03) Да, вы...   Nov 20 2008, 09:16
|- - dpss   Цитата(haker_fox @ Nov 20 2008, 12:16) Вы...   Nov 20 2008, 14:07
|- - PhX   Попробуйте так: В контур скорости поставьте ПИ рег...   Nov 21 2008, 04:32
|- - haker_fox   Цитата(PhX @ Nov 21 2008, 12:32) Попробуй...   Nov 21 2008, 05:06
||- - PhX   Цитата(haker_fox @ Nov 21 2008, 09:06) Но...   Nov 21 2008, 05:45
||- - haker_fox   Цитата(PhX @ Nov 21 2008, 13:45) А что пр...   Nov 21 2008, 05:51
||- - alexander55   Цитата(haker_fox @ Nov 21 2008, 08:51) П...   Nov 21 2008, 06:52
||- - Tanya   Цитата(alexander55 @ Nov 21 2008, 09:52) ...   Nov 21 2008, 07:15
|- - alexander55   Цитата(PhX @ Nov 21 2008, 07:32) Попробуй...   Nov 21 2008, 07:23
|- - haker_fox   Цитата(alexander55 @ Nov 21 2008, 15:23) ...   Nov 21 2008, 07:36
||- - PhX   Такой вопрос: Вы пока отдельно движком крутите или...   Nov 21 2008, 07:51
|||- - alexander55   Цитата(PhX @ Nov 21 2008, 10:51) Такой во...   Nov 21 2008, 07:55
|||- - haker_fox   Цитата(PhX @ Nov 21 2008, 15:51) Такой во...   Nov 21 2008, 08:41
|||- - Tanya   Цитата(haker_fox @ Nov 21 2008, 11:39) К ...   Nov 21 2008, 09:02
|||- - PhX   Цитата(haker_fox @ Nov 21 2008, 12:41) С...   Nov 21 2008, 09:08
||||- - dpss   Типовая система позиционирования обычно содержит т...   Nov 21 2008, 09:47
||||- - Tanya   Цитата(dpss @ Nov 21 2008, 12:47) Типовая...   Nov 21 2008, 10:09
||||- - alexander55   Цитата(dpss @ Nov 21 2008, 12:47) Типовая...   Nov 24 2008, 06:05
|||- - dpss   На двух звеньях датчик стоит на ходовом валу механ...   Nov 21 2008, 10:11
||- - Tanya   Цитата(haker_fox @ Nov 21 2008, 10:36) Ес...   Nov 21 2008, 07:53
|- - Tanya   Цитата(alexander55 @ Nov 21 2008, 10:23) ...   Nov 21 2008, 07:43
|- - alexander55   Цитата(Tanya @ Nov 21 2008, 10:43) Тогда ...   Nov 21 2008, 07:50
|- - Tanya   Цитата(alexander55 @ Nov 21 2008, 10:50) ...   Nov 21 2008, 07:58
|- - alexander55   Цитата(Tanya @ Nov 21 2008, 10:58) Потом...   Nov 21 2008, 08:44
- - _Pasha   Цитата(haker_fox @ Nov 20 2008, 11:03) Вт...   Nov 20 2008, 08:11
- - haker_fox   Блин!) Еще одна неприятность выяснилась: появл...   Nov 21 2008, 04:31
- - MaslovVG   Цитата(haker_fox @ Nov 20 2008, 10:03) В ...   Nov 21 2008, 06:41
|- - PhX   ЦитатаПозиционировать нужно манипулятор. Три оси.....   Nov 21 2008, 06:56
- - haker_fox   Как все сложно для меня. Может быть и вправду, исп...   Nov 21 2008, 10:23
|- - Tanya   Цитата(haker_fox @ Nov 21 2008, 13:23) Ка...   Nov 21 2008, 10:29
||- - haker_fox   Цитата(Tanya @ Nov 21 2008, 18:29) Тут Ва...   Nov 21 2008, 10:41
||- - Tanya   Цитата(haker_fox @ Nov 21 2008, 13:41) На...   Nov 21 2008, 10:57
||- - PhX   Цитата(Tanya @ Nov 21 2008, 14:57) Почита...   Nov 21 2008, 11:17
||- - dpss   Цитата(PhX @ Nov 21 2008, 14:17) +1 Как б...   Nov 21 2008, 13:37
|- - MaslovVG   Цитата(haker_fox @ Nov 21 2008, 13:23) Ка...   Nov 21 2008, 11:53
- - _Sam_   ЦитатаЧем ступенчатое проще бесступенчатого? На са...   Nov 21 2008, 15:45
- - haker_fox   Всем ответившим за последние 12 часов огромное спа...   Nov 22 2008, 04:57
|- - evgeny_ch   Цитата(haker_fox @ Nov 22 2008, 08:57) .....   Nov 22 2008, 06:25
- - haker_fox   Я вот задумался, а может быть реализовать измерени...   Nov 26 2008, 14:30
|- - alexander55   Цитата(haker_fox @ Nov 26 2008, 17:30) Ка...   Nov 27 2008, 05:57
|- - haker_fox   Цитата(alexander55 @ Nov 27 2008, 13:57) ...   Nov 27 2008, 06:43
|- - Tanya   Цитата(haker_fox @ Nov 27 2008, 09:43) З....   Nov 27 2008, 09:47
|- - haker_fox   Цитата(Tanya @ Nov 27 2008, 17:47) Еще бе...   Nov 27 2008, 10:34
|- - Tanya   Цитата(haker_fox @ Nov 27 2008, 13:34) Чт...   Nov 27 2008, 11:00
- - Jurenja   haker_fox, для понимания "почему так все рабо...   Nov 26 2008, 16:12
- - haker_fox   Выкладываю пару графиков. Каждый график иллюстриру...   Nov 29 2008, 07:37
|- - PhX   Цитата(haker_fox @ Nov 29 2008, 11:37) Вы...   Nov 29 2008, 08:18
|- - haker_fox   Цитата(PhX @ Nov 29 2008, 16:18) Это зави...   Nov 29 2008, 09:56
|- - Tanya   Цитата(haker_fox @ Nov 29 2008, 12:56) Ос...   Nov 29 2008, 10:12
|- - haker_fox   Цитата(Tanya @ Nov 29 2008, 18:12) Какая ...   Nov 29 2008, 10:21
|- - PhX   1. Управляйте ТОКОМ. Заведите ос. по току и регули...   Nov 29 2008, 10:23
- - haker_fox   Гм, теперь, наверно только уже в понедельник смогу...   Nov 29 2008, 10:28
|- - Tanya   Цитата(haker_fox @ Nov 29 2008, 13:28) З....   Nov 29 2008, 11:24
|- - PhX   Залез в свой архив. Авторы лучших, ИМХО, учебников...   Nov 29 2008, 18:11
|- - Iptash   "Жесткость" или точность привода зависит...   Dec 1 2008, 11:37
|- - haker_fox   Цитата(Iptash @ Dec 1 2008, 19:37) Я дела...   Dec 2 2008, 01:03
|- - Iptash   Цитата(haker_fox @ Dec 2 2008, 04:03) У м...   Dec 2 2008, 05:33
|- - Iptash   Цитата(Iptash @ Dec 2 2008, 08:33) А схем...   Dec 2 2008, 11:17
- - haker_fox   Iptash, спасибо за информацию! 2 all: увеличил...   Dec 2 2008, 10:40
|- - Iptash   Цитата(haker_fox @ Dec 2 2008, 13:40) уве...   Dec 2 2008, 11:12
|- - _Pasha   Цитата(haker_fox @ Dec 2 2008, 14:40) 2 a...   Dec 2 2008, 11:13
- - haker_fox   _Pasha, спасибо! Верну назад) Блин, все-таки к...   Dec 2 2008, 11:19
|- - Iptash   Цитата(_Pasha @ Dec 2 2008, 16:11) А чего...   Dec 2 2008, 13:35
||- - PhX   Обратите внимание, интегральная составляющая регул...   Dec 2 2008, 14:16
|- - evgeny_ch   Цитата(haker_fox @ Dec 3 2008, 05:58) Не ...   Dec 3 2008, 03:33
||- - haker_fox   Цитата(evgeny_ch @ Dec 3 2008, 11:33) Вам...   Dec 3 2008, 05:35
|- - PhX   Цитата(haker_fox @ Dec 3 2008, 05:58) Не ...   Dec 3 2008, 04:11
|- - dpss   Цитата(PhX @ Dec 3 2008, 09:05) Механика,...   Dec 5 2008, 09:50
|- - evgeny_ch   [color=#000000]Цитата(dpss @ Dec 5 2008, 13...   Dec 5 2008, 10:50
|- - alexander55   Цитата(evgeny_ch @ Dec 5 2008, 13:50) Луч...   Dec 5 2008, 12:28
|- - PhX   Цитата(evgeny_ch @ Dec 5 2008, 14:50) [co...   Dec 5 2008, 12:55
|- - evgeny_ch   Цитата(PhX @ Dec 5 2008, 16:55) Не всегда...   Dec 5 2008, 14:23
|- - alexander55   Цитата(PhX @ Dec 5 2008, 15:55) Не всегда...   Dec 5 2008, 14:35
- - haker_fox   Могу ли я применить для контроля тока (момента) сх...   Dec 5 2008, 07:08
|- - alexander55   Цитата(haker_fox @ Dec 5 2008, 10:08) Мо...   Dec 5 2008, 07:33
||- - dpss   Цитата(alexander55 @ Dec 5 2008, 10:33) М...   Dec 5 2008, 09:17
||- - haker_fox   Цитата(dpss @ Dec 5 2008, 17:17) Развязки...   Dec 5 2008, 09:20
|- - evgeny_ch   Цитата(haker_fox @ Dec 5 2008, 11:08) Мог...   Dec 5 2008, 08:27
||- - haker_fox   Цитата(evgeny_ch @ Dec 5 2008, 16:27) У L...   Dec 5 2008, 09:00
|- - dpss   Цитата(haker_fox @ Dec 5 2008, 10:08) Мог...   Dec 5 2008, 08:29
|- - Iptash   Цитата(haker_fox @ Dec 5 2008, 10:08) Мог...   Dec 5 2008, 10:35
- - haker_fox   Как и обещал, формулирую требования к приводу: хот...   Dec 5 2008, 07:38
- - _Pasha   А какие преимущества у дифусилителя перед схемой и...   Dec 5 2008, 08:32
|- - evgeny_ch   Цитата(_Pasha @ Dec 5 2008, 12:32) А каки...   Dec 5 2008, 09:49
- - _Sam_   ЦитатаДалее в этой точки стоим и не даем себя сдви...   Dec 5 2008, 17:45
- - haker_fox   Может быть Америку открою, но мне, как начинающему...   Dec 16 2008, 07:20
- - PhX   Цитата(haker_fox @ Dec 16 2008, 11:20) Мо...   Dec 16 2008, 07:26
- - haker_fox   Цитата(PhX @ Dec 16 2008, 15:26) Да, стоя...   Dec 22 2008, 10:13
- - evgeny_ch   Цитата(haker_fox @ Dec 22 2008, 14:13) Аг...   Dec 22 2008, 10:39
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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