예제 #1
0
 def test_constraint_currents_some_magnitudes(self) -> None:
     self._compare_array_dicts(
         acnsim.constraint_currents(
             self.sim, constraint_ids=["Primary A", "Secondary C"]),
         to_array_dict(self.edf_algo_true_analysis_dict[
             "constraint_currents_some_linear"]),
     )
예제 #2
0
 def test_constraint_currents_all_magnitudes(self) -> None:
     self._compare_array_dicts(
         acnsim.constraint_currents(self.sim),
         to_array_dict(
             self.
             edf_algo_true_analysis_dict["constraint_currents_all_linear"]),
     )
예제 #3
0
    def add_acn_load(self, acn_bus):
        acn_experiment = self.acn_experiments[acn_bus]
        if self.unbalanced:
            ev_load = acnsim.constraint_currents(acn_experiment.sim,
                                                 return_magnitudes=True)
            if acn_experiment.site == "jpl":
                for phase in "ABC":
                    ev_load[f"Secondary {phase}"] = (
                        ev_load[
                            f"Third/Fourth Floor Transformer Secondary {phase}"]
                        +
                        ev_load[f"First Floor Transformer Secondary {phase}"])

            voltages = {
                "Secondary A": 120,
                "Secondary B": 120 * np.exp(1j * np.deg2rad(-120)),
                "Secondary C": 120 * np.exp(1j * np.deg2rad(120)),
            }
            for phase in voltages:
                ev_load[phase] = voltages[phase] * np.conj(
                    ev_load[phase]) / 1000

            # horizon = ev_load["Secondary A"].shape[0]
            # baseline_load = (
            #     dss_ex.P[f"load_{acn_bus}"][:horizon]
            #     + 1j * dss_ex.Q[f"load_{acn_bus}"][:horizon]
            # ) / 3
            self.open_dss_experiment.add_load([f"load_{acn_bus}_a"],
                                              ev_load["Secondary A"],
                                              self.ev_load_offset)
            self.open_dss_experiment.add_load([f"load_{acn_bus}_b"],
                                              ev_load["Secondary B"],
                                              self.ev_load_offset)
            self.open_dss_experiment.add_load([f"load_{acn_bus}_c"],
                                              ev_load["Secondary C"],
                                              self.ev_load_offset)
        else:
            self.open_dss_experiment.add_load(
                [f"load_{acn_bus}"],
                acnsim.aggregate_power(acn_experiment.sim),
                self.ev_load_offset,
            )
예제 #4
0
 def test_constraint_currents_some_magnitudes(self):
     self.compare_array_dicts(
         acnsim.constraint_currents(self.sim, constraint_ids=['Primary A', 'Secondary C']),
         to_array_dict(
             self.edf_algo_true_analysis_dict['constraint_currents_some_linear']))