Алгоритм управления следящим приводом

Сервоприводы, шаговые двигатели, регуляторы скорости, частотные преобразователи
Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Как-то так:

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

"PID_P" := "DB_MAIN".Kp * (#E - "E_1");
"PID_I" := "DB_MAIN".Ki * #E;
"PID_D" := "DB_MAIN".Kd * (#E - 2 * "E_1" + "E_2");

IF "V_PPO_PID" + "PID_P" + "PID_I" + "PID_D" > "DB_MAIN".V_PID_max THEN
    "V_PPO_PID" := "DB_MAIN".V_PID_max;
ELSE 
    IF "V_PPO_PID" + "PID_P" + "PID_I" + "PID_D" < (- "DB_MAIN".V_PID_max) THEN
        "V_PPO_PID" := - "DB_MAIN".V_PID_max;
    ELSE
        "V_PPO_PID" := "V_PPO_PID" + "PID_P" + "PID_I" + "PID_D";
    END_IF;
END_IF;

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

SEkMhRoFvz0.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

Михайло писал(а):Как-то так:
У меня ограничение стоит на задание приводу, а регулятор я не ограничиваю.

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

// Ограничение скорости
IF "FB_POS_PPO_DB".V_Synh_r > "DB_MAIN".V_PID_max THEN
    // максимальная частота 150 Гц
    // при передаточном отношении редуктора 4,91 и шаге ШВП 10 мм
    // максимальная скорость 100 мм/сек
    "FB_POS_PPO_DB".V_Synh_r := "DB_MAIN".V_PID_max ;
END_IF;
У тебя же ограничения стоят прямо на регуляторе (ты переписываешь его расчеты). Как правильно?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Автоматизатор писал(а):Как правильно?
Надо блокировать приращения, иначе выход регулятора V_PPO_PID может уйти в глубокую бесконечность, если регулятор долго находится в насыщении. Особенно из-за И-составляющей: она долго накапливается и потом ей также долго уменьшаться обратно. То есть, если не блокировать приращение И-составляющей, то регулятор может долго возвращаться из насыщения чисто из-за одной накопленной И-компоненты, даже если созданы все условия для быстрого выхода из насыщения. Это, конечно, неправильно. П- и Д- составляющие могут выскакивать из насыщения вроде как за один пересчет. Именно поэтому у КЕБа в модели ПИД-регулятора стоит такой особенный ограничитель на И-составляющую.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

У Яскавы тоже приводят на структурной схеме отдельный ограничитель на интегратор. С ним разобрались, у меня реализовано так:

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

IF "V_PPO_PID" <= "DB_MAIN".V_PID_max THEN           // Интегрирование  только при отсутствии насыщения
    "PID_I" := "DB_MAIN".Ki * #E;                    // Интегральная составляющая ПИД-регулятора
END_IF;
Думаю надо написать аналогичное на дифференциальную.

А вот с П ?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Автоматизатор писал(а):у меня реализовано так:
1. Нет обнуления И-приращения (PID_I).
2. Нужно сравнивать с пределом не текущее значение V_PPO_PID, а следующее, потенциально возможное, т.е. (V_PPO_PID + PID_P + PID_I + PID_D), где PID_P, PID_I, PID_D - необнуленные текущие приращения. Иначе могут иметь место "хитрые игры" П- И Д-приращений на границе насыщения регулятора, в некоторых случаях наверное могут дать безудержный рост V_PPO_PID за счет PID_I. Под хитрой игрой понимается вхождение в насыщение в одном цикле и выход из насыщения в следующем цикле и затем снова насыщение и так далее... П- и Д- составляющие могут обеспечить такую "игру". Не думаю, что это практически сильно повлияет на что-то, но все-таки!

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Автоматизатор
Как успехи в отладке? Такое ощущение, что ты бросил силы на другие работы.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

Михайло писал(а):Как успехи в отладке?
Как сказать? С одной стороны: получается все точнее и точнее. По последним испытаниям максимальная ошибка положения порядка 0,57 мм. Улучшения идут за счет устранения косяков, которые возникают при переходе с работы в основном цикле ОВ1 на работу с прерываниями с периодом менее времени выполнения ОВ1 (время выполнения ОВ1 порядка 8-9 мс, прерывания до 2 мс). Например, надо брать значения скоростного счетчика энкодера не %ID1000, а %ID1000:P.

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

Сегодня планирую пересчитать регулятор от другого датчика с более высоким разрешением, проверить расчеты.

Цель: ошибка должна быть менее 0,2 мм.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Какая дискретность у имеющегося энкодера в миллиметрах?

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

На самой оправке стоит энкодер 4096 имп./оборот (квадратурный счет = 16 384 имп./об.).
На высокой скорости 1 об/сек. при периоде опроса 2 мс приращение будет 16 384 * 2 /1000 = 33,768 имп.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

Автоматизатор писал(а):На самой оправке стоит энкодер 4096 имп./оборот (квадратурный счет = 16 384 имп./об.).
На высокой скорости 1 об/сек. при периоде опроса 2 мс приращение будет 16 384 * 2 /1000 = 33,768 имп.
Ошибка счета в 1 импульс - составит 1 / 33 * 100 = 3 %.

При расчете перемещения с шагом 60 мм ошибка составит: 60 * 0.03 = 1.8 мм

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Чему равно x=pi*D/4096? D - диаметр пружины.

Я взял с потолка D=200 мм, получил x=0,15 мм. Это в общем-то меньше, чем 0,2 мм, но для задачи регулирования надо поточнее.

Неужели пружины такие прецизионные?

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

Михайло писал(а):Неужели пружины такие прецизионные?
Сам не думал. Из-за механики погрешность при укладке усиливается в 2-3 раза. Когда проектировали, то особо никто и не считал.

До последнего времени был другой принцип управления: менялось тупо задание скорости подачи при достижении заданного угла поворота. Только если геометрия не получилась, то концов не найти.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Алгоритм управления следящим приводом

Сообщение Михайло »

Ни хера се: точность 2 сотки - с такой точностью роботы (простейшие правда) работают. А Вы хотели просто регулировать скорость...

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Алгоритм управления следящим приводом

Сообщение mr_Frodo »

Михайло писал(а):точность 2 сотки - с такой точностью роботы (простейшие правда) работают
Хоть в данном случае и не "сотки", а "десятки", но всё-равно точность "Нихера се"!!! :clap:
Вот моя подпись...

Lyailya
Профан
Сообщения: 1
Зарегистрирован: 06 мар 2019, 08:32
Контактная информация:

Re: Алгоритм управления следящим приводом

Сообщение Lyailya »

Михайло писал(а):Если рассматривать S7-1200, то в этом плане интересным будет его технологический функционал Motion Control (функции MC_Home и др.).
мне помогло ответы :clap: :ura:

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Алгоритм управления следящим приводом

Сообщение Автоматизатор »

Lyailya писал(а):технологический функционал Motion Control
У 1200-ого фукционал не просто Motion Control, а Simple Motion Control. То есть совсем примитивный. После практической работы с сервоприводами - очень скромно.

Ответить