Cómo calcular la resistencia total de este circuito eléctrico

1

Soy programador y estoy haciendo una Inteligencia Artificial para un juego de tablero llamado Hex. Dado que no estoy familiarizado con la ingeniería eléctrica, necesito su experiencia en este tema.

Ahora estoy trabajando en la función de evaluación de la junta. He representado el tablero como un gráfico, ya que eso es lo que necesita una computadora como entrada. Pero en este caso también puedes verlo como un circuito eléctrico. El circuito usualmente se ve así, solo que en los hexágonos 11x11:

Losbordes/resistenciassontodos0,1oINF(infinito).

Miobjetivoesdarunapuntuaciónaltablero.Quieroaplicarunvoltajeeléctricoalosdosnodosopuestosdellímiteyluegoverificarlaresistenciatotalentreellos.

Hehechounposibleescenarioenuntablerode2x2.Lospuntossonnodos,losbordessonresistencias,losnúmeros,losvaloresdelresistorylasflechassonmissuposicionesdelacorrienteactual: Así que, como lo entiendo, tengo que hacer algo llamado análisis nodal. Así que hice para cada nodo una ecuación en la que el voltaje que entra en un nodo es el mismo que para salir. Así que aquí están las ecuaciones que hice:

$$ V1: \ frac {(V1-V2)} {0} + \ frac {(V1-V3)} {1} = 10 $$ (Por lo que entiendo, el número de fuente de voltaje no importa, así que elegí 10).

$$ V2: \ frac {(V1-V2)} {0} = \ frac {(V1-V3)} {1} + \ frac {(V2-V4)} {1} $$

$$ V3: \ frac {V1-V3} {1} + \ frac {(V2-V3)} {1} = \ frac {(V3-V4)} {2} + \ frac {(V3- V5)} {\ infty} $$

$$ V4: \ frac {(V2-V4)} {1} + \ frac {(V3-V4)} {2} = \ frac {(V4-V5)} {\ infty} + \ frac { (V4-V6)} {1} $$

$$ V5: \ frac {(V3-V5)} {\ infty} + \ frac {(V4-V5)} {\ infty} = \ frac {(V5-V6)} {\ infty} $$

$$ V6: \ frac {(V4-V6)} {1} + \ frac {(V5-V6)} {\ infty} = 10? $$ (Supongo que la exclusión actual es de 10, pero no estoy del todo seguro)

Así que con algunas manipulaciones algebraicas pongo los números en una matriz, donde los voltajes son las variables de curso: (También asumí que dividir por cero es lo mismo que multiplicar por Infinito, no sé si esa es la forma correcta ).

$$ \ infty - \ infty -1 0 0 0 = 10 $$

$$ \ infty - \ infty 1 1 0 0 = 0 $$

$$ 1 1 -2.5 0.5 0 0 = 0 $$

$$ 0 1 0.5 -2.5 0 1 = 0 $$

$$ 0 0 0 0 0 0 = 0 $$

$$ 0 0 0 1 0 -1 = 10 (?) $$

Si resuelves esto obtienes:

$$ V1: NaN $$
$$ V2: NaN $$
$$ V3: 0.05 $$
$$ V4: 0.05 $$
$$ V5: 0 $$
$$ V6: -0.05 $$

Tengo dos preguntas ahora:

1. ¿Dónde está mi error? (porque no creo que los voltajes puedan ser NaN o negativos)

2. Si calculé estos voltajes correctamente, ¿cómo calculo la resistencia total?

    
pregunta Math_Max

2 respuestas

4

Establezca el nodo \ $ V_6 = 0 \: \ textrm {V} \ $, para comenzar. (Es conveniente y puede hacer esto exactamente una vez; para cualquier nodo que desee). También tenga en cuenta que \ $ V_1 = V_2 \ $, así que cuando busque bordes, tendrá que encontrar todos los bordes que emanan de todos esos elementos compartidos ". super "nodos". (Entonces, \ $ V_2 \ $ no aparecerá debajo). También me doy cuenta de que su ejemplo más pequeño tiene un "2" como valor para una ventaja, cuando creo que antes dijo que solo 0, 1 o \ $ \ infty \ $ era posible. Aunque viviré con eso.

Entonces, el resumen aquí es: (1) que los nodos conectados por 0 son el mismo nodo y tiene que encontrar todos los bordes que emanan del mismo nodo al configurar las ecuaciones; y, (2) que los bordes con \ $ \ infty \ $ pueden ignorarse; y, (3) las fracciones con el nodo especial que designa como 0 en el numerador se pueden eliminar.

Tenga en cuenta que \ $ V_5 \ $ es, en efecto, un vértice aislado. Así que no podrás calcular un voltaje para ello. Eso debería estar bien. Además, debe tener un vértice de hoja (no sabría cómo lidiar con hacer su gráfica). El voltaje allí será desconocido si el borde es \ $ \ infty \ $ y será igual al voltaje en el nodo conectado de lo contrario Probablemente, en esos casos, simplemente lo igualaría y terminaría con él.

Finalmente, no lo haré con el símbolo \ $ \ Omega \ $ (si lo desea, puede asumirlo). En su lugar, usaré la notación de borde de \ $ R_ {23} \ $, para Ejemplo, para representar la resistencia de borde indicada. Si se comparte un nodo, usaré \ $ V_ {12} \ $, por ejemplo, para indicar ese súper nodo. Su ejemplo de conjunto de ecuaciones es:

$$ \ begin {align *} \ frac {V_ {12}} {R_ {13}} + \ frac {V_ {12}} {R_ {23}} + \ frac {V_ {12}} {R_ {24}} & = \ frac { V_3} {R_ {13}} + \ frac {V_3} {R_ {23}} + \ frac {V_4} {R_ {24}} \\\\ \ frac {V_3} {R_ {13}} + \ frac {V_3} {R_ {23}} + \ frac {V_3} {R_ {34}} & = \ frac {V_ {12}} {R_ {13}} + \ frac {V_ {12}} {R_ { 23}} + \ frac {V_4} {R_ {34}} \\ \\ \ frac {V_4} {R_ {24}} + \ frac {V_4} {R_ {34}} + \ frac {V_4} {R_ {46}} & = \ frac {V_ {12}} {R_ {24 }} + \ frac {V_3} {R_ {34}} \ end {align *} $$

Lo anterior se puede convertir a:

$$ \ begin {align *} V_ {12} \ cdot \ frac {1} {R_ {13} \ vert \ vert R_ {23} \ vert \ vert R_ {24}} + V_3 \ cdot \ frac {-1} {R_ {13} \ vert \ vert R_ {23}} + V_4 \ cdot \ frac {-1} {R_ {24}} & = 0 \\\\ V_ {12} \ cdot \ frac {-1} {R_ {13} \ vert \ vert R_ {23}} + V_3 \ cdot \ frac {1} {R_ {13} \ vert \ vert R_ {23} \ vert \ vert R_ {34}} + V_4 \ cdot \ frac {-1} {R_ {34}} & = 0 \\ \\ V_ {12} \ cdot \ frac {-1} {R_ {24}} + V_3 \ cdot \ frac {-1} {R_ {34}} + V_4 \ cdot \ frac {1} {R_ {24} \ vert \ vert R_ {34} \ vert \ vert R_ {46}} & = 0 \ end {align *} $$

De lo anterior, las simetrías ahora también deberían ser obvias. (Observe las constantes y sus posiciones). La diagonal principal tiene valores únicos, pero el resto tiene valores que aparecen dos veces en posiciones simétricas que se notan fácilmente.

Pero no necesita la primera ecuación, ya que ya conoce el valor de \ $ V_ {12} \ $. Así que todo se reduce a solo las dos ecuaciones inferiores convertidas a la forma de matriz:

$$ \ begin {align *} V_3 \ cdot \ frac {1} {R_ {13} \ vert \ vert R_ {23} \ vert \ vert R_ {34}} + V_4 \ cdot \ frac {-1} {R_ {34}} & = V_ {12} \ cdot \ frac {1} {R_ {13} \ vert \ vert R_ {23}} \\ \\ V_3 \ cdot \ frac {-1} {R_ {34}} + V_4 \ cdot \ frac {1} {R_ {24} \ vert \ vert R_ {34} \ vert \ vert R_ {46}} & = V_ {12} \ cdot \ frac {1} {R_ {24}} \ end {align *} $$

Lo anterior resuelve en su caso como \ $ V_3 = 9 \ frac {1} {6} \: \ textrm {V} \ $ y \ $ V_4 = 5 \ frac {5} {6} \: \ textrm {V} \ $.

Resuelto para los voltajes de los nodos, puede calcular la corriente simplemente examinando todos los bordes que salen de su nodo 0 (si lo elige de la forma en que lo hice). Sólo hay un borde, a saber, \ $ R_ {46} \ $, por lo que la resistencia total aquí es simplemente \ $ R_ {total} = \ frac {V_ {total}} {I_ {total}} = \ frac {V_ {12}} {\ left [\ frac {V_4} { R_ {46}} \ right]} = R_ {46} \ cdot \ frac {V_ {12}} {V_4} \ $.

Eso se resuelve en \ $ 1 \ frac {5} {7} \: \ Omega \ $.

Debería poder generalizar lo anterior, ya que casi ya es casi automático.

    
respondido por el jonk
1

Creo que hay una manera más sistemática de resolver circuitos, por ejemplo, podría formalizar una forma de escribir la lista de redes de su circuito y luego implementar [por ejemplo] el MNA para resolver todo el circuito por usted, y luego puede obtener la resistencia equivalente del circuito o cualquier otro parámetro de interés. He encontrado una biblioteca de python llamada ahkab que implementa el algoritmo de análisis nodal modificado. en caso de que quiera implementarlo, puede consultar esto

He escrito un pequeño script que lee la lista de redes de estos nodos de circuitos hexagonales y hago el cálculo de la resistencia equivalente.

El formato de la lista de redes se ve así: [puedes crear tu propio formato]

v 1 6 10

1 1 3

0 1 2

1 2 3

1 2 4

2 3 4

1 4 6

end

la primera línea indica que la fuente de voltaje está conectada entre el nodo 1 y 6 mientras que todas las otras líneas indican el valor de las resistencias y dónde están conectadas a <Resistor value> <Node1> <Node2> y end para terminar de leer la net-list

Script en python 3

import ahkab
ckt=ahkab.Circuit("Math_Max circuit")
nodes=[]
gnd=0
rCount=0
def node_replace(a,b):
    #A function for replacing 0 resistive path between nodes        
    for i in range(len(nodes)):
        if(nodes[i][1]==a):
            nodes[i][1]=b
        if(nodes[i][2]==a):
            nodes[i][2]=b

while(True):
    nlst=input().split()
    if(nlst[0]=='end'): break
    if(nlst[0]=='v'):
        gnd=int(nlst[2])
        ckt.add_vsource(nlst[0],nlst[1],ckt.gnd,dc_value=int(nlst[3]))
    else:
        nodes.append([int(nlst[0]),nlst[1],nlst[2]])

for i in range(len(nodes)):
    if(nodes[i][0]==0):
        node_replace(nodes[i][2],nodes[i][1])

for i in range(len(nodes)):
    if(nodes[i][0]!=0):
        gndNode=nodes[i][2]
        if(int(nodes[i][2])==gnd):
            gndNode=ckt.gnd
        ckt.add_resistor('r'+str(rCount),nodes[i][1],gndNode,value=nodes[i][0])
        rCount=rCount+1

results=ahkab.run(ckt, ahkab.new_op())['op']
print("TOTAL CURRENT: ",results['I(V)'][0][0])
print("Equivalent resistance: ",10/abs(results['I(V)'][0][0]))

Este fue el resultado

El código funciona al evaluar la corriente total usando el algoritmo MNA y luego dividir el source voltage / total current para obtener la resistencia equivalente.

    
respondido por el Elbehery

Lea otras preguntas en las etiquetas