PDA

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



Стас(Ижевск)
14.07.2014, 16:27
Подскажите где можно взять ПИД регулятор для СПК207 на клапан
управления с помощью дискретных выходов БОЛЬШЕ/МЕНЬШЕ или
как его реализовать. Позиционера на клапане тоже нет.
Может у кого есть реализация этого ПИД?

serg20000
22.09.2014, 23:38
У меня такая же проблема. Нужна реализация выложенного на форуме регулятора PID_PWM_CE (в виде библиотеки версии CDSv2) для CDSv3. Конвертировать не получается - запрашивается пароль. С другими вариантами регуляторов, выложенными на форуме, та же ситуация. Поделитесь, пожалуйста! Может, как вариант, есть отдельно модуль ШИМ для CDSv3? Пробовал библиотеку OSCAT: "прикрутить" модуль PWM к ПИД-регулятору из Util.lib CDSv3 можно, но не очень понятно, как одной выходной переменной данного модуля можно управлять двумя дискретными выходами контроллера (Больше и Меньше)...

AVF
23.09.2014, 09:30
А ручками собрать свой ПИД?

ASo
23.09.2014, 11:24
Именно самому и в дифференциальном виде.

Малышев Олег
25.09.2014, 14:24
Задвижка как правило отлично рулится через ПИ-регулятор. -Д вообщем то не нужен.

Выход регулятора - скорость движения задвижки.

Условно говоря - выход =+100% = все время включен больше, выход=-100% = все время включен меньше. ШИМ рекомендую подбирать по задвижке. Там есть мин вр. вкл, мин вр. выкл.

P.S.
Для задвижки плохо что нет зоны не чувствительности.
Я брал стандантный ПИД и добавлял DB. Если ABS(невязка) < DB невязка = 0

Ефремов Николай
06.11.2014, 05:06
Задвижка как правило отлично рулится через ПИ-регулятор. -Д вообщем то не нужен.

Выход регулятора - скорость движения задвижки.

Условно говоря - выход =+100% = все время включен больше, выход=-100% = все время включен меньше. ШИМ рекомендую подбирать по задвижке. Там есть мин вр. вкл, мин вр. выкл.


ШИМ и ПИД-регулятор вещи несовместимые, если говорить о задвижках и клапанах с электроприводом. Задача регулятора найти устойчивое положение системы регулирования. ШИМом Вы всегда будете плясать вокруг устойчивого положения, иными словами сокращать ресурс органа регулирования. Выход регулятора-это смещение положения регулирующего органа (в случае задвижки).

kholonkin
06.11.2014, 08:14
ШИМ и ПИД-регулятор вещи несовместные. Задача регулятора найти устойчивое положение системы регулирования. ШИМом Вы всегда будете плясать вокруг устойчивого положения, иными словами сокращать ресурс органа регулирования. Выход регулятора-это положение регулирующего органа (в случае задвижки).

И как же вы его будете задавать это положение, если %90 регулирующих приводов имеют управление больше/меньше и без обратной связи?
И интегральная составляющая в управлении таким приводом, зло. Этими клапанами нужно управлять ПДД2 регуляторами

Ефремов Николай
06.11.2014, 12:10
Этими клапанами нужно управлять ПДД2 регуляторами

А что такое ПДД2 регулятор?
Для 3-х позиционного управления клапанами используют импульсные ПИД-регуляторы. Первый импульс этого регулятора сдвигает регулирующий орган в соответствии с пропорциональной составляющей, последующие импульсы корректируют положение регулирующего органа в соответствии И (т.е. по накопленной статической ошибке) и Д (т.е. по реакции объекта регулирования) составляющими. Ни какими ШИМами это реализовать не возможно.

kholonkin
06.11.2014, 13:39
Это продифференцированный ПИД, система клапан с приводом с управлением больше/меньше сама является интегрирующей цепочкой (это я не сам придумал, вычитал на просторах сети, когда приперло трехходовым управлять) а двойное интегрирование получается ересь какая то.
Я ШИМом управляю, не знаю насколько это правильно нет... но клапана вроде как свое положение находят и не гуляют туда сюда.
Коэффициент заполнения считаю по пропорциональной и дифференциальной составляющей.

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

Ефремов Николай
07.11.2014, 10:22
Для ПИД-регулятора справедливо выражение для перемещения регулирующего органа Y:

Y= КХр{ Ei + 1/TиΣEi*Δti + Tд*ΔEi/Δti}

С другой стороны перемещение регулирующего органа у задвижки или клапана можно представить как:

Y= V*tимп здесь V=(полное перемещение РО)/(время полного перемещения),
как Вы знаете, исполнительные механизмы такого типа называют ИМ с постоянной скоростью перемещения. Поэтому уравнение ПИД-регулятора мы можем записать:

tимп= КХр{ Ei + 1/TиΣEi*Δti + Tд*ΔEi/Δti}*{время полного перемещения/полное перемещение РО}

перемещением может быть угол поворота задвижки, либо ход штока клапана и т.д.
При возникновении отклонения на величину больше зоны нечувствительности импульсный регулятор должен выдать импульс, длина которого соответствует пропорциональной части выходного сигнала (т.е. КХр* Ei)(пропорциональная часть больше не участвует в формировании следующих импульсов пока отклонение не изменит знак) и ждать реакции объекта. Инерционность объекта характеризуется величиной Ти – следовательно, до формирования следующего импульса надо ждать столько же времени (или часть от него).
За это время формируется сигнал корректировки: КХр *(1/TиΣEi*Δti + Tд*ΔEi/Δti).
Если величина этого сигнала больше минимального времени включения, то выдаётся следующий импульс и ожидается реакция объекта, если меньше, то дожидаемся когда величина достигнет или станет больше.
Вот и вся краткая теория импульсного ПИД-регулятора.
PS. Обратите внимание на знак Д-составляющей- когда отклонение увеличивается (+) и наоборот, если отклонение уменьшается (-).Желаю удачи.

Ефремов Николай
17.11.2014, 11:21
Если интересно, посмотрите как я сделал импульсный ПИД-регулятор. Любым замечаниям буду рад.
** Ксожалению, много логических ошибок, которые надо исправлять**

Ворона
18.11.2014, 16:49
Наконец то!!!
После двух месяцев трудов и поисков мне удалось наконец написать полностью работоспособный ШИМ для клапана без датчика положения.
В проекте использовались только блоки из стандартной библиотеки CoDeSys и из Util собственно, сам ПИД регулятор, испытания проводил на этом стенде https://yadi.sk/i/0VWFUN4ecnPiQ
ссылка на мой Яндекс диск. Как это не удивительно я не являюсь специалистом в области составления алгоритмов ПИД регулирования, но результат меня приятно удивил.
Может мне показалось но мой ПИД регулятор на заданную уставку выходит лучше чем ТРМ212 почти без "проскока" и держит температуру -+ 1 гр. с от заданной уставки.
Конечно алгоритм еще требует доработки, но проект полностью работоспособен, и может использоваться на реальных объектах регулирования.
Тестировал в течении нескольких часов и остался доволен результатом. По его принципу написал алгоритм в CoDeSys v2.3 на ПЛК110, и также остался доволен результатом.
И чему несказанно был рад, что, клапан не дергался туда-сюда почти сразу нашел нужную точку и встал в необходимое положение.
Выкладываю проект в свободный доступ, ничего не закодировано и не запаролено. Буду рад любым доработкам и улучшениям, также надеюсь, что вы протестируете у себя на объектах, стенд стендом, а реальный объект, это совсем другое. Надеюсь что все выложил правильно на форуме и с открытием файла проекта проблем не возникнут, я новичок в этом деле.
Стенд обрезано: 15273
Фото моих уставок 15275
Всем кто использует в своих проектах PID из Util, нужно иметь ввиду и предусмотреть способ сброса ПИДа при смене уставки, как показали мои наблюдения на некоторое время ему (ПИДу) первое время "сносит" "башню".
А выражаясь грамотно происходит "удар" при регулировании. И это правильно, просто ПИД выдает результат с учетом новой уставки и накопленной старой интегральной составляющей.

22.11.2014г.
Тестировал ШИМ, и PID из библиотеки Util, на даче у своего коллеги (на форуме зарегистрирован как "Монтер", огромное ему спасибо), остались оба доволены результатом, правда в начале нам пришлось по-колдовать с Кp, Tn, Tv но результат получили хороший -+ 1,5 гр. после выхода на уставку 55гр., это при условии что газовый котел работал дискретно в диапазоне от 70гр. до 90гр..
Я устранил проблему с "броском" во время смены уставки и добавил блок архивации (кому не нужно можно удалить) по двум параметрам.
Скорректированный проект с архивацией также выкладываю (надеюсь все откроется без проблем).
Фото объекта 15386

kukla100
18.11.2014, 17:49
В вашем проекте Ворона, используеться блок вашего изготовления с именем "Generator", в место него нельзя использовать блок "BLINK" ?

Newcomer
18.11.2014, 18:22
По его принципу написал алгоритм в CoDeSys v2.3 на ПЛК110, и также остался доволен результатом.
Проект на ПЛК110 интересно посмотреть.

Ворона
18.11.2014, 20:12
Проект на ПЛК110 интересно посмотреть.
Проект на CoDeSys V2.3 c панелью СП270 здесь.
Поведение ПИДа при резкой смене уставки (нужно доработать ПИД должен быть сброшен после смены уставки) https://yadi.sk/i/CHKsfJOocnimA
Поведение ПИДа при обычной регулировке https://yadi.sk/i/k7QCIGRYcniNX
Также выкладываю файл панели.

Ворона
18.11.2014, 20:15
В вашем проекте Ворона, используеться блок вашего изготовления с именем "Generator", в место него нельзя использовать блок "BLINK" ?
Генератор Blink "запоминает" состояние выхода после его "отключения" входом EN, и начинает работать с этого же состояния, а мне нужно что-бы он "заводился" с подачи "свежего" импульса.

Валенок
18.11.2014, 23:05
ШИМ и ПИД-регулятор вещи несовместимые..
Несовместимы ? А мужики-то и не знали

Если нету готового ШИМ на выходе, мастерим из Do

function psw : bool
var_input
in : real; //0..1.0
period : time;
---------------
psw := ((time_to_dword(time()) mod (time_to_dword(period))) / time_to_real(period)) < in;

Теперь дружим с пидом



function_block pid_to_2psw
var_input
actual, set_point : real; //текучка и задание соотв
period : time; //общий
var_output
plus, minus : bool;
var
pid : pid; //стандартный из util
---------------
pid(
actual := actual - set_point, //именно E на вход.
set_point := 0, //именно 0, т.к. E=0 и есть цель
y_min := -1,
y_max := 1
... //тута сами
);

plus := psw(limit(0, pid.Y, 1), period);
minus := psw(abs(limit(-1, pid.Y, 0)), period);

Дергание механизма ? Зона нечуйствительности около нуля соответственно знаку.

var_input
n : real; //0..1.0
----
pid(...);
plus := psw(sel(pid.Y > n, 0, limit(0, pid.Y,1)),..);
minus := psw(abs(sel(pid.Y < -n, 0, limit(0, pid.Y,1))),..);

Сообсно всё.

PS
Просьба не поднимать баян про якобы кривой util.pid



Всем кто использует в своих проектах PID из Util, нужно иметь ввиду и предусмотреть способ сброса ПИДа при смене уставки, как показали мои наблюдения на некоторое время ему (ПИДу) первое время "сносит" "башню".
Потому что смена уставки для пида - то же что и скачок actual в другую сторону. Зачем тут ломать голову ?
Хотите безударно - поставьте для уставки прокладку из ramp_real

var
ramp : ramp_real;
-----------
ramp(in:=set_point, ...);
pid(
actual := actual - ramp.out,
...
);
...

Ефремов Николай
19.11.2014, 18:59
Несовместимы ? А мужики-то и не знали У нас в России мужики могут всякое совместить. А нормальный ПИД-регулятор находит равновесное положение системы за 3-4 импульса. Длительность этих импульсов разная: 1 длинный(пропорциональная часть) устанавливает регулирующий орган в положение близкое к равновесному, следующие 2-3 импульса короткие убирают ошибку рассогласования (интегральная часть). Дифференциальная составляющая вносит коррекцию в зависимости от скорости движения системы к равновесному состоянию. Правильному ПИД-регулятору не нужны прокладки из ramp. Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.

Ворона
20.11.2014, 02:46
Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.

Этим "недоразумением" компания "Овен" занимается в промышленных масштабах, и выпуском приборов которые по вашим словам также являются "недоразумением".
Вы уверены что зарегистрировались на нужном форуме? Извините, но "выпендриватся" проще всего!

приборист
20.11.2014, 09:53
У нас в России мужики могут всякое совместить. А нормальный ПИД-регулятор находит равновесное положение системы за 3-4 импульса. Длительность этих импульсов разная: 1 длинный(пропорциональная часть) устанавливает регулирующий орган в положение близкое к равновесному, следующие 2-3 импульса короткие убирают ошибку рассогласования (интегральная часть). Дифференциальная составляющая вносит коррекцию в зависимости от скорости движения системы к равновесному состоянию. Правильному ПИД-регулятору не нужны прокладки из ramp. Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение. Но я не отрицаю, что на каких-то объктах он будет вполне сносно работать.

Не вижу реализации правильного, по-вашему мнению, ПИД-регулятора.
Раз открыли глаза - покажите как правильно.

Ефремов Николай
20.11.2014, 14:13
Не вижу реализации правильного, по-вашему мнению, ПИД-регулятора.
Раз открыли глаза - покажите как правильно.www.owen.ru/forum/showthread.php?t=17728&p=152540&viewfull=1#post152540

Вы уверены что зарегистрировались на нужном форуме? Извините, но "выпендриватся" проще всего!На форуме не выпендриваются, а высказывают своё мнение по какому-либо вопросу. То, что наши мнения разошлись не важно, важно когда-нибудь мы оба найдём истину(или объяснение близкое к истине). Кто знает, возможно я ошибаюсь, а Вы правы-время покажет.

приборист
20.11.2014, 14:56
www.owen.ru/forum/showthread.php?t=17728&p=152540&viewfull=1#post152540 (http://www.owen.ru/forum/showthread.php?t=17728&p=152540&viewfull=1#post152540)


Вы его на объекте тестировали?
У меня на столе он как потерпевший дергает выходами, а потом встает на постоянное включение одного из выходов и все.
Значение сравнивается - он выключается, потом значение больше уставки он включается намертво в другую сторону.

Валенок
20.11.2014, 16:26
У нас в России мужики могут всякое совместить. А нормальный ПИД-регулятор находит равновесное положение системы за 3-4 импульса. ...
Нормальная таблица умножения умножает быстрее ?

В "равновесное положение системы за 3-4 импульса" заводит не ПИД регулятор а его настройки - т.е. использующий его чел.


Сделать из аналогового ПИД-регулятора импульсный с помощью ШИМ нельзя - это будет не регулятор а недоразумение...
Продолжайте витать в облаках, а я пока запущу очередную систему с аналоговым ПИД-регулятора на 3х поз.вентиле (ШИМ'ами на + и -)

Валенок
20.11.2014, 16:38
Правильному ПИД-регулятору не нужны прокладки из ramp.
А кто их предлагал для ПИД-регулятора ?


...длинный(пропорциональная часть) устанавливает
регулирующий орган в положение близкое к равновесному, следующие 2-3 импульса короткие убирают
ошибку рассогласования (интегральная часть). Дифференциальная составляющая вносит коррекцию в
зависимости от скорости движения системы к равновесному состоянию...
Вы это цитируете чой-то задочное. А что такое

аналогового ПИД-регулятора
???
Бывает неаналоговый ПИД-регулятор ?

И чем для регулируемой темп-ры (например) отличается поворот вентиля на X градусов по изменению сигнала 4-20ма (например) от поворота на Х градусов по соответствующему импульсу ?

Ефремов Николай
21.11.2014, 05:10
Бывает неаналоговый ПИД-регулятор ?Да, конечно, импульсный. Вы сами отвечаете на свой вопрос.

И чем для регулируемой темп-ры (например) отличается поворот вентиля на X градусов по изменению сигнала 4-20ма (например) от поворота на Х градусов по соответствующему импульсу ?Аналоговый ПИД-регулятор оказывает постоянное воздействие на регулирующий орган(РО) и положение РО зависит от величины сигнала, импульсный перемещает РО на какую-то величину, а положение РО зависит от суммарного воздействия всех предыдущих импульсов. При аналоговом управлении РО клапана(задвижки) перемещаются в исходное положение(либо NO, либо NC), если нет сигнала. При импульсном управлении, если нет сигнала, РО клапана(задвижки) остаётся на месте. И, кстати, термин 3-х позиционное управление не относится к ПИД-регулированию.

Ефремов Николай
21.11.2014, 05:29
Вы его на объекте тестировали?Нет ещё, поэтому и попросил посмотреть и высказать замечания.
У меня на столе он как потерпевший дергает выходами, а потом встает на постоянное включение одного из выходов и все. Значение сравнивается - он выключается, потом значение больше уставки он включается намертво в другую сторону.Вероятно неправильно установленны настройки регулятора(они же индивидуальные для каждого объекта регулирования). Если Вы действительно хотите протестировать этот регулятор, то давайте обсудим его параметры через личный e-mail.

Валенок
21.11.2014, 13:30
Да, конечно, импульсный..
П.И.Д - что-то не вижу дискретов, разрывов...


Аналоговый ПИД-регулятор оказывает постоянное воздействие ..
..а постоянное значение аналога - экв. отсутствию импульсов


импульсный перемещает РО на какую-то величину, а положение РО зависит от суммарного воздействия всех предыдущих импульсов.
Интересно, а за что отвечает И в ПИД ?


. При аналоговом управлении РО клапана(задвижки) перемещаются в исходное положение(либо NO, либо NC), если нет сигнала. При импульсном управлении, если нет сигнала, РО клапана(задвижки) остаётся на месте.
Нет аналогового сигнала - рассматривайте как аварию, пжста - здесь не рассматривают сферических пони, если же хочется - смотрите тогда нет сигнала вместе с нет питания - и никто никуда не переместится
И для 3х поз - аварию нужно рассматривать переход в соотв. авар. положение. А аналог = min аналогичен (жесть) либо постоянному соотв. импульсу либо импульсу с длиной достаточной для перехода в какой-то край.


..И, кстати, термин 3-х позиционное управление не относится к ПИД-регулированию.
Про это - лучше где-нить в академиях

Для привода с постоянной скоростью перемещения. Тут и ШИМ не нужен. Да и код проще.

var_input
....
var_output
plus,minus : bool;
var_const
h : real := .. //что хоца считать верхом pida: 1, 100%, ...
timebase : time := .. //максимально близко к реальному времени полного перехода РО
z : real := .. //зона нечуйствительтности (соотнести с h)
var
pid : pid := (y_max := h); //все тот же пид
pos : pamp_real := (ascend := h, descend := h, timebase := timebase); //здесь ramp как модель РО
-------------------------
pid(
actual := actual,
set_point := set_point,
...
);
pos(in:=pid.y);
plus := pos.diff > z or pid.y = pid.y_max; // = max,min - гарантия от накопления погрешностей по timebase
minus := pos.diff < -z or pid.y = pid.y_min; // а i в pid все вылечит

Начальное значение РО не имеет значения - встанет в нужно место все равно.

Ефремов Николай
21.11.2014, 13:44
Нет аналогового сигнала - рассматривайте как авариюВероятно Вы путаете входной и выходной сигнал регулятора. Деление ПИД-регуляторов на аналоговые и импульсные осуществляют по их выходному сигналу.
Позвольте Вас спросить, а что вы имеете ввиду под термином "привод с постоянной скоростью перемещения" ? Разве это не клапан или задвижка с электроприводом?

Валенок
21.11.2014, 18:32
Вероятно Вы путаете входной и выходной сигнал регулятора. ?
С какого перепугу

.. перемещаются в исходное положение(либо NO, либо NC), если нет сигнала
?
Что такое нет сигнала ? Проводочек отвалился ?


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


Позвольте Вас спросить, а что вы имеете ввиду под термином "привод с постоянной скоростью перемещения" ? Разве это не клапан или задвижка с электроприводом?

Да - клапан или задвижка с электроприводом. Без разгона в течении импульса

Ефремов Николай
22.11.2014, 07:00
С какого перепугуВероятно перевозбудились.

Что такое нет сигнала ? Проводочек отвалился ?Нет, это когда нет сигнала на перемещение регулирующего органа

У ПИД регулятора выход в принципе только аналоговый. Импульсный ПИД - это дискретный косинус"и здесь Остапа понесло"
А промежуточные прокладки этот выход могут превратить во что угодно....... Эти прокладки непосредственно к ПИДу не имеют никакого отношения.Вот в таком варианте Вашей фразы я полностью с ней согласен.

приборист
22.11.2014, 09:04
Сообщение от Валенок http://www.owen.ru/forum/images/buttons/viewpost-right.png
(http://www.owen.ru/forum/showthread.php?p=153163#post153163)А промежуточные прокладки этот выход могут превратить во что угодно....... Эти прокладки непосредственно к ПИДу не имеют никакого отношения.

Вот в таком варианте Вашей фразы я полностью с ней согласен.

Вы смеетесь?

Кто с самого начала доказывал что ПИД-регулятором невозможно управлять 3-х ходовым с помощью импульсов?

P.S.
У всех ПИД-регулятор + прокладка в виде VALVE_REG_NO_POS и подобные управляют немалым количеством объектов (у меня в том числе).
Вы пришли, сказали что так нельзя, выложили свою версию, которую даже не проверяли. И как это выглядит со стороны?

Ефремов Николай
22.11.2014, 12:00
Вы смеетесь?Кто с самого начала доказывал что ПИД-регулятором невозможно управлять 3-х ходовым с помощью импульсов?Прошу прощения, но такого утверждения я не делал. Всё, что я хотел сказать, это то, что прицепляя ШИМ-примочку к ПИД-регулятору с аналоговым выходом вы можете чем-то управлять, но не клапаном (задвижкой). Для управления исполнительным механизмом с постоянной скоростью перемещения регулирующего органа нужен ПИД-регулятор с импульсным выходом(не путать с широтноимпульсной модуляцией). Про VALVE_REG_NO_POS я не высказывался, так как не знаю, как там реализовано преобразование аналогового выхода ПИД-регулятора в импульсный(а хотелось бы знать).

Валенок
22.11.2014, 22:37
Аналоговый ПИД-регулятор оказывает постоянное воздействие... При аналоговом управлении...перемещаются.., если нет сигнала.
Определились бы - постоянное воздействие или нет сигнала.

Вероятно перевозбудились..
Страшно стало - то постоянно, то нету - это что-то из квантовой физики ?

Так что такое за чудо - импульсный ПИД ?

Ефремов Николай
23.11.2014, 06:09
Определились бы - постоянное воздействие или нет сигнала.Так что такое за чудо - импульсный ПИД ?
Я уже давал Вам объяснение здесь /www.owen.ru/forum/showthread.php?t=17728&p=153047&viewfull=1#post153047 Вероятно Вы запутались в самых элементарных понятиях ТАР. Выходной сигнал любого регулятора определяет положение (позицию, состояние и т.д.) регулирующего органа, поэтому в случае с клапаном(или задвижкой) выходной сигнал аналогового регулятора(например 4-20 мА или 0-10 В) указывает позиционеру где должен находиться регулирующий орган, если убрать этот сигнал, то позиционер(не путать с указателем положенияРО) вернёт РО в начальное состояние (NO или NC). Регулятору с импульсным выходом не нужен позиционер, потому что своим выходным сигналом(импульсом) он перемещает регулирующий орган в заранее вычисленное положение, где РО остаётся до следующего импульса. Чем меньше количество импульсов необходимо для управления системой, тем дольше прослужит клапан(или задвижка). ШИМом вы увеличиваете количество включений/выключений (по простому это называется "др....ть"клапан), что выводит клапан из строя через какой-то промежуток времени. С помощью ШИМа хорошо управлять, например, мощностью ТЭнов на достаточно инерционном объекте(моя ошибка в заявлении, что ПИД и ШИМ не совместимы), но согласитесь, если Вы будете др...ть мощный контактор каждые несколько секунд, то заказчик поставит Вас раком через три дня. Всего хорошего в осмыслении полученной информации.

smk1635
23.11.2014, 11:47
Абалдеть. Спор на три страницы. Можно я тоже поучаствую, а то попкорн закончился. :D

Ну а если серьезно, то обсуждается ситуация из серии – сферическая в вакууме.

Был задан вопрос: есть ПИД для управления клапаном по ШИМ.
Ответили: есть, и не плохо работает.
Сразу следует поправка: ШИМ и ПИД для задвижек и клапанов с электроприводом не подходит.
На что следует резонный ответ: Подходит. Работает. Вот код.
И следом: Да, работает. Вот ещё один код и он проверен на стенде.
На что следует ответ: ну в России и не такое могут зафигачить. Но это хреновое решение и вообще не правильно, хотя где то и может пригодится.
Ну а дальше почти все посты из серии: может – не может, с элементами «понеслась органика по трубам».

А надо было задать простой вопрос: какую задачу надо решить ?
Если это на пример приточная вентиляция или погодозависимая система отопления, то это инерционные системы. Ставим задвижки с электроприводом. Управляем ШИМ и не паримся. ПИД дергать привод часто не будет, в силу инерционности системы.
Если это допустим автоклав, то это достаточно быстротекущие процессы. Тут рулят клапана с позиционероми. Управляем аналоговым сигналом. Тем более что в случае пропадания сигнала клапана автоматически встанут в безопасное состояние.

Вот собственно и всё. Оба решения рабочие. Всё зависит от задачи.

Ворона
23.11.2014, 12:09
ШИМом вы увеличиваете количество включений/выключений (по простому это называется "др....ть"клапан), что выводит клапан из строя через какой-то промежуток времени. С помощью ШИМа хорошо управлять, например, мощностью ТЭнов на достаточно инерционном объекте(моя ошибка в заявлении, что ПИД и ШИМ не совместимы), но согласитесь, если Вы будете др...ть мощный контактор каждые несколько секунд, то заказчик поставит Вас раком через три дня. Всего хорошего в осмыслении полученной информации.

Вы неверно с производствам, и с практикой вы не дружите, если ПИД точно настроен то для поддержания заданной температуры не нужно частое включения клапана. А чтобы контактор не вышел из строя при управлении ТЭНами его заменяют симисторным усилителем или твердотельным реле.
Похоже вы просто не представляете себе процесс регулирования на реальном объекте (производстве). Все о чем вы ранее говорили подходит под управление "чертовски" дорогих клапанов с аналоговым управлением, там и мудрить не нужно клапана управляются сигналом 0-10 В или 0-20 мА, (4-20мА), подавай "напрямую" сигнал с ПИД и регулируй на здоровье.
Я еще раз спрашиваю, вы на том форуме зарегистрировались?

Валенок
23.11.2014, 21:12
..Вероятно Вы запутались..если убрать этот сигнал, то ...
Вероятно Вы сами запутались предлагая для аналогового управления зачем-то действие вне рамок управления - в виде "убрать сигнал". Зачем "убрать сигнал" ? Тогда давайте сравнивать эквивалентные наборы действий - "убрать сигнал" и обесточить аналог супротив снять управляющий кабель с клемм для 3х.поз


..Регулятору с импульсным выходом ....выходным сигналом(импульсом) он перемещает регулирующий орган в заранее вычисленное положение..
Т.е. где-то в мозгах положение РО (исполненного как 3х) видится как аналог ?


Чем меньше количество импульсов необходимо для управления системой, тем дольше прослужит клапан(или задвижка)
Тока тем более инерционным должен быть объект и/или будет большая амплитуда ошибки


но согласитесь, если Вы будете др...ть мощный контактор каждые несколько секунд, то ..
Соглашусь. Только не пойму - зачем Вы мне предлагаете "др...ть мощный контактор" ? Только после Вас


ШИМом вы увеличиваете количество включений/выключений.., что выводит клапан из строя через какой-то промежуток времени
Удачи в поиске отличий, например, в ШИМ=0 и "где РО остаётся до следующего импульса" и отличий в ШИМ=1 от "выходным сигналом(импульсом)"

PS

Если это допустим автоклав, то это достаточно быстротекущие процессы. Тут рулят клапана с позиционероми
Имхо, тут несколько большее значение имеет инерция самого РО.

smk1635
23.11.2014, 23:02
Имхо, тут несколько большее значение имеет инерция самого РО.

Согласен. В примере с автоклавом как раз и приходится решать задачу с его тепловой инерционостью.
Так как подъем температуры и давления, выдержка, а главное снижение температуры и давления строго регламентированы картами техпроцесса на каждый вид консервов. Иначе в консервах обеспечен ботулизм. Или просто крышки с банок сорвет или жестебанку деформирует. Тут как говорится клапана с пневматическим приводом и позиционером - форевер.
Можно конечно решить эту задачу на задвижках с электроприводом, но встают вопросы по безопасности, в случае внезапного отключения электричества. Хотя в свете последних цен на импортные комплектующие к этому вопросу придется вернутся.

Вообщем как и говорил, все зависит от решаемой задачи. :)

Ефремов Николай
24.11.2014, 04:54
Я еще раз спрашиваю, вы на том форуме зарегистрировались?Вероятно не на том.
Потому что здесь путают понятия - ПИД-регулятор и 3-х позиционный регулятор это разные вещи. Приделывая к ПИД-регулятору с аналоговым выходом ШИМ-примочку для получения импульсов для регулирования клапаном Вы просто получаете 3-х позиционный регулятор- тогда зачем городить огород появилось отклонение дайте импульс оределённой(не ПИД регулятором, а например TOFом) и дело сделано-и не надо парить голову с Кр, Ти и Тд.

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

ASo
24.11.2014, 07:28
А что такое - 3-х позиционный регулятор? Дайте четкое определение.

smk1635
24.11.2014, 10:29
Да надо полагать, что пневматический компрессор в это время Вы будете крутить в ручную или у Вас бесконечно большой рессивер?

Ну тут согласен.
Если придется ставит бесконечно большое количество клапанов, то от бесконечно большого ресивера ни куда не деться. :D

А так от клапанов, в случае аварии, требуется только один раз открыться или закрыться (в зависимости от тех процесса).Большой запас воздуха не требуется.
Ну и не забываем про внутренние пружины, которые да же в отсутствие воздуха должны открыть или закрыть клапан (в зависимости от исполнения).

Валенок
24.11.2014, 11:00
А для некоторых клапанов учесть, что перемещаемую через них среду кто-то толкает - а електричество-то "внезапно пропало"

Ефремов Николай
24.11.2014, 13:18
А что такое - 3-х позиционный регулятор? Дайте четкое определение.
Примерно так:
Позиционное регулирование (позиционный закон)
- при этом выходная величина может изменять свое значение дискретно за определенное время в зависимости от величины отклонения. Дискрет (шаг) определяется числом позиций в диапазоне регулирования. Число позиций определяет процесс регулирования: двухпозиционный, трехпозиционный, многопозиционный.

Самое простое - 2-х позиционное, - регулирование обеспечивает либо максимальное значение выходной величины (нагреватель включен), либо минимальное, нулевое значение (нагреватель выключен).
2-х позиционный закон может быть реализован потребителем, если регулятор имеет 1 канал регулирования для одного канала измерения. В этом случае один набор уставок управляет одним выходным устройством.

3-х позиционный закон может быть реализован потребителем, если регулятор имеет 2 канала регулирования для одного канала измерения. В этом случае необходимо задать два набора уставок для двух выходных устройств. Рассмотрим, для примера, случай для логики срабатывания выходных устройств - тип 1, прямой гистерезис ("нагрев") - см. описание ниже. При температуре ниже обеих уставок будут включены два выходных устройства. При температуре между двумя уставками одно выходное устройство будет включено, другое - выключено. При температуре выше обеих уставок оба выходных устройства будут выключены. Таким образом, данная схема подразумевает 3 позиции выходных устройств - оба включены, оба выключены, и одно включено, другое выключено.

smk1635
24.11.2014, 14:36
Таким образом, данная схема подразумевает 3 позиции выходных устройств - оба включены, оба выключены, и одно включено, другое выключено.[/spoiler]

Ну что сказать, что бы Вам по такому принципу что то запустить. :D

Говоря Вашими словами: одно включено или другое включено или оба выключены - три позиции.
А что бы так работало, одно выходное устройство должно работать по прямому гистерезису (нагрев), а второе по обратному (холодильник).

Ефремов Николай
24.11.2014, 16:58
Господа!!! Всё это напоминает трёп в курилке- заходит новый курильщик и услышав часть фразы включается в разговор.
Я. господа, просто не понимаю почему все меня учат практическому примененю ПИД-регуляторов и клапанов. А ведь всё началось с того, что я высказал мнение, что ПИД-регулятор совместно с ШИМ-примочкой для клапана (задвижки), которые управляются сигналами больше/меньше(это для тех кто не знает, что они называются ИМ с постоянной скоростью перемещения регулирующего органа) не подходят и объяснил почему. Вы можете соглашаться или не соглашаться, но вырывать отдельные фразы из текста, потеряв даже смысл сказанного, и обсасывать это- просто не прилично.
А для того, чтобы настраивать ПИД-регуляторы необходимо, как минимум, знать для чего каждая из его составляющих существует. Поэтому для "самых одарённых настройщиков" объясняю популярно:
1. Основной (и самой большой) частью выходного сигнала ПИД-регулятора является пропорциональная(не случайно и название ПИД- не ИПД, ДИП и ДПИ) и если Вы настройку регулятора начинаете с неё, отключив И и Д части, Вы делаете правильно. Как отключить? Увеличить Ти до максимума, а Тд сделать равным 0.
2.Интегральная часть не может быть самостоятельной (хотя И-регуляторы наукой рассматриваются, но применимы дляузкого класса объектов)-потому что она призвана убрать статическую ошибку рассогласования(т.е. скорректировать действие основной части выходного сигнала регулятора). Заметьте не само рассогласование, а только его статическую ошибку.
3.Дифференциальная часть в названии стоит последней тоже не случайно- она тоже не может быть самостоятельной, а только корректирующей. Что корректирует? Скорость подхода регулируемой системы к заданному состоянию-Д часть тормозит(!!!), а скорость увеличивают П частью, если наоборот введёте систему в резонанс.
И пока, господа, Вы не поймёте как работает ПИД-регулятор Вы будете настраивать всякие примочки добиваясь огромных успехов.

Валенок
24.11.2014, 17:22
Просто Николай путает 3х поз регулятор с 3 позициями на выходе с многопозиционным (аналоговым) положением исполнительного механизма управляемого 3х поз. сигналом. И упорно доказывая что в цепочке:
аналог на входе (ОС) > ... > [3х поз управление > аналог-положение ИМ]
ну просто обязан быть некий специальный "импульсный пид". Но при этом предлагает рассчитывать положение (аналог) данного механизма.

Вам, Николай, а советую сразу привести ссылку на какой-нить учебник, а тут просто приводить номера страниц. Зачем мучится с копи-пасте. Вы можете легче нести свет в темные массы.
Кстати, не раскрыта тема сложения столбиком.

Ефремов Николай
24.11.2014, 18:12
Просто Николай путает 3х поз регулятор с 3 позициями на выходе с многопозиционным (аналоговым) положением исполнительного механизма управляемого 3х поз. сигналом. И упорно доказывая что в цепочке:
аналог на входе (ОС) > ... > [3х поз управление > аналог-положение ИМ]
ну просто обязан быть некий специальный "импульсный пид".К сожалению я так и не понял, что Вы имели ввиду в этой фразе. Будьте добры, изложите Ваше представление, как работает ПИД регулятор и чем отличаются клапан управляемый аналоговым сигналом (4-20 мА) от клапана работающего по импульсному сигналу больше/меньше. Или хотя бы объясните мне наивному почему не существует ПИД-регулятор с импульсным выходом или почему ПИД-регулятор с аналоговым выходом+ШИМ примочка это лучшее, что можно придумать для управления клапаном с постоянной скоростью перемещения РО?

smk1635
24.11.2014, 19:59
К сожалению я так и не понял, что Вы имели ввиду в этой фразе. Будьте добры, изложите Ваше представление, как работает ПИД регулятор и чем отличаются клапан управляемый аналоговым сигналом (4-20 мА) от клапана работающего по импульсному сигналу больше/меньше. Или хотя бы объясните мне наивному почему не существует ПИД-регулятор с импульсным выходом или почему ПИД-регулятор с аналоговым выходом+ШИМ примочка это лучшее, что можно придумать для управления клапаном с постоянной скоростью перемещения РО?

Вообще то позиционер это самостоятельный регулятор. И сигнал 4-20 мА - это для него задающий сигнал, а не исполняющий.
А импульсный сигнал больше-меньше, именно исполняющий.
В принципе позиционер для ПИД-регулятора,это то же что и, как Вы называете, ШИМ примочка. По крайне мере функции те же.

Валенок
24.11.2014, 21:05
Будьте добры, изложите Ваше представление, как работает ПИД регулятор
пост #10,#45


и чем отличаются клапан управляемый аналоговым сигналом (4-20 мА) от клапана работающего по импульсному сигналу больше/меньше.
Тоже хотел бы узнать у Вас что-то новое.
Пока – так думаю что ничем кроме того что для 4-20мА – обратной связью положения является сам упр.сигнал, а для импульсного – положение неизвесно.
А вот по наборам возможных положений – абсолютно одинаковые. Именно поэтому, вне зависимости от учебниковых названий, я препочел бы не название “ИМ с постоянной скоростью перемещения” (с аналоговым входом крутятся с такой же постоянной скоростью при изменении входа), а “многопозиционный (или аналоговый) привод с 3х поз. сигналом управления”.
Люди на земле могут назвать такие приводы 3х позиционными имея ввиду следующие позиции:
1.Открыт
2.Закрыт
3.Где-то между открыт и закрыт


почему ПИД-регулятор с аналоговым выходом+ШИМ примочка это лучшее, что можно придумать
“лучшее” - Вы мне приписываете свои слова, товарищ. Я говорил – что и так тоже можно. Где я говорил что нет другого способа ? Вы говорите[ли] что так – невозможно.


..ШИМ примочка это?
“Примочка” – Ваш термин. Я говорил про “прокладки”. Т.к. могу не знать мудренных слов, под “прокладкой” подразумеваю преобразование, а “примочкой”- назвал бы что-то новое


.. объясните .. почему не существует ПИД-регулятор с импульсным выходом ..
Представил пульсацию интеграла и закашлялся. Скажу по другому :
ПИД-регулятор с импульсным выходом – это примочка в виде обычного ПИД и прокладки

Для ПИД-регулятора справедливо выражение для перемещения регулирующего органа Y:
Y= КХр{ Ei + 1/TиΣEi*Δti + Tд*ΔEi/Δti}
С другой стороны перемещение регулирующего органа у задвижки или клапана можно представить как:
Y= V*tимп здесь V=(полное перемещение РО)/(время полного перемещения),
как Вы знаете, исполнительные механизмы такого типа называют ИМ с постоянной скоростью перемещения. Поэтому уравнение ПИД-регулятора мы можем записать:
tимп= КХр{ Ei + 1/TиΣEi*Δti + Tд*ΔEi/Δti}*{время полного перемещения/полное перемещение РО}..
Здесь прокладка – производная от Y= V*tимп


Далее:
ИПИД – импульсный ПИД,
ПИД - простой (аналоговый) ПИД,
АП – аналоговая позиция(какая то позиция на шкале РО),
остальное – общеупотребительное для данного форума


У теоретиков
Ai -> [ПИД -> Ao] -> АП

Но практики, купившие РО в виде [2xDi -> АП] сталкиваются с проблемой :
Ai -> [ПИД -> Ao] -> ... проблема ... -> [2xDi -> АП]

Тут на белом коне, с учебниками, выезжаете Вы держа в руках [ИПИД -> 2xDo]:
Ai -> [ИПИД -> 2xDo] -> [2xDi -> АП]
и говорите что ПИД тут – бяка

Я ж, на вороном коне, выкатываю Вам, как вариант, прокладку для ПИД [Ai -> 2xDo] :
Ai -> [ПИД -> Ao] -> [Ai -> 2xDo] -> [2xDi -> АП]

Но если принять во внимание что [ИПИД -> 2xDo] есть [ПИД -> Ao] + прокладка сводящаяся к [Ai -> 2xDo], то
Ai -> [ИПИД -> 2xDo] -> [2xDi -> АП] превращается в
Ai -> [(ПИД -> Ao) -> (Ai ->2xDo)] -> [2xDi -> АП]

Таперь же, вспоминая про разницу (a+b)+c и a+b+c находим 7 отличий.
Ai -> [ПИД -> Ao] -> [Ai -> 2xDo] -> [2xDi -> АП]
Ai -> [ (ПИД -> Ao) -> (Ai ->2xDo) ] -> [2xDi -> АП]

“Никогда не говори никогда”
(С)

PS
Если было что неприличное - извините, Николай.
Про нет сигнала я с самого начала имел виду участок [ПИД -> Ao] нету [Ai -> АП],
Поэтому и говорил что этот "нету" рассматривайте только вместе с нет питания.

Ефремов Николай
25.11.2014, 05:33
Вообще то позиционер это самостоятельный регулятор. Вы ошибаетесь, позиционер это устройство преобразующее аналоговый выходной сигнал регулятора в перемещение регулирующего органа клапана(или задвижки). Использовать его как регулятор Вы можете, но только как пропорциональный, либо позиционный. Здесь сразу и ответ на вопрос заданный Валенку- клапан управляемый аналоговым сигналом (4-20 мА, 0-5 мА и т.д.) имеет свой позиционер внутри (поэтому они дороже стоят).

Представил пульсацию интеграла и закашлялся. Скажу по другому :ПИД-регулятор с импульсным выходом – это примочка в виде обычного ПИД и прокладки Здесь другая ошибка-импульсный выход никакой-пульсации интеграла не создаёт, Вы путаете такие понятия как закон регулирования, выходной сигнал регулятора и воздействие на объект регулирования.Но почему Вы не согласны с
tимп= КХр{ Ei + 1/TиΣEi*Δti + Tд*ΔEi/Δti}*{время полного перемещения/полное перемещение РО} я не понимаю. Если Вы считаете что-то неверным в этой фразе-объясните что?

Валенок
25.11.2014, 09:48
клапан управляемый аналоговым сигналом (4-20 мА, 0-5 мА и т.д.) имеет свой позиционер внутри
Вы выдумали что с этим кто-то спорит. Уточню "позиционер" - это прокладка. В терминах приведеных выше РО = [привод+вентиль]:
..Ao -> [(Ai -> позиционер > 2xDo) -> (2xDi -> моторчик_привода -> Ao) -> AП (как позиция вентиля/задвижки)]

В принципе позиционер для ПИД-регулятора,это то же что и, как Вы называете, ШИМ примочка.
И где эта прокладка(примочка) находится в цепочке от ОС до положения вентиля и исполнение этой прокладки - не имеет никакого принципиального значения. Советую рассматривать железные штучки как готовый год который нельзя изменить но можно пользоватся.


Здесь другая ошибка-импульсный выход никакой-пульсации интеграла не создаёт, Вы путаете
Вы видимо желаемое выдаете за действительно, в очередной раз приписывая мне путание причинно-следственной связи. Я где-то написал что импульс влияет на интеграл ?
Никакая часть из П,И,Д не сформирует импульсы для 3х поз.привода (термин - описал выше) без дополнительных усилий.


Если Вы считаете что-то неверным в этой фразе-объясните что?
Фраза-то верная. Только производная из пида и дополнительных вводных.
Взята предполагаемая величина (время полного хода РО). На основе предполагаемого рассчитали время импульса для перехода РО в заданное ПИД'ом (на основе измеренного сигнала) положение


Вы путаете такие понятия как закон регулирования, выходной сигнал регулятора и воздействие на объект регулирования
Не-а. Для меня это не более чем цепочка прокладок - местами программных, местами железных. Если для Вас это ЗАКОНЫ - флаг в руки.

Ефремов Николай
25.11.2014, 20:01
Не-а. Для меня это не более чем цепочка прокладок - местами программных, местами железных. Если для Вас это ЗАКОНЫ - флаг в руки.Наш спор зашёл в тупик только поодной причине-мы говорим на разных языках, используя похожие термины, но для каждого из нас смысл этих терминов абсолютно разный.

Валенок
26.11.2014, 00:11
Наш спор зашёл в тупик
Соглашусь.. пожалуй

smk1635
26.11.2014, 00:18
Лично меня этот спор на толкнул на пару идей. :)
Закончу объекты и попробую погонять на стенде.

Ефремов Николай
28.11.2014, 05:10
Не подумайте ,что я зануда. В моём понимании ПИД-регулятор это устройство, вычисляющее параметры воздействия, + исполнительный механизм
(клапан, преобразователь напряжения или частоты и т.д.)осуществляющий это воздействие на объект регулирования по по ПИД-закону
регулирования.Поэтому я и говорю, что для каждого исполнительного механизма(ИМ) необходимо выбирать своё устройство, наиболее подходящее
к нему. В Вашем же понимании это устройство и есть ПИД-регулятор, а воздействие по ПИД-закону регулирования он(оно) оказывает
на ИМ.Поэтому, с моей точки зрения, и возникает некоторая нестыковка, которую каждый преодолевает собственными методами.
Почему я сомневаюсь в правильности работы разных видов ПИД-регуляторов, предложенных в библиотеках ОВЕН? Они все в основе имеют одно и
тоже устройство DSP_A_PID, которое уже сформировало(вычислило) параметры воздействия без учёта того, каким устройством это воздействие
будет вноситься. Дальше идёт первая прокладка(по термину Валенка) это АНР-для того, чтобы хоть как-то настроить получившееся чудо
инженерной мысли, а затем следующая прокладка (не буду перечислять все названия на все случаи жизненных ситуаций).Если всё это работает
на позиционер или другой ИМ с аналоговым входом-я даже не сомневаюсь, что это должно отлично работать. Но когда из уже сформированного
аналогового сигнала(имеющего в составе все составляющие П, И и Д) формируют импульсы ШИМ-ом или другой прокладкой у меня возникает
вопрос- Какой из законов регулирования реализует этот компот из сухофруктов? ТО, что это не ПИД-закон регулирования я почти на 100% уверен.
Посмотрите на реакцию ПИД-регулятора с аналоговым выходом(например DSP_A_PID)на разные единичные отклонения и скажите, как можно управлять
например КЗР-ом(у которого характеристика даже не линейная) с помощью какой-либо "прокладки" и говорить, что это ПИД-регулирование.
15497 15498 15499
PS Для alexx751
Р-25, РС-29 - классика жанра Эти регуляторы как раз и являются ПИД-регуляторами с импульсным выходом, но абсолютно ничего общего с ШИМ не имеют.

alexx751
28.11.2014, 08:36
Посмотрите как работает "железный" ПИД с 3-х поз.выходом (Р-25, РС-29 - классика жанра, аналоговые, или "цифровой" Минитерм-300, 400 и т.д) и вам все станет ясно. ШИМ это не просто поток импульсов или вкл/выкл. Меняется длина, пауза между импульсами. Тот же РС-29 с 10-секундным МЭО с легкостью воспроизведет все эти ваши графики. Например на ТЭЦ самое ходовое решение - ПИД+МЭО и ни каких позиционеров:)

alexx751
28.11.2014, 12:52
- Эти регуляторы как раз и являются ПИД-регуляторами с импульсным выходом, но абсолютно ничего общего с ШИМ не имеют.
Вы почему так решили, на основании чего? Прочитайте инструкцию- там черным по белому написано..
Я понял - вы в каком-то учебнике прочитали теорию что такое ШИМ, как он применяется в конкретном случае не осознаете...
Здесь просто два модулятора - для положительных и отрицательных приращений, соответственно два выхода - больше-меньше.
По вашему получается у нас (да и не только у нас) промышленность 50 лет прохиндиадой занимается, и тут нарисовывается тов.Ефремов -"абсолютно ничего общего":)

Ефремов Николай
28.11.2014, 14:26
[I]Вы почему так решили, на основании чего? Прочитайте инструкцию- там черным по белому написано..
Я понял - вы в каком-то учебнике прочитали теорию что такое ШИМ, как он применяется в конкретном случае не осознаете...
alexx751 вероятно мы с Вами разные учебники и инструкции читали. На основании какой из моих фраз Вы сделали такое заключение-
По вашему получается у нас (да и не только у нас) промышленность 50 лет прохиндиадой занимается, и тут нарисовывается тов.Ефремов -"абсолютно ничего общего"? И если Вы объясните, где Вы нашли ШИМ-модуляторы в регуляторах Р25 и РC29, то я буду очень Вам благодарен- я к моему стыду их там не смог обнаружить.

alexx751
28.11.2014, 16:04
У РС-29 на выходе стоит АРП (аналого-релейный преобразователь), охваченный ООС, от величины которой зависит длительность импульса, что, собственно и есть ШИМ.
У минитермов прямо написано (и указано на структурной схеме) -ШИМ. Мне кажется вы ничего не искали...
Валенок скорее всего понял что Вы являетесь "поглотителем чужого времени" и предпочел не продолжать. Сделаю так же.

Ефремов Николай
28.11.2014, 16:49
У РС-29 на выходе стоит АРП (аналого-релейный преобразователь), охваченный ООС, от величины которой зависит длительность импульса, что, собственно и есть ШИМ.Неужели?А я почему-то считал, что ШИМ это когда последовательность импульсов характеризуется двумя параметрами - длительностью(шириной) импульса и периодом следования. Может я ошибаюсь?
У минитермов прямо написано (и указано на структурной схеме) -ШИМ. Но там же и написано, что блок ПДД' совместно с ШИМ модулятором формирует ПИД-закон регулирования. Это я и пытаюсь объснить, что ПИД-устройство(или блок)+ШИМ-это не ПИД регулирование, потому-что ШИМ+клапан это будет интегрирующее звено.

kholonkin
01.12.2014, 06:34
Мдаа, где нить за столом поди уже лица бы били:D

Ефремов Николай
02.12.2014, 13:29
Мдаа, где нить за столом поди уже лица бы били:DНу, если это последний аргумент в споре.

kholonkin
06.12.2014, 16:46
Во, нашел по теме
http://www.duskyrobin.com/tpu/2004-06-00031.pdf
Осталось воплотить

ga-nozry
07.12.2014, 00:04
Верно написано, что ИМ типа КЗР являются интегрирующими звеньями. Поэтому для них нужен блок ПДД^2 + ШИМ. ПДД^2 можно получить взяв производную от выхода ПИД.

В VALVE_REG_NO_POS так скорее всего и есть дифференциатор+ШИМ. С ПЛК ОВЕН проще всего использовать его + любой ПИД (из util.lib, например). Работает всё отлично, кроме тех мест где банальный ПИД неприменим (например, в процессах с большим запаздыванием).


Там где ПЛК не ОВЕН (соответственно VALVE_REG_NO_POS не работает) - используйте обычный ПИД (util или oscat) после него ставьте блок дифферинцирования и после блок ШИМ. Ещё нужно внести ограничение на минимальную длительность импульса с суммированием мелких импульсов отсекаемых по этому ограничению. Работает также хорошо.

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

smk1635
07.12.2014, 00:48
Там где ПЛК не ОВЕН (соответственно VALVE_REG_NO_POS не работает) - используйте обычный ПИД (util или oscat) после него ставьте блок дифферинцирования и после блок ШИМ. Ещё нужно внести ограничение на минимальную длительность импульса с суммированием мелких импульсов отсекаемых по этому ограничению. Работает также хорошо.


Работает. Проверено.
Кстати, спасибо за предоставленные материалы на Вашем сайте.

kholonkin
07.12.2014, 09:04
..........- используйте обычный ПИД (util или oscat) после него ставьте блок дифферинцирования .........

Если ПИД вдруг оказался упертый в максимум или минимум, до с дифа выходит тупо 0, и ничего не происходить, возможно что я не так что то приготовил

Ворона
07.12.2014, 14:41
с суммированием мелких импульсов отсекаемых по этому ограничению. Работает также хорошо.


Проверил, получается не совсем хорошо, а точнее плохо. Я не знаю как в других ШИМ, у меня периодически накапливается сумма ошибки (из неучтенных импульсов), что вносит дополнительную помеху. ПИД конечно справляется, но клапан начинает "дергается" чаще. При моем полном ходе механизма 15 сек. уже "чувствуется" даже если сумма накопленных неучтенных импульсом составляет 50 msec. Если нужно "сверх точность" при регулировке нужно увеличить "время реверса" (время измерения изменений с выхода ПИД). Я говорю про свой алгоритм и не утверждаю, что это справедливо для иных систем ПИД регулирования.

Ефремов Николай
09.12.2014, 18:51
Если ПИД вдруг оказался упертый в максимум или минимум, до с дифа выходит тупо 0, и ничего не происходить, возможно что я не так что то приготовил
Для ПИД- регулятора упертость в максимум или минимум означает, что Вы поставили слишком маленькое Ти (и возможно коэф. пропорциональности завышен)

кроме тех мест где банальный ПИД неприменим (например, в процессах с большим запаздыванием). Осмелюсь Вас поправить- банальный ПИД применим для любого объекта регулирования, даже "в процессах с большим запаздыванием" т.е. инерционностью, надо только правильно определить значения Кр, Ти и Тд.

ga-nozry
26.12.2014, 02:19
Там где после ПИД стоит дифференциатор - максимум и минимум выхода ПИД я делал предельными для данного типа (например, REAL), а при достижении - сбрасывал ПИД. Даже при использовании VALVE_REG_NO_POS ПИД необходимо сбрасывать (с блокировкой сигналов больше-меньше на время сброса) при достижении максимума или минимума (в блоге про это забываю написать и выложить полноценный ФБ). Ведь в этом случае от ПИДа нам нужна только скорость изменения его выхода, а само значение выхода не имеет физического смысла и ограничений. А вот выход дифа ограничить - имеет смысл.


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

Ну для меня этот мир немного сложнее, чем тот, в котором всё можно зарегулировать штукой, определяемой тремя числами. ПИД безусловно великая вещь, и порой хочется поверить в его всеобъемлемость, но границы его применения существуют, и они не так широки, как иногда хотелось бы. (Олссон, Пиани. "Цифровые системы автоматизации и управления", стр 255)

kholonkin
26.12.2014, 06:25
Ведь в этом случае от ПИДа нам нужна только скорость изменения его выхода, а само значение выхода не имеет физического смысла и ограничений. А вот выход дифа ограничить - имеет смысл.
Золотые слова!!!
Вроде как и очевидно, но пока носом кто нить не ткнет, сам почему то не дойдешь.

Ефремов Николай
29.12.2014, 12:12
Ну для меня этот мир немного сложнее, чем тот, в котором всё можно зарегулировать штукой, определяемой тремя числами. ПИД безусловно великая вещь, и порой хочется поверить в его всеобъемлемость, но границы его применения существуют, и они не так широки, как иногда хотелось бы. (Олссон, Пиани. "Цифровые системы автоматизации и управления", стр 255) Вероятно Вы не до конца поняли мысль указанных авторов. ПИД безусловно великая вещь - но и для неё существуют границы применимости (это когда невозможно принебречь дискретностью цифровой обработки данных). Но это не наш случай.

Там где после ПИД стоит дифференциатор - максимум и минимум выхода ПИД я делал предельными для данного типа (например, REAL), а при достижении - сбрасывал ПИД. Даже при использовании VALVE_REG_NO_POS ПИД необходимо сбрасывать (с блокировкой сигналов больше-меньше на время сброса) при достижении максимума или минимума (в блоге про это забываю написать и выложить полноценный ФБ). Ведь в этом случае от ПИДа нам нужна только скорость изменения его выхода, а само значение выхода не имеет физического смысла и ограничений. Вы здесь в чём-то ошибаетесь, но пока не могу сформулировать в чём. Одно могу сказать точно не важно какой сигнал выдаёт регулятор, важно , что воздействие на объект регулирования осуществляется по ПИД-закону регулирования, а при манипуляциях с уже сформированным сигналом меня одолевают сомнения.

Ефремов Николай
29.12.2014, 13:18
Я не знаю как в других ШИМ, у меня периодически накапливается сумма ошибки (из неучтенных импульсов), что вносит дополнительную помеху. ПИД конечно справляется, но клапан начинает "дергается" чаще. При моем полном ходе механизма 15 сек. уже "чувствуется" даже если сумма накопленных неучтенных импульсом составляет 50 msec. Если нужно "сверх точность" при регулировке нужно увеличить "время реверса" (время измерения изменений с выхода ПИД). Я говорю про свой алгоритм и не утверждаю, что это справедливо для иных систем ПИД регулирования. Это пример того, как человек заблуждается, считая что, чем более быстрый клапан он применяет, тем более точный результат он получит. Просто Вы свою систему загоняете в автоколебательный режим. Причина- мы не знаем ничего об изменении регулируемого параметра в течении 1-2.5 сек (если ПЛК имеет собственные аналоговые входы) или 1-6 сек (если используете модуль аналогового ввода), мы не можем выдать импульс длительностью 50 мс так, как это время сравнимо с рабочим циклом Вашего ПЛК (включаем в одном цикле, выключаем в другом -даже если цикл 10 мс длительность сформированного импульса получится от 50-60 мс). Иными словами Мы всегда будете выдавать сигнал с перерегулированием. В этом и причина "дергания" клапана. Ещё возможная причина-Вы не учитываете, что нулевого рассогласования не бывает, и поэтому сравнивать надо не с нулем, с заранее заданной абсолютно малой величиной, например, с десятой долей зоны нечувствительности.

Ворона
29.12.2014, 19:53
Это пример того, как человек заблуждается, считая что, чем более быстрый клапан он применяет, тем более точный результат он получит. Просто Вы свою систему загоняете в автоколебательный режим. Причина- выне знаете ничего об изменении регулируемого параметра в течении 1-2.5 сек (если ПЛК имеет собственные аналоговые входы) или 1-6 сек (если используете модуль аналогового ввода), вы не можете выдать импульс длительностью 50 мс так, как это время сравнимо с рабочим циклом Вашего ПЛК (включаем в одном цикле, выключаем в другом -даже если цикл 10 мс длительность сформированного импульса получится от 50-60 мс). Иными словами Вы всегда будете выдавать сигнал с перерегулированием. В этом и причина "дергания" клапана. Ещё возможная причина-Вы не учитываете, что нулевого рассогласования не бывает, и поэтому сравнивать надо не с нулем, с заранее заданной абсолютно малой величиной, например, с десятой долей зоны нечувствительности.

Ваша проблема Николай в том что вы торопитесь с выводами не зная о чем речь. По всей видимости вы так и не разобрались с алгоритмом работы ШИМ, или не посчитали нужным для себя разобраться, а уже делаете "громогласные", безапелляционные и соответственно ошибочные заявления. Если говорить конкретно о 50 мс, о которых идет речь, то это минимальный (зона нечувствительности) результат вычислений модуля ПИД и ШИМ, (контроллера) время длительности импульса который можно подавать на исполнительный механизм для необходимого для достижения равновесия системы. Которое получено за "время реверса" равное 10 сек. (за это время уже все измерялось и посчиталось), если говорить о моем, алгоритме, а зона нечувствительности определяется в сек. в параметре "работа" смотрим картинку http://www.owen.ru/forum/attachment.php?attachmentid=15275&d=1416318583 и составляет 0,05 сек (50 мс.), что и есть зона нечувствительности установленная мной для конкретного клапана, для клапанов с другим временем полного хода значение должно быть иным (как высчитывается минимальное время хода механизма я думаю вы знаете лучше меня). Все вычисленные результаты которые меньше этого значения просто отсекаются (теряются), ибо подавать их на клапан не имеет смысла.
ga-nozry предложил все эти неучтенные, "отсекаемые" импульсы суммировать, (с целью получения еще более точного регулирования) и при достижении суммы их значения больше или равно зоне нечувствительности механизма 50мс (время "работы" см. картинку) подавать на клапан. Так как неучтенные, или отсекаемые импульсы начинают "появляться", когда система почти полностью уравновешена, разница между Твход. и Туст. составляет +-0,5гр., и процесс протекает медленно и "вяло" (клапан в этот момент стоит). Я проверил предложение ga-nozry на практике у себя на стенде скорректировав алгоритм ШИМ, о чем и написал. И предложил увеличить время опроса (наблюдения) за ПИД регулятором "время реверса" (так я назвал по аналогии с Овенским ТРМ212), в результате чего можно получить более точный результат. "Работа" = 50мс самая малая величина которую рекомендую ставить, ниже ее уже реле физически не успевает замкнутся и "дать" необходимый импульс.
Причина "дерганья" клапана при изменении алгоритма, именно в этом, (я говорю про свой ШИМ) проверенно!!!
И последнее, я не хочу вас учить, судя по всему теоретическая база знаний у вас сильная, но вам не мешает понаблюдать за работой ПИД регуляторов выпускаемых промышленностью, Вы, человек который написал нерабочий алгоритм ПИД регулирования, при этом учите всех на форуме как правильно его составлять. Вам не кажется, что это не совсем корректно?

Ефремов Николай
30.12.2014, 05:41
Прошу прощения, если чем-то обидел. Но я не собирался кого-либо учить, моей целью было указать на возможную причину "дергания клапана". На Вашей картинке я вижу, что Вы используете СПК, и , следовательно, когда будете использовать его не только как 1 ПИД-регулятор (что крайне не рационально), то ещё раз внимательно прочитайте мой пост на который Вы обидились, может это натолкнёт Вас на правильное решение.

Вы, человек который написал нерабочий алгоритм ПИД регулирования, при этом учите всех на форуме как правильно его составлять.. Действительно, выложенный мною проект импульсного регулятора был нерабочим из-за ошибок и недопонимания некоторых процессов происходящих при работе СПК или ПЛК. Но я и выкладовал его для того, чтобы кто-нибудь подсказал в чём я ошибаюсь. Сейчас, после исправления ошибок, этот модуль прекрасно работает на СПК207. И без претензий на "сверхточность" отклонение от задания +/-0,3 град. при зоне нечувствительности 1 град. Минимальная длительность импульса 0,5 сек, время полного хода клапана 40 сек. К СПК прицеплены 3 аналоговых модуля МВ110-8А, клапанами управляю через МУ110-16Р (у меня 6 регуляторов).
15940
15941
15942

Ворона
30.12.2014, 10:09
Действительно, выложенный мною проект импульсного регулятора был нерабочим из-за ошибок и недопонимания некоторых процессов происходящих при работе СПК или ПЛК. Но я и выкладовал его для того, чтобы кто-нибудь подсказал в чём я ошибаюсь. Сейчас, после исправления ошибок, этот модуль прекрасно работает на СПК207. И без претензий на "сверхточность" отклонение от задания +/-0,3 град. при зоне нечувствительности 1 град. Минимальная длительность импульса 0,5 сек, время полного хода клапана 40 сек. К СПК прицеплены 3 аналоговых модуля МВ110-8А, клапанами управляю через МУ110-16Р (у меня 6 регуляторов).

Так выложите на форуме новый, или исправьте старый ПИД, думаю будет интересно и полезно всем.

Ефремов Николай
23.01.2015, 08:04
Так выложите на форуме новый, или исправьте старый ПИД, думаю будет интересно и полезно всем.
Вот 6 ПИД регуляторов на 1 СПК207. Можно увеличивать до нужного количества(либо уменьшить).

Монтёр
14.02.2015, 09:13
Мой вариант сопряжения трехточечного исполнительного (без датчика положения) с ПИД регулятором из библиотеки Util (выходы менять местами) или Oscat_basic (с ней и проверял). https://yadi.sk/d/pTuXnBjaepY2U Это не ШИМ в моем понимании, а именно интерфейс или преобразователь. В отличии от многих вариантов, ноль выходного сигнала регулятора при нулевом отклонении от уставки ему по барабану.
Пробовал на своем отоплении. Кто попробует применить на другом оборудовании - буду признателен за отзывы в личку.

16794

nn19999
05.03.2015, 12:51
ШИМ(PWM) - это выходной элемент ==(пропорциональная.составляющая х коэфф.пропорциональности)+(дифференциальная.состав ляющая х диф.коэффициент)+(интегральная.сост х инт.коэфф ) классика!!!!!!!!!!!!

nn19999
05.03.2015, 12:53
если коэффициенты все три - подобраны правильно- рысканий нет !!!!!!!!!!!!!

Монтёр
05.03.2015, 14:14
ШИМ(PWM) - это выходной элемент ==(пропорциональная.составляющая х коэфф.пропорциональности)+(дифференциальная.состав ляющая х диф.коэффициент)+(интегральная.сост х инт.коэфф ) классика!!!!!!!!!!!!
Ничего не путаете? ПИД регулятор (https://ru.wikipedia.org/wiki/%CF%C8%C4-%F0%E5%E3%F3%EB%FF%F2%EE%F0)
Широтно-импульсная модуляция (https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%80%D0%BE%D1%82%D0%BD%D0%BE-%D0%B8%D0%BC%D0%BF%D1%83%D0%BB%D1%8C%D1%81%D0%BD%D 0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1 %86%D0%B8%D1%8F)

Karrimdra
30.03.2015, 22:38
Тоже мучался с тем как совместить ПИД регулятор (взял из UTIL.LIB) и двухходовой клапан с трехточечным регулированием без обратной связи.

Писал и исправлял и проверял недели 2 все пытаясь написать "мат модель клапана" вычисляющую положение исходя из полного времени открытия и все не то. Почитав данную ветку до середины вечерком, пришел и написал блок ШИМ (прокладку), на которую ушол час, работает великолепно, выходит на уставку +- 0,5 градуса за время пока я курю сигарету и больше не дергается.
Все оказалось просто, забил на позицию клапана просто добавляю импульс если выход ПИД увеличивается или уменьшается с длительностью в зависимости от рассогласования выхода ПИД за время от предыдущего снятия показаний. Ход клапана 60 секунд у меня, поставил 3 секунды частоту имульсов и 500 мс минимальную длительность импульса (значения взял на угад, но так и не менял, заработало с первого раза).
Спасибо форумам, регулирует температуру отопления в ИТП. А ещё бонусом получилось самопозиционирование, так что блоку все равно в какой момент его запускают и в каком положении при старте клапан.

Монтёр
30.03.2015, 23:17
Я примерно так же делал... (*Расчетная формула Тимп = dY/(Ymax-Ymin)* время полного хода ИМ *) + добавил учет мин. времени реверса и время люфта, а также возможность постоянного открытия/закрытия при Y=Yмах(мин)...


(* Интерфейс трехточечного управления исполнительным механизмом
без датчика положения.*)
(*ПКК Ладья, 2015 г. www.pkk-ladya.ru*)


FUNCTION_BLOCK Valve_Interface_No_Pos
VAR_INPUT
IN_VAL: REAL; (*К выходу регулятора*)
Y_MIN: REAL :=-100; (*Нижний предел выходного сигнала регулятора *)
Y_MAX: REAL :=100; (*Верхний предел выходного сигнала регулятора *)
LIMIT_Y: BOOL :=0; (*Постоянное открытие при IN_VAL >= Y_MAX или закрытие при IN_VAL <= Y_MIN*)
RUN: BOOL; (*Включение*)
FULL_MOTION_TIME :REAL :=45; (*Время хода ИМ, сек *)
MIN_WORK:REAL :=0.5; (*Минимальное время импульса*)
REVERS_TIME :REAL :=1; (*Время реверса ИМ, сек*)
LUFT_TIME: REAL :=0; (*Время люфта в соединениях ИМ, сек *)
END_VAR
VAR_OUTPUT
MORE:BOOL; (*Выход БОЛЬШЕ*)
LESS: BOOL; (*Выход МЕНЬШЕ*)
END_VAR
VAR
L_skaly: REAL;
TOF_1: TOF;
TOF_2: TOF;
Y1: REAL;
X: BOOL;
dY: REAL;
T_imp: REAL;
Pusk: BOOL;
Rass: REAL;
Znak: BOOL;
TP_1: TP;
Q_TP_1: BOOL;
TP_2: TP;
Q_TP_2: BOOL;
PT_1: REAL;
T_PWM : REAL;
Y_old : REAL;
Rev: BOOL;
TP_Rev: TP;
RS_1: RS;
UP_Old: BOOL;
END_VAR

(*Расчетная формула Тимп = dY/(Ymax-Ymin)* время полного хода ИМ *)

TOF_1(IN:=NOT X AND RUN, PT:=REAL_TO_TIME(1000*MIN_WORK), Q=>X , ET=>); //Цикл измерения
IF X=0 THEN dY:=IN_VAL-Y_old; Y_old:=IN_VAL; END_IF; //Определение изменения вых сигнала за мин время импульса

L_skaly:=Y_MAX-Y_MIN; //Диапазон сигнала регулятора
IF L_skaly=0 THEN L_skaly:=200; END_IF; //Защита от деления на ноль при неподсоединении входов или отсутствии значений
Rass:=MIN_WORK*dY/L_skaly; //Рассогласование

IF ABS(T_Imp) >= MIN_WORK AND NOT Pusk THEN //Как только величина накопленного импульса превышает мин время импульса и импульс при этом не выдается на выход
T_PWM:=T_Imp; //время управления выходом становится равным длит накопл импульса
T_Imp:= 0; //Время накопленного импульса сбрасывается
ELSE T_imp := T_Imp + Rass; //иначе накопленный импульс накапливается дальше
END_IF;

Znak S= T_PWM>0 AND Up_old OR T_PWM<0 AND NOT Up_old; //Любое изменение направления знака импульса вызывает "взвод" переменной Znak
IF Znak THEN PT_1:= ABS(T_PWM) + LUFT_TIME; ELSE PT_1:= ABS(T_PWM); END_IF; //При изменении направления к времени мпульса добавляется время люфта,
TP_Rev (IN:= Znak AND NOT Pusk , PT:=REAL_TO_TIME(1000*REVERS_TIME), Q=>Rev , ET=>); // а также задержка пуска на время реверса

TOF_2(IN:= (ABS(T_PWM)>0 AND NOT Pusk AND NOT Rev), PT:=REAL_TO_TIME(1000*PT_1) , Q=> Pusk, ET=>); //Запуск импульса
IF NOT Pusk AND NOT Rev THEN T_PWM:=0; Znak R=TRUE; END_IF; //По его окончании сброс времени управления выходом и переменной Znak

IF RUN THEN //Если включено...
IF IN_VAL<=Y_MIN AND LIMIT_Y AND NOT LESS THEN MORE:=1;
ELSIF IN_VAL>=Y_MAX AND LIMIT_Y AND NOT MORE THEN LESS:=1; //Если регулятор уперся в ограничение, то соотв. выход открывается постоянно.
ELSE
IF Pusk AND T_PWM<0 AND NOT LESS THEN MORE:=Pusk; //Если пер UP вверх, не открыто вниз и сигнал Пуск, то запускается открытие
ELSIF Pusk AND T_PWM>0 AND NOT MORE THEN LESS:=Pusk; //Аналогично закрытие
ELSE LESS:=0; MORE:=0; //Иначе отключается
END_IF;
END_IF;

RS_1(SET:= MORE, RESET1:=LESS , Q1=> UP_Old); //Триггер запоминает знак предыдущего импульса
ELSE T_Imp:=0; T_PWM:=0; Pusk:=0; MORE:=0; LESS :=0; PT_1 :=0; Znak:=FALSE; //Если выкючено - то все обнуляется
END_IF;

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

Эдуард_Н
31.03.2015, 04:23
Тоже мучался с тем как совместить ПИД регулятор (взял из UTIL.LIB) и двухходовой клапан с трехточечным регулированием без обратной связи.

Писал и исправлял и проверял недели 2 все пытаясь написать "мат модель клапана" вычисляющую положение исходя из полного времени открытия и все не то. Почитав данную ветку до середины вечерком, пришел и написал блок ШИМ (прокладку), на которую ушол час, работает великолепно, выходит на уставку +- 0,5 градуса за время пока я курю сигарету и больше не дергается.
Все оказалось просто, забил на позицию клапана просто добавляю импульс если выход ПИД увеличивается или уменьшается с длительностью в зависимости от рассогласования выхода ПИД за время от предыдущего снятия показаний. Ход клапана 60 секунд у меня, поставил 3 секунды частоту имульсов и 500 мс минимальную длительность импульса (значения взял на угад, но так и не менял, заработало с первого раза).
Спасибо форумам, регулирует температуру отопления в ИТП. А ещё бонусом получилось самопозиционирование, так что блоку все равно в какой момент его запускают и в каком положении при старте клапан.

Уважаемый Karrimdra, можете выложить для посмотреть Ваш вариант?

Эдуард_Н
31.03.2015, 10:56
d-view, это всё тот же проект (http://www.owen.ru/forum/showthread.php?t=20892), или доработанный?

d-view
31.03.2015, 23:03
Чуток допилил.

василий17061980
11.12.2017, 05:50
Наконец то!!!
После двух месяцев трудов и поисков мне удалось наконец написать полностью работоспособный ШИМ для клапана без датчика положения.
В проекте использовались только блоки из стандартной библиотеки CoDeSys и из Util собственно, сам ПИД регулятор, испытания проводил на этом стенде https://yadi.sk/i/0VWFUN4ecnPiQ
ссылка на мой Яндекс диск. Как это не удивительно я не являюсь специалистом в области составления алгоритмов ПИД регулирования, но результат меня приятно удивил.
Может мне показалось но мой ПИД регулятор на заданную уставку выходит лучше чем ТРМ212 почти без "проскока" и держит температуру -+ 1 гр. с от заданной уставки.
Конечно алгоритм еще требует доработки, но проект полностью работоспособен, и может использоваться на реальных объектах регулирования.
Тестировал в течении нескольких часов и остался доволен результатом. По его принципу написал алгоритм в CoDeSys v2.3 на ПЛК110, и также остался доволен результатом.
И чему несказанно был рад, что, клапан не дергался туда-сюда почти сразу нашел нужную точку и встал в необходимое положение.
Выкладываю проект в свободный доступ, ничего не закодировано и не запаролено. Буду рад любым доработкам и улучшениям, также надеюсь, что вы протестируете у себя на объектах, стенд стендом, а реальный объект, это совсем другое. Надеюсь что все выложил правильно на форуме и с открытием файла проекта проблем не возникнут, я новичок в этом деле.
Стенд обрезано: 15273
Фото моих уставок 15275
Всем кто использует в своих проектах PID из Util, нужно иметь ввиду и предусмотреть способ сброса ПИДа при смене уставки, как показали мои наблюдения на некоторое время ему (ПИДу) первое время "сносит" "башню".
А выражаясь грамотно происходит "удар" при регулировании. И это правильно, просто ПИД выдает результат с учетом новой уставки и накопленной старой интегральной составляющей.

22.11.2014г.
Тестировал ШИМ, и PID из библиотеки Util, на даче у своего коллеги (на форуме зарегистрирован как "Монтер", огромное ему спасибо), остались оба доволены результатом, правда в начале нам пришлось по-колдовать с Кp, Tn, Tv но результат получили хороший -+ 1,5 гр. после выхода на уставку 55гр., это при условии что газовый котел работал дискретно в диапазоне от 70гр. до 90гр..
Я устранил проблему с "броском" во время смены уставки и добавил блок архивации (кому не нужно можно удалить) по двум параметрам.
Скорректированный проект с архивацией также выкладываю (надеюсь все откроется без проблем).
Фото объекта 15386

Доработал; Перевел в данные с уставки и с датчика в целое число, тоесть без запятой, затем завел их в EQ получил буливое значения когда они равны, это значения завел через инверцию на вход PWM и на сброс пид регулятора через R_TRIG. Теперь когда значения фактическое схоже с уставкой булевый сигнал отключает PWM, и через передний фронт дает импульс на сброс пидрегулятора. Работает идеально!!!!

Dallas
09.04.2018, 12:07
Хочу реализовать на ПР200 алгоритм управления КЗР. У кого есть последняя версия ПИ для КЗР поделитесь.

n200nn22
31.03.2021, 16:28
Доброго времени суток уважаемые форумчане. Заинтересовался данной темой. Стоит у меня задача сделать управление ИТП на codesys. Будьте добры поделитесь регулятором для клапана (больше/меньше) или ткните носом где взять. За ранее благодарен. Всем здоровья!

Ворона
09.03.2024, 12:22
Написал новый алгоритм ПИД с АВТОНАСТРОЙКОЙ, без использования сторонних библиотек.
ПИД написан в CodeSys 2.3.
Программа предназначена для работы с ПЛК110.60 работающий совместно с аналоговым модулем МВ110-224.8А (использован один канал).
К сожалению в режиме симуляции работать не будет. Почему?
Дело в том что для корректной работы ПИД нужно знать время между измерениями, которое в свою очередь "берется" из модуля МВ110-224.8А.
74183
Более того поскольку время выполнения программы может варьироваться в зависимости от ее сложности. Поэтому расчет времени работы ПИД опирается именно на эту переменную.
Блок проверен на реальных объектах.
Желающие "по ковыряться" внутри блока, одобряются. Ничего не за паралено, и ограничений к доступу нет.
При автонастройке реализован метод единичного воздействия (немного доработанный, согласно реальному объекту). Как показала практика, работает хорошо но не является панацеей.
В случае чего коэффициенты можно подобрать в ручную.
74184

Ну и сама программа!!!!!
74185

Немного намудрил с расчетом скорости изменения уставки. Выяснилось на объекте (понадобилась данная величина) Исправления показаны в файле.
74688

Блок ПИД в CodeSys 3.5 уже реализован компанией Овен. Я проверил работает хорошо.

IVM
09.03.2024, 13:28
Написал новый алгоритм ПИД с АВТОНАСТРОЙКОЙ, без использования сторонних библиотек.
ПИД написан в CodeSys 2.3.
Программа предназначена для работы с ПЛК110.60 работающий совместно с аналоговым модулем МВ110-224.8А (использован один канал).
К сожалению в режиме симуляции работать не будет. Почему?
Дело в том что для корректной работы ПИД нужно знать время между измерениями, которое в свою очередь "берется" из модуля МВ110-224.8А.
74183
Более того поскольку время выполнения программы может варьироваться в зависимости от ее сложности. Поэтому расчет времени работы ПИД опирается именно на эту переменную.
Блок проверен на реальных объектах.
Желающие "по ковыряться" внутри блока, одобряются. Ничего не за паралено, и ограничений к доступу нет.
При автонастройке реализован метод единичного воздействия (немного доработанный, согласно реальному объекту). Как показала практика, работает хорошо но не является панацеей.
В случае чего коэффициенты можно подобрать в ручную.
74184

Ну и сама программа!!!!!
74185

Блок ПИД в CodeSys 3.5 уже реализован компанией Овен. Я проверил работает хорошо.

Зачем на выходе ПИД это ?

kondor3000
09.03.2024, 13:59
Написал новый алгоритм ПИД с АВТОНАСТРОЙКОЙ, без использования сторонних библиотек.
ПИД написан в CodeSys 2.3.
Программа предназначена для работы с ПЛК110.60 работающий совместно с аналоговым модулем МВ110-224.8А (использован один канал).
К сожалению в режиме симуляции работать не будет. Почему?
Блок ПИД в CodeSys 3.5 уже реализован компанией Овен. Я проверил работает хорошо.

А зачем самому писать RS_Trig_V, R_Trig_V и тем более ABS, если всё есть в стандарте?
При чём TOF берётся из стандартной биб-ки )))

Ворона
09.03.2024, 16:24
Зачем на выходе ПИД это ?

Просто комментарий. Забыл удалить

Ворона
09.03.2024, 16:27
А зачем самому писать RS_Trig_V, R_Trig_V и тем более ABS, если всё есть в стандарте?
При чём TOF берётся из стандартной биб-ки )))

Господа инженеры!!!
Проверяем, анализируем, вносим свои изменения (если требуется).
Непонятно как запустить спрашивайте. А пустые вопросы задавать не нужно.
Не тратьте свое и мое время.
Не нравится? Пишите свой!