def calculosResistividade(): print u"0 - cálculo para 1 haste" print u"1 - cálculo para n hastes em paralelo(linha)" print u"2 - quadrado cheio" print u"3 - triângulo" print u"4 - circunfêrencia" print u"5 - anel" a = raw_input("]]") if a == "0": en = entradaPhold() res = r1haste.r1haste(en[0], en[1], en[2]) elif a == "1": en = entradaHastesLinha() res = rnhastes.resistenciaHastesLinha(en[0], en[1], en[2], en[3], en[4]) elif a == "2": en = entradaHastesQuadradoCheio() res = rnhastes.quadradoCheio(en[0], en[1], en[2], en[3], en[4], en[5]) else: print u"aviso: opção não disponivel" return 0 print "_" * 50 print u"Resistência calculada:", res
def resistenciaHastesLinha(pa, l, e, d, q): """ Hastes colocadas no solo em linha reta entrada: pa - resistividade do solo l - comprimento das hastes e - espacamento unico entre duas hastes d - diamentro da haste q - quantidade """ rh = [[0 for i in range(q)] for j in range(q)] for j in range(q): for i in range(q): if j != i: # distancia absoluta entre os pontos dhm = abs(i - j) rh[j][i] = resistenciaMutua(pa, l, dhm * e) else: rh[j][i] = r1haste.r1haste(pa, l, d) # mostra a matriz gerada """ for j in range(q): for i in range(q): print rh[j][i], print """ acumulador1 = 0 acumulador2 = 0 for j in range(q): for i in range(q): acumulador1 = acumulador1 + rh[j][i] acumulador2 = acumulador2 + 1 / acumulador1 acumulador1 = 0 resitenciaEquivalente = 1 / acumulador2 # print 'resistencia: ', resitenciaEquivalente return resitenciaEquivalente
def quadradoCheio(m, n, esp, pa, l, d, debug=None): """ entrada, m - quantidade de hastes colocadas horizontalmente n - quantidade de hastes colocadas verticalmente esp - espaçamento entre duas hastes p - restividade aparente l - comprimento da haste d - diametro da haste """ r = zeros(shape=(m, n)) r1 = r1haste.r1haste(pa, l, d) if debug: print r1 for i in range(1, m + 1): for j in range(1, n + 1): for x in range(1, m + 1): for y in range(1, n + 1): if (i == x) and (j == y): r[i - 1, j - 1] = r[i - 1, j - 1] + r1 if debug: print r else: e = sqrt((i - x) ** 2 + (j - y) ** 2) * esp b = sqrt(l ** 2 + e ** 2) a = resistenciaMutua(pa, l, e) r[i - 1, j - 1] = r[i - 1, j - 1] + a if debug: print r Ra = 0 for i in range(1, m + 1): for j in range(1, n + 1): Ra = Ra + 1 / r[i - 1, j - 1] return 1 / Ra
def hasteSoloVariasCamadas(p, l, d): """Calcula a resistência de aterramento de uma haste cravada verticalmente em um solo com várias camadas. Conhecida como fórmula de Hummel. Entrada: p = vetor com a resistividade de cada camada que a haste encontrada l = profundidade de cada camada que a haste vê d = diâmetro da haste Saída: pa = resistividade aparente vista pela haste r1 = resitência da haste """ if len(p) != len(l): print "erro: dimensao de p nao e' coerente com l" deq = sum(l) den = 0 for i in range(len(p)): den += l[i] / p[i] pa = deq / den r1 = r1haste.r1haste(pa, deq, d) return [pa, r1]