|
5 / 4 / 3
Регистрация: 22.11.2022
Сообщений: 146
|
||||||
PID регулятор инертной системы14.01.2026, 14:46. Показов 4498. Ответов 13
Здравствуйте.
ПЛК OWEN 160[02], CodeSys 2.3, ST Задача осуществить автоматическое смешивание для приготовления цементного раствора. Два дозатора, водяной и цементный, управляются пропорциональными клапанами фирмы Parker, управления 0..5 Вольта. Вызов программы 100 мсек Я сам написал ПИД (изобретаю велосипед), для управления этими дозаторами. Вода идет со скоростью 400 гал/мин, задача ПИД регулировать поток. ПИД выходит на уставку без проблем и держит любой заданный поток воды. Я решил, сделать по аналогии управления цементным дозатором. Но тут есть: Проблема № 1: время пока перемешается цемент и плотность увидит плотномер, занимает около 5 сек. То есть при уставке 12.5 ppg, реальной плотности 8.3 ppg(вода) интегратор накапливает такую ошибку, что просто прижимает дозатор к максимуму, из за чего происходит пересып цементом. Я сделал по другому, замораживаю интегратор пока не увижу реакцию системы и тут получаю проблему № 2 Проблема № 2: Я не нашел ответ как вообще осуществляется ПИД регулирования на инертных системах, наверно есть же что то похожее на ПИД регулировании температуры? Коллеги, не откажите, помогите советом от чего правильно оттолкнуться? На что обратить внимание, что я упускаю из вида?
0
|
||||||
| 14.01.2026, 14:46 | |
|
Ответы с готовыми решениями:
13
S7-300 Std PID Con LP_SCHED Не работает функциональный блок PID из стандартной библиотеки Util.lib
|
|
|
|
| 14.01.2026, 15:13 | |
|
Bodden, инертные системы, как правило, регулируются ПИ-регуляторами, т.е. без "Д" (дифф. составляющей).
Если же все-таки ПИД, то выкручивают коэффициенты так, чтобы Дифф-компонента работала только в самом начале процесса и со временем действия, кратным времени действия первичных переходных процессов. Поясню на примере регулятора температуры: Текущая t = 20 гр. Точка уставки = 100 гр. Включаем ПИД-регулятор. Регулятор видит, что разница большая и Дифф-компонента включает нагреватель на полную мощность. В вашем случае - это насып цемента, как я понимаю. При приближении к точке уставки и пропорционально скорости этого приближения - действие Дифф-компоненты уменьшается, а в некоторой зоне, определенной K/D коэффициентами и вовсе Дифф-составляющая выключается. Таким образом, осуществляется наиболее быстрый "подход" к заданной точке. Очевидно, что не во всех системах такое нужно, и в вашей в том числе. Поэтому, дифф-составляющую можно (нужно) исключить из процесса регулирования. А воздействовать на регулятор пропорционально-импульсно до некоторого порога (гистерезиса). Добавлено через 4 минуты В вашем случае, работа исполнительного механизма (Y) основывается на показаниях плотности плотномера. Поэтому следующее воздействие на регулирующий орган должно произойти импульсно и только после определения текущего замера. Это означает, что ИМ (Y) не должен работать, пока не придет новое значение плотности.
1
|
|
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 866
|
||
| 14.01.2026, 17:59 | ||
Чего там пид вообще делает.
0
|
||
|
5 / 4 / 3
Регистрация: 22.11.2022
Сообщений: 146
|
|||
| 14.01.2026, 19:34 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
Модератор
|
|
| 14.01.2026, 21:07 | |
|
Я бы попробовал варианты:
1 если параметры процесса (подача цемента и воды) - т.е. положения клапанов почти стабильны и сейчас и через год, то на этих значениях (вводимых с панели) и запускал бы процесс смешения, а через 5 секунд включал бы автоматическое регулирование По такому принципу включал дымосос и вентилятор котла, давал им по очереди разогнаться частотниками до заданных частот, пооткрывать шиберы, а потом только включал ПИД, который уже устранял небольшое рассогласование. Это было много лучше пусков сразу на автоматике. 2 для инерционных процессов выполнял пересчёт ПИД не через 100 мс, а через 1-5 с. Для поддержания уровня воды в паровом котле делал период пересчёта даже 15 с - лишь тогда можно было задействовать Тд, да и реакция на предыдущее воздействие становилась видна. Время пересчёта вводил с панели. По такому принципу работал ТРМ12 прежней версии (с новой работать не довелось).
3
|
|
|
|
||
| 15.01.2026, 21:21 | ||
|
Хороший ответ от ФедосеевПавел, в частности, пример с котлами.
На некоторых котлах, даже, можно как раз понять значение допустимости применения "Д" компоненты, например, в форсунках воздушного типа смешения. Воздушный поток для пламени в таких форсунках регулируется заслонкой, которая, в свою очередь управляется от некоего мотора с постоянной угловой скоростью перемещения исполнительного органа. В таких случаях становится ясно, что дифф-компонента в этом случае не играет никакой роли, т.к. не может усилить/ослабить скорость поворота заслонки. Здесь главным управляющим фактором становится именно Ti, т.е. интегральная составляющая - которая, на основании температуры, принимает решение о времени воздействия на заслонку - на сколько ее надо повернуть в текущий момент (продолжительность воздействия на Y). Знаю и по собственному опыту и по многочисленным статьям/ресурсам - во многих системах автоматического регулирования Дифф-составляющая не то что не помогает, а даже вредит общему процессу регулирования. Поэтому, нужно четко осознавать модель реального объекта регулирования, чтобы принять наиболее верное решение - каким регулятором управлять. Добавлено через 3 часа 17 минут Bodden, могу предложить вам следующее: 1. 2. На основании п.1 вы можете легко написать собственную функцию для одновременного регулирования обоих клапанов. Вам не нужны "стандартные" ПИД-регуляторы, имеющиеся в софте разработки. 3. Смешивание компонентов (примесей) для получения итогового состава, как правило, всегда основано на некоторых заранее известных пропорциях. Т.е. изначально ясно, сколько чего добавить, чтобы получилась смесь с нужными характеристиками (1:2, 1:3... и т.п.). Стало быть, в некоторый начальный период времени запуска установки, клапана Y1 (цемент) и Y2 (вода) открываются пропорционально текущей марке цемента и их соотношений для смешивания. Примем, что цемент бывает разных марок, а вода - типа всегда одна и та же. Хотя вряд ли это так на практике: в воде могут быть разного рода примеси, разный уровень кислотности (pH), разная жесткость и все такое, т.е. вода как-бы не всегда "одинаковая". Но для облегчения понимания допустим, что вода всегда одна и та же. Таким образом, где-то в настройках панели (HMI) либо какого-то ПК или еще чего - есть некоторые базовые коэффициенты смешивания частей для данной марки цемента. И именно они сперва начинают работать при пуске этой "бетономешалки". 4. Предположим, что для условно непрерывного процесса регулирования (почему условного - скажу позже) в начальный момент мы открыли клапана Y1 и Y2 (каждый в разной степени) для запуска процесса смешивания. Где-то на выходе "смесителя" плотномер дискретно измеряет текущую плотность полученного раствора. На основании замеров, регулятор должен что-то делать... И тут есть несколько вариантов, в зависимости от дисбаланса текущей плотности и ее уставки: а) прикрыть цемент; б) прикрыть воду; в) прикрыть цемент и приоткрыть воду; г) прикрыть воду и приоткрыть цемент. 5. Следствия п.4: 5.1 - варианты работы клапанов 4.В и 4.Г наиболее быстродействующие, чем варианты 4.А и 4.Б. 5.2 - в промежутках между замерами плотности - течение процесса становится фактически не управляемым (не контролируемым). С каждым следующим измерением плотномера воздействие на клапана являются лишь корректирующими, оценка степени влияния которых откладывается "на будущее" (след. замер от плотномера). 5.3 - из п.5.2 следует, что принцип регулирования является условно-непрерывным, т.к. вел-на воздействия на механизм определяется с дискретностью отсчета времени измерений плотномера (5 сек). 6. Влияние D-составляющей (дифф-компонента): В п.5 мы выяснили, что в связи с довольно большой дискретностью ответа системы (замеров плотномера, опоздание) процесс регулирования является условно-непрерывным, т.е. без мгновенного определения точки состояния установки. Включение дифф-составляющей в общую формулу регулятора внесет еще больший хаос в результат, способствуя тем самым значительным колебаниям (перерегулированию). Более того, наличие Дифф-компоненты предполагает, что заранее должны быть примерно известны пропускные способности клапанов цемента и воды, в зависимости от степени их открытия за определенное время. Это значительно усложняет формулу регулятора и, естественно, способы настройки системы в целом. 7. Если интересно, продолжение следует... Даже формулу регулятора можно вывести. Извиняюсь, отвлекают другие дела. Всех с Новым Годом и прошедшими праздниками!
2
|
||
|
5 / 4 / 3
Регистрация: 22.11.2022
Сообщений: 146
|
||
| 15.01.2026, 22:17 [ТС] | ||
|
Эти значения ПЛК принимает, но по факту на данный момент обрабатывается 4 (Минимальное и максимальное открытие цем и вод дозатора). Объясню почему, железо разное и момент старта разный, я пока не придумал как это использовать масштабируемо . Поясню чуть ниже в описании проблем с которыми столкнулся. Сам процесс выглядит следующим образом. Оператор забивает рецепты требуемые для работы С этого рецепта рассчитывается требуемый поток воды и начинается добавляться цемент, для выхода на нужную плотность. При смене рецепта, поток пересчитывается. Во время работы уставки плотности и расхода меняются При смене расхода, также происходит пересчет воды. Проблемы с которыми я столкнулся: 1. Транспортная задержка - но более менее, провел замеры. Реакция на воздействия примерно 5 сек 2. Инертность. Тут все печально. Зависит от многих факторов, как промешивается цемент, как он подается, ну и конечно химия, без нее ни куда. В некоторые составы добавляют кальций, плотность при замешивании может быть не предсказуемой. 3. Само оборудование, некоторое мешает за 10 оборотов лопасти, в некотором оператор домешивает черенком от лопаты(это не шутка). 4. Есть составы с бур раствором, там вообще ни каких рецептов нет. Подают бур раствор, подымается цементом до нужной плотности(буфер), модель выпадающая из общей концепции. Я примерно сделал саму общую модель(пока только примерно), то к чему пришел. Модель для 10 ppg. Модель грубая, работаю еще над ней, но проблема видна очень хорошо. При небольшом воздействии ПИД регулятором(зеленый), плотность (коричневый) - находиться в перерегулировании, подымаясь до 14.5 ppg. Это терпимо, так ка к плавно она возвращается к уставке, но если выставить 12.5 ppg, то соответственно взлет будет к 16. А это разные классы раствора, один легкий, другой тяжелый. Если уставка тяжелый, то последствия зацементированная линия подачи со всеми вытекающими последствиями. Я сделал фб для отслеживания тренда плотности, так же сделал фб для что бы замораживать интегрирующую составляющую, во время разгона. Благодаря вашей поддержке, хочу попробовать: 1. Убрать, отключить диф составляющую 2. Проработать концепцию старта с условной позиции дозатора. Что бы он не с 0 подымал, а с 40% + ожидание реакции 3. Пересмотреть работу P и I компонентов.
0
|
||
|
|
|
| 15.01.2026, 22:42 | |
|
Bodden, примерно понимаю ситуацию. Ну и на приведенном графике явно прослеживается запаздывание регулятора, т.е. те вещи, про которые я говорил выше.
Отмечу, что свои выкладки я привожу в общем 'теоретическом' смысле, т.к. нет понимания реального процесса работы устройств. Даже вот пропорциональные клапана: они могут работать как в непрерывном режиме (постоянно меняя площадь пропускного сечения), так и в импульсном (открываясь на столько-то). Но во втором варианте вводится постоянная времени этого открытия. В двух словах, это значит следующее: проще просто открыть клапан "на полную" в течение какого-то периода, чем вычислять зависимость времени открытия от нужной (расчетной) площади открытого сечения. Ну чисто математически (и, разумеется, будущей нагрузки на CPU контроллера ПИД-регулятора). Иными словами, как в той рекламе: "Зачем платить больше, если нет разницы?".
1
|
|
|
Модератор
|
|
| 15.01.2026, 23:00 | |
|
Можно при включении автоматического управления задание (уставку) давать не скачком, а с плавным линейным нарастанием от текущего измеренного значения - это снизит перерегулирование.
Тогда, может быть, и начальная позиция клапана будет не нужна, или всё вместе даст значительное улучшение. Перебором можно попробовать найти подходящее решение...
1
|
|
|
|
|
| 15.01.2026, 23:14 | |
|
Весь прикол в том, что мы не знаем что происходит в системе n-ное кол-во времени. Особенно на страте: сколько открыть цементу и сколько воды... В теории, конечно, можно абы-как, а там регулятор типа "вывезет"... Но это не профессиональный подход.
Добавлено через 6 минут Ну и если учесть тот факт, что СУ получается двух-контурная и одно-направленная. Насыпанный цемент в резервуар обратно не вычерпаешь, если пересыпали.. То же и про воду.. Т.е. эти два компонента являются взаимо-регулирующими. А это означает, что при некоторых обстоятельствах, когда обе части не особо контролируются, можно выйти на предел объема бака, в котором все это смешивается... Так и не достигнув желаемой композиции...
1
|
|
|
5 / 4 / 3
Регистрация: 22.11.2022
Сообщений: 146
|
||
| 15.01.2026, 23:22 [ТС] | ||
|
У меня есть в функционале HMI, логирование работ в ручном режиме. Можно попробовать про анализировать действия оператора и сделать какие нибудь выводы.
0
|
||
|
|
||
| 15.01.2026, 23:31 | ||
|
Регулятор должен работать только по задаче, опираясь на текущие настройки. Он не должен, условно, ориентироваться на некоего Петрова - Сидорова.
0
|
||
|
5 / 4 / 3
Регистрация: 22.11.2022
Сообщений: 146
|
||
| 15.01.2026, 23:35 [ТС] | ||
|
0
|
||
|
|
||
| 15.01.2026, 23:49 | ||
|
Далее, когда он прислал эти данные, вы (ну не вы лично, а регулятор) должен сделать следующее: - рассчитать дельту (ошибку) - на основании дельты рассчитать импульс реакции (длительность/площадь открытия клапана(ов)) - выдать эту реакцию на ИМ (исполнительный механизм). - ждать... нового измерения плотномера. Добавлено через 4 минуты В вашей системе есть задержка (запаздывание) ответа от точки управления. Она, как правило, инертная, но в большинстве случаев довольно близко предсказуемая. Это и есть коэффициенты T/I. При правильном их подборе, регулятор будет "чувствовать" на сколько что открыть/закрыть, чтобы достичь нужной цели. Быстрота этих реакций называется качеством регулирования.
0
|
||
| 15.01.2026, 23:49 | |
|
Помогаю со студенческими работами здесь
14
ПИД-регулятор Не работает ПИ-регулятор в TwidoSuite Simulator ПИД-регулятор в цепи отрицательной обратной связи Пропорциональный регулятор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|