Пример #1
0
def solveCircuit(componentList, GND):
    # flatten_list is necessary for lists that contain two-ports,
    # which will be introduced in exercises over the nex few weeks.
    # It has no effect on lists that contain just one-ports.
    # Do not remove the following line.
    componentList = flatten_list(componentList)
    equations = []
    for oneport_instance in componentList:
        equations.append(oneport_instance.equation)

    nodes = []
    for oneport_instance in componentList:
        nodes.append(oneport_instance.e1)
        nodes.append(oneport_instance.e2)

    nodes = list(set(nodes))
    nodes.remove(GND)

    parts = []
    for node in nodes:
        for oneport_instance in componentList:
            if node == oneport_instance.e1:
                parts.append((1,oneport_instance.i))
            elif node == oneport_instance.e2:
                parts.append((-1,oneport_instance.i))
        equations.append(parts)
        parts = []
    ground = [(1,GND)]
    equations.append(ground)
    return solveEquations(equations,verbose=False)
Пример #2
0
def solveCircuit(componentList, GND):
    # flatten_list is necessary for lists that contain two-ports.
    # It has no effect on lists that contain just one-ports.
    # Do not remove the following line.
    componentList = flatten_list(componentList)
    componentList = [comp for comp in componentList if comp != None]
    equations = []

    # one equation for each component
    for component in componentList:
            equations.append(component.equation)

    # one KCL equation for each node except ground
    equations.extend(create_kcls(componentList, GND))

    # one equation for ground
    equations.append([(1, GND)])

    return solveEquations(equations)