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

Тема в разделе "ПЕСОЧНИЦА", создана пользователем Дед 005, 10 янв 2019.

  1. Дед 005

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

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

    trir Форумчанин

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

    stout Форумчанин

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

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

    Спасибо конечно за подсказку. Я посмотрел конечно, Но может быть Вы (извиняюсь за дерзость) напишете мне простую пошаговую инструкцию для нахождения этого самого искомого t/
    --- Сообщения объединены, 12 янв 2019, Оригинальное время сообщения: 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 нравится это.
  6. Дед 005

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

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

    stout Форумчанин

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

    stout Форумчанин

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

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

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

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

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

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

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

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

    stout Форумчанин

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

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

    Так ведь он считает координаты не так, как студенты на занятиях. Там ведь используется фильтр Калмана.
     
    chnav нравится это.
  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. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление