# dérivée numérique (identique à la question précédente)
def derive(x,y):
# initialisation en calculant dy[0] à partir de la pente entre y[1] et y[2]
	dy=[y[1]-(y[2]-y[1])*(x[1]-x[0])/(x[2]-x[1])]
	dy=[0.0] # initialisation
	for i in range(len(x)-1):
		dy.append((y[i+1]-y[i])/(x[i+1]-x[i]))
	return(dy)

import numpy as np; import matplotlib.pyplot as plt 

# importation des mesures
mesures = np.loadtxt('BFtrapeze90_maxpid.csv', delimiter=';', skiprows=2, dtype=str, encoding='Latin-1')

mesures = np.char.replace(mesures, ',', '.');
mesures = mesures.astype(float)
temps = 0.001*mesures[:,1];
pos_bras = np.pi/180*mesures[:,3];
vit_bras=mesures[:,4];
Vit_moteur = mesures[:,5]

vit_calc=derive(temps,pos_bras)

# Affichage
plt.plot(temps, pos_bras, label=" position bras mesurée (rd) ")
plt.plot(temps, vit_bras, label=" vitesse bras mesurée (rd/s) ")
plt.plot(temps, vit_calc, label=" Vitesse calculée ")
plt.xlabel("Temps (s)")
plt.title("Vitesse calculée du bras MaxPID ") ; plt.legend() ; plt.grid(True) ; plt.show()
