Beispiel #1
0
    def test_soc_model(self, case_name):
        test_case = os.path.join(current_dir, 'transmission_test_instances',
                                 'pglib-opf-master', '{}.m'.format(case_name))
        upper_bound_soln = upper_bounds[case_name]
        gap_soln = gaps[case_name]
        md = create_ModelData(test_case)
        nlp, scaled_md = create_psv_acopf_model(md)
        rel, scaled_md = create_soc_relaxation(md)

        opt = SolverFactory('ipopt')
        opt.options['linear_solver'] = 'mumps'

        res = opt.solve(nlp, tee=False)
        self.assertTrue(
            res.solver.termination_condition == TerminationCondition.optimal)
        ub = pe.value(nlp.obj)

        res = opt.solve(rel, tee=False)
        self.assertTrue(
            res.solver.termination_condition == TerminationCondition.optimal)
        lb = pe.value(rel.obj)

        gap = (ub - lb) / ub * 100
        comparison = math.isclose(ub, upper_bound_soln, rel_tol=1e-4)
        self.assertTrue(comparison)
        comparison = math.isclose(gap, gap_soln, abs_tol=1e-2)
        self.assertTrue(comparison)
Beispiel #2
0
    def _egret_model(md_dict):
        # the exact acopf model is hard-wired here:
        if not convex_relaxation:
            pyomod, mdict = eac.create_riv_acopf_model(
                md_dict, include_feasibility_slack=True)

        else:
            pyomod, mdict = eac_relax.create_soc_relaxation(
                md_dict,
                include_feasibility_slack=True,
                use_linear_relaxation=False)
        return pyomod, mdict
Beispiel #3
0
    def _egret_model(md_dict):
        # the exact acopf model is hard-wired here:
        md_dict.data['system']['load_mismatch_cost'] = load_mismatch_cost
        md_dict.data['system']['q_load_mismatch_cost'] = q_load_mismatch_cost
        if not convex_relaxation:
            pyomod, mdict = eac.create_riv_acopf_model(
                md_dict, include_feasibility_slack=True)

        else:
            pyomod, mdict = eac_relax.create_soc_relaxation(
                md_dict,
                include_feasibility_slack=True,
                use_linear_relaxation=False)
        return pyomod, mdict