Skip to content

Commit

Permalink
Merge branch 'master' into svc_export
Browse files Browse the repository at this point in the history
  • Loading branch information
mathbagu committed Nov 22, 2016
2 parents 2674885 + 712b50b commit cbd5608
Show file tree
Hide file tree
Showing 55 changed files with 2,522 additions and 162 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,8 @@ public void visitDanglingLine(DanglingLine danglingLine) {
@Override
public void visitStaticVarCompensator(StaticVarCompensator staticVarCompensator) {
}

@Override
public void visitHvdcConverterStation(HvdcConverterStation<?> converterStation) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ public enum ConnectableType {
LOAD,
SHUNT_COMPENSATOR,
DANGLING_LINE,
STATIC_VAR_COMPENSATOR
STATIC_VAR_COMPENSATOR,
HVDC_CONVERTER_STATION
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,9 @@ public void visitDanglingLine(DanglingLine danglingLine) {
public void visitStaticVarCompensator(StaticVarCompensator staticVarCompensator) {
visitEquipment(staticVarCompensator);
}

@Override
public void visitHvdcConverterStation(HvdcConverterStation<?> converterStation) {
visitEquipment(converterStation);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* @see MinMaxReactiveLimits
* @see ReactiveCapabilityCurve
*/
public interface Generator extends SingleTerminalConnectable<Generator> {
public interface Generator extends SingleTerminalConnectable<Generator>, ReactiveLimitsHolder {

/**
* Get the energy source.
Expand Down Expand Up @@ -124,24 +124,4 @@ public interface Generator extends SingleTerminalConnectable<Generator> {
float getRatedS();

Generator setRatedS(float ratedS);

/**
* Get reactive limits of the generator.
*/
ReactiveLimits getReactiveLimits();

<RL extends ReactiveLimits> RL getReactiveLimits(Class<RL> type);

/**
* Get a builder to create and associate a new reactive capability curve
* to this generator.
*/
ReactiveCapabilityCurveAdder newReactiveCapabilityCurve();

/**
* Get a builder to create and associate minimum and maximum reactive limits
* to this generator.
*/
MinMaxReactiveLimitsAdder newMinMaxReactiveLimits();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* HVDC converter station. This is the base class for VSC and LCC.
* AC side of the converter is connected inside a substation.
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface HvdcConverterStation<T extends HvdcConverterStation<T>> extends SingleTerminalConnectable<T> {

/**
* HDVC type: VSC or LCC
*/
enum HvdcType {
VSC,
LCC
}

/**
* Get HVDC type.
* @return HVDC type
*/
HvdcType getHvdcType();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* A HVDC line connected to two HVDC converters on DC side.
* It has to be connected to the same <code>{@link HvdcConverterStation}</code> subclass.
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface HvdcLine extends Identifiable<HvdcLine> {

/**
* Converters mode used to known the sign of the active power of the HVDC line.
*/
enum ConvertersMode {
SIDE_1_RECTIFIER_SIDE_2_INVERTER,
SIDE_1_INVERTER_SIDE_2_RECTIFIER
}

/**
* Get the network this HVDC line belongs.
* @return the network this HVDC line belongs
*/
Network getNetwork();

/**
* Get converters mode.
* @return converters mode
*/
ConvertersMode getConvertersMode();

/**
* Change converters mode.
* @param mode converters mode
* @return the station itself to allow method chaining.
*/
HvdcLine setConvertersMode(ConvertersMode mode);

/**
* Get resistance (in &#937;) of the line.
* @return the resistance of the line
*/
float getR();

/**
* Set the resistance (in &#937;) of the line.
* @param r the resistance of the line
* @return the HVDC line itself to allow method chaining
*/
HvdcLine setR(float r);

/**
* Get the nominal voltage (in Kv).
* @return the nominal voltage.
*/
float getNominalV();

/**
* Set the nominal voltage.
* @param nominalV the nominal voltage.
* @return the HVDC line itself to allow method chaining
*/
HvdcLine setNominalV(float nominalV);

/**
* Get the active power setpoint target (in MW).
* @return the active power setpoint target
*/
float getActivePowerSetPoint();

/**
* Set the active power setpoint target (in MW).
* @param activePowerSetPoint the active power setpoint target
* @return the HVDC line itself to allow method chaining
*/
HvdcLine setActivePowerSetPoint(float activePowerSetPoint);

/**
* Get the maximum active power (in MW).
* @return the maximum active power
*/
float getMaxP();

/**
* Set the maximum active power (in MW).
* @param maxP the maximum active power
* @return the HVDC line itself to allow method chaining
*/
HvdcLine setMaxP(float maxP);

/**
* Get the HVDC converter station connected on side 1.
* @return the HVDC converter station connected on side 1
*/
HvdcConverterStation<?> getConverterStation1();

/**
* Get the HVDC converter station connected on side 2.
* @return the HVDC converter station connected on side 2
*/
HvdcConverterStation<?> getConverterStation2();

/**
* Remove the HVDC line
*/
void remove();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* HVDC line builder and adder.
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface HvdcLineAdder extends IdentifiableAdder<HvdcLineAdder> {

HvdcLineAdder setR(float r);

HvdcLineAdder setConvertersMode(HvdcLine.ConvertersMode convertersMode);

HvdcLineAdder setNominalV(float nominalV);

HvdcLineAdder setActivePowerSetPoint(float activePowerSetPoint);

HvdcLineAdder setMaxP(float maxP);

HvdcLineAdder setConverterStationId1(String converterStationId1);

HvdcLineAdder setConverterStationId2(String converterStationId2);

HvdcLine add();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* LCC converter station.
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface LccConverterStation extends HvdcConverterStation<LccConverterStation> {

/**
* Get power factor (ratio of the active power and the apparent power)
* @return the power factor.
*/
float getPowerFactor();

/**
* Set the power factor. Has to be greater that zero.
* @param powerFactor the new power factor
* @return the converter itself to allow method chaining
*/
LccConverterStation setPowerFactor(float powerFactor);

/**
* Get a builder to create a new filter.
* @return a builder to create a new filter
*/
LccFilterAdder newFilter();

/**
* Get filter count.
* @return filter count
*/
int getFilterCount();

/**
* Remove a filter based on its index.
* @param index index of the filter to remove
*/
void removeFilterAt(int index);

/**
* Get a filter based on its index.
* @param index index of the filter to get
* @return the filter corresponding to the index
*/
LccFilter getFilterAt(int index);

/**
* Return all the filters.
* @return all the filters.
*/
Iterable<LccFilter> getFilters();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* LCC converter station builder and adder.
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian@rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface LccConverterStationAdder extends SingleTerminalConnectableAdder<LccConverterStationAdder> {

LccConverterStationAdder setPowerFactor(float powerFactor);

LccConverterStation add();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* Harmonic filter.
* q = b * v^2
*
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface LccFilter {

/**
* Get filter susceptance (&#937;).
* @return
*/
float getB();

/**
* Set filter susceptance (&#937;).
* @param b filter susceptance;
* @return the filter itself to allow method chaining
*/
LccFilter setB(float b);

/**
* Check the filter is connected.
* @return true if the filter is connected, false otherwise.
*/
boolean isConnected();

/**
* Set the connection status of the filter.
* @param connected the new connection status of the filter
* @return the filter itself to allow method chaining
*/
LccFilter setConnected(boolean connected);
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright (c) 2016, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package eu.itesla_project.iidm.network;

/**
* @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
* @author Mathieu Bague <mathieu.bague at rte-france.com>
*/
public interface LccFilterAdder {

LccFilterAdder setB(float b);

LccFilterAdder setConnected(boolean connected);

LccFilter add();
}

0 comments on commit cbd5608

Please sign in to comment.