1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| for f in gammeF:
tf = clock()
w = 2*pi*f #pulsation
print u'La fréquence en cours est :', f, u'Hz'
print ""
# ----------------------------------------------------------------------------------
# Détermination de la matrice identité de départ pour les calculs de la matrice ABCD
# ----------------------------------------------------------------------------------
ABCD = numpy.matrix([[1,0],[0,1]])
# ------------------------------------------------------------------------------------
# Boucle à partir des données extraites des fichiers (calculs en fonction des diamètres)
# ------------------------------------------------------------------------------------
t3 = clock()
for nz in range(0,len(Z)):
#------------------------------------------------------------------------------------
# Calcul des caractéristiques d'une ligne à air avec pertes
#------------------------------------------------------------------------------------
G = (w**2.5) * constanteG[nz]
R = L0d[nz]*2*ct[nz]*(W**0.5/diamB[nz])-G)#résistance linéique
G = C0d[nz]*2*ct[nz]*G#conductance linéique
L = L0d[nz] + R/w#inductance linéique
C = C0d[nz] + G/w#capacité linéique
Zc = sqrt((R+((L*w)*1j))/(G+((C*w)*1j))) #impédance caractéristique
Gamma = sqrt((R+((L*w)*1j))*(G+((C*w)*1j))) #constante de propagation
#------------------------------------------------------------------------------------
# Détermination de la Matrice ABCD de la ligne
#------------------------------------------------------------------------------------
coef = Gamma*elementary(cdeltaL, 0.5e-3)
Cos = cosh(coef)
Sin = sinh(coef)
ABCD = ABCD * numpy.matrix([[Cos,Sin*Zc],[Sin/Zc,Cos]]) #Création de la matrice ABCD d'un élément de la ligne ([A,B],[C,D])
print 'pour nz =',nz," temps d'execution =",clock() - t3
#-----------------------------------------------------------------------------------------
# Calcul du coefficient de la matrice S de la ligne à partir de la matrice ABCD de la ligne
#-----------------------------------------------------------------------------------------
Scoef = 1/((ABCD[0,1]+ABCD[1,0]*Zref*Zref)+(ABCD[0,0]*Zref+ABCD[1,1]*Zref))
#-----------------------------------------------------------------------------------------
# Calcul des valeurs de la matrice S
#-----------------------------------------------------------------------------------------
matS11 =Scoef*(ABCD[0,1]-ABCD[1,0]*Zref*Zref+ABCD[0,0]*Zref-ABCD[1,1]*Zref)
matS12 =Scoef*(2*Zref*(ABCD[0,0]*ABCD[1,1]-ABCD[0,1]*ABCD[1,0]))
matS21 =Scoef*(2*Zref)
matS22 =Scoef*(ABCD[0,1]-ABCD[1,0]*Zref*Zref-ABCD[0,0]*Zref+ABCD[1,1]*Zref)
#-----------------------------------------------------------------------------------------
# Formatage de l'écriture en sortie des valeurs d'incertitudes
#-----------------------------------------------------------------------------------------
tabIncmatS11 = "u(re) =%s, u(im) = %s, r = %s" % as_std_uncertainty( std_covariance(matS11) )
tabIncmatS12 = "u(re) =%s, u(im) = %s, r = %s" % as_std_uncertainty( std_covariance(matS12) )
tabIncmatS21 = "u(re) =%s, u(im) = %s, r = %s" % as_std_uncertainty( std_covariance(matS21) )
tabIncmatS22 = "u(re) =%s, u(im) = %s, r = %s" % as_std_uncertainty( std_covariance(matS22) )
#-----------------------------------------------------------------------------------------
# Ecriture du fichier
#-----------------------------------------------------------------------------------------
valcol = str(value(f)) + "\t" + \
str(value(matS11)) + str(tabIncmatS11) + "\t" + \
str(value(matS12)) + str(tabIncmatS12) + "\t" + \
str(value(matS21)) + str(tabIncmatS21) + "\t" + \
str(value(matS22)) + str(tabIncmatS22) + "\n"
matSFile.write(valcol)
print "Temps d'execution du tour f=",f,' : ',clock() - tf |
Partager