#------------ PARTIE 1 : DONNÉES EXPÉRIMENTALES -------------#

import numpy as np
import matplotlib.pyplot as plt

z_exp = (np.array([2.3,3.7,6.9,11.23,16.34,22.1,28.8,35.6,43.13,51.3,59.6,67.8,76.3,85.1,93.9,102.66,111.6,120.8,129.7,138.9,147.8])-2.3)*242/116 * 1.e-3  # position relevée sur la vidéo (metres)
dt_exp = 1/50    # temps entre deux images du film (seconde)

#-- à partir de z_exp et dt_exp, construction d'une liste des vitesses et des temps--#
t_exp = [0]
v_exp = [0]
for i in range(1,len(z_exp)-1):
    v_exp.append((z_exp[i+1]-z_exp[i-1])/(2*dt_exp))
    t_exp.append(i*dt_exp)

#--tracé--#
plt.figure(1)
plt.plot(t_exp,v_exp,'o',label='points expérimentaux')
plt.xlabel("t (s)")
plt.ylabel("v (m/s)")
plt.title('Vitesse en fonction du temps')
plt.legend()
plt.grid()
#plt.show()



#------------ PARTIE 2 : MODÈLE 1 : FORCE EN V -------------#
fin = 0.4        # durée simulation (secondes)
dt = fin/500     # pas de temps, assez court 
nb_iterations = int(fin/dt)    # calcul du nombre total d'itérations nécessaires

vlim = 0.95  # vitesse limite mesurée sur le graphe expérimental (m/s)   À COMPLETER
tau  = 0.08  # constante de temps mesurée sur le graphe expérimental (s) À COMPLETER

# Initialisation des listes :
liste_t = [0]
liste_v = [0]
t = 0
v = 0
    
for i in range(nb_iterations):
    # on dispose des variables de l'itération précédente : t et v
    # et on calcule leurs nouvelles valeurs :
    v = v + dt*(vlim-v)/tau                                                           # À COMPLETER
    t = t + dt
    
    # On ajoute ces nouvelles valeurs à chaque liste :
    liste_t.append(t)
    liste_v.append(v)

plt.plot(liste_t,liste_v,'-',label='modèle 1 : force en v')                       # À COMPLETER
plt.legend()
plt.show()

