1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны периодические перебои в работе.

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

Discussion in 'ПЕСОЧНИЦА' started by Дед 005, Jan 10, 2019.

  1. Дед 005

    Дед 005 Форумчанин

    --- Сообщения объединены, Jan 11, 2019, Оригинальное время сообщения: Jan 11, 2019 ---
    Спасибо конечно, - но если у Вас с английским в отличии от меня все нормально, - может объясните попонятнее?
    .
     
  2. trir

    trir Форумчанин

    толку то, там всю методичку нужно читать
     
  3. stout

    stout Форумчанин

    Я в третий раз рекомендую посмотреть исходники http://stvl.nl/stdalone.pas
    Там всё это есть.
    Пиво без водки – деньги на етер.
    В том смысле, что стандартное значение машинного эпсилон для типа float 1.19209e-07. И это явно недостаточно. Кстати, а есть ли в этом micro С определение для FLT_EPSILON?
    Или выполнить что-то типа:
    Code:
    float a = 1.0;
    do{
        a *= 0.5;       
        }while((1.0 + a) > 1.0);
    Может быть всё не так плохо, как я думаю, хотя в четыре байта много не засунешь.
    Иначе надо искать библиотеку поддержки типа double для вашего micro С/контроллера.
     
  4. Дед 005

    Дед 005 Форумчанин

    Спасибо конечно за подсказку. Я посмотрел конечно, Но может быть Вы (извиняюсь за дерзость) напишете мне простую пошаговую инструкцию для нахождения этого самого искомого t/
    --- Сообщения объединены, Jan 12, 2019, Оригинальное время сообщения: Jan 12, 2019 ---
    Вот и я о том же. У меня нет за плечами 5 лет обучения в профильном институте по этой тематике. Поэтому на плохое знание английского накладывается также не знание специальной терминологии. Но в любом случае, - спасибо за подсказку. Если кто нибудь внятно пояснит, - составлю алгоритм, и пойду дальше, - если нет, - буду разбираться.
     
  5. stout

    stout Форумчанин

    У меня застарелый синдром преподавателя – точно знаю, что лучше всего запоминается то, до чего дошёл сам.
    Скачал Lazarus, создал проект для консольной программы, вставил текст stdalone.pas, заменил real на double, исправил кусок кода с устаревшим синтаксисом на
    while T >= 86400 do
    T := T - 86400;
    while T < 0 do
    T := T + 86400;
    И в отладчике посмотрел за изменением переменных.

    Важно! Точности float недостаточно для вычислений. Ошибка в последнем бите мантиссы равносильна ошибке представления орбиты и псевдодальности ~2 метра.
    Всё ещё печальней со временем. Ошибка может быть порядка 0.01 сек. Умножьте это на скорость света.
     
    Geo_major likes this.
  6. Дед 005

    Дед 005 Форумчанин

    Мы с Вами отчего то о разном говорим. Мне сейчас нужно получить рабочий алгоритм, написанный мной. А вот когда он будет работать, - тогда я с большим удовольствием и энтузиазмом буду говорить о точности, и интересоваться как и какими методами мне её, этой самой точности добиваться.
     
  7. stout

    stout Форумчанин

    Он не будет работать, вам не с чем будет сравнивать.
     
  8. Ttr=Trcv-S/c
    Trcv
    - время приёма в шкале времени приёмника, получите отсюда:
    S - псевдодальность до спутника
    c - скорость света
    Псевдодальности для каждого спутника разные, поэтому и Ttr будет для каждого спутника своё.
     
  9. stout

    stout Форумчанин

    Ну вот.::sad24.gif::
    Нет чтобы подтолкнуть человека к самостоятельным выводам…
     
    Geo_major likes this.
  10. Дед 005

    Дед 005 Форумчанин

    Уф!!!!!!!!!!!!!!!! Спасибо большое! Еще раз, - я правильно понял, - C0 7F 77 07 - (Врем¤ недели измерени¤ по локальному времени приемника. rcvTow \ в мс) это и есть Trcv, и теперь Ttr = Ttr = Trcv-S/c = C0 7F 77 07 минус псевдодальность деленная на скорость света.: Отчего я это нигде не находил , ни в каких книжках.
     
  11. Гео"Акад"дезист

    Гео"Акад"дезист Форумчанин

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

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

    Дед 005 Форумчанин

    Добрый день. Только я обрадовался, что получил ответ, как меня опять "переопределили". Я ведь пояснил, - что делаю эти расчеты используя исходные данные модуля навигатора. Модуль считает свои координаты, получая данные со спутников. Я по сути повторяю его расчет, - беря исходные данные у него, из его сообщений, - по запросу от контроллера. Эфемериды получаю, псевдодальности получаю. Если мне правильно подсказали, - время тоже получаю. Правильность вычислений собираюсь проверять сравнив их с координатами, которые высчитывает этот же модуль с которым я работаю.
    --- Сообщения объединены, Jan 20, 2019, Оригинальное время сообщения: Jan 20, 2019 ---
    Я бы самостоятельно не мог додуматься , что нужно это время еще дополнительно высчитывать, используя псевдодальности и скорость света.
     
  13. stout

    stout Форумчанин

    Как описана переменная, где хранится Trcv?
     
  14. В.Шуфотинский

    В.Шуфотинский Модератор Staff Member

    Так ведь он считает координаты не так, как студенты на занятиях. Там ведь используется фильтр Калмана.
     
    chnav likes this.
  15. stout

    stout Форумчанин

    В общем случае – довольно спорное утверждение.
     
  16. Дед 005

    Дед 005 Форумчанин

    я же писал уже, -
    C0 7F 77 07 - Врем¤ недели измерени¤ по локальному времени приемника. rcvTow \ в мс 4 байта. все переменные в double.
     
  17. stout

    stout Форумчанин

    Нет, про double вы не писали, писали про
     
  18. Дед 005

    Дед 005 Форумчанин

    наверное упустил. На тот момент беседа была не в этом. интересует правильность алгоритма. точность - следующий этап.
     
  19. stout

    stout Форумчанин

    Похоже я неправильно пояснил ситуацию. Оставаясь в рамках точности float и без дополнительных ухищрений, в принципе невозможно проверить правильность алгоритма, так как решения просто не будет. А если и получится какое-то число, то ошибка может быть в сотни км. И будет совершенно непонятно, где сидит ошибка.
     
  20. Дед 005

    Дед 005 Форумчанин

    Я понял Вас, - наверное просто все смешалось....... я ведь изначально писал про методичку gps.png она есть вместе с решением. Результат с моим сходится. - я думал что это изначально понятно было. Видимо не написал....... Но это, - координаты спутников.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice