From e4b8ef431434fbc0dbae287d9a173cb94e7aa3a6 Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Wed, 19 Jul 2023 11:06:38 +0200 Subject: [PATCH 1/7] docs: add device_scheduler Signed-off-by: Victor Garcia Reolid --- documentation/concepts/device_scheduler.rst | 151 ++++++++++++++++++++ documentation/index.rst | 1 + 2 files changed, 152 insertions(+) create mode 100644 documentation/concepts/device_scheduler.rst diff --git a/documentation/concepts/device_scheduler.rst b/documentation/concepts/device_scheduler.rst new file mode 100644 index 000000000..06f688faa --- /dev/null +++ b/documentation/concepts/device_scheduler.rst @@ -0,0 +1,151 @@ +:orphan: + +.. _device_scheduler: + +Device Scheduler +=========== + +Introduction +-------------- +This generic device scheduler is able to handle an EMS with multiple devices, with various types of constraints on the EMS level and on the device level, +and with multiple market commitments on the EMS level. + +A typical example is a house with many devices. The commitments are assumed to be with regard to the flow of energy to the device (positive for consumption, negative for production). In practice, this generic scheduler is used in the **StorageScheduler** to schedule a storage device. + +The solver minimises the costs of deviating from the commitments. + + + +Notation +--------- + +================================ ================================================ ============================================================================================================== +Symbol Variable in the Code Description +================================ ================================================ ============================================================================================================== +:math:`\Delta_{up}(c,j)` commitment_upwards_deviation Upwards deviation from the power commitment of the EMS. +:math:`\Delta_{down}(c,j)` commitment_downwards_deviation Downward deviation from the power commitment of the EMS. +:math:`\Delta Stock(d,j)` n/a Change of stock of device :math:`d` in the :math:`j` time period. +:math:`Price_{up}(c,j)` up_price Price of incurring a upwards deviations in commitment :math:`c` in the :math:`j` time period. +:math:`Price_{down}(c,j)` down_price Price of incurring a downward deviations in commitment :math:`c` in the :math:`j` time period. +:math:`\eta_{up}(d,j)` device_derivative_up_efficiency Upwards conversion efficiency. +:math:`\eta_{down}(d,j)` device_derivative_down_efficiency Downward conversion efficiency. +:math:`Stock_{min}(d,j)` device_min Minium quantity for the Stock of device :math:`d` at time :math:`j`. +:math:`Stock_{max}(d,j)` device_max Maximum quantity for the Stock of device :math:`d` at time :math:`j`. +:math:`\epsilon(d,j)` efficiencies Stock energy losses. +:math:`P_{up}(d,j)` device_power_up Upwards power of device :math:`d` at time :math:`j`. +:math:`P_{down}(d,j)` device_power_down Downward power of device :math:`d` at time :math:`j`. +:math:`P_{max}(d,j)` device_derivative_max Maximum flow of device :math:`d` at time :math:`j`. +:math:`P_{min}(d,j)` device_derivative_min Minium flow of device :math:`d` at time :math:`j`. +:math:`P^{ems}_{min}(j)` ems_derivative_min Minium flow of the EMS at time :math:`j`. +:math:`P^{ems}_{max}(j)` ems_derivative_max Maximum flow of the EMS :math:`d` at time :math:`j`. +:math:`P^{ems}(j)` ems_power Aggregated power of all the devices at time :math:`j`. +:math:`Commitment(c,j)` commitment_quantity Commitments made by the EMS. +================================ ================================================ ============================================================================================================== + +Cost Function +-------------- + +The cost function quantifies the total cost of upwards and downwards deviations from the different commitments. + +.. math:: + :name: cost_function + + \min [\sum_{c,j} \Delta _{up}(c,j) \cdot Price_{up}(c,j) + \Delta_{down}(c,j) \cdot Price_{down}(c,j)] + + +State Dynamics +--------------- + +To simplify the description of the model, the auxiliary variable :math:`\Delta Stock(d,j)` is introduced in the documentation. It represents the +change of :math:`Stock(d,j)`, taking into account conversion efficiencies but not considering the storage losses. + +.. math:: + :name: stock + + \Delta Stock(d,j) = \frac{P_{down}(d,j)}{\eta_{down}(d,j) } + P_{up}(d,j) \cdot \eta_{up}(d,j) + + + +.. math:: + :name: device_bounds + + Stock_{min}(d,j) \leq Stock(d,j) - Stock(d,-1)\leq Stock_{max}(d,j) + + +Perfect Efficiency +^^^^^^^^^^^^^^^^^^^ + +.. math:: + :name: efficiency_e1 + + Stock(d, j) = Stock(d, j-1) + \Delta Stock(d,j) + +Left Efficiency +^^^^^^^^^^^^^^^^^ +First apply the stock change, then apply the losses (i.e. the stock changes on the left side of the time interval in which the losses apply) + + +.. math:: + :name: efficiency_left + + Stock(d, j) = (Stock(d, j-1) + \Delta Stock(d,j)) \cdot \epsilon(d,j) + + +Right Efficiency +^^^^^^^^^^^^^^^^^ +First apply the losses, then apply the stock change (i.e. the stock changes on the right side of the time interval in which the losses apply) + +.. math:: + :name: efficiency_right + + Stock(d, j) = Stock(d, j-1) \cdot \epsilon(d,j) + \Delta Stock(d,j) + +Linear Efficiency +^^^^^^^^^^^^^^^^^ +Assume the change happens at a constant rate, leading to a linear stock change, and exponential decay, within the current interval + +.. math:: + :name: efficiency_linear + + Stock(d, j) = Stock(d, j-1) \cdot \epsilon(d,j) + \Delta Stock(d,j) \cdot \frac{\epsilon(d,j) - 1}{log(\epsilon(d,j))} + +Constraints +-------------- + +Device bounds +^^^^^^^^^^^^^ + +.. math:: + :name: device_derivative_bounds + + P_{min}(d,j) \leq P_{up}(d,j) + P_{down}(d,j)\leq P_{max}(d,j) + +.. math:: + :name: device_down_derivative_bounds + + min(P_{min}(d,j),0) \leq P_{down}(d,j)\leq 0 + + +.. math:: + :name: device_up_derivative_bounds + + 0 \leq P_{up}(d,j)\leq max(P_{max}(d,j),0) + + +.. math:: + :name: ems_derivative_bounds + + P^{ems}_{min}(j) \leq \sum_d P^{ems}(d,j) \leq P^{ems}_{max}(j) + +EMS Power +^^^^^^^^^^ + +.. math:: + :name: ems_flow_commitment_equalities + + \sum_d P^{ems}(d,j) = \sum_c Commitment(c,j) + \Delta {up}(c,j) + \Delta {down}(c,j) + +.. math:: + :name: device_derivative_equalities + + P^{ems}(d,j) = P_{up}(d,j) + P_{down}(d,j) \ No newline at end of file diff --git a/documentation/index.rst b/documentation/index.rst index 0bac7648f..cca3ef660 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -173,6 +173,7 @@ The platform operator of FlexMeasures can be an Aggregator. concepts/inbuilt-smart-functionality concepts/algorithms concepts/security_auth + concepts/device_scheduler .. toctree:: From 5fc397b0c653eb9f8d9ffa083cf49937c06520cc Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Thu, 20 Jul 2023 16:43:18 +0200 Subject: [PATCH 2/7] docs: grammar Signed-off-by: Victor Garcia Reolid --- documentation/concepts/device_scheduler.rst | 76 ++++++++++++++------- 1 file changed, 51 insertions(+), 25 deletions(-) diff --git a/documentation/concepts/device_scheduler.rst b/documentation/concepts/device_scheduler.rst index 06f688faa..a5330a5c6 100644 --- a/documentation/concepts/device_scheduler.rst +++ b/documentation/concepts/device_scheduler.rst @@ -1,8 +1,6 @@ -:orphan: - .. _device_scheduler: -Device Scheduler +Device scheduler =========== Introduction @@ -19,27 +17,51 @@ The solver minimises the costs of deviating from the commitments. Notation --------- +Indexes +^^^^^^^^ +================================ ================================================ ============================================================================================================== +Symbol Variable in the Code Description +================================ ================================================ ============================================================================================================== +:math:`c` c Commitments. +:math:`d` d Devices. +:math:`j` j Time. +================================ ================================================ ============================================================================================================== + +.. note:: + The time index :math:`j` has two interpretations: a time period or an instantaneous moment at the end of time period :math:`j`. + For example, :math:`j` in flow constraints correspond to time periods, whereas :math:`j` used in a stock constraint refers end of time period :math:`j`. + +Parameters +^^^^^^^^^^ ================================ ================================================ ============================================================================================================== Symbol Variable in the Code Description ================================ ================================================ ============================================================================================================== -:math:`\Delta_{up}(c,j)` commitment_upwards_deviation Upwards deviation from the power commitment of the EMS. -:math:`\Delta_{down}(c,j)` commitment_downwards_deviation Downward deviation from the power commitment of the EMS. -:math:`\Delta Stock(d,j)` n/a Change of stock of device :math:`d` in the :math:`j` time period. -:math:`Price_{up}(c,j)` up_price Price of incurring a upwards deviations in commitment :math:`c` in the :math:`j` time period. -:math:`Price_{down}(c,j)` down_price Price of incurring a downward deviations in commitment :math:`c` in the :math:`j` time period. +:math:`Price_{up}(c,j)` up_price Price of incurring an upwards deviations in commitment :math:`c` during :math:`j` time period. +:math:`Price_{down}(c,j)` down_price Price of incurring a downwards deviations in commitment :math:`c` during :math:`j` time period. :math:`\eta_{up}(d,j)` device_derivative_up_efficiency Upwards conversion efficiency. -:math:`\eta_{down}(d,j)` device_derivative_down_efficiency Downward conversion efficiency. -:math:`Stock_{min}(d,j)` device_min Minium quantity for the Stock of device :math:`d` at time :math:`j`. -:math:`Stock_{max}(d,j)` device_max Maximum quantity for the Stock of device :math:`d` at time :math:`j`. +:math:`\eta_{down}(d,j)` device_derivative_down_efficiency Downwards conversion efficiency. +:math:`Stock_{min}(d,j)` device_min Minimum quantity for the stock of device :math:`d` at the end of :math:`j` time period. +:math:`Stock_{max}(d,j)` device_max Maximum quantity for the stock of device :math:`d` at the end of :math:`j` time period. :math:`\epsilon(d,j)` efficiencies Stock energy losses. -:math:`P_{up}(d,j)` device_power_up Upwards power of device :math:`d` at time :math:`j`. -:math:`P_{down}(d,j)` device_power_down Downward power of device :math:`d` at time :math:`j`. -:math:`P_{max}(d,j)` device_derivative_max Maximum flow of device :math:`d` at time :math:`j`. -:math:`P_{min}(d,j)` device_derivative_min Minium flow of device :math:`d` at time :math:`j`. -:math:`P^{ems}_{min}(j)` ems_derivative_min Minium flow of the EMS at time :math:`j`. -:math:`P^{ems}_{max}(j)` ems_derivative_max Maximum flow of the EMS :math:`d` at time :math:`j`. -:math:`P^{ems}(j)` ems_power Aggregated power of all the devices at time :math:`j`. -:math:`Commitment(c,j)` commitment_quantity Commitments made by the EMS. +:math:`P_{max}(d,j)` device_derivative_max Maximum flow of device :math:`d` during :math:`j` time period. +:math:`P_{min}(d,j)` device_derivative_min Minimum flow of device :math:`d` during :math:`j` time period. +:math:`P^{ems}_{min}(j)` ems_derivative_min Minimum flow of the EMS during :math:`j` time period. +:math:`P^{ems}_{max}(j)` ems_derivative_max Maximum flow of the EMS during :math:`j` time period. +:math:`Commitment(c,j)` commitment_quantity Commitment c (at EMS level) over time step :math:`j`. +================================ ================================================ ============================================================================================================== + + +Variables +^^^^^^^^^ +================================ ================================================ ============================================================================================================== +Symbol Variable in the Code Description +================================ ================================================ ============================================================================================================== +:math:`\Delta_{up}(c,j)` commitment_upwards_deviation Upwards deviation from the power commitment :math:`c` of the EMS during :math:`j` time period. +:math:`\Delta_{down}(c,j)` commitment_downwards_deviation Downwards deviation from the power commitment :math:`c` of the EMS during :math:`j` time period. +:math:`\Delta Stock(d,j)` n/a Change of stock of device :math:`d` at the end of :math:`j` time period. +:math:`P_{up}(d,j)` device_power_up Upwards power of device :math:`d` during :math:`j` time period. +:math:`P_{down}(d,j)` device_power_down Downwards power of device :math:`d` during :math:`j` time period. +:math:`P^{ems}(j)` ems_power Aggregated power of all the devices during :math:`j` time period. ================================ ================================================ ============================================================================================================== Cost Function @@ -132,20 +154,24 @@ Device bounds 0 \leq P_{up}(d,j)\leq max(P_{max}(d,j),0) +Grid constraints +^^^^^^^^^^^^^^^^^ + +.. math:: + :name: device_derivative_equalities + + P^{ems}(d,j) = P_{up}(d,j) + P_{down}(d,j) + .. math:: :name: ems_derivative_bounds P^{ems}_{min}(j) \leq \sum_d P^{ems}(d,j) \leq P^{ems}_{max}(j) -EMS Power -^^^^^^^^^^ +Energy management system +^^^^^^^^^^^^^^^^^^^^^^^^^ .. math:: :name: ems_flow_commitment_equalities \sum_d P^{ems}(d,j) = \sum_c Commitment(c,j) + \Delta {up}(c,j) + \Delta {down}(c,j) -.. math:: - :name: device_derivative_equalities - - P^{ems}(d,j) = P_{up}(d,j) + P_{down}(d,j) \ No newline at end of file From f060acac95d53503f7d82957458be3d0131723d2 Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Thu, 20 Jul 2023 16:45:53 +0200 Subject: [PATCH 3/7] docs: clarify index. Signed-off-by: Victor Garcia Reolid --- documentation/concepts/device_scheduler.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/concepts/device_scheduler.rst b/documentation/concepts/device_scheduler.rst index a5330a5c6..a4ad2012e 100644 --- a/documentation/concepts/device_scheduler.rst +++ b/documentation/concepts/device_scheduler.rst @@ -22,9 +22,9 @@ Indexes ================================ ================================================ ============================================================================================================== Symbol Variable in the Code Description ================================ ================================================ ============================================================================================================== -:math:`c` c Commitments. -:math:`d` d Devices. -:math:`j` j Time. +:math:`c` c Commitments, for example, day-ahead or intra-day market commitments. +:math:`d` d Devices, for example, a battery or a load. +:math:`j` j 0-indexed time dimension. ================================ ================================================ ============================================================================================================== .. note:: From a7b350b343fa10c8ad228b49897e2ccd0b452d5d Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Thu, 20 Jul 2023 16:49:23 +0200 Subject: [PATCH 4/7] docs: change title Signed-off-by: Victor Garcia Reolid --- documentation/concepts/device_scheduler.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/concepts/device_scheduler.rst b/documentation/concepts/device_scheduler.rst index a4ad2012e..c4b3c591b 100644 --- a/documentation/concepts/device_scheduler.rst +++ b/documentation/concepts/device_scheduler.rst @@ -167,8 +167,8 @@ Grid constraints P^{ems}_{min}(j) \leq \sum_d P^{ems}(d,j) \leq P^{ems}_{max}(j) -Energy management system -^^^^^^^^^^^^^^^^^^^^^^^^^ +Power coupling constraints +^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. math:: :name: ems_flow_commitment_equalities From cc6eee9b8522cec7c90b3b65ffe53fa174b1b77b Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Fri, 21 Jul 2023 09:39:02 +0200 Subject: [PATCH 5/7] docs: capitalizing just the first and fix grammar Signed-off-by: Victor Garcia Reolid --- documentation/concepts/device_scheduler.rst | 42 ++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/documentation/concepts/device_scheduler.rst b/documentation/concepts/device_scheduler.rst index c4b3c591b..60b9b90e6 100644 --- a/documentation/concepts/device_scheduler.rst +++ b/documentation/concepts/device_scheduler.rst @@ -29,24 +29,24 @@ Symbol Variable in the Code .. note:: The time index :math:`j` has two interpretations: a time period or an instantaneous moment at the end of time period :math:`j`. - For example, :math:`j` in flow constraints correspond to time periods, whereas :math:`j` used in a stock constraint refers end of time period :math:`j`. + For example, :math:`j` in flow constraints correspond to time periods, whereas :math:`j` used in a stock constraint refers to the end of time period :math:`j`. Parameters ^^^^^^^^^^ ================================ ================================================ ============================================================================================================== Symbol Variable in the Code Description ================================ ================================================ ============================================================================================================== -:math:`Price_{up}(c,j)` up_price Price of incurring an upwards deviations in commitment :math:`c` during :math:`j` time period. -:math:`Price_{down}(c,j)` down_price Price of incurring a downwards deviations in commitment :math:`c` during :math:`j` time period. +:math:`Price_{up}(c,j)` up_price Price of incurring an upwards deviations in commitment :math:`c` during time period :math:`j`. +:math:`Price_{down}(c,j)` down_price Price of incurring a downwards deviations in commitment :math:`c` during time period :math:`j`. :math:`\eta_{up}(d,j)` device_derivative_up_efficiency Upwards conversion efficiency. :math:`\eta_{down}(d,j)` device_derivative_down_efficiency Downwards conversion efficiency. -:math:`Stock_{min}(d,j)` device_min Minimum quantity for the stock of device :math:`d` at the end of :math:`j` time period. -:math:`Stock_{max}(d,j)` device_max Maximum quantity for the stock of device :math:`d` at the end of :math:`j` time period. +:math:`Stock_{min}(d,j)` device_min Minimum quantity for the stock of device :math:`d` at the end of time period :math:`j`. +:math:`Stock_{max}(d,j)` device_max Maximum quantity for the stock of device :math:`d` at the end of time period :math:`j`. :math:`\epsilon(d,j)` efficiencies Stock energy losses. -:math:`P_{max}(d,j)` device_derivative_max Maximum flow of device :math:`d` during :math:`j` time period. -:math:`P_{min}(d,j)` device_derivative_min Minimum flow of device :math:`d` during :math:`j` time period. -:math:`P^{ems}_{min}(j)` ems_derivative_min Minimum flow of the EMS during :math:`j` time period. -:math:`P^{ems}_{max}(j)` ems_derivative_max Maximum flow of the EMS during :math:`j` time period. +:math:`P_{max}(d,j)` device_derivative_max Maximum flow of device :math:`d` during time period :math:`j`. +:math:`P_{min}(d,j)` device_derivative_min Minimum flow of device :math:`d` during time period :math:`j`. +:math:`P^{ems}_{min}(j)` ems_derivative_min Minimum flow of the EMS during time period :math:`j`. +:math:`P^{ems}_{max}(j)` ems_derivative_max Maximum flow of the EMS during time period :math:`j`. :math:`Commitment(c,j)` commitment_quantity Commitment c (at EMS level) over time step :math:`j`. ================================ ================================================ ============================================================================================================== @@ -56,15 +56,15 @@ Variables ================================ ================================================ ============================================================================================================== Symbol Variable in the Code Description ================================ ================================================ ============================================================================================================== -:math:`\Delta_{up}(c,j)` commitment_upwards_deviation Upwards deviation from the power commitment :math:`c` of the EMS during :math:`j` time period. -:math:`\Delta_{down}(c,j)` commitment_downwards_deviation Downwards deviation from the power commitment :math:`c` of the EMS during :math:`j` time period. -:math:`\Delta Stock(d,j)` n/a Change of stock of device :math:`d` at the end of :math:`j` time period. -:math:`P_{up}(d,j)` device_power_up Upwards power of device :math:`d` during :math:`j` time period. -:math:`P_{down}(d,j)` device_power_down Downwards power of device :math:`d` during :math:`j` time period. -:math:`P^{ems}(j)` ems_power Aggregated power of all the devices during :math:`j` time period. +:math:`\Delta_{up}(c,j)` commitment_upwards_deviation Upwards deviation from the power commitment :math:`c` of the EMS during time period :math:`j`. +:math:`\Delta_{down}(c,j)` commitment_downwards_deviation Downwards deviation from the power commitment :math:`c` of the EMS during time period :math:`j`. +:math:`\Delta Stock(d,j)` n/a Change of stock of device :math:`d` at the end of time period :math:`j`. +:math:`P_{up}(d,j)` device_power_up Upwards power of device :math:`d` during time period :math:`j`. +:math:`P_{down}(d,j)` device_power_down Downwards power of device :math:`d` during time period :math:`j`. +:math:`P^{ems}(j)` ems_power Aggregated power of all the devices during time period :math:`j`. ================================ ================================================ ============================================================================================================== -Cost Function +Cost function -------------- The cost function quantifies the total cost of upwards and downwards deviations from the different commitments. @@ -75,7 +75,7 @@ The cost function quantifies the total cost of upwards and downwards deviations \min [\sum_{c,j} \Delta _{up}(c,j) \cdot Price_{up}(c,j) + \Delta_{down}(c,j) \cdot Price_{down}(c,j)] -State Dynamics +State dynamics --------------- To simplify the description of the model, the auxiliary variable :math:`\Delta Stock(d,j)` is introduced in the documentation. It represents the @@ -94,7 +94,7 @@ change of :math:`Stock(d,j)`, taking into account conversion efficiencies but no Stock_{min}(d,j) \leq Stock(d,j) - Stock(d,-1)\leq Stock_{max}(d,j) -Perfect Efficiency +Perfect efficiency ^^^^^^^^^^^^^^^^^^^ .. math:: @@ -102,7 +102,7 @@ Perfect Efficiency Stock(d, j) = Stock(d, j-1) + \Delta Stock(d,j) -Left Efficiency +Left efficiency ^^^^^^^^^^^^^^^^^ First apply the stock change, then apply the losses (i.e. the stock changes on the left side of the time interval in which the losses apply) @@ -113,7 +113,7 @@ First apply the stock change, then apply the losses (i.e. the stock changes on t Stock(d, j) = (Stock(d, j-1) + \Delta Stock(d,j)) \cdot \epsilon(d,j) -Right Efficiency +Right efficiency ^^^^^^^^^^^^^^^^^ First apply the losses, then apply the stock change (i.e. the stock changes on the right side of the time interval in which the losses apply) @@ -122,7 +122,7 @@ First apply the losses, then apply the stock change (i.e. the stock changes on t Stock(d, j) = Stock(d, j-1) \cdot \epsilon(d,j) + \Delta Stock(d,j) -Linear Efficiency +Linear efficiency ^^^^^^^^^^^^^^^^^ Assume the change happens at a constant rate, leading to a linear stock change, and exponential decay, within the current interval From d6ef81a9ae268ae60a0bdbce6362b71ff3928163 Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Fri, 21 Jul 2023 13:49:04 +0200 Subject: [PATCH 6/7] docs: add changelog entry Signed-off-by: Victor Garcia Reolid --- documentation/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/changelog.rst b/documentation/changelog.rst index 98f202509..f069c3954 100644 --- a/documentation/changelog.rst +++ b/documentation/changelog.rst @@ -25,7 +25,7 @@ Infrastructure / Support * Add support for profiling Flask API calls using ``pyinstrument`` (if installed). Can be enabled by setting the environment variable ``FLEXMEASURES_PROFILE_REQUESTS`` to ``True`` [see `PR #722 `_] * The endpoint `[POST] /health/ready `_ returns the status of the Redis connection, if configured [see `PR #699 `_] - +* Document the linear program in the `device_scheduler`function [see `PR #764 `_]. /api/v3_0/health/ready From 7661bfd11b4fc1f24ce1ed1656700f0106632a87 Mon Sep 17 00:00:00 2001 From: Victor Garcia Reolid Date: Fri, 21 Jul 2023 13:55:15 +0200 Subject: [PATCH 7/7] docs: fix changelog Signed-off-by: Victor Garcia Reolid --- documentation/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/changelog.rst b/documentation/changelog.rst index 61e2f7aaa..eaaf66075 100644 --- a/documentation/changelog.rst +++ b/documentation/changelog.rst @@ -26,7 +26,7 @@ Infrastructure / Support * Add support for profiling Flask API calls using ``pyinstrument`` (if installed). Can be enabled by setting the environment variable ``FLEXMEASURES_PROFILE_REQUESTS`` to ``True`` [see `PR #722 `_] * The endpoint `[POST] /health/ready `_ returns the status of the Redis connection, if configured [see `PR #699 `_] -* Document the linear program in the `device_scheduler`function [see `PR #764 `_]. +* Document the `device_scheduler` linear program [see `PR #764 `_]. /api/v3_0/health/ready