1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

ПИД какой выбрать и с чем его есть?

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить

Автор темы
IvanSheyko
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 10 май 2017, 14:57
Имя: Иван
Страна: Россия

ПИД какой выбрать и с чем его есть?

Сообщение IvanSheyko »

Всем доброго времени суток. Кручусь верчусь в этих пидах год и ни как не разобраться. Прошу помощи "по всем фронтам" :crazy0to: .
Итак, единственная проблема которая осталась PID. Работаю на контролерах Shnaider и Wago, оба на основе codesys2.3\3.5. Что мне нужно реализовать с помощью Pid регулятора:
1. Нагрев элементов на основе твердотельного реле а не аналога на выходе. В чем тут у меня трудности пид нам выдает значение типа Real\word не суть я его перевожу в секунды рисую ШИМ все четко греет регулирует, однако как начинает подходить к уставке он превращается в 100%, да я переворачивал выход то есть 100% полное закрытие, помогло один раз нагреть, а дальше пид перестает работать, мол задачу он свою выполнил.
Если по нагреву относительно ничего страшного, накалякал свою элементарную логику со ступенями и так далее достиг удержание в пол градуса, ура, но это заморочь, хочется это реализовать через ПИД.
2. А это самый важный вопрос. Во всех оборудование на котором я меняю контролеры стоят либо сервопривода (моторы) либо гидравлические клапана с сервоуправлением. Я нарисовал свою опять же ступенчатую ерунду, которая обеспечивает мне позиционирование, но не обеспечивает равномерной скорости на всей длине пути плюс ее уж очень заморочно настраивать. Обратная связь это линейки либо энкодеры, управление всегда -10+10в ну разбиваю -32500+32500 это все понятно не будем заосстрять внимание.

Итак в чем суть моего вопроса. Подскажите где и какую лучше всего использовать библиотеку PID универсальную для программы Codesys. И если есть подводные камни в этом блоке подскажите пожалуйста. Важно что бы позиция была в пределах 0,1 мм и не было скачкообразного разгона и гашения, потому что в моторах это просто позиция а в гидравлики гидро удары.

Основная проблема моей ступенчатой ерунды в том, что на разных скоростях приходится эти ступени двигать и разной скоростью резать, выходит очень длинное полотно над которым сидишь по пол дня на один агрегат и стоить повесить чуть тяжелее форму, начинается плавание.

Ребят пожалуйста подскажите очень нужно. Главное реализация позиционирования ! :good:

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

ПИД какой выбрать и с чем его есть?

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

IvanSheyko писал(а): 07 дек 2018, 16:08 однако как начинает подходить к уставке он превращается в 100%
Как ваш алгоритм, который переводит аналоговый выход ПИДа во временной импульс, работает в случае выхода, равного строго 0?
IvanSheyko писал(а): 07 дек 2018, 16:08 обеспечивает мне позиционирование, но не обеспечивает равномерной скорости на всей длине
тут причин может быть много:
- скорость не успевает вырасти до некоторой постоянной,
- лимит скорости ничем не обеспечивается, ограничьте вход регулятора скорости сатуратором и используйте этот лимит как задатчик скорости,
- регулятор скорости отсутствует.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1105
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 255 раз
Поблагодарили: 184 раза

ПИД какой выбрать и с чем его есть?

Сообщение Looker »

"В огороде бузина, а в Киеве дядька." (с) не мой
Про ПИД - настоятельно рекомендую Изерман Р. (1984) Цифровые системы управления много читать, но если в ВУЗе хорошо освоил ТАУ - начальные главы можно пропустить.
Как в "codesys" сделана реализация ПИД не знаю, но:
  • Allen Bradley - в физических единицах
  • B&R - в "попугаях" с учетом времени вызова ПИД
Выход ПИД для "3-Pos" - "Больше-Стоять-Меньше" - отдельная задача.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

se_sib
освоился
освоился
Сообщения: 277
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 73 раза

ПИД какой выбрать и с чем его есть?

Сообщение se_sib »

По поводу контроля нагрева и контроллеров SE, в SoMachine есть библиотека(Packaging) ФБ для автоматизации упаковочных машин, в библиотеки есть блоки TemperatureControl(ПИД регуляторы для управления нагревом). Попробуйте их, они имеют и аналоговый выход и ШИМ, так же встроена функция авто-настройки.
ФБ регуляторов и ШИМ есть в библиотеки SE Toolbox, а так же в независимой библиотеки OSCAT Basic.
TemperatureControl.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
IvanSheyko
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 10 май 2017, 14:57
Имя: Иван
Страна: Россия

ПИД какой выбрать и с чем его есть?

Сообщение IvanSheyko »

Михайло писал(а): 07 дек 2018, 16:59 Как ваш алгоритм, который переводит аналоговый выход ПИДа во временной импульс, работает в случае выхода, равного строго 0?
Ну так как он работает реверсно то при 0 у меня 3000-0 то есть полностью открыт 3000 это мс. В аналоге мин я ставлю 0 макс ставлю 3000. То есть когда он выходи в максимальные 100% то 3000-3000 работа составляет 0 мс

Отправлено спустя 2 минуты 10 секунд:
se_sib писал(а): 08 дек 2018, 09:47 По поводу контроля нагрева и контроллеров SE, в SoMachine есть библиотека(Packaging) ФБ для автоматизации упаковочных машин, в библиотеки есть блоки TemperatureControl(ПИД регуляторы для управления нагревом). Попробуйте их, они имеют и аналоговый выход и ШИМ, так же встроена функция авто-настройки.
ФБ регуляторов и ШИМ есть в библиотеки SE Toolbox, а так же в независимой библиотеки OSCAT Basic.
Речь идет о So mashine? посмотрю спасибо, а что насчет Работы с серваки и позицией как реализуется в SE это?

se_sib
освоился
освоился
Сообщения: 277
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 73 раза

ПИД какой выбрать и с чем его есть?

Сообщение se_sib »

IvanSheyko писал(а): 10 дек 2018, 13:36 Речь идет о So mashine? посмотрю спасибо, а что насчет Работы с серваки и позицией как реализуется в SE это?
Я так понял -10..10 это задание скорости, + едит вперед, - едит назад. Я не видел у Шнайдера библиотек с реализацией регулятора движения для таких систем. Шнайдер продает свои шаговые и сервопривода с возможностью управления по полевым шинам(CANopen,Sercos,EthernetIP) или импульсным сигналом PTO с цифрового выхода контроллера. Регулятор движения реализуются в прошивки самих серво-преобразователей, а с контроллера лишь идет команда в какую позицию переместиться и с какой скоростью/ускорением/замедлением. Так как нагрузки имеют разные параметры, для того чтобы привод мог максимально эффективно управлять нагрузкой и точно ее позиционировать, на сервоприводах запускают режим автоподстройки к нагрузки, в этом режиме привод "дергает" нагрузку в разрешенных пределах(координат/скорости/ускорения) и вычисляет коэффициенты для регулятора движения в зависимости от момента инерции и других параметров.

Автор темы
IvanSheyko
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 10 май 2017, 14:57
Имя: Иван
Страна: Россия

ПИД какой выбрать и с чем его есть?

Сообщение IvanSheyko »

se_sib писал(а): 11 дек 2018, 11:50 Я так понял -10..10 это задание скорости, + едит вперед, - едит назад. Я не видел у Шнайдера библиотек с реализацией регулятора движения для таких систем
Да все верно, и верно то что если поставить новый сервак жизнь станет гораздо проще, однако, в программе нет вообще никакого реализатора? Черт с той нагрузкой это я рассчитаю и сам поставлю коэффициенты, нет ли блока который будет отвечать за перемещение в координатах. У меня работает мой, но, повторюсь, когда скорость меняешь в большую сторону начинаются перелеты, в меньшую то тормоз виден, и мое получается единственное решение было прописать свою систему торможения на каждые 10% скорости. Стало хорошо, клиент не видит, но я вижу что тормоза отрабатывают не так плавно как хотелось бы, позиционирование в 0.1-015 мм вышел, вполне устраивает.
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»