ICS#

ICS data contains necessary data to define redispatching actions’ specific constraints. ICS data are only used for costly computations.

Static#

Static ICS data defines a remedial action’s generator’s static constraints:

Name

Details

RA RD ID

Remedial action ID

TSO

TSO location (“CZ”, “BE”, “PL”, “D2”, …).

Preventive

RA is applied before any contingency occurs (true/false)

Curative

RA is applied after given contingency occurs (true/false)

Time From

Time To

Generator Name

RA’s associated generator’s name

RD Description mode

One of two values possible: “NODE” or “GSK”

UCT Node or GSK ID

Name of connection node or ID of GSK as specified in GSK ICS data

Minimum Redispatch [MW]

Minimum amount of redispatch in MW.

Fuel type

Fuel type one of the following: “Coal”, “Hydro(NonPS)”, “Nuclear”, “Oil”, “PumpStorage”, “PV”, “Wing”, “Other”

Minimum up-time [h]

Minimum uptime for RA RD in hours.

Minimum down-time [h]

Minimum downtime for RA RD in hours.

Maximum positive power gradient [MW/h]

Maximum positive power gradient for RA RD in MW/h.

Maximum negative power gradient [MW/h]

Maximum negative power gradient for RA RD in MW/h.

Lead time [h]

Lead time for activation of RA RD in h.

Lag time [h]

Lag time for deactivation of RA RD in h.

Shutdown allowed

To indicate if RA RD can be shutdown. One of two values possible: “TRUE”, “FALSE”.

Startup allowed

To indicate if RA RD can be started from standstill. One of two values possible: “TRUE”, “FALSE”.

Series#

This CSV defines a remedial action’s generator’s operating program P0, allowed undershoot/overshoot from P0 (RDP- and RDP+, positive values), and the Pmin of redispatching (Pmin_RD). These values are defined as time series over 24 hours.

GSK#

Name

Details

GSK ID

Unique identifier of GSK

Node

UCT code of the node described with 8 characters.

Weight

Weight for GSK at respective node. Sum of weights for all nodes in one GSK should be 1.

Read ICS data#

InputStream staticIcs = new FileInputStream("path/to/ics/static.csv");
InputStream seriesIcs = new FileInputStream("path/to/ics/series.csv");
InputStream gskIcs = new FileInputStream("path/to/ics/gsk.csv");
IcsData icsData = new IcsDataImporter.read(staticIcs, seriesIcs, gskIcs);

ICS data to to create TimeCoupledRaoInput#

ICS Importer_

        Network network1 = LazyNetwork.of("networkPath");
        TemporalData<RaoInput> raoInputs = new TemporalDataImpl<>(
            Map.of(
                timestamp1, RaoInput.build(network1, crac1).build(),
                // other timestamps
            ));

        TimeCoupledRaoInput timeCoupledRaoInput = new TimeCoupledRaoInput(raoInputs, new TimeCoupledConstraints());
        IcsData icsData = IcsDataImporter.read(
            getClass().getResourceAsStream("/ics/static.csv"),
            getClass().getResourceAsStream("/ics/series.csv"),
            getClass().getResourceAsStream("/glsk/gsk.csv"),
            timestampsToRun);

        TimeCoupledRaoInput postIcsRaoInputs = icsData.processAllRedispatchingActions(timeCoupledRaoInput, costUp, costDown, exportDirectory);