示例#1
0
文件: matpower.py 项目: Waqquas/pylon
    def _parse_file(self, file):
        """ Parses the given file-like object.
        """
        case = Case()
        file.seek(0)

        line = file.readline().split()
        if line[0] != "function":
            logger.error("Invalid data file header.")
            return case
        if line[1] != "mpc":
            self._is_struct = False
            base = ""
        else:
            base = "mpc."
        case.name = line[-1]

        for line in file:
            if line.startswith("%sbaseMVA" % base):
                case_data = line.rstrip(";\n").split()
                case.base_mva = float(case_data[-1])
            elif line.startswith("%sbus" % base):
                self._parse_buses(case, file)
            elif line.startswith("%sgencost" % base):
                self._parse_gencost(case, file)
            elif line.startswith("%sgen" % base):
                self._parse_generators(case, file)
            elif line.startswith("%sbranch" % base):
                self._parse_branches(case, file)

        return case
示例#2
0
    def test_pwl(self):
        """ Test UDOPF solver with pwl auction case.
        """
        case = Case.load(PWL_FILE)
        solver = UDOPF(case, dc=True)
        solution = solver.solve()
        generators = self.case.generators

        self.assertTrue(solution["converged"] == True)
        self.assertTrue(False not in [g.online for g in generators])
示例#3
0
    def _parse_file(self, file):
        """ Parses the given file-like object.
        """
        case = Case()
        file.seek(0)

        line = file.readline().split()
        if line[0] != "function":
            logger.error("Invalid data file header.")
            return case
        if line[1] != "mpc":
            self._is_struct = False
            base = ""
        else:
            base = "mpc."
        case.name = line[-1]

        for line in file:
            if line.startswith("%sbaseMVA" % base):
                case_data = line.rstrip(";\n").split()
                case.base_mva = float(case_data[-1])
            elif line.startswith("%sbus" % base):
                self._parse_buses(case, file)
            elif line.startswith("%sgencost" % base):
                self._parse_gencost(case, file)
            elif line.startswith("%sgen" % base):
                self._parse_generators(case, file)
            elif line.startswith("%sbranch" % base):
                self._parse_branches(case, file)

        return case
示例#4
0
    def test_pwl(self):
        """ Test UDOPF solver with pwl auction case.
        """
        case = Case.load(PWL_FILE)
        solver = UDOPF(case, dc=True)
        solution = solver.solve()
        generators = self.case.generators

        self.assertTrue(solution["converged"] == True)
        self.assertTrue(False not in [g.online for g in generators])
示例#5
0
            #            self.store.add((branch_node, NS_PYLON["from_bus"],
            #                            self.bus_map[branch.from_bus]))

            for attr in BRANCH_ATTRS:
                self.store.add((branch_node, NS_PYLON[attr],
                                Literal(getattr(branch, attr))))

        for generator in self.case.generators:
            g_node = BNode()
            self.store.add((g_node, RDF.type, NS_PYLON["Generator"]))
            for attr in GENERATOR_ATTRS:
                self.store.add(
                    (g_node, NS_PYLON[attr], Literal(getattr(generator,
                                                             attr))))

        file.write(self.store.serialize(format="pretty-xml", max_depth=3))


if __name__ == "__main__":
    import sys
    from pylon.case import Case, Bus, Branch
    from pylon.generator import Generator
    bus1 = Bus()
    bus2 = Bus()
    case = Case(buses=[bus1, bus2],
                branches=[Branch(bus1, bus2)],
                generators=[Generator(bus1)])
    RDFWriter(case).write(sys.stdout)

# EOF -------------------------------------------------------------------------
示例#6
0
 def setUp(self):
     """ The test runner will execute this method prior to each test.
     """
     case = self.case = Case.load(DATA_FILE)
     self.solver = UDOPF(case, dc=True)
示例#7
0
 def setUp(self):
     """ The test runner will execute this method prior to each test.
     """
     case = self.case = Case.load(DATA_FILE)
     self.solver = UDOPF(case, dc=True)