Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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]