########################################################################
#  TP python d'analyse numérique de la géométrie d'un mécanisme
#       SYSTEME BIELLE MANIVELLE
########################################################################



# importation des bibliothèques utiles

import numpy as np  #utilisation de tableaux de valeur et de fonctions mathématiques utiles

import matplotlib.pyplot as plt #bibliothèque pour les tracés

# définition des constantes du modèle géométrique (moteur 4 cylindres essence Ford à adapter pour le moteur 2T vu en TP sur Solidworks/M3D)

L=100
e=41.55
omega=6000*2*np.pi/60

##############
# Question 1 : Ecrire une fonction lambda d'argument theta1 renvoyant la valeur de Lambda pour un theta1 donné

def Lambda(theta1):
    """calcul la position du piston pour un calage de vilebrequin"""
    return


# Question 2 : Ecrire une ligne d'instruction permettant d'afficher les valeurs de Lambda pour les angles de vilebrequin 0, pi/2, pi, 3.pi/2. Commenter.

print('Lambda(0)=',)

#on peut limiter la longueur d'affichage des flottant en utilisant la fonction round()

# Question 3 : Compléter l'instruction permettant de générer une liste par compréhension puis un tableau de 361 valeurs de theta1 sur l'intervalle [0, 2*pi]

T_theta1=[n*np.pi/180 for n in ....... ]

T_theta1=np.linspace(........) #utiliser l'aide help(np.linspace)

# Question 4 : Ecrire un script permettant de générer le tableau de valeurs de T_Lambda correspondant à T_theta1.



# Question 5 : Compléter/modifier le script permettant d'afficher le tracé de la loi Lambda fonction de theta1

plt.clf()
plt.plot([0,1],[2,-3])
plt.title ('titre')
plt.xlabel('x')
plt.ylabel('x')
plt.show()


# Question 6 : Relever les valeurs maxi et mini et en déduire la vitesse moyenne Vmoy du piston en m/s pour une vitesse de rotation du vilebrequin supposée constante et maximale omega=6000tr/min


#le mouvement est périodique de période T=60/6000=1/100=0.01s




# Question 7 : Ecrire une fonction Lambdapoint d'arguments theta1 et omega permettant de calculer la vitesse du piston pour une position angulaire (calage) du vilebrequin theta1 et un régime moteur omega

def Lambdapoint(theta1,omega):
    """vitesse du piston pour un angle de calage de vilibrequin"""
    return

# Question 8 : Afficher la vitesse instantanée maxi (et non moyenne) du piston au régime moteur maxi de 6000tr/min

print('la vitesse maxi du piston est : ',)

# Question 9 : Compléter le script permettant de tracé la loi de rotation de la bielle en utilisant une fonction theta2 d'argument theta1. On tracera sur la même fenêtre ( par utilisation de "subplot") la loi de vitesse theta2point(theta1,omega). On déduira de ces figures et par calcul les débattement angulaire en rad et vitesse maxi de rotation de la bielle en rad/s par rapport au bâti.

#on rappelle (arcsin(u))'=u'/racine(1-u^2)


def theta2(theta1):
    return

T_theta2=[]

def theta2point(theta1,omega):
    return

T_theta2point=[]

plt.clf()
plt.subplot(2,1,1)
plt.plot()
plt.ylabel('theta2(theta1)')
plt.subplot(2,1,2)
plt.plot()
plt.ylabel('theta2point(theta1)')
plt.show()

print('débattement angulaire du mouvement de la bielle :',,'rad')
print('la vitesse maxi de rotation de la bielle en rad/s par rapport au bâti est : ',,'rad/s')













