Перейти к содержанию
    

Датчик крена и дифферента

Гироскопом... Зная угловую скорость (а все мемс гироскопы, это именно ДУС)

Так в том и дело, что они датчики силы, приложенной к их чувствительным элементам. А происхождение силы - будь то центробежная, будь то сила тяжести, или ее причиной является линейное ускорение - отличить невозможно. МЕМС-гиросокпы, если я правильно понимаю, это акселерометры, обвешанные вычислителем, вычисляющим ускорение, перпендикулярное осям, компенсирущим g, , и его дважды интегрирующим.

 

Да и физически смысл этих сил одинаков с точки зрения чувствительного элемента, не знающего об окружающей среде ничего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в том и дело, что они датчики силы, ****

Да и физически смысл этих сил одинаков с точки зрения чувствительного элемента, не знающего об окружающей среде ничего.

Нет.

Акселерометр измеряет ускорения. В покое, или при равномерном движении он покажет НОЛЬ (в условиях земли - вектор ЖО по оси Z).

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

Микромеханический гироскоп, это ни разу не гироскоп. Его так назвали от бедности вражьего языка и глупости переводчиков ADi-шных даташитов. Это самый натуральный ДУС, то есть датчик УГЛОВОЙ СКОРОСТИ. Он показывает мгновенное значение этой самой скорости. Никаких углов в его показаниях нет и быть не может в принципе.

Угол получают интегрируя показания УС по времени. То есть, с равными промежутками времени мы снимаем мгновенное значение УС и считаем, что между прошлым измерением и этим оно было именно таким и не менялось. Метод прямоугольников.

От сюда следует 2 вывода:

1. Чем чаще мы делаем "срез" показаний, тем лучше.

2. Как бы часто мы не делали срез, а, между измерениями, УС всё равно никогда не будет неизменной. Именно это и называется ошибкой интегрирования, а не мифический дрейф нуля, которого у ДУСа и нет, как такового.

 

Таким образом, показания ДУСа уходят не столько из-за проблем самого ДУСа, сколько от накопления ошибки в математике контроллера (тут ещё проблемы конечности переменных и т.д.). То есть врёт математика, а не ДУС.

У ДУСа есть шум, но у современных он ниже порога чувствительности 12-и битного АЦП, а даже если он и есть, его природа синусоидальная (всилу конструкции ДУСа с качающейся пластинкой) и интегрирование его почти прибивает само по себе, как побочный эффект.

Дрейф нуля так же не имеет значения, т.к. с началом интегрирования нас волнует n-m последних выборок, весьма ограниченный диапазон, и исходное значение роли не играет уже через пару сотен миллисекунд.

 

А вот для акселерометра, который используется для оценки показаний ДУСа и его коррекции, дрейф нуля уже важен. Но это другая история.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не знаю, что внутри у инклинометра, но у меня стоят они на железнодорожной платформе и измеряют продольные и поперечные наклоны. Зависимости от ускорения поезда не замечено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Купите пару модулей MPU-6050 на али, их там как грязи. Да поиграйтесь.

Но гироскоп вам не нужен.

Так и сделал. Главный вопрос. Можно-ли на его базе сделать инклинометр выдающий углы дифферента небольшго речного судна с точностью 0.1 градуса 5 раз в секунду? Внутренний АЦП MPU-6050 имеет 16 бит. 1 бит на знак. 15 бит на проекцию ускорения. Как из этого вывести минимальный определяемый угол, например для диапазона full-scale range of ±2g? Тоесть 2g на 15 разрядов (2/32768 = 0.0006g на младший разряд) Сколько это будет в градусах?

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что, школьная тригонометрия уже забылась?

Ну.. нет. а = arcsin (g). Так, что ли? Получается, что a = arcsin (0.0006) = 0.03 град. Не уверен... Это реально? А разного рода шумы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Акселерометр измеряет ускорения. В покое, или при равномерном движении он покажет НОЛЬ (в условиях земли - вектор ЖО по оси Z).

 

Вот именно, что не ноль, а вектор g. И не по оси Z, а как угодно, в зависимости от положения акселерометра относительно этого вектора. И зная это, можно с легкостью вычислить положение акселерометра относительно вертикали - что и есть искомые крен и дифферент.

 

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

 

А разного рода шумы?

А разного рода шумы следует отфильтровать. Лучше всего, как правило, собрать некоторое количество выборок и определить результат методом минимизации суммы квадратов отклонений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А разного рода шумы следует отфильтровать. Лучше всего, как правило, собрать некоторое количество выборок и определить результат методом минимизации суммы квадратов отклонений.

Где можно доходчиво почитать про этот метод? Чем хуже простое среднее за несколько измерений?

Все же насколько правильнее (стабильнее) будут показания при использовании простейшего комплементарного фильтра типа http://www.geekmomprojects.com/gyroscopes-...ters-on-a-chip/ тоесть совместное использование акселерометра и гироскопа?

"As explained above, both the accelerometer and gyroscope data are prone to systematic errors. The accelerometer provides accurate data over the long term, but is noisy in the short term. The gyroscope provides accurate data about changing orientation in the short term, but the necessary integration causes the results to drift over longer time scales.

The solution to these problems is to fuse the accelerometer and gyroscope data together in such a way that the errors cancel out. The standard method of combining these two inputs is with a Kalman Filter, which is quite a complex methodology. Fortunately, there is a simpler approximation for combining these two data types, called a Complementary Filter. "

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доходчиво почитать про МНК - видимо, в учебнике по математике... Там же почитать и про то, почему именно этот метод следует применять при обработке результатов измерений.

 

Что касается применения пары гироскоп+акселерометр - я не вижу никакого смысла в гироскопе. Тут нужен только акселерометр. Абсолютная величина вектора g известна, зная ее, и то, что ускорение от "полный вперед" направлено перпендикулярно ему, можно вычислить и отделить это ускорение, определить истинное направление вектора g, а значит, и крен с дифферентом.

 

Все мудрости с несколькими датчиками нужны для четкого определения полного положения в пространстве - включая направление перемещения и дистанцию, где накапливаются систематические ошибки от интегрирования. У Вас же случай очень простой - Вам надо вычислять непосредственно ускорение g.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается применения пары гироскоп+акселерометр - я не вижу никакого смысла в гироскопе. Тут нужен только акселерометр. Абсолютная величина вектора g известна, зная ее, и то, что ускорение от "полный вперед" направлено перпендикулярно ему, можно вычислить и отделить это ускорение, определить истинное направление вектора g, а значит, и крен с дифферентом.

 

И как же отличить дифферент от полного вперед?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И как же отличить дифферент от полного вперед?

 

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

 

|A|^2 = |g|^2 + |a|^2 и sin(угла между a и g) = |a|/|g| - этого достаточно, чтобы из A (показанного акселерометром) и заранее известного |g| получить сначала |a|, а потом угол, на который отклонен A от g

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вектор "полного вперед" складывается с вектором "g".

А если волны, то как тогда - ведь вертикальное ускорение будет меняться. Да и без этого небольшое ускорение перпендикулярное вертикали будет незаметно. Об этом еще Пифагор писал.

Вот еще есть такое красивое имя - Кориолис...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если волны, то как тогда - ведь вертикальное ускорение будет меняться.

А это переменная составляющая... Она отфильтровывается за ненадобностью.

 

Да и без этого небольшое ускорение перпендикулярное вертикали будет незаметно.

А это смотря как на гашетку надавить :) Я сам любитель на катере погонять, и ускорения там вполне себе нормальные, если ручку газа в правильное положение поставить :)

 

А Кориолисом просто пренебречь... А то еще и компАс магнитный надо будет прикручивать в систему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не знаю, что внутри у инклинометра, но у меня стоят они на железнодорожной платформе и измеряют продольные и поперечные наклоны. Зависимости от ускорения поезда не замечено.

Там обычно стоит механический маятник килограмм на 5-6.

При любой конструкции вектор ускорения поезда перпендикулярен оси чувствительности и оси подвеса. Проекция == 0.

 

Вот именно, что не ноль, а вектор g. И не по оси Z, а как угодно, в зависимости от положения акселерометра относительно этого вектора. И зная это, можно с легкостью вычислить положение акселерометра относительно вертикали - что и есть искомые крен и дифферент.

 

Ну, я не стал разжёвывать элементарные вещи про "как угодно, в зависимости от положения акселерометра".

 

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

ДУС имеет принципиально другую конструкцию и принципиально другой способ определения параметра, чем акселерометр.

Акселерометр при равномерном вращении не может ничего показать, это механика Ньютона. То, что у вас что-то показывало, это от дрожащих рук. И использовать этот шум при определении положения нельзя.

Закреплять инерциальные датчики НЕ в центре тяжести объекта, вообще говоря, не правильно. Так делают, от безысходности, но это не правильно.

 

А разного рода шумы следует отфильтровать. Лучше всего, как правило, собрать некоторое количество выборок и определить результат методом минимизации суммы квадратов отклонений.

Если мы говорим про фильтр калмана, то шумы ему как раз помогают, он быстрее отрабатывает.

Если мы говорим про комплиментарный фильтр, то интегрирование само по себе фильтрует знакопеременный шум.

 

Так и сделал. Главный вопрос. Можно-ли на его базе сделать инклинометр выдающий углы дифферента небольшго речного судна с точностью 0.1 градуса 5 раз в секунду?

Я уже объяснил, что ДУС угол не выдаст. Угол из показаний ДУСа нужно получить математически. В том числе, путём коррекции показаний ДУСа по акселерометру.

Но, учитывая динамику речного судна, вам ДУС не нужен. Вам достаточно двух встречно-парных акселерометра и любого алгоритма выделения постоянной составляющей.

В судовых вертолётных площадках стоит именно такая система и никаких гироскопов там нет.

 

 

Абсолютная величина вектора g известна, зная ее, и то, что ускорение от "полный вперед" направлено перпендикулярно ему, можно вычислить и отделить это ускорение, определить истинное направление вектора g, а значит, и крен с дифферентом.

А вот фиг. При разгоне у лодки задирается нос и направление векторов становится не перпендикулярным. Да и изначальная устновка блока датчиков врядли будет по нивелиру. Да и собьётся в зависимости от загрузки лодки.

 

Все мудрости с несколькими датчиками нужны для четкого определения полного положения в пространстве - включая направление перемещения и дистанцию, где накапливаются систематические ошибки от интегрирования.

Не совсем.

Связка ДУС-Аксель нужна для высокодинамических объектов, вроде коптеров. Где значения ускорений превосходят значение g. Для низкодинамических объектов ДУС не нужен. Там даже по математике коррекция ДУС по акселю будет занимать большее время, чем использование собственно ДУС.

 

И ещё. Значение g по планете прилично так разнится. Так что инициализация системы с измерением g в покое будет нужна в каждом случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Акселерометр при равномерном вращении не может ничего показать, это механика Ньютона. То, что у вас что-то показывало, это от дрожащих рук.

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

 

Если мы говорим про фильтр калмана, то шумы ему как раз помогают, он быстрее отрабатывает.

Если мы говорим про комплиментарный фильтр, то интегрирование само по себе фильтрует знакопеременный шум.

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

 

И ещё. Значение g по планете прилично так разнится. Так что инициализация системы с измерением g в покое будет нужна в каждом случае.

Да ладно? Хотите сказать, что на уровне моря в атлантике оно значительно отличается от на уровне моря в тихом океане? Или судно может вскарабкаться в высокогорное озеро? Хотя, конечно, калиброваться стоя на рейде/в порту/еще где, или дрейфуя, или двигаясь равномерно по какой либо другой причине, надо, тут без вопросов.

 

При разгоне у лодки задирается нос и направление векторов становится не перпендикулярным.

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

 

Да и собьётся в зависимости от загрузки лодки.

Да не собьется ничего. Мы же дифферент и измеряем (какая разница, откуда он взялся, от загрузки, или от разгона). Вот этот "сбой" и будет, собственно, дифферентом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...