Académique Documents
Professionnel Documents
Culture Documents
Rapport de Stage de Fin DEtudes Machine
Rapport de Stage de Fin DEtudes Machine
Présenté par :
Mahamadou Klanan Diarra
(LITIS)
1 Introduction 2
2 Contexte du stage 4
2.1 Siemens Gamesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Éolienne : histoire et fonctionnement . . . . . . . . . . . . . . . . . . . . 5
2.4 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Déroulement du stage 10
3.1 Problématique du stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Implémentation & Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 Évaluation 24
5.1 Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.1 Feature extraction . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2 Test sur des lois de probabilités . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Test sur des données simulées d’éoliennes . . . . . . . . . . . . . . . . . . 28
5.3.1 Pré-traitement des données . . . . . . . . . . . . . . . . . . . . . 28
5.3.2 Stratégie de mise en œuvre . . . . . . . . . . . . . . . . . . . . . . 29
5.3.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 Conclusion 37
A Annexes 39
1
Table des figures
2
4.6 Illustration du OC-SVM correspond aux deux fenêtres d’observations. Cette
illustration est extraite du papier An online kernel change detection
algorithm. (voir référence [2], p. 8) . . . . . . . . . . . . . . . . . . . . . 19
3
5.17 Accélérations et fréquences test 3, défaut : 5400 . . . . . . . . . . . . . . 36
5.18 Spectrogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.19 Gauche : KCD, droite : MMD . . . . . . . . . . . . . . . . . . . . . . . 36
1 Exemple d’utilisation, les points noirs sont tirés d’une distribution normale
centrée et réduite, les points violets quant à eux sont d’une distribution
normale de moyenne (1,1) mais de même variance. La mesure calculée est
affichée en bas du graphe. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4
Résumé
La détection de pannes sur les éoliennes est un défi majeur pour les contrôleurs de ces dispo-
sitifs. En effet la problématique a suscité de nombreux travaux et bon nombre d’approches
tant statistiques que purement mécaniques ont été développées. Cet engouement pour les
dispositifs éoliens est d’une part dû au paradoxe entre le besoin croissant d’énergies et
les défis écologiques auxquels nous faisons face et d’autre part le coût de maintenance de
ces dispositifs et la difficulté d’accès aux zones d’implantations. L’objectif de ce travail
est d’implémenter des modèles de machine learning qui permettent de diagnostiquer la
présence ou non de défauts sur les éoliennes offshore.
Remerciements
Avant d’aller plus loin dans ce rapport, il m’est très agréable d’exprimer ma reconnaissance
envers les personnes qui m’ont apporté leur soutien que ce soit technique et moral dans
l’élaboration de ce travail.
Je présente mes profonds respect et reconnaissance au Prof. Gilles Gasso, mon
directeur de stage, de m’avoir permis de travailler sur un sujet aussi passionnant, pour son
enseignement et le temps qu’il m’a consacré. Je tiens également à ajouter que chacune de
nos réunions était pour moi un réel plaisir, et ne faisait que m’encourager à approfondir
mes connaissances en machine learning.
Mes sincères remerciements vont également à tout le personnel du LITIS particulière-
ment à mon voisin de bureau Dr. Mathieu Bourgais pour ces conseils et tout le temps
qu’il m’a consacré.
Mes respects à toute l’équipe de Siemens Gamesa pour leur accueil très chaleureux,
particulièrement mon contact au sein de l’équipe Mr. Panousis Panagiotis pour sa
gentillesse et son enseignement.
Un merci très spécial aux enseignants de la Sorbonne Université, des personnes
qui m’ont transmis leur savoir au cours de ces deux dernières années. J’estime leur
travail au plus haut point. Un très grand merci aux responsables du majeur Ingénierie
Mathématique Pour l’Entreprise ainsi que mes sincères salutations à mes camarades
de promotions.
Je ne saurai conclure cette partie sans une pensée envers ma famille et mes amis, qui,
à travers leur soutien omniprésent me permettent d’aller de l’avant et faire du mieux.
1
Introduction
(a) (b)
2
Dans le premier chapitre nous posons le contexte du stage, décrivons l’environnement
de travail, donnons en bref un historique et le principe de fonctionnement d’une éolienne
pour finir par une formalisation du problème. Au second nous donnons un récapitulatif
des différentes étapes du stage. Les chapitres 3 et 4 de ce rapport s’attellent à décrire
les modèles étudiés, la stratégie de détection mise en œuvre et à présenter les résultats
obtenus. Nous finissons évidemment par une conclusion et d’éventuelles perspectives.
3
Contexte du stage
Siemens Gamesa est une société européenne fondée en 2017 suite à la fusion de Siemens
Wind Power et de Gamesa. Avec plus de 40 ans d’expérience Siemens Gamesa est l’un
des principaux fournisseurs mondiaux de produits, solutions et services dans le domaine de
l’énergie éolienne. Siemens Gamesa c’est plus de 90.6 GW installés, 23000 employés et
9.1 Mrd euro de chiffre d’affaire. Le département R&D de la section Load & control
de Siemens Gamesa France a ses locaux dans l’un des bâtiments de l’INSA de Rouen.
C’est une équipe constituée de 10 chercheurs dont les études portent sur les phénomènes
aérodynamiques, étude des charges qui s’exerce sur les éoliennes, sur l’amélioration du
système de contrôle des dispositifs éoliens.
Ce stage intervient dans le cadre d’un projet R&D qui vise à intégrer des modèles
de machine learning dans le contrôle des éoliennes offshore. Le travail s’est tenu au
sein du Laboratoire d’Informatique, de Traitement de l’Information et des
Systèmes (LITIS) sous la direction du Prof. Gilles Gasso. Le champ d’application
des études menés au LITIS est très vaste et utilise en grande partie les technologies de
l’intelligence artificielle et aussi les méthodes multi-agents. Ma mission au sein de
cette entité consistait dans un premier temps à comprendre le sujet, faire une bibliographie
4
des méthodes de traitement existantes, en implémenter quelques unes et étudier leurs
performances.
Les éoliennes sont ce qu’on nomme des aérogénérateurs c’est à dire des dispositifs
convertissant l’intensité du vent en énergie électrique. Les éoliennes sont inspirées des
moulins à vent (voir image 2.1) apparus au VII siècle en Perse. On doit la première
éolienne génératrice d’électricité à l’inventeur américain Charles Francis Brush qui
construisit en 1888 une éolienne dotée de 144 pales pour alimenter sa maison en électricité.
La première éolienne industrielle est due au danois Poul La Cour en 1891.
Une éolienne est composée de plusieurs parties essentielles : le mat qui est une tige
verticale de hauteur variable selon le type d’éolienne et la capacité de production ; le
mat est solidement ancré sur une structure stable (fondation), la nacelle est fixée au
sommet du mat et contient les composantes mécaniques et électroniques nécessaires au
fonctionnement de l’éolienne, la nacelle peut tourner dans le plan horizontal pour se mettre
face au vent, le rotor correspond au nez rotatif de la nacelle sur lequel est fixé les pales
au nombre de trois généralement. Pour ce qui est du fonctionnement, sous l’effet du vent
les pales se mettent en mouvement circulaire entraînant le rotor qui à son tour met en
mouvement un aimant autour ou dans une bobine. C’est une explication très brève du
fonctionnement de l’éolienne, car en effet, la nacelle contient bon nombre de composantes
mécaniques qui interviennent dans le processus et il y a tout un système de contrôle
qui coordonne en réalité ces mouvements.
5
Figure 2.1 – Moulin-cabine à corps mobile. Robert Philippe (1982)[2]
6
Figure 2.2 – Différentes parties d’une éolienne[3]
7
Figure 2.3 – A droite la nacelle d’une éolienne onshore. Sa particularité est qu’elle
munie de boite de vitesses car le générateur plus petit est placé à l’intérieur de la nacelle
contrairement à une éolienne offshore dotée d’un plus gros générateur placé entre le rotor
et la nacelle. Les éoliennes offshore de Siemens Gamesa ne sont pas munies de boites de
vitesses
8
Ces trois éléments doivent être stables autour de 0. Si l’un de ces signaux est en dehors
d’un certain intervalle définie par [−ψ, ψ] avec ψ > 0, on est face à un défaut sur l’une
des pales.
Les méthodes présentées dans ce rapport partent d’une formulation différente. Considé-
rons un processus (machine qui remplit des sachets de café, voix de personnes participant
à un débat...) qui génère des données au cours du temps x0 , x1 , · · · , xt . La détection de
′
changements ou de défauts à l’instant t dans un tel processus se formule sous forme d’un
test d’hypothèse comme suit : xt,1 = (x0 , ..., xt′ −1 ) ∼ P et xt,2 = (xt′ , ..., xt ) ∼ Q
H0 : P ∼ Q
(2.2)
H1 : P ≁ Q
H0 : T (xt,1 , xt,2 ) ≤ η (Pas de changement)
(2.3)
′
H1 : T (xt,1 , xt,2 ) > η (changement détecté à t )
Dans ce rapport nous présenterons deux méthodes qui partent de cette formulation :
Kernel Change Detection et Maximun Mean Discrepancy.
9
Déroulement du stage
3.2 Bibliographie
10
Discrépance moyenne maximale (Maximum mean discrepancy). Ces méthodes
ont été choisies pour leurs natures non paramétriques, non supervisées et également pour
leurs bonnes propriétés théoriques. Il existe bien évidemment d’autres approches qui
peuvent être paramétriques et/ou supervisés [8].
11
Études des modèles
Dans ce chapitre nous détaillons les modèles de détection implémentés tout au long
de ce projet. Nous commençons par introduire la notion d’espace de Hilbert à noyau
reproduisant, nous décrivons ensuite le premier modèle Kernel Change Detection
(KCD) où nous parlerons du one class support vector machine (OC-SVM) et
détaillons les calculs qui conduisent à la statistique de test proposée par cette méthode
nommée : mesure de dissimilarité. On conclut le chapitre avec la seconde méthode la
discrépance moyenne maximale (Maximum Mean Discrepancy : MMD).
4.1 Préambule
12
Figure 4.1 – Illustration du transfert des données non linéairement séparable via la
fonction Φ(·) aussi appelée feature map
Dans cette section nous présenterons la méthode KCD proposée par Desobry et al.
(2004). La méthode s’appuie sur l’algorithme du One Class SVM décrit ci-dessous.
13
4.2.1 One class svm
Le One class svm (OC-SVM) est un algorithme de classification non supervisé qui trace
le contour d’un certain niveau λ de la distribution des données (i.e. {x ∈ X /f (x) = λ})
où f est la densité (inconnue) de distribution des données, l’ensemble {x ∈ X /f (x) ≥ λ}
constitue notre classe unique (one class) et toute observation en dehors est considérée
comme aberrante.
Le principe de l’algorithme consiste à projeter les données sur la surface d’un hy-
persphère de rayon fixé grâce à l’astuce du noyau (kernel trick) et à trouver l’hy-
perplan optimal qui sépare les données mappées du centre de l’hypersphère. On peut
14
donc supposer sans perte de généralité (quitte à normaliser) que le noyau est tel que
k(x1 , x1 ) = hΦ(x1 ), Φ(x1 )iH = kΦ(x1 )k2H = 1 c’est le cas du noyau gaussien par exemple.
Formellement il s’agit de trouver l’hyperplan {Φ(x) ∈ H : hω, Φ(x)iH − ρ = 0} avec ω ∈ H
et ρ > 0 de sorte que hω, Φ(x)iH − ρ ≥ 0 pour une certaine proportion des données.
Pour ce faire il y a lieu de résoudre le problème d’optimisation :
1 1 Xn
min kωk2 + ξi − ρ
ω∈H,ρ>0,ξ∈Rn 2 νn i=1
sous la contrainte :
hω, Φ(x)iH ≥ ρ − ξi , ∀i = 1, · · · , n
La fonction de décision :
f (x) = sgn(hω, Φ(x)iH − ρ)
1 1 X
L(ω, ρ, ξ, α, β) = kωk2 + αi (hω, Φ(x)iH − ρ + ξi ) −
X X
ξi − ρ − βi ξi
2 νn i i i
minn αi αj k(xi , xj )
X
α∈R
i,j
15
Figure 4.3 – Les données sont telles que k(xi , xi ) = c. Trouver l’hyperplan est équivalent
à trouver la sphère de rayon minimale qui entoure une certaine proportion des données.
Cette illustration est extraite du livre Learning with kernels (voir référence [1], p. 234)
.
Autre formulation
Choix du noyau
Le noyau gaussien (rbf kernel) est le meilleur choix pour ce algorithme. En effet il
n’y a pas lieu de le normaliser. Il se pose alors le problème du choix des paramètres γ et ν
16
qui sont cruciaux pour un meilleur résultat comme on peut le voir sur la figure ci-dessous.
Figure 4.4 – Influence des paramètres ν et γ sur la région estimée par le OC-SVM. Les
points rouge sont en dehors de la région et sont jugés atypiques
Dans cette section nous décrivons l’algorithme de la méthode KCD qui s’appuie sur
le OC-SVM pour proposer une statistique qui reflète le degré de ressemblance entre les
contours estimés sur deux séries d’observations. L’algorithme utilise le principe de fenêtre
glissante sur les données.
17
Figure 4.5 – Principe de la fenêtre glissante, on veut tester la présence d’un changement
à partir de xt . Cette illustration est extraite du papier An online kernel change
detection algorithm. (voir référence [2], p. 3)
.
H0 : D(xt,1 , xt,2 ) ≤ η (Pas de changement)
Mesure de dissimilarité
Le calcul de cette mesure se base sur des arguments de géométrie dans le feature space
(H) et part de l’idée suivante : si deux échantillons xt,1 = (x1 , · · · , xn ) et xt,2 = (y1 , · · · , yn )
sont issus d’une même distribution les contours estimés sur ces deux échantillons doivent
être similaires, donc une valeur qui prétend refléter leur dissimilarité doit être proche de 0
et inversement.
Soient xt,1 et xt,2 nos deux fenêtres précédentes, (ωt,i , ρt,i ) les coefficients des hyperplans
respectifs, pt,i l’intersection de l’hyperplan et l’hypersphère, ct,i l’intersection de la normale
ρt,i
à l’hyperplan passant par le centre O et l’hypersphère, et, kωt,i k
la distance entre l’hyperplan
et centre O de l’hypersphère i = 1, 2. Ces notions sont illustrées sur la figure 4.6.
18
Figure 4.6 – Illustration du OC-SVM correspond aux deux fenêtres d’observations. Cette
illustration est extraite du papier An online kernel change detection algorithm.
(voir référence [2], p. 8)
.
⌢
ct,1 ct,2
D(xt,1 , xt,2 ) = ⌢ ⌢
ct,1 pt,1 + ct,2 pt,2
⌢
\
ct,1 ct,2 désigne la longueur de l’arc (i.e. l’angle entre ct,1 et ct,2 : ct,1 Oct,2 ), le produit
scalaire ente ct,1 et ct,2 s’exprime en fonction de ce dernier :
\
hct,1 , ct,2 i = kct,1 kH kct,2 kH cos(ct,1 Oct,2 )
ωt,i
en notant que ct,i = kωt,i kH
=⇒ kct,i kH = 1 on obtient ;
\
hct,1 , ct,2 i = cos(ct,1 Oct,2 )
\
=⇒ ct,1 Oct,2 = arccos(hct,1 , ct,2 i)
!
hωt,1 , ωt,2 i
= arccos
kωt,1 kH kωt,2 kH
19
des conditions KKT on a : ωt,i = αi Φ(xi ) ;
P
i
hωt,1 , ωt,2 i T
αt,1 k(xt,1 , xt,2 )αt,2
=q q
kωt,1 kH kωt,2 kH T
αt,1 k(xt,1 , xt,1 )αt,1 αt,2T
k(xt,2 , xt,2 )αt,2
⌢
Un calcule similaire nous donne l’expression de ct,i pt,i , i = 1, 2 :
⌢ ρt,i
ct,i pt,i = arccos q
T
αt,i k(xt,i , xt,i )αt,i
Alors avec probabilité 1 le centre c donné par le OC-SVM sur x converge vers µ = Φ(µ)
quand n −→ ∞.
dicrepancy MMD)
Dans cette section nous présentons la seconde méthode implémentée pour la détection
de changement. Nous verrons l’intérêt de l’espace de Hilbert à noyau reproduisant dans
l’étude de ce problème, définissons la mesure de discrépance et son estimateur.
20
y ∼ q. La discrépance moyenne maximale entre p et q est définie par :
1X 1X
!
M M D[F, X, Y ] = sup f (xi ) − f (yi )
f ∈F n i n i
k(·, ·) mesurable
q (4.1)
Ep [ k(x, x)] < ∞
Z Z Z Z
Ep [f ] = f (x)p(x)dx = f (x)hp, k(x, ·)idx = f (x)hp, k(x, ·)idx = f (x)Ep [k(x, ·)]dx
21
Sous les conditions énoncées ci-dessus en 4.1 on a :
" #2
sup (Ep [f (x)] − Eq [f (y)]) = kµp − µq k2H
kf kH ≤1
En effet :
" #2
2
MMD = sup (Ep [f (x)] − Eq [f (y)])
kf kH ≤1
" #2
= sup hµp − µq , f i
kf kH ≤1
= kµp − µq k2H
Estimateur
Dans cette section nous donnons l’estimateur du MMD. En se plaçant dans la boule
unité de H un RKHS, nous avons exprimé M M D[F, p, q]2 avec p et q deux mesures de
probabilité définies sur X comme kµp − µq k2H . Les propriétés de H permettent d’écrire
[Arthur Gretton et al. (2012)] :
′ ′
avec x, x ∼ p et y, y ∼ q. Il s’en déduit un estimateur sans biais avec X = (x1 , · · · , xn )
i.i.d selon p et Y = (y1 , · · · , yn ) i.i.d selon q :
1 n
M M D[F, X, Y ]2 = h(xi , xj , yi , yj )
X
n(n − 1) i6=j
22
détection de changement peut se formuler sous forme d’un test d’hypothèses voir
2.2. Pour employer le MMD en détection on utilise là encore le principe de la
fenêtre glissante (voir figure 4.5).
23
Évaluation
Dans ce chapitre nous présentons les résultats des tests réalisés sur des données simulées
et des données d’éoliennes. Nous présenterons la stratégie mise en œuvre pour adapter les
modèles à notre cas d’étude. Mais avant quelques mots sur les données dont on dispose.
5.1 Données
Pour ce projet nous avons travaillé sur les accélérations des pales de l’éolienne. L’in-
tensité du vent soumet les pales à des vibrations latérales (voir figure 5.1). Les pales dans
leur mouvement entraînent la nacelle et par le biais d’un capteur les accélérations de la
nacelle sont enregistrées.
Figure 5.2 – Accélérations de la nacelle et des pales. Cet exemple simule un changement
de vitesse du vent.
L’accélération de la nacelle est démodulée pour extraire celles des pales selon l’expres-
sion : xt = ut ∗ cos(ψt + αt ) où ψt représente l’angle azimutal de la pale c’est à dire l’angle
24
Figure 5.1 – Vibration latérale de la pale. Cette vibration entraîne celle de la nacelle
lorsque la pale est aligné suivant l’axe de l’éolienne.
25
5.1.1 Feature extraction
Pour extraire la caractéristique (feature) que nous exploitons, nous utilisons la transfor-
mée de Fourier à court terme (short-time Fourier transform (stft)) des accélérations
des pales. L’intérêt de cette transformée de Fourier est qu’elle conserve, contrairement à la
transformée de Fourier classique, le séquencement temporel du signal ce qui nous permet
d’apprécier l’énergie instantanée des fréquences qui le compose. La méthode consiste à
calculer la transformée de Fourier classique sur des fenêtres locales du signal d’entré. Le
stft[4] est définie par :
∞
Xm (ω) = x(n)w(n − mR)e−jωn
X
n=−∞
Où
x(·) : désigne le signal d’entré
w(·) : la fonction qui détermine la fenêtre locale, à analyser, du signal
R : la taille du saut entre deux fenêtres consécutives. Plus précisément le calcul fonctionne
selon le principe de la fenêtre glissante. Soit N la taille de la fenêtre et M le chevauchement
entre deux fenêtres consécutives, alors R = N − M .
Pour extraire cette caractéristique nous utilisons la fonction stft de la bibliothèque
scipy.signal de python.
Dans un premier temps nous comparons la loi N (0, 1) à d’autres lois (normale de
moyenne et/ou de variance différentes, Laplace) (voir figure 5.4). Sur la figure 5.5b sont
reportées les valeurs des statistiques de test des deux modèles implémentés. On distingue
très clairement le cas sans changement (courbe bleue) des cas avec un changement (voir
figure 5.5b).
26
Figure 5.4 – Données simulées
Figure 5.5 – Graphiques des tests réalises sur des simulations de différentes lois de
probabilités comparées à la loi normale centrée réduite
Remarquez sur la figure 5.5b qu’on arrive à bien distinguer, pour les deux modèles,
le cas sans changement (loi normale centrée réduite contre elle même, courbe bleue) des
autres cas. Ce qui traduit la capacité des modèles implémentés à, effectivement, détecter
des changements.
27
5.3 Test sur des données simulées d’éoliennes
Dans cette section nous présentons les résultats obtenus sur des données simulées
d’éoliennes. Nous disposons de 4 cas tests dont 3 simulent des pannes. Mais avant quelques
mots sur la stratégie mise en œuvre pour adapter les modèles étudiés à notre cas d’étude.
Les signaux sur les lesquels nous travaillons sont composés de plusieurs fréquences
qui sont mises en évidence à travers la Transformée de Fourier à temps court.
Cependant pour une meilleure efficacité et éviter que le défaut ne soit noyé dans multitude
de fréquences, on s’intéresse juste à une petite bande de fréquence qui contient les
fréquences réelles des pales. Pour ce faire nous utilisons un filtre passe-bande. Les
signaux résultants sont centrés et réduits pour accroître leur amplitude donc l’énergie des
fréquences qui les composent.
28
Figure 5.6 – Pré-traitement : la figure de gauche représente les signaux d’entrées, celle
de droite les signaux de sorties
Les méthodes (KCD & MMD) sont conçues pour détecter des changements sur un
signal en utilisant le principe de la fenêtre glissante (figure 4.5). Cette stratégie n’est
pas adaptée à notre cas, en effet, l’accélération, sujette aux fluctuations du vent varie
constamment. En outre, nous ne cherchons pas à détecter un changement sur l’accélération
d’une pale mais à détecter une différence significative entre les accélérations des pales
(figure 5.7).
29
Figure 5.7 – Illustration de la stratégie de détection : les rectangles représentent les
spectrogrammes des 3 pales, At,N , Bt,N et Ct,N représentent les sous matrices de N colonnes
prélevées sur les spectrogrammes respectivement à l’itération t.
1
T̂ (At,N , Bt,N , Ct,N ) = [T (At,N , Bt,N ) + T (At,N , Ct,N ) + T (Bt,N , Ct,N )] . (5.1)
3
Comme exemple pour illustrer tout ce que nous venons de détailler, prenons le cas
sans défauts (figure 5.6), le pré-traitement conserve la bande de fréquences 0.8 - 0.85
Hz (voir figure 5.8).
30
Figure 5.8 – Les Spectrogrammes des signaux pré-traités
Figure 5.9 – KCD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne
31
Figure 5.10 – MMD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne
5.3.3 Résultats
Les résultats présentés ici ont été obtenues sur 3 cas test simulant des pannes. Dans
les 3 cas des défauts ont été introduits sur la pale B en changeant sa rigidité. les cas 1
et 3 (figures 5.11 et 5.17) simulent des défauts mineurs qui s’aggravent dans le temps.
Cette situation est simulée en changeant progressivement la rigidité du pale B. Le cas 2
(figure 5.14) simule un défaut brutal. La fréquence d’échantillonnage des signaux d’origine
(accélérations) est de 10 soit une observation tout les 1
10
de seconde.
Les tableaux 5.1 et 5.1 ci-dessous contiennent les données générées suite aux tests
réalisés sur les 3 cas de simulations de pannes sur une éolienne. La colonne stft pour
Short-Time Fourier Transform représente la taille de l’échantillon pris sur le signal pour
constituer une colonne du spectrogramme, elle fait à la taille de la fenêtre (N ) définie
dans la section 5.1.1. Le couple (ν, γ) fixé à (0.1,0.1) sont les paramètres du OC-SVM, ce
choix a été guidé par de multiples essais réalisés sur les mêmes données. Les seuils ont été
fixés post-traitement, en effet le KCD ne présente pas de méthodes de choix du seuil et
pour le MMD, bien qu’il présente des théorèmes de convergence, le choix du seuil dépend
de la taille des données (N colonnes) mais aussi de certaines notions théoriques que nous
32
n’avons pas pu explorer plus en détails (ce point est abordé dans les perspectives). Le
changement commence à l’instant 5400.0 pour les cas 1, 3 et à l’instant 11000 pour le cas 3.
Paramètres KCD
Cas stft Seuil (ν, γ) N colonnes instant de détection retard à la détection
512 0.22 50 9292.8 3892.8
Test 1 1024 0.14 (0.1,0.1) 20 10393.6 4993.6
256 0.275 50 9049.6 3649.6
512 0.16 50 11776.0 776
Test 2 1024 0.11 (0.1,0.1) 20 11827.2 827.2
256 0.22 50 11772.0 772.0
512 0.18 50 8960.0 3568.0
Test 3 1024 0.11 (0.1,0.1) 20 9345.6 3945.6
256 0.25 50 9305.6 3985.6
Table 5.1 – Données générées par le test de la méthode KCD sur les cas test avec
différentes combinaisons de paramètres.
Paramètres MMD
Cas stft Seuil γ N colonnes instant de détection retard à la détection
512 50 10316.8 4916.8
Test 1 1024 0.005 1 50 9830.4 4430.4
256 50 8038.4 2638.0
512 50 11750.4 750.4
Test 2 1024 0.005 1 50 12288.0 1288.0
256 50 11648.0 648.0
512 50 10214.4 4814.4
Test 3 1024 0.005 1 50 9625.6 4225.6
256 50 9689.6 4289.6
Table 5.2 – Données générées par le test de la méthode M M D sur les cas test avec
différentes combinaisons de paramètres.
33
Test 1
Figure 5.11 – Accélérations et fréquences des pales, défaut sur la pale B à partir de
5400.0. Le défaut s’amplifie progressivement.
Figure 5.13 – KCD à gauche, MMD à droite. La ligne rouge représente le seuil.
34
Test 2
35
Test 3
36
Conclusion
37
Ce qui reste à faire
— Mieux analyser la sensibilité des deux modèles aux différents paramètres (instant
de détection et retard à la détection en fonction des paramètres du modèles),
— Mettre en place une fonction seuil adaptative pour la méthode KCD, par exemple
ηt = Qt−1
2 + λ(Qt−1
3 1 ), où Q2
− Qt−1 t−1
représente la médiane des mesures à l’instant
t − 1, Qt−1
3 − Q1t−1 désigne l’écart inter-quartile à t − 1 et λ > 0.5 une constante.
Ainsi la mesure calculée à l’instant t (T̂ (At,N , Bt,N , Ct,N )) sera comparée au seuil
ηt ,
— Avec un calibrage adéquat des paramètres, mettre les modèles en streaming (en
continu)),
— Explorer d’autres modèles [8].
38
Annexes
39
Kernel change detection :
K e r n e l C h a n g e D e t e c t i o n ( s e l f , k e r n e l = ’ r b f ’ , d e g r e e = 3 ,gamma = 0 . 1 , c o e f 0 =
0 . 0 , t o l = 1 e −3, nu = 0 . 5 , s h r i n k i n g = True , c a c h e _ s i z e = 2 0 0 , v e r b o s e
= F a l s e , max_iter = −1, random_state = None )
Les paramètres sont ceux du OC-SVM, pour plus d’information suivre le lien.
Pour un utilisateur il y a 4 fonctions essentielles :
ComputeDecisionFunction ( s e l f , xx , yy , c l f _ c l u s t e r 1 , c l f _ c l u s t e r 2 = None ,
c l f _ c l u s t e r 3 = None )
C l u s t e r I n f o ( s e l f , c l f _ c l u s t e r 1 , c l f _ c l u s t e r 2=None )
TrainOfData :
Cette fonction entraîne 1 à 3 modèles en fonction des entrés (X, Y, Z) qui sont les
échantillons d’entraînements. Calcule des OC-SVM pour chaque entrée : X, Y et Z.
40
Exemple :
import D e t e c t i o n T o o l s K i t a s DT
import numpy a s np
cov = [ [ 1 . , 0 ] , [ 0 , 1 . ] ]
X = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 0 , 0 ) , cov , 4 0 0 )
modele = DT. K e r n e l C h a n g e D e t e c t i o n ( nu =0.1)
c l f = modele . TrainingOfData (X)
Y = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 5 , 1 0 ) , cov , 4 0 0 )
modele2 = DT. K e r n e l C h a n g e D e t e c t i o n ( nu =0.1)
c l f , c l f 1 = modele2 . TrainingOfData (X, Y)
ComputeDecisionFunction :
ClusterInfo :
rho , k e r n e l _ m a t r i x = modele . C l u s t e r I n f o ( c l f )
41
a_1 , a_2 , K = modele2 . C l u s t e r I n f o ( c l f , c l f 1 )
DissimilarityMeasure :
Celle-ci calcule la mesure introduite par Desobry et al. dans leur article cité plus haut :
measure = modele2 . D i s s i m i l a r i t y M e a s u r e ( c l f , c l f 1 )
42
Exemple complet :
import D e t e c t i o n T o o l s K i t a s DT
import m a t p l o t l i b . p y p l o t a s p l t
import numpy a s np
cov = [ [ 1 . , 0 ] , [ 0 , 1 . ] ]
x = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 0 , 0 ) , cov , 4 0 0 )
y = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 1 , 1 ) , [ [ 1 . , 0 ] , [ 0 , 1 . ] ] , 4 0 0 )
43
Figure 1 – Exemple d’utilisation, les points noirs sont tirés d’une distribution normale
centrée et réduite, les points violets quant à eux sont d’une distribution normale de
moyenne (1,1) mais de même variance. La mesure calculée est affichée en bas du graphe.
Cette classe implémente deux approche basées sur le MMD : l’approche présentée
dans ce rapport qui s’adapte mieux à notre cas et une stratégie de détection, basée sur
cette dernière, présentée dans le document [9].
— gamma désigne le paramètre de la fonction noyau utilisée en l’occurrence ici il
s’agit du noyau gaussien.
— block_size désigne la taille de la fenêtre à chaque itération (N colonnes).
— n_block représente le nombre de fenêtre à chaque itération, est fixé à 1 pour
l’approche présentée dans ce rapport.
—
44
mmd_estimator ( s e l f , X, Y) :
import D e t e c t i o n T o o l s K i t a s DT
mod = DT. maximun_mean_discrepency (gamma=1, b l o c k _ s i z e =5, n_block =1)
x = np . a r r a y ( [ 1 , 2 , 3 , 5 , 4 , 6 , 8 ] )
y = np . a r a n g e ( 7 )
p r i n t (mod . mmd_estimator ( x , y ) )
45
Bibliographie
[1] Bernhard Schökopf and Aexander J. Smola, 2001, Leaning with Kernels, Cambridge,
Massachusetts. The MIT Press.
[2] Desobry, F., Davy, M., Doncarli, C., 2005. An online kernel change detection algorithm.
IEEE Trans. Signal Process. 53 (5), 2961– 2974.
[3] Xiao, Y., Wang, H. ,Zhang, L. ,Xu, W., 2014, Two methods of Gaussian kernel
parameters for one class svm and their application to fault detection. ScienceDirect
Knowledge-Based Systems, 59, 75 - 84
[4] Wang, S., Liu, Q., Zhu, E., Porikli, F. and Yin, J., 2018 Hyperparameter selection of
one class support vector machine by self-adaptive data shifting. ScienceDirect Pattern
Recognition, 74, 198 - 211.
[5] Arthur Gretton, Karsten M. Borgwardt, Malte J. Rasch, Bernhard Schölkopf, Alexan-
der Smola, 2012, A Kernel Two-Sample Test. Journal of Machine Learning Research,
13 (Mar), 723 - 773.
[6] Harchaoui, Z., Lévy-Leduc, C., 2007, Seqmentation temporelle de signaux à l’aide
du Lasso. GRETSI, Groupe d’Etudes du Traitement du Signal et des Images,
http ://hdl.handle.net/2042/17527.
[7] Carmeli, C., De Vito, E.,Toigo, A., Umanita, V., 2018, Vector valued reproducing
kernel Hilbertspaces and universality. https ://arxiv.org/pdf/0807.1659t.
[8] Truong, C., Oudre, L., Vayatis, N., 2019, Selective review of offline change point
detection methods.ScienceDirect Signal Processing, 167, 107299.
[9] Li, S., Xie, Y., Dai, H., Song, L., 2018, ScanB-Statistic for Kernel Change-Point
Detection. https ://arxiv.org/abs/1507.01279
46