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

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


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

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

Сообщений в этой теме
- haker_fox   Алгоритм позиционирования   Nov 20 2008, 07:03
- - arisov   Практические конструкции "любительских" ...   Dec 23 2008, 11:31
- - haker_fox   Я верно понял все изложенные мысли (см. прикреплен...   Dec 24 2008, 07:13
|- - Tanya   Цитата(haker_fox @ Dec 24 2008, 10:13) Я ...   Dec 24 2008, 08:05
- - haker_fox   Долго молчал в этом топике... перерабатывал, усваи...   Feb 2 2009, 11:12
|- - Tanya   Цитата(haker_fox @ Feb 2 2009, 14:12) В о...   Feb 2 2009, 11:26
|- - VladimirYU   Цитата(Tanya @ Feb 2 2009, 14:26) Тут нар...   Feb 2 2009, 12:00
- - haker_fox   Ни в одном из приводов не видел токового управлени...   Feb 3 2009, 06:01
|- - evgeny_ch   Цитата(haker_fox @ Feb 3 2009, 10:01) Ни ...   Feb 3 2009, 06:46
|- - VladimirYU   Цитата(haker_fox @ Feb 3 2009, 09:01) Ни ...   Feb 4 2009, 06:15
|- - haker_fox   Цитата(VladimirYU @ Feb 4 2009, 14:15) эт...   Feb 4 2009, 13:49
|- - VladimirYU   Цитата(haker_fox @ Feb 4 2009, 16:49) Я в...   Feb 4 2009, 14:11
|- - haker_fox   Цитата(VladimirYU @ Feb 4 2009, 22:11) Вы...   Feb 4 2009, 14:30
|- - VladimirYU   Цитата(haker_fox @ Feb 4 2009, 17:30) Ага...   Feb 5 2009, 05:51
|- - haker_fox   Цитата(VladimirYU @ Feb 5 2009, 13:51) Мо...   Feb 5 2009, 09:30
|- - Iptash   Цитата(haker_fox @ Feb 5 2009, 12:30) ......   Mar 3 2009, 12:18
|- - _Pasha   Цитата(Огурцов @ Mar 3 2009, 14:40) на 16...   Mar 3 2009, 12:49
|- - evgeny_ch   Цитата(_Pasha @ Mar 3 2009, 15:49) ... Пр...   Mar 3 2009, 14:06
|- - Огурцов   Цитата(_Pasha @ Mar 3 2009, 13:49) Дык со...   Mar 3 2009, 17:06
- - arisov   Я в своё время с этим токовым ограничением «помуча...   Feb 3 2009, 07:58
|- - haker_fox   Цитата(arisov @ Feb 3 2009, 15:58) Я в св...   Feb 3 2009, 08:24
||- - arisov   Цитата(haker_fox @ Feb 3 2009, 11:24) Но ...   Feb 3 2009, 09:54
|- - _Pasha   Цитата(arisov @ Feb 3 2009, 10:58) Я в св...   Feb 3 2009, 08:25
|- - haker_fox   Цитата(arisov @ Feb 3 2009, 15:58) но при...   Feb 3 2009, 09:01
- - haker_fox   Уф! Проблемы дребезга скорости были в пропорци...   Feb 3 2009, 10:50
|- - arisov   Цитата(haker_fox @ Feb 3 2009, 13:50) Пра...   Feb 3 2009, 11:04
||- - haker_fox   Цитата(arisov @ Feb 3 2009, 19:04) На роб...   Feb 3 2009, 12:58
||- - arisov   Цитата(haker_fox @ Feb 3 2009, 15:58) Для...   Feb 3 2009, 13:13
||- - haker_fox   Цитата(arisov @ Feb 3 2009, 21:13) Но эти...   Feb 3 2009, 14:17
|- - _Pasha   Цитата(haker_fox @ Feb 3 2009, 13:50)  Ну...   Feb 3 2009, 13:24
|- - haker_fox   Цитата(_Pasha @ Feb 3 2009, 21:24) Как то...   Feb 4 2009, 04:37
- - arisov   В одной из модификаций UHU сервоконтроллера цепь т...   Feb 5 2009, 06:30
- - _Pasha   Смех сквозь слезы. Читаю ветку Художника ЦитатаВ ...   Mar 3 2009, 08:56
|- - Огурцов   Наверное нужно умножить частоту шим на разрешение ...   Mar 3 2009, 11:18
||- - _Pasha   Цитата(Огурцов @ Mar 3 2009, 14:18)  Да и...   Mar 3 2009, 11:26
||- - Огурцов   Нет, в смысле не гнаться за мега(кило)герцами. Усп...   Mar 3 2009, 11:40
||- - Огурцов   зы: тут вообще дело в том, что шим может в каждом ...   Mar 3 2009, 11:46
|- - evgeny_ch   Цитата(_Pasha @ Mar 3 2009, 11:56) Смех с...   Mar 3 2009, 11:45
- - haker_fox   Что-то я чувствую, что пора тут модельки матлабовс...   Mar 3 2009, 13:27
- - _Pasha   Цитата(haker_fox @ Mar 3 2009, 16:27) пор...   Mar 3 2009, 14:20
|- - dpss   Цитата(_Pasha @ Mar 3 2009, 17:20) Ага, с...   Mar 3 2009, 16:30
||- - _Pasha   Цитата(dpss @ Mar 3 2009, 19:30) А если э...   Mar 3 2009, 18:17
|- - evgeny_ch   Цитата(_Pasha @ Mar 3 2009, 17:20) ... Ну...   Mar 4 2009, 10:41
|- - _Pasha   Цитата(evgeny_ch @ Mar 4 2009, 14:41) отс...   Mar 4 2009, 12:14
- - _Pasha   Накопал статейку http://www.petra.ac.id/~puslit/jo...   Mar 4 2009, 09:15
- - Zoo30   А кто пытался делать Pid на Fpga для управления дв...   Mar 4 2009, 18:39
- - Zoo30   Кстати выложил файл. Начиная стр 161 очень хорошо ...   Mar 5 2009, 07:39
|- - _Pasha   Цитата(Zoo30 @ Mar 5 2009, 11:39) Начиная...   Mar 5 2009, 07:52
- - Zoo30   Цитата(_Pasha @ Mar 5 2009, 10:52) Хотите...   Mar 5 2009, 08:21
- - _Pasha   Цитата(Zoo30 @ Mar 5 2009, 12:21) Для нач...   Mar 5 2009, 08:38
2 страниц V  < 1 2


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

 


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


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