public DynamicEvent addBusFaultEvent( String faultBusId, SimpleFaultCode code, double startTime, double durationTime, Complex Zlg, Complex Zll) { // define an event, set the event id and event type. DynamicEvent event1 = DStabObjectFactory.createDEvent( "BusFault_" + code + "@" + faultBusId, "Bus Fault @" + faultBusId, DynamicEventType.BUS_FAULT, dstabNet); event1.setStartTimeSec(startTime); event1.setDurationSec(durationTime); // define a bus fault DStabBus faultBus = dstabNet.getDStabBus(faultBusId); AcscBusFault fault = CoreObjectFactory.createAcscBusFault("Bus Fault 3P@" + faultBusId, dstabNet); fault.setBus(faultBus); fault.setFaultCode(code); fault.setZLGFault(Zlg); fault.setZLLFault(Zll); // add this fault to the event, must be consist with event type definition before. event1.setBusFault(fault); return event1; }
@Test public void sampleTest() { AcscNetwork faultNet = CoreObjectFactory.createAcscNetwork(); SampleCases.load_SC_5BusSystem(faultNet); // System.out.println(faultNet.net2String()); assertTrue((faultNet.getBusList().size() == 5 && faultNet.getBranchList().size() == 5)); SimpleFaultAlgorithm algo = CoreObjectFactory.createSimpleFaultAlgorithm(faultNet); AcscBusFault fault = CoreObjectFactory.createAcscBusFault("2", algo); fault.setFaultCode(SimpleFaultCode.GROUND_3P); fault.setZLGFault(new Complex(0.0, 0.0)); fault.setZLLFault(new Complex(0.0, 0.0)); algo.calculateBusFault(fault); // System.out.println(fault.toString(faultBus.getBaseVoltage(), faultNet.getBaseKva())); /* fault amps(1): ( 0.0000 + j 32.57143) pu fault amps(2): ( 0.0000 + j 0.0000) pu fault amps(0): ( 0.0000 + j 0.0000) pu */ assertTrue( TestUtilFunc.compare( fault.getFaultResult().getSCCurrent_012(), 0.0, 0.0, 0.0, 32.57142857157701, 0.0, 0.0)); // System.out.println(AcscOut.faultResult2String(faultNet)); }
private static void setFaultInfo( AcscBaseFaultXmlType scFaultXml, AcscBusFault acscBusFault, double baseV, double baseKVA) { // set fault type AcscFaultCategoryEnumType faultCate = scFaultXml.getFaultCategory(); if (faultCate == AcscFaultCategoryEnumType.FAULT_3_PHASE) { acscBusFault.setFaultCode(SimpleFaultCode.GROUND_3P); } else if (faultCate == AcscFaultCategoryEnumType.LINE_TO_GROUND) { acscBusFault.setFaultCode(SimpleFaultCode.GROUND_LG); } else if (faultCate == AcscFaultCategoryEnumType.LINE_TO_LINE) { acscBusFault.setFaultCode(SimpleFaultCode.GROUND_LL); } else if (faultCate == AcscFaultCategoryEnumType.LINE_LINE_TO_GROUND) { acscBusFault.setFaultCode(SimpleFaultCode.GROUND_LLG); } // set zLG and zLL ZXmlType zLG = scFaultXml.getZLG(); ZXmlType zLL = scFaultXml.getZLL(); if (zLG != null) { acscBusFault.setZLGFault( new Complex(zLG.getRe(), zLG.getIm()), toZUnit.apply(zLG.getUnit()), baseV, baseKVA); } if (zLL != null) { acscBusFault.setZLLFault( new Complex(zLL.getRe(), zLL.getIm()), toZUnit.apply(zLL.getUnit()), baseV, baseKVA); } }