Разработка программно-информационной системы для оценки точности и надежности часовых механизмов

Автор: Герасимов А.Д., Фирсова С.А.

Журнал: Огарёв-online @ogarev-online

Статья в выпуске: 16 т.11, 2023 года.

Бесплатный доступ

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

Звуковой анализ, программно-информационная система, точность хода часов, фильтр винера, часовой механизм, часовой сервис

Короткий адрес: https://sciup.org/147250352

IDR: 147250352

Текст научной статьи Разработка программно-информационной системы для оценки точности и надежности часовых механизмов

В современном мире необходимость в механических часах практически отпала, потому что почти у каждого в кармане есть смартфон, но несмотря на это многие люди покупают и носят наручные часы, так как наручные часы давно перестали были лишь прибором для определения времени. Если раньше главными качествами часов считались точность и долговечность (часто они передавались из поколения в поколение), то сейчас главное – бренд и дизайн [1].

В настоящее время в мире растет спрос на «люксовые» механические часы. Аналитики отмечают серьезный рост интереса к механическим часам среди миллениалов, которым нравится возможность проверить время, не наткнувшись при этом на уведомления из мессенджеров и соцсетей [2]. Экспорт часов высокой ценовой категории из Швейцарии в 2022 году достиг восьмилетнего максимума. При этом, производители наручных часов не чувствуют угрозу со стороны производителей электронных устройств. Более того, некоторые из них полагают, что «умные» часы могут даже подстегнуть спрос на механические модели.

В 2020 году мировой рынок наручных часов оценивался в $60 млрд. По прогнозам аналитиков, к 2027-му он достигнет $73,4 млрд, из которых $48,1 млрд придется на кварцевые часы.

В 2021 году в России было продано более 4 млн наручных часов. Доля импорта составила более 96%, или $307 млн. Ведущими брендами, представленными на рынке наручных часов, стали Casio, Audemars Piguet, Rolex, Patek Philippe, TAG Heuer, Tissot, ЗАО ЧЧЗ «Восток», Breguet. В натуральном выражении основную долю в объеме импорта заняли кварцевые и электронные часы (94%), при этом в денежном выражении лидируют механические изделия из Швейцарии (81,6%). В России крупнейшим производителем часов остается завод «Восток». На него приходится 19,3% от общего объема производства.

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

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

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

Программно-информационная система, реализованная в виде веб-приложения, подразумевает работу с тремя типами пользователей – Администратор, Работник часового сервиса, Клиент. Основные возможности, предоставляемые системой для каждого типа пользователей, отображены на диаграмме вариантов использования (см. рис. 1).

Рис. 1. Диаграмма вариантов использования.

Диаграмма развертывания системы представлена на рисунке 2.

Рис. 2. Диаграмма размещения.

Пользователь заходит на сайт часового сервиса со своего компьютера по сети Интернет (Клиент) или по локальной сети (Администратор, Работник сервиса), регистрируется или авторизуется на сайте. Сайт размещен на сервере, который имеет прямой доступ к базе данных MySQL, хранящей всю необходимую информацию о работе часового сервиса. Пользователь в соответствии со своими полномочиями и функциональными возможностями, определенными диаграммой вариантов использования, осуществляет запросы к базе данных. Также на сервере выполняется скрипт SoundAnalysis.py для звукового анализа присылаемых на него аудиофайлов. Эти аудиофайлы получает Работник сервиса в результате записи звука хода обслуживаемых часов через микрофон. После проведения звукового анализа сервер отправляет результат проверки точности хода Работнику Сервиса, а также сохраняет его в базу данных.

Рассмотрим набор средств, использованных при реализации программноинформационной системы. Для серверной части был выбран язык программирования PHP, такой выбор связан с простотой его использования и отличной работой с парадигмой «клиент-сервер». Для клиентской части сервиса использовался классический набор фронтенд-разработки: JavaScript, HTML, CSS; хранение данных производилось в БД MySQL. Для обработки и анализа звукового сигнала на сервере импортировались библиотеки Scipy и Numpy языка программирования Python. В качестве среды разработки применялся редактор Visual Studio Code, который является нетребовательным к ресурсам и, благодаря огромному количеству пользовательских расширений, обладает большим функционалом и поддерживает большое количество языков программирования.

Рассмотрим основные действия пользователей при работе с программноинформационной системой.

После авторизации пользователь попадает на главную страницу, на которой представлен прайс-лист на услуги часового сервиса с возможностями сортировки и поиска по различным критериям, а также экспортом результата в pdf-формат (см. рис. 3).

Рис. 3. Вид главной страницы после авторизации пользователя.

При переходе на страницу «Обращения» пользователь может создать свое обращение, в котором необходимо указать модель механизма и причину обращения в сервис (см. рис. 4).

Рис. 4. Создание обращения.

Работник сервиса просматривает список пользовательских обращений; при нажатии на кнопку «Подробнее» происходит переход на страницу с детальной информацией по выбранному обращению, здесь же работник может принять обращение в работу (см. рис. 5).

Подробности обращения

Обращение

Название механизма: Восток 24166 От пользователя: Иванов И. И.

Описание обращения

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

Дата обращения: 2023-07-18

Принять обращение

Рис. 5. Просмотр списка обращений в сервис.

В личном кабинете работника представлен список выполненных и текущих обращений с указанием стоимости проведенных работ (см. рис. 6).

Рис. 6. Список обращений работника.

После завершения работы над обращением необходимо добавить предоставленные в ходе ремонта услуги (см. рис. 7).

Подробности обращения

Обращение

Название механизма: Восток 24166

От пользователя: Иванов И.И.

Отремонтировал: Герасимов А.Д.

Описание обращения

После падения часы начали очень сильно спешить, нужно обслужить

механизм и отрегулировать точность хода!

Предоставленные услуги:

Дата обращения: 2023-07-18

Дата возврата:

Предоставленные услуги:

• Диагностика - 500 Руб. Q

. • Обслуживание и смазка механизма - 900 Руб. Q

Цена ремонта: 0 Руб.

• Регулировка точности часов - 600 Руб. Q

Цена ремонта: 2000 Руб.

Добавить оказанную услугу

_________________________^Е Добавить

Рис. 7. Завершение работы с обращением.

При этом в личном кабинете клиента отображается информация о выполненном обращении (см. рис. 8).

Ваши обращения:

Механизм

Проблема

Выполнен

Работник

Цена

Восток

24166

Требуется небольшое обслуживание механизма, поскольку точность часов сильно выбивается из значений в документах

2022-11-07

Григорьев А.О.

900

Ракета 2624

Необходимо плановое обслуживание механизма и регулировка точности!

2023-07-18

Герасимов А.Д.

2000

Восток 24166

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

2023-07-18

Герасимов А.Д.

2000

Всего потрачено:

4900

Рис. 8. Информация о выполненном обращении.

Важной    функциональной возможностью разработанной программно информационной системы является оценка точности хода часов. Для этого, как правило, в часовых мастерских используется специализированные устройства, например, тестер для проверки параметров механических часов TIMEGRAPHER MTG-1000. В процессе тестирования часов на ЖК-дисплее отображаются диаграмма хода часов, цифровые данные 6

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

Помимо звукового анализа существуют и другие способы оценки точности хода часов. Один из них – это использование нескольких фотографий часового циферблата с информацией о точном времени сделанных фотографий для нахождения дрейфа показания часов от эталонного времени [3].

Описанная в данной статье программно-информационная система использует комбинированный метод оценки точности часов: при наличии микрофона оценка производится посредством звукового анализа хода часов, при его отсутствии – используется метод сравнения показываемого часами времени с эталонным для вычисления дрейфа за определенный период времени. Это позволяет точно и быстро оценивать ход механизма без необходимости применения дополнительного оборудования.

После окончания ремонта работник должен проверить точность хода часового механизма. Наиболее простой способ – ввести время, показываемое часами, вручную в поля «час» и «минута», после чего оно будут соотнесено с реальным временем для расчета отклонения хода часов. Эти показатели помогут работнику сравнить точность хода механизма до и после ремонта (см. рис. 9).

Точность до ремонта

Период времени: [день ;]

Точность после ремонта

Период времени: [ День

Час: (           17] Минута: |           391

Час: [            17 J Минута: [           47 [

Проверить точность

Проверить точность

Проверить точность через микрофон

Проверить точность через микрофон

Точное время:                17:37:16

Точное время:                17:40:35

Время показываемое часами: 17:39:00

Время показываемое часами: 17:41:00

Часы спешат на:              00:01:44

Часы спешат на:              00:00:25

Записать результат

Записать результат

Рис. 9. Получение отклонения хода часов до и после ремонта.

Второй способ — это оценка точности через микрофон компьютера. Работнику необходимо приложить часы к микрофону и начать запись, после чего аудиофайл будет отправлен на сервер для дальнейшей обработки (см. рис. 10).

Рис. 10. Процесс записи звука.

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

Фильтрация высоких частот происходит путем плавного подавления сигнала, частота которого находится ниже заданного порога. В данном случае используется реализация этого фильтра в виде функции signal.butter() из библиотеки scipy [4]. Она принимает в качестве аргументов порядок фильтрации, который влияет на степень фильтрации, пороговую частоту для фильтрации, частоту дискретизации аудиофайла и тип фильтрации. В качестве выходных данных эта функция возвращает параметры фильтрации, принимаемые в качестве аргументов функции signal.filtfilt(), которая накладывает фильтрацию на сигнал, наряду с данными, которые необходимо отфильтровать (см. рис. 11).

def butter_highpass_filter(data: list[float], highcut_freq: float, fs: float, order: int = 5):

  • b, a = signal.butter (order, highcut_freq, fs=fs, btype='high') return signal.filtfilt (b, a, data)

Рис. 11. Реализация фильтра высоких частот.

Винеровская фильтрация заключается в оценке шума в аудиофайле и вычитании его из исходного сигнала для сглаживания звуковой волны. В данном случае используется реализация этого фильтра в виде функции signal.wienier() из библиотеки scipy. В качестве аргумента эта функция принимает исходный сигнал, а возвращает сглаженный сигнал в том же формате (см. рис. 12).

def applyWiener(self, data):

return wData

Рис. 12. Реализация фильтра Винера.

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

Для нахождения пиков используется функция signal.find_peaks() из библиотеки scipy. В качества аргументов она принимает исходный сигнал, предполагаемое расстояние между пиками и их высоту (см. рис. 13).

def peakSignalDetection(self, data1D):

return ss.find_peaks(data1D, distance=0.9*3600*self.sampleRate/self.reffrequency, height=800)

Рис. 13. Код функции нахождения пиков в аудиофайле.

В качестве выходных данных эта функция возвращает массив индексов всех пиков из массива исходного сигнала. Визуализация результата, на которой найденные индексы пиков отмечены крестиками и наложены на исходный сигнал, представлена на рисунке 14.

Рис. 14. Визуализация результата нахождения всех пиков в аудиофайле.

Информация о пиках обрабатывается для получения ошибки хода часов за одни удар. Для этого находится среднее отклонение в первом ударе (называемый «тик») и втором ударе (называемый «ток») от эталонного. Таким образом, мы получаем среднее отклонение хода за один удар в миллисекундах (см. рис. 15).

def getBeatError(self, peaks):

  • #    Создание массива для "тика" и "тока" teven = []

todd = []

oneFramemSec = 1000/self.sampleRate previous = 0

for i, pi in enumerate(peaks[0], start=1):

if i % 2 == 0:

  • #    Разницы медиан между "тиком" и "током"

Рис. 15. Код алгоритма нахождения ошибки за один удар.

Затем, анализируя созданный ранее массив пиков в аудиофайле, находится фактическое количество полуколебаний часового механизма и, сравнивая это значение с эталонным для данного механизма, высчитывается отклонение часов за сутки в секундах (см. рис. 16). Это и является основным показателем точности часового механизма, которое нам необходимо.

def getMovementFrequencyFromPeakIndex(self, sampleRate, peaks): fs = []

for i in range(len(peaks[0])-1):

delta = (peaks[0][i+1]-peaks[0][i])

def getDrift(self, refFrequency, realFrequency):

  • #    Высчитываем отклонение фактической частоты от эталонной

deltaBeat = realFrequency-refFrequency frac = deltaBeat/refFrequency return frac

Рис. 16. Алгоритмы нахождения частоты механизма и сравнения его с эталонной частотой.

Итоговый фрагмент кода, объединяющий в себе все вышеперечисленные функции и возвращающий значение отклонения хода за сутки и одни удар, представлен на рисунке 17.

def analysisGUI(self, filename):

  • #    Запись обработанного файла

  • #    Получение ошибки за один удар, частоты полуколебаний и отклонения хода

err = self.getBeatError(p)

freqT = self.getMovementFrequencyFromPeakIndex(self.sampleRate, p)

timeDev = self.getDrift(self.reffrequency, freqT)

return [timeDev*3600, err]

Рис. 17. Фрагмент кода после объединения.

Таким образом, работник выбирает эталонную частоту полуколебаний [6] колеса баланса механизма, с которым он работает в данный момент. После нажатия на кнопку

«Анализировать» на сервере запускается вышеописанный процесс, который оценивает точность хода часов. Результат оценки представлен в виде показателей отклонения хода за один удар и за сутки (см. рис. 18).

Выберите частоту часов:

- 1 ^Ц АнализиР°вать

Точность хода:         25.31 сек./сутки.

Ошибка за один удар: 0.12 мс.

Записать

Рис. 18. Результат анализа аудиофайла.

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

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

На главной странице часового сервиса помимо списка предоставляемых услуг приведен список часовых механизмов, когда-либо обслуженных сервисом (см. рис. 19).

Список часов

Искать: ( По названии: Ф ] Поиск: [

Название         Ударов в час      Угол подъема       Точность по документам

Вистов        Восток 24166           19800 уд./ч.              42°                       60 сек./сут.

Восток        Восток 2109          19800 уд./ч.             42°                     40 сек./сут.             ■

Вост®          443 2809             18000 уд./ч.              43°                       10 сек./сут.

„Л™       Rolex 3135        28800 уд./ч.          52°                 6 сек./сут.            ЯДЯ

««ЛSeii»      Grand Seiko 9S65        28800 уд./ч.              52°                       5 сек./сут.

zenith         Zenith 135           18000 уд./ч.             43°                     15 сек./сут.             И

nnr’rwie          Ракета 2615            18000 уд./ч.               42°                         20 сек./сут.

РОССИИ

Ракета 2624           18000 уд./ч.              42°                       20 сек./сут,

РОССИИ

Рис. 19. Страница со списком всех механизмов, обслуживаемых сервисом.

При выборе кнопки «Подробнее» можно увидеть заявленные в паспорте характеристики выбранного механизма, историю обращений по нему в данный часовой сервис, а также точность хода после обслуживания (см. рис. 20).

Восток

Характеристики механизма

Кол-во ударов в час:

19800 уд./ч.

Угол подъема:

42°

Точность по документам:

60 сек./сут.

Название механизма

Имя мастера

Точность за сутки

Точность за неделю

Точность за месяц

Дата ремонта

Восток 24166

Григорьев А.О.

4 сек./сут.

16 сек./нед.

93 сек./мес.

2022-11-07

Восток 24166

Ломакин И.И.

20 сек./сут.

93 сек./нед.

216 сек./мес.

2022-12-30

Восток 24166

Герасимов А.Д.

25 сек./сут.

175 сек./нед.

700 сек./мес.

2023-07-18

Восток 24166

Герасимов А.Д.

6 сек./сут.

295 сек./нед.

1692 сек./мес.

2023-03-02

Восток 24166

Григорьев А.О.

35 сек./сут.

247 сек./нед.

692 сек./мес.

2022-05-10

Рис. 20. Просмотр истории обслуживания механизма.

Также можно просмотреть среднюю точность хода данного механизма, отличие реальной точности от заявленной точности в паспорте механизма, а также соответствующий класс точности. Далее находится статистическая информация о частоте обращений в сервис по данному механизму, процент обращений, по которым был необходим ремонт, а также средняя цена за обслуживание (см. рис. 21).

Рис. 21. Просмотр статистики по точности и надежности механизма.

Таким образом, в статье приводится описание разработанной авторами программноинформационной системы, предназначенной для оценки точности и надежности часовых механизмов. Для оценки точности механических часов использовался метод звукового анализа аудиофайла, полученного в результате записи звука хода часов через микрофон. Следует отметить, что существуют и другие методы и алгоритмы для определения точности хода (см., например, [6],  [7]). Для оценки надежности приводится статистика пользовательских обращений и результатов их обслуживания в часовом сервисе.

Список литературы Разработка программно-информационной системы для оценки точности и надежности часовых механизмов

  • Дробница И. К. Россия на мировом рынке часов // Международная экономика. - 2019. - № 11. - С. 69-83. EDN: FODDNT
  • Каплун Д. Е. Сегментация рынка швейцарских часов в России // Modern Science. - 2019. - № 3. - С. 141-144. EDN: ZJOLLU
  • Elibrary.ru - Патент: способ измерения точности хода механических часов [Электронный ресурс]. - Режим доступа: https://www.elibrary.ru/download/elibrary_37826652_15421426.pdf (дата обращения: 14.07.2023).
  • Пирогов А. А., Акишкин Р. М., Гончаренко И. В., Сёмка Э. В., Турецкая Е. В. Реализация цифрового фильтра Баттерворта с использованием библиотек языка программирования Python // Радиотехника. - 2023. - Т. 87, № 8. - С. 54-58. EDN: PYGIWS
  • Яшин В. Н. Адаптивные алгоритмы в информационно-измерительных системах // Современные наукоемкие технологии. - 2023. - № 8. - С. 96-102. EDN: TUFRND
  • Самсонов Г. П., Амосов А. Г., Чуракова Е. Ю., Михайлова Е. В. Геометрическая зависимость определения точности механизмов // Инновации и инвестиции. - 2021. - № 3. - С. 153-157. EDN: FREHEN
Статья научная