示例#1
0
  private boolean runLoadflow(DistNetwork distNet, SimuContext simuCtx) {
    boolean converge = true;
    if (distNet.getLoadScheduleData().getSchedulePoints() == 0) {
      setNameplateAclfNetData(distNet);
      converge = runLoadflow_internal(distNet.getAcscNet(), simuCtx.getLoadflowAlgorithm());

      if (this.xmlCaseData.getAclfAlgorithm().isDisplaySummary()) {
        IOutputTextDialog dialog = UISpringFactory.getOutputTextDialog("Loadflow Analysis Info");
        dialog.display(distNet.getAcscNet());
      }
    } else {
      double loss = 0.0;
      for (int i = 0; i < distNet.getLoadScheduleData().getSchedulePoints(); i++) {
        distNet.setPointAclfNetData(i);
        if (!runLoadflow_internal(distNet.getAcscNet(), simuCtx.getLoadflowAlgorithm()))
          converge = false;

        for (Bus b : distNet.getBusList()) {
          DistBus distBus = (DistBus) b;
          DistBusAdapter aBusApt = (DistBusAdapter) distBus.getAdapter(DistBusAdapter.class);
          aBusApt.setPointVoltage(distBus.getAcscBus().getVoltage(), i);
        }
      }

      distNet.getLoadScheduleData().setTotalLossKwHr(loss);
      if (this.xmlCaseData.getAclfAlgorithm().isDisplaySummary()) {
        IOutputTextDialog dialog =
            UISpringFactory.getOutputTextDialog("Distribution Loadflow Analysis Info");
        dialog.display(distNet);
      }
    }
    return converge;
  }