Какой подход лучше для управления бесщеточным двигателем постоянного тока с рабочим циклом ШИМ

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

двигатель соединен с движущейся платформой. Я буду управлять двигателем с помощью ШИМ, а затем двигатель переместит платформу из -градусного положения в градусное.

введите описание изображения здесь

Для скорости движения необходимо установить настройку RPM, чтобы делать это каждый раз, когда она достигает пикового положения (0 градусов). Я считываю угловую скорость с гироскопического датчика, прикрепленного к платформе, а затем передаю значение на ПИД-регулятор.

Я хочу спросить, какой из них является правильным / лучшим подходом к управлению двигателем: (двигатель изначально останавливается)

(1) Начните с МИНИМАЛЬНОГО рабочего цикла (допустим, ~ 30% — это минимум, чтобы заставить платформу двигаться), затем я увеличиваю рабочий цикл с каждым временным интервалом (например, +1% каждые 100 мс), когда он достигает 0 градусов положение I начинаю торможение, уменьшая рабочий цикл (например, -2% каждые 100 мс), затем останавливаю двигатель при достижении конечного положения. Это будет один цикл, затем после завершения каждого 1 цикла я буду вычислять новое значение для увеличения и уменьшения для достижения настройки RPM.

(2) Из начального положения я запускаю двигатель с постоянным рабочим циклом, затем, когда достигается положение 0 градусов, начинаю торможение, как в подходе (1) с использованием уменьшения. Затем после завершения каждого 1 цикла я буду вычислять новое значение для используемой постоянной нагрузки, а также значение уменьшения при торможении.

Какой из них лучше АЛГОРИТМ с плюсами и минусами?

Заданный вопрос в основном заключается в том, имеет ли смысл начинать движение медленно или резко. Это зависит от того, ожидает ли ваше приложение, что платформа внезапно совершит большой прыжок (когда система включена), и способен ли двигатель обеспечить достаточную мощность, чтобы начать движение без проскальзывания.

Ответы (1)

Вы говорите, что собираетесь использовать ПИД-регулятор, но затем начинаете говорить о непосредственном управлении рабочим циклом двигателя. Я полагаю, что вы не понимаете, что такое ПИД-регулятор .

Вы должны использовать линейный контроллер, возможно, украшенный интегратором антизаключения. Вот базовая блок-схема, которая должна вам подойти. Блок «вращения» является своего рода вымышленным; это просто переход от скорости двигателя к положению двигателя.

Вам не нужны дурацкие последовательности с таймерами, операторами if и сотнями строк кода! Вам просто нужны простые линейные контроллеры, которые человечество делало последние 100 лет.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Нет-нет-нет, моя система не похожа на эту блок-схему. Хорошо, забудьте о PID, скажем, это просто использование программного кода, какой подход лучше (1) или (2)? Вот что я спрашиваю
Я почти уверен, что любой из них будет иметь одинаково мрачные результаты. Я занимаюсь этим уже 30 лет, и я убрал и после (1), и (2). Я знаю, о чем говорю. Тот факт, что что-то реализует цикл PID, не означает, что это не алгоритм, поэтому вы можете использовать блок-схему, которую я вам даю, и назвать ее алгоритмом.