Мы пытаемся сделать систему балансировки (с реактивным колесом) с ПИД-регулированием тока и угла.
Вся схема состоит из двигателя постоянного тока, источника питания, датчика тока и MPU6050 (для угла). Процесс системы заключается в том, что ПИД-регулятор угла определяет величину требуемого тока (в форме рабочего цикла для ШИМ в Arduino) и передает ПИД-регулятор тока для создания величины требуемого крутящего момента (чтобы предотвратить его превышение). ток).
Я смоделировал части всей системы в Simulink и Matlab, но реализация имеет значение.
Сейчас работаю над текущей частью. Сначала я установил датчик тока (INA260) в + линию двигателя постоянного тока, но проблема в том, что текущие данные должны быть непрерывными. Двигатель управляется ШИМ в драйвере двигателя, поэтому данные имеют много шума из-за сигналов ШИМ (я проверил это, построив график на ПК).
Ранее я использовал аналоговый датчик тока ACS758, но и тогда не смог справиться с этой проблемой. Насколько мне известно, использование фильтров для текущего сигнала может привести к некоторой задержке в системе, но я не знаю хорошего способа собрать данные без фильтра.
И как я могу сделать текущее PI-управление? Есть ли хорошее решение для этого?
Собранный текущий сигнал:
Это вопрос годовой давности, и мы не получили ответа от ОП, но я подумал, что могу внести некоторые предложения на случай, если у кого-то еще возникнет аналогичная проблема.
Вы можете эффективно устранить шум в текущем сигнале, сэмплируя его сразу после включения ШИМ-сигнала. По крайней мере, это должно давать стабильные показания, пропорциональные току. И вы можете сэмплировать ШИМ 3 кГц со скоростью от 10 до 20 выборок в секунду и выполнять быстрый расчет истинного среднеквадратичного значения.
Датчик Холла является хорошим способом считывания тока двигателя, но существуют также шунтирующие датчики высокого бокового тока, такие как HV7800 и INA195, которые недороги и достаточно быстры.
Аналоговый фильтр нижних частот является обязательным для сглаживания АЦП. Вы должны увеличить частоту ШИМ, использовать достаточно высокую частоту дискретизации для АЦП с аналоговым ФНЧ с отсечкой 1/3 частоты дискретизации АЦП. Затем обработайте все в MCU, используя цифровой КИХ-фильтр LPF. Конечно будет небольшая задержка, которая ограничит динамику системы, но не так сильно, если все сделать правильно.
Я думаю, вам понадобится MCU с достаточным количеством ресурсов (скорость вычислений).
дандавис