Уменьшение динамического диапазона барометра BMP085

gorbln

Прошу консультации по школьной, в общем-то, задаче.
Появилась следующая мысль.
Цифровой барометр BMP085 работает в диапазоне 300-1100 mBar с разрешением 1 mBar. Это что-то вроде -150…6000 м над уровнем моря, с разрешением порядка 8 метров. Для управления коптером в режиме удержания высоты - потребные высоты 0…800 м с достоверным разрешением порядка 0,2 м. Собственно, мысль состоит в том, что нельзя ли придумать такой прибор, который будет преобразовывать изменение давления, к примеру, 1013…1017 мбар в, скажем, 1013…800 мбар.
Долго думал. На стандартных пневматических устройствах “сопло-заслонка” такую штуку сделать без проблем. Называется усилитель. Вот только проблема в том, что ему нужен источник воздуха для работы, другими словами, компрессор. Для использования на коптере - явно сложновато.
Подумалось - а можно ли сделать устройство на чистой механике? В результате нарисовалось что-то вот такое:


Здесь первая камера (большая) - по факту, барометр-анероид, давление Р0 внутри неё - условно 0. Вторая камера (маленькая) - камера датчика, внутри неё воздух под атмосферным давлением (камера закрывается герметично в нормальных условиях, на земле).
Сила давления на крышку большой камеры уравновешивается тягой пружины Fпр и равна P1*S1.
Мембрана маленькой камеры условно бесконечно растяжимая и не создаёт усилия при растяжении. Соответственно, при уменьшении атмосферного давления Р1 - давление изнутри камеры выпирает мембрану, пока объём камеры не изменится настолько, что давление снаружи и внутри не уравновесится.
Теперь сам “замес”. Придумал я объединить камеры таким образом, чтобы сила, развиваемая большой камерой, использовалась для растяжения малой. Соответственно - получаем, что камера 2 будет растягиваться сильнее, чем просто под действием разницы давлений между атмосферным и в камере. Что и требовалось.

Вот только рассчитать эту конструкцию - ну никак не получается. Какая зависимость получается между давлением Р2, площадями S1 и S2, и длинами рычагов l1 и l2? И будет ли вообще это дело работать так, как я описываю? Тяжело не разбираться в математике 😦

blade
gorbln:

Тяжело не разбираться в математике

А в электронике- легче?
В смысле-“не разбираться”?
В микрокоптере , (да и в любом другом автопилоте)- сигналы датчиков, это касается не только барометра, но и гироскопов и акселерометров и даже- магнитного компаса, обрабатываются микропроцессором по определенному алгоритму, зависящему от характеристик датчика.
Вместо того, чтобы городить какую то суперсложную механику (про её вес и стоимость- умолчим 😍), достаточно изменить один- два коэффициента в той ветке программы, которая отвечает за интерпретацию показаний барометра.
Но для этого увы, опять же без математики- не обойтись 😦
ЗЫ: а зачем всё это вообще надо ?

gorbln
blade:

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

Вы не поверите… Коэффициенты поменять - большого ума не требуется. Вот только почему-то люди сонары ставят - зачем, казалось бы, когда по вашей логике - можно ПРОСТО поменять коэффициент? Неужели люди сами себе враги?
Есть такое понятие - динамический диапазон датчика. И есть такое понятие - шум датчика. Так вот. Шум - он как есть шум так и есть, в общем случае - он не меняется. Но если датчиком, предназначенным для работы в диапазоне 0-6000 м, с точностью, кстати, 8 м, пытаться стабилизировать аппарат на высоте 10 м с точностью ±0,5м - он работает в самом начале своего рабочего диапазона, с шумом, зачастую, равным сигналу. Да, можно сглаживанием окном и тп алгоритмами из этой мешанины вытянуть более-менее внятную информацию - но достоверность её невелика, плюс к тому - задержка при сглаживании окном равна размеру окна, если я не ошибаюсь.
Представьте: вам надо стабилизировать температуру, ну к примеру, в перегонной колонне. Температура должна быть 73,3 градуса. Вы её измеряете оптическим пирометром на диапазон 50-5000 градусов с точностью 5 градусов. Как думаете, хорошего качества у вас будет самогон из этой колонны?
Далее. Про суперсложную механику - вы загнули. Если вас смущает вакуумная камера - изготавливается без больших проблем, вакуумируется конденсацией пара. Цели получить чистый вакуум, как в электронном микроскопе, нет. Насчёт веса - ну да, не самый лёгкий получится датчик. но полегче того же, например, бесколлекторника.
И насчёт “не разбираться в электронике” - это тоже зря. С электроникой нормально всё.

blade:

ЗЫ: а зачем всё это вообще надо ?

Затем, что точных и дешёвых альтиметров на диапазон высот 0-1000 метров тупо нет.

Просьба о консультации всё ещё в силе, будет ли мой девайс работать?

DagoRed

по моему скромному разумению - задача явно для MCU + ADAC+ какой-нибудь датчик. Вот только хоть теоретически на 24х разрядах - хоть миллиметры ловить можно, атмосфера - штука нестационарная, где-то ветерок подул, а где-то солнышко неравномерно погрело, плюс облака. Вот 16 разрядов - 1000м - как раз 1 метр. 20р-0,25м.

gorbln
DagoRed:

по моему скромному разумению - задача явно для MCU + ADAC+ какой-нибудь датчик

Согласен. Однако, здесь в условиях задачи именно BMP085 (и ему подобные датчики с диапазоном 300…1100 (-500…9000м по уточнённым данным)) и использование его в качестве датчика. Датчик распространённый, дешёвый. Так-то можно сгородить свой барометр с блэкджеком и цифровой обработкой - но эта задача по-моему уже не из разряда простых.

Кроме того - даже если у вас будет 32 бита АЦП - если датчик шумит на 16 из них - то какой в них смысл?

eNick

Оба отвечающих не понимают что такое динамический диапазон датчика. Софт здесь бессилен независимо от разрядности АЦП.

Musgravehill

Проще купить MS5611 за $26 и подключить 4 провода. Ловит 10 см.

Можно рассмотреть условие равновесия первой и второй мембраны.

[ k1*dx1 - S1\(dPatm - dP0) ] * L1 = [ k2*dx12 - S2\(dP2 - dPatm) ] * L2
Пусть перемещения мембран dx1, dx2 стремятся к нулю
S1\(dPatm - dP0) ] * L1 = S2\(dP2 - dPatm) * L2

(dP2 - dPatm) \ (dPatm - dP0) = S2 * L2 \ S1 * L1

Пусть приращения атм.давления -> 0 😃

dP2 \ dP0 = - S2 * L2 \ S1 * L1;

blade
gorbln:

Вот только почему-то люди сонары ставят -

Ну, УЗ высотомер то ставят не за этим, а чтобы на “высоте принятия решения”, то есть- для автоматической посадки, иметь более точную, чем +,- 1 метр информацию о высоте. Я работал с Micropilot 2028, вполне профессиональный девайс, на котором полмира беспилотники делает- там до 10 м работает баро, а ниже- УЗ включается.
Причём, две блямбы стоят по концам крыльев, они ещё и крен отслеживают.
ЗЫ: А насчёт будет/не будет работать Ваша конструкция: пока не сделаете в железе (тем более, если это "элементарно©?) хотя бы макетно- никакие теоретические споры ничего не дадут.

Musgravehill
blade:

Ну, УЗ высотомер то ставят не за этим, а чтобы на “высоте принятия решения”, то есть- для автоматической посадки, иметь более точную, чем +,- 1 метр информацию о высоте.

У земли барометр не нужен - он захлебывается на воздушной подушке от винтов. Поэтому автопосадка по сонару.

gorbln
blade:

Я работал с Micropilot 2028, … там до 10 м работает баро, а ниже- УЗ включается

Так а почему УЗ включается? Потому что баро не обеспечивает точности. Я веду как раз разговор о том, чтобы не применять УЗ сонар, ибо у него косяков тоже предостаточно. Я не спорю - решение баро+сонар есть и как-то работает. Но такое решение появилось именно из-за того, что только баро не может обеспечить необходимой точности измерений.

blade:

пока не сделаете в железе (тем более, если это "элементарно©?) … никакие теоретические споры ничего не дадут

Я не говорил, что это элементарно 😛. Я сказал “без больших проблем”.
Кроме того, если бы вопрос изготовления был вопросом одного вечера - я бы сделал такую штуку, проверил, и консультироваться ни с кем не стал. Просто - зачем тогда этот форум? Если ответ на вопрос - “ты сделай, проверь, а там и видно будет, я не знаю”.
Я как раз-таки хочу ничего не делая в железе понять - “полетит” - “не полетит”.😁

Musgravehill

MS5611 за $26 … Ловит 10 см

Ну, вообще говоря, по-чесноку (а точнее - по мануалу), 10 см - это результат усреднения по 4096 значениям. А по факту - “Accuracy 25°C, 750 mbar -1.5 +1.5 mbar” (то есть - 12 метров 😃 ) Но штука, тем не менее, заслуживает внимания, ибо это усреднение делается за 8 с чем-то мс. Сгладить окном по 10 сэмплам - 80 мс без обработки. Ну, не фонтан, но жить можно.
За уравнения спасибо!
Вот только что-то я в них запутался. Во втором уравнении мы рассчитываем моменты? Тогда должно быть S*P а не S/P. dP0=0 всегда, в камере же вакуум, не? И в итоге имеем деление на 0… 😵

Musgravehill

У земли барометр не нужен - он захлебывается на воздушной подушке от винтов

О как. об этом я не подумал. а на какой высоте подушка проявляется на барометре? сантиметров 50-60 для небольших коптеров?

Musgravehill
gorbln:

10 см - это результат усреднения по 4096 значениям. А по факту - “Accuracy 25°C, 750 mbar -1.5 +1.5 mbar” (то есть - 12 метров

Но ведь работает! Я над столом поднимаю по линейке - проходя 10 см значение меняется. Может, Accuracy нужно рассматривать скорее как “повторяемость” результата, если датчик вернуть на прежнюю высоту…

gorbln:

Во втором уравнении мы рассчитываем моменты? Тогда должно быть S*P а не S/P.

Да, момент М = сила*плечо. Упс, косяк. F= S*P
Получается, P1\P2 = S2 * L2 \ S1 * L1

gorbln:

dP0=0 всегда

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

gorbln:

а на какой высоте подушка проявляется на барометре? сантиметров 50-60 для небольших коптеров?

Точно не скажу, но в комнате на 0…1 метр она точно существует. Баро начинает сходить с ума.
-----------
Кстати, зачем пружина. Пусть всё уравновешивается давлениями. Нужно, чтобы без люфтов система работала, иначе будут перемещения мембран, упругость, нелинейности.

blade
gorbln:

Просьба о консультации всё ещё в силе, будет ли мой девайс работать?

gorbln:

а на какой высоте подушка проявляется на барометре?

gorbln:

я бы сделал такую штуку, проверил, и консультироваться ни с кем не стал

То есть, надо чтобы кто то сделал, и Вам результаты НИРС- выложил на блюдечке? 😛 Бензин,типа ваш а идеи- наши? (С)
Я восемь лет занимаюсь ДПЛА, перевидал туеву хучу разных АП, в том числе- и за оччень большие деньги (у “Текнола” к примеру- 460 тыс руб)
И везде в качестве высотомера- стоят МРХ-4115А или (в последнее время- ВМР 085) 😦
Летают, прАтивные и не парятся 😦

gorbln
blade:

То есть, надо чтобы кто то сделал, и Вам результаты

Александр, простите за грубость, но вы мне надоели. Честно. Я не прошу никого ничего делать, кроме рассчётов. Что за манера такая - сам не умею, но других поучу? Если вам жалко сделать рассчёт - не делайте, и прекратите троллить.

serj

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

Что-то похожее делал дедушка Чистяков лет 15 назад - у него был “колебательный баровысотомер” - камера миллиметров 30 диаметром и 70 длиной.

Вроде имел разрешаловку около 20 см. Ему это было необходимо - он по нему тангаж определял 😃

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