Bonjour à tous,
Non, je vous vois venir, je ne pense pas que itertools puisse résoudre mon problème
Rentrons dans le vif:
- Je souhaite simuler le comportement de pompes centrifuges avec ou sans variateur de vitesse sur plusieurs stations de pompage.
- Pour cela j'ai crée un objet Station_pompage qui regroupe un ou plusieurs objet Pompe_centrifuge. J'ai 6 stations qui ont chacune un nombre différents de pompes.
- Chaque pompe centrifuge a sa propre plage de vitesse autorisée (float).
Le but est de tester l'association toutes les vitesses possible sur une station de pompage (dénombrement). Si ma station a 5 pompes cela revient, avec la seule technique que j'ai trouvé pour l'instant, à faire 5 boucles "for" imbriquées. Pour duper Python lorsque j'ai moins que 5 pompes sur ma station, je mets des valeurs vides dans les listes utilisées pour ne pas avoir de problème de "out of range" (car vecteur vitesse a deux dimensions avec sa deuxième dimension égale au nombre de pompes).
Je ne pense pas itertools convienne car le dénombrement, d'après ce que j'ai compris ne se fait que avec des listes identiques.
Avez vous une idée pour faire cela d'une meilleure manière ?
D'avance merci beaucoup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 class StationPompage(): """ Définit le comportement d'une station de pompage comportant autant de pompe que listé dans liste_pompe """ def __init__(self,nom,position,liste_pompe,canalisation,mini_arrivee=2.5): self.nom=nom self.position=position self.liste_pompe=liste_pompe self.canalisation=canalisation self.mini_arrivee=mini_arrivee """Renvoie le vecteur de vitesse possible par les pompes de la station. Un vecteur different par pompe""" def vecteur_vitesse(self,pas=10): vecteur_vitesse=[] for pompe in self.liste_pompe: vecteur_vitesse.append(pompe.calcul_vitesses_possibles(pas)) vecteur_vitesse.append([0]) vecteur_vitesse.append([0]) vecteur_vitesse.append([0]) vecteur_vitesse.append([0]) vecteur_vitesse.append([0]) return vecteur_vitesse """En fonction des vitesses possibles par pompe on teste le comportement de la somme des pompes """ def hmt(self,nombre_variateur,hmt_voulue,pas=10): i=0 vecteur_vitesse=self.vecteur_vitesse(pas) for v1 in vecteur_vitesse[0]: for v2 in vecteur_vitesse[1]: for v3 in vecteur_vitesse[2]: for v4 in vecteur_vitesse[3]: for v5 in vecteur_vitesse[4]: #la je teste la pression
Partager