ソース情報
- リポジトリ
- JohnNuwan/EVA_CORE
- ソースの最終更新活動
- 2026年7月18日 08:30
- 検出された SKILL.md の言語
- フランス語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SOC 職業分類に基づく
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill predictive-maintenanceコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
| name | predictive-maintenance |
| description | Analyser des capteurs et détecter des anomalies. |
| version | 1.0.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["predictive-maintenance","machine-learning","vibration-analysis","fft","anomaly-detection","python"],"related_skills":["digital-twins","industrial-edge","oee-performance","industrial-analytics-grafana"]}} |
import numpy as np
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
# Simuler des données de capteur
np.random.seed(42)
time = np.linspace(0, 100, 1000)
vibration = np.sin(time) + np.random.normal(scale=0.1, size=time.shape)
failure = (vibration > 0.8).astype(int) # Panne lorsqu'une vibration dépasse un seuil
# Préparer les données d'entraînement
X = np.array([vibration[:-1], np.gradient(vibration)]).T # Gradient comme caractéristique
Y = failure[1:]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)
# Modèle : Forêt aléatoire
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, Y_train)
# Évaluer le modèle
predictions = model.predict(X_test)
print(classification_report(Y_test, predictions))
# Visualisation
def plot_data():
plt.plot(time, vibration, label="Vibration")
plt.scatter(time[failure == 1], vibration[failure == 1], color='r', label="Défaillance")
plt.legend()
plt.show()
plot_data()
Cet exemple montre comment développer un modèle de classification supervisé pour prédire des défaillances à partir de signaux de capteurs.
La maintenance prédictive consiste à anticiper les pannes des machines industrielles en analysant en temps réel leurs indicateurs physiques (vibrations, température, courant consommé). Contrairement à la maintenance préventive (qui se base sur un calendrier fixe), la maintenance prédictive réagit à la dégradation réelle des performances de la machine.
Cette compétence guide l'agent EVA pour écrire des scripts d'analyse de données de capteurs, notamment :
scipy.Isolation Forest de scikit-learn.À utiliser lorsque l'utilisateur demande :
Ne pas utiliser pour :
L'analyse de vibrations permet de détecter des défauts mécaniques (balourd, désalignement, usure de roulement) sur les moteurs tournants. On transforme le signal temporel en spectre fréquentiel :
import numpy as np
from scipy.fft import fft, fftfreq
def analyze_vibration(signal: np.ndarray, sampling_rate: float):
"""Calcule le spectre fréquentiel d'un signal temporel.
Args:
signal: Tableau numpy contenant les mesures d'accélération (m/s²).
sampling_rate: Fréquence d'échantillonnage du capteur en Hz.
"""
n = len(signal)
# Calcul de la FFT
yf = fft(signal)
# Calcul des fréquences associées
xf = fftfreq(n, 1 / sampling_rate)
# On ne conserve que les fréquences positives (première moitié du tableau)
frequencies = xf[:n//2]
amplitudes = (2.0/n) * np.abs(yf[:n//2])
# Recherche de la fréquence dominante (pic d'amplitude)
dominant_idx = np.argmax(amplitudes)
dominant_freq = frequencies[dominant_idx]
return {
"frequencies": frequencies.tolist(),
"amplitudes": amplitudes.tolist(),
"dominant_frequency_hz": float(dominant_freq),
"max_amplitude": float(amplitudes[dominant_idx])
}
Pour détecter des dérives sur un équipement (ex: surchauffe lente combinée à une hausse de pression), l'algorithme d'apprentissage non supervisé Isolation Forest isole les points de données atypiques.
import pandas as pd
from sklearn.ensemble import IsolationForest
def train_anomaly_detector(historical_data: pd.DataFrame, features: list):
"""Entraîne un modèle de détection d'anomalies sur les données de fonctionnement nominales.
Args:
historical_data: DataFrame contenant les historiques de capteurs.
features: Liste des colonnes de capteurs à analyser (ex: ['temp', 'pressure']).
"""
X = historical_data[features]
# Initialisation du modèle
# contamination = 0.01 signifie qu'on estime qu'environ 1% des données historiques peuvent être des anomalies
model = IsolationForest(contamination=0.01, random_state=42)
model.fit(X)
return model
def check_for_anomalies(model, current_readings: pd.DataFrame, features: list):
"""Vérifie si les mesures actuelles contiennent des anomalies."""
X = current_readings[features]
# predict() renvoie 1 pour une valeur normale, et -1 pour une anomalie
predictions = model.predict(X)
anomalies_detected = current_readings[predictions == -1]
return anomalies_detected
Données historiques polluées pendant l'entraînement :
Échantillonnage de signal insuffisant (Théorème de Shannon-Nyquist) :
NaN) pour éviter des plantages de modèles de Machine Learning.