from math import* def lecture_fichier(text): """crée deux listes contenant les abscisses et les ordonées arguments: fichier texte contenant les mesures fonctionnement: sépare chaque ligne du fichieren deux pour insérer dans une liste les abcsisses et dans une seconde la reponse. retourne les deux listes""" f=open(text,'Ur') temps=[] reponse_experimentale=[] for ligne in f: l=ligne.split() t=l[0] r=l[1] temps.append(t) reponse_experimentale.append(r) return(temps,reponse_experimentale) def gain_statique (Eo,valeur_finale): """retourne le gain statique de la fonction de transfert arguments: E0 l'amplitude de l'échelon la valeur finale de la reponse à l'échelon retourne K""" K=valeur_finale/Eo return(K) def constante_de_temps (temps, reponse_experimentale): """retournela constante de temps de la fonction de transfert arguments: la liste des abscisses contenant le temps t la liste des ordonnées contenant la reponse indicelle experimentale fonctionnement:fait defiler les ordonnées jusqu'à depasser 63% de la valeur finale et lui associe l'abscisse corespondante et de meme avec 95% de la valeur finale, en divisant par 3 on effectue finalement la moyenne des deux resultats obtenus retourne Tm""" i=0 r=reponse_experimentale[i] R=reponse_experimentale[-1] while float(r)<0.63*float(R): r=reponse_experimentale[i+1] T1=float(temps[i]) a=0 s=reponse_experimentale[a] while float(s)<0.95*float(R): s=reponse_experimentale[a+1] T2=float(temps[a]/3) Tm=(T1+T2)/2 return(Tm) from math import* def reponse_indicielle(E0,Km,Tm,temps): """retourne la liste reponse modelisée contenant la reponse temporelle d'un système du premier ordre arguments: amplitude de l'echelon E0 Gain statique Km Constante de temps Tm Liste Temps fonctionnement: associe à chaque t la valeur w, reponse temporelle d'un système du premier ordre, stockée dans une liste retourne la liste contenant les w""" w=0 reponse_modelisee=[] for t in temps: w=Km*E0*(1-exp(-t/Tm)) reponse_modelisee.append(w) return reponse_modelisee import matplotlib.pyplot as plt MaFigure1=plt.figure() plt.grid(True) temps=[] reponse_experimentale=[] (temps,reponse_experimentale)=lecture_fichier("mesure.txt") Km=gain_statique(1,1) print("Km=",Km) Tm=constante_de_temps(temps,reponse_experimentale) print("Tm=",Tm) plt.plot(temps,reponse_experimentale) plt.xlabel('temps') plt.ylabel('reponse experimentale') plt.title('test courbe') plt.show()