Вы делаете это неправильно: расчет глубины

    Приветствую вас, глубокоуважаемые!


    Что если я скажу, что глубина, что бы вы под ней не подразумевали, является одной из самых сложных для точного измерения величин? На какой глубине плывет подводная лодка? Какая глубина марианской впадины? На какой глубине лежит Титаник? Если вам не повезет с параметрами, то на первом километре глубины, вы можете ошибиться примерно на 30-40 метров и на 200-300 метров на 6-ом километре, используя датчик давления. Если вы предпочитаете эхолот, то при неудачном стечении обстоятельств, которые вы не учли, ошибка на первом километре составит метров 100, а на 6-ом — целый километр. Конечно, можно еще использовать длинную веревку… Но там, как известно, свои подводные камни.

    Как такое могло случиться и как делать правильно я расскажу под катом. В довесок к статье есть Open-source библиотека на C#/C/Rust/Matlab/Octave/JavaScript и пара онлайн-калькуляторов для демонстрации.



    Статья будет полезна разработчикам подводной техники, число которых за последние лет пять выросло в разы.

    Итак, для начала сразу оговоримся, что глубиной часто называют две разных величины:

    • и расстояние по вертикали от поверхности воды до точки, где эту глубину измеряют,
    • и расстояние по вертикали от поверхности воды до дна.

    В первом случае — это глубина погружения, а во втором — глубина места.

    Есть ровно два с половиной фундаментальных способа изменения этих величин, как я уже упомянул:

    • по гидростатическому давлению столба жидкости, т.е. при помощи датчика давления;
    • по времени распространения звука — эхолотом
    • по длине выпущенной за борт веревки =)

    С веревкой все понятно, а с остальными двумя давайте разберемся. Сегодня разберем:

    Способ 1 — По давлению столба жидкости


    Все мы знаем из школьного курса физики формулу гидростатического давления столба жидкости:

    $P=\rho g h$


    Из нее легко посчитать высоту столба жидкости (т.е. глубину в нашем случае), не забывая про атмосферное давление $P_0$:

    $h=100(P-P_0)/ \rho g$


    На «100» умножаем, если хотим получить глубину в метрах, измеряем давление в миллибарах, плотность воды в кг/м^3, а ускорение свободного падения в м/c^2.

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

    Как влияет атмосферное давление?


    Давление у поверхности моря может варьироваться в пределах 641-816 мм. рт. ст., или, тоже самое в миллибарах: от 855 до 1087. Если просто взять за $P_0$ стандартное значение в 1013.25 мБар, то в зависимости от погоды уже можно получить ошибку в 40-50 сантиметров, причем, как в «плюс», так и в «минус».

    Что с ускорением свободного падения?


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

    Если не крохоборничать и не учитывать гравитационные аномалии из-за разной плотности земных пород, гор, впадин, изменения скорости вращения земли от сброшенной земными деревьями листвы и перемещениями соков по их стволам, то нас вполне устроит стандартная зависимость ускорения свободного падения от георафической широты. Т.н WGS-84 Gravity formula.

    Согласно этой формуле, ускорение свободного падения меняется от 9.7803 м/с2 на экваторе (0° градусов широты) до 9.8322 м/с2 на полюсах (90/-90° широты).

    Допустим, мы возьмем стандартное значение ускорения свободного падения 9.80665 м/с2, на сколько мы ошибемся в худшем случае?

    Это иллюстрируетя картинкой ниже. На ней синий график показывает ошибку определения глубины на экваторе, если мы будем использовать стандартное значение $g$, а оранжевый график — такую же ошибку на полюсах.



    То есть, если мы подставим в формулу стандартное значение $g$ и пойдем погружаться где-то ближе к экватору, то на 100 метрах ошибемся всего на 20-30 сантиметров, на километре — на 2,5-3 метра, а на 9-10 километрах (Бездна Челленжера, кстати, находится на 11° северной широты) ошибка будет уже 25-30 метров. Т.е. реальная глубина будет больше, чем та, которую мы измерим.

    А как влияет плотность воды?


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

    Дело в том, что плотность воды в упрощенном случае есть функция температуры, давления и солености.

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

    Для определения плотности морской воды в (разумном) диапазоне условий на практике наиболее широко применяется формула из работы Чена и Миллеро (Да, ЮНЕСКО занимается еще и этим!)

    Допустим, мы измерили и температуру и соленость, но остается сжимаемость воды — изменение плотности с давлением (т.е. с глубиной), и чтобы определить высоту столба жидкости нужно просуммировать высоты элементарных столбиков, на которых давление изменяется на какую-то малую величину $\Delta P$. В целом это конечно интеграл, но чтобы сразу привнести некое практическое значение, запишем его так:

    $h=\Delta P/g\sum_{i=1}^{N}1/\rho(t,P_0+\Delta P i,s)$


    N — это число интервалов разбиения давления от $P_0$ до измеренного $P$.

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

    Сам факт, что плотность зависит от трех параметров — это еще пол беды. Сложность кроется в том, что все эти параметры могут сильно меняться с глубиной. В этом случае принято говорить о профиле температуры и солености. Вот так, к примеру, выглядит профиль из Арктики:



    Вот так с северной части тихого океана:



    А вот так, для сравнения — с юга атлантики:



    Например, если представить, что мы погружается в северной части тихого океана (39°СШ,152°ВД) учитываем атмосферное давление и географическую широту места и сжимаемость воды, а наш датчик давления показывает 100 Бар (~1000 м), а температуру и соленость мы берем в точке измерения, но не учитываем профиль, мы ошибемся с глубиной на 2 метра.

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

    Если теперь просто переключить профиль на «южноатлантический» и попробовать пересчитать, то мы увидим, что разница выросла до 6-и метров. Напомню: все, даже сжимаемость воды мы уже учли! Ошибка связана только с наличием профиля — слоев разной температуры и солености в толще воды.

    Естественно, все меняется и со сменой времен года и со сменой времени суток. Летом (в северном полушарии, зимой — в южном) верхний слой прогревается, а зимой — остывает. Шторма перемешивают воду, дожди смывают грязь с суши и реками уносят в моря, таят снега и ледники.

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

    Матчасть


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

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

    P.S.

    Благодарю за внимание, буду искренне благодарен за конструктивную критику, сообщения об ошибках, пожелания и предложения.

    В следующей статье разберу второй способ определения глубины — по эхолокации.

    Only registered users can participate in poll. Log in, please.

    Рассказать в следующей статье про измерение эхолотом?

    • 91.9%Да, давай125
    • 1.5%Не, все уже ясно2
    • 6.6%Мне без разницы, я ничего не понял9

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 52

      +5
      Ну и наверное еще приливы/отливы влияют, причем неслабо (притяжение Луны).
        +2

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

        +1

        Если уж говорить про точность… Даже слабое волнение на поверхности меняет "глубину".


        Вживую видел… Океанские волны на глубине 20м чувствуются. Мало того что дно под тобой туда сюда качается (в 10 см от маски), так еще показания на дайв компе скачут в пределах метра.

          0

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

          +1
          по времени распространения звука — эхолотом


          Рассказать в следующей статье про измерение эхолотом?


          Интересно о времени распространения звука но не эхолотом. Есть какие-то гаджеты для морского дна издающие акустический сигнал точного времени, типа спутников на орбите, но только на морском дне?
            +1
            Сложно ответить на это в двух словах. С точным временем на дне есть сложности — там нечем питать устройство, точное время нужно уметь хранить. Плюс скорость звука это совсем не скорость света — она меньше и сильно меняется, а еще полоса частот очень узкая, есть зоны акустической тени, слой скачка скорости звука. Нечто близкое к тому, о чем вы говорите — это опорные точки донной длинобазисной системы. Я некоторое время назад опубликовал на хабре статью и там есть ссылки на работы, где рассказывают о применениях миниатюрных атомных часов в гидроакустической навигации. Вот ссылка на статью
              +2
              Скорость распространения волны зависит от плотности, те же профили придётся собирать.
              +1
              > и за счет центробежной силы притягивает на полюсах сильнее, чем на экваторе.

              Всё же непосредственный вклад силы в разницу тяготений довольно мал. Большая часть разницы получается от того, что земля сплюснута с полюсов (из-за упомянутой силы), то есть на полюсах поверхность находится ближе к центру масс, чем на экваторе.
                0
                В целом да, но тут двояко — сплюснута она как раз из-за вращения. Вот здесь очень хорошо объяснено
                0
                А вот как быть теперь с рекордами в дайвинге?
                Обратимся к Вики.
                Нуно Гомес, 10 июня 2005 года, Дахаб — 318 м.
                Паскаль Бернабе, 5 июля 2005 года — 330 м.
                Ахмед Габр, 18 сентября 2014 года — 332,4 м.
                Как пишет автор:
                на первом километре глубины, вы можете ошибиться примерно на 30-40 метров,
                тогда на глубине 300 м — ошибка порядка 10 метров. Т.е. все эти рекорды в пределах погрешности.
                Интересно как это всё замерялось.
                  0
                  Имелось в виду на глубине порядка 1000 метров вы можете ошибиться на 30-40 метров. На 300 метрах при кривых руках — метров на 10 максимум (чаще 1-2-3). Я наверное неясно выразился.
                    +3
                    На таких рекордах они ныряют вдоль жесткого троса с отметками
                      0
                      Тоже вопрос — насколько трос отвесен в воде.
                        +2
                        Такие погружения не делают в местах с сильным течением
                          0
                          Неважно. Погрешность будет величиной второго порядка малости угла отклонения. Например, при всей важности экономии топлива в гражданской авиации, конструкторы самолетов не стесняются отклонять направление струи двигателя на 10 — 15 градусов в сторону от хвоста — потери тяги все равно не значительны.
                            0
                            Аналогия неточна. Отклонение на 10 градусов на 300 метрах даст ошибку в 5 метров. Ясное дело, что это второй порядок, но для рекорда это же важно.
                            Скажем в беге на 100 м — если бегун находится ближе к стартовому пистолету на 2 метра, то он его услышит на 6 мс раньше, а это уже может оказаться существенным — время округляется до 10 мс и… кто-то другой оказывается чемпионом мира.
                            (Пример не мой — кажется из журнала «Теника-молодежи» советских времен).
                    +2
                    Для какого практического применения нужна точность измерения глубины выше, скажем, +-2%?
                      0
                      ± 2 метра на 100 метров? Да везде в общем-то. Для навигации/позиционирования. Для батиметрии. Вон, даже рекорды по погружению — и те с долями метров указываются.
                        +2
                        Для рекорда можно верёвкой померить, опять же польза — никто спорить не будет. Если надо спозиционировать что-то относительно чего-то на глубине то надо расстояние\направление между этими объектами и мерить, всяко точнее будет. Рельеф дна со временем меняется и такая точность там ни к чему.
                          0
                          Веревка не висит вертикально, растягивается, и пр. Если надо спозиционировать что-то в трехмерном смысле, то, пожалуй, правильно измеренная глубина — это то, что будет измерено с максимальной точностью. Потому что расстояние, пройденное звуком по слоистой среде измеряется еще хуже (в следующей статье объясню) из-за того, что скорость звука зависит от плотности. Погода тоже со временем меняется, но хотелось быть всегда точно знать какая она =) Опять же, это не моя блажь — это объективная реальность, в частности, на основании требований эксплуатантов.
                        +2
                        Для какого практического применения нужна точность измерения глубины выше, скажем, +-2%?

                        В быту, наверное, ни для чего.
                        А так батиметрия всегда делается при любом морском строительстве (включая укладку трубопроводов и кабелей), при сейсморазведке и пр.
                        Вот ошиблись мы с данными глубины и положением трубоукладчика — и провис трубы изменился, её заломало.

                        Или вам надо поставить морской буй, где глубина километр. Ошибка 2% это 20 метров по глубине — а буй гуляет на поверхности по радиусу 200 метров (понятно что выбирается запас на волнение и приливы, но тем не менее). Ну ладно, для буя это не очень критично, а если это морская плавающая платформа с подведёнными трубопроводами и нефтью под давлением…

                        А ещё интересно становится, когда делается нормальная батиметрия однолучевым эхолотом, т.е. с последующим построением изобат. Прошли одним галсом — одна глубина, прошли поперечным — «кресты» не бьются. И как с такими данными вычислять изобаты… Вроде дно ровное, а у вас вместо гладких линий изобат — пила.

                        Так что рыбацкие эхолоты нервно курят в стороне, этот ширпотреб в серьёзной работе не применяется.

                        Что касается измерения глубины погружения — это одна из важнейших величин для гидроакустического позиционирования, особенно для USBL, где по сути идет одиночная засечка range-bearing и любая ошибка по глубине автоматически приводит к ошибкам в горизонтальной позиции. А гидроакустику, опять-таки, используют при строительсте, обследованиях и т.д.
                          –1
                          И опять ответ очень абстрактный. Уровень воды относительно дна вещь непостоянная, бывают волны и приливы. Не лучше ли при прокладывании трубы брать за точку отсчёта не уровень воды а, например, во-о-он ту корягу на дне? И стабильнее, и точнее.
                            +3
                            Нет, это не абстрактный ответ. Под водой нет визуальной видимости и такие методы привязки не работают, разве что для водолазов.

                            Измерение глубины это только первая часть. Уровень приливов на момент измерений либо вычисляется, либо измеряется береговой станцией. Одновременно измеряется качка на борту (прибор так и называется — компенсатор качки), регулярно ведётся журнал осадки судна. Все эти параметры при обработке исключаются и остаётся глубина по MSL (mean sea level).

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

                            PS: компенсатор качки (heave sensor, иногда интегрируется в pitch-roll-heave) по сути высокоточный акселерометр, после двойного интегрирования получается вертикальная координата. Очень забавно смотреть на его изменяющиеся показания, когда медленно поднимаешь его с пола.
                        +1
                        Посоветуйте датчик для мониторинга уровня воды в колодце
                          +1
                          Если ваш колодец хотя бы не 100-300 метров глубиной, то едва ли смогу чем-то помочь )
                            0
                            увы ))
                              +3
                              С другой стороны если вас устроит точность ± 5 см присмотритесь к MS5541, MS5803-14 (на 14 бар) или MS5803-02 (на 2 бар). Но это все чипы. Его нужно паять, читать данные. В идеале ставить два — один наверху, другой — внизу. Предварительно откалибровав абсолютную разницу. Плюс они стареют и раз в год желательно их перекалибровывать.
                                +1
                                во, хорошие ссылки, спасибо. Попробую смастерить что-нибудь )
                            +2
                            В зависимости от того, для чего вам надо и с какой точностью, ответы будут разными.
                            От магнита с поплавком до емкостного.
                              0
                              поплавок зимой замерзает. Нужно просто столб воды в колодце в течение сезона мониторить 0-10м скажем), точность сантиметров 10. В идеале готовое устройство на батарейках в глубокоспящем режиме, просыпающееся раз в сутки. И отправляюшее данные куда-нибудь, где их можно легко считать. Не знаю, какой-нибудь zigbee хаб, или что-то такое.

                                0
                                Зимой лед же будет на одном и том же уровне. В смысле как замерзло так считай всю зиму и будет. Вам нужно мониторить уровень воды зимой или приемлемо, что расстояние до поверхности неизменно, пока морозы не отпустят?
                                Или вы уже остановились на варианте с датчиками давления?
                                  0
                                  > Зимой лед же будет на одном и том же уровне.
                                  Это как??? оно меняется и от потребления воды и от уровня грунтовых вод

                                  > Вам нужно мониторить уровень воды зимой
                                  Нужно и зимой, зимой от тоже здорово меняется. И один раз авария из-за наоса была, который тупо все выкачал и это было как раз зимой )
                                    0
                                    Я тут подумал, расстояние небольшое, может есть недорогой модуль лазерного дальномера — то это оптимальный вариант. На воду кусок пенопласта и до него измерять — милое дело
                                      0
                                      я рассматривал такую идею, но во-первых нужно делать какую-то направляющую, по которой этот поплавок будет скользить, иначе он будет плавать где угодно в радиусе пол метра. А направляющая — ненадежно, очень быстро все зарастает отложениями. Начнет подклинивать. А наблюдать за ним и обслуживать — значит просто преопределить задачу. Уж проще сразу вручную мерить.

                                      Во-вторых зимой тоже непонятно, что будет. Особенно если с направляющей.
                                        0
                                        Ультразвуковой дальномер, поплавок не нужен. У ардуинщиков — стандартный дивайс, может и какой shield метров на 10 существует недорого.
                                          0
                                          я что-то сильно сомневаюсь в точности УЗ дальномера внутри Ж/Б трубы с кучей переотражений, да и еще с сигналом от водной поверхности.

                                          Ну и со льдом ситуация непонятная. Он может намерзнуть, а вода под ним вниз опуститься.
                                            –1
                                            я что-то сильно сомневаюсь в точности УЗ дальномера внутри Ж/Б трубы с кучей переотражений, да и еще с сигналом от водной поверхности.

                                            Самое начало ответного сигнала — это отраженный от водной поверхности. Чего тут сомневаться?

                                            Ну и со льдом ситуация непонятная. Он может намерзнуть, а вода под ним вниз опуститься.

                                            Фуфайку сверху трубы накиньте и не будет ничего там намерзать.
                                              +2
                                              Самое начало ответного сигнала — это отраженный от водной поверхности. Чего тут сомневаться?
                                              Очень оптимистичное заявление. Вы когда-нибудь кричали в колодец? )))
                                                0

                                                Прослезился. Люто, просто люто плюсую! Как импульсные характеристики канала в мелководном водоеме — поди разбери, где там прямой, а где отражения. Всю карьеру борюсь с этим :)

                                                  0

                                                  Хотя, вся эта акустика дело такое. Человек возьмёт и измерит и в этом конкретном колодце при этом конкретном расположении все заработает )

                                                    0
                                                    В конкретном колодце для каждой конретной глубины можно запомнить свой отраженный паттерн, у него требуемая точность — 0.1м в диапазоне до 10м. Но это скорее всего перебор, 10 импульсов по 20 микросекунд — длина волны меньше сантиметра, намного меньше диаметра колодца, — сильного отражения ультразвуковой посылки назад от стенок не будет, только от водной поверхности.

                                                    Взять лучше узконаправленный излучатель. А вот те штаны, что остались от фуфайки, которой накрыли колодец, чтобы не замерз, — от них оторвать штанину и подвесить в колодце, для еще большей узконаправленности луча, — упростит математику.

                                                    И не забываем, у вас акустика в воде, а здесь акустика в воздухе, и не мелководный водоем с непредсказуемым рельефом дна, а вполне себе гладкая глубокая труба с идеальной перпендикулярной отражающей поверхностью.
                                                      +2
                                                      гладкая глубокая труба с идеальной перпендикулярной отражающей поверхностью
                                                      Типичные рассуждения ардуинщиков в лабораторных условиях.
                                                  0
                                                  Внезапно УЗ по железобетону может распространяться быстрее чем по воздуху
                                0
                                А еще глубину можно измерить несколькими девайсами и объединить измерения фильтром Кальмана.
                                  0
                                  А что должен будет отфильтровать этот фильтр?
                                    0
                                    Шум измерений. На выходе точность получается выше, чем у каждого из измерений, взятых по отдельности. Это очень хороший инструмент инженера и его не так сложно освоить, как кажется, когда смотришь в теорию.

                                    Почитать можно здесь How a Kalman filter works in pictures
                                      +1
                                      Спасибо, я знаком с калмановским фильтром. Только в статье мы делаем допущение о том, что приборы не шумят и они у нас суперточные. Ошибки определения глубины здесь связаны не с точностью и зашумленностью измерений.
                                        –2
                                        Ок, но приборы все-таки шумят и всегда можно заложить некоторую неопределенность, связанную с внешними неучтенными/неизвестными факторами.
                                  +1
                                  Шикарная статья (для далёкого от этой темы человека), на одном дыхании прочитал! Ждём ещё.

                                Only users with full accounts can post comments. Log in, please.