Енергетичне обладнання — трансформатори, кабелі, вимикачі — виходить з ладу з сигналами зносу за тижні та місяці до аварії. Перехід від планово-попереджувального ТО до предиктивного знижує витрати на 20-30% та виключає незаплановані відключення. На об'єкті з 10 трансформаторами економія бюджету ТО досягає 4 млн грн на рік, а строк окупності системи — менше 12 місяців.
Незаплановане відключення трансформатора 110 кВ тягне штрафи, простий виробництва та репутаційні втрати. За статистикою, 70% відмов силових трансформаторів пов'язані з дефектами ізоляції. Ці дефекти проявляються за 3-6 місяців до аварії. Традиційні методи діагностики — періодичні виміри DGA (Dissolved Gas Analysis) раз на рік — часто пропускають різке погіршення. Наша AI-система моніторить DGA, часткові розряди та теплові режими в реальному часі, передбачаючи відмову з точністю до 90%.
За даними наших проектів, AI-прогноз знижує кількість аварійних відключень у 4 рази порівняно з плановим ТО. При цьому строк окупності системи становить менше року.
Як AI передбачає відмову трансформатора?
DGA — головний індикатор стану масла. Ми використовуємо пороги та відношення газів за стандартом IEEE C57.104 для класифікації дефектів. Ось приклад коду для діагностики:
import numpy as np
dga_thresholds = {
'hydrogen_H2': {'warning': 150, 'alarm': 500},
'methane_CH4': {'warning': 75, 'alarm': 200},
'ethylene_C2H4': {'warning': 60, 'alarm': 150},
'ethane_C2H6': {'warning': 100, 'alarm': 200},
'acetylene_C2H2': {'warning': 2, 'alarm': 30},
'carbon_monoxide_CO': {'warning': 700, 'alarm': 1500},
'carbon_dioxide_CO2': {'warning': 10000, 'alarm': 15000}
}
def diagnose_transformer_dga(gas_ppm: dict) -> dict:
alarm_gases = []
for gas, value in gas_ppm.items():
if gas in dga_thresholds:
if value > dga_thresholds[gas]['alarm']:
alarm_gases.append({'gas': gas, 'value': value, 'level': 'alarm'})
elif value > dga_thresholds[gas]['warning']:
alarm_gases.append({'gas': gas, 'value': value, 'level': 'warning'})
ch4_h2 = gas_ppm.get('methane_CH4', 0) / (gas_ppm.get('hydrogen_H2', 1) + 1e-9)
c2h4_c2h6 = gas_ppm.get('ethylene_C2H4', 0) / (gas_ppm.get('ethane_C2H6', 1) + 1e-9)
c2h2_c2h4 = gas_ppm.get('acetylene_C2H2', 0) / (gas_ppm.get('ethylene_C2H4', 1) + 1e-9)
fault_type = 'normal'
if gas_ppm.get('acetylene_C2H2', 0) > 5:
fault_type = 'arc_discharge'
elif c2h4_c2h6 > 1.0 and ch4_h2 > 0.1:
fault_type = 'thermal_fault_high'
elif ch4_h2 > 0.1 and c2h4_c2h6 < 1.0:
fault_type = 'thermal_fault_medium'
elif gas_ppm.get('hydrogen_H2', 0) > 200 and c2h4_c2h6 < 0.1:
fault_type = 'partial_discharge'
urgency = {
'arc_discharge': 'immediate_shutdown',
'thermal_fault_high': 'urgent_inspection',
'thermal_fault_medium': 'schedule_maintenance',
'partial_discharge': 'enhanced_monitoring',
'normal': 'routine'
}
return {
'fault_type': fault_type,
'urgency': urgency[fault_type],
'alarm_gases': alarm_gases,
'rogers_ratios': {'CH4/H2': round(ch4_h2, 3), 'C2H4/C2H6': round(c2h4_c2h6, 3), 'C2H2/C2H4': round(c2h2_c2h4, 3)}
}
Тренд газів — прогноз деградації. Лінійна регресія на логарифмі концентрації виявляє прискорення дефекту:
from sklearn.linear_model import LinearRegression
import pandas as pd
def forecast_gas_trend(dga_history: pd.DataFrame, gas: str, forecast_days: int = 30) -> dict:
data = dga_history[['days_ago', gas]].dropna()
data = data[data[gas] > 0]
if len(data) < 3:
return {'status': 'insufficient_data'}
X = data['days_ago'].values.reshape(-1, 1)
y = np.log(data[gas].values)
model = LinearRegression()
model.fit(X, y)
future_x = np.array([[-forecast_days]])
predicted_log = model.predict(future_x)[0]
predicted_concentration = np.exp(predicted_log)
doubling_time = np.log(2) / abs(model.coef_[0]) if model.coef_[0] > 0 else None
return {
'current': data[gas].iloc[-1],
f'forecast_{forecast_days}d': round(predicted_concentration, 1),
'growth_rate_per_day': model.coef_[0],
'doubling_time_days': round(doubling_time, 0) if doubling_time else None,
'threshold_breach_days': estimate_days_to_threshold(data[gas].iloc[-1], predicted_concentration, dga_thresholds.get(gas, {}).get('alarm', float('inf')), forecast_days)
}
Чому предиктивне обслуговування знижує витрати на 30%?
Порівняйте: планове ТО замінює масло кожні 12 місяців незалежно від стану — це зайві 40% витрат. Наша AI-система аналізує тренд газів і призначає заміну тільки при перевищенні порогу. Аналогічно з кабелями — моніторинг часткових розрядів замінює щорічні випробування високою напругою.
| Параметр | Планове ТО | Предиктивне AI | Економія |
|---|---|---|---|
| Заміна масла | Кожен рік | За фактичним станом | -40% |
| Заміна кабелю | Кожні 10 років | При PD > 300 pC | -25% |
| Ремонт ЛЕП | За розкладом | При ризику дотику | -35% |
Предиктивне обслуговування скорочує витрати на ТО в 1.5 рази порівняно з плановим. Для кабельних ліній вигода — в 1.3 рази.
Моніторинг кабельних ліній
Часткові розряди в кабелі — ранній індикатор дефекту ізоляції. Система аналізує пікову величину розряду (pC) та швидкість повторення (PDIV):
def analyze_partial_discharge(pd_measurements: dict) -> dict:
max_pd_pc = pd_measurements.get('max_pd_magnitude_pc', 0)
pd_rate_per_minute = pd_measurements.get('pd_pulse_rate', 0)
pd_location_m = pd_measurements.get('pd_location_tdr_m', None)
if max_pd_pc > 1000:
severity = 'critical'
action = 'immediate_cable_replacement'
elif max_pd_pc > 300:
severity = 'major'
action = 'schedule_replacement_3months'
elif max_pd_pc > 100:
severity = 'minor'
action = 'enhanced_monitoring'
else:
severity = 'normal'
action = 'routine_monitoring'
return {'max_pd_pc': max_pd_pc, 'pd_rate': pd_rate_per_minute, 'pd_location_m': pd_location_m, 'severity': severity, 'action': action}
На одному з проектів ми запобігли каскадній відмові 8 кабелів 110 кВ за 3 місяці до очікуваного пошкодження.
Прогнозування провисання проводу
Нагрів проводу струмом та сонцем веде до провисання. Теплова модель (IEEE 738) розраховує температуру провідника та фактичну стрілу провесу:
def calculate_sag_risk(weather_data: dict, line_parameters: dict) -> dict:
I_amps = line_parameters['current_a']
R_ohm_per_km = line_parameters['resistance_ohm_per_km']
length_km = line_parameters['length_km']
ambient_temp = weather_data['temperature_c']
wind_speed = weather_data['wind_speed_ms']
solar_radiation = weather_data.get('solar_irradiance_wm2', 0)
joule_heating = I_amps**2 * R_ohm_per_km / 1000
convective_cooling = (0.7 + 0.5 * wind_speed) * (80 - ambient_temp)
solar_heating = solar_radiation * 0.015
conductor_temp = ambient_temp + (joule_heating + solar_heating) / (convective_cooling + 1)
base_sag_m = line_parameters.get('design_sag_m', 5.0)
thermal_expansion = 0.023e-3 * (conductor_temp - 20) * length_km * 1000
actual_sag_m = base_sag_m + thermal_expansion * 0.5
clearance_violation = actual_sag_m > line_parameters.get('max_sag_m', 7.0)
return {'conductor_temp_c': round(conductor_temp, 1), 'actual_sag_m': round(actual_sag_m, 2), 'clearance_violation': clearance_violation, 'thermal_limit_pct': min(100, conductor_temp / 90 * 100)}
| Тип дефекту | Індикатори DGA | Ризик | Дія |
|---|---|---|---|
| Дугова спалах | C2H2 > 5 ppm | Критичний | Негайне відключення |
| Високотемпературний перегрів | C2H4/C2H6 > 1, CH4/H2 > 0.1 | Високий | Терміновий огляд |
| Часткові розряди | H2 > 200 ppm, C2H4/C2H6 < 0.1 | Середній | Посилений моніторинг |
| Нормальний стан | Всі гази нижче порогів | Низький | Планове обслуговування |
Як ми інтегруємо AI з SAP PM?
Дані про ризики передаються в SAP PM через REST API. Система автоматично створює наряди на ремонт при перевищенні порогів. Для генерації звітів використовуємо RAG-модуль на основі LlamaIndex з LLM, який витягує релевантні фрагменти з корпоративної документації. RAG-модуль прискорює формування звітів у 3 рази. Для адаптації мовної моделі під специфіку підприємства застосовуємо LoRA fine-tuning — це дозволяє отримувати точні відповіді без перенавчання всієї моделі. LoRA fine-tuning в 5 разів швидший за повне перенавчання.
Що входить в роботу
- Діагностика парку обладнання (1-2 дні) — збір даних, аналіз поточного стану, виявлення критичних вузлів.
- Розробка ML-моделей DGA, часткових розрядів, теплових розрахунків (4-5 тижнів).
- Збірка дашборду та алертів (2 тижні) — Grafana, Telegram/Slack сповіщення.
- Інтеграція з SAP PM / Maximo (3-4 місяці) — автоматичне створення нарядів по тригерах.
- Пілотування та навчання персоналу (1 місяць) — коригування порогів, передача документації.
- Технічна підтримка на етапі експлуатації.
Як ми плануємо ТО на основі ризику?
Ризик-матриця: ймовірність відмови × наслідки (кВт·год недоотпуску × штрафи). Об'єкти ранжуються за очікуваними втратами. ML-алгоритм оптимізує графік ремонтів, скорочуючи час простоїв.
Замовте пілотний проект для одного трансформатора і переконайтеся в ефективності. Отримайте консультацію щодо впровадження предиктивного обслуговування на вашому об'єкті — наші інженери оцінять поточний парк і запропонують оптимальне рішення за один день.







