Commit da172559 by xuchengsi

可开放容量分析算法

parent ebc12709
apply plugin: 'idea'
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = 'AvailCapMain'
buildscript {
ext.kotlin_version = '1.1.51'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
repositories {
mavenCentral()
}
dependencies {
compile('cn.zju:alg:2.1.1-rc32') {
transitive = false
}
compile "org.jgrapht:jgrapht-core:1.0.0"
compile "org.xerial:sqlite-jdbc:3.8.11.2"
// https://mvnrepository.com/artifact/com.alibaba/fastjson
compile "com.alibaba:fastjson:1.2.54"
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
// compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
// testCompile group: 'junit', name: 'junit', version: '4.12'
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
jar {
from {
//添加依懒到打包文件
//configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtime.collect{zipTree(it)}
}
manifest {
attributes 'Main-Class': mainClassName
}
}
public interface CimConstants {
//measurement value sources:
public static final String MEASURE_VALUE_SOURCE_SCADA = "SCADA";
//the following is not used usually
public static final String MEASURE_VALUE_SOURCE_PMU = "PMU";
public static final String MEASURE_VALUE_SOURCE_SE = "SE";//todo:
}
import java.sql.Timestamp;
public class LineCurrentData {
Timestamp data;
double current;
public void setData(Timestamp data) {
this.data = data;
}
public Timestamp getData() {
return data;
}
public void setCurrent(double current) {
this.current = current;
}
public double getCurrent() {
return current;
}
}
public class LineParamData {
String devName;
String pole1;
String pole2;
double ratedI;
int type; // 1为JK,2为LGJ
public void setDevName(String devName) {
this.devName = devName;
}
public String getDevName() {
return devName;
}
public void setPole1(String pole1) {
this.pole1 = pole1;
}
public String getPole1() {
return pole1;
}
public void setPole2(String pole2) {
this.pole2 = pole2;
}
public String getPole2() {
return pole2;
}
public void setRatedI(double ratedI) {
this.ratedI = ratedI;
}
public double getRatedI() {
return ratedI;
}
public void setType(int type) {
this.type = type;
}
public int getType() {
return type;
}
}
public class LinePassRate {
String feederName;
String substation;
double[] passRate;
public String getFeederName() {
return feederName;
}
public void setFeederName(String feederName) {
this.feederName = feederName;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public double[] getPassRate() {
return passRate;
}
public void setPassRate(double[] passRate) {
this.passRate = passRate;
}
}
import java.util.ArrayList;
import java.util.List;
public class LoadPos {
double[] newLoad; // 接入的负荷
double[] newLoadI; // 接入负荷的电流
boolean[] canIn = new boolean[4];
double[][] swOrgLoad = new double[4][]; // 接入点开关原始负荷
double[][] swNewLoad = new double[4][96]; // 接入后开关电流
double[] swRateI = new double[4]; // 接入点开关限额
double[][] tfOrgLoad = new double[4][]; // 接入点公变原始负荷
double[][] tfNewLoad = new double[4][96]; // 接入后公变负荷
double[] tfRateCap = new double[4]; // 接入点公变额定容量
List<Integer> seasons = new ArrayList<>(4); // 季节
List<String> optEdges = new ArrayList<>(4); // 最优接入位置智能开关的mRID
List<String> optEdgeNames = new ArrayList<>(4); // 最优接入位置智能开关的名称
List<Double> seasonAvgCaps = new ArrayList<>(4); // 负荷接入后,线路剩余可接入容量(电流)的日平均值
List<Double> seasonMinCaps = new ArrayList<>(4); // 负荷接入后,线路剩余可接入容量(电流)的日最小值
List<Integer> seasons2 = new ArrayList<>(4);
List<String> optEdges2 = new ArrayList<>(4);
List<String> optEdgeNames2 = new ArrayList<>(4);
List<Double> seasonAvgCaps2 = new ArrayList<>(4);
List<Double> seasonMinCaps2 = new ArrayList<>(4);
String[] optTfs = new String[4]; // 最优接入位置公变的mRID
String[] optTfNames = new String[4]; // 最优接入位置公变的名称
String[] optPhase = new String[4]; // 公变接入相别
// season从0开始
public void calSwNewLoad(int season) {
for (int i = 0; i < 96; i++) {
swNewLoad[season][i] = newLoadI[i] + swOrgLoad[season][i];
}
}
public void calTfNewLoad(int season) {
for (int i = 0; i < 96; i++) {
tfNewLoad[season][i] = newLoad[i] + tfOrgLoad[season][i];
}
}
public void setSwOrgLoad(int season, double[] swOrgSeasonLoad) {
swOrgLoad[season] = swOrgSeasonLoad;
}
public void setSwNewLoad(int season, double[] swNewSeasonLoad) {
swNewLoad[season] = swNewSeasonLoad;
}
public void setTfOrgLoad(int season, double[] tfOrgSeasonLoad) {
tfOrgLoad[season] = tfOrgSeasonLoad;
}
public void setTfNewLoad(int season, double[] tfNewSeasonLoad) {
tfNewLoad[season] = tfNewSeasonLoad;
}
public void setOptTf(int season, String optTf) {
}
public double[] getNewLoad() {
return newLoad;
}
public void setNewLoad(double[] newLoad) {
this.newLoad = newLoad;
}
public double[] getNewLoadI() {
return newLoadI;
}
public void setNewLoadI(double[] newLoadI) {
this.newLoadI = newLoadI;
}
public boolean[] getCanIn() {
return canIn;
}
public void setCanIn(boolean[] canIn) {
this.canIn = canIn;
}
public double[][] getSwOrgLoad() {
return swOrgLoad;
}
public void setSwOrgLoad(double[][] swOrgLoad) {
this.swOrgLoad = swOrgLoad;
}
public double[][] getSwNewLoad() {
return swNewLoad;
}
public void setSwNewLoad(double[][] swNewLoad) {
this.swNewLoad = swNewLoad;
}
public double[] getSwRateI() {
return swRateI;
}
public void setSwRateI(double[] swRateI) {
this.swRateI = swRateI;
}
public double[][] getTfOrgLoad() {
return tfOrgLoad;
}
public void setTfOrgLoad(double[][] tfOrgLoad) {
this.tfOrgLoad = tfOrgLoad;
}
public double[][] getTfNewLoad() {
return tfNewLoad;
}
public void setTfNewLoad(double[][] tfNewLoad) {
this.tfNewLoad = tfNewLoad;
}
public double[] getTfRateCap() {
return tfRateCap;
}
public void setTfRateCap(double[] tfRateCap) {
this.tfRateCap = tfRateCap;
}
public void addLoadPos(int season, String optEdge, String optEdgeName, double seasonAvgCap, double seasonMinCap) {
this.seasons.add(season);
this.optEdges.add(optEdge);
this.optEdgeNames.add(optEdgeName);
this.seasonAvgCaps.add(seasonAvgCap);
this.seasonMinCaps.add(seasonMinCap);
}
public void addLoadPos2(int season, String optEdge, String optEdgeName, double seasonAvgCap, double seasonMinCap) {
this.seasons2.add(season);
this.optEdges2.add(optEdge);
this.optEdgeNames2.add(optEdgeName);
this.seasonAvgCaps2.add(seasonAvgCap);
this.seasonMinCaps2.add(seasonMinCap);
}
public List<Integer> getSeasons() {
return seasons;
}
public void setSeasons(List<Integer> seasons) {
this.seasons = seasons;
}
public List<String> getOptEdges() {
return optEdges;
}
public void setOptEdges(List<String> optEdges) {
this.optEdges = optEdges;
}
public List<String> getOptEdgeNames() {
return optEdgeNames;
}
public void setOptEdgeNames(List<String> optEdgeNames) {
this.optEdgeNames = optEdgeNames;
}
public List<Double> getSeasonAvgCaps() {
return seasonAvgCaps;
}
public void setSeasonAvgCaps(List<Double> seasonAvgCaps) {
this.seasonAvgCaps = seasonAvgCaps;
}
public List<Double> getSeasonMinCaps() {
return seasonMinCaps;
}
public void setSeasonMinCaps(List<Double> seasonMinCaps) {
this.seasonMinCaps = seasonMinCaps;
}
public List<Integer> getSeasons2() {
return seasons2;
}
public void setSeasons2(List<Integer> seasons2) {
this.seasons2 = seasons2;
}
public List<String> getOptEdges2() {
return optEdges2;
}
public void setOptEdges2(List<String> optEdges2) {
this.optEdges2 = optEdges2;
}
public List<String> getOptEdgeNames2() {
return optEdgeNames2;
}
public void setOptEdgeNames2(List<String> optEdgeNames2) {
this.optEdgeNames2 = optEdgeNames2;
}
public List<Double> getSeasonAvgCaps2() {
return seasonAvgCaps2;
}
public void setSeasonAvgCaps2(List<Double> seasonAvgCaps2) {
this.seasonAvgCaps2 = seasonAvgCaps2;
}
public List<Double> getSeasonMinCaps2() {
return seasonMinCaps2;
}
public void setSeasonMinCaps2(List<Double> seasonMinCaps2) {
this.seasonMinCaps2 = seasonMinCaps2;
}
public String[] getOptTfs() {
return optTfs;
}
public void setOptTfs(String[] optTfs) {
this.optTfs = optTfs;
}
public String[] getOptTfNames() {
return optTfNames;
}
public void setOptTfNames(String[] optTfNames) {
this.optTfNames = optTfNames;
}
public String[] getOptPhase() {
return optPhase;
}
public void setOptPhase(String[] optPhase) {
this.optPhase = optPhase;
}
}
public class LoadPosSeason {
int loadId;
String substation;
String feederName;
String canIn;
String tfName; // 最优接入位置公变的mRID
String tfMRID; // 最优接入位置公变的名称
String phase; // 公变接入相别
String time;
public int getLoadId() {
return loadId;
}
public void setLoadId(int loadId) {
this.loadId = loadId;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public String getFeederName() {
return feederName;
}
public void setFeederName(String feederName) {
this.feederName = feederName;
}
public String getCanIn() {
return canIn;
}
public void setCanIn(String canIn) {
this.canIn = canIn;
}
public String getTfName() {
return tfName;
}
public void setTfName(String tfName) {
this.tfName = tfName;
}
public String getTfMRID() {
return tfMRID;
}
public void setTfMRID(String tfMRID) {
this.tfMRID = tfMRID;
}
public String getPhase() {
return phase;
}
public void setPhase(String phase) {
this.phase = phase;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
public class LoadPosSw {
String canIn;
String swName;
String swMRID;
double[] newLoadI; // 接入的负荷电流
double[] swOrgLoad; // 接入点开关原始负荷
double[] swNewLoad; // 接入后开关电流
double[] swRateI; // 接入点开关限额
public String getCanIn() {
return canIn;
}
public void setCanIn(String canIn) {
this.canIn = canIn;
}
public String getSwName() {
return swName;
}
public void setSwName(String swName) {
this.swName = swName;
}
public String getSwMRID() {
return swMRID;
}
public void setSwMRID(String swMRID) {
this.swMRID = swMRID;
}
public double[] getNewLoadI() {
return newLoadI;
}
public void setNewLoadI(double[] newLoadI) {
this.newLoadI = newLoadI;
}
public double[] getSwOrgLoad() {
return swOrgLoad;
}
public void setSwOrgLoad(double[] swOrgLoad) {
this.swOrgLoad = swOrgLoad;
}
public double[] getSwNewLoad() {
return swNewLoad;
}
public void setSwNewLoad(double[] swNewLoad) {
this.swNewLoad = swNewLoad;
}
public double[] getSwRateI() {
return swRateI;
}
public void setSwRateI(double[] swRateI) {
this.swRateI = swRateI;
}
}
public class LoadPosTf {
String canIn;
String tfName; // 最优接入位置公变的mRID
String tfMRID; // 最优接入位置公变的名称
String phase; // 公变接入相别
double[] newLoad; // 接入的负荷
double[] tfOrgLoad; // 接入点公变原始负荷
double[] tfNewLoad; // 接入后公变负荷
double[] tfRateCap; // 接入点公变额定容量
public String getCanIn() {
return canIn;
}
public void setCanIn(String canIn) {
this.canIn = canIn;
}
public String getTfName() {
return tfName;
}
public void setTfName(String tfName) {
this.tfName = tfName;
}
public String getTfMRID() {
return tfMRID;
}
public void setTfMRID(String tfMRID) {
this.tfMRID = tfMRID;
}
public String getPhase() {
return phase;
}
public void setPhase(String phase) {
this.phase = phase;
}
public double[] getNewLoad() {
return newLoad;
}
public void setNewLoad(double[] newLoad) {
this.newLoad = newLoad;
}
public double[] getTfOrgLoad() {
return tfOrgLoad;
}
public void setTfOrgLoad(double[] tfOrgLoad) {
this.tfOrgLoad = tfOrgLoad;
}
public double[] getTfNewLoad() {
return tfNewLoad;
}
public void setTfNewLoad(double[] tfNewLoad) {
this.tfNewLoad = tfNewLoad;
}
public double[] getTfRateCap() {
return tfRateCap;
}
public void setTfRateCap(double[] tfRateCap) {
this.tfRateCap = tfRateCap;
}
}
public class MaxMinAvailCap {
String feederName;
double availCap;
}
import java.sql.Timestamp;
public class SwitchData {
String devName;
String mRID;
Timestamp data;
double Ia;
double Ib;
double Ic;
public void setDevName(String devName) {
this.devName = devName;
}
public String getDevName() {
return devName;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getmRID() {
return mRID;
}
public void setData(Timestamp data) {
this.data = data;
}
public Timestamp getData() {
return data;
}
public void setIa(double ia) {
Ia = ia;
}
public double getIa() {
return Ia;
}
public void setIb(double ib) {
Ib = ib;
}
public double getIb() {
return Ib;
}
public void setIc(double ic) {
Ic = ic;
}
public double getIc() {
return Ic;
}
}
import java.sql.Timestamp;
public class TFData {
String devName;
String mRID;
Timestamp data;
double Ia;
double Ib;
double Ic;
double Ua;
double Ub;
double Uc;
public void setDevName(String devName) {
this.devName = devName;
}
public String getDevName() {
return devName;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getmRID() {
return mRID;
}
public void setData(Timestamp data) {
this.data = data;
}
public Timestamp getData() {
return data;
}
public void setIa(double ia) {
Ia = ia;
}
public double getIa() {
return Ia;
}
public void setIb(double ib) {
Ib = ib;
}
public double getIb() {
return Ib;
}
public void setIc(double ic) {
Ic = ic;
}
public double getIc() {
return Ic;
}
public void setUa(double ua) {
Ua = ua;
}
public double getUa() {
return Ua;
}
public void setUb(double ub) {
Ub = ub;
}
public double getUb() {
return Ub;
}
public void setUc(double uc) {
Uc = uc;
}
public double getUc() {
return Uc;
}
}
public class TfOverLoadRate {
String feederName;
String devName;
String mRID;
String lineName;
String lineMRID;
String substation;
double[] overLoadRate;
public String getFeederName() {
return feederName;
}
public void setFeederName(String feederName) {
this.feederName = feederName;
}
public String getDevName() {
return devName;
}
public void setDevName(String devName) {
this.devName = devName;
}
public String getmRID() {
return mRID;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
public String getLineMRID() {
return lineMRID;
}
public void setLineMRID(String lineMRID) {
this.lineMRID = lineMRID;
}
public double[] getOverLoadRate() {
return overLoadRate;
}
public void setOverLoadRate(double[] overLoadRate) {
this.overLoadRate = overLoadRate;
}
}
public class TfUb {
int loadState;
String devName;
String mRID;
String lineName;
String lineMRID;
String substation;
double maxLoad;
double ratedCap;
double ub;
double[] monthUb;
public int getLoadState() {
return loadState;
}
public void setLoadState(int loadState) {
this.loadState = loadState;
}
public String getDevName() {
return devName;
}
public void setDevName(String devName) {
this.devName = devName;
}
public String getmRID() {
return mRID;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
public String getLineMRID() {
return lineMRID;
}
public void setLineMRID(String lineMRID) {
this.lineMRID = lineMRID;
}
public double getMaxLoad() {
return maxLoad;
}
public void setMaxLoad(double maxLoad) {
this.maxLoad = maxLoad;
}
public double getRatedCap() {
return ratedCap;
}
public void setRatedCap(double ratedCap) {
this.ratedCap = ratedCap;
}
public double getUb() {
return ub;
}
public void setUb(double ub) {
this.ub = ub;
}
public double[] getMonthUb() {
return monthUb;
}
public void setMonthUb(double[] monthUb) {
this.monthUb = monthUb;
}
}
public class WarnLine {
int loadState;
String devName;
String mRID;
String substation;
String switchName;
String switchMRID;
double maxI;
double ratedCurrent;
double loadRate;
public int getLoadState() {
return loadState;
}
public void setLoadState(int loadState) {
this.loadState = loadState;
}
public String getDevName() {
return devName;
}
public void setDevName(String devName) {
this.devName = devName;
}
public String getmRID() {
return mRID;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public String getSwitchName() {
return switchName;
}
public void setSwitchName(String switchName) {
this.switchName = switchName;
}
public String getSwitchMRID() {
return switchMRID;
}
public void setSwitchMRID(String switchMRID) {
this.switchMRID = switchMRID;
}
public double getMaxI() {
return maxI;
}
public void setMaxI(double maxI) {
this.maxI = maxI;
}
public double getRatedCurrent() {
return ratedCurrent;
}
public void setRatedCurrent(double ratedCurrent) {
this.ratedCurrent = ratedCurrent;
}
public double getLoadRate() {
return loadRate;
}
public void setLoadRate(double loadRate) {
this.loadRate = loadRate;
}
}
public class WarnTf {
int loadState;
String devName;
String mRID;
String lineName;
String lineMRID;
String substation;
double maxLoad;
double ratedCap;
double loadRate;
public int getLoadState() {
return loadState;
}
public void setLoadState(int loadState) {
this.loadState = loadState;
}
public String getDevName() {
return devName;
}
public void setDevName(String devName) {
this.devName = devName;
}
public String getmRID() {
return mRID;
}
public void setmRID(String mRID) {
this.mRID = mRID;
}
public String getSubstation() {
return substation;
}
public void setSubstation(String substation) {
this.substation = substation;
}
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
public String getLineMRID() {
return lineMRID;
}
public void setLineMRID(String lineMRID) {
this.lineMRID = lineMRID;
}
public double getMaxLoad() {
return maxLoad;
}
public void setMaxLoad(double maxLoad) {
this.maxLoad = maxLoad;
}
public double getRatedCap() {
return ratedCap;
}
public void setRatedCap(double ratedCap) {
this.ratedCap = ratedCap;
}
public double getLoadRate() {
return loadRate;
}
public void setLoadRate(double loadRate) {
this.loadRate = loadRate;
}
}
import zju.measure.DiscreteInfo
import zju.measure.MeasureInfo
/**
* 提供量测数据的接口
* @date 17-1-8.
*/
interface MeasureProvider {
fun getAnalogValue(measId: String, dataSource: String): Double?
fun getDiscreteValue(measId: String, dataSource: String): Int?
fun getAnalogsOfEquip(equip: String, dataSource: String): List<MeasureInfo>
fun getDiscreteOfEquip(equip: String, dataSource: String): DiscreteInfo?
fun setResourceManager(resourceManager: PowerSystem)
fun getSwitchStatus(switchId: String, dataSource: String): Boolean
}
\ No newline at end of file
###=====================================================================================
### appenders
###=====================================================================================
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct log messages to daily file ###
log4j.appender.DailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyFile.File=c:/logs/aems.log
log4j.appender.DailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.DailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.DailyFile.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{2} %x %m%n
###=====================================================================================
### log level
###=====================================================================================
### the root
log4j.rootLogger=debug,stdout
#log4j.logger.org.mule=warn,stdout
log4j.logger.com.danga.MemCached.MemCachedClient=warn,stdout
log4j.logger.org.quartz=warn,stdout
#log4j.logger.zju.common.NewtonSolver=debug,stdout
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l - %msg%n"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
<File name="FileAppender" fileName="log/test.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>
</Configuration>
\ No newline at end of file
buildscript {
ext.kotlin_version = '1.1.51'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'kotlin'
group 'cn.zju'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven {
credentials { username 'admin'; password 'admin19881109' }
url "http://dsp.sgool.cn:8887/nexus/content/repositories/releases"
}
}
dependencies {
}
// 编码设置
tasks.withType(Javadoc) { options.encoding = "UTF-8" }
tasks.withType(JavaCompile) { options.encoding = "UTF-8" }
}
\ No newline at end of file
include 'availCap'
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论