Как мы можем использовать акселерометр для оценки высоты?

9

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

Текущий прогресс:

  • Я исключил барометр, поскольку сфера моих исследований - только полеты в помещении, а отклонение барометра, по словам моего коллеги, составляет + -5 метров.
  • В настоящее время я использую ультразвуковой датчик (HC-SR04) для оценки высоты, который имеет разрешение 0,3 см. Однако я обнаружил, что частота обновления ультразвукового датчика 20 Гц слишком медленная, чтобы получить достаточно быстрый отклик для коррекции высоты.
  • Я попытался использовать ускорения на оси Z от акселерометра, чтобы получить данные о высоте, интегрируя ускорение, чтобы получить скорость, которая будет использоваться для ПИД-регулятора скорости в схеме каскадного контроллера пида. Текущая реализация для ПИД-регулятора высоты представляет собой однопетлевый ПИД-регулятор, использующий Р-контроллер с позиционным входом от ультразвукового датчика.
  • Я учел отрицательные измерения ускорения под действием силы тяжести, но независимо от того, сколько я вычисляю смещение, все еще существует отрицательное ускорение (например, -0,0034). Я вычислил гравитационное смещение, установив квадрокоптер на плоскую поверхность, а затем собрал 20 000 выборок с оси z акселерометра для усреднения, чтобы получить «смещение», которое сохраняется как постоянная переменная. Затем эта переменная вычитается из выходных данных оси z акселерометра, чтобы удалить смещение и установить его в «ноль», если он не ускоряется. Как сказано в вопросе, все еще существует отрицательное ускорение (например, -0,0034). Затем мой квадроцикл продолжает постоянно подниматься на высоту. Только с контроллером ультразвукового датчика P мой квадроцикл колеблется на 50 см.

Как можно эффективно бороться с этим постоянным отрицательным показанием ускорения?

Возможное решение : я планирую сделать каскадный ПИД-контроллер для удержания высоты с помощью внутреннего контура (ПИД-регулятор) с использованием акселерометра и внешнего контура (Р-контроллер) с использованием сонарного датчика. Мой консультант сказал, что даже однопетлевого контроллера P достаточно, чтобы квадрокоптер удерживал высоту даже при медленном датчике. Этого достаточно? Я заметил, что только с усилением P, квадрокоптер будет превышать свою высоту.

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

  • Leaky Integrator: я обнаружил, что эта статья объясняет, как он справлялся с отрицательными ускорениями с помощью негерметичного интегратора, однако у меня возникли некоторые затруднения с пониманием, почему это будет работать, поскольку я думаю, что отрицательная ошибка просто превратится в положительную ошибку, а не в решение проблемы. Я не совсем уверен. http://diydrones.com/forum/topics/multi-rotors-the-altitude-yoyo-effect-and-how-to-deal-with-it

  • Одноконтурный контроллер PD только с ультразвуковым датчиком: возможно ли это с помощью обратной связи от медленного датчика?

Источники:

user123456098
источник
Как вы рассчитываете гравитационное смещение? Какой это акселерометр? Можете ли вы связать таблицу?
Чак
1
колебание означает, что вам нужно демпфирование !!!
Holmeski
1
Помните, что при обмене стеками лучше отредактировать свой вопрос, чтобы добавить информацию, запрошенную в комментариях, а не добавлять больше комментариев. Комментарии предназначены для улучшения вопросов и ответов и отвлекают внимание, поэтому мы стараемся свести их к минимуму. Если в нем содержится вся информация, необходимая для ответа на вопрос, комментарии можно привести в порядок (удалить).
Марк Бут
@ Чак Я отредактировал пост с соответствующей информацией :)
user123456098
Я работаю над тем же проектом, в настоящее время я реализую Cascade PID Controller для стабилизации положения квадрокоптера с помощью Arduino, я хочу работать на высоте прямо сейчас. Вы реализуете это без оценки скорости?, И у меня есть вопрос, нужно ли мне оценивать трансформацию каркаса земля-тело или я могу реализовать это без трансформации
SALAM ALBARADIE

Ответы:

10

Барометр, который нес на ястребе, имеет высотное разрешение 10 см. Если этого недостаточно, вы можете написать фильтр Калмана, который использует данные акселерометра на этапе прогнозирования и ультразвуковой датчик и / или барометр на этапе коррекции.

Но я не вижу решения этой проблемы. Точного измерения высоты при 20 Гц должно быть достаточно, если все, что вы пытаетесь сделать, это удерживать высоту.

Какова постоянная времени / собственная частота и демпфирование на вашем контроллере?

Я полагаю, я не закончил читать твой вопрос сегодня утром (это было до моего кофе). Ускорение от imu - это измерение ускорения плюс сила тяжести. Чтобы получить инерционное ускорение imu, вычтите вектор гравитации из измерения. Вы никогда не сможете контролировать встроенные измерения ускорения. Измерения искажены шумом, и вы не можете исправить это.

--- ответ на контрольную часть вопроса

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

Первый проход в динамике системы выглядит

Z¨знак равноUм-г

где положительный Zвверх Давайте добавим компонент зависания к нашему дросселю, который имеет дело с гравитацией. Так

Uзнак равноUеб+Uчасоvер

Наша новая динамика выглядит

Z¨знак равноUеб+Uчасоvерм-гзнак равноUебм

Круто! Теперь мы разрабатываем закон управления, чтобы мы могли достичь желаемой высоты.

Наша система управления будет виртуальной пружиной и демпфером между нашим квадратором и желаемой высотой (это pd контроллер).

Z¨знак равноКп(Zdеs-Z)+Кd(Z˙dеs-Z˙)

Система должна теперь вести себя как система второго порядка. Кп а также Кd может быть выбран для достижения коэффициента демпфирования и естественной частоты, которую вы ищете.

На этом этапе я хотел бы повторить, что интеграция данных акселерометра не является правильным способом для получения оценок состояния. Если вы действительно хотите быстро собрать что-то вместе, передайте результаты измерений гидролокатора через фильтр нижних частот с соответствующей частотой спада. Ваш автомобиль не будет колебаться на частоте 20 Гц, поэтому управление только данными гидролокатора будет в порядке.

holmeski
источник
1
Спасибо, я только что закончил реализацию этого 4 дня назад, и это работало с очень маленькими колебаниями + -2см
user123456098
рад это слышать! Вы должны быть в состоянии убить колебания, увеличив kd, предполагая, что у вас есть хорошая оценка скорости :)
holmeski