Есть ПИД-регулятор. Есть клапан, который управляется дискретными выходами Открыть, Закрыть, с него приходят дискретные Открыто/Закрыто.
Время полного хода клапана - 100 секунд.
Написал впервые что-то на ST, оцените, может кто-то что-то дополнит. Может кому-то понадобится.
Коротко: запоминается предыдущее воздействие, рассчитывается новое как разница предыдущее-новое.
В другой части программы обрабатываю условия, если ПИД выдал 0% или 100%, то выдаю на соответствующие выходы время равное 1,2 полного хода, чтоб клапан точно дошёл.
Как запихнуть подобное условие в этот блок - я не смог разобраться.
А может уже есть готовые кейсы подобного управления и я просто изобрёл велосипед.
Скрытый текст:


Ответить с цитированием
