УДК 004.414.22+681.2.088
ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ ОЦЕНИВАНИЯ СОСТОЯНИЯ ЭТАЛОНОВ ВРЕМЕНИ И ЧАСТОТЫ ПО РЕЗУЛЬТАТАМ ВЗАИМНЫХ ИЗМЕРЕНИЙ
л
© А.А. Ипполитов1
Иркутский государственный технический университет, 664074, Россия, г. Иркутск, ул. Лермонтова, 83.
В ряде областей науки и техники возникает задача оценивания состояния недоопределённых систем. Одним из примеров такой системы являются групповые эталоны времени и частоты. Предложен алгоритм решения указанной задачи, с целью его моделирования и практического внедрения разработан программный комплекс для оценивания состояния эталонов времени и частоты по результатам взаимных измерений. Установлено, что разработанный программный комплекс позволяет достигнуть существенного улучшения точности получаемых оценок.
Ил. 3. Библиогр. 7 назв.
Ключевые слова: программный комплекс; разработка; оценивание состояния; групповые эталоны; авторегрессия.
SOFTWARE PACKAGE TO ESTIMATE TIME AND FREQUENCY STANDARD STATES BY RESULTS OF MUTUAL
MEASUREMENTS
A.A. Ippolitov
Irkutsk State Technical University, 83 Lermontov St., Irkutsk, Russia, 664074.
The problem of estimating the state of underdetermined systems arises in a number of fields of science and technology. Collective standards of time and frequency may be considered as an example of such a system. The paper proposes an algorithm to solve the specified problem. In order to simulate it and implement into practice the author develops a software package for estimating the states of time and frequency standards by the results of mutual measurements. It has been found that the software package under discussion allows a significant improvement in the accuracy of the obtained estimates.
3 figures. 7 sources.
Key words: software package; development; state estimation; collective standards; autoregression.
В ряде областей науки и техники возникают задачи, связанные с оцениванием состояния систем с неполной матрицей наблюдений. Одним из ярких примеров таких систем являются групповые эталоны времени и частоты. Схема выполняемых в них измерений такова, что в каждый момент времени наблюдения производятся относительно одного из элементов группы, выбранного в качестве опорного. В результате, при численности группы N1, имеется N-1 рядов измерений, тогда как требуется оценить состояние всех N элементов. Система является недоопределённой, т.е. количество имеющейся о ней информации недостаточно, требуется привлечение каких-либо дополнительных сведений.
Была предложена (подробнее см. [1-3]) методика оценивания состояния таких систем, основанная на использовании в процедуре оценивания прогнозирующих моделей - моделей авторегрессии - проинтегрированного скользящего среднего (АРПСС). Задача оценивания состояния в таком случае может быть сведена к процедуре субоптимальной фильтрации [4]. При её решении возникает ряд подзадач, связанных с идентификацией моделей АРПСС в недоопределённых системах, оценкой содержащихся в рядах измерений линейных трендов и др.
В процессе разработки данной методики оценивания возникла необходимость её отработки - как в режиме моделирования, так и при работе с реальными данными, полученными от эталона времени и частоты. Ввиду весьма существенной трудоёмкости производимых вычислений (поскольку речь идёт об оптимизации функций многих переменных), реализация такого алгоритма возможна только с использованием ЭВМ. Таким образом, возникла необходимость разработки программного комплекса оценивания состояния эталонов времени и частоты.
Требования к разрабатываемым программным средствам исходили из стоящих задач. С одной стороны, требовалось обеспечить поддержкой проводимые исследования, из чего следовали такие приоритеты, как обеспечение гибкости, относительной быстроты разработки и модификации. С другой стороны, ввиду имеющихся планов по внедрению разработанной методики в практику деятельности Государственной службы времени, частоты и определения параметров вращения Земли (ГСВЧ РФ), было необходимо обеспечить возможность дальнейшего использования полученных результатов, в том числе путём их интеграции в иные программные средства.
Используемые в деятельности ГСВЧ программные
1Ипполитов Александр Александрович, аспирант кафедры вычислительной техники, тел.: (3952) 405107, e-mail: [email protected]
Ippolitov Alexander, Postgraduate of the Computing Machinery Department, tel.: (3952) 405107, e-mail: [email protected]
средства неоднородны, созданы в различное время и на различных платформах (как Windows-системы, так и свободное ПО), на момент разработки точных представлений о возможном программном окружении и способах интеграции в него, таким образом, не имелось. Отсюда следовало требование модульности, переносимости и кроссплатформенности.
С другой стороны, ввиду ограниченности человеческих и временных ресурсов, отводимых на разработку, требовалось минимизировать объём вновь разрабатываемых элементов. Кроме того, по соображениям как экономического свойства, связанным с приобретением стороннего программного обеспечения, так и юридическим, касающимся дальнейшего использования результатов, было крайне желательно исключить использование коммерческих платформ и средств разработки.
На практике можно выделить следующие основные способы обеспечения кросс-платформенности:
• применение интерпретируемых и байт-код ориентированных языков программирования (Perl, Python, Java и др.);
• применение традиционных языков программирования в связке с обеспечивающими абстракцию от системных средств кросс-платформенными библиотеками и фреймворками (например, Qt, GTK).
Второй путь весьма популярен в коммерческих проектах и проектах, ориентированных на конечного потребителя. Он обеспечивает высокую производительность (в частности, за счёт отсутствия накладных расходов на интерпретацию) и отсутствие потребности в установке дополнительных программных средств (интерпретаторов, виртуальных машин) пользователем. Минусом является необходимость перекомпиляции как при внесении изменений (что увеличивает затраты времени на разработку), так и при переносе на каждую новую платформу (что может быть связано с достаточно времязатратной процедурой развёртывания среды сборки или организации кросс-компиляции). Кроме того, возможны достаточно жёсткие лицензионные ограничения, создающие определённые трудности в распространении полученных результатов. В силу имеющихся недостатков, было решено остановиться на альтернативном варианте.
Интерпретируемые языки программирования, как правило, отвечают концепции свободного программного обеспечения (СПО). Код программы выполняется без изменений на любой системе, для которой имеется версия интерпретатора. Байт-код ориентированные языки программирования (интерпретатор, который исполняет не исходный код, а некоторый промежуточный код виртуальной машины - например, Python) требуют компиляции на этапе разработки (внесения изменений в код), но перенос между платформами возможен без изменения кода и перекомпиляции. Интерпретируемые языки программирования без компиляции в байт-код не требуют компиляции вовсе. Платой за это чаще всего является не столь высокая производительность. При этом гибкость и переносимость являются максимальными, что требуется в рассматриваемом случае.
Одним из наиболее популярных языков такого типа является язык Perl. Несмотря на изначальную ориентированность на обработку текстовых данных, Perl имеет очень развитую функциональность и широкую сферу применения, в том числе и для решения научных задач. Интерпретатор Perl портирован на большинство распространённых платформ, включая, конечно, ОС семейства Windows и ^ix-системы, что позволяет выполнять написанные на нём скрипты (программы) под управлением любой из них без каких-либо дополнительных усилий. Разработка и отладка приложений на Perl занимает сравнительно мало времени, поскольку не требует перекомпиляции кода во время экспериментов или исправления ошибок, а сам язык обладает очень высокой смысловой ёмкостью (конструкции Perl выражают на единицу программного кода гораздо больше выполняемых ЭВМ действий, чем традиционные языки программирования) и богатой встроенной функциональностью (в т.ч. развитой поддержкой динамической типизации и структур данных). При всём этом, Perl обладает очень высокой производительностью, в ряде случаев не слишком сильно уступая даже компилируемым языкам, таким как C++. Использование интерпретатора Perl бесплатно (он представляет собой СПО), ограничения в распоряжении написанными с его использованием программами отсутствуют. В силу развитых средств взаимодействия с системным окружением, программы на Perl хорошо интегрируются в существующую программную инфраструктуру.
Основываясь на вышеперечисленном, а также на наличии положительного опыта разработки с использованием вышеуказанного языка, было принято решение о разработке программного комплекса оценивания состояния эталонов времени и частоты с использованием языка Perl.
Исходя из требований минимизации трудозатрат на разработку, было принято решение реализовать текстовый («консольный») интерфейс программы. Разработка графического интерфейса хотя и возможна, но не оправдана, т.к. для исследовательской работы он не требуется, а при внедрении программного комплекса в ИТ-инфраструктуру того или иного эталона могут возникнуть новые требования. Возникающую же в период проведения исследований задачу визуализации результатов экспериментов (построение графиков, автокорреляционных и частных автокорреляционных функций и т.п.), а также ряд типовых статистических задач (проверка выборок на нормальность и др.) было решено возложить на внешнее средство. Поскольку в процессе проводимых исследований уже использовался пакет StatSoft Statistica 6.0 и 8.0, было решено выполнить интеграцию с ним. Данный пакет имеет поддержку технологии OLE, позволяющую организовать взаимодействие с экземпляром процесса извне, в частности, из другой программы. В свою очередь, модуль Win32::OLE позволяет Perl-приложениям в среде Windows получать доступ к функциональности программ, поддерживающих такой интерфейс. Возникающее при этом ограничение, связанное с платформой проведения исследований, не является пробле-
мой, поскольку StatSoft Statistica и так является Windows-приложением, необходимым для проведения исследований.
Сама процедура оценивания состояния по предлагаемой методике состоит из следующих основных этапов:
1. Оценивания детерминированных трендов и их удаление из рядов измерений;
2. Структурная идентификация моделей авторегрессии - скользящего среднего (АРСС);
3. Идентификация параметров моделей и оценивание состояния.
Основным этапом является последний, объединяющий в себе процедуры параметрической идентификации (определения коэффициентов в моделях АРСС) и оценивания. Прочие этапы являются подготовительными по отношению к нему. Оценка относительного отклонения частоты опорного генератора на каждом такте работы алгоритма находится как [2]
У оп
n
£ gt к- + У( 1))
i=1
(1)
£ gi (Уоп - Уг + У(Ц)
где у (1) - прогноз, вычисленный на предыдущем такте, ^ = - вес ¡-го хранителя.
Оценки для остальных генераторов вычисляются
как
У = У - z.
Si J оп г
(2)
Идентификация параметров моделей осуществляется путём оптимизации функционала вида
j=£ £ к--(yji(t) - y„+i(f ))]2.
j =1 i=1
Прогнозы вычисляются как:
yt = фУ-1 + Ф2 yt-2 + ••• + ФгУг - p +
+ &iat-1 + ••• +
(3)
(4)
q t-q
где ф - коэффициенты авторегрессии; p - количество включенных членов авторегрессии; в - коэффициенты скользящего среднего; q - количество включенных членов скользящего среднего.
Ошибка прогноза предыдущего шага расценивается, как at-1 на следующем.
Фактически при этом производится минимизация ошибки прогноза. Берутся некоторые начальные приближения для коэффициентов в моделях авторегрессии (они могут быть нулевыми); итеративно выполняется вычисление рядов оценок по формулам (1) и (2) и минимизация функционала (3). Таким образом, в процедуре идентификации моделей используются результаты предыдущей итерации процедуры оценивания, а оценки строятся на основании обновлённой модели.
Оптимизация функционала осуществляется посредством метода градиентного спуска с дроблением шага. Последовательно производится численное дифференцирование вперёд методом двух точек (как
наиболее быстрым - высокая точность вычисления производных для данной задачи не требуется) по каждому коэффициенту моделей АРСС (с шагом Ах =0,0001), для чего вычисляется исходное значение функционала (3) и значение функционала после приращения по той переменной, по которой в данный момент ведётся дифференцирование, и находится их разность:
д _ J(х + Ах)- J(х)
дх Ах
Данная процедура является достаточно ресурсоёмкой, поскольку ресурсоёмкой задачей является вычисление функционала (3) вообще: требуется пересчёт оценок для каждого ряда i на все моменты времени I.
В результате находим градиент функционала Л
(5)
vj (p, ...pp, в, ...eq )=
Sj
Sj 5j
&px Sep 5вх
5j SB,.
(6)
\~т1 -т р - 1 qу
Параллельно с этим вычисляется евклидова норма градиента:
INI2 =
p ( $j\
£
к=1
к У
+£
i=1
q f 51л
SB,
(7)
У
Имея градиент и норму градиента, делаем шаг градиентного спуска:
Ji+1 = Ji - К
vj, IVJill
(8)
где Я = Я - шаг градиента (задан равным 0,025).
Проверяется, выполняются ли условия:
(1г - Jм)<0.1-Я,-и (9)
(31 0, (10)
Як> 0.000000001, (11)
Условия (10) и (11) связаны, преимущественно, с точностью представления чисел в ЭВМ и исключают выполнение не имеющих смысла итераций.
Если выполняются все три условия, то происходит дробление шага
Я =Я-1 . (12)
Коэффициент дробления шага у принят равным 0,5, т.е. шаг делится пополам.
После дробления шага вновь выполняется вычисление значения функционала (3), но уже с новым значением Як и вновь проверяется соответствие условиям (9)-( 11).
Если значение является приемлемым (условия перестают выполняться), то итерация завершается. Проверяется, является ли снижение функционала — Ji достаточно существенным, в данном случае
условие не выполняется, если модуль разности меньше 0,005
,=1
2
2
|J+1 - J| < 0.005.
(13)
Если условие выполняется, то считается, что заданная точность достигнута и процесс оптимизации завершается. Также процесс завершается, если количество итераций превышает 80 - считается, что если условие не выполнено за такое количество итераций, то структура модели выбрана неудачно и дальнейшие затраты вычислительных ресурсов на неё не оправданы.
Оценки, полученные на каждой итерации при вычислении функционала, сохраняются в памяти. Если итерация является последней, то эти оценки и являются результатом выполнения процедуры оценивания состояния эталона. Таким образом, задача идентификации и задача оценивания решается параллельно, в тесной взаимосвязи друг с другом. Описанный алгоритм является основой функционирования всего программного комплекса.
Кроме идентификации параметров моделей, имеет место задача идентификации структуры моделей. Модели АРСС могут включать различное количество членов авторегрессии (АР) и скользящего среднего (СС), что записывается как (р,0,ц), где р - количество членов авторегрессии, а ц - количество членов скользящего среднего. Способы структурной идентификации моделей АРСС подробно рассмотрены в [5] и [6]. Было предложено два способа решения этой задачи -способ, основанный на переборе наиболее вероятных структур моделей и последующем выборе оптимальной, и способ, базирующийся на использовании для оценивания структуры модели рядов грубых оценок, построенных по методике среднего арифметического.
В описываемом программном комплексе реализованы обе данные методики. Реализация первой из них, основанной на переборе, строится на том, что для моделей с количеством членов обоих типов от 0 до 3 или 4 выполняется оптимизация функционала и, после чего вычисляются значения функционала вида:
3
(14)
J 4 =
N • (n - k • (p + q))
где N - число исходных рядов; п - число членов в каждом ряду; к = 3 - добавочный коэффициент.
Результаты помещаются в массив, который сортируется по значению выражения (14), выбирается наименьший результат и используется для дальнейшей работы.
Альтернативный вариант основывается на том, что вычисляются как среднее арифметическое измерений грубые оценки состояния вида:
1 п-1
у- = - ■ (15)
П г=1
Оценки остальных генераторов вычисляются как
(2).
После этого строятся автокорреляционные и частные автокорреляционные функции (ЧАКФ и АКФ) полученных рядов, которые исследуются с целью определения структуры моделей по методике Бокса-Дженкинса [7].
С целью экономии времени на разработку было решено использовать для визуализации АКФ и ЧАКФ средства StatSoft Statistica, как это описывалось ранее. Таким образом, при работе в таком варианте комплекс запрашивает пользователя о необходимости экспорта в Statistica. Если пользователь отказывается, то ряды экспортируются в текстовые файлы (для визуализации иными средствами). В случае согласия пользователя, результаты экспортируются в Statistica, где по ним строятся ЧАКФ и АКФ. Пользователь анализирует полученные графики функций, идентифицирует порядки АР и СС и указывает их в программе оценивания состояния. Далее определённая таким образом структура используется для построения моделей и получения уточнённых оценок состояния системы.
Другой важной задачей является оценка и удаление линейных трендов. Подходы к её решению подробно рассматривались в [6].
Реализацией методики оценивания предусматривается оценивание и исключение из рядов взаимных измерений линейных трендов по заданным априорным сведениям о них (полученным в процессе «привязки» эталона постоянным составляющим и оцененным, например, через ряды внешних сличений эталона коэффициентом угла наклона), в т. ч. с использованием процедуры «дооценивания» тренда, очень похожей по реализации на процедуру минимизации функционала J. Отличие состоит в виде используемой при этом модели - вместо моделей АРСС используется линейная модель вида yT (t) = b)t + b° . Оптимизируется методом градиентного спуска с дроблением шага функционал следующего вида:
Е Е k j-lit+bo )-(b; t+bo J
.......... (16)
При этом шаг градиентного спуска Я выбирается значительно меньшим, чем в случае функционала (3), порядка 0,0005. Также меньшим выбирается и шаг дифференцирования Ах = 0,00001. Это объясняется тем, что при больших I приращение коэффициента угла наклона даёт очень большой рост значения функции, таким образом, для обеспечения сходимости алгоритма требуется давать очень малое приращение.
После определения параметров модели тренда тренды удаляются из рядов измерений
¿Г = г, ~(уГ -ут). (17)
Таким образом, в оценивании состояния участвует только стохастическая составляющая рядов. При подготовке окончательных результатов тренды накладываются вновь.
Исследование реальных данных, поступивших от эталона ГЭТ1-5 ВСФ ВНИИФТРИ, показало, что в ряде случаев ряды могут иметь не только линейный тренд, но и квадратичный. Вследствие этого одним из направлений развития является расширение функциональности блока оценивания тренда таким образом, чтобы он поддерживал детерминированные состав-
2
ляющие более высоких порядков.
Ввиду того что при исследовании реальных данных, поступивших от эталона времени и частоты возможность получить исходные ряды наблюдений отсутствует, возникают сложности с оценкой качества функционирования алгоритма: нет возможности сопоставить истинные значения оцениваемых величин и оценки, проанализировать имеющиеся расхождения. В связи с этим возникла задача создания системы моделирования, предназначенной для отработки данного алгоритма. В результате была принята концепция, при которой реальный эталон, состоящий из водородных стандартов частоты, объединённых измерительной системой, заменяется его моделью. Генераторы заменяются авторегрессионными моделями временных рядов (моделями АРСС), а измерительная система, формирующая разностные ряды - операцией вычитания. Блок генерации синтетических данных был встроен в программный комплекс в качестве одного из возможных источников данных.
Случайная составляющая ряда генерируется моделями вида
У =^yt-1 +... + Pp+dyt - p - d
-0Л-1 -... -&qat - q + at
(18)
Сложность модели задаётся для каждого генератора индивидуально путём изменения параметров р, и ц,. Генерация рядов выполняется в порядке возрастания номера члена, на каждом шаге I генерируется
нормально распределённая случайная величина а с
заданными характеристиками (нулевым математическим ожиданием и заданным с.к.о.), которая запоминается для следующих шагов (в зависимости от выбранного количества членов скользящего среднего).
Детерминированный тренд ряда моделируется при помощи линейных моделей
= Ъхг + Ъ0. (19)
Далее тренд накладывается на сгенерированную ранее стохастическую составляющую:
уГ = утр + усл. (20)
Измерительная система, которая в принятой модели не вносит собственных шумов, моделируется в каждый момент времени I вычитанием соответствующих членов рядов
= УГ - УГ
(21)
В результате на выходе блока генерации данных имеем ряды «измерений», в известной мере соответствующие по своим характеристикам рядам, поступающим от измерительной системы эталонов времени и частоты.
Кроме описанной базовой функциональности, требовалось реализовать в программном комплексе ряд сервисных функций, таких как ввод данных от внешних источников и вывод данных с их визуализацией.
Ввод данных было решено организовать из текстовых файлов. Был разработан формат файла для описания настроек блока генерации рядов (поскольку
они достаточно объёмны и ручной ввод их в силу этого затруднён), а также - блок обработки таких файлов, имеющий контроль правильности считанных данных. Для каждого исходного ряда (соответствующего «водородному стандарту») задаются параметры линейных трендов и порождающей его модели АРСС, а также случайного шума.
Ввод числовых данных осуществляется из текстовых файлов, где данные разделены знаками табуляции и переводами строк. Данные файлы имеют секцию trends для задания априорных сведений о линейных трендах и секцию series для размещения собственно значений. В качестве перспективного направления развития рассматривается использование формата файлов RINEX, являющегося индустриальным стандартом.
Следует отметить, что размерность обрабатываемых данных (количество временных рядов и объём выборки) явных ограничений не имеет и, таким образом, ограничен только вычислительными возможностями системы и особенностями текущей версии интерпретатора Perl.
Результаты работы программы также выводятся в файлы сходного формата, кроме того, ряд сервисной информации выводится в поток стандартного вывода (в консоль ОС). Для оперативной обработки и отображения результатов используется интеграция с пакетом Statistica компании StatSoft посредством технологии OLE. Естественно, что такая возможность доступна только при наличии указанной программы на ПК пользователя.
В результате выполнения описанных исследований и реализации предлагаемых методик и алгоритмов, был разработан программный комплекс, основными функциями которого является:
1. Генерация (синтез) данных по заданной модели АРСС и характеристикам случайной составляющей ряда.
2. Ввод реальных или ранее сгенерированных данных (рядов) из текстового файла.
3. Выявление и исключение линейных трендов из исходных данных.
4. Построение оценок среднего арифметического.
5. Идентификация порядка моделей АРСС (способом перебора моделей; через предварительные оценки).
6. Построение оценок с использованием моделей АРСС (подгонка моделей методом градиентного спуска; с нулевыми начальными приближениями; с начальными приближениями, полученными по рядам грубых оценок; оценивание состояния объекта).
7. Вывод промежуточных и окончательных результатов в текстовые файлы и на экран (в терминал).
8. Экспорт промежуточных и окончательных результатов в ППП StatSoft Statistica.
Приложение, реализованное с использованием языка программирования Perl версии 5.8 имеет простой текстовый («консольный») интерфейс и работает в диалоговом режиме.
Приложение реализовано с использованием структурного подхода к программированию и состоит
z
из ряда модулей:
model_arima.pl - функциональность, связанная с построением моделей АРСС и оцениванием с их использованием;
model_average.pl - функциональность, связанная с построением оценок методом среднего арифметического;
model_generate.pl - генерация синтетических рядов;
model_io.pl - ввод и вывод данных; model_main.pl - главный модуль; model_single_arima.pl - функциональность, связанная с подгонкой моделей АРСС к одиночным рядам;
model_trends.pl - функциональность, связанная с исключением и наложением детерминированных трендов;
model_utl.pl - вспомогательные функции. Важной особенностью является то, что вся логика пользовательского взаимодействия содержится в файле главного модуля model_main.pl. Остальные модули могут использоваться в качестве библиотечных файлов исходных кодов в составе других проектов - как совместно, так и в отдельности. Это в полной мере соответствует концепции повторного использования кода в дальнейшей деятельности.
Хотя специальных мер по оптимизации разрабатываемого программного обеспечения не предпринималось и задачи разработать максимально производительное приложение не ставилось, был проведён определённый анализ производительности приложения и наиболее затратных с точки зрения вычислений частей алгоритма.
Особенно интересными являются результаты, связанные с выбором начальных приближений для процедуры оптимизации функционала и. Кроме наиболее очевидного варианта с выбором нулевых начальных приближений, была рассмотрена альтернативная вычислительная схема, основанная на использовании рядов предварительных оценок, выполненных по методу среднего арифметического. Было предложено изначально подгонять (раздельно) модели АРСС к рядам «грубых» оценок, получая, таким образом, начальные приближения для процедуры оптимизации, а уже после этого уточнять в процессе оптимизации функционала J. Вопреки имевшемуся
мнению об избыточности подобных вычислений, такой подход оказался весьма эффективным. При одинаковых исходных данных (5 рядов реальных данных длиной 90 значений) проводились вычисления тем и другим способом. Результаты в обоих случаях оказались полностью идентичны, однако суммарное время вычислений в случае использования начальных приближений, полученных через грубые оценки, оказалось существенно ниже (1,44 секунды против 4,08 секунды, при этом время, затраченное собственно на процедуру оценивания, снизилось ориентировочно в 10 раз). Следует отметить, что внимательное изучение того, как использовалось время, показало, что в случае использования предварительных оценок процедура может быть ещё более оптимизирована, если исключить излишние копирования данных в оперативной памяти.
Вывод приложения-профайлера приведён на рис. 1-2. Как можно увидеть, функция оценивания состояния model_params_estimation с вложенными в неё функциями отнимает львиную долю процессорного времени в случае использования нулевых начальных приближений. Из вызываемых ею функций наиболее значимы по затратам функция прогнозирования gen_next_observation и функция построения оценки частоты на момент времени I freq_estimation_on_t. Это является логичным, хотя возможна дополнительная оптимизация, например, путём использования тНпе-функций.
В случае с использованием предварительной подгонки моделей для получения начальных приближений картина отличается. Доля затрат на функцию model_params_estimation резко снижается, как снижается и абсолютное время её выполнения. Зато появляются затраты на вызовы функции индивидуальной подгонки моделей АРСС model_params_esti-mation_sing. При этом непропорционально увеличивается время выполнения функции copy_series_struct, копирующей структуру, содержащую временной ряд. Это связано с неоптимальной опытной реализацией model_params_estimation_sing и может быть устранено в целях оптимизации исключением потребности в полном копировании содержимого структуры временного ряда. Суммарное же время выполнения оказалось ниже более чем в два раза.
Мо(1и1е Е >:с1'з ее Сигти13 СЛ '□еи/са! Сзес/с ■УТ те То1а1 1 тд1е са11
♦ гма1п::гми1^е1_рагагм:::_е:::Ьгм.зЬип 0.7Ё1 15.608 1 0.7610 15.608 105.
О «¡п32::01_Е::пеи 0.125 0.125 1 0.1250 0.1250 17.3
О Сопйд::АиТ01_0А0 0.031 0.077 1 0.0310 0.0767 4.30 1
'■'У 1\'агп1пд;::Е!ЕС1М 0.015 0.015 1 0.0150 0.0150 2.08
♦ та1п::8ЕШ 0.063 0.217 6 0.0105 0.0362 8.73 Р
0упа1_оа(1ег:: с11_1оас1_П1е 0.046 0.046 5 0.00Э2 0.0032 6.37 Р
О Дс№е5(а1е::РаЙ1::ВЕШ 0.031 0.046 6 0.0052 0.0076 4.30 1
О 0а1а::0итр::ВЕШ 0.016 0.016 4 0.0040 0.0040 2.22 1
♦ та1п::рппН^о_гот 0.016 0.016 5 0.0032 0.0032 2.22 1
♦ гта1п::енрогио^ 0.044 0.272 14 0.0032 0.0195 6.10 1
О АиЮ1_оа(й[::ВЕШ 0.016 0.016 6 0.0027 0.0027 2.22 1
♦ гта1п:: сору_5ег1е5_з^гисЬ 0.226 0.323 641 0.0004 0.0005 31.3
О оуег1оа(1::АсЫгР!е( 0.016 0.015 46 0.0003 0.0003 2.22 1
♦ гта1п::^ес1_е5НгпаИоГ| 0.083 14.504 633 0.0001 0.0227 12.3 ■
♦ та|г|::1[е1^е:::||гг|а1|иг|_иг|_1 4.377 14.414 56232 0.0001 0.0003 606.
Рис. 1. Распределение затрат процессорного времени по различным функциям приложения при использовании нулевых начальных приближений
Module ExclSec CumulS Calls Sec/call Csec/c ÏTime
♦ main: : rnodel_paranns_estinnation_iing 0.47Э 2.512 5 0.0Э58 0.5024 27.5
♦ nnain::rnodel_paranns_estinnation 0.094 1.Э73 1 0.0Э36 1.9728 5.40
> Win :;• ill new 0.078 0.078 1 0.0780 0.0780 4.48
Conflg::AUT0L0AD 0.032 0.0Э4 1 0.0320 0.0937 1.84
Enporter::as_heavv 0.030 0.030 3 0.0100 0.0100 1.72
DynaLoader::dlJoad_file 0.047 0.047 5 0.00Э4 0.00Э4 2.70
<> vars::BEGIN 0.01 G 0.016 3 0.0053 0.0053 0.92
■> ActiveS täte:: Path: : В E G1N 0.031 0.046 S 0.0052 0.0076 1.78
О Config::BEGIN 0.016 0.062 4 0.0040 0.0154 0.92
♦ main::print_two_rows 0.01 S 0.016 5 0.0032 0.0032 0.Э2
♦ nnain::export_row 0.027 0.161 14 0.001 Э 0.0115 1.55
♦ main::copy_series_struct 1.1Б5 1.205 669 0.0017 0.0018 66.9
♦ nriain::print_iow_file 0.016 0.016 18 0.0009 0.0009 0.92
♦ rmain::freq_estimation 0.043 1.835 86 0.0005 0.0213 2.47
♦ nnain::freq_estirination_single 0.256 0.860 575 0.0004 0.0015 14.7
Total / Single call
Рис. 2. Распределение затрат процессорного времени по различным функциям приложения при использовании начальных приближений, полученных через ряды предварительных оценок
Рис. 3. Пример сгенерированного исходного временного ряда опорного элемента (сплошная линия) в сопоставлении с рядом оценок (пунктирная линия)
В завершение следует сказать о числовых характеристиках качества получаемых оценок относительных отклонений частот. При работе с синтетическими данными, в большинстве моментов времени I оценка с использованием моделей АРСС оказывается существенно ближе к реальному значению, чем оценка с использованием среднего арифметического. Сумма квадратов отклонений от истинных значений рядов для оценок АРСС также оказывается существенно меньше: 1,035 против 1,754 (т.е. приблизительно на 41%). При работе с реальными данными, в наилучшем случае в сравнении с использованием в том же случае оценок среднего достигнуто (для опорного генератора): снижение суммы квадратов отклонений от рядов внешних сличений около 9%, среднего значения отклонения - около 8%, с.к.о - около 4,5%. Это может быть признано достаточно существенным улучшением, с учётом достижения данного результата исключительно программными средствами, т.е. с минимальными финансовыми затратами.
Пример временного ряда и ряда оценок приведён на рис. 3.
Разработанный программный комплекс для оценивания состояния эталонов времени и частоты по результатам взаимных измерений внедрён в деятельность ВСФ ВНИИФТРИ [7]. Пройдена процедура регистрации созданного программного средства, в результате чего получено Свидетельство о государственной регистрации программы для ЭВМ №2012617062.
Таким образом, можно сделать вывод, что в результате проведённых исследований был создан программный комплекс, реализующий предлагаемую методику оценивания относительных отклонений частот в эталонах времени и частоты по результатам выполняемых в эталоне измерений. Методика подтвердила свою работоспособность и эффективность. Результаты тестирования созданного программного продукта говорят о правильности выбранных решений. Вместе с тем, имеется целый ряд направлений для доработки и дальнейшего развития данного продукта.
1. Хрусталёв Ю.П., Спиридонова Е.В. Алгоритмы обработки измерительной информации, получаемой в процессе хранения единиц времени и частоты // Техника средств связи. Серия «Радиотехнические измерения». М., 1986. Вып. О. С. 58-72.
2. Хрусталёв Ю.П. Статическая и динамическая обработка данных, получаемых в процессе ведения эталонов времени и частоты // Измерительная техника. 2004. № 6. 20 с.
3. Хрусталёв Ю.П. Построение динамических стохастических моделей систем с неполной матрицей наблюдений // Вестник ИрГТУ. 2010. №6. С. 15-20.
4. Ипполитов А.А., Хрусталёв Ю.П. Субоптимальная фильтрация в системах с неполной матрицей наблюдений. // Ин-
ский список
формационные и математические технологии в науке и управлении: труды XV Байкальской всерос. конф. Ч. I. Иркутск: Изд-во ИСЭМ СО РАН, 2010. С. 174-182.
5. Ипполитов А.А. Построение стохастических моделей динамических систем при неизвестной их структуре // Вине-ровские чтения: труды IV всерос. конф. Ч. 1. Иркутск: Изд-во ИрГТУ, 2011. С. 136-141.
6. Хрусталёв Ю.П. Обработка данных, полученных по результатам взаимных измерений вторичного эталона времени и частоты // Вестник ИрГТУ. 2012. № 7. С. 22-28.
7. Бокс Д., Дженкинс Г. Анализ временных рядов. Прогноз и управление. Вып. I. М.: Мир, 1974. 406 с.