import numpy as np ; import matplotlib.pyplot as plt
# paramètres d'entrée moteur lent : vitesse tr/mn, excentricité, nbre pistons, rayon piston
N=600;e=0.01;n=5;r=0.02;w=N*np.pi/30

# temps et angle pour 2 tours avec un pas de calcul de 2°
t=np.arange(0,120/N,120/N/720) # plage temps pour 2 tour
theta=np.arange(0,4*np.pi,4*np.pi/720) # plage theta de 4 pi = 2 tours
debit=np.linspace(0,0,720) # initialisation du debit

# débit pour un piston = vitesse x surface	
for i in range(1,n+1): # calcul pour chaque piston (et i varie de 1 à 5) 
	deb=e*w*np.sin(theta+2*(i-1)*np.pi/n)*np.pi*r**2 # débit = vitesse x surface
	for j in range(0,720): # suppression des débit négatifs
		if deb[j]<0 :
			deb[j]=0
	debit=debit+deb # somme des débits de chaque piston
	plt.plot(t, deb, label=str(i)) # tracé de la courbe pour un piston et label
	plt.xlabel("t (s)") # légende abscisse
	i=i+1

irreg=round(np.max(debit)-np.min(debit),9) # calcul de l'irrégularité cyclique 
print("L'irrégularité cyclique vaut : ",irreg," m3") # affichage de la valeur de l'irrégularité
plt.plot(t, debit, label="Q(m3/s)") # Tracé du débit total
plt.title("débit par piston et débit total avec une irrégularité de "+str(irreg)+" m3") # titre
plt.legend() ; plt.grid(True) ; plt.show() # affichage de la fenêtre
