Рабочий цикл ШИМ Регулировка оборотов посредством измерения тока двигателя постоянного тока

У меня есть двигатель постоянного тока, обороты которого должны регулироваться, то есть он должен вращаться с постоянными оборотами независимо от нагрузки. Я читал, что это можно сделать, контролируя ток через обмотки двигателя и соответствующим образом линейно увеличивая управляющее напряжение двигателя.

У меня есть треугольный осциллятор и компаратор для генерации ШИМ. Опорное напряжение (колеблется от 0 до 10 В) на компараторе «выбирает» желаемый рабочий цикл. ШИМ работает на частоте 20 кГц. Двигатель приводится в действие этим ШИМ через PMOS с измерением тока нижней стороны через OPAMP.

Линейное увеличение тока линейно увеличивает опорное напряжение, что опять-таки линейно увеличивает рабочий цикл.

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

У меня мог бы быть операционный усилитель с измерением тока со смещением, чтобы генерировать некоторый общий рабочий цикл (опорное напряжение) без тока. Но это все равно вызовет падение рабочего цикла при отключении PMOS.

Я думаю, что PI-регулятор сделан с интегратором OPAMP, будет ли это работать, как мне его реализовать?

С наилучшими пожеланиями!

РЕДАКТИРОВАТЬ: это PMOS с двигателем и токоизмерительным резистором на нижней стороне.

звучит немного так, как будто все это стало бы проще, если бы микроконтроллер решил проблему :)
Если вы хотите регулировать скорость двигателя, НЕ измеряйте ток, так как он будет зависеть от нагрузки. Измерьте скорость вращения либо по одному импульсу на оборот, либо с помощью многоимпульсного датчика. Затем вы увеличиваете ШИМ в цикле, чтобы поддерживать постоянную скорость. Измеряйте ток, только если вы хотите обнаружить превышение тока.
Если вы не хотите ощущать скорость, контролируйте напряжение якоря. Напряжение якоря пропорционально скорости. Для лучшего регулирования скорости вы можете использовать датчик тока для расчета дополнительного напряжения, чтобы компенсировать падение напряжения из-за сопротивления якоря.
@MarcusMüller У меня есть только 8-битные AVR, АЦП со скоростью 15 квыб/с, что слишком медленно.
@JackCreasey У меня нет доступа к валу и я не могу установить энкодер.
@CharlesCowie Это то, что я уже делаю, проблема в том, что PMOS отключен. Это вызвало бы большие изменения в рабочем цикле между переключениями и привело бы к неравномерному вождению (я так думаю?)

Ответы (1)

Как отметил @JackCreasy, датчик тока сам по себе не даст вам правильных оборотов, поскольку ток зависит от нагрузки.

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

  • Например, индуктивный датчик приближения можно использовать с металлической шестерней или турбиной.
  • Датчики на эффекте Холла можно использовать с вращающимися деталями из железа или с пластиковыми деталями, если в них можно встроить крошечный магнит.
  • Инфракрасные или лазерные диоды можно использовать практически с чем угодно. Обычно нужны две поверхности с разным отражением (например, наклеив куда-нибудь отражающую ленту), но при грамотной расстановке фокусных точек и чувствительности можно обойтись и без нее. В другой конфигурации прямой световой путь прерывается вращающейся частью.
  • Наконец, вы можете поместить энкодер на вращающуюся часть. Если у вас есть редуктор и скорость вращения намного меньше, чем вал двигателя, это просто означает, что вам нужен энкодер с большим PPR.

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

Вы упомянули, что вас беспокоит состояние, когда PMOS выключен. Но именно тогда срабатывает обратная ЭДС, которую можно измерить, чтобы обнаружить коммутацию щеток.

Смотрите здесь и здесь для примеров и теории.

Обновление: нашел еще пару примеров для вас. Они не учитывают коммутационные колебания, а просто измеряют противо-ЭДС во время выключения полевого транзистора: AB-021 , AN893