@Test public void dclf1() throws Exception { IpssCorePlugin.init(); // IpssCorePlugin.setSparseEqnSolver(SolverType.Native); ODMLogger.getLogger().setLevel(Level.WARNING); AclfNetwork net = IpssAdapter.importAclfNet("testData/psse/v30/Mod_SixBus_2WPsXfr.raw") .format(IpssAdapter.FileFormat.PSSE) .psseVersion(PsseVersion.PSSE_30) .xfrBranchModel(ODMAclfNetMapper.XfrBranchModel.PSSE) .load() .getAclfNet(); // System.out.println(net.net2String()); /* net.accept(CoreObjectFactory.createBusNoArrangeVisitor()); for (Bus b : net.getBusList()) System.out.println(b.getId() + ": " + b.getSortNumber()); System.out.println(net.formB1Matrix()); */ DclfAlgorithm algo = DclfObjectFactory.createDclfAlgorithm(net); algo.calculateDclf(); System.out.println(DclfOutFunc.dclfResults(algo, false)); assertTrue(Math.abs(algo.getBusPower(net.getBus("Bus1")) - 3.0723) < 0.0001); algo.destroy(); }
@Test public void aclf1() throws Exception { IpssCorePlugin.init(); // IpssCorePlugin.setSparseEqnSolver(SolverType.Native); ODMLogger.getLogger().setLevel(Level.WARNING); AclfNetwork net = IpssAdapter.importAclfNet("testData/psse/v30/Mod_SixBus_2WPsXfr.raw") .setFormat(IpssAdapter.FileFormat.PSSE) .setPsseVersion(PsseVersion.PSSE_30) .xfrBranchModel(ODMAclfNetMapper.XfrBranchModel.PSSE) .load(true, "output/odm.xml") .getAclfNet(); // System.out.println(net.net2String()); net.accept(CoreObjectFactory.createLfAlgoVisitor()); assertTrue(net.isLfConverged()); System.out.println(CorePluginFunction.AclfResultBusStyle.f(net)); AclfSwingBus swing = net.getBus("Bus1").toSwingBus(); Complex p = swing.getGenResults(UnitType.PU); assertTrue(Math.abs(p.getReal() - 3.2955) < 0.0001); assertTrue(Math.abs(p.getImaginary() - 0.9571) < 0.0001); }
@Test public void dclf() throws Exception { IpssCorePlugin.init(); // IpssCorePlugin.setSparseEqnSolver(SolverType.Native); ODMLogger.getLogger().setLevel(Level.WARNING); AclfNetwork net = IpssAdapter.importAclfNet("testData/psse/v30/Mod_SixBus_2WPsXfr.raw") .format(IpssAdapter.FileFormat.PSSE) .psseVersion(PsseVersion.PSSE_30) .xfrBranchModel(ODMAclfNetMapper.XfrBranchModel.InterPSS) .load() .getAclfNet(); // System.out.println(net.net2String()); /* net.accept(CoreObjectFactory.createBusNoArrangeVisitor()); for (Bus b : net.getBusList()) System.out.println(b.getId() + ": " + b.getSortNumber()); System.out.println(net.formB1Matrix()); */ // because of InterPSS xfrBranchModel, we need to convert to the PSS/E model for (Branch b : net.getBranchList()) { AclfBranch branch = (AclfBranch) b; if (branch.isXfr() || branch.isPSXfr()) { if (branch.getToTurnRatio() != 1.0) { branch.setZ(branch.getZ().multiply(branch.getToTurnRatio() * branch.getToTurnRatio())); branch.setFromTurnRatio(branch.getFromTurnRatio() / branch.getToTurnRatio()); branch.setToTurnRatio(1.0); if (branch.isPSXfr()) { branch.setFromPSXfrAngle(branch.getFromPSXfrAngle() - branch.getToPSXfrAngle()); branch.setToPSXfrAngle(0.0); } } } } DclfAlgorithm algo = DclfObjectFactory.createDclfAlgorithm(net); algo.calculateDclf(); System.out.println(DclfOutFunc.dclfResults(algo, false)); assertTrue(Math.abs(algo.getBusPower(net.getBus("Bus1")) - 3.0723) < 0.0001); algo.destroy(); }