Beispiel #1
0
    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')
Beispiel #2
0
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
Beispiel #3
0
#*****************************************************#
# 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)))
Beispiel #4
0
#***************************************************#
# 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")
Beispiel #5
0
#***************************************************#
# 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]