Как я могу выполнить дискретную интеграцию данных гироскопа? - PullRequest
1 голос
/ 11 января 2011

гироскопы, которые измеряют скорость поворота углов при интеграции, дают углы, верно? мой вопрос, как мне это сделать? что я делаю до сих пор - это просто добавляю все углы, которые я обнаружил, и это кажется очень неправильным

AngleIntegrated = GyroDegPersec * (1/GyroBandWidth);

предложения очень приветствуются. спасибо

Ответы [ 3 ]

2 голосов
/ 11 января 2011

Вам необходимо интегрировать по времени . Поэтому в идеале вы должны производить выборку гироскопа через регулярные (фиксированные) интервалы времени T, а затем включать этот интервал отбора проб T в интегральные вычисления.

Обратите внимание, что T должен быть достаточно маленьким, чтобы удовлетворять критерию Найквиста.

1 голос
/ 17 февраля 2011

Вы можете интегрировать в дискретный домен.Предположим, что угловая скорость равна да, это интеграл по времени.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).

0 голосов
/ 11 января 2011

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

...