Aseris писал(а):Вопрос такой: Есть мотор который управляется ШИМ, нагрузка мотор может вариироватся. Напряжение питания тоже варируется. Есть энкродер. Вопрос куда копать по поводу поиска алгоритма управления. Простой PID не катит ибо модель поведения мотора меняется от напряжения, PID начинает колбасить при изменении напряжения питания
.
Время выхода на заданые обороты 0.1-0.5s
Подобный алгоритм мы рассматривали тут
forum87/topic7318-255.html#p298989какой драйвер двигателя используете?
ШИМ разные бывают.
ПИД хорошо отрабатывает любые изменения нагрузки, главное частоту итераций выбрать как можно большей.
при заданных 100ms-500ms частоту желательно выбрать в 10 раз больше т.е. 1/10ms - 1/50ms но лучше как можно больше (зависит от ресурсов контроллера и вашей щедрости
).
Но тут много разных но, главное но - разрешение энкодера, сколько импульсов будет при минимальной необходимой скорости за 10ms?
Для стабилизации оборотов можно использовать не только энкодер но и противо ЭДС, если обороты двигателя, для вашего рабочего диапазона, достаточно высоки.
Плюс в том что это аналоговая линейная обратная связь, т.е. данные доступны в любой момент времени и их достаточно легко получить, сигнал с делителя усиливается на ОУ и далее в АЦП.