PDA

Просмотр полной версии : Управление током 4-20мА клапаном типа "больше-меньше" с обратной связью



FPavel
15.02.2022, 13:44
Здравствуйте, уважаемые специалисты.

Существующая система управляет электроприводом по 4-20 мА.
Электропривод сломался, принято решение по быстрой замене привода на почти такой же, но управляемый сигналами "больше-меньше" 230 V - Regada с токовым датчиком положения (который исходно берёт положение с потенциометра).

Конвертер решили сделать на ПР200-24.2.1.

Сделал тестовую программку - с кнопок задаю уставку, компаратор с зоной нечувствительности даёт сигналы "открыть-закрыть", на экран вывожу измеренное значение. Точность позиционирования (0,1%+зона нечувствительности).

Какой алгоритм лучше выбрать?
1. Просто "регулятор с зоной нечувствительности"
2. То же, но добавить доводчик короткими импульсами до второй меньшей зоны нечувствительности.

Если есть опыт в таких работах - как в будущем поведёт себя датчик положения, какая-то обработка (фильтрация или что-то ещё) требуется, может быть другой алгоритм позиционирования применить?

maximov2009
15.02.2022, 15:26
Добрый день.
В своё время на форуме выкладывался макрос БУСП. Блок Управления Серво Приводом.
Вот он как раз преобразовывал аналоговый сигнал в сигнал управления таким клапаном.
Автора не помню.
Но у меня он до сих пор используется и работает больше 5 лет точно без нареканий.

maximov2009
15.02.2022, 15:27
Вот ещё из архива.

maximov2009
15.02.2022, 15:29
Ещё раз. Использовалось для ПР114.
Для 200 должно пойти.
С уважением.

FPavel
15.02.2022, 15:47
Спасибо, сейчас посмотрю, только первые два почему-то не загружаются.

Пока сделал с доводчиком короткими импульсами, "голый" привод без нагрузки нормально позиционируется.

БУСП из Бусп_М2 может не остановиться, т.к. нет условия останова кроме рассогласования, равного нулю.


Сделал так:
1. задаю две зоны нечувствительности:
- завершение перемещения - примерно 0,1%
- начало приближения короткими импульсами - примерно 0,3%
2. трёхпозиционный регулятор с зоной нечувствительности (больше/меньше/останов)

3. Пока рассогласование больше зоны нечувствительности начала приближения короткими импульсами - приближение непрерывным сигналом (больше/меньше)
4. Когда рассогласование уменьшается до этой зоны нечувствительности - подаются короткие импульсы для приближения к уставке
5. Когда рассогласование снизится до зоны нечувствительности завершения перемещения - перемещение останавливается.

Т.к. это не окончательный вариант, то для отработки на макете (ПР+Regada) задание ввожу с панели ПР200.

Сергей0308
15.02.2022, 22:54
Можно, как-то, примерно так и минимальную ступеньку на выходе сделать:

59345

FPavel
16.02.2022, 00:22
Не совсем уяснил положение этого элемента в общей задаче. Если не сложно - расскажите.

Нашёл по ссылке
https://owen.ru/forum/showthread.php?t=29803&p=293435&viewfull=1#post293435

А для чего столь изощрённое решение через элемент памяти на fSEL и разницы между выходами ПИД - текущим и цикл назад?

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

Сергей0308
16.02.2022, 10:02
Не совсем уяснил положение этого элемента в общей задаче. Если не сложно - расскажите.

Нашёл по ссылке
https://owen.ru/forum/showthread.php?t=29803&p=293435&viewfull=1#post293435

А для чего столь изощрённое решение через элемент памяти на fSEL и разницы между выходами ПИД - текущим и цикл назад?

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

Вы же ставите "мёртвую зону" по входу, это примерно тоже самое, но по выходу и привод будет меньше дёргаться, в смысле импульсы будут более редкие, но длиннее!

FPavel
16.02.2022, 12:22
Да, согласен, можно по выходу ставить зону нечувствительности.
Сама зона нечувствительности даже имеет формулы расчёта:

Tпх - время полного хода привода
Tmin - минимальное время импульса на привод, меньше которого привод не воспримет (обычно, 200-400мс)
OutDeadBand - изменение выхода ПИД регулятора (а также привода), соответствующее Tmin

OutDeadBand:=100% * (Tmin/Tпх) это и есть зона нечувствительности по выходу