Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c692b1d
update the dynamic load models for 3phase
qhuang-pnl Apr 12, 2017
8c1d4ab
start to work on parser
thuang Apr 12, 2017
1106acf
working on the feeder parser
thuang Apr 12, 2017
83af128
completed line code parser
thuang Apr 14, 2017
6e942f8
Start working on the line parser
thuang Apr 14, 2017
b236fe2
completed line code parser
thuang Apr 21, 2017
93c3bdc
continue to work on data parser
thuang Apr 21, 2017
8aacdbb
opendss line data parser
thuang Apr 22, 2017
d25a988
work on transformer data parser
thuang Apr 23, 2017
ea15164
completed the coding part of load data parser, need to test it
thuang Apr 23, 2017
46b7455
a "logic complete" version of opendss data parser--only the master
thuang Apr 29, 2017
543cd0d
Completed the OpenDSS data parser code. Need further testing.
thuang Apr 30, 2017
1569028
add opendss data parser
thuang May 1, 2017
875bee4
separate 1-phase and 3-phase loads
thuang May 1, 2017
d37d808
refactor 3phase load and update the load parser
thuang May 1, 2017
ae8dcab
completed the first testing of the data adapter before data conversion
thuang May 1, 2017
50986d7
calculated base voltages
thuang May 1, 2017
6212906
updated the load models and completed network data conversion
thuang May 1, 2017
e9889ed
can run PF with IEEE123 case now, but still need to add capacitors
thuang May 2, 2017
c3843e0
capacitor data parser + passed first PF test of IEEE 123 test case
thuang May 2, 2017
31385c3
Test IEEE123 bus dynamic simulation, still some issues remained
thuang May 4, 2017
8e44e37
add single-phase load list to avoid use of contributeLoadList; pass test
thuang May 4, 2017
6563383
update the single-phase AC motor implementation
thuang May 7, 2017
7fe517b
fixed the bug with load3Phase equivCurInj calculation
thuang May 11, 2017
f5ff847
update IEEE test cases
thuang May 12, 2017
05fdd47
data adapter refactoring
thuang Jun 6, 2017
f409c65
add a new commercial test feeder
thuang Jun 6, 2017
3b8123c
update the GC test feeder with building loads
thuang Jun 21, 2017
e3339ae
added 3phase motor protections to GC feeder
thuang Jun 21, 2017
af48d89
fixed the motor id naming bug
thuang Jun 21, 2017
52145ff
Load3Phase initial 3phase total load
thuang Jun 21, 2017
382f974
fixed a bug related to using adapter to create 3p dyn loads
thuang Jun 26, 2017
2d607f5
fixed bugs in sumofLoad when creating motor loads in GC feeder test case
thuang Jun 26, 2017
abe1d4f
added Vminpu to load models for power flow under low voltage
thuang Oct 6, 2017
044587b
fixed single-phase AC motor bugs and updated 3-phase dyn models
thuang Oct 15, 2017
6ebf255
update PF algo for swing bus voltage init; AC motor load change
qhuang-pnl Apr 26, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions ipss.plugin.3phase/.classpath
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="/ipss.core_EMF"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/apache/commons-logging.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/apache/commons-math3-3.5.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.common"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.common.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.change.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.xmi.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.numeric"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.plugin.base"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.plugin.core"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.dstab_EMF"/>
<classpathentry combineaccessrules="false" kind="src" path="/ieee.odm_pss"/>
<classpathentry combineaccessrules="false" kind="src" path="/ieee.odm.schema"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.simu_EMF"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/cache/hazelcast-3.6.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="/ipss.core_EMF"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/apache/commons-logging.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.common"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.common.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.change.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.ecore.xmi.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/eclipse/org.eclipse.emf.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.numeric"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.plugin.base"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.plugin.core"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.dstab_EMF"/>
<classpathentry combineaccessrules="false" kind="src" path="/ieee.odm_pss"/>
<classpathentry combineaccessrules="false" kind="src" path="/ieee.odm.schema"/>
<classpathentry combineaccessrules="false" kind="src" path="/ipss.simu_EMF"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/cache/hazelcast-3.8.jar"/>
<classpathentry kind="lib" path="/ipss.lib.3rdPty/lib/apache/commons-math3-3.6.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
4 changes: 4 additions & 0 deletions ipss.plugin.3phase/.settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
eclipse.preferences.version=1
encoding//src/org/ipss/threePhase/dynamic/model/impl/SinglePhaseACMotor.java=UTF-8
encoding//src/org/ipss/threePhase/test/IEEE_13BusFeeder_Test.java=UTF-8
encoding//src/org/ipss/threePhase/test/ThreeBus_3Phase_Test.java=UTF-8
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
import org.interpss.numeric.datatype.Complex3x3;

import com.interpss.core.acsc.AcscBranch;
import com.interpss.core.acsc.PhaseCode;
import com.interpss.dstab.DStabBranch;

public interface Branch3Phase extends DStabBranch{

//TODO add phase info
// phase code is currently used in the transformer; for lines, Zabc reflects the connection phases
public void setPhaseCode(PhaseCode phCode);

public PhaseCode getPhaseCode();

public void setZabc(Complex3x3 Zabc);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public interface Bus3Phase extends DStabBus {

public List<DynLoadModel3Phase> getThreePhaseDynLoadList();

public List<Load1Phase> getSinglePhaseLoadList();

public List<Load3Phase> getThreePhaseLoadList();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package org.ipss.threePhase.basic;

import org.interpss.numeric.datatype.Complex3x3;

public class LineConfiguration {

enum InputType { Physical, ZYMatrix, LineCode}
enum LengthUnit {Feet, Mile, Meter, kM}


private String id = "";
private int nphases = 1;
private int baseFreq = 60;
private InputType type =null;

//TODO units

private Complex3x3 zMtx = null;

private Complex3x3 shuntYMtx = null;

//physical parameters


public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public int getNphases() {
return nphases;
}

public void setNphases(int nphases) {
this.nphases = nphases;
}

public int getBaseFreq() {
return baseFreq;
}

public void setBaseFreq(int baseFreq) {
this.baseFreq = baseFreq;
}

public InputType getType() {
return type;
}

public void setType(InputType type) {
this.type = type;
}

public Complex3x3 getZ3x3Matrix() {
return zMtx;
}

public void setZ3x3Matrix(Complex3x3 zMtx) {
this.zMtx = zMtx;
}

public Complex3x3 getShuntY3x3Matrix() {
return shuntYMtx;
}

public void setShuntY3x3Matrix(Complex3x3 shuntYMtx) {
this.shuntYMtx = shuntYMtx;
}


public boolean calculateZYMatrixWithPhyiscalConfiguration(){
return true;
}

public String toString(){
StringBuffer sb = new StringBuffer();
sb.append("Line Configuration:\n");
sb.append("Id: "+id+"\n");
sb.append("InputType: "+type+"\n");
sb.append("nphases: "+nphases+"\n");
sb.append("baseFreq: "+baseFreq+"\n");
sb.append("zmatrix: "+this.zMtx.toString()+"\n");
sb.append("ymatrix: "+ (this.shuntYMtx==null? "":this.shuntYMtx.toString())+"\n");

return sb.toString();
}




}
84 changes: 84 additions & 0 deletions ipss.plugin.3phase/src/org/ipss/threePhase/basic/Load1Phase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package org.ipss.threePhase.basic;

import org.interpss.numeric.datatype.Complex3x1;
import org.interpss.numeric.datatype.Complex3x3;

import com.interpss.core.aclf.AclfLoad;
import com.interpss.core.acsc.PhaseCode;

public interface Load1Phase extends AclfLoad {

public void setPhaseCode (PhaseCode phCode);

public PhaseCode getPhaseCode ();

/**
* The Norton equivalent admittance. Used in power flow and short circuit analysis.
* @return
*/
public Complex3x3 getEquivYabc();

/**
* calculate the equivalent current injection of the load, mainly used in power flow solution.
* @param vabc
* @return
*/
public Complex3x1 getEquivCurrInj(Complex3x1 vabc);

/**
* set the load model type, such as constant PQ, constant current, constant impedance, etc.
* @param loadModelType
*/
// public void setLoadModelType(DistLoadType loadModelType);
//
// /**
// * get the load model type, such as constant PQ, constant current, constant impedance, etc.
// * @return
// */
// public DistLoadType getLoadModelType();

/**
* set the load connection type. The connection type could be single phase wye, single phase delta, three phase wye and three phase delta.
* @param loadConnectType
*/
public void setLoadConnectionType(LoadConnectionType loadConnectType);

/**
* get the load connection type. The connection type could be single phase wye, single phase delta, three phase wye and three phase delta.
* @return
*/
public LoadConnectionType getLoadConnectionType();

/**
* set the nominal KV level of the load
* @param ratedkV
*/
public void setNominalKV(double ratedkV);

/**
* return the nominal KV level of the load
* @return
*/
public double getNominalKV();

/**
* Set the minimum voltage in pu, above which the original input load model (e.g., constant power) can be maintained,
* Once the terminal voltage is lower than this value, the load will be represented by constant impedance
*/
public void setVminpu(double newVminpu);

/**
* Set the maximum voltage in pu to maintain the original input load model (e.g., constant power)
*/
public void setVmaxpu(double newVmaxpu);

/**
* get the minimum voltage in pu to maintain the original input load model (e.g., constant power)
* If the voltage is above this value, the original input load model (e.g., constant power) can be maintained.
* Once the terminal voltage is lower than this value, the load will be represented by constant impedance
*/
public double getVminpu();

public double getVmaxpu();

}
31 changes: 15 additions & 16 deletions ipss.plugin.3phase/src/org/ipss/threePhase/basic/Load3Phase.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import com.interpss.core.aclf.AclfLoad;
import com.interpss.core.acsc.PhaseCode;

public interface Load3Phase extends AclfLoad {
public interface Load3Phase extends Load1Phase {


/**
* calcuate the Yabc from Y120
Expand All @@ -20,37 +21,35 @@ public interface Load3Phase extends AclfLoad {
* get three phase load equivalent 3x3 admittance matrix in pu
* @return
*/
public Complex3x3 getEquivYabc();

/**
* get three phase loads in pu
* @return
*/
public Complex3x1 get3PhaseLoad();
public Complex3x1 getInit3PhaseLoad();

public Complex getInit3PhaseTotalLoad();

public Complex3x1 get3PhaseLoad(Complex3x1 vabc);


/**
*
* set three-phase load
* @param threePhaseLoad three phase loads in pu
* @return
*/
public void set3PhaseLoad(Complex3x1 threePhaseLoad);


/**
*
* get single-phase load
* @param phase
* @return
*/
public Complex getPhaseLoad(PhaseCode phase);

public void setPhaseLoad(Complex phaseLoad, PhaseCode phase);

/**
* calculate the equivalent current injection of the load, used in power flow solution
* @param vabc
* @return
*
* @param phaseLoad
* @param phase
*/
public Complex3x1 getEquivCurrInj(Complex3x1 vabc);
public void setPhaseLoad(Complex phaseLoad, PhaseCode phase);


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.ipss.threePhase.basic;

public enum LoadConnectionType {

Single_Phase_Wye, Single_Phase_Delta,Three_Phase_Wye, Three_Phase_Delta;

}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
import org.ipss.threePhase.basic.Branch3Phase;
import org.ipss.threePhase.basic.Transformer3Phase;

import com.interpss.core.acsc.PhaseCode;
import com.interpss.dstab.impl.DStabBranchImpl;

public class Branch3PhaseImpl extends DStabBranchImpl implements Branch3Phase{

private PhaseCode phaseCode = PhaseCode.ABC;
private Complex3x3 Zabc =null;
private Complex3x3 Yabc =null;
private Complex3x3 fromShuntYabc =null;
Expand Down Expand Up @@ -95,7 +97,7 @@ public Complex3x3 getBranchYabc() {
}

if(dim == 0){
throw new Error(" The branch Yii diagonal elements are zero! # "+this.getId());
throw new Error(" The branch Yii diagonal elements are all zero! # "+this.getId());
}
else if(dim ==1){
if( hasPhaseA) {
Expand Down Expand Up @@ -391,4 +393,16 @@ public void setCurrentAbcAtToSide(Complex3x1 IabcToBus) {

}

@Override
public void setPhaseCode(PhaseCode phCode) {
this.phaseCode = phCode;

}

@Override
public PhaseCode getPhaseCode() {

return this.phaseCode;
}

}
Loading