package org.ieee.odm.pwd; import static org.junit.Assert.assertTrue; import org.ieee.odm.adapter.IODMAdapter; import org.ieee.odm.adapter.pwd.PowerWorldAdapter; import org.ieee.odm.model.aclf.AclfModelParser; import org.ieee.odm.schema.AdjustmentModeEnumType; import org.ieee.odm.schema.TapAdjustmentEnumType; import org.ieee.odm.schema.TapAdjustmentXmlType; import org.ieee.odm.schema.VoltageAdjustmentDataXmlType; import org.ieee.odm.schema.XfrBranchXmlType; import org.junit.Test; public class PWD_XfrControl_Test { /* * DATA (TRANSFORMER, [BusNum,BusNum:1,LineCircuit,LineXFType,XFAuto,XFRegMin,XFRegMax,XFRegTargetType, XFTapMin,XFTapMax,XFStep,XFTableNum,XFRegBus,OPFAreaXFPS,LineXfmr, TimeDomainSelectedXF,XFOPFRegEnforceLimits,XFConfiguration,XFFixedTap, XFFixedTap:1,XFNominalKV,XFNominalKV:1,XFMVABase,UseDelay,UseSecRegRange, MoveDelay,MoveDelay:1,MoveDelay:2,MoveDelay:3,MoveDelay:4,MoveDelay:5, MoveDelay:6,MoveDelay:7,StepsToMove,StepsToMove:1,XFRegMin:1,XFRegMax:1]) { 1 3 "1 " "LTC" "Yes" 0.93000 1.16000 "Middle of Reg Range" 0.87619 1.04781 0.00536 0 3 "NO " "YES" "NO " "NO " "Wye - Wye" 1.00000 1.05000 19.40000 230.00000 1000.00000 "NO " "NO " 30 30 15 15 15 15 10 10 1 1 0.51000 1.50000 <tapAdjustment offLine="false"> <adjustmentType>Voltage</adjustmentType> <tapLimit unit="PU" min="0.87619" max="1.04781"/> <tapAdjStepSize>0.00536</tapAdjStepSize> <tapAdjOnFromSide>true</tapAdjOnFromSide> <voltageAdjData desiredValue="1.045" mode="ValueAdjustment"> <desiredVoltageUnit>PU</desiredVoltageUnit> <adjVoltageBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="BusIDRefXmlType" idRef="Bus3"/> <adjBusLocation>ToBus</adjBusLocation> </voltageAdjData> </tapAdjustment> 5 6 "T9" "Mvar" "Yes" -250.00000 -175.00000 "Middle of Reg Range" -50 50 0.00682 0 0 "NO " "YES" "NO " "NO " "Wye - Wye" 1.00000 1.00000 230.00000 19.40000 900.00000 "NO " "NO " 30 30 15 15 15 15 10 10 1 1 51.00000 150.00000 <angleAdjustment offLine="false" desiredValue="-212.5" mode="ValueAdjustment"> <angleLimit unit="DEG" min="-50.0" max="50.0"/> <angleAdjOnFromSide>true</angleAdjOnFromSide> <desiredActivePowerUnit>MW</desiredActivePowerUnit> <desiredMeasuredOnFromSide>true</desiredMeasuredOnFromSide> </angleAdjustment> } */ @Test public void SixBus_2WPsXfrtest(){ IODMAdapter adapter = new PowerWorldAdapter(); assertTrue(adapter.parseInputFile("testdata/pwd/SixBus_2WPsXfr.aux")); AclfModelParser parser=(AclfModelParser) adapter.getModel(); parser.stdout(); //check network data assertTrue(parser.getNet().getBusList().getBus().size()==5); //Xfr Bus1_to_Bus3_cirId_1 XfrBranchXmlType xfr13=parser.getXfrBranch("Bus1", "Bus3", "1"); TapAdjustmentXmlType tapAdj13=xfr13.getTapAdjustment(); double err=0.001; //Tapmin=0.87619 tapMax=1.04781 assertTrue(Math.abs(tapAdj13.getTapLimit().getMax()-1.04781)<err); assertTrue(Math.abs(tapAdj13.getTapLimit().getMin()-0.87619)<err); //step SIZE 0.00536 assertTrue(Math.abs(tapAdj13.getTapAdjStepSize()-0.00536)<1.0E-5); assertTrue(tapAdj13.getAdjustmentType().equals(TapAdjustmentEnumType.VOLTAGE)); VoltageAdjustmentDataXmlType vAdjData=tapAdj13.getVoltageAdjData(); assertTrue(vAdjData.getMode()==AdjustmentModeEnumType.VALUE_ADJUSTMENT); assertTrue(Math.abs(vAdjData.getDesiredValue()-(0.93000+1.16000)/2)<err); //assertTrue(Math.abs(vAdjData.getRange().getMax()-1.16000)<err); } }