A A A A Автор Тема: навигационная задачка. странные результаты  (Прочитано 1965 раз)

0 Пользователей и 1 Гость просматривают эту тему.

тутифрути

  • Гость
Здравствуйте!

Помогите с решением задачки.
Дано: высота светила=h, азимут=A и экваториальные координаты светила склонение=dec, прямое восхождение=alp.
Нужно найти мои географические координаты - долготу = lam, широту=phi.

Широту, понятно, можно найти по полярной phi=d... Но мне нужен точный алгоритм для всех звезд. Добрался пока до такого решения:
   
Из теоремы синусов для сферического треугольника:

sint=cos(h)*sin(A)/cos(dec);         
t=asin(t);                       
lam=alp+t-s;  (поскольку, с другой стороны, t=s-alp+lam)

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

Теперь по широте. Из теоремы косинусов:

sinh=sin(dec)*sin(phi)+cos(dec)*cos(phi)*cos(t);

Все было бы хорошо, но, как видно, справа одновременно и синус и косинус широты, т.е. явно phi не выразить. Поэтому я попробовал решить это уравнение методом итерации, типа:

G=0;                                                           
do{
pp=G;                                                       
G=asin((sin(h) - cos(dec)*cos(pp)*cos(t))  / sin(dec));
}while(fabs(pp-G)>10e-6);                                     

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

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

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

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

Спасибо.
« Последнее редактирование: 12 Окт 2005 [18:10:29] от тутифрути »

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 6 018
  • Благодарностей: 33
    • Сообщения от Mihail Sedyh
Не понял, а где время то. Или оно содержится в экваториальных координатах?
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

тутифрути

  • Гость
Не понял, а где время то. Или оно содержится в экваториальных координатах?

Да. Оно содержится в часовом угле t. t=s-alp+долгота, где s - звездное время. А звездное время понятное дела берется из UTC.


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


Оффлайн anddor

  • ****
  • Сообщений: 380
  • Благодарностей: 1
  • Per aspera ad astra!
    • Сообщения от anddor
Широту можно определить из следующих формул (они выводятся из уравнений для перехода от ra/dec к z/A):
tg A = cosM * tg t / sin (phi - M);
tgM = tg del / cos t.
Комбинируя эти два уравнения, получаем:
phi = arcsin {cos[arctan(tg del/cos t)]*tg t / tg A} + arctan(tg del/cos t)
Разумеется, это выражение теряет смысл, когда cos t = 0 (t = 90, 270) или tg A = 0 (A = 0, 180)

Что касается вычисления долготы, то возможно Вы не учли следующее:       
В выражении lam=alp+t-s в качестве s необходимо использовать звездное время на гринвичском меридиане.
При вычислении t=asin(t) нужно не ошибиться в знаках, т.е. правильно определить четверть, в которой находится t.           
Открылась бездна, звезд полна.
Звездам числа нет, бездне - дна...
                                   М.В. Ломоносов

тутифрути

  • Гость
Спасибо за ответ!!!

формулы для широты работают!

А каким образом выбрать четверь, в которой находится t=asin(t)?

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 403
  • Благодарностей: 309
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
По знаку синуса и косинуса. :)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн anddor

  • ****
  • Сообщений: 380
  • Благодарностей: 1
  • Per aspera ad astra!
    • Сообщения от anddor
Углы t и A лежат в одном и том же диапазоне:
Если 0<А<180, то 0<t<180, а если 180<A<360, то и 180<t<360.
В случае, если у Вас t лежит в другом "полукруге" нежели A, то значение t нужно увеличить (уменьшить) на 180 градусов.
Открылась бездна, звезд полна.
Звездам числа нет, бездне - дна...
                                   М.В. Ломоносов

тутифрути

  • Гость
>>В случае, если у Вас t лежит в другом "полукруге" нежели A, то >>значение t нужно увеличить (уменьшить) на 180 градусов.

привожу пример раздвоения решения при вычислениях на компьютере:

 Az          t       lam    lam2(t=t+180)

1.28 88.81 [-146.00]  -323.63
1.28 89.81 [-145.00]  -324.63
1.28 89.19  -145.63  [-324.00]
1.28 88.19  -146.63  [-323.00]

тут и часовой угол и Азимут получились в одинаковых полукругах, хотя
первые два решения(первые две строчки) правильные (lam: -146.00 и -145.00) при t=t, а вторые два решения правильные при t=t+180 (lam: -324.00 и 323.00). Так что, не понятно какое решение выбирать.

Оффлайн anddor

  • ****
  • Сообщений: 380
  • Благодарностей: 1
  • Per aspera ad astra!
    • Сообщения от anddor
тут и часовой угол и Азимут получились в одинаковых полукругах, хотя
первые два решения(первые две строчки) правильные (lam: -146.00 и -145.00) при t=t, а вторые два решения правильные при t=t+180 (lam: -324.00 и 323.00). Так что, не понятно какое решение выбирать.


Можно подробнее, а то ничего не понятно. Почему в одном случае правильны первые два, а во втором - вторые два решения? И чему равны s и alp?
Открылась бездна, звезд полна.
Звездам числа нет, бездне - дна...
                                   М.В. Ломоносов

тутифрути

  • Гость
Даю полную распечатку:

t  31 t2 -31lam 65.59 lam2 0.00    Az 24  alp 306 dec 40 s 273
t -35 t2 35 lam -4.41   lam2 70.00  Az -27 alp 306 dec 40 s 273
t -42 t2 42 lam -14.41 lam2 80.00  Az -34 alp 306 dec 40 s 273
t -48 t2 48 lam -24.41 lam2 90.00  Az -41 alp 306 dec 40 s 273
t -53 t2 53 lam -34.41 lam2 100.00 Az -47 alp 306 dec 40 s 273
t -56 t2 56 lam -44.41 lam2 110.00 Az -52 alp 306 dec 40 s 273
t -57 t2 57 lam -54.41 lam2 120.00 Az -58 alp 306 dec 40 s 273
t -57 t2 57 lam -50.00 lam2 115.59 Az -63 alp 306 dec 40 s 273
t -55 t2 55 lam -40.00 lam2 105.59 Az -68 alp 306 dec 40 s 273
t -51 t2 51 lam -30.00 lam2 95.59  Az -73  alp 306 dec 40 s 273
t -46 t2 46 lam -20.00 lam2 85.59   Az -78 alp 306 dec 40 s 273
t -39 t2 39 lam -10.00 lam2 75.59   Az -83 alp 306 dec 40 s 273
t -31 t2 31 lam 0.00    lam2 65.59   Az -90 alp 306 dec 40 s 273
t -22 t2 22 lam 10.00  lam2 55.59   Az -98 alp 306 dec 40 s 273
t -13 t2 13 lam 20.00  lam2 45.59   Az -112 alp 306 dec 40 s 273
t  -3  t2 3  lam 30.00   lam2 35.59  Az -156 alp 306 dec 40 s 273
t   7 t2 -7  lam 40.00  lam2 25.59   Az 129 alp 306 dec 40 s 273
t 17 t2 -17 lam 50.00  lam2 15.59   Az 105 alp 306 dec 40 s 273
t 26 t2 -26 lam 60.00  lam2 5.59      Az 94 alp 306 dec 40 s 273
t 35 t2 -35 lam 70.00 lam2 -4.41 Az 87 alp 306 dec 40 s 273
t 42 t2 -42 lam 80.00 lam2 -14.41 Az 81 alp 306 dec 40 s 273
t 48 t2 -48 lam 90.00 lam2 -24.41 Az 76 alp 306 dec 40 s 273
t 53 t2 -53 lam 100.00 lam2 -34.41 Az 71 alp 306 dec 40 s 273
t 56 t2 -56 lam 110.00 lam2 -44.41 Az 66 alp 306 dec 40 s 273
t 57 t2 -57 lam 120.00 lam2 -54.41 Az 61 alp 306 dec 40 s 273
t 57 t2 -57 lam 115.59 lam2 -50.00 Az 55 alp 306 dec 40 s 273
t 55 t2 -55 lam 105.59 lam2 -40.00 Az 50 alp 306 dec 40 s 273
t 51 t2 -51 lam 95.59 lam2 -30.00 Az 44 alp 306 dec 40 s 273
t 46 t2 -46 lam 85.59 lam2 -20.00 Az 38 alp 306 dec 40 s 273
t 39 t2 -39 lam 75.59 lam2 -10.00 Az 31 alp 306 dec 40 s 273
t 31 t2 -31 lam 65.59 lam2 -0.00   Az 24 alp 306 dec 40 s 273

Сначала я решал задачу RA/DEC->ALT/AZ, то есть получал h,a,t,s, зная alp,dec,UTC,lam,phi.
Причем эта задача решалась для долгот =-180 до +180 с шагом 5 градусов.

А затем наоборот, ипользуя все полуенные ALT,AZ получаем обратно долготы с шагом 5 гр и часовые углы t, t2
Из таблицы видим, что иногда lam правильные, а иногда lam2, соотвестственно иногда t правильные, а иногда t2.
Отчего это зависит я не знаю. Правильные долготы-это которые XX.00

>Можно подробнее, а то ничего не понятно. Почему в одном случае >правильны первые два, а во втором - вторые два решения? И чему

я сам бы хотел знать почему

>равны s и alp?

Оффлайн anddor

  • ****
  • Сообщений: 380
  • Благодарностей: 1
  • Per aspera ad astra!
    • Сообщения от anddor
>>В случае, если у Вас t лежит в другом "полукруге" нежели A, то >>значение t нужно увеличить (уменьшить) на 180 градусов.

привожу пример раздвоения решения при вычислениях на компьютере:

 Az          t       lam    lam2(t=t+180)

1.28 88.81 [-146.00]  -323.63
1.28 89.81 [-145.00]  -324.63
1.28 89.19  -145.63  [-324.00]
1.28 88.19  -146.63  [-323.00]

тут и часовой угол и Азимут получились в одинаковых полукругах, хотя
первые два решения(первые две строчки) правильные (lam: -146.00 и -145.00) при t=t, а вторые два решения правильные при t=t+180 (lam: -324.00 и 323.00). Так что, не понятно какое решение выбирать.


А кто Вам сказал, что во втором случае решения правильны для t=t+180? При тех же самых s и alp правильными будут именно решения для t = t (-145,63 и -146,63)!
Открылась бездна, звезд полна.
Звездам числа нет, бездне - дна...
                                   М.В. Ломоносов