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

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

По сути, мне доступны следующие параметры:

  • Желаемый трек
  • Текущий курс
  • Скорость относительно земли
  • Истинная скорость полета

Меня интересует определение скорости и направления ветра.

Я гуглил и гуглил часами. Очевидно, что большинство людей используют старые авиационные E6B. Однако это явно не работает для программирования. Мне было интересно, знает ли кто-нибудь или знает, как я могу найти эту формулу.

Я не вижу никаких формул на этом сайте. Я видел некоторые формулы на вики-странице треугольника ветра, но они очень расплывчаты и не объясняют подробно, что происходит. Кажется, это сложно объяснить математически.
Есть хорошая страница авиационных формул, включающих треугольники ветра, здесь: edwilliams.org/avform.htm

Ответы (1)

С имеющимся у вас набором параметров вы не сможете этого сделать.

Если у вас есть фактический трек вместо желаемого, вы сможете рассчитать ветер.

Самый простой способ сделать это — использовать векторную математику.

Можно рассмотреть три вектора:

  • вектор путевой скорости В грамм с
  • вектор скорости воздуха В а с
  • вектор скорости ветра В ж с

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

В грамм с знак равно В а с + В ж с

В ж с знак равно В грамм с В а с

Я исхожу из фактического угла колеи ( ф ) и заголовок ( ψ ) относятся к истинному северу.

Тогда северная составляющая вашей воздушной скорости равна: В а с потому что ( ψ ) а восточная составляющая вашей воздушной скорости: В а с грех ( ψ )

Для путевой скорости разложение: север: В грамм с потому что ( ф ) а восточная составляющая вашей путевой скорости: В грамм с грех ( ф )

[ В ж с , н о р т час В ж с , е а с т ] знак равно [ В грамм с потому что ( ф ) В а с потому что ( ψ ) В грамм с грех ( ф ) В а с грех ( ψ ) ]

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


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

В ж с знак равно В ж с , н о р т час 2 + В ж с , е а с т 2

Направление ветра можно узнать по

загар 1 ( В ж с , н о р т час В ж с , е а с т )

Обратите внимание, что это даст деление на 0 для ветров точно с севера или юга.

Для реализации на языке программирования можно использовать функцию atan2. Это предотвращает деление на ноль, а также возвращает направление полного диапазона круга вместо полукруга.

wind_dir = atan2(-wind_north, -wind_east)

Это должно дать направление, откуда дует ветер, в радианах.

Спасибо ДельтаЛима. На самом деле у меня есть доступный параметр северной и восточной составляющей ветра в данных. Просто не понял про ссылку. Теперь, я думаю, я могу понять это.
Для тех из вас, кому в будущем может быть интересно.
Чтобы найти скорость ветра = примените эту формулу WS = SQRT ((x ^ 2) + (y ^ 2)) Если это в метрах в секунду, обязательно конвертируйте в узлы, если это необходимо. Чтобы найти направление ветра, примените эту формулу WD=ATAN2(y,x), где Y == вектору север/юг, а X == вектору восток/запад. Как только вы запустите эту формулу, вам будет представлена ​​степень в радианном формате. Преобразуйте радианы в градусы с помощью этой формулы Градус = (радиан * 180)/Пи. Наконец, наш последний шаг — перевести его из направления ветра КУДА в направление ветра ОТ (это то, что используется в авиации), чтобы сделать это, просто добавьте 180. градусов.
Привет, Джастин, здорово видеть, что ты понял это. Не стесняйтесь редактировать мой ответ, чтобы добавить свои выводы.
Просто понял, что у вас может не хватить репутации для редактирования моего текста. Я сам добавлю. Добро пожаловать на сайт!
Спасибо! Много лет был пилотом БПЛА. Просто пытаюсь сделать некоторые простые инструменты E6B более применимыми к тому, что я делаю!