PDA

Просмотр полной версии : ПИД регулятор



Страницы : 1 2 [3]

FPavel
24.03.2024, 08:18
74645
Не хочет моргать. На F_TRIG приходит , на выходе нуль.

В комментариях к ФБ есть строки

Блоки из овеновских библиотек работают только на ОВЕН ПЛК,
т.к. реализация кода зашита в сам контроллер.
Поэтому в эмуляции работать ничего не будет.
Что они означают?

1exan
24.03.2024, 09:03
Типа, на ПИД параметр 70, уставка 50, а на выходе нуль. Попробую найти адекватный ПИД. И к тому же нужно не только открывать арматуру, но и закрывать. Нужно прикрутить еще лабуду.
74646

А сколько по вашему должно быть на выходе, если уставка 50, текущее 70, а диапазон выхода 0...100 (кстати почему 100 - написано же в блоке преобразования, что вход 0...1)

Игорь Владиславович
24.03.2024, 11:54
Выслал. На что будет ругаться - закомментируйте, это отладочная информация

Пока ругаться не на что. Менял уставку, параметр, Setpoint. Никакой реакции на выходах. Непонятно, как использовать этот ФБ. Это не ПИД регулятор, и не ШИМ. Если бы был один единственный вход разбаланса от ПИД регулятора, и два выхода (больше, меньше), тогда было бы понятно. Если на входе меньше нуля, нужно ОТК, если больше нуля нужно ЗАКР. И чтобы скважность и длительность импульсов была пропорциональна величине разбаланса. Пример: на входе -1.0 значит импульс 0.2 сек скважность 10 сек. на выходе ОТКР. Если на входе -10.0, тогда импульс 2 сек, скважность 8 сек. Если на входе -50, тогда импульс выход ОТКР вообще не гаснет. И тоже самое для +1...+50 только для сигнала ЗАКР.
Вы конечно мне можете посоветовать самому написать алгоритм. Но я только три недели в теме, потому что на больничном. и когда выйду на работу, мне нужно будет сделать главному инженеру техническое решение на реконструкцию автоматики одному из шести котлоагрегатов. Там 14 регуляторов. Хорошие регуляторы у ЗЭИМ на ПЛК, но они дорогие, и с закрытым доступом к программированию.
Если я эту проблему не решу в оставшиеся две недели, то ухожу с этой темы.
74650

Игорь Владиславович
25.03.2024, 11:17
У меня вопрос.
PV_TIME:WORD; (* Время получения входной величины - отсчитывается в долях секунды и берется из UNIVERSAL Sensor/ Circular time*)
Можно подробней описать?

kondor3000
25.03.2024, 13:17
У меня вопрос.
PV_TIME:WORD; (* Время получения входной величины - отсчитывается в долях секунды и берется из UNIVERSAL Sensor/ Circular time*)
Можно подробней описать?

Для каждого аналогового канала измерений, есть второй канал циклическое время, считается от 0 до 65535, изменяется примерно каждые 0,1 сек на 10.74683 И сначала по кругу
На скрине один из каналов модуля МВ110-8АС
Аналог можно сделать на Блинке (входы времени по 50 мс) со счётчиком, с выхода *10 и подать на вход ПИД.74684 Работа 74685

А здесь ещё один самописный ПИД с АВТОНАСТРОЙКОЙ https://owen.ru/forum/showthread.php?t=17728&page=9&p=431508#post431508

Игорь Владиславович
25.03.2024, 17:06
Значит в режиме симуляции невозможно опробовать.
Чтобы выбрать коньяк, нужно знать его вкус. А чтобы знать какой вкус, нужно купить бутылку.
Боюсь, что главный инженер будет не согласен.

kondor3000
25.03.2024, 17:23
Значит в режиме симуляции невозможно опробовать.
Чтобы выбрать коньяк, нужно знать его вкус. А чтобы знать какой вкус, нужно купить бутылку.
Боюсь, что главный инженер будет не согласен.

Вы хоть прочитали, что вам написал? Похоже что нет. Даже схему аналога нарисовал и 2 скрина приложил.

Игорь Владиславович
26.03.2024, 13:35
Конечно читал, прикрутил ко входу PV_TIME. Нечего не получилось. Прошел по ссылке, где и прочитал "Программа предназначена для работы с ПЛК110.60 работающий совместно с аналоговым модулем МВ110-224.8А (использован один канал).
К сожалению в режиме симуляции работать не будет. Почему?
Дело в том что для корректной работы ПИД нужно знать время между измерениями, которое в свою очередь "берется" из модуля МВ110-224.8А."
Но сегодня, глядя на Ваш скрин, замутил регулятор по совету тети Вали. Он называется "нечеткая логика". Прикольно, но он работает.
74719
Тетя Валя смотрит разницу PV и SP (0) и через 20 сек смотрит динамику (2,3).
Длительность импульса и паузу она прикидывает (4-10) Ну и в зависимости от знака разбаланса дает открытие, или закрытие. А вот нужно ли открывать (закрывать), ей подсказывает (12,14), чтобы не перерулить при хорошей динамике.
ФБ SIGN мною прикручен. Он по знаку INP переключает вход на выход OP или DN.

kondor3000
26.03.2024, 13:41
Конечно читал, прикрутил ко входу PV_TIME. Нечего не получилось. Прошел по ссылке, где и прочитал "Программа предназначена для работы с ПЛК110.60 работающий совместно с аналоговым модулем МВ110-224.8А (использован один канал).


Не знаю, какой ПИД у вас, все ПИД из библиотек со входом времени и даже из ссылки которую выложил, работают с моим аналогом на Блинке в симуляторе. Естественно температуру надо менять вручную.
Ваш блок, который на скрине, даже повторить нельзя, там несколько не известных блоков стоит.

SeR681
21.06.2024, 21:52
Помогите пожалуйста решить задачу, очень нужно. 767907679176792

In_Da_Cher_A
22.06.2024, 00:25
то есть даже лень самому написать, тупо картинку вставляем?
это не задача, это курсовик как минимум,
и даже за деньги вероятно никто делать не хочет
потому как тупо бродим по интернету по тупому запросу ПИД регулятор
а на бесплатных форумах за вас никто делать ничего не будет
с лабораторкой в другой теме тоже не прокатило?
попадос однако

SeR681
22.06.2024, 10:14
Спасибо за ответ. Всегда приятно общаться с отзывчивыми и понимающими людьми. За меня делать работу не надо, а вот от помощи в объяснении не отказался бы.

In_Da_Cher_A
22.06.2024, 10:53
вообще-то "просьба" звучала так - "помогите решить задачу"
и ничего более
в адекватном мире это понимается так - я хочу, чтобы вы начали думать за меня и сделали всё за меня.
объяснить что? основы информатики, азов булевой логики, языков программирования, что такое таблица истинности и так далее и тп,
судя по соседней теме, где вы просите сделать за вас лабораторку, в которой надо как раз на базе примитивов сделать мультиплексор сумматор компратор и прочие элементарные блоки
это азы, это начальная школа, и вам это надо объяснить?
это всё то, что за последний год минимум, а то и за два - вы проигнорировали и решили, что вам это не пригодится в жизни и решили потратить своё время на что-то более для вас полезное
а теперь внезапно за два дня до зачёта сессии вы бросились учится и решили, что кто-то будет тратить своё время, чтобы сделать за вас, ибо судя по тому, что вы запостили - вы ничего не знаете и не умеете
и самое смешное - в наше время - даже не предлагать денег, за то, чтобы за тебя работали или учились, а просто давить на жалость?
это даже не смешно, это типа LOL
вот как-то вот так это выглядит со стороны
удачи студент

EFrol
22.06.2024, 10:54
К сожалению, на этом форуме так принято! Будут глумиться все! Чаще те, кто сам мало знает и когда-то тоже попал под пресс дедовщины. А тех, кто начнет помогать, смешают с грязью. Возможно начнут помогать после сессии, когда убедятся, что Вы действительно хотите разобраться. И первые вопросы будут звучать так:
1. Что такое модель объекта? В каком виде эта модель должна существовать?
2. В каком виде должен существовать блок ШИМ?
3. В каком виде должна существовать мнемосхема?

Так как здесь в основном обсуждается оборудование и ПО от Овен, то именно оно и будет предложено в качестве основы для реализации Вашей задачи в железе.
Здесь собираются в основном практики, которые мыслят на уровне языков МЭК61131-3 (https://ru.wikipedia.org/wiki/IEC_61131-3) и оперируют такими понятиями как: ПЛК, ПР, СП (панель оператора), ТРМ, принципиальная электрическая схема, прошивка, owl-проект, txp-проект, CDS-проект и т.д.

Newcomer
22.06.2024, 11:13
Спасибо за ответ. Всегда приятно общаться с отзывчивыми и понимающими людьми. За меня делать работу не надо, а вот от помощи в объяснении не отказался бы.

Проверь личную почту, там вероятно куча предложений.;)

Alex_NN
25.07.2024, 13:36
Добрый день.
Прошу помощи.
С Овеном в части ПИД-регулятора сталкиваюсь первый раз. Да и вообще раньше плотно сидел на Сименсе.
Проблема такая.
Есть система управления на ПЛК160 и СП315.
В системе нужно регулировать расход жидкости (несколько контуров). Делается это с использованием частотников, расходомеров и аналоговых входов/выходов ПЛК.
В ПЛК использую ПИД-регулятор из библиотеки Util. Крутится в цикле 100 мс.
Не получается настроить регулятор.
Правда раньше никогда сам не настраивал, у Сименса - автонастройка.
77579
77580
Такое ощущение, что регулятор не работает.
Возможно я что-то делаю не так.
Объект реальный, поэтому прошу еще раз помочь.

kondor3000
25.07.2024, 13:59
Добрый день.
Прошу помощи.
С Овеном в части ПИД-регулятора сталкиваюсь первый раз. Да и вообще раньше плотно сидел на Сименсе.
Такое ощущение, что регулятор не работает.
Возможно я что-то делаю не так.
Объект реальный, поэтому прошу еще раз помочь.

А что вас смущает?
На фото у вас уставка 4480, а на входе 1.125, до уставки как до луны, естественно выход на максимуме, у вас это 20.

Dimensy
25.07.2024, 15:32
Добрый день.
Прошу помощи.
С Овеном в части ПИД-регулятора сталкиваюсь первый раз. Да и вообще раньше плотно сидел на Сименсе.
Проблема такая.
Есть система управления на ПЛК160 и СП315.
В системе нужно регулировать расход жидкости (несколько контуров). Делается это с использованием частотников, расходомеров и аналоговых входов/выходов ПЛК.
В ПЛК использую ПИД-регулятор из библиотеки Util. Крутится в цикле 100 мс.
Не получается настроить регулятор.
Правда раньше никогда сам не настраивал, у Сименса - автонастройка.
Такое ощущение, что регулятор не работает.
Возможно я что-то делаю не так.
Объект реальный, поэтому прошу еще раз помочь.

А как вы так посчитали коэффициент Кр = 1,503125? Аж до 6-го знака. И, что-то меня смущает - при мощности в 20% у вас производительность 1,125 при уставке 4480. По моему, вы при 100% вряд ли уставку достигнете

Alex_NN
25.07.2024, 15:39
А что вас смущает?
На фото у вас уставка 4480, а на входе 1.125, до уставки как до луны, естественно выход на максимуме, у вас это 20.

О, да, спасибо.
Нужно уставку и обратную связь привести, видимо, к диапазону 0...100. Кстати, почему же об этом ни слова в мануале?

И попутно еще один вопрос. Почему на панели я задал 4500, а до ПЛК "дошло" 4480? И так происходит именно с переменными float.
И с коэффициентами та же беда...

kondor3000
25.07.2024, 17:49
О, да, спасибо.
Нужно уставку и обратную связь привести, видимо, к диапазону 0...100. Кстати, почему же об этом ни слова в мануале?

И попутно еще один вопрос. Почему на панели я задал 4500, а до ПЛК "дошло" 4480? И так происходит именно с переменными float.
И с коэффициентами та же беда...

Не обязательно 0..100, можно 0..1, 1000 и 6000 сделать. Главное чтобы вход мог достигать уставки и даже выше, за какое-то время.
Для этого и подбираются коэффициенты.

Переменные REAL в ПЛК слейве, должны быть с чётными адресами, типа 0,2,4,6. В панели (мастер), в настройках дисплея, должны стоять тип DWORD, формат FLOAT, а для правильного отображения, возможно понадобится переставить регистры (снять или поставить галку) Перестановка регистров, в настройках панели.

Alex_NN
29.07.2024, 14:30
Не обязательно 0..100, можно 0..1, 1000 и 6000 сделать. Главное чтобы вход мог достигать уставки и даже выше, за какое-то время.
Для этого и подбираются коэффициенты.

Фото сделано на остановленном оборудовании. В процессе вход легко достигает уставки, но система не настраивается.
В общем, привел сигналы к диапазону 0...100 и удалось настроить систему. Вот только коэффициенты все оказались сильно меньше единицы: десятые, сотые и даже тысячные величины.
Причем приводил и к другим диапазонам 0...1, 0...10, а коэффициенты те же. Вот только в диапазоне 0...10000 система не настраивается, возможно уже коэффициенты нужны в диапазоне одна миллионная... Не стал пробовать.
В общем, при отсутствии нормальных мануалов нужно брать на наладку еще и бубен)

RV9WFJ
30.07.2024, 05:52
Нежелательно PID в каждом цикле PLC вызывать. У вас вместо изменения обратной связи на вход шумы начинают приходить. Могу в личку свой pid скинуть, собранный на основе того что вы используете. Там дополнительно на вход подается время измерения с аналогового модуля. И еще, я конечно ваш техпроцесс не знаю, но вам не кажется, что И=4 и Д=1 Это слишком маленькие значения??? Вот у вас и качает систему.

Alex_NN
30.07.2024, 14:35
Нежелательно PID в каждом цикле PLC вызывать. У вас вместо изменения обратной связи на вход шумы начинают приходить. Могу в личку свой pid скинуть, собранный на основе того что вы используете. Там дополнительно на вход подается время измерения с аналогового модуля. И еще, я конечно ваш техпроцесс не знаю, но вам не кажется, что И=4 и Д=1 Это слишком маленькие значения??? Вот у вас и качает систему.

ПИД у меня вызывается каждые 100 мс. Выше я писал, что удалось настроить ПИД с коэффициентами гораздо меньше единицы К=0,004, ТИ=0,125, ТД=0,02.
Меня такие величины удивили, но при них процесс расхода выходит на уставку за 10 секунд, и это всех устраивает.
Еще раз. Нет подробной информации по регулятору и это очень грустно. У Сименса описание ПИД-регулятора страницы на четыре. И все понятно.

RV9WFJ
31.07.2024, 05:12
А тут его можно просто открыть и посмотреть что под капотом. Т.е. внутри ФБ.

LogikASUTP
04.06.2025, 22:15
коллеги добрый вечер

помогите подключить пид регулятор с автонастройкой "(PID_2POS_IM_ANR)"

непойму где взять модуль UNIVERSAL Sensor что бы подключить к входу пида "PV_TIME" ну или как это лучше сделать?

и вот этот вход не совсем понятен "YDOP"
максимальные колебания при автонастройке это как, допустим мой регулятор создаёт давление, и камера может выдержать максимум 20 bar мне указывать эту величину? это про это?

kondor3000
04.06.2025, 22:23
коллеги добрый вечер

помогите подключить пид регулятор с автонастройкой "(PID_2POS_IM_ANR)"

непойму где взять модуль UNIVERSAL Sensor что бы подключить к входу пида "PV_TIME" ну или как это лучше сделать?

и вот этот вход не совсем понятен "YDOP"
максимальные колебания при автонастройке это как, допустим мой регулятор создаёт давление, и камера может выдержать максимум 20 bar мне указывать эту величину? это про это?

PV_TIME это целое число WORD кратное 10 ms, передаётся одновременно с аналоговым входом, циклически набирается до 65535 , обнуляется и снова набирается.
Берётся с аналоговых модулей или входов на ПЛК.

LogikASUTP
04.06.2025, 22:45
PV_TIME это целое число WORD кратное 10 ms, передаётся одновременно с аналоговым входом, циклически набирается до 65535 , обнуляется и снова набирается.
Берётся с аналоговых модулей или входов на ПЛК.

84176

на скрине аналоговый вход данные с которого пойдут на уставку пида, скажите как отсюда взять PV_TIME?

1exan
05.06.2025, 04:37
84176

на скрине аналоговый вход данные с которого пойдут на уставку пида, скажите как отсюда взять PV_TIME?

Значение последней переменной в разделе "Fast analog inputs" не подходит?

LogikASUTP
05.06.2025, 05:44
Значение последней переменной в разделе "Fast analog inputs" не подходит?

пока не знаю, сегодня попробую.
Спасибо Вам за ответ

LogikASUTP
05.06.2025, 05:48
Подскажите где найти модуль UNIVERSAL_sensor?

1exan
05.06.2025, 06:16
Подскажите где найти модуль UNIVERSAL_sensor?

А для чего он вам?

Nadav2
29.07.2025, 06:42
Простой и понятный, как калаш.

Павел Поротников
08.08.2025, 10:04
Добрый день!
Может пишу не сюда, может кто сориентирует куда написать?
Вопрос о библиотеке PID_REG_CE, при попытке открытия просит пароль.
Как его можно получить?
Вообще интересует "pi_reg_ce_original".

petera
08.08.2025, 10:22
Добрый день!
Может пишу не сюда, может кто сориентирует куда написать?
Вопрос о библиотеке PID_REG_CE, при попытке открытия просит пароль.
Как его можно получить?
Вообще интересует "pi_reg_ce_original".

Наверно обратиться к автору CEkip https://owen.ru/forum/member.php?u=1089

Павел Поротников
08.08.2025, 10:27
Я ему уже написал. Он сказал, что не пользуется уже этим регулятором. Сказал обратиться к Евгению Кислову. У Евгения количество личных сообщений переполнено и я не могу ему написать.

petera
08.08.2025, 10:30
Я ему уже написал. Он сказал, что не пользуется уже этим регулятором. Сказал обратиться к Евгению Кислову. У Евгения количество личных сообщений переполнено и я не могу ему написать.

Есть телеграм и почта
telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru

Павел Поротников
08.08.2025, 10:40
Благодарю!

Павел Поротников
08.08.2025, 11:57
Ещё раз здравствуйте. Ни кто не знает где взять этот регулятор (pi_reg_ce_original)? 85253
В примерах он фигурирует, а ссылки никакой не могу найти.

petera
08.08.2025, 12:20
Ещё раз здравствуйте. Ни кто не знает где взять этот регулятор (pi_reg_ce_original)? 85253
В примерах он фигурирует, а ссылки никакой не могу найти.
Какой-то есть, по картинкам совпадает
85256

85257

Павел Поротников
08.08.2025, 13:07
Большое спасибо!

FAS_Device
12.09.2026, 20:47
Всем привет. Для задвижек типа открыть/закрыть/стоп юзаю такой код. На объекте работает отлично уже 2-ую неделю. Как работает, когда с пид регулятора идет значение к примеру 100% то на выходе идут импульсы на открытие с определенным периодом и длительностью, далее когда сигнал становиться 99% то подается импульс на закрытие 1 раз и импульсы прекращаются. Как только сигнал станет 98% то импульс на закрытие появится еще 1 раз и потом прекратится. Если сигнал поменяется резко к примеру до 95% , то длительность импульса на закрытие увеличится пропорционально этому сигналу. Если поменяется направление в сторону открытия то есть с пид регулятора 96% то придет импульс на открытие, и длительность импульса будет зависеть от скорости изменения сигнала с пид регулятора.

FPavel
12.09.2026, 20:57
Попробуйте другой алгоритм - отвязаться от аналогового ПИД с выходом 0-100% и сделать на основе двух независимых процессов (наполнение по ПИД закону, опустошение пропорционально перемещению задвижки).
Проблема Вашего алгоритма - насыщение в 0% и в 100% расчётного значения выхода.

Для другого контроллера (Овен ПР200) делал так, как описал здесь
https://owen.ru/forum/showthread.php?t=25068&p=430251&viewfull=1#post430251

Надеюсь, алгоритм описал достаточно. Если будут вопросы - спрашивайте.

FAS_Device
12.09.2026, 21:07
Ну если пид регулятор вышел в крайнее положение это уже говорит о том что система регулирования вышла за пределы нормальной работы? А в моем случае если и произошло запаздывание при регулировании до крайних положений, он все равно дойдет до рабочей точки и тогда пид регулятор выйдет в рабочий режим.

FPavel
12.09.2026, 21:20
Нет, не так.

Дело в том, что чаще всего задвижки больше-меньше неравномерные на открытие и закрытие, что приводит к тому, что расчётное значение позиции (выход ПИД) постепенно смещается относительно реальной позиции задвижки. Результат - насыщение регулятора и временная потеря управления.
Это не выдумка - неоднократно сталкивался с этим.

Здесь смоделировал такое поведение, только на другом контроллере - ПР200.
https://owen.ru/forum/showthread.php?t=25067&p=474213&viewfull=1#post474213

Сергей0308
13.09.2026, 01:26
Нет, не так.

Дело в том, что чаще всего задвижки больше-меньше неравномерные на открытие и закрытие, что приводит к тому, что расчётное значение позиции (выход ПИД) постепенно смещается относительно реальной позиции задвижки. Результат - насыщение регулятора и временная потеря управления.
Это не выдумка - неоднократно сталкивался с этим.

Здесь смоделировал такое поведение, только на другом контроллере - ПР200.
https://owen.ru/forum/showthread.php?t=25067&p=474213&viewfull=1#post474213

Вот видите, Вы же сами признали несостоятельность вашего алгоритма, регулирующий клапан вообще здесь ни при чём(не виноват), в смысле, уберите привязку к положению ИМ, столько об этом было сказано в разных темах, в смысле, боюсь это положение и не требуется для данной задачи или поставьте датчик положения, тогда положение будет всегда известно, если Вы уже без положения по другому не можете!
К тому же на электроприводах ИМ обычно имеется и ручная крутилочка, если кто ей воспользуется, то это сразу приведёт ваше детище в неработоспособное состояние, это же неприемлемо, мне так кажется!

FPavel
13.09.2026, 15:02
Для тех, кому не спится в ночь с субботы на воскресенье, поясню, о чём два моих предыдущих сообщения.

1. объяснил ошибки и предложил другой алгоритм без эффекта насыщения-ограничения, привёл ссылку на подробное описание
2. возразил форумчанину, предположившему корректность собственного (НЕ моего!) алгоритма с насыщением выхода при 0% и 100%, объяснил причины, привёл ссылку на более подробные объяснения и моделирование работы этого алгоритма с насыщением (НЕ моего!), демонстрирующего потерю управления объектом

Не настаиваю на идеальности предложенного алгоритма и вполне способен принять критику.

А также, весь форум замер в ожидании описания корректного алгоритма ПИД регулятора для КЗР, с разбором отличий в лучшую сторону от предложенных выше. Именно так я и поступил - объяснил ошибки и предложил решение. А Вам слабо?

FAS_Device
13.09.2026, 17:37
предложил другой алгоритм без эффекта насыщения-ограничения, привёл ссылку на подробное описание Ну я там нашел только непонятный для меня симулятор который тяжело работает на моем ноуте. Сам код я так и не нашел который преобразует выходные значения пид-регулятора в дискретный сигнал открыть\закрыть\стоп который я могу проверить на любом железе и провести на реальном объекте испытания между своим и вашим кодом. Если вы использовали другой алгоритм пид-регулятора (как раз по ссылке там и описано другая работа) то у нас совсем разные варианты решения проблемы.

Валенок
13.09.2026, 17:38
to FPavel
У FAS_Device основная мысль - это разница между старыми и новым входом от ПИДа. Этого достаточно. Варианты могут быть только по реализации.

что расчётное значение позиции (выход ПИД) постепенно смещается относительно реальной позиции задвижки
Зачем расчитывать какое-то положение? Если вам в душевой ошпарило спину вы будете рассчитывать новое положение или просто довернете кран в нужную сторону от текущей точки?

Результат - насыщение регулятора
Какие насыщения? У приводов которым необходимо это учитывать есть или обр.связь в виде положения или хотя бы концевики крайних точек. Приводам у которых прямого требования нет - по-барабану "насыщение".

и временная потеря управления.
Откуда? Любой текущий импульс можно прервать при смене знака разницы. А параметр "время полной ротации" тоже не внезапен и есть в доках на привод чтоб хоть когда-то выключить close/open если прям приспичило.



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

... На объекте работает отлично уже 2-ую неделю...


А cлабо что? Сделать несложный преобразователь PID.Y -> 3-поз не моделируя текущее положение?

FPavel
13.09.2026, 19:54
А cлабо что? Сделать несложный преобразователь PID.Y -> 3-поз не моделируя текущее положение?
Это реплика к Сергей0308, который как-то странно воспринимает текст. Мои пояснения о неполной корректности алгоритма FAS_Device почему-то превратил в самокритику предлагаемого мной же алгоритма.


to FPavel
У FAS_Device основная мысль - это разница между старыми и новым входом от ПИДа. Этого достаточно. Варианты могут быть только по реализации.


Ну я там нашел только непонятный для меня симулятор который тяжело работает на моем ноуте.

Мне постоянно хочется пересмотреть собственные решения, довести их до совершенства.
Поэтому и предложил рассмотреть другой подход к алгоритму ПИД для КЗР.

Прошу прощения, если вызвал этим негодование. Наверное, лучше остановиться.

Валенок
13.09.2026, 21:20
Причем тут негодование? FAS_Device сделал. У него работает. Если хотите - покажите условия при которых оно упадет.
Если условий нет - зачем говорить что есть ошибки
Если есть - FAS_Device исправит


алгоритму ПИД для КЗР.
FAS_Device решил сделать не ПИД для КЗР, а прокладку между обычным автономным ПИДом и КЗР. Без моделирования расчетного положения. Нормальное решение.
Релиз мне тоже не нравится, но особо не изучал (мельком). Но исходная постанова - рабочая.

--
От ПИДа есть вход 0..100
Выходные Do: Close, Open (видимо реле)
Если вход именно 0 или 100 - то рулить соотв. Do наглухо ..
.. но могут быть концевики, для "наглухо - наступило"
.. или по максиму ротации (у привода есть полное время вращения)
Импульс для Do зависит от расхождения входа и его старого состояния.
Для Do есть минимальное время импульса (реле же)
После завершения импульса нужна пауза
Стартовое положение неизвестно
Привод могут повернуть руками в любой момент

Есть еще вводные?
Можно скормить жпт/алисе - но как по мне, это типа таблицу умножения гуглить.

Сергей0308
14.09.2026, 01:08
Так мне ничего и придумывать не надо, вот когда то давно придумал, для своих задач:

90335

Кстати всё работало вполне приемлемо, в смысле, лучше на порядок чем другие делали на полноценном ПЛК, из больших плюсов для меня, то что я его сам делал и знаю как настраивать, в смысле, какая будет реакция при изменении того или иного параметра в ту или иную сторону. На совершенство совсем не претендую, кстати, в последствии много раз совершенствовал алгоритм для удобства, хотел даже сделать зависимость периода следования импульсов управления и их ширины от скорости изменения регулируемого параметра, в последствии всё кардинально переделал, короче, критикуйте сколько хотите, только без фанатизма!

FAS_Device
14.09.2026, 21:36
Есть одна мысль как переделать свой код, но тогда придется лезть в саму формулу ПИД и тогда КЗР будет завязан с ПИД-ом. FPavel Не могли бы подсказать, по вашему регулятору. Настраивается ли пауза между импульсами? Я пробовал запускать симуляцию он сразу начинает давать постоянный сигнал, только потом появляется прерывистый сигнал. Или так задумано?

FPavel
14.09.2026, 22:04
Есть одна мысль как переделать свой код, но тогда придется лезть в саму формулу ПИД и тогда КЗР будет завязан с ПИД-ом. FPavel Не могли бы подсказать, по вашему регулятору. Настраивается ли пауза между импульсами? Я пробовал запускать симуляцию он сразу начинает давать постоянный сигнал, только потом появляется прерывистый сигнал. Или так задумано?
Пауза между импульсами не настраивается, потому что импульсы как самоцель не формируются.

Действует два независимых процесса - один по ПИД (вернее, по ПИ) закону "заряжает" переменную, а другой процесс "разряжает" её путём перемещения клапана. Если переменная "разряжена", то импульс прекращается до нового накопления "заряда". Правда, есть временной параметр "период пересчёта ПИД регулятора" - он влияет на периодичность "заряда" переменной, а значит и на период между импульсами.

При включении регулирования имеется рассогласование (невязка). Значение выхода ПИД регулятора сразу после включения равно E*Кп+Е/Ти, т.е. за счёт огромного рассогласования и пропорциональной составляющей формируется большой импульс. В дальнейшем, вычисление выхода регулятора получается по итеративной формуле не с самим значением невязки, а с её приращением dE, т.е. Y(i)=Y(i-1)+dE*Кп+E/Ти
Вот это приращение выхода регулятора и проявляется как импульсы.
Т.е. самый первый долгий импульс в основном за счёт Кп, а дальнейшие короткие импульсы - за счёт Ти.
На формирование импульсов ещё влияет параметр "минимальное время импульса" - если накопленный "заряд" даст перемещение меньше этого времени, то импульс не формируется, выполняется ожидание накопления "заряда" до этой минимальной величины.

На лабораторках по локальной автоматике так вёл себя знаменитый Р25 - к выходу подключался секундомер, подавалось неизменное рассогласование и можно было наблюдать-замерять и первый длинный и последующие короткие. Короткие соответствовали минимальному импульсу.

Минимальный импульс подбирается по состоянию привода и промежуточных реле - чтобы импульса хватило на хоть какое-нибудь перемещение. Обычно минимальный импульс составляет от 200 до 500 мс.

В общем, формулу ПИД дифференцирую и вычисляю по так называемой формуле ПИДД. А после подачи на клапан выполняется интегрирование и восстановление формулы ПИД.

Да, на период и длительность импульсов влияют два параметра:
- период пересчёта регулятора
- минимальная длительность импульса

FAS_Device
14.09.2026, 22:51
Р25... Да... есть такой. Сегодня как раз читал про его работу. Спасибо за подробную информацию. Будем переваривать.