diff --git a/.github/workflows/new_release.yml b/.github/workflows/new_release.yml index 8181160fc4..c65ca9dc1e 100644 --- a/.github/workflows/new_release.yml +++ b/.github/workflows/new_release.yml @@ -3,6 +3,9 @@ name: Create new release on: workflow_dispatch: inputs: + target_branch: + description: "Target branch or full commit SHA (default develop)" + default: "develop" release_tag: description: "Release tag" required: true @@ -24,11 +27,13 @@ jobs: tag: ${{ github.event.inputs.release_tag }} title: ${{ github.event.inputs.release_name }} tests: ${{ github.event.inputs.run-tests }} + target_branch: ${{ github.event.inputs.target_branch }} run: | gh release create "$tag" \ --repo="$GITHUB_REPOSITORY" \ --title="$title" \ - --notes="Run tests: $tests" + --notes="Run tests: $tests"\ + --target="$target_branch" @@ -38,6 +43,7 @@ jobs: uses: ./.github/workflows/ubuntu.yml with: run-tests: ${{ inputs.run-tests }} + target_branch: ${{ inputs.target_branch }} windows: name: Release - Windows @@ -45,6 +51,7 @@ jobs: uses: ./.github/workflows/windows-vcpkg.yml with: run-tests: ${{ inputs.run-tests }} + target_branch: ${{ inputs.target_branch }} centos7: name: Release - centos7 @@ -52,6 +59,7 @@ jobs: uses: ./.github/workflows/centos7.yml with: run-tests: ${{ inputs.run-tests }} + target_branch: ${{ inputs.target_branch }} oracle8: name: Release - oracle8 @@ -59,6 +67,7 @@ jobs: uses: ./.github/workflows/oracle8.yml with: run-tests: ${{ inputs.run-tests }} + target_branch: ${{ inputs.target_branch }} user_guide: name: User Guide @@ -66,3 +75,4 @@ jobs: uses: ./.github/workflows/build-userguide.yml with: run-tests: ${{ inputs.run-tests }} + target_branch: ${{ inputs.target_branch }} diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index aea9bfa099..ce97851457 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -17,6 +17,9 @@ on: run-tests: required: true type: string + target_branch: + required: true + type: string env: GITHUB_TOKEN: ${{ github.token }} @@ -37,7 +40,8 @@ jobs: steps: - uses: actions/checkout@v3 - + with: + ref: ${{ inputs.target_branch}} - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: diff --git a/docs/reference-guide/03-commands.md b/docs/reference-guide/03-commands.md index f5fb8cc779..5c45d7256a 100644 --- a/docs/reference-guide/03-commands.md +++ b/docs/reference-guide/03-commands.md @@ -187,7 +187,7 @@ whose detailed analysis may have shown that they were not physically realistic. in replaying only a small number of years of specific interest (for instance, years in the course of which Min or Max values of a given variable were encountered in a previous simulation). - In addition, each MC year i=1, …, N can be given a relative “weight” \\(W_i\\) in the simulation (default value: 1). The expectation and standard deviation of all random variables will then be computed as if the scenarios simulated were sampled from a probability density function in which MC year i is given the probability + In addition, each MC year i=1, …, N can be given a relative “weight” $W_i$ in the simulation (default value: 1). The expectation and standard deviation of all random variables will then be computed as if the scenarios simulated were sampled from a probability density function in which MC year i is given the probability $$\frac{W_{i}}{\sum_{j=1,...,N}{W_{j}}}$$ diff --git a/docs/reference-guide/04-active_windows.md b/docs/reference-guide/04-active_windows.md index 8aaa5d523c..29021b824b 100644 --- a/docs/reference-guide/04-active_windows.md +++ b/docs/reference-guide/04-active_windows.md @@ -632,15 +632,15 @@ This window is used to handle all input data regarding the interconnections. On - Hurdle cost indirect: a downstream-to-upstream transmission fee, in €/MWh - - Impedance: used in economy simulations to give a physical meaning to raw outputs, when no binding constraints have been defined to enforce Kirchhoff's laws (see "Output" section, variable "Flow Quad") OR used by the Kirchhoff's constraint generator to build up proper flow constraints (AC flow computed with the classical "DC approximation"). Since voltage levels are not explicitly defined and handled within Antares, all impedances are assumed to be scaled to some reference \\( U_{ref} \\) + - Impedance: used in economy simulations to give a physical meaning to raw outputs, when no binding constraints have been defined to enforce Kirchhoff's laws (see "Output" section, variable "Flow Quad") OR used by the Kirchhoff's constraint generator to build up proper flow constraints (AC flow computed with the classical "DC approximation"). Since voltage levels are not explicitly defined and handled within Antares, all impedances are assumed to be scaled to some reference $ U_{ref} $ - Loop flow: amount of power flowing circularly though the grid when all "nodes" are perfectly balanced (no import and no export). Such loop flows may be expected on any "simplified" grid in which large regions (or even countries) are modeled by a small number of "macro" nodes, and should accordingly be accounted for. - - PST min (denoted \\(Y^-\\) in [Kirchhoff Constraints Generator](07-kirchhoffs_constraint_generator.md)): lower bound of phase-shifting that can be reached by a PST installed on the link, if any (note : the effect of the active loop flow generated by the PST may be superimposed to that of the passive loop flow) + - PST min (denoted $Y^-$ in [Kirchhoff Constraints Generator](07-kirchhoffs_constraint_generator.md)): lower bound of phase-shifting that can be reached by a PST installed on the link, if any (note : the effect of the active loop flow generated by the PST may be superimposed to that of the passive loop flow) - - PST max (denoted \\(Y^+\\) in [Kirchhoff Constraints Generator](07-kirchhoffs_constraint_generator.md)): upper bound of phase-shifting that can be reached by a PST installed on the link, if any (note : the effect of the active loop flow generated by the PST may be superimposed to that of the passive loop flow) + - PST max (denoted $Y^+$ in [Kirchhoff Constraints Generator](07-kirchhoffs_constraint_generator.md)): upper bound of phase-shifting that can be reached by a PST installed on the link, if any (note : the effect of the active loop flow generated by the PST may be superimposed to that of the passive loop flow) - For the sake of simplicity and homogeneity with the convention used for impedance, PST settings are assumed to be expressed in \\( rad/U^2_{ref} \\) + For the sake of simplicity and homogeneity with the convention used for impedance, PST settings are assumed to be expressed in $ rad/U^2_{ref} $ - The "Transmission capacities" tab displays "ready-made" 8760-hour time-series already available for simulation purposes. @@ -678,10 +678,10 @@ A typical situation in which this feature proves useful is, for instance, encoun In such cases, assuming that: -- \\(Z_l\\) denotes the impedance of interconnections \\(l=1, L\\) -- A preliminary study of the graph modeling the grid has shown that it can be described by a set of independent meshes \\(c=1, C\\)(cycle basis of the graph) +- $Z_l$ denotes the impedance of interconnections $l=1, L$ +- A preliminary study of the graph modeling the grid has shown that it can be described by a set of independent meshes $c=1, C$(cycle basis of the graph) -Then the DC flow approximation may be implemented, for each time-step of the simulation, by a set of C binding constraints between AC flows \\(F_l\\): +Then the DC flow approximation may be implemented, for each time-step of the simulation, by a set of C binding constraints between AC flows $F_l$: $$ c= 1, ..., C : \sum_{i \in C}{sign(l,c)F_lZ_l = 0}$$ diff --git a/docs/reference-guide/06-time_series_analysis_and_generation.md b/docs/reference-guide/06-time_series_analysis_and_generation.md index c4cca72f70..f0fbbfa640 100644 --- a/docs/reference-guide/06-time_series_analysis_and_generation.md +++ b/docs/reference-guide/06-time_series_analysis_and_generation.md @@ -30,33 +30,33 @@ The stationary processes are defined at a monthly scale. For each month, there a - Four parameters for the definition of the marginal law -TS Gen. Parameters : \\(\alpha\\), \\(\beta\\), \\(\gamma\\) and \\(\delta\\) +TS Gen. Parameters : $\alpha$, $\beta$, $\gamma$ and $\delta$ -| **Law** | \\(\alpha\\) | \\(\beta\\) | \\(\gamma\\) | \\(\delta\\) | **Expectation** | **Variance** | +| **Law** | $\alpha$ | $\beta$ | $\gamma$ | $\delta$ | **Expectation** | **Variance** | |---------|:----------:|:---------:|:----------:|:----------:|:---------------:|:------------:| -| Uniform | N/A | N/A | \\(< \delta\\) | \\(> \gamma\\) | \\({(\delta - \gamma)\over 2}\\) | \\({(\delta - \gamma)^2\over 12}\\) | -| Beta | >0 | >0 | \\(< \delta\\) | \\(> \gamma\\) | \\(\gamma + {\alpha(\delta - \gamma)\over (\alpha + \beta)}\\) | \\(\alpha\beta(\delta - \gamma)^2\over (\alpha + \beta + 1)(\alpha + \beta)^2\\) | -| Normal | Any | >0 | N/A | N/A | \\(\alpha\\) | \\(\beta^2\\) | -| Weibull | >=1
<50 | >0 | N/A | N/A | \\(\beta \Gamma (1 + {1\over\alpha})\\) | \\(\beta^2[\Gamma(1+{2\over \alpha}) - \Gamma (1 + {1\over \alpha})^2]\\) | -| Gamma | >=1
<50 | >0 | N/A | N/A | \\(\alpha * \beta\\) | \\(\alpha * \beta^2\\) | +| Uniform | N/A | N/A | $< \delta$ | $> \gamma$ | ${(\delta - \gamma)\over 2}$ | ${(\delta - \gamma)^2\over 12}$ | +| Beta | >0 | >0 | $< \delta$ | $> \gamma$ | $\gamma + {\alpha(\delta - \gamma)\over (\alpha + \beta)}$ | $\alpha\beta(\delta - \gamma)^2\over (\alpha + \beta + 1)(\alpha + \beta)^2$ | +| Normal | Any | >0 | N/A | N/A | $\alpha$ | $\beta^2$ | +| Weibull | >=1
<50 | >0 | N/A | N/A | $\beta \Gamma (1 + {1\over\alpha})$ | $\beta^2[\Gamma(1+{2\over \alpha}) - \Gamma (1 + {1\over \alpha})^2]$ | +| Gamma | >=1
<50 | >0 | N/A | N/A | $\alpha * \beta$ | $\alpha * \beta^2$ | -_Uniform: uniform defined on (\\(\gamma\\), \\(\delta\\))._ -_Beta: Beta (\\(\alpha\\), \\(\beta\\)) defined on (\\(\gamma\\), \\(\delta\\))._ -_Normal: expectation \\(\alpha\\), standard deviation \\(\beta\\)._ -_Weibull: shape \\(\alpha\\), scale \\(\beta\\), defined on (0,+\\(\infty\\))._ -_Gamma: shape \\(\alpha\\), scale \\(\beta\\), defined on (0, +\\(\infty\\))._ +_Uniform: uniform defined on ($\gamma$, $\delta$)._ +_Beta: Beta ($\alpha$, $\beta$) defined on ($\gamma$, $\delta$)._ +_Normal: expectation $\alpha$, standard deviation $\beta$._ +_Weibull: shape $\alpha$, scale $\beta$, defined on (0,+$\infty$)._ +_Gamma: shape $\alpha$, scale $\beta$, defined on (0, +$\infty$)._ -In the expressions of expectation and variance, \\(\Gamma(x)\\) is the standard Euler Function. +In the expressions of expectation and variance, $\Gamma(x)$ is the standard Euler Function. - Two parameters for the definition of the autocorrelation function -**TS Gen. Parameters : \\(\theta\\) and \\(\mu\\)** +**TS Gen. Parameters : $\theta$ and $\mu$** -| **Law** | \\(\theta\\) | \\(\mu\\) | **Corr(Xt, Xt+h)** | +| **Law** | $\theta$ | $\mu$ | **Corr(Xt, Xt+h)** | |-----|----|-----|--------| -| Pure exponential decay | \\(\theta > 0\\) | \\(\mu = 1\\) | \\(e^{-\theta h}\\) | -| Smoothed exponential decay [^decay] | \\(\theta > 0\\) | \\( 1 < \mu < 24\\) | \\(\Phi(\theta, \mu, h)\\) | +| Pure exponential decay | $\theta > 0$ | $\mu = 1$ | $e^{-\theta h}$ | +| Smoothed exponential decay [^decay] | $\theta > 0$ | $ 1 < \mu < 24$ | $\Phi(\theta, \mu, h)$ | $$\Phi(\theta, \mu, h)\ =\ {1\over A}\ *\ \sum_{i=0, \mu}{\ \sum_{j=h, h+\mu}{e^{-\theta|j-i|}}}$$ @@ -71,7 +71,7 @@ The section of the GUI specific to the generation of wind, solar and load time-s 1. **Spatial correlation matrices that are located within the "spatial correlation" tab of each path "Wind|Solar|Load / <area\_name>"** - This tab contains a workspace for the description of 12 monthly spatial correlation matrices \\(\Xi\\) and one annual correlation matrix. For the stochastic generators to work properly, these matrices must meet the usual requirements (matrices must be p.s.d, symmetric, with all terms between -100 and +100, and a main diagonal made of 100s). If this is not the case, generators will emit an infeasibility diagnosis. Matrices can be either set up manually OR automatically filled out by the time-series analyzer (see next paragraph). + This tab contains a workspace for the description of 12 monthly spatial correlation matrices $\Xi$ and one annual correlation matrix. For the stochastic generators to work properly, these matrices must meet the usual requirements (matrices must be p.s.d, symmetric, with all terms between -100 and +100, and a main diagonal made of 100s). If this is not the case, generators will emit an infeasibility diagnosis. Matrices can be either set up manually OR automatically filled out by the time-series analyzer (see next paragraph). Depending on the choices made in the main "simulation" window, the matrices used will be either the 12 monthly matrices or the annual matrix. Whether to use the first or the second option depends on the quality of the statistical data at hand: with high quality data (for instance, that derived from the analysis of a very large pool of historical data), use of monthly correlations is recommended because monthly differences between matrices have a physical meaning ; with less robust data (derived from a handful of historical data,…), use of the single annual correlation matrix should be preferred because it smooths out the numeric noise which impairs the monthly matrices. @@ -79,7 +79,7 @@ The section of the GUI specific to the generation of wind, solar and load time-s **FOUR PARAMETERS** -- Capacity: This first parameter is used to scale up time-series generated on the basis of the (\\(\alpha\\), \\(\beta\\), \\(\gamma\\), \\(\delta\\), \\(\theta\\), \\(\mu\\)) parameters described previously in the "principles" paragraph, together with coefficients characterizing the diurnal pattern (see below) +- Capacity: This first parameter is used to scale up time-series generated on the basis of the ($\alpha$, $\beta$, $\gamma$, $\delta$, $\theta$, $\mu$) parameters described previously in the "principles" paragraph, together with coefficients characterizing the diurnal pattern (see below) - Distribution: This second parameter gives the type of marginal distribution of the stationary stochastic processes to generate (Beta, Weibull, Normal, Gamma, Uniform) @@ -98,7 +98,7 @@ The section of the GUI specific to the generation of wind, solar and load time-s **FOUR SUBTABS** - Subtab "Coefficients" - A twelve-month table of values for the primary parameters \\(\alpha\\), \\(\beta\\), \\(\gamma\\), \\(\delta\\), \\(\theta\\), \\(\mu\\)
+ A twelve-month table of values for the primary parameters $\alpha$, $\beta$, $\gamma$, $\delta$, $\theta$, $\mu$
This table may be either filled out manually or automatically (use of the time-series analyzer) - Subtab "Translation" @@ -148,7 +148,7 @@ The primary TS analyzer window shows two tabs: - Keep the same: - Type of distribution - - Values for \\(\alpha\\), \\(\beta\\), \\(\gamma\\), \\(\delta\\) and for the diurnal–seasonal pattern (table of 12 X 24 values) + - Values for $\alpha$, $\beta$, $\gamma$, $\delta$ and for the diurnal–seasonal pattern (table of 12 X 24 values) - Value for the "capacity" parameter (the analyzer automatically sets it to 1) - Besides: @@ -163,7 +163,7 @@ The primary TS analyzer window shows two tabs: - Short-term autocorrelation adjustment (%) - Long-term autocorrelation adjustment (%)
- These two parameters are used by Antares as targets for the fitting of \\(\theta\\) and \\(\mu\\) parameters. For instance, if the historical time-series autocorrelation function is such that Corr(T,T+ 18 hours)=90 % and Corr(T,T+60 hours)= 50%, and if the parameters in the analyzer are (ST = 90%,LT = 50%) , then it will search values of \\(\theta\\) and \\(\mu\\) matching the historical autocorr.function in two points(18 hours, 60 hours). + These two parameters are used by Antares as targets for the fitting of $\theta$ and $\mu$ parameters. For instance, if the historical time-series autocorrelation function is such that Corr(T,T+ 18 hours)=90 % and Corr(T,T+60 hours)= 50%, and if the parameters in the analyzer are (ST = 90%,LT = 50%) , then it will search values of $\theta$ and $\mu$ matching the historical autocorr.function in two points(18 hours, 60 hours). - Trimming threshold (%)
In the spatial correlation matrices, terms lower than the threshold will be replaced by zeroes @@ -240,14 +240,14 @@ In complement to the average value of the duration D of outages beginning on a p - If choice = "geometric": **F = 0 and G = D**
(which in turn implies 1 <= actual duration <= #4D) - - 0<V<1: The variability of the actual outage duration is such that the ratio \\(\sigma / D\\) of its standard deviation to its expectation has a value that depends on **V** , on **D** and on the chosen distribution law. More precisely: + - 0<V<1: The variability of the actual outage duration is such that the ratio $\sigma / D$ of its standard deviation to its expectation has a value that depends on **V** , on **D** and on the chosen distribution law. More precisely: - - If choice = "uniform": \\(\sigma / D = [{1/3}^{0.5}] \* V \* (D-1) / D \\)
+ - If choice = "uniform": $\sigma / D = [{1/3}^{0.5}] \* V \* (D-1) / D $
and
**Duration min = D (1-V) + V**
**Duration max = D (1+V) - V** - - If choice = "geometric": \\(\sigma / D = V \* [(D-1) / D]^{0.5}\\)
+ - If choice = "geometric": $\sigma / D = V \* [(D-1) / D]^{0.5}$
and
**Duration min = F**
**Duration max # 4D-3F**
@@ -424,4 +424,4 @@ In both cases, assuming that a large number of historical time-series of energie Assess the expectations of the 12 random variables **R1(n)/M1(n),…., R12(n)/M12(n)** . These values should be used to fill out the fields "ROR share" of the "local data" tab in the "hydro" active window. -[^decay]: Obtained by the generation of purely exponentially autocorrelated values (parameter \\(\theta\\) ) followed by a moving average transformation (parameter \\(\mu\\) ). \\(\theta\\) and \\(\mu\\) should be carefully chosen so as to accommodate at best the experimental data at hand. If meaningful historical data are available, this identification may be directly made using the Antares time-series analyzer. \ No newline at end of file +[^decay]: Obtained by the generation of purely exponentially autocorrelated values (parameter $\theta$ ) followed by a moving average transformation (parameter $\mu$ ). $\theta$ and $\mu$ should be carefully chosen so as to accommodate at best the experimental data at hand. If meaningful historical data are available, this identification may be directly made using the Antares time-series analyzer. \ No newline at end of file diff --git a/docs/reference-guide/07-kirchhoffs_constraint_generator.md b/docs/reference-guide/07-kirchhoffs_constraint_generator.md index 91cc58469a..3c2aad392b 100644 --- a/docs/reference-guide/07-kirchhoffs_constraint_generator.md +++ b/docs/reference-guide/07-kirchhoffs_constraint_generator.md @@ -15,7 +15,7 @@ To achieve that, the KCG implements an efficient algorithm yielding a minimal cy $$c= 1, ..., C : \sum_{l \in C}{sign(l,c)F_lZ_l} = 0$$ -Where \\(Z_l\\) are the impedances (parameters) and \\(F_l\\) are the flows (variables). +Where $Z_l$ are the impedances (parameters) and $F_l$ are the flows (variables). Beyond this basic purpose, the KCG is meant to provide additional modeling capacities, so as to allow the representation of two important phenomena: @@ -23,7 +23,7 @@ Beyond this basic purpose, the KCG is meant to provide additional modeling capac $$c= 1, ..., C : \sum_{l \in C}{sign(l,c)F_lZ_l} = \sum_{l \in C}{sign(l,c)\varphi_lZ_l}$$ -- To mitigate the effects of actual loop flows, or more generally to allow the transmission assets to give the maximum of their potential, the power system may include components such as phase-shifting transformers, whose function can be modeled by changing the formulation of the binding constraints. Provided that estimates of the shifting capacities (\\(Y_l^-\\), \\(Y_l^+\\)) of the installed PST are known and filled out in the link data section, the KCG will (on user's request) automatically reformulate the binding constraints as: +- To mitigate the effects of actual loop flows, or more generally to allow the transmission assets to give the maximum of their potential, the power system may include components such as phase-shifting transformers, whose function can be modeled by changing the formulation of the binding constraints. Provided that estimates of the shifting capacities ($Y_l^-$, $Y_l^+$) of the installed PST are known and filled out in the link data section, the KCG will (on user's request) automatically reformulate the binding constraints as: $$c= 1, ..., C : Y_c^- + \sum_{l \in C}{sign(l,c)\varphi_lZ_l} \leq \sum_{l \in C}{sign(l,c)F_lZ_l} \leq Y_c^+ + \sum_{l \in C}{sign(l,c)\varphi_lZ_l}$$ @@ -35,7 +35,7 @@ $$Y_c^+ = \sum_{l \in C}{Max(sign(l,c)Y_l^-, sign(l,c)Y_l^+)}$$ Besides, the KCG takes into account the fact that the "best estimates" of all critical data (loop flows, phase-shifting ratings, or even impedances) may vary in time: In such cases, the KCG formulates as many different binding constraints as necessary to model this operating context diversity, and relax them when appropriate (by setting the right hand sides of the equation to +/- infinite) -From a practical standpoint, assessments of \\(Y^-, Y^+\\) should be derived from knowledge about the actual components installed on the grid, while \\(Z_l\\) and \\( \varphi_l \\) can be estimated by various methods. +From a practical standpoint, assessments of $Y^-, Y^+$ should be derived from knowledge about the actual components installed on the grid, while $Z_l$ and $ \varphi_l $ can be estimated by various methods. In addition to the previous functionalities, the KCG's GUI also includes the following options: diff --git a/docs/reference-guide/08-miscellaneous.md b/docs/reference-guide/08-miscellaneous.md index 93796f6183..6f586713b2 100644 --- a/docs/reference-guide/08-miscellaneous.md +++ b/docs/reference-guide/08-miscellaneous.md @@ -72,90 +72,90 @@ The description given hereafter makes use of the following local notations, not be confused with those of the document "optimization problem formulation" (dedicated to the optimal hydro-thermal unit-commitment and dispatch problem): -- \\(Z\\) Number of Areas (zones \\(z\\)) in the system -- \\(M_{zh}\\) Hourly time-series of cumulated must-generation of all kinds for zone \\(z\\) -- \\(M_{zd}\\) Daily time-series of cumulated must-generation of all kinds for zone \\(z\\) (sum of \\(M_{zh}\\)) -- \\(M_{zm}\\) Monthly time-series of cumulated must-generation of all kinds for zone \\(z\\) (sum of \\(M_{zh}\\)) -- \\(M_{z.}\\) Either \\(M_{zd}\\) or \\(M_{zm}\\), relevant time index "." is defined by the context -- \\(L_{z.}\\) Time-series of "natural" load for zone \\(z\\) -- \\(A\\) Inter-area hydro-allocation matrix (dimension_ \\(x Z\\) ) \\(A_{uv}\\) is a weight given to the load -of area \\(u\\) in the definition of the monthly and daily primary hydro generation target of area \\(v\\) +- $Z$ Number of Areas (zones $z$) in the system +- $M_{zh}$ Hourly time-series of cumulated must-generation of all kinds for zone $z$ +- $M_{zd}$ Daily time-series of cumulated must-generation of all kinds for zone $z$ (sum of $M_{zh}$) +- $M_{zm}$ Monthly time-series of cumulated must-generation of all kinds for zone $z$ (sum of $M_{zh}$) +- $M_{z.}$ Either $M_{zd}$ or $M_{zm}$, relevant time index "." is defined by the context +- $L_{z.}$ Time-series of "natural" load for zone $z$ +- $A$ Inter-area hydro-allocation matrix (dimension_ $x Z$ ) $A_{uv}$ is a weight given to the load +of area $u$ in the definition of the monthly and daily primary hydro generation target of area $v$ Extreme cases are: - **A is the identity matrix** - The hydro storage energy monthly and weekly profiles of each zone \\(z\\) depend only on the local demand and - must-run generation in \\(z\\) + The hydro storage energy monthly and weekly profiles of each zone $z$ depend only on the local demand and + must-run generation in $z$ - **A has a main diagonal of zeroes** - The hydro storage energy monthly and weekly profiles of each zone \\(z\\) do not depend at all on the local - demand and must-run generation in \\(z\\) -- \\(L_{z.}^+\\) Time-series of "net" load for zone \\(z\\), defined as: \\(L{z.}^+ = L{z.} - M{z.}\\) -- \\(L_{z.}\\) Time-series of "weighted" load for zone \\(z\\), defined as:_ \\(L_{z.} = A^t L_{z.}^+\\) + The hydro storage energy monthly and weekly profiles of each zone $z$ do not depend at all on the local + demand and must-run generation in $z$ +- $L_{z.}^+$ Time-series of "net" load for zone $z$, defined as: $L{z.}^+ = L{z.} - M{z.}$ +- $L_{z.}$ Time-series of "weighted" load for zone $z$, defined as:_ $L_{z.} = A^t L_{z.}^+$ -All following parameters are related to the generic zone \\(z\\): +All following parameters are related to the generic zone $z$: -- \\(\alpha\\) "inter-monthly generation breakdown" parameter +- $\alpha$ "inter-monthly generation breakdown" parameter -- \\(\beta\\) "inter-daily generation breakdown" parameter +- $\beta$ "inter-daily generation breakdown" parameter -- \\(j\\) "follow-load" parameter +- $j$ "follow-load" parameter -- \\(\mu\\) "reservoir-management" parameter +- $\mu$ "reservoir-management" parameter -- \\(S\\) Reservoir size +- $S$ Reservoir size -- \\(\overline{S_d}\\) Reservoir maximum level at the end of day d, expressed as a fraction of \\(S\\) (rule curve) +- $\overline{S_d}$ Reservoir maximum level at the end of day d, expressed as a fraction of $S$ (rule curve) -- \\(\underline{S_d}\\) Reservoir minimum level at the end of day d, expressed as a fraction of \\(S\\) (rule curve) +- $\underline{S_d}$ Reservoir minimum level at the end of day d, expressed as a fraction of $S$ (rule curve) -- \\(S_0\\) Reservoir initial level at the beginning of the first day of the "hydro-year" +- $S_0$ Reservoir initial level at the beginning of the first day of the "hydro-year" -- \\(I_d\\) Natural inflow of energy to the reservoir during day d +- $I_d$ Natural inflow of energy to the reservoir during day d -- \\(I_m\\) Natural inflow of energy to the reservoir during month m (sum of \\(I_d\\) +- $I_m$ Natural inflow of energy to the reservoir during month m (sum of $I_d$ -- \\(\overline{W_d}\\) Maximum energy that can be generated on day d (standard credit) +- $\overline{W_d}$ Maximum energy that can be generated on day d (standard credit) All following variables, defined for both stages, are related to the generic zone: -- \\(S_d^k\\) Reservoir level at the end of day d, at the end of stage k of pre-allocation +- $S_d^k$ Reservoir level at the end of day d, at the end of stage k of pre-allocation -- \\(S_m^k\\) Reservoir level at the end of month m, at the end of stage k of pre-allocation +- $S_m^k$ Reservoir level at the end of month m, at the end of stage k of pre-allocation -- \\(O_d^k\\) Overflow from the reservoir on day d, at the end of stage k of pre-allocation (inflow in excess to an already full reservoir) +- $O_d^k$ Overflow from the reservoir on day d, at the end of stage k of pre-allocation (inflow in excess to an already full reservoir) -- \\(W_d^k\\) Energy to generate on day d, at the end of stage k of pre-allocation +- $W_d^k$ Energy to generate on day d, at the end of stage k of pre-allocation -- \\(W_m^k\\) Energy to generate on month m, at the end of stage k of pre-allocation +- $W_m^k$ Energy to generate on month m, at the end of stage k of pre-allocation -Following variables and parameters are local to linear optimization problems \\(M\\) & \\(D(m)\\) +Following variables and parameters are local to linear optimization problems $M$ & $D(m)$ solved within the heuristic. For the sake of clarity, the same generic index is used for all time steps, -knowing that in \\(M\\) there are 12 monthly time-steps, while in \\D(m)t\\) there are from 28 to 31 daily -time-steps. Costs \\(\gamma_{Var}\\) given to these variables are chosen to enforce a logical hierarchy +knowing that in $M$ there are 12 monthly time-steps, while in \\D(m)t$ there are from 28 to 31 daily +time-steps. Costs $\gamma_{Var}$ given to these variables are chosen to enforce a logical hierarchy of penalties (letting the reservoir overflow is worse than violating rule curves, which is worse than deviating from the generation objective assessed in stage 1, etc.) -- \\(Y\\) Generation deficit at the end of the period, as compared to the objective aimed at +- $Y$ Generation deficit at the end of the period, as compared to the objective aimed at -- \\(O_t\\) Overflow from the reservoir on time step \\(t\\) +- $O_t$ Overflow from the reservoir on time step $t$ -- \\(G_t, \overline{G_t}\\) Optimal generation and maximum generation on time step \\(t\\) +- $G_t, \overline{G_t}$ Optimal generation and maximum generation on time step $t$ -- \\(T_t\\) Generation objective assessed in the first stage, for time step t ( \\(W_m^1\\) or \\(W_d^1\\)) +- $T_t$ Generation objective assessed in the first stage, for time step t ( $W_m^1$ or $W_d^1$) -- \\(S_t, \overline{S_t}, \underline{S_t}\\) Optimal stock level, maximum level, minimum level at the end of time step \\(t\\) +- $S_t, \overline{S_t}, \underline{S_t}$ Optimal stock level, maximum level, minimum level at the end of time step $t$ -- \\(I_t\\) Natural inflow on time step \\(t\\) +- $I_t$ Natural inflow on time step $t$ -- \\(D_t\\) Deviation (absolute difference) between target reached and initial aim +- $D_t$ Deviation (absolute difference) between target reached and initial aim -- \\(\Delta\\) Maximum deviation throughout the period +- $\Delta$ Maximum deviation throughout the period -- \\(V_t^+\\) Amplitude of the violation of the upper rule curve at time step \\(t\\) +- $V_t^+$ Amplitude of the violation of the upper rule curve at time step $t$ -- \\(V_t^-\\) Amplitude of the violation of the lower rule curve at time step \\(t\\) +- $V_t^-$ Amplitude of the violation of the lower rule curve at time step $t$ -- \\(Y\\) Maximum violation of lower rule curve throughout the period +- $Y$ Maximum violation of lower rule curve throughout the period **General heuristic for each zone** @@ -189,8 +189,8 @@ _End_ Note: In the formulation of the optimal hydro-thermal unit-commitment and dispatch problem (see dedicated document), the reference hydro energy __HIT__ used to set the right hand sides of hydro- constraints depends on the value chosen for the optimization preference "simplex range" and is defined as follows: -- Daily : for each day **d** of week \\(\omega\\) : \\(HIT = W_d^2\\) -- Weekly : for week \\(\omega\\): \\(HIT = \sum_{d\in \omega}{W_d^2}\\) +- Daily : for each day **d** of week $\omega$ : $HIT = W_d^2$ +- Weekly : for week $\omega$: $HIT = \sum_{d\in \omega}{W_d^2}$ **Optimization problem M** @@ -202,7 +202,7 @@ $$S_t \geq 0$$ $$S_t \leq S$$ -\\(S_t + G_t - S_{t-1} = I_t\\) (see note [^monthly_allocation]) +$S_t + G_t - S_{t-1} = I_t$ (see note [^monthly_allocation]) $$\sum_{t}{G_t} = \sum_{t}{T_t}$$ @@ -217,7 +217,7 @@ $$V_t^+ - S_t \geq -\overline{S_t}$$ $$Y - V_t^- \geq 0$$ -**Optimization problems \\(D(m)\\)** +**Optimization problems $D(m)$** $$\min_{G_t, S_t, ...}{\gamma_{\Delta}\Delta + \gamma_Y Y + \sum_{t}{(\gamma_D D_t + \gamma_{V-} V_t^- + \gamma_{O} O_t + \gamma_S S_t)}}$$ s.t @@ -230,9 +230,9 @@ $$G_t \geq 0$$ $$G_t \leq \overline{G_t}$$ -\\(S_t + G_t + O_t - S_{t-1} = I_t\\) (see note [^daily_allocation]) +$S_t + G_t + O_t - S_{t-1} = I_t$ (see note [^daily_allocation]) -\\(\sum_{t}{G_t + Y} = \sum_{t}{T_t} + Y_{m-1}\\) (value of Y previously found in solving **\\(D(m-1)\\)**) +$\sum_{t}{G_t + Y} = \sum_{t}{T_t} + Y_{m-1}$ (value of Y previously found in solving **$D(m-1)$**) $$G_t - D_t \leq T_t$$ @@ -476,11 +476,11 @@ This parameter is meant to define how the reservoir level should be managed thro **Accommodate rule curves:** -Upper and lower rule curves are accommodated in both monthly and daily heuristic stages (described page 58). In the second stage, violations of the lower rule curve are avoided as much as possible (penalty cost on \\(\Psi\\). higher than penalty cost on Y). This policy may result in a restriction of the overall yearly energy generated from the natural inflows. +Upper and lower rule curves are accommodated in both monthly and daily heuristic stages (described page 58). In the second stage, violations of the lower rule curve are avoided as much as possible (penalty cost on $\Psi$. higher than penalty cost on Y). This policy may result in a restriction of the overall yearly energy generated from the natural inflows. **Maximize generation:** -Upper and lower rule curves are accommodated in both monthly and daily heuristic stages (described page 58). In the second stage, incomplete use of natural inflows is avoided as much as possible (penalty cost on Y higher than penalty cost on \\(\Psi\\)). This policy may result in violations of the lower rule curve. +Upper and lower rule curves are accommodated in both monthly and daily heuristic stages (described page 58). In the second stage, incomplete use of natural inflows is avoided as much as possible (penalty cost on Y higher than penalty cost on $\Psi$). This policy may result in violations of the lower rule curve. ## The "Hydro Pricing mode" advanced parameter @@ -546,9 +546,9 @@ If the parameter is set to "aggregated”, the user will have access to the Wind The Renewable window can be filled out with the different renewable clusters inside each node. Each renewable cluster needs to have a group specified or will default to the «Other RES 1» group. Production Timeseries can be filled out much like the Thermal production ones. Note that unlike thermal clusters, negative production values are allowed. The Renewable window is described in more details in the “4. Active Windows” section. In the Simulation window, only “Ready-made” timeseries can be selected for renewables for now. This should be modified in a future release. The MC scenario builder for Renewables works the same way as for Thermal Clusters. -[^monthly_allocation]: In the first equation, \\(S_{t-1}\\) is either the initial stock \\(S_0\\) or the final stock of the previous year (hydro hot start) +[^monthly_allocation]: In the first equation, $S_{t-1}$ is either the initial stock $S_0$ or the final stock of the previous year (hydro hot start) -[^daily_allocation]: In the first equation, \\(S_{t-1}\\) is either the initial stock used in M or the final stock of the previous month (\\(D(m-1)\\) +[^daily_allocation]: In the first equation, $S_{t-1}$ is either the initial stock used in M or the final stock of the previous month ($D(m-1)$ [^17]: As long as the System's list of Areas does not change diff --git a/docs/reference-guide/11-modeling.md b/docs/reference-guide/11-modeling.md index aca13288dd..bd9da8a026 100644 --- a/docs/reference-guide/11-modeling.md +++ b/docs/reference-guide/11-modeling.md @@ -66,9 +66,9 @@ Quite different is the situation that prevails in expansion studies, in which we The next sections of this document develop the following subjects: -- Notations used for \\(\mathcal{P}^k\\) +- Notations used for $\mathcal{P}^k$ -- Formulation of \\(\mathcal{P}^k\\) +- Formulation of $\mathcal{P}^k$ - Complements to the standard problems (how to make **Antares\_Simulator** work as a SCOPF ) @@ -81,20 +81,20 @@ The next sections of this document develop the following subjects: | Notation | Explanation | | ------------ | ------------- | -| \\( k \in K \\) | optimization periods (weeks) over which \\(P\\) and \\(P^k\\) are defined (omitted for simplicity) | -| \\(t \in T\\) | individual time steps of any optimization period \\( k\in K\\) (hours of the week) | -| \\(G(N,L)\\) | undirected graph of the power system (connected) | -| \\(n \in N\\) | vertices of \\(G\\), \\(N\\) is an ordered set | -| \\(l \in L\\) | edges of \\(G\\) | -| \\(A\\) | incidence matrix of \\(G\\), dimension \\(N\times L\\) | -| \\(g\\) | spanning tree of \\(G\\) | -| \\(C_g\\) | cycle basis associated with \\(g\\), dimension \\(L\times (L+1-N)\\) | -| \\(L_n^+\subset L\\) | set of edges for which \\(n\\) is the upstream vertex | -| \\(L_n^-\subset L\\) | set of edges for which \\(n\\) is the downstream vertex | -| \\(u_l \in N\\) | vertex upstream from \\(l\\) | -| \\(d_l \in N\\) | vertex downstream from \\(l\\) | -| \\(u \cdot v\\) | inner product of vectors \\(u\\) and \\(v\\) | -| \\(u_\uparrow^p\\) | vector resulting from the permutation on \\(u \in \mathbb{R}^s\\) : \\( u\_\uparrow^p(i)=u(i+p\, \mathrm{mod}\,s)\\) | +| $ k \in K $ | optimization periods (weeks) over which $P$ and $P^k$ are defined (omitted for simplicity) | +| $t \in T$ | individual time steps of any optimization period $ k\in K$ (hours of the week) | +| $G(N,L)$ | undirected graph of the power system (connected) | +| $n \in N$ | vertices of $G$, $N$ is an ordered set | +| $l \in L$ | edges of $G$ | +| $A$ | incidence matrix of $G$, dimension $N\times L$ | +| $g$ | spanning tree of $G$ | +| $C_g$ | cycle basis associated with $g$, dimension $L\times (L+1-N)$ | +| $L_n^+\subset L$ | set of edges for which $n$ is the upstream vertex | +| $L_n^-\subset L$ | set of edges for which $n$ is the downstream vertex | +| $u_l \in N$ | vertex upstream from $l$ | +| $d_l \in N$ | vertex downstream from $l$ | +| $u \cdot v$ | inner product of vectors $u$ and $v$ | +| $u_\uparrow^p$ | vector resulting from the permutation on $u \in \mathbb{R}^s$ : $ u\_\uparrow^p(i)=u(i+p\, \mathrm{mod}\,s)$ | ### Grid @@ -102,110 +102,110 @@ The next sections of this document develop the following subjects: | Notation | Explanation | | ------------ | ------------- | -| \\(C_l^+ \in \mathbb{R}^T_+\\) | initial transmission capacity from \\(u_l\\) to \\(d_l\\) (variable of \\(P\\) and \\(P^k\\)) | -| \\( \overline{C}\_l^+ \in \mathbb{R}^T\_+ \\) | maximum transmission capacity from \\(u_l\\) to \\(d_l\\) (variable of \\(P\\), not used in \\(P^k\\)) | -| \\(C_l^- \in \mathbb{R}^T_+\\) | initial transmission capacity from \\(d_l\\) to \\(u_l\\) (variable of \\(P\\) and \\(P^k\\)) | -| \\( \overline{C}^{-}\_l\in \mathbb{R}^T\_{+} \\) | maximum transmission capacity from \\(d_l\\) to \\(u_l\\) (variable of \\(P\\), not used in \\(P^k\\)) | -| \\(\Psi_l \in \mathbb{R}_+\\) | weekly cost of a maximum capacity investment | -| \\(x_l \in [0,1]\\) | transmission capacity investment level | -| \\(F_l^+ \in \mathbb{R}^T_+\\) | power flow through \\(l\\), from \\(u_l\\) to \\(d_l\\) | -| \\(F_l^- \in \mathbb{R}^T_+\\) | power flow through \\(l\\), from \\(d_l\\) to \\(u_l\\) | -| \\(F_l\in \mathbb{R}^T\\) | total power flow through \\(l\\), \\(F_l=F_l^+-F_l^-\\) | -| \\(\tilde{F}_t \in \mathbb{R}^T\\) | system flow snapshot at time \\(t\\) | -| \\(\gamma_l^+\in \mathbb{R}^T\\) | transmission cost through \\(l\\), from \\(u_l\\) to \\(d_l\\). Proportional to the power flow | -| \\(\gamma_l^-\in \mathbb{R}^T\\) | transmission cost through \\(l\\), from \\(d_l\\) to \\(u_l\\). Proportional to the power flow | -| \\(Z_l \in \mathbb{R}\_+\\) | overall impedance of \\(l\\) | +| $C_l^+ \in \mathbb{R}^T_+$ | initial transmission capacity from $u_l$ to $d_l$ (variable of $P$ and $P^k$) | +| $ \overline{C}\_l^+ \in \mathbb{R}^T\_+ $ | maximum transmission capacity from $u_l$ to $d_l$ (variable of $P$, not used in $P^k$) | +| $C_l^- \in \mathbb{R}^T_+$ | initial transmission capacity from $d_l$ to $u_l$ (variable of $P$ and $P^k$) | +| $ \overline{C}^{-}\_l\in \mathbb{R}^T\_{+} $ | maximum transmission capacity from $d_l$ to $u_l$ (variable of $P$, not used in $P^k$) | +| $\Psi_l \in \mathbb{R}_+$ | weekly cost of a maximum capacity investment | +| $x_l \in [0,1]$ | transmission capacity investment level | +| $F_l^+ \in \mathbb{R}^T_+$ | power flow through $l$, from $u_l$ to $d_l$ | +| $F_l^- \in \mathbb{R}^T_+$ | power flow through $l$, from $d_l$ to $u_l$ | +| $F_l\in \mathbb{R}^T$ | total power flow through $l$, $F_l=F_l^+-F_l^-$ | +| $\tilde{F}_t \in \mathbb{R}^T$ | system flow snapshot at time $t$ | +| $\gamma_l^+\in \mathbb{R}^T$ | transmission cost through $l$, from $u_l$ to $d_l$. Proportional to the power flow | +| $\gamma_l^-\in \mathbb{R}^T$ | transmission cost through $l$, from $d_l$ to $u_l$. Proportional to the power flow | +| $Z_l \in \mathbb{R}\_+$ | overall impedance of $l$ | ### Thermal units **TODO : add units** | Notation | Explanation | | ------------ | ------------- | -| \\(\theta \in \Theta_n\\) | thermal clusters (sets of identical units) installed in node \\(n\\) | -| \\(\Theta\\) | set of all thermal clusters of the power system \\(\Theta = \cup_{n\in N} \Theta_n\\) | -| \\(\overline{P}\_\theta \in \mathbb{R}^T_+\\) | maximum power output from cluster \\(\theta\\), depends on units availability | -| \\(\underline{P}\_\theta \in \mathbb{R}^T_+\\) | mimimum power output from cluster \\(\theta\\), units availability allowing | -| \\(P_\theta \in \mathbb{R}^T_+\\) | power output from cluster \\(\theta\\) | -| \\(\chi_\theta \in \mathbb{R}^T\\) | power output from cluster \\(\theta\\) | -| \\(\sigma_\theta^+ \in \mathbb{R}^T\\) | startup cost of a single unit in cluster \\(\theta\\) | -| \\(\tau_\theta \in \mathbb{R}^T\\) | running unit in \\(\theta\\) : cost independent from output level (aka NoLoadHeatCost) | -| \\(l_\theta \in \mathbb{R}_+\\) | unit in \\(\theta\\) : minimum stable power output when running | -| \\(u_\theta \in \mathbb{R}_+\\) | unit in \\(\theta\\) : maximum net power output when running | -| \\(\Delta_\theta^+ \in \lbrace 1,\dots, \|T\|\rbrace\\) | unit in \\(\theta\\) : minumum on time when running | -| \\(\Delta_\theta^- \in \lbrace 1,\dots, \|T\|\rbrace\\) | unit in \\(\theta\\) : minumum off time when not running | -| \\(\Delta_\theta = \max(\Delta_\theta^-, \Delta_\theta^+) \\) | duration above which both state changes are allowed | -| \\(M_\theta \in \mathbb{N}^T\\) | number of running units in cluster \\(\theta\\) | -| \\(\overline{M}_\theta \in \mathbb{N}^T\\) | maximum number of running units in cluster \\(\theta\\) | -| \\(\underline{M}_\theta \in \mathbb{N}^T\\) | minimum number of running units in cluster \\(\theta\\) | -| \\(M_\theta^+ \in \mathbb{N}^T\\) | number of units in cluster changing from state off to state on in cluster \\(\theta\\) | -| \\(M_\theta^- \in \mathbb{N}^T\\) | number of units in cluster changing from state on to state off in cluster \\(\theta\\) | -| \\(M_\theta^{--} \in \mathbb{N}^T\\) | number of units in cluster changing from state on to state outage cluster \\(\theta\\) | +| $\theta \in \Theta_n$ | thermal clusters (sets of identical units) installed in node $n$ | +| $\Theta$ | set of all thermal clusters of the power system $\Theta = \cup_{n\in N} \Theta_n$ | +| $\overline{P}\_\theta \in \mathbb{R}^T_+$ | maximum power output from cluster $\theta$, depends on units availability | +| $\underline{P}\_\theta \in \mathbb{R}^T_+$ | mimimum power output from cluster $\theta$, units availability allowing | +| $P_\theta \in \mathbb{R}^T_+$ | power output from cluster $\theta$ | +| $\chi_\theta \in \mathbb{R}^T$ | power output from cluster $\theta$ | +| $\sigma_\theta^+ \in \mathbb{R}^T$ | startup cost of a single unit in cluster $\theta$ | +| $\tau_\theta \in \mathbb{R}^T$ | running unit in $\theta$ : cost independent from output level (aka NoLoadHeatCost) | +| $l_\theta \in \mathbb{R}_+$ | unit in $\theta$ : minimum stable power output when running | +| $u_\theta \in \mathbb{R}_+$ | unit in $\theta$ : maximum net power output when running | +| $\Delta_\theta^+ \in \lbrace 1,\dots, \|T\|\rbrace$ | unit in $\theta$ : minumum on time when running | +| $\Delta_\theta^- \in \lbrace 1,\dots, \|T\|\rbrace$ | unit in $\theta$ : minumum off time when not running | +| $\Delta_\theta = \max(\Delta_\theta^-, \Delta_\theta^+) $ | duration above which both state changes are allowed | +| $M_\theta \in \mathbb{N}^T$ | number of running units in cluster $\theta$ | +| $\overline{M}_\theta \in \mathbb{N}^T$ | maximum number of running units in cluster $\theta$ | +| $\underline{M}_\theta \in \mathbb{N}^T$ | minimum number of running units in cluster $\theta$ | +| $M_\theta^+ \in \mathbb{N}^T$ | number of units in cluster changing from state off to state on in cluster $\theta$ | +| $M_\theta^- \in \mathbb{N}^T$ | number of units in cluster changing from state on to state off in cluster $\theta$ | +| $M_\theta^{--} \in \mathbb{N}^T$ | number of units in cluster changing from state on to state outage cluster $\theta$ | ### Reservoir-type hydropower units (or other power storage facilities) **TODO : add units** | Notation | Explanation | | ------------ | ------------- -| \\(\lambda \in \Lambda_n\\) | reservoirs connected to node \\(n\\) | -| \\(\Sigma_\lambda \in \mathbb{R}_+\\) | size of reservoir \\(\lambda\\) : amount of energy that can be stored in \\(\lambda\\) | -| \\(Q\in \mathbb{N}\\) | number of discrete levels defined in reservoir | -| \\(\overline{W}\_\lambda \in \mathbb{R}_+\\) | maximum energy output from \\(\lambda\\) throughout the optimization period | -| \\(\underline{W}\_\lambda \in \mathbb{R}_+\\) | minimum energy output from \\(\lambda\\) throughout the optimization period | -| \\(\overline{H}\_\lambda \in \mathbb{R}_+^T\\) | maximum power output from reservoir \\(\lambda\\). Note : \\(\sum_{t\in T} \overline{H}\_{\lambda\_t} \geq \underline{W}\_\lambda\\) | -| \\(\underline{H}\_\lambda \in \mathbb{R}_+^T\\) | minimum power output from reservoir \\(\lambda\\). Note : \\(\sum_{t\in T} \underline{H}\_{\lambda\_t} \leq \overline{W}\_\lambda\\) | -| \\(H\_\lambda \in \mathbb{R}_+^T\\) | power output from reservoir \\(\lambda\\) | -| \\(r\_\lambda \in \mathbb{R}_+\\) | maximum ratio between output power daily peak and daily average (\\(1 \leq r\_\lambda \leq 24\\)) | -| \\(\varepsilon\_\lambda \in \mathbb{R}\\) | reference water value associated with the reservoir's initial state (date, level) | -| \\(\varepsilon^*\_\lambda \in \mathbb{R}\\) | random component added to the water value (dispatch smoothing effect) | -| \\(\eta\_\lambda \in \mathbb{R}^Q\\) | reference water value associated with the reservoir's final state (date) | -| \\(\rho\_\lambda \in \mathbb{R}_+\\) | efficiency ratio of pumping units (or equivalent devices) available in reservoir \\(\lambda\\) | -| \\(\overline{\Pi}\_\lambda \in \mathbb{R}_+^T\\) | maximum power absorbed by pumps of reservoir \\(\lambda\\) | -| \\(\Pi\_\lambda \in \mathbb{R}_+^T\\) | power absorbed by pumps of reservoir \\(\lambda\\) | -| \\(I\_\lambda \in \mathbb{R}^T_+\\) | natural power inflow to reservoir \\(\lambda\\) | -| \\(O\_\lambda \in \mathbb{R}_+^T\\) | power overflowing from reservoir \\(\lambda\\) : part of inflow that cannot be stored | -| \\(\overline{R}\_\lambda \in \mathbb{R}_+^T\\) | upper bound of the admissible level in reservoir \\(\lambda\\) | -| \\(\underline{R}\_\lambda \in \mathbb{R}_+^T\\) | lower bound of the admissible level in reservoir \\(\lambda\\) | -| \\(R\_\lambda \in \mathbb{R}^T_+\\) | stored energy level in reservoir \\(\lambda\\) | -| \\(\mathfrak{R}\_{\lambda_q} \in \mathbb{R}_+\\) | filling level of reservoir layer \\(q\\) at time \\(T\\) (end of the week) | +| $\lambda \in \Lambda_n$ | reservoirs connected to node $n$ | +| $\Sigma_\lambda \in \mathbb{R}_+$ | size of reservoir $\lambda$ : amount of energy that can be stored in $\lambda$ | +| $Q\in \mathbb{N}$ | number of discrete levels defined in reservoir | +| $\overline{W}\_\lambda \in \mathbb{R}_+$ | maximum energy output from $\lambda$ throughout the optimization period | +| $\underline{W}\_\lambda \in \mathbb{R}_+$ | minimum energy output from $\lambda$ throughout the optimization period | +| $\overline{H}\_\lambda \in \mathbb{R}_+^T$ | maximum power output from reservoir $\lambda$. Note : $\sum_{t\in T} \overline{H}\_{\lambda\_t} \geq \underline{W}\_\lambda$ | +| $\underline{H}\_\lambda \in \mathbb{R}_+^T$ | minimum power output from reservoir $\lambda$. Note : $\sum_{t\in T} \underline{H}\_{\lambda\_t} \leq \overline{W}\_\lambda$ | +| $H\_\lambda \in \mathbb{R}_+^T$ | power output from reservoir $\lambda$ | +| $r\_\lambda \in \mathbb{R}_+$ | maximum ratio between output power daily peak and daily average ($1 \leq r\_\lambda \leq 24$) | +| $\varepsilon\_\lambda \in \mathbb{R}$ | reference water value associated with the reservoir's initial state (date, level) | +| $\varepsilon^*\_\lambda \in \mathbb{R}$ | random component added to the water value (dispatch smoothing effect) | +| $\eta\_\lambda \in \mathbb{R}^Q$ | reference water value associated with the reservoir's final state (date) | +| $\rho\_\lambda \in \mathbb{R}_+$ | efficiency ratio of pumping units (or equivalent devices) available in reservoir $\lambda$ | +| $\overline{\Pi}\_\lambda \in \mathbb{R}_+^T$ | maximum power absorbed by pumps of reservoir $\lambda$ | +| $\Pi\_\lambda \in \mathbb{R}_+^T$ | power absorbed by pumps of reservoir $\lambda$ | +| $I\_\lambda \in \mathbb{R}^T_+$ | natural power inflow to reservoir $\lambda$ | +| $O\_\lambda \in \mathbb{R}_+^T$ | power overflowing from reservoir $\lambda$ : part of inflow that cannot be stored | +| $\overline{R}\_\lambda \in \mathbb{R}_+^T$ | upper bound of the admissible level in reservoir $\lambda$ | +| $\underline{R}\_\lambda \in \mathbb{R}_+^T$ | lower bound of the admissible level in reservoir $\lambda$ | +| $R\_\lambda \in \mathbb{R}^T_+$ | stored energy level in reservoir $\lambda$ | +| $\mathfrak{R}\_{\lambda_q} \in \mathbb{R}_+$ | filling level of reservoir layer $q$ at time $T$ (end of the week) | ### Binding constraints -In problems \\(\mathcal{P}^k\\), the need for a versatile modelling of the power system calls for the introduction of an arbitrary number of linear binding constraints between system's variables throughout the grid, expressed either in terms of hourly power, daily energies or weekly energies. +In problems $\mathcal{P}^k$, the need for a versatile modelling of the power system calls for the introduction of an arbitrary number of linear binding constraints between system's variables throughout the grid, expressed either in terms of hourly power, daily energies or weekly energies. These constraints may bind together synchronous flows as well as thermal units power outputs. They may be related to synchronous values or bear on different times. Herebelow, the generic notation size is used for the relevant dimension of the set to which parameters belong. These dimensions stand as follow -\\(\mathrm{size}=T=168\\) : applicable to lower and upper bounds of constraints between hourly powers -\\(\mathrm{size}=\frac{T}{7}=24\\) : applicable to lower and upper bounds of constraints between daily energies -\\(\mathrm{size}=\frac{T}{168}=1\\) : applicable to lower and upper bounds of constraints between weekly energies +$\mathrm{size}=T=168$ : applicable to lower and upper bounds of constraints between hourly powers +$\mathrm{size}=\frac{T}{7}=24$ : applicable to lower and upper bounds of constraints between daily energies +$\mathrm{size}=\frac{T}{168}=1$ : applicable to lower and upper bounds of constraints between weekly energies Generic notations for binding constraints : | Notation | Explanation | | ------------ | ------------- | -| \\(e \in E\\) | set of all grid interconnections and thermal clusters. \\(E = L \cup \Theta\\) | -| \\(b \in B\\) | binding constraints | -| \\(B_h \subset B\\) | subset of \\(B\\) containing the binding constraints between hourly powers | -| \\(B_d \subset B\\) | subset of \\(B\\) containing the binding constraints between daily energies | -| \\(B_w \subset B\\) | subset of \\(B\\) containing the binding constraints between weekly energies | -| \\(\alpha_e^b \in \mathbb{R}\\) | weight of \\(e\\) (flow within \\(e\\) or output from \\(e\\)) in the expression of constraint \\(b\\) | -| \\(o_e^b \in \mathbb{N}\\) | time offset of \\(e\\) (flow within \\(e\\) or output from \\(e\\)) in the expression of constraint \\(b\\) | -| \\(u^b \in \mathbb{R}^{\mathrm{size}}\\) | upper bound of binding constraint \\(b\\) | -| \\(l^b \in \mathbb{R}^{\mathrm{size}}\\) | lower bound of binding constraint \\(b\\) | +| $e \in E$ | set of all grid interconnections and thermal clusters. $E = L \cup \Theta$ | +| $b \in B$ | binding constraints | +| $B_h \subset B$ | subset of $B$ containing the binding constraints between hourly powers | +| $B_d \subset B$ | subset of $B$ containing the binding constraints between daily energies | +| $B_w \subset B$ | subset of $B$ containing the binding constraints between weekly energies | +| $\alpha_e^b \in \mathbb{R}$ | weight of $e$ (flow within $e$ or output from $e$) in the expression of constraint $b$ | +| $o_e^b \in \mathbb{N}$ | time offset of $e$ (flow within $e$ or output from $e$) in the expression of constraint $b$ | +| $u^b \in \mathbb{R}^{\mathrm{size}}$ | upper bound of binding constraint $b$ | +| $l^b \in \mathbb{R}^{\mathrm{size}}$ | lower bound of binding constraint $b$ | ### Demand, security uplift, unsupplied and spilled energies | Notation | Explanation | | ------------ | ------------- | -| \\(D_n \in \mathbb{R}^T\\) | net power demand expressed in node \\(n\\), including must-run generation | -| \\(S_n \in \mathbb{R}^T_+\\) | demand security uplift to be faced in node \\(n\\), by activation of security reserves | -| \\(\delta_n^+ \in \mathbb{R}^T\\) | normative unsupplied energy value in node \\(n\\). Value of lost load - VOLL | -| \\(G_n^+ \in \mathbb{R}^T_+\\) | unsupplied power in the nominal state | -| \\(\delta_n^- \in \mathbb{R}^T\\) | normative spilled energy value in node \\(n\\) (value of wasted energy) | -| \\(G_n^- \in \mathbb{R}^T_+\\) | spilled power in the nominal state | +| $D_n \in \mathbb{R}^T$ | net power demand expressed in node $n$, including must-run generation | +| $S_n \in \mathbb{R}^T_+$ | demand security uplift to be faced in node $n$, by activation of security reserves | +| $\delta_n^+ \in \mathbb{R}^T$ | normative unsupplied energy value in node $n$. Value of lost load - VOLL | +| $G_n^+ \in \mathbb{R}^T_+$ | unsupplied power in the nominal state | +| $\delta_n^- \in \mathbb{R}^T$ | normative spilled energy value in node $n$ (value of wasted energy) | +| $G_n^- \in \mathbb{R}^T_+$ | spilled power in the nominal state | -## Formulation of problem \\(\mathcal{P}^k\\) +## Formulation of problem $\mathcal{P}^k$ Superscript k is implicit in all subsequent notations of this section (omitted for simplicity's sake) @@ -218,36 +218,36 @@ $$ with -\\( +$ \displaystyle \Omega\_{\mathrm{dispatch}} = \Omega\_{\mathrm{transmission}}+\Omega\_{\mathrm{hydro}}+\Omega\_{\mathrm{thermal}}+\Omega\_{\mathrm{unsupplied}}+\Omega\_{\mathrm{spillage}} -\\) +$ -\\( +$ \displaystyle \Omega\_{\mathrm{transmission}}=\sum_{l \in L} \gamma_l^+ \cdot F_l^+ + \gamma_l^- \cdot F_l^- -\\) +$ -\\( +$ \displaystyle \Omega\_{\mathrm{hydro}} = \sum\_{n \in N} \sum\_{\lambda in \Lambda\_n} (\varepsilon\_\lambda + \varepsilon^*\_\lambda)\cdot(H\_\lambda - \rho\_\lambda \Pi\_\lambda + O\_\lambda) - \sum\_{n \in N} \sum\_{\lambda \in \Lambda\_n}\sum\_{q=1}^Q \eta\_{\lambda\_q} \mathfrak{R}\_{\lambda_q} -\\) +$ -\\( +$ \displaystyle \Omega\_{\mathrm{thermal}}=\sum\_{n \in N} \sum\_{\theta \in \Theta\_n} \chi\_\theta \cdot P\_\theta + \sigma\_\theta^+ \cdot M\_\theta^+ + \tau\_\theta \cdot M\_\theta -\\) +$ -\\( +$ \displaystyle \Omega\_{\mathrm{unsupplied}}=\sum\_{n \in N} \delta_n^+ \cdot G_n^+ -\\) +$ -\\( +$ \displaystyle \Omega\_{\mathrm{spillage}}=\sum\_{n \in N} \delta_n^- \cdot G_n^- -\\) +$ -\\(\Omega\_{\mathrm{unit com}}\\) is the expression derived from \\(\Omega\_{\mathrm{dispatch}}\\) by replacing all variables that depend on the system's state by their equivalent in the uplifted state. +$\Omega\_{\mathrm{unit com}}$ is the expression derived from $\Omega\_{\mathrm{dispatch}}$ by replacing all variables that depend on the system's state by their equivalent in the uplifted state. ## Constraints related to the nominal system state @@ -255,83 +255,83 @@ Balance between load and generation: First Kirchhoff's law: -\\( +$ \displaystyle \forall n \in N, \sum\_{l \in L\_n^+} F_l - \sum\_{l \in L\_n^-} F_l = \left( G\_n^+ + \sum\_{\lambda \in \Lambda\_n}(H\_\lambda - \Pi\_\lambda) + \sum\_{\theta \ \in \Theta\_n} P\_\theta\right)-(G\_n^-+D\_n) -\\) +$ On each node, the unsupplied power is bounded by the net positive demand: -\\( +$ \displaystyle \forall n \in N, 0 \leq G\_n^+ \leq \max(0, D_n) -\\) +$ On each node, the spilled power is bounded by the overall generation of the node (must-run + dispatchable power): -\\( +$ \displaystyle \forall n \in N, 0 \leq G_n^- \leq -\min(0, D_n) + \sum\_{\lambda \in \Lambda\_n}H\_\lambda + \sum\_{\theta \ \in \Theta\_n} P\_\theta -\\) +$ Flows on the grid: -\\( +$ \displaystyle \forall l \in L, 0 \leq F\_l^+ \leq C\_l^+ +(\overline{C}^{+}\_l - C\_l^+)x\_l -\\) +$ -\\( +$ \displaystyle \forall l \in L, 0 \leq F\_l^- \leq C\_l^- +(\overline{C}^{-}\_l - C\_l^-)x\_l -\\) +$ -\\( +$ \displaystyle \forall l \in L, F\_l = F\_l^+ - F\_l^- -\\) +$ Flows are bounded by the sum of an initial capacity and of a complement brought by investment Binding constraints : -\\( +$ \displaystyle \forall b \in B\_h, l^b \leq \sum\_{e \in E} \alpha\_e^b (F\_e)\_{\uparrow}^{o\_e^b} \leq u^b -\\) +$ -\\( +$ \displaystyle \forall b \in B\_d, \forall k \in \lbrace 0,\dots,6\rbrace, l^b \leq \sum\_{e \in E} \alpha\_e^b \sum\_{t \in \lbrace 1,\dots,24\rbrace} (F\_e)\_{\uparrow {24k+t}}^{o\_e^b} \leq u^b -\\) +$ -\\( +$ \displaystyle \forall b \in B\_w, l^b \leq \sum\_{e \in E} \alpha\_e^b \sum\_{t \in T} F\_{e\_t} \leq u^b -\\) +$ Reservoir-type Hydro power: The energy generated throughout the optimization period is bounded -\\( +$ \displaystyle \forall n \in N, \forall \lambda \in \Lambda\_n, \underline{W}\_{\lambda} \ leq \sum\_{t\in T} H\_{\lambda\_t} \leq \overline{W}\_{\lambda} -\\) +$ FIXME : RHS -\\( +$ \displaystyle \forall n \in N, \forall \lambda \in \Lambda\_n, \sum\_{t\in T} H\_{\lambda\_t} - \sum\_{t\in T} \rho\_t \Pi\_{\lambda\_t} = \overline{W}\_{\lambda} -\\) +$ Instantaneous generating power is bounded -\\( +$ \displaystyle \forall n \in N, \forall \lambda \in \Lambda\_n, \underline{H}\_{\lambda} \leq H\_{\lambda} \leq \overline{H}\_{\lambda} -\\) +$ Intra-daily power modulations are bounded -\\( +$ \displaystyle \forall n \in N, \forall \lambda \in \Lambda\_n, \forall k \in \lbrace 1, \ldots, 6 \rbrace, \frac{\max\_{t \in \lbrace 24k+1,\ldots, 24k+24 \rbrace} H\_{\lambda\_t}}{\sum\_{t \in \lbrace 24k+1,\ldots, 24k+24 \rbrace} H\_{\lambda\_t}} \leq r\_{\lambda} -\\) +$ Instantaneous pumping power is bounded -\\( +$ \displaystyle \forall n \in N, \forall \lambda \in \Lambda\_n, 0 \leq \Pi\_{\lambda} \leq \overline{\Pi}\_{\lambda} -\\) +$ Reservoir level evolution depends on generating power, pumping power, pumping efficiency, natural inflows and overflows @@ -351,11 +351,11 @@ Minimum running and not-running durations contribute to the unit-commitment plan All constraints to previously defined for regular operation conditions are repeated with replacement of all variables by their twins when they exist. -Besides, in the expression of constraints , all occurrences of are replaced by \\(D_n + S_n\\) +Besides, in the expression of constraints , all occurrences of are replaced by $D_n + S_n$ ## Antares as a SCOPF ("flow-based model") -When problems \\(\mathcal{P}^k\\) do not include any instance of so-called ";binding constraints"; and if no market pools are defined, the flows within the grid are only committed to meet the bounds set on the initial transmission capacities, potentially reinforced by investments (problem ).In other words, there are no electrical laws enforcing any particular pattern on the flows, even though hurdles costs and may influence flow directions through an economic signal. +When problems $\mathcal{P}^k$ do not include any instance of so-called ";binding constraints"; and if no market pools are defined, the flows within the grid are only committed to meet the bounds set on the initial transmission capacities, potentially reinforced by investments (problem ).In other words, there are no electrical laws enforcing any particular pattern on the flows, even though hurdles costs and may influence flow directions through an economic signal. In the general case, such a raw backbone model is a very simplified representation of a real power system whose topology and consistency are much more complex. While the full detailed modeling of the system within Antares is most often out of the question, it may happen that additional data and/or observations can be incorporated in the problems solved by the software. @@ -369,19 +369,19 @@ When a full flow-based model cannot be set up (lack of robust data for the relev ### Implementation of Kirchhoff's second law -The implementation ofKirchhoff's second law for the reference state calls for the following additional hourly binding \\(L+1-N\\) constraints: +The implementation ofKirchhoff's second law for the reference state calls for the following additional hourly binding $L+1-N$ constraints: -\\( +$ \forall t \in T, C\_{g}^t Diag(Z\_{l}) \tilde{F}\_{t} = 0 -\\) +$ ### Implementation of a passive loop flow In cases where a residual passive loop flow should be incorporated in the model to complete the enforcement of regular Kirchhoff's rules, the binding constraints mentioned in 7.1 should be replaced by: -\\( +$ \forall t \in T, C\_{g}^t Diag(Z\_{l}) \tilde{F}\_{t} = C\_{g}^t Diag(Z\_{l}) \tilde{\phi}\_{t} -\\) +$ ### Modelling of phase-shifting transformers @@ -389,16 +389,16 @@ In cases where the power system is equipped with phase-shifting transformers who | Notation | Explanation | | ------------ | ------------- | -| \\(\Pi\_{l}^{+shift} \in \mathbb{R}\_{+}\\) | Maximum positive shifting ability of a device equipping link \\(l\\)| -| \\(\Pi^{+shift} \in \mathbb{R}^{L}\\) | Snapshots formed by all positive synchronous deviations \\(\Pi\_{l}^{+shift} \in \mathbb{R}\_{+}\\) | -| \\(\Pi\_{l}^{+shift} \in \mathbb{R}\_{-}\\) | Maximum negative shifting ability of a device equipping link \\(l\\)| -| \\(\Pi^{-shift} \in \mathbb{R}^{L}\\) | Snapshots formed by all negative synchronous deviations \\(\Pi\_{l}^{-shift} \in \mathbb{R}\_{-}\\) | +| $\Pi\_{l}^{+shift} \in \mathbb{R}\_{+}$ | Maximum positive shifting ability of a device equipping link $l$| +| $\Pi^{+shift} \in \mathbb{R}^{L}$ | Snapshots formed by all positive synchronous deviations $\Pi\_{l}^{+shift} \in \mathbb{R}\_{+}$ | +| $\Pi\_{l}^{+shift} \in \mathbb{R}\_{-}$ | Maximum negative shifting ability of a device equipping link $l$| +| $\Pi^{-shift} \in \mathbb{R}^{L}$ | Snapshots formed by all negative synchronous deviations $\Pi\_{l}^{-shift} \in \mathbb{R}\_{-}$ | The enhancement of the model with a representation of the phase-shifting components of the real system then requires to re-formulate as follows the binding constraints defined in 7.2: -\\( +$ \forall t \in T, C\_{g}^t Diag(Z\_{l}) \tilde{\phi}\_{t} - \Pi^{-shift} \leq C\_{g}^t Diag(Z\_{l}) \tilde{F}\_{t} \leq C\_{g}^t Diag(Z\_{l}) \tilde{\phi}\_{t} + \Pi^{+shift} -\\) +$ ### Modelling of DC components diff --git a/docs/reference-guide/14-adequacy-patch.md b/docs/reference-guide/14-adequacy-patch.md index eebcbeda5f..0a77074e0d 100644 --- a/docs/reference-guide/14-adequacy-patch.md +++ b/docs/reference-guide/14-adequacy-patch.md @@ -17,7 +17,7 @@ It should be noted that, in the current implementation of the patch within Antar The rule implemented is called the « Local Matching » rule: -- This rule consists in satisfying **ENS \\(\leq\\) DENS** (Domestic Energy not Served) for all physical areas inside the adequacy patch. +- This rule consists in satisfying **ENS $\leq$ DENS** (Domestic Energy not Served) for all physical areas inside the adequacy patch. - It specifies that an area cannot export more than its local margin. This means that an area which can serve local demand with local generation, should never have ENS.