diff --git a/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity3ModifiedCatalog.java b/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity3ModifiedCatalog.java new file mode 100644 index 00000000000..3c1da813b80 --- /dev/null +++ b/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity3ModifiedCatalog.java @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * SPDX-License-Identifier: MPL-2.0 + */ +package com.powsybl.cgmes.conformity; + +import com.powsybl.cgmes.model.GridModelReference; +import com.powsybl.cgmes.model.GridModelReferenceResources; +import com.powsybl.commons.datasource.ResourceSet; + +/** + * @author Luma Zamarreño + */ +public final class CgmesConformity3ModifiedCatalog { + + private CgmesConformity3ModifiedCatalog() { + } + + public static GridModelReference microGridBE3DanglingLinesSameBoundary1Disconnected() { + String base = ENTSOE_CONFORMITY_3_MODIFIED + + "/MicroGrid/BE-3dls-same-boundary-node-1disconnected/"; + return new GridModelReferenceResources( + "MicroGrid-BE-3dls-same-boundary-node-1disconnected", + null, + new ResourceSet(base, + "20210325T1530Z_1D_BE_EQ_001_3dls_1disconnected.xml", + "20210325T1530Z_1D_BE_SSH_001_3dls_1disconnected.xml" + ), + CgmesConformity3Catalog.microGridBaseCaseBoundaries()); + } + + private static final String ENTSOE_CONFORMITY_3_MODIFIED = "/conformity-modified/cas-3-data-3.0.2"; +} diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_EQ_001_3dls_1disconnected.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_EQ_001_3dls_1disconnected.xml new file mode 100644 index 00000000000..1ae84e53be9 --- /dev/null +++ b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_EQ_001_3dls_1disconnected.xml @@ -0,0 +1,1808 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 + 001 + + http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0 + + + BE LoadArea + 516c5401-f9f7-4cf8-89b5-853f9cd75f29 + + + ELIA-Anvers SubLoadArea + + 0051c797-996b-42b8-86b7-3176e9b52cd3 + + + ELIA-Brussels SubLoadArea + + f217eb1a-92c4-4e9e-ad95-8ac8e527f0fc + + + BE + 7bf89875-1476-4d1a-a56d-a2965cce3575 + + + ELIA-Brussels + + 61378219-a236-4070-bbec-4e30a6ac848d + + + PP_Brussels + PP_Brussels + + 37e14a0f-5e34-4647-a062-8bfd9305fa9d + + + ELIA-Anvers + + 02047c0b-b5a4-4e0d-bae6-fc5437a55e74 + + + Anvers + Anvers + + 87f7002b-056f-4a6a-a872-1744eea757e3 + + + 225.0 + 247.5 + 202.5 + + + b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c + + + BE-Busbar_3 + BE-B_3 + + bf851342-832e-4ea2-b2ad-b09729b3af23 + + + BE-Busbar_3 + + 5caf27ed-d2f8-458a-834a-6b3193a982e6 + + + BE-Busbar_3_Busbar_Section + 1 + + + 62fc0a4e-00aa-4bf7-b1a0-3a5b2c0b5492 + + + 380.0 + 418 + 342 + + + 469df5f7-058f-4451-a998-57a48e8a56fe + + + BE-Busbar_1 + BE-B_1 + + 4836f99b-c6e9-4ee8-a956-b1e3da882d46 + + + BE-Busbar_1 + + 64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c + + + BE-Busbar_1_Busbar_Section + 1 + + + fa9e0f4d-8a2f-45e1-9e36-3611600d1c94 + + + 21.0 + 23.1 + 18.9 + + + 929ba893-c9dc-44d7-b1fd-30834bd3ab85 + + + BE-Busbar_5 + BE-B_5 + + f51dce2d-2dc6-4cfe-9486-f9d9a5b0fe33 + + + 110.0 + 121 + 99 + + + 8bbd7e74-ae20-4dce-8780-c20f8e18c2e0 + + + BE-Busbar_6 + BE-B_6 + + 1695eb20-9044-4133-a3fd-2147f55f170d + + + BE-Busbar_6 + + 5000 + 364c9ca2-0d1d-4363-8f46-e586f8f66a8c + + + BE-Busbar_6_Busbar_Section + 1 + + + a1b46f53-86f1-497e-bf57-c3b6268bcd6c + + + 225.0 + 247.5 + 202.5 + + + 69ef0dbd-da79-4eef-a02f-690cb8a28361 + + + BE-Busbar_2 + BE-B_2 + + ae99bd74-26b1-443a-b1a5-656320283a36 + + + BE-Busbar_2 + + ef45b632-3028-4afe-bc4c-a4fa323d83fe + + + BE-Busbar_2_Busbar_Section + 1 + + + 800ada75-8c8c-4568-aec5-20f799e45f3c + + + 10.5 + 11.55 + 9.45 + + + 4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386 + + + BE-Busbar_4 + BE-B_4 + + 0f074167-d8ad-40ed-b0fa-7dc7e9f5f77c + + + BE-Busbar_4 + + fd649fe1-bdf5-4062-98ea-bbb66f50402d + + + BE-Busbar_4_Busbar_Section + 1 + + + 65b8c937-9b25-4b9e-addf-602dbc1337f9 + + + Series Compensator + + af14c8ab-eb51-42be-89cb-abbcf37e20a3 + + + BE-Inj-XZE_ST23 + Eq_Injection + BE-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 87ea56f3-962a-427a-85d6-13b1f9295174 + + + BE-Inj-XCA_AL11 + Eq_Injection + BE-I-XCA_AL1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 24413233-26c3-4f7e-9f72-4461796938be + + + BE-Inj-XZE_ST24 + Eq_Injection + BE-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + f7f61a91-eca2-4492-8bd7-9ec2b28fc837 + + + BE-Inj-XWI_GY11 + Eq_Injection + BE-I-XWI_GY1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 6f014d4c-c1b0-4eed-8d6d-bae3bc87afcf + + + BE-Inj-XKA_MA11 + Eq_Injection + BE-I-XKA_MA1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 14b352cb-5574-40c5-bf83-0ed3574554a3 + + + container of BE-Line_6 + + cc4b99a5-e20d-407c-9d8e-a682b9723613 + + + BE-Line_6 + TYNDP project BE-4; map reference 567 + BE-L_6 + true + + + 100 + 0.0001476549 + 2.00119E-05 + 0.00012 + 0.00012 + 5.203 + 15 + 160 + 71 + 213 + ffbabc27-1ccd-4fdc-b037-e341706c8d29 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_6 at Port 1 + + cb5b5011-9f6c-4af2-93f9-26ae7e30c8db + + + PATL + + + 1312 + d1de5f7a-b11d-4c34-9628-1ce03b8f1989 + + + TATL + + + 500 + 6696b2a8-77fa-43a0-a019-f33287b03071 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_6 at Port 2 + + 30cbcb48-f02e-4791-83ab-486d7688874c + + + PATL + + + 1312 + fc61a99c-b255-4f1e-96eb-16198b2fbfc3 + + + TATL + + + 500 + 2c987138-9078-4f6a-b4f9-93d159b04fae + + + BE-Line_1 + 10T-AT-DE-000061 + 10T-AT-DE-000061 + BE-L_1 + false + + + 22 + 2.62637E-05 + 8.2938E-05 + 3.08E-05 + 3.08E-05 + 2.2 + 6.6 + 160 + 68.2 + 204.6 + 17086487-56ba-4979-b8de-064025a6b4da + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_1 at Port 2 + + a5b37323-8f73-449a-8931-f73193d95587 + + + PATL + + + 1500 + a2efb67d-28de-4243-aa59-8c297122b4f6 + + + TATL + + + 500 + 718557d0-e400-47e7-ab87-0c466237672e + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_1 at Port 1 + + aef3c15e-c567-476a-83ad-3fe46c817fb2 + + + PATL + + + 1500 + fbfb079a-f42a-49e4-a1cd-10a17b44e443 + + + TATL + + + 500 + 9dd1c4cf-344a-4174-8000-430434090202 + + + BE-Line_7 + 10T-AT-DE-000061 + 10T-AT-DE-000061 + BE-L_7 + false + + + 23 + 2.89027E-05 + 2.1677E-05 + 5.75E-05 + 5.75E-05 + 4.6 + 13.8 + 160 + 69 + 207 + a16b4a6c-70b1-4abf-9a9d-bd0fa47f9fe4 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_7 at Port 1 + + 56c9ef56-9268-47e6-bed2-044324c03830 + + + PATL + + + 1062 + a1c57d7a-447a-4a1a-b69c-94653ca4756e + + + TATL + + + 500 + 05715ad5-5667-41e9-8eec-b7d20dac0921 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_7 at Port 2 + + 00672e1a-599a-44f3-aeaa-5a3c99c29ba1 + + + PATL + + + 1062 + 8a04fac9-7f86-47e7-b0d4-723b413113da + + + TATL + + + 500 + f772a663-0557-4de1-94ca-a0fc86ada89f + + + BE-Line_5 + 10T-AT-DE-00009W + 10T-AT-DE-00009W + BE-L_5 + false + + + 35 + 3.40863E-05 + 6.59734E-05 + 4.2E-05 + 4.2E-05 + 0.42 + 1.26 + 160 + 6.3 + 18.9 + b18cd1aa-7808-49b9-a7cf-605eaf07b006 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_5 at Port 2 + + b639998f-3a5c-496d-96fd-759131b6c307 + + + PATL + + + 1876 + c27027b3-61e5-47ae-8f25-140808039152 + + + TATL + + + 500 + a3b55712-7319-4725-aaef-d89be09e8e81 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_5 at Port 1 + + 4af71c73-fd57-45d2-aa83-f1b52fcc3bee + + + PATL + + + 1876 + 7f32e38e-73e1-4699-b00c-c9ce63f5faa4 + + + TATL + + + 500 + cd1641e0-7dbd-4db2-8292-e87d65e2eeb5 + + + BE-Line_4 + to be connected to the boundary set + BE-L_4 + false + + + 40 + 6.28319E-05 + 2.51956E-05 + 4E-05 + 4E-05 + 0.24 + 0.72 + 160 + 2 + 6 + ed0c5d75-4a54-43c8-b782-b20d7431630b + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_4 at Port 2 + + b93ba071-c1d4-4c7a-960d-48dcd5d7c389 + + + PATL + + + 1226 + e17d44b1-c678-40a3-a736-9f77781fb33e + + + TATL + + + 500 + 770404e9-b224-4cda-b9bf-8b23d4fa7822 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_4 at Port 1 + + 67fa7320-7477-47e9-89ff-e3a407644aef + + + PATL + + + 1226 + 2560b6d7-ee39-4f18-ba27-9e9ec505bc9e + + + TATL + + + 500 + ec82058b-5d1a-4f8d-a0e6-fa4c3940b273 + + + container of BE-Line_2 + + b5d6ed2b-c961-4521-8aef-b943d7dc6c15 + + + BE-Line_2 + 10T-AT-DE-00010A + 10T-AT-DE-00010A + BE-L_2 + true + + + 45 + 6.64447E-05 + 4.24115E-05 + 6.75E-05 + 6.75E-05 + 1.935 + 3.195 + 160 + 34.2 + 102.6 + b58bf21a-096a-4dae-9a01-3f03b60c24c7 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_2 at Port 2 + + 7168dee1-15a7-4444-839f-feef071e956d + + + PATL + + + 1574 + e8b7722a-97b5-4831-b944-89c0a63a96fa + + + TATL + + + 500 + 3ecb9d91-8fdc-4161-81a1-8c5cedd66844 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_2 at Port 1 + + ecc2f619-5716-4af0-9d76-0631a3832e4f + + + PATL + + + 1574 + 4602330f-46c5-41d0-bbbe-4b207ff06dbd + + + TATL + + + 500 + 7b7bb979-e984-4a1a-a977-6f78ddcbc9d3 + + + BE-Line_3 + 10T-AT-DE-00008Y + 10T-AT-DE-00008Y + BE-L_3 + false + + + 30 + 2.92168E-05 + 0.000149854 + 6E-05 + 6E-05 + 1.05 + 3.15 + 160 + 12 + 36 + 78736387-5f60-4832-b3fe-d50daf81b0a6 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_3 at Port 2 + + 0acd95d7-aff7-41f6-aa8a-863c42f4bc36 + + + PATL + + + 1233.9 + 008c7f00-df41-430c-b94c-37aa08c2e993 + + + TATL + + + 500 + 34d77ffb-666c-4651-9e25-956af0979088 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_3 at Port 1 + + 99941f7a-11bb-4a7b-928b-ef8145db7799 + + + PATL + + + 1233.9 + e68e3e07-101e-42a7-9d85-1d4b7d284ca3 + + + TATL + + + 500 + 601df66c-7ba7-4ec8-8f8d-a30315f1a88f + + + L-1230804819 + Eq_Injection + L-1230804819 + false + + + + b1480a00-b427-4001-a26c-51954d2bb7e9 + + + ELIA-AnversconfLoadGr + + 62b480de-1bcd-4771-b24d-e2ca1dac5610 + + + L-1230804819 + false + 0 + 0 + 1 + 0 + 0 + 1 + 8e3e7a69-a64a-43a8-906e-82cc63edfcd3 + + + BE-Load_1 + Electrabel + BE-L_1 + false + + + cb459405-cc14-4215-a45c-416789205904 + + + ELIA-BrusselsconfLoadGr + + 12ee1483-1cbf-47c6-8d8a-772053bb6ff2 + + + BE-Load_2 + EVN + BE-L_2 + false + + + 1c6beed6-1acf-42e7-ba55-0cc9f04bddd8 + + + SER-RLC-1230822986 + + + 0 + 0 + true + 500 + 250 + -31.83099 + -31.83099 + df16b3dd-c905-4a6f-84ee-f067be86f5da + + + SER-RLC-1230822986 + + 653b4e65-a657-40fc-b987-c9e28104410f + + + PATL + + + 500 + 9fb75b67-c505-4f24-8b92-5ac1a1a1fee1 + + + SER-RLC-1230822986 + + 38c765fb-5707-404a-87f6-ace386edce11 + + + PATL + + + 500 + c1b970ed-f1f6-432d-8d86-443988130e0d + + + BE_S1 + shunt with 4 sections + BE_S1 + false + + + true + 1 + 110 + 1 + 0 + 0.02479339 + 0 + 0 + d771118f-36e9-4115-a128-cc3d9ce3e3da + + + BE_S1 + + + 4d50f86d-0d12-4ca3-9430-56bb05f9eee6 + + + BE_S2 + another shunt + BE_S2 + false + + + true + 5 + 380 + 1 + 002b0a40-3957-46db-b84a-30420083558f + + + 0.0003459834 + 0 + 1.09E-05 + 2.18E-06 + 1 + + + + 0.0001729917 + 0 + 2.18E-06 + 2.18E-06 + 2 + + + + 0.0001389889 + 0 + 2.18E-06 + 2.18E-06 + 3 + + + + 6.897507E-05 + 0 + 2.18E-06 + 2.18E-06 + 4 + + + + 3.49723E-05 + 0 + 2.18E-06 + 2.18E-06 + 5 + + + + BE_S2 + + + bee06911-8d5c-44c4-b2d2-5c22a461b5a0 + + + SVC-1230797516 + + + 5062.5 + -5062.5 + 0.102 + 3c69652c-ff14-4550-9a87-b6fdaccbb5f4 + + + SVC-1230797516 + + + caf65447-3cfb-48d7-aaaa-cd9af3d34261 + + + BE-G2 + Machine + BE-G2 + false + + + 0.85 + 300 + 21 + + true + 0 + 0 + 0 + 200 + -200 + 0 + 100 + 0 + 0 + 0 + 0.2 + 2 + 0 + + + 0 + 0.13 + 0.17 + 550ebe0d-f2b2-48c1-991f-cebea43a21aa + + + Gen-1229753024 + Machine + false + + + 200 + 50 + 255 + 5b7a4d43-09ec-4033-882d-64a76d557631 + + + BE-G1 + Machine + BE-G1 + false + + + 0.85 + 300 + 10.5 + + true + 0 + 0 + 0 + 300 + -300 + 0 + 50 + 0 + 0 + 0 + 0.2 + 2 + 0 + + + 0 + 0.13 + 0.171 + + 3a3b27be-b18b-4385-b557-6735d733baf0 + + + Gen-1229753060 + Machine + false + + + 200 + -100 + 255 + 18993b11-2966-4bce-bab9-d86103f83b53 + + + BE-G1CapabilityCurveCapabilityCu + + + + + 59ff1e53-0e1a-44c0-ada5-7a0b3a660170 + + + 0 + -300 + 300 + + + + 200 + -200 + 200 + + + + -100 + -200 + 200 + + + + BE-TR2_2 + This is T2 in the center + BE-T_2 + false + + false + false + b94318f6-6d24-4f56-96b9-df2531ad6543 + + + BE-TR2_2 + 1 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0.8228 + 0.8228 + 650 + 220 + 11.13888 + 11.13888 + + 3c59d1b0-1ee9-4ca3-9086-4fe102b51b21 + + + BE-TR2_2 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 650 + 110 + 0 + 0 + + ba56158e-0c51-448d-999b-44cb0b3cebf5 + + + BE-TR2_2 + 25 + 1 + true + 13 + 220 + 10 + + 1.25 + 11.88148 + 11.13888 + 30 + 36b83adb-3d45-4693-8967-96627b5f9ec9 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_2 at Port 1 + + 88aa13e4-d3fe-4c47-9e47-39f8bb805e73 + + + PATL + + + 1705.808 + 0d73c833-c12b-4932-9fe3-f18ca522f331 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_2 at Port 2 + + d6f4f557-12b9-4b53-9e99-2d2ed8cd11dd + + + PATL + + + 3411.617 + d82cbf13-135c-407f-92b2-96d755a88932 + + + BE-TR2_1 + T1 that is after maintenance + BE-T_1 + false + + false + false + a708c3bc-465d-4fe7-b6ef-6fa6408a62b0 + + + BE-TR2_1 + 1 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 2.707692 + 2.72 + 650 + 400 + 14.5189 + 14.5166 + + bf76ac9d-0144-48f5-a24a-34ae15a455fb + + + BE-TR2_1 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 650 + 110 + 0 + 0 + + e22f3c30-63f5-47bf-a8c4-fee2483d426c + + + BE-TR2_1 + 25 + 1 + true + 13 + 400 + 10 + + 1.25 + 16.93872 + 14.5189 + 63454a73-f439-45bb-951a-e7b193986571 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_1 at Port 1 + + 0b7c4239-3c1b-438e-994d-f2a402ba743c + + + PATL + + + 938.1946 + 5e35109b-9feb-4c06-a92c-b777783863c4 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_1 at Port 2 + + 3b5aa2ae-a3fb-4ea6-9941-f7ccd2c6d925 + + + PATL + + + 3411.617 + d6da94f0-80dc-4163-82ce-2e19355196ab + + + BE-TR2_3 + This is free description + BE-T_3 + false + + false + false + e482b89a-fa84-4ea9-8e70-a83d44790957 + + + BE-TR2_3 + 1 + false + 0 + 0 + + + -8.30339E-05 + 0 + + 1.73295E-05 + 0 + 0 + 0.104711 + 0.104711 + 250 + 110.3438 + 5.843419 + 5.843419 + + f58281c5-862a-465e-97ec-d809be6e24ab + + + BE-TR2_3 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 250 + 10.5 + 0 + 0 + + 35651e25-a77a-46a1-92f4-443d6acce90e + + + BE-TR2_3 + 33 + 1 + true + 17 + 10.5 + 14 + 0.8 + + 83cc66dd-8d93-4a2c-8103-f1f5a9cf7e2e + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_3 at Port 2 + + 40b75fae-2597-40df-98d2-8a0d83c238fd + + + PATL + + + 13746.44 + 48efd7e4-bd22-4521-8170-0ff15c14b9a1 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_3 at Port 1 + + e40d809b-2f3f-4866-817d-7acec0fde34f + + + PATL + + + 1308.072 + fc604ec7-5977-4d5a-82bc-6bf7dee6ef8f + + + BE-TR3_1 + new in 2015 + BE-T_1 + + false + 84ed55f4-61f5-4d9d-8755-bba7b877a246 + + + BE-TR3_1 + 1 + false + + + -2.4375E-06 + -2.4375E-06 + + 0 + 0 + 0 + 0.898462 + 0.898462 + 650 + 400 + 17.20413 + 17.23077 + + 5f68a129-d5d8-4b71-9743-9ca2572ba26b + + + BE-TR3_1 + 2 + false + + + 0 + 0 + + 0 + 0 + 0 + 0.323908 + 0.323908 + 650 + 220 + 5.949086 + 5.956923 + + e1f661c0-971d-4ce5-ad39-0ec427f288ab + + + BE-TR3_1 + 3 + false + + + 0 + 0 + + 0 + 0 + 0 + 0.013332 + 0.013332 + 650 + 21 + 0.059978 + 0.061062 + + 2e21d1ef-2287-434c-a767-1ca807cf2478 + + + BE-TR3_1 + 33 + 1 + true + 17 + 220 + 17 + 0.625 + + fe25f43a-7341-446e-a71a-8ab7119ba806 + + + Limits at Port 3 + Limit-Ratings for branch BE-TR3_1 at Port 3 + + f4fb6a66-b9f6-4c71-bdd2-7e97938d1fe1 + + + PATL + + + 17870.37 + f660694a-682f-4e2e-b60c-1bab1a924b79 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR3_1 at Port 1 + + b655ab41-8bc0-4bd3-a28c-cf9048e32b4a + + + PATL + + + 938.1946 + 61591ef6-b049-4188-b693-0a279b85e374 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR3_1 at Port 2 + + a2f11542-aeb8-4d7c-9594-25ac63e148bb + + + PATL + + + 1705.808 + 2831d93a-f53c-44b8-aa34-54e7a04a34c4 + + + 21.00 kV + Base Voltage Level + 21.00 + 21 + 1cefd53a-79bd-4ad4-aa9a-5a4ad0191ce2 + + + 10.50 kV + Base Voltage Level + 10.50 + 10.5 + 862a4658-6b03-4550-9de2-b5c413912b75 + + + 110.00 kV + Base Voltage Level + 110.00 + 110 + 00b17311-075f-48f6-a79b-597f42af4694 + + + Terminal + 1 + + + + 5a7b80f3-eeb3-4253-a792-5157c0946b15 + + + Terminal + 2 + + + + 0ac86078-8267-4fd9-b6c2-27984975ffcc + + + Terminal + 1 + + + + 2ba1ad70-3533-402d-8686-f3bcce2c2e82 + + + Terminal + 2 + + + + b30ac237-4ce9-4869-8562-a07aaae1a7fa + + + Terminal + 3 + + + + e754f4c1-6aa0-43d2-98cb-ecf5ba12077b + + + Terminal + 1 + + + + 056b689f-1dab-48b3-8ac5-4eb11ca05d84 + + + Terminal + 2 + + + + 53fd6693-57e6-482e-8fbe-dcf3531a7ce0 + + + Terminal + 1 + + + + b9376bea-c75d-49f3-94ca-6a71fa0086a5 + + + Terminal + 1 + + + + 05a17350-55f5-4a00-9a50-8c0048a25495 + + + Terminal + 2 + + + + a4d42d33-ae54-4fe9-ad59-f30da0dfb809 + + + Terminal + 1 + + + + 4bb5407b-b4a5-416c-80ad-1a778ada2b9b + + + Terminal + 2 + + + + 70d962fb-a492-4c36-8cad-b5c584df53bd + + + Terminal + 1 + + + + 1ef0715a-d5a9-477b-b6e7-b635529ac140 + + + Terminal + 1 + + + + d5e2e58e-ccf6-47d9-b3bb-3088eb7a9b6c + + + Terminal + 1 + + + + d238885e-d9b6-4edc-8567-6a68c605ed67 + + + Terminal + 1 + + + + 53072f42-f77b-47e2-bd9a-e097c910b173 + + + Terminal + 1 + + + + 57ae9251-c022-4c67-a8eb-611ad54c963c + + + Terminal + 2 + + + + 5b2c65b0-68ce-4530-85b7-385346a3b5e1 + + + Terminal + 2 + + + + 02a244ca-8bcb-4e25-8613-e948b8ba1f22 + + + Terminal + 1 + + + + 051d49ba-4360-4372-86bf-50eb8cf29778 + + + Terminal + 2 + + + + + f9f29835-8a31-4310-9780-b1ad26f3cbb0 + + + Terminal + 1 + + + + c14d2036-72ec-4df3-b1b7-75d8afd9a1fe + + + Terminal + 2 + + + + 77f04391-aa23-49b6-b3e9-6089130bb5d5 + + + Terminal + 1 + + + + 699545b9-82b9-4331-bc80-538d73b4ba56 + + + Terminal + 2 + + + + + f3b56334-4638-49d3-a6a0-3f417422b8f5 + + + Terminal + 1 + + + + 231a4cf8-5069-4d53-96e4-e839f073f1ea + + + Terminal + 2 + + + + 1182d878-2eaa-4eec-91be-ce7b2b1e7f9a + + + Terminal + 1 + + + + 2de997a1-c43e-4d39-9e55-dfd7cf97121d + + + Terminal + 1 + + + + 4a7363a4-0b21-4f65-8bba-33e3a8f6bac3 + + + Terminal + 1 + + + + 22af3121-1a66-4546-bd80-4371f417c644 + + + Terminal + 1 + + + + b9539c41-d114-4280-8a54-8ecec398091e + + + Terminal + 1 + + + + c41978db-794b-4bae-953e-60fc519e87dd + + + Terminal + 1 + + + + cbdf1842-74ed-4fce-a5d4-0296c82cbc92 + + + Terminal + 2 + + + + 13dcec71-4b02-4c0c-93a7-8e16db4aa0b7 + + + Terminal + 1 + + + + 8171fc34-6891-40e0-92d1-da9f4ba69e26 + + + Terminal + 1 + + + + a036b765-1669-4f64-acd3-1e8fbd513312 + + + Terminal + 1 + + + + 67bb74f1-8620-4a32-9d7d-a44092d11d22 + + + Terminal + 1 + + + + beffa353-7d10-421d-9c08-036b744b1cee + + + PATL + PATL + + + 3e6aa424-8f24-49a5-bbe0-0868441e25ae + true + + + Limit Type TATL + TATL + 600 + + + 5df721fe-c60b-4b91-8c92-3013fbdb6a70 + false + + + BE + + + 50487bb8-be6d-42a8-9358-cc0bbfe6cfa7 + + + TieFlow + true + + + 6c38eb9d-d412-444a-9fec-64cc4278ea40 + + + TieFlow + true + + + 90c53a07-7065-4faa-b12a-f80185d56fa5 + + + TieFlow + true + + + aa336efd-8f54-49e6-8d9c-325e6e4d3184 + + + TieFlow + true + + + 6b5bc852-1dd3-49e2-89da-905b929a8cc3 + + + TieFlow + true + + + 29ab8015-51fe-431d-b1e2-7a147ffabac5 + + + BE-G2 + + + 84bf5be8-eb59-4555-b131-fce4d2d7775d + + + BE-G1 + + + 6ba406ce-78cf-4485-9b01-a34e584f1a8d + + diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_SSH_001_3dls_1disconnected.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_SSH_001_3dls_1disconnected.xml new file mode 100644 index 00000000000..1fd6d919a1f --- /dev/null +++ b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-3-data-3.0.2/MicroGrid/BE-3dls-same-boundary-node-1disconnected/20210325T1530Z_1D_BE_SSH_001_3dls_1disconnected.xml @@ -0,0 +1,442 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0 + 001 + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + false + + + + false + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + false + true + 21.987 + + + + true + true + -118 + -18.7203 + + 1 + + + true + 1 + + + false + true + 115.5 + + + + true + true + -90 + -100.256 + + 0 + + + true + 0 + + + true + true + 1 + + + true + false + 0.5 + 110 + + + + true + true + 1 + + + true + false + 0.5 + 380 + + + + true + 1 + 0 + + + true + 200 + 90 + + + true + 200 + 50 + + + true + true + 0 + + + false + true + 229.5 + + + + true + -83.18928 + 1.501529 + + + true + -14.06748 + 63.95825 + + + true + -103.7413 + 11.31944 + + + true + -27.0286 + 120.7887 + + + true + -8.953211 + 67.2335 + + + false + 10 + + + false + 10 + + + false + 14 + + + false + 17 + + + 236.9798 + 10 + + + 1312 + + + 500 + + + 1312 + + + 500 + + + 1500 + + + 500 + + + 1500 + + + 500 + + + 1062 + + + 500 + + + 1062 + + + 500 + + + 1876 + + + 500 + + + 1876 + + + 500 + + + 1226 + + + 500 + + + 1226 + + + 500 + + + 1574 + + + 500 + + + 1574 + + + 500 + + + 1233.9 + + + 500 + + + 1233.9 + + + 500 + + + 500 + + + 500 + + + 1705.808 + + + 3411.617 + + + 938.1946 + + + 3411.617 + + + 13746.44 + + + 1308.072 + + + 17870.37 + + + 938.1946 + + + 1705.808 + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + \ No newline at end of file diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesReports.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesReports.java index 9ddedddfa97..9a0884451bd 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesReports.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesReports.java @@ -94,4 +94,17 @@ public static void danglingLineDisconnectedAtBoundaryHasBeenDisconnectedReport(R .withSeverity(TypedValue.WARN_SEVERITY) .build()); } + + public static void multipleUnpairedDanglingLinesAtSameBoundaryReport(Reporter reporter, String danglingLineId, double p0, double q0, double p0Adjusted, double q0Adjusted) { + reporter.report(Report.builder() + .withKey("multipleUnpairedDanglingLinesAtSameBoundary") + .withDefaultMessage("Multiple unpaired DanglingLines were connected at the same boundary side. Adjusted original injection from (${p0}, ${q0}) to (${p0Adjusted}, ${q0Adjusted}) for dangling line ${danglingLineId}.") + .withValue("danglingLineId", danglingLineId) + .withValue("p0", p0) + .withValue("q0", q0) + .withValue("p0Adjusted", p0Adjusted) + .withValue("q0Adjusted", q0Adjusted) + .withSeverity(TypedValue.WARN_SEVERITY) + .build()); + } } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java index aad27e9703a..b99a7ab5126 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java @@ -35,6 +35,7 @@ import static com.powsybl.cgmes.conversion.CgmesReports.importedCgmesNetworkReport; import static com.powsybl.cgmes.conversion.Conversion.Config.StateProfile.SSH; +import static java.util.stream.Collectors.groupingBy; /** * TwoWindingsTransformer Interpretation @@ -240,6 +241,7 @@ public Network convert(Reporter reporter) { // apply post-processors handleDangingLineDisconnectedAtBoundary(network, context); + adjustMultipleUnpairedDanglingLinesAtSameBoundaryNode(network, context); for (CgmesImportPostProcessor postProcessor : postProcessors) { // FIXME generic cgmes models may not have an underlying triplestore // TODO maybe pass the properties to the post processors @@ -281,6 +283,46 @@ private void handleDangingLineDisconnectedAtBoundary(Network network, Context co } } + private void adjustMultipleUnpairedDanglingLinesAtSameBoundaryNode(Network network, Context context) { + network.getDanglingLineStream(DanglingLineFilter.UNPAIRED) + .filter(dl -> dl.getTerminal().isConnected()) + .collect(groupingBy(Conversion::getDanglingLineBoundaryNode)) + .values().stream() + // Only perform adjustment for the groups with more than one connected dangling line + .filter(dls -> dls.size() > 1) + .forEach(dls -> adjustMultipleUnpairedDanglingLinesAtSameBoundaryNode(dls, context)); + } + + private void adjustMultipleUnpairedDanglingLinesAtSameBoundaryNode(List dls, Context context) { + // All dangling lines will have same value for p0, q0. Take it from the first one + double p0 = dls.get(0).getP0(); + double q0 = dls.get(0).getQ0(); + // Divide this value between all connected dangling lines + // This method is called only if there is more than 1 connected dangling line + long count = dls.size(); + final double p0Adjusted = p0 / count; + final double q0Adjusted = q0 / count; + dls.forEach(dl -> { + LOG.warn("Multiple unpaired DanglingLines were connected at the same boundary side. Adjusted original injection from ({}, {}) to ({}, {}) for dangling line {}.", p0, q0, p0Adjusted, q0Adjusted, dl.getId()); + CgmesReports.multipleUnpairedDanglingLinesAtSameBoundaryReport(context.getReporter(), dl.getId(), p0, q0, p0Adjusted, q0Adjusted); + dl.setP0(p0Adjusted); + dl.setQ0(q0Adjusted); + }); + } + + public static String getDanglingLineBoundaryNode(DanglingLine dl) { + String node; + node = dl.getProperty(Conversion.CGMES_PREFIX_ALIAS_PROPERTIES + CgmesNames.CONNECTIVITY_NODE_BOUNDARY); + if (node == null) { + node = dl.getProperty(Conversion.CGMES_PREFIX_ALIAS_PROPERTIES + CgmesNames.TOPOLOGICAL_NODE_BOUNDARY); + } + if (node == null) { + LOG.warn("Dangling line {} does not have a boundary node identifier.", dl.getId()); + node = "unknown"; + } + return node; + } + private Source isBoundaryBaseVoltage(String graph) { //There are unit tests where the boundary file contains the sequence "EQBD" and others "EQ_BD" return graph.contains("EQ") && graph.contains("BD") ? Source.BOUNDARY : Source.IGM; diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/Cgmes3ModifiedConversionTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/Cgmes3ModifiedConversionTest.java index f5f4b06653e..d965c9c6d29 100644 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/Cgmes3ModifiedConversionTest.java +++ b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/Cgmes3ModifiedConversionTest.java @@ -10,7 +10,10 @@ import com.google.common.jimfs.Jimfs; import com.powsybl.cgmes.conformity.Cgmes3Catalog; import com.powsybl.cgmes.conformity.Cgmes3ModifiedCatalog; +import com.powsybl.cgmes.conformity.CgmesConformity3Catalog; +import com.powsybl.cgmes.conformity.CgmesConformity3ModifiedCatalog; import com.powsybl.cgmes.conversion.CgmesModelExtension; +import com.powsybl.cgmes.conversion.Conversion; import com.powsybl.iidm.network.Importers; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Substation; @@ -63,5 +66,43 @@ void microGridGeographicalRegionInBoundary() { assertEquals("BE", brussels.getNullableCountry().toString()); } + @Test + void testMultipleUnpairedLinesAtSameBoundary() { + // Dangling lines at Brussels substation + final String line5Id = "b18cd1aa-7808-49b9-a7cf-605eaf07b006"; + final String line4Id = "ed0c5d75-4a54-43c8-b782-b20d7431630b"; + final String line3Id = "78736387-5f60-4832-b3fe-d50daf81b0a6"; + final String nodeGY11 = "b67c8340-cb6e-11e1-bcee-406c8f32ef58"; + final String nodeMA11 = "b67cf870-cb6e-11e1-bcee-406c8f32ef58"; + final String nodeAL11 = "b675a570-cb6e-11e1-bcee-406c8f32ef58"; + + // In the base case each line is connected to a different boundary node + // All have different values of p0, q0 + Network networkBase = Network.read(CgmesConformity3Catalog.microGridBaseCaseBE().dataSource()); + assertEquals(nodeGY11, Conversion.getDanglingLineBoundaryNode(networkBase.getDanglingLine(line5Id))); + assertEquals(-27.0286, networkBase.getDanglingLine(line5Id).getP0(), 1e-4); + assertEquals(120.7887, networkBase.getDanglingLine(line5Id).getQ0(), 1e-4); + assertEquals(nodeMA11, Conversion.getDanglingLineBoundaryNode(networkBase.getDanglingLine(line4Id))); + assertEquals(-8.9532, networkBase.getDanglingLine(line4Id).getP0(), 1e-4); + assertEquals(67.2335, networkBase.getDanglingLine(line4Id).getQ0(), 1e-4); + assertEquals(nodeAL11, Conversion.getDanglingLineBoundaryNode(networkBase.getDanglingLine(line3Id))); + assertEquals(-14.0675, networkBase.getDanglingLine(line3Id).getP0(), 1e-4); + assertEquals(63.9583, networkBase.getDanglingLine(line3Id).getQ0(), 1e-4); + + // We have prepared a modified case where lines 4 and 5 both connect to the same node + // p0, q0 is adjusted for connected dangling lines + // p0, q0 of the disconnected is not modified + Network network3dls = Network.read(CgmesConformity3ModifiedCatalog.microGridBE3DanglingLinesSameBoundary1Disconnected().dataSource()); + assertEquals(nodeGY11, Conversion.getDanglingLineBoundaryNode(network3dls.getDanglingLine(line5Id))); + assertEquals(-13.5143, network3dls.getDanglingLine(line5Id).getP0(), 1e-4); + assertEquals(60.3944, network3dls.getDanglingLine(line5Id).getQ0(), 1e-4); + assertEquals(nodeGY11, Conversion.getDanglingLineBoundaryNode(network3dls.getDanglingLine(line4Id))); + assertEquals(-13.5143, network3dls.getDanglingLine(line4Id).getP0(), 1e-4); + assertEquals(60.3944, network3dls.getDanglingLine(line4Id).getQ0(), 1e-4); + assertEquals(nodeGY11, Conversion.getDanglingLineBoundaryNode(network3dls.getDanglingLine(line3Id))); + assertEquals(-27.0286, network3dls.getDanglingLine(line3Id).getP0(), 1e-4); + assertEquals(120.7887, network3dls.getDanglingLine(line3Id).getQ0(), 1e-4); + } + private FileSystem fileSystem; }