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

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

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

Сообщение Михайло » 17 ноя 2016, 12:16

Как-то так:

Код: Выделить всё
"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;
Михайло
Администратор
 
Сообщения: 3855
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Михайло » 17 ноя 2016, 17:44

SEkMhRoFvz0.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Михайло
Администратор
 
Сообщения: 3855
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Автоматизатор » 18 ноя 2016, 05:52

Михайло писал(а):Как-то так:

У меня ограничение стоит на задание приводу, а регулятор я не ограничиваю.
Код: Выделить всё
// Ограничение скорости
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;


У тебя же ограничения стоят прямо на регуляторе (ты переписываешь его расчеты). Как правильно?
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Михайло » 18 ноя 2016, 06:05

Автоматизатор писал(а):Как правильно?

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

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

Сообщение Автоматизатор » 18 ноя 2016, 07:37

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

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


Думаю надо написать аналогичное на дифференциальную.

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

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

Сообщение Михайло » 18 ноя 2016, 08:00

Автоматизатор писал(а):у меня реализовано так:

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. Под хитрой игрой понимается вхождение в насыщение в одном цикле и выход из насыщения в следующем цикле и затем снова насыщение и так далее... П- и Д- составляющие могут обеспечить такую "игру". Не думаю, что это практически сильно повлияет на что-то, но все-таки!
Михайло
Администратор
 
Сообщения: 3855
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Михайло » 02 дек 2016, 17:26

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

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

Сообщение Автоматизатор » 03 дек 2016, 08:07

Михайло писал(а):Как успехи в отладке?


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

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

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

Цель: ошибка должна быть менее 0,2 мм.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Михайло » 03 дек 2016, 13:04

Какая дискретность у имеющегося энкодера в миллиметрах?
Михайло
Администратор
 
Сообщения: 3855
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Автоматизатор » 03 дек 2016, 14:25

На самой оправке стоит энкодер 4096 имп./оборот (квадратурный счет = 16 384 имп./об.).
На высокой скорости 1 об/сек. при периоде опроса 2 мс приращение будет 16 384 * 2 /1000 = 33,768 имп.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Автоматизатор » 04 дек 2016, 07:15

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

Ошибка счета в 1 импульс - составит 1 / 33 * 100 = 3 %.

При расчете перемещения с шагом 60 мм ошибка составит: 60 * 0.03 = 1.8 мм
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Михайло » 04 дек 2016, 08:06

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

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

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

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

Сообщение Автоматизатор » 04 дек 2016, 12:27

Михайло писал(а):Неужели пружины такие прецизионные?

Сам не думал. Из-за механики погрешность при укладке усиливается в 2-3 раза. Когда проектировали, то особо никто и не считал.

До последнего времени был другой принцип управления: менялось тупо задание скорости подачи при достижении заданного угла поворота. Только если геометрия не получилась, то концов не найти.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Михайло » 04 дек 2016, 18:47

Ни хера се: точность 2 сотки - с такой точностью роботы (простейшие правда) работают. А Вы хотели просто регулировать скорость...
Михайло
Администратор
 
Сообщения: 3855
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение mr_Frodo » 04 дек 2016, 19:33

Михайло писал(а):точность 2 сотки - с такой точностью роботы (простейшие правда) работают

Хоть в данном случае и не "сотки", а "десятки", но всё-равно точность "Нихера се"!!! :clap:
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 476
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение Lyailya » 06 мар 2019, 08:49

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

мне помогло ответы :clap: :ura:
Lyailya
Профан
 
Сообщения: 1
Зарегистрирован: 06 мар 2019, 08:32

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

Сообщение Автоматизатор » 06 мар 2019, 18:42

Lyailya писал(а):технологический функционал Motion Control


У 1200-ого фукционал не просто Motion Control, а Simple Motion Control. То есть совсем примитивный. После практической работы с сервоприводами - очень скромно.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 958
Зарегистрирован: 09 окт 2012, 05:18

Пред.

Вернуться в ЭЛЕКТРОПРИВОД

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1