Релейный регулятор

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

Действия формулируются по следующим правилам:

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

- Если требуемая скорость ниже текущей скорости, то уменьшить питание двигателя на определенную величину.
В простейшем случае питание двигателя либо включается, либо выключается. Замеры текущей скорости и соответствующие им действия должны проводиться достаточно часто, например 100 раз в секунду.
График работы двигателя для поддержания определённой скорости. В начальный момент времени двигатель не работает. Фактическая скорость меньше требуемой, поэтому двигателю подается сигнал управления в виде постоянного напряжения. Напряжение поддерживается пока текущая скорость не превысит требуемое значение. В этот момент управляющий сигнал устанавливается в 0. Через некоторое время текущая скорость снова падает до значения, ниже требуемого, и управляющий сигнал устанавливается в прежнее постоянное значение напряжения. Этот алгоритм выполняется в течение неопределенного долгого времени, при этом требуемая скорость может варьироваться.
Двухпозиционный регулятор - простейший из возможных методов управления. Он используется во многих технических системах и не только для управления двигателями (термостат, нагреватель).

Пример программы

Необходимо разработать подпрограмму расчета управляющего сигнала. Подпрограмма должна

- Считывать данные с энкодера (входное значение)
- Вычислять новое выходное значение
- Устанавливать скорость двигателя (выходное значение)
Эта подпрограмма должна вызываться периодически и проводить опрос энкодера. Управление двигателем это задача "низкого уровня", поэтому ее следует выполнять в фоновом режиме, чтобы она не мешала работе пользовательской программ.