Киевский клуб любителей астрономии "Астрополис"

astromagazin.net
* *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
15 Декабря 2017, 18:07:38


Автор Тема: Точное время  (Прочитано 2556 раз)

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

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Точное время
« : 11 Января 2013, 16:23:42 »
. - .

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

Но ситуация не слишком сильно изменилась за последние лет 10 в вопросе синхронизации времени.

Хотя сигналы точного времени передаются многими радиостанциями каждый час, GSM сети автоматически выставляют почти каждый мобильный телефон, GPS спутники передают сигналы по всему земному шару с очень высокой точностью, есть куча NTP серверов в разных странах... но ... мало у кого совпадет время с точностью до секунды на мобильнике и на компьютере.

Поскольку многие астронаблюдения требуют точности до долей секунды, этот вопрос весьма актуален для ЛА. Советы по синхронизации времени обычно сводятся к поверхностной инструкции включения встроенной синхронизации в виндовс, иногда советуют установить какой-нибудь синхронизатор стороннего производителя, который обычно работает лучше встроенного, но при этом есть свои подводные камни.

Ну хотя бы астро-сайты уделяют этому вопросу должное внимание?

Прямо скажу - не слишком.

К примеру, глубокоуважаемый heavens-above.com неделю назад имел сдвиг по времени около 10 минут(!). После первого письма там оперативно откорректировали секунды, но оставили 10-минутное отставание осталось, которое после очередного письма все же ликвидировали. На текущий момент там часы идут с ошибкой менее 0.1 секунды.
Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Точное время
« Ответ #1 : 11 Января 2013, 16:58:26 »
. - .

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

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

А что со сторонними программами? Они синхронизируют время от каких-то источников эталонного времени. Хорошо, если это некий независимый аппарат. Но чаще всего сейчас для синхронизации используется интернет. По умолчанию на пользовательских машинах обычно стоит синхронизация времени раз в неделю. На Windows 7 это время можно изменить отредактировав одно значение в registry, заставить виндовс синхронизироваться с заданным сервером раз в день или раз в час.
Не торопитесь. Не все так просто. Наличие окошка с магическим "Врямя успешно синхронизировано" еще не означает, что часы куда-то перевелись. Если разница времени меньше чем некоторое значение, виндовс считает, что переводить часы не надо. Это значение может меняться, обычно - несколько секунд. На самом деле система среагировала,  но не так как этого мы ожидаем. Виндовс изменяет скорость часов. Т.е. если часы спешили - они начинают отставать. И наоборот. В результате большинство виндовс систем представляет собой систему с плавающей туда-сюда ошибкой в несколько секунд.
Более частая синхронизация может уменьшить амплитуду ошибки, но может и не уменьшить. Для коррекции часов виндовс использует два значения некоторого параметра, определяющего скорость тикания часиков. Подразумевается, что при значении параметра (например, 156001) часы идут чуток быстрее, а при значении (например, 155990) часы идут медленнее. Большой разброс между параметрами сделан "с запасом". Чтобы точно спешили в одном случае, и точно отставали в другом.
В моем случае, на одной из машин в обоих случаях часы спешат. Ошибка достигает предельной величины, после чего синхронизация таки реально апдейтит время.

Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #2 : 11 Января 2013, 17:14:37 »
. - .

Многие сторонние программы не занимаются коррекцией скорости хода часов, но тупо переводят часы на время полученное от сервера. Более умные подстраховываются от флуктуаций (случайные задержки, отказы),  переключают сервера, сравнивают результаты...
Предположим, что мы поставили именно такой умный сервер, который раз в час синхронизирует часы, устанавливая их с точностью до десятой милисекунды.
Хорошо ли это?
Для начала неплохо бы отключить встроенную синхронизацию виндовс, наличие одновременно двух систем с обратной связью приводит иногда к печальным результатам (Виндовс скорость хода часов вычисляет, ничего не зная о сторонней программы)
Кроме того, без определенных телодвижений неизвестно в каком именно состоянии находится системный таймер, насколько он торопится или отстает. Вполне реальна ситуация, когда ошибка за час набегает в пару секунд. Хотя обычно меньше, но стоит проверить.
Но ладно, подумаешь, пару секунд. Для большинства случаев вполне годится. За исключением измерений временных интервалов. К примеру, если во время наблюдения покрытия произошла синхронизация, то вместо 5 секунд намеряем ... хм...

Записан

novik

  • Онлайн Онлайн
  • Сообщений: 3965
  • Благодарностей: 57
  • Я почти не изменился,:-) Александр Радионов
    • Победитель конкурсов "Лучшее астрофото" 2012, 2014, 2015 годов
Re: Точное время
« Ответ #3 : 11 Января 2013, 17:23:37 »
. - .

На сколько я знаю, профессионалы пользуются GPS и ни чем другим.
Записан
Открылась бездна звезд полна;    БПП 8Х30
Звездам числа нет, бездне дна.    SW DOB 8"
Мелкие токарные работы.  http://www.astromagazin.net

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #4 : 11 Января 2013, 17:50:19 »
. - .

Наблюдал за всем этим винегретом контролируя время по GPS приемнику (который, как оказалось, +- полсекунды ошибку давал), сигналам станций точного времени на КВ и ДВ и ответам от разных NTP серверов на разных континентах. NTP протокол, несмотря на сильную удаленность некоторых серверов (Океания) и задержкой сигнала до полсекунды, показал отличную устойчивость. Даже для упомянутого австралийского сервера ошибка в среднем не превышала одной миллисекунды. Среди украинских серверов хорошие результаты показали ntp.colocall.net и time.in.ua.  Чуть хуже был 1.ua.pool.ntp.org, возможно из-за нестабильного канала.

Ну а теперь пора сформулировать задачу. Для ЛА нужны часы, работающие с точностью до долей секунды, не меняющие время скачком во время синхронизации, не требовательные к постоянному наличию интернета.

Путей решения как минимум два.
Первый - использование независимого от системных часов таймера, это может быть mutimedia таймер, счетчик тиков процессора, внешний источник (например, GPS). Откалибровав таймер, и используя его  как эталон мы можем использовать его для своих часов. На его основе можно запустить NTP сервер, который будет в состоянии с относительно высокой точностью поддерживать ход часов между синхронизациями.

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

Второй пусть оказался существенно проще. Путем реализации нехитрого алгоритма, с первой попытки накопленная между часовыми синхронизациями ошибка уменьшилась с ~200 мс до ~2 мс. Т.е. за сутки без синхронизации время убежит на ~50 мс, чего для любительских измерений вполне достаточно.

Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #5 : 11 Января 2013, 18:03:18 »
. - .

На сколько я знаю, профессионалы пользуются GPS и ни чем другим.
Это хорошо, что GPS всегда работает, когда есть небо. Не исследовал точность разных GPS приемников. В наличии 3 конкретных непрофессиональных модели (один автономный и два встроенных в телефон и планшет), и все три работают немного вразнобой, +- полсекунды. Может быть и достаточно, если синхронизация не сбивает часы сразу на полсекунды - секунду. А такое изредка у всех моих GPS наблюдается.

Профессиональный GPS - немного другой класс приборов, другая ценовая категория, но для профессионалов незаменим. Я - не профессионал, большинство ЛА тоже. Поэтому выкручиваемся кто как может. К примеру, у меня есть возможность RWM принимать, но вряд ли эта возможность есть у каждого ЛА.

Если реализация интересует - продолжу. Возможно это никому не нужно и я даром трачу время, описывая ее здесь. Синхронизация с точностью до долей секунды в радиолюбительской сфере актуальна. В частности - при проведении радиосвязей с отражением от Луны, к чему сейчас и готовлюсь.
Записан

novik

  • Онлайн Онлайн
  • Сообщений: 3965
  • Благодарностей: 57
  • Я почти не изменился,:-) Александр Радионов
    • Победитель конкурсов "Лучшее астрофото" 2012, 2014, 2015 годов
Re: Точное время
« Ответ #6 : 11 Января 2013, 18:07:16 »
. - .

Попробуйте обратится к радио-астрономам любителям, думаю у них уже есть какие то готовые решения.
Записан
Открылась бездна звезд полна;    БПП 8Х30
Звездам числа нет, бездне дна.    SW DOB 8"
Мелкие токарные работы.  http://www.astromagazin.net

angelsky

  • Оффлайн Оффлайн
  • Сообщений: 2801
  • Благодарностей: 592
  • "Астродес", Одесса
    • astrodes.com
Re: Точное время
« Ответ #7 : 11 Января 2013, 18:13:52 »
. - .

Есть прога Dimension 4
Она специально заточена  для синхронизации компа до миллисекунд.
Записан
СЛАВА УКРАИНЕ!
Тук-тук-тук! Бандеровцы есть?
Так-так-так! - відповів кулемет...

Naboka Igor

  • Онлайн Онлайн
  • Сообщений: 6371
  • Благодарностей: 1568
    • Победитель конкурса "Лучшее астрофото" 2016 года
Re: Точное время
« Ответ #8 : 11 Января 2013, 18:14:53 »
. - .

Если реализация интересует - продолжу. Возможно это никому не нужно и я даром трачу время, описывая ее здесь.
Нужно :super: Астрономия и время в одной связке. А мы Л астрономии :SLA:
Вообще, неплохо бы прикрепить такие часики с проверенного источника к нашему форуму на видном месте :shuffle:
« Последнее редактирование: 11 Января 2013, 18:27:47 от Naboka Igor »
Записан
Обсерватория. Sky Stalker - Ньютон 406/4,7.

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #9 : 11 Января 2013, 18:28:52 »
. - .

Попробуйте обратится к радио-астрономам любителям, думаю у них уже есть какие то готовые решения.
Решение у меня лично есть уже лет 30, в виде приема сигналов RWM, которые за это время изменились незначительно (dUT передавать стали точнее, и перехали с одного места на другое).
Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #10 : 11 Января 2013, 19:28:34 »
. - .

В целом идея, реализованная в Windows, представляет интерес, поскольку при такой синхронизации нет скачков по времени и файлы/запросы, записанные в определенном (по времени) получат соответствующие метки и ситуация с неправильной очередностью маловероятна. Для измерения временных интервалов отсутствие скачков времени тоже сказывается положительно. Но надо уменьшить накопление ошибки между синхронизациями.
Реализация достаточно проста.
Отключаем встроенную синхронизацию в системных настройках.

Используем какую-то программу для установки скорости системного таймера. Реализации можно найти в интернете (я написал свою, благо основной код помещается на одной странице).

Устанавливаем любой сторонний NTP синхронизатор времени (D4 или Network Time), важно, чтобы у него был лог, в котором можно было посмотреть величину накопленной ошибки. Устанавливаем синхронизацию раз в час (минуту, 10 минут). Далее наблюдаем, записываем. Дольше - точнее. Если слишком часто сервер может отказать в доступе.

Определяем текущее значение счетчика. Программа на любом языке сделает запрос GetSystemTimeAdjustment, кому интересно - см. MSDN

>TimeAdjust.exe
Current SystemTimeAdjustment: 155985, 156001, 0
>
Первое число - текущее значение параметра скорости таймера. Второе - значение по умолчанию, используемое при выключении системы автонастройки времени (неплохое значение для начала)

Синхронизируем часы вручную, ждем час (или сколько-то там) , записываем ошибку. Допустим, это 0.24 с.
Теперь мы знаем, что с установленным параметром 155985 система будет каждый час накапливать ~0.24 c.

Запускаем тот же эксперимент с другим значением счетчика.
>TimeAdjust.exe :156001
Current SystemTimeAdjustment: 156001, 156001, 0

Примечание. Для этого пункта в W7 понадобятся права администратора.

Синхронизировали время, через час получили значение ошибки -0.36 с

Хитрый читатель, наверное, уже все понял. Да, все просто. Не стоит ждать часа между переключениями скоростей.

Важно, что за 1/36 какого-то интервала ошибка в минус набежит такая же как за 1/24 в плюс.

Создаем bat файл примерно вот такого содержимого

@:loop
@TimeAdjust.exe :156001
@timeout 24 /nobreak > nul
@TimeAdjust.exe :155985
@timeout 36 /nobreak > nul
@goto loop

Запускаем.
Проверяем расхождение синхронизации на длительных интервалах.

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

В частности, в результате экспериментов обнаружилось, что на одной из машин выставление таймера в любое значение в интервале 155986 .. 155999 приводило к одной и той же физической скорости таймера. Т.е. дискретность выставления значений явно ниже 1/156000, как следовало бы ожидать исходя из документации. На другой машине интервал другой, но тенденция та же. Раскопать причину такого поведения мне не удалось.

Программа, используемая в экспериментах, приложена.
Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #11 : 12 Января 2013, 15:04:36 »
. - .

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

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

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

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #12 : 12 Января 2013, 15:43:17 »
. - .

Источники сигналов точного времени с комментариями.

Обычные наручные ЖКИ электронные часы. Если держать их на руке или в кармане, при стабильной температуре человеческого тела такие часы имеют очень стабильную скорость отсчета. В старых моделях, в которых путем разборки можно добраться до кварца, скорость можно откорректировать, аккуратно припаяв к кварцу доп. емкость. К сожалению, добившись погрешности в менее чем секунду за месяц, сохранить такую точность можно только никогда не снимая часы с руки.

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

При наличии приемника на частоты 4996, 9996, 14996 в Украине можно большую часть суток принимать сигналы станции RWM. Есть и другие станции, передающие сигналы точного времени как на КВ, так и на ДВ, но указанные частоты у нас принимаются увереннее всего. Приемник может быть как автономный, так и в виде приставки к компьютеру. В последнем случае он питается по USB и может быть использован для разного рода экспериментов и развлечений когда нет неба.
Самодельный вариант может уместиться в спичечный коробок.

Сведения о RWM в русском варианте википедии несколько неточны, для подробностей лучше искать другие источники (даже английский вики точнее). Впрочем, лучше один раз услышать чем 100 раз прочитать, там все понятно.
Кроме минутных, секундых и 10 гц сигналов RWM передает текущее значение dUT (разница между UT и UTC) с точностью до 0.02 с. Их легко декодировать на слух без зания азбуки Морзе. Во время передачи секундных тиков некоторые из тиков "двоятся". Есть две группы из двойных тиков. Первая определяет разницу в единицах по 0.1 с. Вторая - в единицах по 0.02 с на каждый двойной тик. При этом, если тики начинаются с 1-й и 21-й секунды, то знак плюс, если с 11-й и 31-й - то знак минус.
Сейчас двойные тики слышны на секундах NN 1, 2, 3, 31, 32, что соответствует сдвигу dUT = 3x0.1 - 2x0.2 = 0.26 c.

Для более точных измерений нужно еще учесть время распространения радиоволны, до Киева это ~2 мс, ели не ошибаюсь. Для ЛА измерений, думаю, ее можно не учитывать.
Записан

Vadym

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 2486
  • Благодарностей: 238
  • Киев, Подол
    • Звездное небо - моя фотогалерея
Re: Точное время
« Ответ #13 : 12 Января 2013, 20:52:48 »
. - .

В КАО есть сотрудник - Клещенок Валерий Владимирович. У него есть своя программа по определению поправки к системному времени компьютера (не синхронизация) с помощью GPS. Пользуюсь этой программой при определении точных моментов покрытий. Работает под WIN XP. Возможно автор доработает ее для работы с более свежими ОС. GPS-приемник использую не профессиональный - 300 гр. Тонкостей работы программы не могу объяснить, но могу познакомить с Валерием Владимировичем. Тема мне интересна, можем на ближайшем заседании клуба поговорить об этом.

P.s. О принципе работы посмотрите тут: О времени (Использование данных протокола NMEA).
Записан
Моя фотогалерея
МШР, БТР-12, ED-80, HEQ-5, Бино 20х80, QHY-5, Canon 450D

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #14 : 12 Января 2013, 22:46:09 »
. - .

С удовольствием приму участие в беседе на эту тему, но надеюсь, что будут и другие  ;)
Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #15 : 12 Января 2013, 23:03:48 »
. - .

GPS - один из самых популярных нынче источников сигналов точного времени. Первый GPS аппарат появился у меня лет десять тому назад. В то время как раз и познакомился с протоколом NMEA. Односекундной точности в то время более чем хватало, сама технология, позволявшая узнать свое расположение с точностью до ста метров, впечатляла.
Программу, корректировавшую компьютерные часы на основе регулировки скорости часов написал значительно позже. К сожалению, получить равномерную стабильную ошибку мне так и не удалось. Причина выяснилась только в последнее время. Виной тому временные флуктуации работы. Информационный пакет о UTC приходит с скачущей задержкой. Менее секунды,  для большинсва приложений вполне достаточно. Но есть еще и меньшинство, для которого нужна точность повыше. Вполне возможно, что есть дешевые GPS, не обладающие этим недостатком. Кроме того в готовых дешевых китайских GPS модулях пятилетней давности есть сигнал в 1 гц, синхронизированный с GPS и которому можно доверять. К сожалению, никуда кроме как к осциллографу я его не подключал. Думаю, на его основе можно сотворить дешевый самодельный GPS специально для ЛА.
Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #16 : 12 Января 2013, 23:14:42 »
. - .

Сигналы точного времени по радио, телевидению и сотовым сетям.
Поскольку многие (если не большинство) их этих программ транслируются через спутник с большой задержкой, не стоит удивляться запаздыванию "шестого сигнала" или его разновидностей на несколько секунд. Соответственно - доверять ему можно только для грубой оценки.
Кроме того, у ведущих стоят такие же компьютеры как у нас, и точно не стоит удивляться даже когда обнаружите расхождение в несколько минут.

Мобильники тоже точностью не блещут. Например, у мобильников с MTC разница с UTC примерно в 3.5 секунды. Хотя стабильная ;)


Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #17 : 12 Января 2013, 23:37:11 »
. - .

Интернет синхронизация.
Самый популярный протокол, используемый для синхронизации - NTP.
В результате посылки запроса на NTP сервер у клиента (АКА пользователя) есть набор из четырех меток времени с высокой точностью.
T1 = время отправки запроса клиентом (по клиентским часам, ес-но)
T2 = время получения запроса сервером
T3 = время отправки ответа  сервером
T4 = время получения ответа (по клиентским часам)

Протокол предполагает, что время прохожения пакета в обоих направлениях одинаково, что в большинстве случаев справедливо. dT = T2-T1 = T4-T3 = ((T4-T1) - (T3-T2))/2.
Для определения точного времени в момент получения сигнала этот dT прибавить к T3.

Подключившись в интернету даже с помощью медленного GPRS и практически не потребляя трафика, можно довольно точно выставить время. При этом полезно знать, что GPRS и EDGE обладают определенной асимметричностью, поэтому точность в 1 ms получить вряд ли удастся. Но поскольку полная задержка обычно менее 0.2 секунды, то погрешность получается как минимум не хуже. Существенно лучшие результаты у CDMA (3G, 4G) протокола в основном из-за лучшей симметричности. Скорость соединения особой роли не играет, задержки у 3G того же порядка (у меня на даче - 0.15 с).

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

Записан

M_M

  • Клуб Астрополис
  • Оффлайн Оффлайн
  • Сообщений: 4693
  • Благодарностей: 978
Re: Точное время
« Ответ #18 : 12 Января 2013, 23:43:28 »
. - .

Резюме.

Все описанные способы имеют свои преимущества и недостатки.

Надеюсь, знание оных поможет сделать выбор способа синхронизации в зависимости от потребностей и возможностей.

Можно поговорить и о профессиональных системах синхронизации времени, но это скорее всего за пределами как возможностей так и потребностей ЛА.

 :SLA:
Записан

Freedeniz

  • Модератор
  • Оффлайн Оффлайн
  • Сообщений: 5071
  • Благодарностей: 117
  • с ув.Денис
Re: Точное время
« Ответ #19 : 13 Января 2013, 14:29:38 »
. - .

Не сильно уверен, что это вам поможет, но в Николаевской обсерватории есть служба времени, которая как раз занимается данным вопросом. Эталонов у них несколько. если не ошибаюсь то это атомные часы и маятниковые в вакуумной колбе.
Записан
"АстроНик" 46 58' Сш 31 58' Вд