def dict_of_branch_powers(branches, buses): """ Create a dictionary of the branch powers (with subkeys pf, qf, pt, qt) """ branch_powers = dict() branch_powers['pf'] = dict() branch_powers['qf'] = dict() branch_powers['pt'] = dict() branch_powers['qt'] = dict() for branch_name, branch in branches.items(): from_bus = buses[branch['from_bus']] to_bus = buses[branch['to_bus']] pf = 0 qf = 0 pt = 0 qt = 0 if branch['in_service'] \ and from_bus['vm'] is not None and from_bus['va'] is not None \ and to_bus['vm'] is not None and to_bus['va'] is not None: # we have all the information we need y_matrix = tx_calc.calculate_y_matrix_from_branch(branch) vfr = tx_calc.calculate_vr_from_vm_va(from_bus['vm'], from_bus['va']) vfj = tx_calc.calculate_vj_from_vm_va(from_bus['vm'], from_bus['va']) vtr = tx_calc.calculate_vr_from_vm_va(to_bus['vm'], to_bus['va']) vtj = tx_calc.calculate_vj_from_vm_va(to_bus['vm'], to_bus['va']) ifr = tx_calc.calculate_ifr(vfr, vfj, vtr, vtj, y_matrix) ifj = tx_calc.calculate_ifj(vfr, vfj, vtr, vtj, y_matrix) itr = tx_calc.calculate_itr(vfr, vfj, vtr, vtj, y_matrix) itj = tx_calc.calculate_itj(vfr, vfj, vtr, vtj, y_matrix) pf = tx_calc.calculate_p(ifr, ifj, vfr, vfj) qf = tx_calc.calculate_q(ifr, ifj, vfr, vfj) pt = tx_calc.calculate_p(itr, itj, vtr, vtj) qt = tx_calc.calculate_q(itr, itj, vtr, vtj) branch_powers['pf'][branch_name] = pf branch_powers['qf'][branch_name] = qf branch_powers['pt'][branch_name] = pt branch_powers['qt'][branch_name] = qt return branch_powers
def dicts_of_vr_vj(buses): """ Create dictionaries of vr and vj values from the bus vm and va values """ # TODO: Change api to be vr_vj_dicts_from_vm_va(bus_vm, bus_va) vr = dict() vj = dict() for bus_name, bus in buses.items(): vr[bus_name] = tx_calc.calculate_vr_from_vm_va(bus['vm'], bus['va']) vj[bus_name] = tx_calc.calculate_vj_from_vm_va(bus['vm'], bus['va']) return vr, vj
def dict_of_branch_currents(branches, buses): """ Create a dictionary of the branch currents (with subkeys ifr, ifj, itr, itj) """ branch_currents = dict() branch_currents['ifr'] = dict() branch_currents['ifj'] = dict() branch_currents['itr'] = dict() branch_currents['itj'] = dict() for branch_name, branch in branches.items(): from_bus = buses[branch['from_bus']] to_bus = buses[branch['to_bus']] ifr = 0 ifj = 0 itr = 0 itj = 0 if branch['in_service'] \ and from_bus['vm'] is not None and from_bus['va'] is not None \ and to_bus['vm'] is not None and to_bus['va'] is not None: # we have all the information we need y_matrix = tx_calc.calculate_y_matrix_from_branch(branch) vfr = tx_calc.calculate_vr_from_vm_va(from_bus['vm'], from_bus['va']) vfj = tx_calc.calculate_vj_from_vm_va(from_bus['vm'], from_bus['va']) vtr = tx_calc.calculate_vr_from_vm_va(to_bus['vm'], to_bus['va']) vtj = tx_calc.calculate_vj_from_vm_va(to_bus['vm'], to_bus['va']) ifr = tx_calc.calculate_ifr(vfr, vfj, vtr, vtj, y_matrix) ifj = tx_calc.calculate_ifj(vfr, vfj, vtr, vtj, y_matrix) itr = tx_calc.calculate_itr(vfr, vfj, vtr, vtj, y_matrix) itj = tx_calc.calculate_itj(vfr, vfj, vtr, vtj, y_matrix) branch_currents['ifr'][branch_name] = ifr branch_currents['ifj'][branch_name] = ifj branch_currents['itr'][branch_name] = itr branch_currents['itj'][branch_name] = itj return branch_currents