def test_case118_m(self): case_mat = os.path.join('data', 'case118.mat') case_m = os.path.join('data', 'case118.m') if os.path.isfile(case_mat) and os.path.isfile(case_m): net_mat = pf.Parser(case_mat).parse(case_mat, num_periods=2) net_m = pf.Parser(case_m).parse(case_m, num_periods=2) pf.tests.utils.compare_networks(self, net_mat, net_m) else: raise unittest.SkipTest('no .m files')
def main(args=None): import pfnet parser = create_parser() args = parser.parse_args(args=args if args is not None else sys.argv[1:]) try: # Network net = pfnet.Parser(args.case).parse(args.case) if not args.quiet: net.show_components() if args.flatstart: # Flat start for bus in net.buses: bus.v_mag = 1 bus.v_ang = 0 # Method method = new_method(args.method) # Parameters method.set_parameters(strparams=dict(args.params)) if args.quiet: method.set_parameters({'quiet': True}) if args.profile: # Profile cProfile.runctx('method.solve(net)', globals(), locals(), '.prof') pstats.Stats('.prof').strip_dirs().sort_stats('cumulative').print_stats(20) else: # Solve try: method.solve(net) if not args.quiet: print(method.results['solver status']) except PFmethodError as e: if not args.quiet: print(e) # Update method.update_network(net) # Show network props if not args.quiet: net.show_properties() # Write if args.outfile: p = pfnet.Parser(args.outfile) p.write(net, args.outfile) finally: pass
#*****************************************************# # This file is part of GRIDOPT. # # # # Copyright (c) 2015, Tomas Tinoco De Rubira. # # # # GRIDOPT is released under the BSD 2-clause license. # #*****************************************************# import sys sys.path.append('.') import pfnet import gridopt net = pfnet.Parser(sys.argv[1]).parse(sys.argv[1]) print(('%.2e %.2e' % (net.bus_P_mis, net.bus_Q_mis))) method = gridopt.power_flow.new_method('ACPF') method.set_parameters({'quiet': True}) method.solve(net) results = method.get_results() print((results['solver status'])) method.update_network(net) print(('%.2e %.2e' % (net.bus_P_mis, net.bus_Q_mis)))
#***************************************************# # This file is part of PFNET. # # # # Copyright (c) 2015, Tomas Tinoco De Rubira. # # # # PFNET is released under the BSD 2-clause license. # #***************************************************# # Parsers - Overview import os import sys sys.path.append('.') import pfnet parser = pfnet.Parser(sys.argv[1]) network = parser.parse(sys.argv[1]) pfnet.ParserJSON().write(network, "new_network.json") os.remove("new_network.json")
#***************************************************# # This file is part of PFNET. # # # # Copyright (c) 2015, Tomas Tinoco De Rubira. # # # # PFNET is released under the BSD 2-clause license. # #***************************************************# # Power Networks - Multiperiod import sys sys.path.append('.') import pfnet import numpy as np net = pfnet.Parser(sys.argv[1]).parse(sys.argv[1], num_periods=5) print(net.num_periods) net.show_components() for load in net.loads: load.P = np.random.rand(5) print(net.loads[0].P) net.update_properties() print([net.bus_P_mis[t] for t in range(5)]) bus = net.buses[3]