0% ont trouvé ce document utile (0 vote)
39 vues5 pages

Gestion de la vitesse d'un moteur en Python

Ce projet vise à développer un programme en Python pour simuler et réguler la vitesse d'un moteur électrique en fonction d'une vitesse cible définie par l'utilisateur. Le programme génère des mesures aléatoires, ajuste dynamiquement la puissance du moteur, enregistre les données dans un fichier log et affiche un graphique de l'évolution de la vitesse. Il démontre l'importance de l'asservissement dans les systèmes embarqués et industriels en maintenant une vitesse stable malgré des variations.

Transféré par

e.work3mail
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues5 pages

Gestion de la vitesse d'un moteur en Python

Ce projet vise à développer un programme en Python pour simuler et réguler la vitesse d'un moteur électrique en fonction d'une vitesse cible définie par l'utilisateur. Le programme génère des mesures aléatoires, ajuste dynamiquement la puissance du moteur, enregistre les données dans un fichier log et affiche un graphique de l'évolution de la vitesse. Il démontre l'importance de l'asservissement dans les systèmes embarqués et industriels en maintenant une vitesse stable malgré des variations.

Transféré par

e.work3mail
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Filière : Ingenieurie des Sytémes Embarqués et Robotique

Problème B :Gestion intelligente d’un


moteur électrique

Realisé par :Belahbib Mouad Encadré par :[Link]

2024-2025

1
Objectif du projet :
L'objectif de ce projet est de développer un programme en Python capable de simuler et de
réguler la vitesse d'un moteur électrique en fonction d'une vitesse cible définie par
l'utilisateur. Pour cela, le programme :

1. Génère des mesures aléatoires de vitesse toutes les 0,5 secondes pendant 30
secondes.

2. Demande à l'utilisateur de saisir une vitesse cible.

3. Ajuste dynamiquement la puissance du moteur :

Augmente la puissance si la vitesse est inférieure à 90 % de la cible.

Réduit la puissance si la vitesse dépasse 110 % de la cible.

Maintient la puissance si la vitesse est stable.

4. Stocke l'évolution des vitesses dans un fichier log.

5. Génère un graphique montrant l'évolution de la vitesse.

Le programme :
import random
import time
import [Link] as plt

# Fonction pour simuler la mesure de vitesse


def mesurer_vitesse():
return [Link](500, 3000)

# Fonction pour ajuster la puissance du moteur


def ajuster_puissance(vitesse_mesuree, vitesse_cible):
if vitesse_mesuree < 0.9 * vitesse_cible:
return "Augmentation de la puissance"
elif vitesse_mesuree > 1.1 * vitesse_cible:
return "Réduction de la puissance"
else:

2
return "Vitesse stable"

# Demander à l'utilisateur de saisir la vitesse cible


vitesse_cible = int(input("Entrez la vitesse cible (entre 1000 et 2500 RPM):
"))
while vitesse_cible < 1000 or vitesse_cible > 2500:
print("Vitesse cible invalide. Veuillez entrer une valeur entre 1000 et
2500 RPM.")
vitesse_cible = int(input("Entrez la vitesse cible (entre 1000 et 2500
RPM): "))

# Initialisation des listes pour stocker les données


temps = []
vitesses = []

# Simulation pendant 30 secondes avec des mesures toutes les 0,5 secondes
for seconde in range(0, 30, 1):
for _ in range(2): # Deux mesures par seconde
vitesse_mesuree = mesurer_vitesse()
action = ajuster_puissance(vitesse_mesuree, vitesse_cible)
[Link](seconde + 0.5 * _)
[Link](vitesse_mesuree)
print(f"Seconde {seconde + 0.5 * _}: {vitesse_mesuree} RPM →
{action}")
[Link](0.5) # Attendre 0,5 seconde

# Enregistrement des données dans un fichier log


with open("moteur_log.txt", "w") as fichier:
for t, v in zip(temps, vitesses):
[Link](f"{t} s: {v} RPM\n")

# Affichage du graphique
[Link](temps, vitesses, label="Vitesse mesurée")
[Link](y=vitesse_cible, color='r', linestyle='--', label="Vitesse cible")
[Link]("Temps (s)")
[Link]("Vitesse (RPM)")
[Link]("Évolution de la vitesse du moteur")
[Link]()
[Link]()

compilation :

3
4
Evolution de la vitesse

Conclusion :
Ce projet permet de mettre en œuvre un système de gestion intelligente de la vitesse d’un
moteur en simulant le comportement d’un contrôleur PID simple. Il illustre l’importance de
l’asservissement dans les systèmes embarqués et industriels. En ajustant dynamiquement la
puissance, le programme montre comment maintenir une vitesse stable malgré des
variations aléatoires. L'utilisation d'un fichier log et d'un graphique renforce l'analyse des
performances du système.

Vous aimerez peut-être aussi