Beispiel #1
0
def Petrov_10var():
    chain = Classes.Chain(4, 6)
    i = 0
    while i < chain.Nodes_count:
        chain.Nodes.append(Classes.Node(i + 1))
        chain.Nodes[i].To = []
        chain.Nodes[i].From = []
        i += 1

    chain.Elements.append(Classes.I('I', 1, 0))
    chain.Elements.append(Classes.R('R', 5, 1))
    chain.Elements.append(Classes.R('R', 1, 2))
    chain.Elements.append(Classes.C('C', 2, 3))
    chain.Elements.append(Classes.C('C', 1, 4))
    chain.Elements.append(Classes.H('H', 1, 5))

    chain.Nodes[0].set_to(chain.Elements[0])
    chain.Elements[0].set_from(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[1])
    chain.Elements[1].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[3])
    chain.Elements[3].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[5])
    chain.Elements[5].set_to(chain.Nodes[0])
    chain.Nodes[1].set_from(chain.Elements[0])
    chain.Elements[0].set_to(chain.Nodes[1])
    chain.Nodes[1].set_to(chain.Elements[1])
    chain.Elements[1].set_from(chain.Nodes[1])
    chain.Nodes[1].set_to(chain.Elements[2])
    chain.Elements[2].set_from(chain.Nodes[1])
    chain.Nodes[2].set_from(chain.Elements[2])
    chain.Elements[2].set_to(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[3])
    chain.Elements[3].set_from(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[4])
    chain.Elements[4].set_from(chain.Nodes[2])
    chain.Nodes[3].set_from(chain.Elements[4])
    chain.Elements[4].set_to(chain.Nodes[3])
    chain.Nodes[3].set_to(chain.Elements[5])
    chain.Elements[5].set_from(chain.Nodes[3])

    return chain
Beispiel #2
0
def default_chain2():
    chain = Classes.Chain(3, 6)
    #chain.Nodes_count = 3
    i = 0
    while i < chain.Nodes_count:
        chain.Nodes.append(Classes.Node(i + 1))
        chain.Nodes[i].To = []
        chain.Nodes[i].From = []
        i += 1

    #chain.Elements_count = 6
    chain.Elements.append(0)
    chain.Elements[0] = Classes.V('V', 1, 0)
    chain.Elements.append(1)
    chain.Elements[1] = Classes.R('R', 2000, 1)
    chain.Elements.append(2)
    chain.Elements[2] = Classes.R('R', 1000, 2)
    chain.Elements.append(3)
    chain.Elements[3] = Classes.C('C', 0.000058, 3)
    chain.Elements.append(4)
    chain.Elements[4] = Classes.R('R', 2000, 4)
    chain.Elements.append(5)
    chain.Elements[5] = Classes.H('H', 20000, 5)

    chain.Nodes[0].set_to(chain.Elements[3])
    chain.Elements[3].set_from(chain.Nodes[0])

    chain.Nodes[0].set_from(chain.Elements[0])
    chain.Elements[0].set_to(chain.Nodes[0])
    chain.Elements[0].set_from(chain.Nodes[1])

    chain.Nodes[0].set_from(chain.Elements[1])
    chain.Elements[1].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[4])
    chain.Elements[4].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[5])
    chain.Elements[5].set_to(chain.Nodes[0])

    chain.Nodes[1].set_to(chain.Elements[0])

    chain.Nodes[1].set_to(chain.Elements[1])
    chain.Elements[1].set_from(chain.Nodes[1])
    chain.Nodes[1].set_from(chain.Elements[2])
    chain.Elements[2].set_to(chain.Nodes[1])
    chain.Nodes[2].set_to(chain.Elements[2])
    chain.Elements[2].set_from(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[4])
    chain.Elements[4].set_from(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[5])
    chain.Elements[5].set_from(chain.Nodes[2])
    chain.Nodes[2].set_from(chain.Elements[3])
    chain.Elements[3].set_to(chain.Nodes[2])
    return chain
Beispiel #3
0
def copy_chain(chain):
    n = chain.Nodes_count
    e = chain.Elements_count
    newchain = Classes.Chain(n, e)
    #print(id(newchain))
    #print(id(chain))
    #newchain.Nodes_count = chain.Nodes_count
    #print(id(newchain.Nodes_count))
    #print(id(chain.Nodes_count))
    i = 0
    while i < newchain.Nodes_count:
        newchain.Nodes.append(Classes.Node(i + 1))
        newchain.Nodes[i].To = []
        newchain.Nodes[i].From = []
        i += 1

    #newchain.Elements_count = copy.deepcopy(chain.Elements_count)
    for i in range(0, chain.Elements_count):
        if chain.Elements[i].Name == 'R':
            newchain.Elements.append(Classes.R('R', chain.Elements[i].Resistance, i))
        if chain.Elements[i].Name == 'V':
            newchain.Elements.append(Classes.V('V', chain.Elements[i].Voltage, i))
        if chain.Elements[i].Name == 'I':
            newchain.Elements.append(Classes.I('I', chain.Elements[i].Amperage, i))
        if chain.Elements[i].Name == 'C':
            newchain.Elements.append(Classes.C('C', chain.Elements[i].Capacity, i))
        if chain.Elements[i].Name == 'L':
            newchain.Elements.append(Classes.L('L', chain.Elements[i].Inductance, i))
        if chain.Elements[i].Name == 'H':
            newchain.Elements.append(Classes.H('H', chain.Elements[i].Resistance, i))
        #print(id(newchain.Elements[i]))
        #print(id(chain.Elements[i]))

    for i in range(0, chain.Nodes_count):
        for j in range(0, len(chain.Nodes[i].From)):
            f = chain.Nodes[i].From[j].Num
            newchain.Nodes[i].set_from(newchain.Elements[f])
        for j in range(0, len(chain.Nodes[i].To)):
            t = chain.Nodes[i].To[j].Num
            newchain.Nodes[i].set_to(newchain.Elements[t])

    for i in range(0, newchain.Elements_count):
        f = chain.Elements[i].From.Key
        t = chain.Elements[i].To.Key
        newchain.Elements[i].set_from(newchain.Nodes[f-1])
        newchain.Elements[i].set_to(newchain.Nodes[t-1])
    #print(newchain.Nodes)

    return newchain
Beispiel #4
0
def default_chain_abcd():
    chain = Classes.Chain()
    chain.Nodes_count = 4
    i = 0
    while i < chain.Nodes_count:
        chain.Nodes.append(Classes.Node(i + 1))
        chain.Nodes[i].To = []
        chain.Nodes[i].From = []
        i += 1

    chain.Elements_count = 6
    chain.Elements.append(Classes.V('V', 1))
    chain.Elements.append(Classes.R('R', 1000))
    chain.Elements.append(Classes.R('R', 2000))
    chain.Elements.append(Classes.R('R', 3000))
    chain.Elements.append(Classes.C('C', 0.000001))

    chain.Nodes[0].set_to(chain.Elements[2])
    chain.Elements[2].set_from(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[0])
    chain.Elements[0].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[3])
    chain.Elements[3].set_to(chain.Nodes[0])
    chain.Nodes[0].set_from(chain.Elements[4])
    chain.Elements[4].set_to(chain.Nodes[0])
    chain.Nodes[1].set_to(chain.Elements[0])
    chain.Elements[0].set_from(chain.Nodes[1])
    chain.Nodes[1].set_from(chain.Elements[1])
    chain.Elements[1].set_to(chain.Nodes[1])
    chain.Nodes[2].set_to(chain.Elements[1])
    chain.Elements[1].set_from(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[3])
    chain.Elements[3].set_from(chain.Nodes[2])
    chain.Nodes[2].set_to(chain.Elements[4])
    chain.Elements[4].set_from(chain.Nodes[2])
    chain.Nodes[2].set_from(chain.Elements[2])
    chain.Elements[2].set_to(chain.Nodes[2])

    #print(chain.Nodes[0].From)

    return chain
Beispiel #5
0
def create_element(typ):
    element = None
    if typ == 'V':
        n = input("Введите имя элемента: ")
        v = int(input("Введите напряжение элемента: "))
        element = Classes.V(n, v)
    elif typ == 'I':
        n = input("Введите имя элемента: ")
        a = int(input("Введите силу тока элемента: "))
        element = Classes.I(n, a)
    elif typ == 'R':
        n = input("Введите имя элемента: ")
        r = int(input("Введите сопротивление элемента: "))
        element = Classes.R(n, r)
    elif typ == 'C':
        n = input("Введите имя элемента: ")
        c = int(input("Введите ёмкость элемента: "))
        element = Classes.C(n, c)
    elif typ == 'L':
        n = input("Введите имя элемента: ")
        l = int(input("Введите индуктивность элемента: "))
        element = Classes.L(n, l)
    return element