.. _fbmc: ============ FBMC example ============ This example shows a simple FBMC use case in an EMPS simulation. The FBMC functionality of the EMPS is documented here: :ref:`fbmc-included`. Overview of the power system in the EMPS ---------------------------------------- We have a small power system with four main areas and one battery area. The figure shows a sketch of the system and the interconnections between the areas. .. image:: emps_area_sketch.svg :alt: Four main areas TEV, Otra, Numedal and Term. One battery is connected :align: center The areas TEV and Otra have aggregated hydro power, Numedal has detailed hydro power, Battery is a battery area, Term is an area with a load and an import option at a fixed price and volume. As an example of a HVDC cable connecting two areas within the AC-grid we have added a HVDC cable between Numedal and Otra (an analogous real world example is Sydvestlenken between SE3 and SE4). The Term area is connected by a HVDC cable. The loads of the system have simple seasonal variations, high load in the winter, low in the summer and medium load in the spring and fall. Stochastic inflow with 8 scenarios with seasonal variations, low in the winter, medium in the fall and high during spring and summer. The time resolution is set to 3 hours per time-step (prisavsnitt). An overview of the hydro power and battery specification is provided in the figure. Adaptations of the system for the FBMC functionality ---------------------------------------------------- To apply the FBMC functionality we need FBMC-parameters as input to the EMPS simulation. Which requires: 1. Bidding Zones defined based on available input FBMC-parameters (PTDFs) to the model. 2. HVDC cables in the AC-grid might need it own FBMC-parameters based on virtual bidding zones (provided by for example JAO). We put the end-points of the HVDC cable in their own EMPS areas as shown in the figure below. .. image:: guides_fbmc.svg :alt: Four main areas TEV, Otra, Numedal and Term. One battery is connected :align: center This gives us the system areas shown in the table. .. list-table:: Areas and Busbar Numbers :header-rows: 1 * - Area - Busbar Number * - Numedal - 1 * - TEV - 2 * - Otra - 3 * - Term - 4 * - Battery - 5 * - Numedal_HVDC - 6 * - Otra_HVDC - 7 * - TEV_HVDC - 8 This allows for the use of virtual bidding zones at the HVDC cable end-points such that they can apply their own FBMC-parameters (PTDFs). We define the bidding zones as shown in the figure below, where the area Term is outside the AC-grid. .. image:: fbmc_ac_grid.svg :alt: Four main areas TEV, Otra, Numedal and Term. One battery is connected :align: center The areas Numedal, TEV, Otra, Battery, Numedal_HVDC, Otra_HVDC and TEV_HVDC with busbar numbers 1, 2, 3, 5, 6, 7 and 8, respectively, are in the AC-grid. The area TEV has a Battery attached which is in the same bidding zone. The area Term on busbar 4 is not in the AC-grid. The system is now defined and the FBMC functionality can be applied. The CNEs have the following PTDF matrix: .. list-table:: CNEs and PTDFs :header-rows: 1 * - CNE - Bidding_zone: from -> to - N1 - N2 - N3 - N1_HVDC - N2_HVDC - N3_HVDC * - 1 - N1 -> N2 - 0.33 - -0.33 - 0 - 0.33 - -0.33 - 0 * - 2 - N2 -> N3 - 0.33 - 0.66 - 0 - 0.33 - 0.66 - 0 * - 3 - N3 -> N1 - -0.66 - -0.33 - 0 - -0.66 - -0.33 - 0 * - 4 - N1_HVDC -> N1 - 0 - 0 - 0 - 1.0 - 0 - 0 * - 5 - N2_HVDC -> N2 - 0 - 0 - 0 - 0 - 1.0 - 0 * - 6 - N3_HVDC -> N3 - 0 - 0 - 0 - 0 - 0 - 1.0 meaning that a :math:`\Delta NP=1` MW in bidding zone N1 causes a flow of 0.33 MW, 0.33 MW and -0.66 MW on CNEs 1,2 and 3 respectively. Input FBMC ---------- The input can be defined on json format. Necessary input is: 1. Bidding Zones 2. CNEs Definition of the Bidding Zones in the *ltmapimodel* is shown below. .. collapse:: Bidding Zones :open: .. code-block:: json "bidding_zones": [ { "#comment": "numedal", "name": "N1", "is_fbmc": true }, { "#comment": "tev and battery", "name": "N2", "is_fbmc": true }, { "#comment": "otra", "name": "N3", "is_fbmc": true }, { "#comment": "HVDC numedal", "name": "N1_hvdc", "is_fbmc": true }, { "#comment": "HVDC tev", "name": "N2_hvdc", "is_fbmc": true }, { "#comment": "HVDC otra", "name": "N3_hvdc", "is_fbmc": true } ], and the CNEs (collapsed): .. collapse:: CNEs .. code-block:: json "cnes": [ { "name": "N1-N2", "cnecName": "Test1", "biddingZoneFrom": "N1", "biddingZoneTo": "N2", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.33333, 0.33333 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.33333, -0.33333 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.33333, 0.33333 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.33333, -0.33333 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] } } }, { "name": "N2-N3", "cnecName": "Test2", "biddingZoneFrom": "N2", "biddingZoneTo": "N3", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.33333, 0.33333 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.66666, 0.66666 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.33333, 0.33333 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.66666, 0.66666 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] } } }, { "name": "N3-N1", "cnecName": "Test3", "biddingZoneFrom": "N3", "biddingZoneTo": "N1", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.66666, -0.66666 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.33333, -0.33333 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.66666, -0.66666 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ -0.33333, -0.33333 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] } } }, { "name": "N1_HVDC-N1", "cnecName": "Test3", "biddingZoneFrom": "N1_HVDC", "biddingZoneTo": "N1", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1.0, 1.0 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] } } }, { "name": "N2_HVDC-N2", "cnecName": "Test3", "biddingZoneFrom": "N2_HVDC", "biddingZoneTo": "N2", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1.0, 1.0 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] } } }, { "name": "N3_HVDC-N3", "cnecName": "Test3", "biddingZoneFrom": "N3_HVDC", "biddingZoneTo": "N3", "active": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1 ] ] }, "ram": { "name": "", "timestamps": [ "2025-02-13T00:00:00Z" ], "scenarios": [ [ 20.0 ] ] }, "ptdf": { "N1": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N2": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N3": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N1_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N2_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 0.0, 0.0 ] ] }, "N3_HVDC": { "timestamps": [ "2025-02-12T23:00:00Z", "2025-02-13T00:00:00Z" ], "scenarios": [ [ 1.0, 1.0 ] ] } } } ] All detailes of the system can be found in the fbmc_with_cnes.json file below. .. collapse:: Expand to see full JSON listings. .. literalinclude:: fbmc_with_cnes.json :language: JSON :linenos: Results ------- The link below takes you to a (static) notebook where LTM-API have been run using the fbmc_with_cnes.json file as input. The notebook contains the result from the EMPS show in a set of figures. .. toctree:: :maxdepth: 1 :glob: fbmc-notebook.ipynb * :download:`fbmc_with_cnes.json `