Stagerprt
Stagerprt
Electromécanique
Rapport PFA :
Réalisé par :
MIZEB Abdelmouncif
OUBI Abdelilah
Soutenue devant :
Mr. MKHIDA
ment contribué à la réussite de notre travail. Nous apprécions sincèrement le temps qu’il
nous a consacré et les conseils précieux qu’il a partagés avec intérêt et compréhension.
Que les membres de jury trouvent, ici, l’expression de mes sincères remerciements pour
Pour finir, je souhaite remercier toute personne ayant contribué de prés ou de loin à la
réalisation de ce travail.
Résumé
Le projet, intitulé ≪ Conception d’un système SCADA intégré à des réseaux de neu-
rones artificiels pour une analyse vibratoire avancée des moteurs électriques ≫ , vise à
développer une solution novatrice pour la surveillance des vibrations des moteurs électriques.
En exploitant les données historiques et les leçons tirées des pannes passées, nous utilisons
Cette méthode permet non seulement d’améliorer la précision des diagnostics, mais aussi
d’optimiser les indicateurs clés de performance KPIs en maintenance, tels que l’aug-
mentation du temps moyen entre les pannes MTBF, la réduction du temps moyen de
réparation MTTR, ainsi que la diminution des arrêts et des coûts de maintenance.
Table des matières
Remerciements 1
Résumé 2
Introduction Générale 1
I.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I.2.4.2 Localisation : . . . . . . . . . . . . . . . . . . . . . . . . . 5
I.3.2.3 Pré-homogénéisation : . . . . . . . . . . . . . . . . . . . . 9
I.3.2.5 Dépoussiérage : . . . . . . . . . . . . . . . . . . . . . . . 11
I.3.2.6 Homogénéisation : . . . . . . . . . . . . . . . . . . . . . . 11
I.3.2.7 Préchauffage : . . . . . . . . . . . . . . . . . . . . . . . . . 12
I.3.2.9 Refroidissement . . . . . . . . . . . . . . . . . . . . . . . . 13
I.4 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
II.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
II.2.4 Capteurs Utilisés pour la Surveillance des Vibrations sur les Ma-
II.3.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
II.4.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
à la Sortie : . . . . . . . . . . . . . . . . . . . . . . . . . . 28
II.5.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
II.5.5 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
II.6 OPC-UA : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
II.6.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
II.7 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
III Implémentation et création du modèle 38
III.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
III.2.1 Data : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
III.3.1 Data : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
III.3.7 Prédictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
III.4 Un modèle pour prédire la durée restante avant la défaillance d’une machine : 45
III.4.1 Data : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
III.6.4 Dashbord : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
IV Conclusion : 55
V Annexe 1(Classification) : 57
VII.1preprocessing : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
VII.2markov model : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
VIIIAnnexe 6 (model) : 73
Figure 5 : la pré-homogénéisation . . . . . . . . . . . . . . . . . . . . . . . . . 10
Figure 12 : RNNs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 22 : variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Introduction Générale
Dans le cadre de notre projet, nous avons eu l’opportunité de réaliser un stage de deux
tion de ciment. Reconnue pour ses installations modernes et sa capacité à produire une
large gamme de ciments de haute qualité conformes aux normes internationales, l’usine de
Meknès incarne l’industrie 4.0, où les technologies avancées et les systèmes intelligents
combinaison avec OPC UA pour créer une interface SCADA personnalisée. Ce système
permet de collecter en temps réel les données de vibrations via des capteurs installés sur
les équipements critiques. Ces données sont ensuite analysées avec des modèles de deep
mal de notre machine. Parallèlement, des réseaux de neurones en deep learning, tels que
les LSTM (Long Short-Term Memory), sont utilisés pour classifier précisément la nature
PFA 1
Organisme d’accueil et Procédé de fabrication
et le Procédé de fabrication :
I.1 Introduction :
Le premier chapitre de ce rapport offre une vue d’ensemble de notre organisme d’ac-
et présenterons les grandes lignes de notre projet. Pour conclure, nous détaillerons les
objectifs de notre étude ainsi que la méthodologie que nous adopterons pour traiter cette
problématique.
tites réparations, puis pour des travaux de grande envergure à Casablanca. Par exemple,
PFA 2
Organisme d’accueil et Procédé de fabrication
En 1913, la décision fut prise de construire la première usine de ciment à Casablanca, avec
une capacité de production de 10 000 tonnes par an. Le 1er juin 1995, ≪ Lafarge Maroc
Lafarge, créant une société détenue à 50% par chaque partie. Par la suite, l’ONA a acquis
la SNI, partageant ainsi la société à parts égales entre Lafarge et l’ONA. Ce partenariat
En 2016, la fusion entre Lafarge Ciments et Holcim Maroc a donné naissance à ≪ Lafar-
geHolcim Maroc ≫, positionnant l’entité comme leader national des matériaux de construc-
tion. Cette fusion a marqué la plus grande opération financière à la bourse de Casablanca,
avec une valeur de 9,1 milliards de dirhams. Aujourd’hui, ≪ LafargeHolcim Maroc ≫ do-
mine le marché, avec 85% de ses ventes provenant de la production de ciment. Depuis
1928, l’entreprise est active au Maroc dans divers domaines : ciment, granulats, béton,
Le 7 avril 2014, HOLCIM et Lafarge ont annoncé leur intention de fusionner au taux
d’une action HOLCIM pour une action Lafarge. Cette fusion a nécessité des désinvestissements
pour permettre la fusion. En mars 2015, suite à des pressions des actionnaires d’HOL-
CIM, de nouvelles exigences ont été formulées pour la fusion, incluant une nouvelle parité
nouvel ensemble.
Le 10 juillet 2015, la fusion entre Lafarge et Holcim est devenue effective, avec des chan-
gements par rapport au projet initial, notamment une parité d’échange favorable aux
PFA 3
Organisme d’accueil et Procédé de fabrication
Le 7 avril 2014, HOLCIM et Lafarge ont annoncé leur intention de fusionner au taux
d’une action HOLCIM pour une action Lafarge. Cette fusion a nécessité des désinvestissements
pour permettre la fusion. En mars 2015, suite à des pressions des actionnaires d’HOL-
CIM, de nouvelles exigences ont été formulées pour la fusion, incluant une nouvelle parité
nouvel ensemble.
Le 10 juillet 2015, la fusion entre Lafarge et Holcim est devenue effective, avec des
changements par rapport au projet initial, notamment une parité d’échange favorable aux
En juillet 2016, des désinvestissements ont été annoncés, notammentla vente des activités
PFA 4
Organisme d’accueil et Procédé de fabrication
Holcim Maroc. Elle y occupe une position majeure grâce à sa situation géographique. Le
plateau de Meknès se présente comme étant un carrefour de routes entre le Moyen Atlas
au Sud et la plaine du Sebou et le Gharb au Nord et une zone de transition entre la plaine
I.2.4.2 Localisation :
et Fès .
— 1971 : Extension des capacités avec l’installation d’un nouveau four de 650t/j et
— 1985 : Conversion du four en voie sèche avec l’installation d’un mini précalcinateur ;
— 1993 : Nouvelle extension avec démarrage d’une seconde ligne de cuisson d’une
PFA 5
Organisme d’accueil et Procédé de fabrication
1750000t ;
(1900 t/j).
La fabrication du ciment est un procédé industriel complexe qui nécessite une exper-
PFA 6
Organisme d’accueil et Procédé de fabrication
processus implique des contrôles qualité rigoureux et continus pour assurer la conformité
du produit final aux normes établies. En tant que liant hydraulique, le ciment est une
poudre inorganique qui, mélangée à de l’eau, forme une pâte capable de durcir suite à des
réactions d’hydratation.
calcaire, d’argile et de minerai de fer dans un four rotatif. Le produit de cette cuisson, le
clinker, est ensuite broyé très finement et mélangé avec une petite quantité de gypse pour
produire le ciment Portland, largement utilisé dans le secteur de la construction pour ses
PFA 7
Organisme d’accueil et Procédé de fabrication
silice et d’oxyde de fer, présents dans des matériaux tels que le calcaire, les argiles, les
marnes, les schistes, le minerai de fer et le sable. Le calcaire, extrait à proximité de l’usine,
constitue la matière première principale, tandis que les argiles et les autres matériaux sont
sable sont obtenus à partir de carrières plus éloignées ou de fournisseurs externes. Pour
Lafarge Meknès, deux carrières principales sont exploitées : une à 5 km de l’usine sur
PFA 8
Organisme d’accueil et Procédé de fabrication
I.3.2.2 Concassage :
un rôle clé dans le processus de fabrication du ciment en préparant les matériaux pour
les étapes suivantes. Il est équipé d’un concasseur à double rotor, idéal pour traiter des
impressionnante, capable de gérer des blocs allant jusqu’à 1,3 mètre de dimension, avec
avec 99% des matériaux mesurant moins de 100 mm. Cette uniformité est cruciale pour
garantir la qualité et la consistance du ciment fini. En outre, l’atelier est équipé d’un
récupération des particules très fines, qui sont réintroduites dans le circuit de production.
I.3.2.3 Pré-homogénéisation :
avant leur introduction dans le broyeur. Après le concassage initial, la pierre concassée
porteur, communément appelé carboduc. Toutefois, une partie des pierres extraites des
carrières est dirigée vers une tour d’échantillonnage pour des contrôles de qualité.
PFA 9
Organisme d’accueil et Procédé de fabrication
18 000 tonnes. Leur rôle principal est de réaliser une première homogénéisation du cru en
pour obtenir des performances constantes du ciment final. Une fois la pré-homogénéisation
achevée, le mélange de matières premières est dirigé vers le broyeur, où il sera finement
Figure 5 – la pré-homogénéisation
Au cours de cette phase, la matière première, désignée sous le terme ”cru” car elle
n’a pas encore subi de cuisson, subit des transformations fondamentales. Tout d’abord, le
cru est acheminé vers un doseur afin d’ajuster sa composition en y ajoutant des schistes,
du minerai de fer et du calcaire pour en corriger les proportions. Par la suite, ce mélange
corrigé est introduit dans deux broyeurs verticaux, BC1, tous deux de type Loesche LM
27 à trois galets.
Ces broyeurs fonctionnent à une pression de marche de 75 bars et sont essentiels pour
réduire le cru en une poudre fine. Un ventilateur de tirage, situé à proximité, attire la
matière broyée vers le haut du dispositif, où elle est ensuite séchée par les gaz chauds
PFA 10
Organisme d’accueil et Procédé de fabrication
provenant de la tour E.V.S. La partie supérieure des broyeurs est équipée d’un séparateur
Ce dispositif permet de séparer les grosses particules de matière, les obligeant à retomber
pour être broyées à nouveau, assurant ainsi un broyage optimal et une granulométrie
I.3.2.5 Dépoussiérage :
Le dépoussiérage est une étape cruciale pour garantir un environnement de travail sûr
peut engendrer des émissions de poussières, présentant ainsi des risques pour la santé des
I.3.2.6 Homogénéisation :
La farine produite est transportée par des chaı̂nes vers un élévateur à godets et bandes,
puis stockée dans un silo d’homogénéisation. Le remplissage du silo, assuré par un pot
PFA 11
Organisme d’accueil et Procédé de fabrication
I.3.2.7 Préchauffage :
ment la matière crue en réutilisant une partie de l’énergie calorifique évacuée par les gaz
du four.
Quelque soient les technologies utilisées (préchauffeurs à cyclones, grilles...), les préchauffeurs
La cuisson s’effectue selon le procédé voie sèche intégrale. La ligne de cuisson est
constituée de deux tours de préchauffage à cinq étages de cyclones chacune, ainsi d’un
PFA 12
Organisme d’accueil et Procédé de fabrication
A la sortie de la tour, la farine arrive dans le four où s’effectue l’étape la plus importante
La matière sortant du four est le clinker, elle se présente sous forme des grains gris foncé,
I.3.2.9 Refroidissement
nir une structure minéralogique et des dimensions cristallines favorables. Ils contribuent
stockage. Plusieurs types de refroidisseurs sont utilisés, tels que les refroidisseurs à grilles,
rotatifs ou planétaires. L’air chaud provenant de la première grille est réutilisé dans le
four pour la combustion du coke de pétrole, tandis qu’une partie est dirigée vers le pré-
calcinateur. Les gaz issus de la deuxième grille servent au séchage dans les broyeurs de
matières premières et de combustibles. Le reste des gaz est refroidi dans un échangeur
PFA 13
Organisme d’accueil et Procédé de fabrication
air-air, filtré par un dépoussiéreur à manches, puis évacué dans l’atmosphère par la che-
minée.
Le clinker produit dans le four est ensuite entreposé dans un silo en béton d’une capacité
Après son refroidissement, le clinker se présente sous forme de nodules gris foncé
broyeur vertical ayant une capacité de 115 tonnes par heure. Selon les exigences de qualité
tels que le gypse, qui agit comme régulateur de prise, le calcaire, la pouzzolane et les
Le ciment obtenu est ensuite transporté à l’aide d’élévateurs à bandes et à godets avant
d’être stocké dans des silos en béton. Ces silos alimentent ensuite le système d’expédition
PFA 14
Organisme d’accueil et Procédé de fabrication
installés au niveau des silos de stockage. Une fois ensaché, le ciment est transporté par des
aéroglisseurs et des élévateurs à godets, puis il passe par des cribles pour éliminer les corps
qui concerne l’expédition, les différents types de ciment sont conditionnés en sacs de 50 kg
ou en vrac, puis transportés soit par route. Le chargement des camions en sacs peut être
effectué soit par palettiseur, manuellement ou à l’aide des bras robotisent CARICAMATS.
PFA 15
Organisme d’accueil et Procédé de fabrication
I.4 Conclusion :
L’efficacité de ces étapes est optimisée grâce à des technologies avancées et à des systèmes
PFA 16
Contexte général du projet
II.1 Introduction :
vers la digitalisation permet d’optimiser les processus de production, de réduire les coûts
Dans le contexte de l’Industrie 4.0, la maintenance prédictive est essentielle pour op-
timiser les performances industrielles. En tirant parti de technologies telles que l’Internet
des objets (IoT), le Big Data et l’intelligence artificielle (IA), elle permet de prévoir les
pannes et de réduire les interruptions imprévues des lignes de production. Des capteurs ins-
tallés sur les équipements recueillent et analysent des données en temps réel pour détecter
PFA 17
Contexte général du projet
les signes avant-coureurs de défaillances. Cette approche proactive aide les entreprises à
à diminuer les coûts, à minimiser les arrêts non planifiés et à accroı̂tre l’efficacité globale
de leurs opérations.
Dans l’industrie cimentière, les moteurs électriques sont essentiels à plusieurs étapes
mouture finale du ciment. Ils garantissent le bon fonctionnement des machines suivantes :
— Broyeurs à cru : réduisent les matières premières en poudre fine avant la cuisson.
bustion.
Ces moteurs sont cruciaux pour maintenir une production fluide et continue tout au
PFA 18
Contexte général du projet
Électriques :
Les machines équipées de moteurs électriques peuvent rencontrer divers défauts qui af-
fectent leur performance et leur fiabilité. Parmi les problèmes les plus courants, on trouve
les déséquilibres de charge, qui peuvent provoquer des vibrations excessives et une usure
car elles peuvent entraı̂ner des courts-circuits ou des décharges électriques, compromet-
sa durée de vie. D’autres problèmes incluent les défaillances mécaniques telles que les rou-
lements usés ou les alignements incorrects, qui peuvent provoquer des bruits anormaux
et une diminution de l’efficacité. Enfin, les problèmes électriques comme les fluctuations
de tension ou les défauts dans les circuits de commande peuvent également entraı̂ner
des performances erratiques et des arrêts imprévus. Une surveillance proactive et une
maintenance régulière sont essentielles pour détecter et corriger ces défauts avant qu’ils
La vibration est une grandeur physique cruciale pour évaluer l’état de fonctionne-
ment des machines. Elle fournit des informations précieuses sur la santé mécanique de
l’équipement en révélant des anomalies qui pourraient ne pas être immédiatement visibles.
des défauts de roulements ou des problèmes de lubrification avant qu’ils ne provoquent des
défaillances majeures. Les variations dans les fréquences et les amplitudes de la vibration
PFA 19
Contexte général du projet
les surcharges ou les défauts dans les composants internes. En analysant les spectres de
vibration, les ingénieurs peuvent diagnostiquer la source des problèmes avec une précision
accrue, facilitant ainsi des interventions ciblées et une maintenance préventive efficace.
formance des machines, minimiser les arrêts imprévus et prolonger la durée de vie des
équipements.
Pour la surveillance des vibrations des machines à moteurs électriques, plusieurs types
Les capteurs piézoélectriques, tels que les accéléromètres piézoélectriques, sont parti-
culièrement populaires en raison de leur haute sensibilité et de leur large plage de fréquence.
l’effet piézoélectrique, ce qui permet de mesurer avec précision les amplitudes et les
Les capteurs de vitesse, souvent utilisés pour des applications à basse fréquence, mesurent
la vitesse de déplacement des vibrations et sont utiles pour détecter les défauts dans les
Les capteurs de déplacement, quant à eux, mesurent le déplacement direct des pièces en
vibration et sont précieux pour des analyses détaillées des mouvements oscillatoires.
PFA 20
Contexte général du projet
II.3.1 Introduction :
pour détecter et quantifier les accélérations dans divers contextes industriels, scientifiques
priété de certains matériaux qui génèrent une charge électrique lorsqu’ils sont soumis à
PFA 21
Contexte général du projet
L’effet piézoélectrique direct est le phénomène par lequel certains matériaux génèrent
une charge électrique en réponse à une contrainte mécanique. C’est le principe de base
Où :
— dijk est le tenseur de coefficient piézoélectrique, un tenseur d’ordre trois qui décrit
la direction i.
k.
PFA 22
Contexte général du projet
Où :
— cijkl est le tenseur de rigidité élastique, un tenseur d’ordre quatre qui décrit com-
déformation :
PFA 23
Contexte général du projet
trouvée à partir du déplacement électrique. La charge totale Q sur une surface de surface
A est :
F =m·a
F m·a
T = =
A A
m·a
D =d·T =d·
A
Q=D·A=d·m·a
Cette charge est convertie en un signal de tension par l’amplificateur de charge, qui est
proportionnel à l’accélération.
PFA 24
Contexte général du projet
L’utilisation de la notation tensorielle fournit une vue complète de la manière dont les
II.4.1 Introduction :
gence artificielle (IA) inspiré par le fonctionnement du cerveau humain. Ils sont conçus
réseau de neurones est constitué de nœuds appelés neurones, organisés en couches : une
couche d’entrée, des couches cachées et une couche de sortie. Chaque neurone reçoit des
entrées, les transforme à l’aide de poids et de biais, et passe le résultat à la couche suivante.
Les réseaux de neurones sont capables de capturer des relations non linéaires entre
les données grâce à des fonctions d’activation non linéaires. Ils sont utilisés dans diverses
généralement par rétropropagation, où les erreurs sont propagées en arrière à travers le
PFA 25
Contexte général du projet
de données, les réseaux de neurones artificiels sont devenus des outils puissants dans la
giques et industriels.
Entrée : Les neurones reçoivent des entrées X = [x1 , x2 , . . . , xn ], où chaque xi représente
Poids : Chaque entrée xi est multipliée par un poids wi . Les poids sont des paramètres
Bias : Chaque neurone possède un biais b qui est ajouté à la somme pondérée des
entrées.
Somme Pondérée : La somme pondérée des entrées et du biais est calculée comme :
X
z= w i xi + b
i
PFA 26
Contexte général du projet
sont :
1
— Sigmoı̈de : σ(z) = 1+e−z
ez −e−z
— Tanh (Tangente Hyperbolique) : tanh(z) = ez +e−z
qui permet d’ajuster les poids et les biais du modèle afin de minimiser la fonction de perte.
Le processus se fait en deux étapes principales : la propagation avant (pour calculer les
sorties et l’erreur) et la propagation arrière (pour mettre à jour les poids et les biais en
fonction de l’erreur).
pales :
La fonction de perte courante est souvent l’erreur quadratique moyenne (MSE) pour
PFA 27
Contexte général du projet
(L) ∂E
(L)
′
(L)
δk = (L)
= ak − yk · f zk
∂ak
où :
(L)
- δk est le terme d’erreur pour le neurone k dans la couche de sortie L.
(L)
- f ′ zk est la dérivée de la fonction d’activation f par rapport à la somme pondérée
(L)
zk .
(l)
Pour les couches cachées, on calcule le terme d’erreur δj en propagant l’erreur en
arrière. Pour une couche cachée l avec des neurones j, le terme d’erreur est :
!
X
(l) (l+1) (l+1) (l)
δj = δk wjk · f ′ zj
k
(l)
où : - δj est le terme d’erreur pour le neurone j dans la couche l.
(l+1)
- δk est le terme d’erreur pour le neurone k dans la couche suivante l + 1.
(l+1)
- wjk est le poids entre le neurone j dans la couche l et le neurone k dans la couche
l + 1.
′ (l) (l)
- f zj est la dérivée de la fonction d’activation f par rapport à zj .
PFA 28
Contexte général du projet
(l) (l)
Enfin, les poids wij et les biais bj sont mis à jour en utilisant le gradient calculé : -
Poids :
(l) (l) ∂E
wij ← wij − η (l)
∂wij
où
∂E (l−1) (l)
(l)
= ai · δj
∂wij
- Biais :
(l) (l) ∂E
bj ← bj − η (l)
∂bj
où :
∂E (l)
(l)
= δj
∂bj
où :
∂E (l)
- (l) est le gradient de l’erreur par rapport au poids wij .
∂wij
∂E (l)
- (l) est le gradient de l’erreur par rapport au biais bj .
∂bj
réseaux de neurones artificiels, qui peuvent gravement nuire à la performance d’un modèle.
L’underfitting se produit lorsque le modèle est trop simple pour capturer la complexité
des données. Cela signifie qu’il n’apprend pas suffisamment bien les motifs sous-jacents
et généralise mal non seulement sur les données de test, mais aussi sur les données d’en-
traı̂nement. Les signes d’underfitting incluent une haute erreur de perte à la fois sur les
PFA 29
Contexte général du projet
peut survenir si le modèle n’a pas assez de paramètres (par exemple, trop peu de couches
et les particularités de ces données, au lieu de se concentrer sur les motifs généralisables.
Un modèle surentraı̂né présente généralement une faible erreur de perte sur l’ensemble
d’entraı̂nement, mais une erreur beaucoup plus élevée sur l’ensemble de test. L’overfitting
données d’entraı̂nement.
équilibre entre ces deux extrêmes afin de maximiser la capacité du modèle à généraliser
Training
Stop training here! Testing
Loss
Training Iterations
PFA 30
Contexte général du projet
II.5.1 Introduction :
Les neurones artificiels récurrents (RNN) sont conçus pour traiter des séquences de
données en introduisant une boucle dans la structure du réseau, permettant aux informa-
tions précédentes d’influencer les sorties futures. Un neurone récurrent prend non seule-
ment en entrée le vecteur actuel, mais aussi l’état caché de l’étape précédente, ce qui lui
Figure 12 – RNNs
Les RNN sont capables de modéliser des séquences temporelles grâce à leur capacité
à conserver une mémoire interne à travers l’état caché ht . Cette mémoire permet de cap-
turer des dépendances temporelles dans les données séquentielles, ce qui est crucial pour
des tâches telles que la prédiction de la prochaine valeur dans une série temporelle ou la
PFA 31
Contexte général du projet
génération de texte.
Cependant, en pratique, les RNN souffrent souvent de problèmes tels que l’explosion
travers le temps (BPTT - Backpropagation Through Time). Cela rend difficile l’apprentis-
sage des dépendances à long terme. Pour surmonter ces limitations, des variantes comme
les LSTM (Long Short-Term Memory) et les GRU (Gated Recurrent Unit) ont été intro-
duites. Ces architectures intègrent des mécanismes de portes (gates) qui régulent le flux
d’information, permettant ainsi de mieux gérer les dépendances temporelles à long terme
Où :
- Whh est la matrice de poids de la récurrence (entre les états cachés successifs),
PFA 32
Contexte général du projet
2. Calcul de la sortie :
yt = Why ht + by
Où :
Les Long Short-Term Memory (LSTM) sont un type de réseau de neurones récurrents
(RNN) conçu pour résoudre le problème de l’apprentissage des dépendances à long terme
dans les séquences de données. Les LSTM sont particulièrement utiles pour les tâches
où les informations doivent être conservées sur de longues périodes, comme la traduction
Les RNN traditionnels ont du mal à capturer des dépendances longues en raison du
temps. Les LSTM ont été introduits pour pallier ces limitations grâce à une architecture
interne spécifique qui permet de conserver des informations sur de longues séquences.
Ils sont donc particulièrement adaptés aux problèmes nécessitant une mémoire sur des
PFA 33
Contexte général du projet
périodes étendues, ce qui les rend très efficaces pour des applications comme la prévision
II.5.5 Conclusion :
complexes de manière efficace. Leur entraı̂nement, souvent réalisé par des algorithmes
d’optimisation tels que la rétropropagation, joue un rôle crucial dans la capacité du modèle
Les RNN, quant à eux, se distinguent par leur capacité à gérer des séquences de données en
mémorisant les informations passées et en les intégrant dans les prédictions futures. Cette
propriété les rend particulièrement utiles dans des applications où le contexte temporel est
vocale.
En somme, l’intégration de neurones artificiels et de RNN dans les systèmes d’IA ouvre
de nouvelles perspectives pour résoudre des problèmes complexes et améliorer les perfor-
mances des modèles dans divers domaines d’application. Leur développement continu et
leur affinement sont essentiels pour tirer pleinement parti de leur potentiel et pour relever
PFA 34
Contexte général du projet
II.6 OPC-UA :
II.6.1 Introduction :
porte leur ancienneté, OPC-UA permet la communication entre les robots industriels, les
Le protocole est développé et maintenu par la Fondation OPC, qui regroupe divers fa-
d’information, OPC-UA est principalement conçu pour sécuriser les flux de données lors
d’automates et de robots, quel que soit le fabricant, à condition que la machine soit rac-
cation est logicielle ; il n’est pas nécessaire d’utiliser un bus de communication additionnel,
PFA 35
Contexte général du projet
serveur, qui fournit les informations demandées par un client. Ce client est également un
logiciel dont la fonction est de passer des commandes au serveur, un peu comme dans un
restaurant. Le client analyse et traduit les informations demandées, par exemple par un
robot d’usine. Le serveur répond en fournissant les données demandées par la machine.
Les serveurs, étant également des clients, peuvent collecter et compiler des données pro-
venant d’autres serveurs pour les transmettre à leurs propres clients, et ainsi de suite. Les
Les données étant brutes, similaires et transitant via des ports de communication
sécurisés, il est facile d’encapsuler les messages dans des réseaux privés virtuels (VPN).
OPC-UA facilite l’analyse des données, améliore la performance des flux et permet la
PFA 36
Contexte général du projet
II.7 Conclusion :
Dans ce chapitre, nous avons discuté de tous les outils utilisés pour mener à bien
ce projet, en commençant par le capteur approprié pour notre cas. Ensuite, nous avons
abordé les modèles de deep learning en utilisant les neurones artificiels et leur avantage
pour modéliser des problèmes très complexes. Enfin, nous avons parlé du protocole de
communication OPC UA et des avantages qu’il offre pour la remontée des données, ainsi
PFA 37
Implémentation et création du modèle
III.1 Introduction :
Dans cette partie, nous allons discuter des différentes approches ou modèles utilisés,
comment entraı̂ner ces modèles, puis les enregistrer pour les utiliser séparément, les lier
avec OPC UA, et les intégrer avec SCADA dans le but de prévenir et détecter les pannes,
III.2.1 Data :
Les données que nous allons utiliser sont des échantillons de vibration d’une machine
dans différents états. Nous utiliserons des neurones LSTM pour entraı̂ner le modèle à
PFA 38
Implémentation et création du modèle
Dans cette section, nous procédons à la création d’un modèle basé sur un réseau de
neurones récurrents, en particulier avec des couches LSTM (Long Short-Term Memory),
extraites à partir de fichiers CSV contenant des informations telles que les accélérations
en X, Y et Z (AccX, AccY, AccZ). Ces données sont ensuite normalisées à l’aide de Min-
MaxScaler afin de garantir que toutes les caractéristiques se situent dans la même échelle,
Chaque fichier de données est associé à une étiquette représentant un état spécifique de la
( fault-mapping ) est utilisé pour mapper les noms des fichiers à leurs classes respectives.
PFA 39
Implémentation et création du modèle
Les données sont divisées en ensembles d’entraı̂nement et de test. Elles sont également re-
modelées pour correspondre au format attendu par les couches LSTM, où chaque échantillon
contient 100 étapes temporelles et 3 caractéristiques (AccX, AccY, AccZ). Les étiquettes
Le modèle est constitué de deux couches LSTM, suivies d’une couche de régularisation
par Dropout pour éviter le surapprentissage. Une couche dense finale avec une fonction
classification multi-classes.
5. Entraı̂nement et évaluation :
Le modèle est ensuite entraı̂né sur 50 époques avec un lot de 32 échantillons, et sa perfor-
mance est évaluée sur l’ensemble de test. Le modèle affiche une précision (accuracy) après
la machine.
6. Prédictions :
Après l’entraı̂nement, des prédictions sont effectuées sur les données de test, permettant
PFA 40
Implémentation et création du modèle
L’approche basée sur les réseaux de neurones LSTM pour la détection des anomalies
dans les vibrations d’une machine présente plusieurs défis qui limitent son efficacité dans
certains contextes industriels. L’un des principaux inconvénients réside dans le temps de
LSTM, qui sont conçus pour capturer des dépendances temporelles complexes dans les
données, le processus de classification et d’analyse peut être assez lent, surtout lorsqu’il
s’agit de traiter en temps réel de grandes quantités de données de vibration. Cette latence
peut poser des problèmes dans des environnements où une réaction rapide aux anomalies
est essentielle pour éviter des pannes graves ou des interruptions coûteuses de la produc-
tion.
En outre, cette approche peut également entraı̂ner une discontinuité dans la sur-
veillance des états de la machine. Les LSTM, bien qu’efficaces pour analyser des séquences
de données et identifier des motifs récurrents, ne permettent pas toujours une mise à jour
instantanée des prédictions lorsque de nouvelles données sont disponibles. Cela signifie
qu’il peut y avoir des moments où le modèle n’est pas en mesure de fournir des informa-
tions en temps réel sur l’état de la machine, augmentant ainsi le risque de passer à côté
Une alternative plus directe et souvent plus réactive consiste à définir des seuils de vi-
bration spécifiques pour la machine. En établissant des limites prédéfinies pour les valeurs
de vibration acceptables (comme les accélérations mesurées sur les axes X, Y, et Z), il est
possible de configurer un système qui déclenche immédiatement une alerte dès que ces
PFA 41
Implémentation et création du modèle
seuils sont dépassés. Cette méthode, bien que plus simple, offre l’avantage de permettre
une détection quasi-instantanée des anomalies, ce qui est particulièrement utile dans des
Cependant, malgré les limitations associées à l’approche LSTM, celle-ci conserve une
utilité précieuse dans le diagnostic post-défaillance. Après qu’une panne se soit produite,
l’analyse des données de vibration à l’aide des LSTM peut fournir des informations
avec précision les problèmes après coup est essentielle pour les équipes de maintenance
et d’ingénierie, car elle permet non seulement de comprendre pourquoi une machine a
échoué, mais aussi de développer des stratégies pour prévenir de futurs incidents simi-
laires. En somme, bien que l’approche LSTM ne soit pas sans défauts, elle offre des
avantages significatifs lorsqu’elle est utilisée dans le cadre approprié, notamment pour
PFA 42
Implémentation et création du modèle
III.3.1 Data :
nement normal pour prédire les valeurs futures des vibrations, en appliquant l’approche
Dans cette section, nous procédons à la création d’un modèle de prédiction des vibra-
tions basé sur des séries temporelles pour estimer les futures valeurs de vibration.
Les données de vibration sont extraites d’un fichier CSV contenant les mesures d’accélération
en fonction du temps (AccX). Nous utilisons la bibliothèque pandas pour charger les
données et matplotlib pour visualiser la série temporelle des vibrations. Cette visuali-
sation permet d’observer les variations de vibration au cours du temps et d’identifier des
Les données de vibration sont ensuite divisées en deux ensembles : un ensemble d’en-
20% pour le test. Pour préparer les données à la prédiction, nous utilisons une approche
PFA 43
Implémentation et création du modèle
séquence de 30 pas de temps (fenêtre) pour prédire les 7 prochains pas de temps (hori-
zon). Cela permet au modèle de capturer les relations temporelles courtes dans les séries
Le modèle utilisé est un réseau de neurones entièrement connecté (Dense layers) com-
posé de plusieurs couches denses avec la fonction d’activation ReLU. Le modèle est conçu
pour apprendre les relations non linéaires dans les données de vibration. La dernière
couche utilise une activation linéaire pour produire les valeurs de vibration prédites. Le
modèle est compilé avec l’erreur absolue moyenne (MAE ) comme fonction de perte, et
Le modèle est entraı̂né sur plusieurs époques à l’aide des fenêtres de données d’en-
traı̂nement. Pendant l’entraı̂nement, les performances du modèle sont évaluées sur l’en-
semble de test pour vérifier sa capacité à bien généraliser. L’entraı̂nement est réalisé avec
PFA 44
Implémentation et création du modèle
III.3.7 Prédictions
Après l’entraı̂nement, des prédictions sont effectuées sur l’ensemble de test. Les valeurs
prédites par le modèle sont comparées aux valeurs réelles de vibration à travers une
permet de vérifier si le modèle est capable de prédire correctement les futures variations des
avec un taux de 76 %.
III.4.1 Data :
Dans ce cas, il est difficile de trouver les données pour ce modèle, car il est nécessaire
défaillance de la machine. De plus, il ne suffit pas d’avoir un seul jeu de données avant la
défaillance, mais plusieurs, afin d’associer à chaque échantillon de vibration une durée bien
PFA 45
Implémentation et création du modèle
Dans ce cas, nous avons généré de nouvelles données en utilisant un modèle de Markov
pour créer de nouvelles séquences de données. Nous avons ensuite combiné ces données
avec les vibrations de la machine en état proche de la défaillance. Enfin, nous avons
associé un label à chaque ensemble d’échantillons pour définir la période restante avant
la défaillance.
Voir les Annexes 3, 4 et 5 pour les codes utilisés pour la génération de ces données.
modèle de réseau de neurones pour prédire la durée restante avant la défaillance d’une
Les données sont chargées depuis un fichier CSV nommé data [Link]. La colonne
timestep est supprimée car elle n’est pas nécessaire pour l’entraı̂nement du modèle. Les
80% pour l’entraı̂nement et 20% pour le test. Cette séparation est effectuée à l’aide de la
PFA 46
Implémentation et création du modèle
Les caractéristiques sont normalisées à l’aide de StandardScaler pour que les données
aient une moyenne de 0 et un écart-type de 1. Cette étape est cruciale pour garantir que
toutes les entrées du modèle sont sur la même échelle, ce qui peut améliorer la performance
et la convergence du modèle.
— Une première couche avec 1000 neurones et une fonction d’activation ReLU.
— Une deuxième couche avec 500 neurones, également avec une activation ReLU.
— Une troisième couche avec 250 neurones avec une activation ReLU.
— Une couche de sortie avec un seul neurone, qui prédit la durée en jours.
Le modèle est compilé avec l’optimiseur Adam et utilise l’erreur quadratique moyenne
Le modèle est entraı̂né sur les données normalisées avec un nombre maximal d’époques
fixé à 50. L’entraı̂nement utilise un lot de taille 16 et une fraction des données d’en-
traı̂nement est réservée pour la validation (20%). Un mécanisme d’arrêt précoce (Ear-
consé[Link] l’entraı̂nement, nous avons utilisé les GPU de Runpod afin de réduire
PFA 47
Implémentation et création du modèle
le temps d’entraı̂nement à un niveau raisonnable. Le passage des CPU aux GPU a permis
PFA 48
Implémentation et création du modèle
Après l’entraı̂nement, le modèle est évalué sur l’ensemble de test pour calculer la perte
finale. Les prédictions sont ensuite effectuées sur les données de test, et les résultats sont
est acceptable, atteignant 70%, même si les données ne sont pas réelles mais générées
et Node-RED :
Pour configurer un automate sur TIA Portal, commencez par ouvrir le logiciel et créer
PFA 49
Implémentation et création du modèle
communication, les modules d’entrées et de sorties, ainsi que les paramètres du réseau
Une fois l’automate configuré, activez le serveur OPC UA en accédant aux paramètres
de l’automate dans TIA Portal. Dans la section OPC UA, activez le serveur OPC UA et
configurez les paramètres nécessaires, tels que le port de communication et les paramètres
de sécurité. Il est essentiel de définir des groupes et des variables que vous souhaitez
Pour récupérer le point de terminaison OPC UA, allez dans l’onglet OPC UA et
recherchez l’option pour obtenir l’URL du point de terminaison. Cette URL est nécessaire
pour établir une connexion entre le serveur OPC UA et les clients OPC UA. Copiez cette
URL pour l’utiliser dans vos configurations de clients ou pour intégrer l’automate dans
PFA 50
Implémentation et création du modèle
Figure 22 – variables
client OPC UA
chargées à partir d’un fichier CSV contenant des informations sur l’accélération en X.
Ces données sont ensuite prétraitées en créant des fenêtres temporelles pour entraı̂ner
le modèle. Les fonctions make windows et make train test splits sont utilisées pour
découper les séries temporelles en fenêtres et séparer les données en ensembles d’en-
traı̂nement et de test.
dense est construit à l’aide de Keras, avec plusieurs couches entièrement connectées. Le
modèle est configuré pour prédire les valeurs de vibration futures sur un horizon donné,
utilisant une fonction d’activation linéaire pour la couche de sortie. Après l’entraı̂nement,
le modèle est chargé à partir d’un fichier préalablement sauvegardé et utilisé pour faire
PFA 51
Implémentation et création du modèle
serveur OPC UA à l’aide de la bibliothèque opcua. Il écrit les valeurs prédites par le modèle
dans un nœud spécifique du serveur OPC UA. La fonction write value int convertit les
valeurs flottantes prédites en entiers avant de les envoyer au serveur. Le client OPC UA se
connecte, écrit les valeurs prédictives dans le serveur, puis se déconnecte en garantissant
de prédiction et de communiquer les résultats via le protocole OPC UA pour une intégration
Node-RED :
PFA 52
Implémentation et création du modèle
III.6.4 Dashbord :
PFA 53
Implémentation et création du modèle
PFA 54
Implémentation et création du modèle
Conclusion :
prédiction des défaillances basé sur l’apprentissage automatique, en utilisant des données
l’automate via TIA Portal et la récupération du point de terminaison OPC UA ont été
réalisées avec succès, facilitant la communication entre les dispositifs de terrain et les
systèmes de supervision.
Nous avons également simulé un capteur de vibration et utilisé notre modèle comme
connexion au serveur OPC UA a permis d’écrire les valeurs prédites dans un nœud
spécifique, illustrant la capacité du système à interagir en temps réel avec les données
de vibration.
système en fournissant une interface utilisateur intuitive pour visualiser les données et
les prévisions. Ce projet a mis en évidence l’efficacité de l’utilisation combinée des outils
PFA 55
Implémentation et création du modèle
Malgré l’utilisation de données simulées et les défis associés, tels que le temps d’en-
traı̂nement du modèle et la configuration complexe des systèmes, les résultats ont montré
une performance acceptable. L’efficacité du modèle atteint environ 70%, ce qui est promet-
teur pour des données générées et non réelles. Les prochaines étapes incluront l’intégration
prévisions.
En conclusion, ce projet a permis de mettre en place une solution complète pour la sur-
PFA 56
Implémentation et création du modèle
Annexe 1(Classification) :
import os
import pandas as pd
import numpy as np
import tensorflow as tf
data_dir = ’/home/moncef/’
file_names = [Link](data_dir)
data = []
labels = []
PFA 57
Implémentation et création du modèle
# Define fault labels based on the file names or your classification system
fault_mapping = {
’m1_half_shaft_speed_no_mechanical_load’: 0,
’m1_load_0.5Nm_half_speed’: 1,
’m1_mechanically_imbalanced_half_speed’: 2,
’m1_mechanically_imbalanced_load_0.5Nm’: 3,
’m1_electrically_50_ohm_fault’: 4,
’m1_electrically_100_ohm_fault’: 5,
’m1_electrically_150_ohm_fault’: 6,
’m1_electrically_50_ohm_fault_load_0.5Nm’: 7,
# Loop through all files, load them and assign appropriate labels
df = pd.read_csv([Link](data_dir, file))
scaler = MinMaxScaler()
vibration_data_scaled = scaler.fit_transform(vibration_data)
[Link](vibration_data_scaled)
PFA 58
Implémentation et création du modèle
if key in file:
[Link](fault_mapping[key])
data = [Link](data)
labels = [Link](labels)
random_state=42)
time_steps = 100
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
PFA 59
Implémentation et création du modèle
model = Sequential()
[Link](Dropout(0.2))
[Link](LSTM(units=64))
[Link](Dropout(0.2))
[Link](Dense(units=64, activation=’relu’))
[Link](Dense(units=len(fault_mapping), activation=’softmax’))
[Link](optimizer=’adam’, loss=’categorical_crossentropy’,
metrics=[’accuracy’])
validation_data=(X_test, y_test))
# Make predictions
y_pred = [Link](X_test)
PFA 60
Implémentation et création du modèle
import pandas as pd
df = pd.read_csv("/content/01 - m1_half_shaft_speed_no_mechanical_load.csv",
parse_dates=["Timestamp"],index_col=["Timestamp"])
[Link]()
vib_in_time = [Link](df["AccX"])
vib_in_time.head()
vib_in_time.plot(figsize=(10, 7))
[Link]("vibration")
[Link](fontsize=14)
timesteps = vib_in_time.index.to_numpy()
vibration = vib_in_time["AccX"].to_numpy()
PFA 61
Implémentation et création du modèle
window_size=WINDOW_SIZE, horizon=HORIZON)
len(full_windows), len(full_labels)
import numpy as np
"""
"""
# 1. Create a window of specific window_size (add the horizon on the end for later l
PFA 62
Implémentation et création du modèle
window_indexes = window_step +
np.expand_dims([Link](len(x)-
(window_size+horizon-1)), axis=0).T
window_indexes[-3:], window_indexes.shape}")
# 3. Index on the target array (time series) with 2D array of multiple window steps
windowed_array = x[window_indexes]
"""
Splits matching pairs of windows and labels into train and test splits.
"""
train_windows = windows[:split_size]
PFA 63
Implémentation et création du modèle
train_labels = labels[:split_size]
test_windows = windows[split_size:]
test_labels = labels[split_size:]
full_windows, full_labels)
import tensorflow as tf
[Link].set_seed(42)
# Construct model
model_1 = [Link]([
[Link](300, activation="relu"),
[Link](300, activation="relu"),
[Link](300, activation="relu"),
[Link](HORIZON, activation="linear")
PFA 64
Implémentation et création du modèle
# Compile model
model_1.compile(loss="mae",
optimizer=[Link](),
metrics=["mae"])
# Fit model
model_1.fit(x=train_windows,
y=train_labels,
epochs=100,
verbose=1,
batch_size=128,
validation_data=(test_windows, test_labels),
callbacks=[
create_model_checkpoint(
model_name=’model_experiments/model_projet_dense.keras’)]
model_1 = [Link].load_model(
’model_experiments/model_experiments/model_projet_dense.keras’)
model_1.evaluate(test_windows, test_labels)
PFA 65
Implémentation et création du modèle
predicted_values = model_1.predict(test_windows)
[Link](figsize=(30, 6))
[Link]("Time")
[Link]("Vibration Values")
# Add legend
[Link]()
# Show plot
[Link]()
PFA 66
Implémentation et création du modèle
markov model) :
VII.1 preprocessing :
import pandas as pd
df = pd.read_csv("[Link]", header=None)
df = [Link]([Link][0], axis=1)
df = [Link]([Link][3], axis=1)
df[’timestep’] = range(len(df))
PFA 67
Implémentation et création du modèle
df.to_csv(’clean_data.csv’, index=False)
print([Link]())
import numpy as np
import pandas as pd
# Assuming you already have a vibration dataset with AccX, AccY, AccZ
data = pd.read_csv("clean_data.csv")
# Step 2: Create a Markov transition matrix for each axis (AccX, AccY, AccZ)
PFA 68
Implémentation et création du modèle
transition_matrix[i, j] += 1
keepdims=True)
return transition_matrix
transition_matrix_x = create_transition_matrix(data[’AccX_discrete’].values,
n_bins)
transition_matrix_y = create_transition_matrix(data[’AccY_discrete’].values,
n_bins)
transition_matrix_z = create_transition_matrix(data[’AccZ_discrete’].values,
n_bins)
current_state = initial_state
states = [current_state]
[Link](next_state)
current_state = next_state
PFA 69
Implémentation et création du modèle
return [Link](states)
initial_state_x = [Link](n_bins)
initial_state_y = [Link](n_bins)
initial_state_z = [Link](n_bins)
n_samples_to_generate)
n_samples_to_generate)
n_samples_to_generate)
# (In this example, using the same bin boundaries as the original data)
return bin_edges[binned_data]
PFA 70
Implémentation et création du modèle
synthetic_data = [Link]({
’timestep’: [Link](n_samples_to_generate),
’Accx’: synthetic_acc_x_continuous,
’Accy’: synthetic_acc_y_continuous,
’Accz’: synthetic_acc_z_continuous
})
synthetic_data.to_csv("synthetic_vibration_data_30m.csv", index=False)
import pandas as pd
df = pd.read_csv(file_path)
PFA 71
Implémentation et création du modèle
df_filtered.to_csv(output_file_path, index=False)
PFA 72
Implémentation et création du modèle
Annexe 6 (model) :
import pandas as pd
import numpy as np
import tensorflow as tf
df = pd.read_csv(’data_final.csv’)
df = [Link](columns=[’timestep’])
X = df[[’Accx’]].values
PFA 73
Implémentation et création du modèle
y = df[’days’].values
# Split the data into training and test sets (80% training, 20% test)
random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = [Link](X_test)
model = Sequential([
Dense(500, activation=’relu’),
Dense(250, activation=’relu’),
Dense(50, activation=’relu’),
])
optimizer = [Link](learning_rate=0.001)
[Link](optimizer=optimizer, loss=’mean_squared_error’)
PFA 74
Implémentation et création du modèle
restore_best_weights=True)
callbacks=[early_stopping])
# Make predictions
predictions = [Link](X_test_scaled)
print(predictions)
PFA 75
Implémentation et création du modèle
import numpy as np
import pandas as pd
import tensorflow as tf
import time
import os
df = pd.read_csv("01 - m1_half_shaft_speed_no_mechanical_load.csv",
parse_dates=["Timestamp"],
index_col=["Timestamp"])
PFA 76
Implémentation et création du modèle
window_step =
np.expand_dims([Link](window_size+horizon), axis=0)
windowed_array = x[window_indexes]
train_windows = windows[:split_size]
train_labels = labels[:split_size]
test_windows = windows[split_size:]
test_labels = labels[split_size:]
# Assuming the necessary data preprocessing steps have already been completed
vibration = df["AccX"].to_numpy()
WINDOW_SIZE = 30
window_size=WINDOW_SIZE, horizon=HORIZON)
PFA 77
Implémentation et création du modèle
make_train_test_splits(full_windows, full_labels)
[Link].set_seed(42)
model_1 = [Link]([
[Link](300, activation="relu"),
[Link](300, activation="relu"),
[Link](300, activation="relu"),
[Link](HORIZON, activation="linear")
], name="model_1_dense")
model_1.compile(loss="mae",
optimizer=[Link](),
metrics=["mae"])
model_1 = [Link].load_model(’model_projet_dense.keras’)
# Make predictions
predicted_values = model_1.predict(test_windows)
PFA 78
Implémentation et création du modèle
try:
node = client.get_node(node_id)
# Convert the float value to int (assuming the node expects an Int16)
node.set_value(data_value)
except Exception as e:
if _name_ == "_main_":
try:
PFA 79
Implémentation et création du modèle
[Link]()
print(value)
write_value_int(node_id, value)
[Link](1)
except Exception as e:
finally:
[Link]()
import time
PFA 80
Implémentation et création du modèle
import pandas as pd
try:
node = client.get_node(node_id)
data_value =
[Link]([Link](value,
[Link]))
node.set_value(data_value)
except Exception as e:
if _name_ == "_main_":
PFA 81
Implémentation et création du modèle
client = Client(
try:
[Link]()
predicted_values = model_1.predict(test_windows)
df = pd.read_csv("01 - m1_half_shaft_speed_no_mechanical_load.csv")
vib_in_time = [Link](df["AccX"])
original_values = vib_in_time["AccX"].to_numpy()
last_time_left_written = [Link]()
while True:
for i in range(min(len(predicted_values),
len(original_values), len(time_left))):
PFA 82
Implémentation et création du modèle
predicted_value = float(predicted_values[i][0])
original_value = float(original_values[i])
write_value_to_node(’ns=3;
write_value_to_node(’ns=3;
s="Data_block_1"."original value"’,
time_left_value = float(time_left[i])
write_value_to_node(’ns=3;s="Data_block_1"."time left"’,
PFA 83
Implémentation et création du modèle
[Link](1)
except Exception as e:
finally:
[Link]()
PFA 84