Как я могу выполнить дискретную интеграцию данных гироскопа?
Гироскопы, которые измеряют скорость поворота углов при интеграции, дают углы, верно? мой вопрос, как мне это сделать? то, что я делаю до сих пор, это просто добавление всех углов, которые я обнаружил, и это, кажется, очень неправильно
AngleIntegrated = GyroDegPersec * (1/GyroBandWidth);
предложения очень приветствуются. Спасибо
3 ответа
Зная, что, конечно, вы не можете рассчитывать на правильное значение в долгосрочной перспективе (благодаря интеграции ваше окно ошибок всегда будет увеличиваться со временем), что я сделал бы, читая гироскоп, интерполируя текущее чтение и несколько предыдущих, чтобы получить плавная кривая (например, парабола, использующая текущее чтение и предыдущие два), а затем вычисление интеграла этой параболы из времени последнего чтения и текущего времени.
Вы должны интегрироваться с учетом времени. Поэтому в идеале вы должны производить выборку гироскопа через регулярные (фиксированные) интервалы времени T, а затем включать этот интервал выборки T в интегральные вычисления.
Обратите внимание, что T должен быть достаточно маленьким, чтобы удовлетворять критерию Найквиста.
Вы можете интегрировать в дискретную область. Предположим, что угловая скорость равна да, это интеграл по времени. k - это номер дискретного шага.
a(k) = a(k-1) + T*0.5*(da(k) + da(k-1))
Например, da (k) - текущее значение угловой скорости. da(k-1) - предыдущее значение угловой скорости чтения. a(k-1) - значение интегрирования предыдущего шага (угол поворота). Т - частота дискретизации. Если датчик выдает каждую 1 миллисекунду, T становится 0,001.
Вы можете использовать эту формулу, когда k>0. Начальное значение a (0) должно быть задано.