Я пытаюсь построить двухколесный балансировочный робот для удовольствия. У меня есть все аппаратное обеспечение, построенное и собранное, и я думаю, что он тоже закодирован. Я использую IMU с гироскопами и акселерометрами, чтобы найти угол наклона с дополнительным фильтром для сглаживания сигнала. Входной сигнал от IMU кажется довольно гладким, как и менее 0,7 отклонения + или - фактический угол наклона.Балансирующий робот Настройка ПИД-регулятора
Моя частота дискретизации IMU составляет 50 Гц, и я делаю PID расчет при 50 Гц тоже, который, я думаю, должен быть достаточно быстрым.
В основном, я использую библиотеку PID, найденную по адресу PID Library.
Когда я устанавливаю значение P на что-то низкое, колеса идут в правильном направлении.
Когда я устанавливаю значение P в нечто большее, я получаю вывод, подобный графику.
Вам нужно сократить количество кода в вашем вопросе, никто не будет читать все это. Попробуйте сузить его, и вам будет намного легче помочь. Если потребуется больше, люди скажут вам, что им нужно. –
Стивен, я нахожу ваш проект увлекательным! Я предполагаю, что ИДУ является Инерционным измерительным блоком? @JoachimPileborg выше правильно, много кода и сложно вывести логику, не зная о вашем оборудовании. Я вижу, вы начинаете с PID = 0,0,0. Мое подозрение эти значения должны быть разными. Когда P высокий, вы говорите, что колеса идут в неправильном направлении, и это звучит так, как будто ваша программная логика неисправна. Я предлагаю вам описать проект на веб-сайте, если возможно, затем разместите ссылку здесь. Я заинтересован. Удачи. – user2019047
Спасибо @JoachimPileborg, я удалил код и добавил график, чтобы было легче увидеть, что я прошу. –