RWS – Telegram
RWS
253 subscribers
56 photos
3 videos
2 files
85 links
Выявляю и расшиваю "узкие места" на объектах транспортной инфраструктуры (ОТИ).
Делюсь теоретическими и практическими аспектами имитационного моделирования эксплуатационной работы ОТИ.
В первую очередь рассматриваю ж.-д. сферу.
Download Telegram
Прогноз, провокация и высокая степень неопределенности

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

📍в целом снижение до 2%;

📍под грузовыми операциями будет черный ящик т.к. простой увеличится из-за неприема на пути общего пользования, но сократиться из-за снижения погрузки. Итого: рост до 10%;

📍по инфраструктуре РЖД снижение на 5-6% (как ни как > 70 тыс. вагонов убрали).
2🤔2👀1
Статистика может доказать что угодно, даже правду


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

1. Одновыборочный t-критерий Стьюдента:

Задача: проверить, значительно ли отличается среднее время задержки поездов на маршруте от целевого значения в 5 минут.
Условия применения: данные должны быть приблизительно нормально распределены. Метод чувствителен к выбросам. Внешние факторы (погода, ремонт путей) не учитываются. При нарушении предположения о нормальном распределении следует использовать непараметрические альтернативы (например, тест знаков).

2. Двухвыборочный t-критерий Стьюдента (независимые выборки):

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

3. Парный t-критерий Стьюдента (зависимые выборки):

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

4. ANOVA (анализ дисперсии):

Задача: сравнить среднюю задержку поездов на трёх разных маршрутах.
Условия применения: метод более эффективен, чем попарное применение t-критериев, контролируя совокупный уровень значимости. Однако требуется приблизительно нормального распределения данных и равенства дисперсий во всех группах. Если эти предположения не выполняются, следует использовать непараметрический критерий Крускала-Уоллиса.

5. Критерий Хи-квадрат:


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

6. Корреляция Пирсона:

Задача: исследовать взаимосвязь между средней скоростью движения поездов на определенном участке пути и скоростью износа рельсов на этом участке.
Условия применения: измерение линейной зависимости, чувствителен к выбросам.

7. Корреляция Спирмена:

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

Критерий Манна-Уитни, Крускала-Уоллиса, Уэлча, Z-тест, Уилкоксона, F-тест: Условия применения этих методов аналогичны описанным выше, но сосредоточены на ситуациях, когда не выполняются предположения параметрических методов (нормальность, равенство дисперсий, независимость). Они предлагают альтернативы, но часто с меньшей статистической мощностью.

Что еще остается из нишевых методов?

1. Непараметрические тесты:
• Критерий знаков (Sign test)
• Тест МакНемара
• Тест Фридмана

2. Дискретные распределения:
• Гипергеометрическое распределение
• Биномиальный тест

3. Анализ временных рядов
• Тест Дики-Фуллера (ADF)
• Автокорреляция (ACF)

4. Проверка предположений о данных и проверка соответствия распределениям:
• Тесты Бартлетта и Левена
• Тест Шапиро-Уилка
• Критерий Колмогорова-Смирнова
• Тест Андерсона-Дарлинга

5. И др...

Если тематика интересна, то по каждому методу можно сделать пост:
Пример задачи
Требования к выборке
Нюансы использования
Инструменты офлайн/онлайн
🔥10👍31
Какие станции на участке чаще всего являются причиной простоев поездов?

Казалось бы, просуммировали простои – нашли станцию с наибольшими простоями. Ответ готов.
Но в этом подходе мы не учли:
- размеры движения (может простои выросли из-за объема работы);
- продолжительность простоев (не учли выбросы);
- внешние факторы (ремонт и пр.);
- статистическую значимость (без статистического анализа невозможно определить, являются ли полученные результаты значимыми или просто случайным совпадением).

Что делаем? В основе метод: ANOVA.

1. Предварительно собираем данные:
• Средняя продолжительность простоя на каждой станции.
• Количество простоев на каждой станции.
• Стандартное отклонение простоев для каждой станции.
• Распределение простоев. Строим гистограммы распределения времени задержки на разных станциях, чтобы понять форму распределения и наличие выбросов.

2. Анализируем дисперсии (ANOVA).

• Гипотеза. Мы хотим проверить, являются ли различия в средней продолжительности простоя между станциями статистически значимыми.
• Проверка однородности дисперсий. Перед применением дисперсионного анализа необходимо убедиться, что дисперсии простоев на разных станциях примерно равны. Тест Бартлетта или Левена подойдут.
• ANOVA. Если дисперсии близки, проводим однофакторный ANOVA, где фактором является станция. Если дисперсии значительно различаются, используем подходящий непараметрический аналог, например, тест Краскела-Уоллиса.
• Пост-хок тесты. Если ANOVA выявит значимые различия, необходимо провести пост-хок тесты (например, Туки, Шнидмана-Кени), чтобы определить, на каких именно станциях средняя продолжительность простоя статистически различается.

3. При необходимости проводим тесты ранговой корреляции:
Корреляция с другими факторами. Возможно, продолжительность простоев на станциях коррелирует с другими переменными (например, интенсивностью движения, временем года и др.). Используем тесты ранговой корреляции (например, Спирмена или Кендалла), чтобы оценить эту корреляцию.

Критерии оценки статистической значимости:
• p-значение: важно анализировать p-значение, полученное при проведении дисперсионного анализа и пост-хок тестов. Если p-значение меньше заданного уровня значимости (например: 0,05), различия в средней продолжительности простоя статистически значимы.
• Доверительные интервалы: используем доверительные интервалы для средних значений по каждой станции, что поможет оценить погрешность и точность результатов.


Кратко про использование ANOVA:

Требования к выборке:

1. Независимые наблюдения в каждой группе.
2. Нормальное распределение данных в каждой группе (можно проверить с помощью теста Шапиро-Уилка или Колмогорова-Смирнова).
3. Гомогенность дисперсий (равенство дисперсий) в группах (можно проверить с помощью теста Бартлетта или Левена). Для больших выборок дисперсионный анализ относительно устойчив к небольшим нарушениям этого условия.
4. Количественная зависимая переменная.
5. Качественная независимая переменная (фактор) с несколькими уровнями (группами).

Нюансы использования: нарушение предположений о нормальности и однородности дисперсий может привести к неверным результатам. В таких случаях используются непараметрические аналоги (тест Краскела-Уоллиса).

Инструменты:

Офлайн:
Python: scipy.stats.f_oneway(group1, group2, group3)
R: aov(response ~ group)
Онлайн

Критерий Колмогорова-Смирнова
Python: scipy.stats.ks_2samp(data1, data2)
R: ks.test(x, y)

Тест Бартлетта
Python: scipy.stats.bartlett(group1, group2, ...)
R: bartlett.test(values ~ groups)

Тест Левена
Python: scipy.stats.levene(group1, group2, ..., center='mean')
R: leveneTest(values ~ groups, center=mean) (из библиотеки car).

Коэффициент Кендалла
Python: scipy.stats.kendalltau(x, y)
R: cor.test(x, y, method = "kendall")

Корреляция Спирмена
Python: scipy.stats.spearmanr(x, y)
R: cor.test(x, y, method="spearman")

Критерий Краскела-Уоллиса
Python: scipy.stats.kruskal(*samples)
R: kruskal.test(x, y, z)

Кто-нибудь так искал "узкие места" инфраструктуры?
Интересно больше про инструментарий, логику применения или что-то иное?

#Стат_методы
👍42🔥2
Предложения SIMETRA вошли в Стратегию развития Санкт-Петербурга до 2035 года

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

Соответствующий Закон города был принят в 2018 году, сейчас действует версия с изменениями по состоянию на декабрь 2022 года, и с учётом как накопленного опыта, так и произошедших общих изменений возникла объективная необходимость в корректировке этого документа.

На сессии, в которой приняли участие вице-губернаторы Кирилл Поляков, Николай Линченко, Валерий Москаленко и Евгений Разумишкин, руководители и специалисты всех городских комитетов и крупнейших предприятий, был проведён комплексный анализ всех направлений развития города, включая роль его комплексной транспортной системы в обеспечении комфортной и доступной среды для проживания.

Эксперты SIMETRA также были приглашены для участия в мероприятии.

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

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

Предложения об использовании показателей Рейтинга в качестве возможных метрик оценки достигаемых результатов, о развитии применения методов математического транспортного моделирования, о замене показателя «доступности станций метро» на «доступность станций и остановок магистрального транспорта», а также о создании коридоров магистрального транспорта вошли в итоговый протокол стратегической сессии.
👍3🔥21
Идея «Анализ выживаемости объекта инфраструктуры»

Выживаемость как показатель возможности сохранения во времени способность выполнять требуемые функции в заданных режимах и условиях применения. Да, определение напоминает понятие «Надежность», но я сейчас про выживание и не про геополитику. Почему? Потому что есть идея в применении метода Каплана-Мейера и Лог-ранк теста.

В чем идея?
Моделинг до сбоя - Стат.обработка


Моделируем работу объекта в различных условиях до сбоя, когда дальнейшая работа инфраструктурного комплекса невозможна при заданных объемах работы. Получаем количество дней до критического события – N. Вариант развития с наибольшим N – искомый? Вряд ли… На исход могло повлиять множество факторов.

Поэтому о каждому варианту развития объекта производим моделирование с различными техническими и технологическими сбоями (вероятность и частота их наступления в каждом варианте желательно должна быть одинакова для чистоты эксперимента) при равных объемах работы на горизонте года. Количество подвариантов (сценарии со сбоями) должно от 15 для подтверждения статистической значимости. Проводим метод Каплана-Мейера и лог-ранг тест, чтобы определить, есть ли статистически значимые различия в надёжности между вариантами.

Общий лог-ранк тест даст нам p-value. p>0.05 – нет статистически значимого различия, p<0.05 – существует статистически значимое различие между вариантами. Также производятся попарные сравнения. Далее анализируем кривые выживаемости по методу Каплана-Мейера (находим кривую выше остальных). Остаемся довольны результатом.

Инструменты:
Python: lifelines.KaplanMeierFitter, lifelines.logrank_test.
R: survival::survfit, survival::survdiff.
Онлайн

В чем проблема идеи?
Я провел несколько десятков тестов (сравнения выборок выживаемости) и вместо использования этого стат. метода:

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

2. Посчитал средние значения в каждом варианте с цензурированными данными и без, а так же количество ценз. данных.

3. На основе 3 значений выбирал лучший вариант. И он всегда совпадал с результатом стат. метода. Исключение: p-value > 0.05. Но тогда собственно любой результат является неплохим.

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

Нужно ли использовать метод Каплана-Мейера и Лог-ранк тест?

#Стат_методы #Идея
👍3🤔31🔥1
🚀 Синхронизация данных: Ключ к эффективному взаимодействию цифровых двойников и имитационных моделей

Цифровые двойники (ЦД) и имитационные модели (ИМ) играют ключевую роль в оптимизации и управлении сложными процессами. Но для их эффективной работы необходима надежная и своевременная синхронизация данных. Почему это так важно? Синхронизация данных обеспечивает:

✔️ Целостность информации: ЦД и ИМ получают согласованную и непротиворечивую картину данных.
✔️ Актуальность: Данные в ЦД и ИМ отражают реальное состояние объекта или процесса в текущий момент.
✔️ Корректное взаимодействие: ЦД и ИМ могут эффективно обмениваться информацией и работать совместно.
✔️ Взвешенные решения: На основе точных и полных данных можно принимать обоснованные и эффективные решения.

Для синхронизации данных междуЦД и ИМ обычно используются три основных подхода:

1️⃣ Прямая Синхронизация. Системы взаимодействуют напрямую для обмена данными. Это может быть в реальном времени (например, через API, WebSockets) или по расписанию (например, через скрипты).
Ключевые технологии: REST API, GraphQL API, WebSockets, очереди сообщений (Kafka, RabbitMQ), скрипты (Python, Bash).

2️⃣ Синхронизация на основе Событий. Системы реагируют на изменения, публикуя и подписываясь на события. Такой подход обеспечивает гибкость и масштабируемость.
Ключевые технологии: Шины сообщений (Apache Kafka, RabbitMQ, Azure Service Bus), Webhooks.

3️⃣ Синхронизация через Хранилище Данных. Данные сначала собираются в централизованное хранилище, а затем синхронизируются с другими системами.
Ключевые технологии: ETL-процессы (Apache Airflow, Apache NiFi), CDC (Debezium, Oracle GoldenGate).

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

План такой:
1. Прямая синхронизация
1.1. Реальное время:
1.1.1. API
1.1.1,1. REST API
1.1.1,2. GraphQL API
1.1.2. WebSockets
1.1.3. Message Queues
1.1.4. OPC UA
1.1.5. MQTT
1.2. Запланированная синхронизация
1.2.1. Скрипты
1.2.2. Планировщик задач
1.2.3. Пакетная обработка
2. Синхронизация на основе событий
2.1. Шины сообщений
2.2. Webhooks
3. Синхронизация с использованием промежуточного хранилища данных
3.1. ETL-процессы
3.2. CDC

#ИМ #ЦД #Синхронизация
👍52
1.1.1. API (Application Programming Interfaces):
API позволяют ЦД и ИМ взаимодействовать, обмениваясь данными и командами через стандартизированные интерфейсы.

1.1,1.1. REST API:

Условия использования:
📍 Требуется простота и распространенность. REST является стандартом для веб-сервисов.
📍 Не требуется сложное управление запросами, и достаточно стандартных HTTP-методов.
📍 Нужно взаимодействие между системами, где каждая система представляет собой отдельные веб-приложения.
📍 Важно поддерживать связь с веб-клиентами.

Инструменты:

Flask (Python). Легкий и гибкий фреймворк для создания веб-API. Отлично подходит для прототипирования и если нужно рассчитать ресурс 1 устройства.

Express.js (Node.js). Минималистичный, быстрый и очень гибкий фреймворк для создания веб-приложений и API. Популярен в JavaScript-ориентированных проектах.

Django REST Framework (Python). Мощный и полнофункциональный фреймворк для создания RESTful API. Хороший выбор для крупных и сложных проектов.

ASP .NET Web API (.NET). Так чисто для справки, что есть такой. Фреймворк от Microsoft для создания веб-API на платформе .NET.

Spring Boot (Java). Фреймворк для создания микросервисов и веб-приложений на Java. Популярен в корпоративных и enterprise-проектах.

#ИМ #ЦД #Синхронизация
🔥4👍32
RWS
1.1.1. API (Application Programming Interfaces): API позволяют ЦД и ИМ взаимодействовать, обмениваясь данными и командами через стандартизированные интерфейсы. 1.1,1.1. REST API: Условия использования: 📍 Требуется простота и распространенность. REST является…
У нас есть две особенные игрушки

Цифровой Двойник (ЦД) – это копия игрушечной машинки, но она находится на экране компьютера. Она показывает всё, что делает настоящая машинка. Если повернёшь настоящую машинку, то и на экране тоже повернётся её копия. Она как зеркало для машинки, только внутри компьютера.

Имитационная Модель (ИМ) – это специальный испытательный полигон для машинки. Мы можем там проверить, что будет, если машинка поедет по горке, врежется в стенку или даже полетит! Это место, где мы можем поиграть с машинкой и посмотреть, что может случиться, не ломая её настоящую копию. Это как умная песочница для проверки твоей машинки на экране.

Как общается копия машинки и песочница?
Они разговаривают не как мы, а с помощью специальных “помощников” – API (это как почтальоны).
• Простые письма (REST API): Когда нужно быстро и просто передать информацию, например:
o “Машинка поехала!” (ЦД говорит ИМ)
o “Ой, машинка врезалась!” (ИМ говорит ЦД)
o Это как простые и быстрые записки, которыми они обмениваются.

Инструменты для написания писем (REST API) – это как разные ручки:

• Ручка “Flask”. Представь, что у нас есть маленькая, лёгкая ручка, которой очень просто писать короткие записки. Она подходит, когда мы хотим быстро сказать машинке: “Поехали!”, или когда песочница говорит: “Всё в порядке!”. Эта ручка для простых сообщений, когда у нас не так много машинок и дел.

• Ручка “Express.js”. Это очень быстрая и ловкая ручка-помощница. Она как будто умеет легко и быстро рисовать много разных картинок и писать много-много записок. Эта ручка маленькая и простая, но при этом очень гибкая – как будто её можно легко настроить, чтобы она делала именно то, что нам нужно. Она как будто волшебная палочка, которая может быстро перестраиваться под разные задачи.

• Ручка “Django REST Framework”. Крутая ручка для больших и сложных записок и даже книг. Она умеет писать много-много разных сообщений и помогает нам держать всё в порядке. Эта ручка нужна, когда у нас много машинок-копий и мы хотим, чтобы всё работало четко и организованно. Это как если бы мы строили большой город с машинками.

• Ручка “Spring Boot”. Эта ручка – очень мощный строительный набор, как швейцарский нож, умеет рисовать маленькие и большие дома для наших машинок-копий. Она очень хорошо умеет все организовывать и следить за тем, чтобы все машинки-копии и песочницы работали слаженно.

Как такой формат? Оставить?
5🔥1
1.1.1,2. GraphQL API: Синхронизация ЦД и ИМ

Традиционные подходы, основанные на REST API, могут оказаться неэффективными из-за избыточности данных и множественных запросов. GraphQL API предоставляет более гибкий и эффективный подход к решению этой задачи.

Ключевые преимущества GraphQL

Передача данных
Только необходимые данные, минимум трафика.

Взаимодействие
Один запрос вместо множества, упрощение логики.

Гибкость
Адаптация под любые требования, единая точка доступа.

Реальное время
Поддержка подписок для актуальных данных.
Комбинация GraphQL и WebSocket позволяет устанавливать постоянное двунаправленное соединение между клиентом и сервером, что идеально подходит для работы в реальном времени

Инструменты GraphQL

GraphQL-core (Python): Простые модели, прототипы.

Graphql-js (JavaScript): Кастомные решения, интеграция с JS.

Apollo GraphQL (JavaScript): Масштабные проекты, кэширование, авторизация.

GraphQL Yoga: Быстрый запуск, демонстрации.

Hasura: Авто API из БД, ускорение разработки.

p.s. Может усложнить запросы при большом количестве связанных данных о ж.-д. инфраструктуре. Избыточная гибкость GraphQL может привести к неоптимизированным запросам и проблемам с производительностью, если не контролировать.

#ИМ #ЦД #Синхронизация
👍3🔥32
1.1.2. WebSockets: Синхронизация ЦД и ИМ

Проблема: Односторонняя связь, задержки при передаче данных.

WebSockets: Двусторонняя связь, минимальные задержки.
Однако, сами по себе, WebSockets не решают всех проблем, связанных с синхронизацией ЦД и ИМ. Например, WebSockets не решают проблему структурирования данных (для этого нужен GraphQL, например). WebSockets не решают проблему хранения данных или управления правами доступа (здесь нужны другие инструменты и технологии).

Ключевые преимущества WebSockets

Связь
Двусторонняя, push-уведомления (ЦД <-> ИМ).

Задержки
Минимальные, для оперативных обновлений.

Соединение
Постоянное, без повторных запросов.

Обновления
Частые, мгновенное отображение изменений.

Инструменты WebSockets

Socket .IO (JavaScript)
Обеспечивает двусторонний обмен данными в реальном времени (положение поездов, состояние стрелок, и т.д.) между ЦД и веб-интерфейсом ИМ.

Websockets (Python)
Используется для обмена данными (статусы датчиков, управление устройствами) между бэкенд-сервером ЦД и ИМ.

WebSocketSharp (.NET):
Подключение WebSockets к компонентам ИМ или ЦД на .NET (например, симуляторы устройств, компоненты управления) для быстрой передачи данных.

p.s. Множество одновременных WebSocket-соединений может перегрузить сервер, особенно при большом количестве датчиков и устройств ж.-д. инфраструктуры. Сложно обрабатывать разрывы соединения, может быть сложно обеспечить порядок доставки данных при высокой частоте обновлений.

#ИМ #ЦД #Синхронизация
👍42🔥2
1.1.3. Message Queues: Асинхронная Синхронизация ЦД и ИМ

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

Message Queues: Асинхронность, масштабируемость, надежность.

Ключевые преимущества Message Queues

Взаимодействие
Асинхронное (ЦД публикует, ИМ подписывается), без прямой зависимости.

Масштабирование
Распределение нагрузки, отказоустойчивость.

Надежность
Гарантированная доставка сообщений.

Подписчики
Несколько ИМ могут получать данные от одного ЦД.

Инструменты Message Queues

Apache Kafka
Высокопроизводительная платформа для обработки больших потоков данных (события, телеметрия, данные датчиков) для синхронизации ЦД и ИМ.

RabbitMQ
Гибкий брокер для различных типов сообщений (управление, события, статус устройств) в ИМ и ЦД, обеспечивая надежную доставку.

Redis Pub/Sub
Быстрая публикация-подписка, подходит для оперативных уведомлений (например, срочные события, оповещения) между компонентами ЦД и ИМ.

p.s. Некорректная настройка Message Queues может привести к потере сообщений или дублированию данных. Сложно обеспечить порядок доставки сообщений (например, строгое следование временной последовательности событий). Задержки при доставке сообщений могут повлиять на точность симуляции динамических процессов.

#ИМ #ЦД #Синхронизация
🔥32👍2
1.1.4. OPC UA (Open Platform Communications Unified Architecture)
Стандартизированное Взаимодействие с Промышленным Оборудованием

Проблема: Разнородность протоколов, сложность интеграции, уязвимости.

OPC UA: Стандарт, безопасность, надежность, совместимость.

Ключевые преимущества OPC UA

Интеграция
Стандартизированное взаимодействие с промышленным оборудованием

Безопасность
Надежный и безопасный обмен данными в промышленных сетях.

Совместимость
Совместимость с различными системами автоматизации.

Объектная модель
Возможность представлять объекты оборудования и их состояния.

Инструменты OPC UA

OPC UA Servers:
Предоставляют стандартизированный доступ к данным промышленного оборудования.

OPC UA Clients:
Позволяют ЦД и ИМ получать данные от серверов OPC UA, обеспечивая взаимодействие с физическим оборудованием.

p.s. OPC UA может иметь низкую производительность при передаче больших массивов данных с многочисленных датчиков и устройств. Реализация OPC UA серверов на старом оборудовании может быть сложной или невозможной. Безопасность OPC UA может потребовать сложной настройки и мониторинга.

#ИМ #ЦД #Синхронизация
👍42🔥1
1.1.5. MQTT (Message Queuing Telemetry Transport)
Легковесное Взаимодействие с IoT-устройствами

Проблема: Высокие требования к пропускной способности сети передачи данных, избыточность протоколов для IoT.

MQTT: Легкий, эффективный, простая интеграция с IoT.

Ключевые преимущества MQTT

IoT
Оптимизирован для взаимодействия с сенсорами и устройствами IoT.

Эффективность
Низкое потребление ресурсов, для сетей передачи данных с ограниченной пропускной способностью.

Простота
Легкий протокол обмена сообщениями.

Масштабируемость
Подходит для большого количества устройств.

Инструменты MQTT

Mosquitto
Легкий MQTT-брокер для быстрого развертывания и тестирования взаимодействия с датчиками и устройствами.

HiveMQ
Enterprise-платформа для MQTT, подходит для масштабных проектов с множеством IoT-устройств и требованиями к безопасности.

EMQ X:
Распределенный брокер MQTT для отказоустойчивой работы и больших объемах данных с IoT-устройств.

p.s. MQTT “один раз” (QoS 0) и “хотя бы один раз” (QoS 1) может привести к потере или дублированию сообщений при нестабильном соединении. В базовой конфигурации MQTT может быть уязвим, требует внимательной настройки шифрования и аутентификации. MQTT не подходит для сложных запросов с агрегацией или фильтрацией данных, лучше использовать в сочетании с другими технологиями для полноценной синхронизации ЦД и ИМ.

#ИМ #ЦД #Синхронизация
👍32🔥1
1.1. Прямая синхронизация ИМ+ЦД -> Real-time

Мгновенная передача данных между ЦД и ИМ, минимизация задержки.


Плюсы:

Мгновенная актуальность. Обновление данных о положении поездов, состоянии стрелок.

Реакция на критические изменения. Быстрое реагирование на события (сбой, поломка).

Простота (в малых системах). Легкая настройка для небольших моделей.

Минусы:

Нагрузка. Перегрузка при большом количестве датчиков и устройств.

Зависимость. Проблемы при сбое одной из систем.

Масштабирование. Сложно использовать при реконструкции ж.-д. инфраструктуры.

Конфликты. Проблемы при одновременном изменении данных.

Краткая сводка:

REST API. Простые обмены данными для базовых веб-сервисов.

GraphQL API. Гибкие запросы для выбора нужных данных из ЦД.

WebSockets. Двусторонняя связь для оперативного обмена данными (ЦД <-> ИМ).

Message Queues. Асинхронная передача данных (события, статусы).

OPC UA. Стандартизированная интеграция с промышленным оборудованием.

MQTT. Эффективная связь с IoT-устройствами и сенсорами.

#ИМ #ЦД #Синхронизация
👍4🔥211
С наступающим! 🎄
Желаю чтобы пожелания ваших родных и близких сбывались в новом году!

Спасибо за обратную связь, которую вы давали в течение этого года.
9🔥2
1.2.1. Скрипты

Проблема
Ручной ввод данных, ошибки, задержки, отсутствие автоматизации.

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

Ключевые Преимущества
Автоматизация. Устранение ручного труда.
Регулярность. Выполнение задач по расписанию.
Гибкость. Возможность настройки под разные задачи.
Контроль. Точное управление процессом синхронизации.

Недостатки
Сложность разработки, необходимость тестирования, задержки при выполнении, зависимость от расписания.

Инструменты
Python. Универсальный язык для создания скриптов.
Простота использования, богатый выбор библиотек для разных задач, подходит как для простых, так и сложных скриптов.
Bash. Скриптовый язык для Unix-подобных систем.
Оптимизирован для работы с файловой системой и управления процессами, подходит для автоматизации задач на серверах Linux.
PowerShell. Скриптовый язык для Windows.
Предназначен для администрирования Windows-систем, обладает мощными функциями для работы с реестром, сервисами и другими компонентами.
JavaScript (Node.js). Скрипты для серверной части.
Позволяет использовать JavaScript на стороне сервера, обладает хорошей производительностью и подходит для автоматизации веб-сервисов.

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

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

#ИМ #ЦД #Синхронизация
🔥4👍3
1.2.2. Cron Jobs/Task Schedulers (Планировщики задач)

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

Суть
Cron Jobs/Task Schedulers - это инструменты для автоматического запуска задач, таких как синхронизация данных между ЦД и ИМ, по заданному расписанию, без вмешательства человека.

Ключевые Преимущества
Автоматизация. Запуск задач по расписанию без ручного вмешательства.
Регулярность. Гарантированное выполнение задач в заданное время.
Надежность. Минимизация риска пропустить выполнение задач.
Масштабируемость. Легкое добавление и управление большим количеством задач.

Недостатки
Сложность настройки расписания, сложность отладки, зависимость от системного времени, ограниченная гибкость.

Инструменты
Cron (Linux/Unix). Стандартный планировщик задач для Linux/Unix-систем.
Простота использования и широкая распространенность на серверах Linux.
Task Scheduler (Windows). Планировщик задач для Windows-систем.
Интегрирован в операционную систему Windows и удобен для управления задачами на серверах Windows.
Celery (Python). Асинхронный планировщик задач для Python-приложений.
Отлично подходит для планирования задач в Python-экосистеме и для работы с асинхронными задачами.
Apache Airflow (Python). Платформа для управления рабочими процессами.
Подходит для создания сложных рабочих процессов и управления большим количеством задач.

Ключевая ценность
Автоматизация выполнения задач синхронизации данных по расписанию, стремление к надежности и стабильности производственной программы и снижение риска пропустить критически важные операции, например, обновление расписаний движения поездов в ИМ из ЦД. Cron Jobs/Task Schedulers обеспечивают автоматическое выполнение задач синхронизации данных между ЦД и ИМ в строго заданные интервалы, что позволяет быть более уверенными в том, что все необходимые данные будут обновлены вовремя, в отличие от ручного управления, которое может привести к сбоям и задержкам, а также от скриптов, которые могут потребовать ручного запуска или не всегда гарантируют точное время выполнения. Это способствует повышению надежности работы всей производственной программы и снижению риска сбоев.

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

#ИМ #ЦД #Синхронизация
👍4🔥2
1.2.3. Пакетная обработка (Batch processing)

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

Суть
Batch processing - это метод обработки больших объемов данных, которые накапливаются в течение определенного периода времени, а затем обрабатываются единым пакетом, а не по отдельности.

Ключевые Преимущества

Эффективность. Оптимизация обработки больших объемов данных.
Ресурсоэффективность. Рациональное использование вычислительных ресурсов.
Простота. Легкость реализации для обработки больших наборов данных.
Контроль. Возможность управления процессом обработки.

Недостатки
Задержки в обработке, сложность отладки, не подходит для обработки в реальном времени, зависимость от ресурсов.

Инструменты
Apache Hadoop. Платформа для распределенной обработки больших наборов данных.
Подходит для обработки петабайтов данных, имеет открытый исходный код и большой выбор инструментов.
Apache Spark. Платформа для быстрой обработки данных.
Более высокая скорость обработки, чем Hadoop, особенно для итеративных задач и задач машинного обучения.
AWS Batch. Сервис для запуска пакетных задач в облаке AWS.
Полностью управляемый сервис, легко масштабируется и не требует управления собственной инфраструктурой.
OpenAI Cloud Batch. Сервис для пакетной обработки в облаке Google Cloud.
Аналог AWS Batch, но интегрирован в экосистему OpenAI Cloud.

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

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

#ИМ #ЦД #Синхронизация
👍41
Оборот вагона. Так быстро мы еще не ездили

Принятые меры в ноябре и тарифы декабря 2024 усилили тендеции в обороте вагона.

Участковая и техническая скорости в декабре показали свои пики (хоть и в пределах 1 км/ч) в рамках 2024 года (а раньше и поезда ездили быстрее).

Хорошо, конечно, что второй месяц подряд значение оборота вагона сокращается ("-2часа" из почти 21 суток на вагон) и инфраструктуру РЖД мы меньше занимаем, но на первое место выходит проблема неприема вагонов на пути общего пользования и это при падающей погрузке.

Больше 1/3 месяца вагон стоит под грузовыми операциями ("+5,5%" декабрь/ноябрь) и это практически половина от всего оборота вагона. И судя по всему в этом месяце проблема только усугубится.
👏4🤔1