Skip to content

Conversation

@Bartdoekemeijer
Copy link
Collaborator

This PR is NOT ready to be merged.

Feature or improvement description
This PR is made together with Robin de Jong, TUDelft as part of the European SUDOCO project. The purpose of this is to add an example that demonstrates how one can use FLASC to compare a dynamic timeseries simulation (here: Whiffle's ASPIRE LES) against SCADA. Whiffle's LES is a strong contender to become the golden standard for wake modeling in the industry and therefore benchmarking it is crucial. For certain applications it is a direct contender to FLORIS and other wake models.

Related issue, if one exists
N/A

Impacted areas of the software

  • Fundamentally very little new functionality is added. It's worth discussing if some functions inside the Jupyter notebook should be moved to a separate class.
  • This PR adds an extra module for the conversion of a dynamic timeseries into a steady-state table (flasc/data_processing/timeseries_to_grid_solutions.py). However, I think FLASC already has capabilities to do this so I'd like to eliminate duplicate code before merging.

Additional supporting information
The attached example are actual results from an ASPIRE LES simulation of SMARTEOLE for the same dates of the experiment.

Test results, if applicable
The current validation results are actually quite exciting already!

                                      Absolute cumulative energy (MWh)
+-------------+---------------+-------------+-----------------+-------------------+-----------------------+
| Selection   |   SCADA (MWh) |   LES (MWh) |   LES error (%) |   FLORIS CC (MWh) |   FLORIS CC error (%) |
|-------------+---------------+-------------+-----------------+-------------------+-----------------------|
| Entire farm |       1355.41 |     1287.20 |           -5.03 |           1324.38 |                 -2.29 |
| Turbine 00  |        219.83 |      210.66 |           -4.17 |            207.10 |                 -5.79 |
| Turbine 01  |        196.56 |      184.18 |           -6.30 |            187.31 |                 -4.71 |
| Turbine 02  |        188.43 |      171.55 |           -8.96 |            180.33 |                 -4.30 |
| Turbine 03  |        168.75 |      153.86 |           -8.82 |            165.69 |                 -1.82 |
| Turbine 04  |        195.91 |      189.60 |           -3.22 |            192.62 |                 -1.68 |
| Turbine 05  |        181.76 |      177.90 |           -2.13 |            178.36 |                 -1.87 |
| Turbine 06  |        204.17 |      199.45 |           -2.31 |            212.97 |                  4.31 |
+-------------+---------------+-------------+-----------------+-------------------+-----------------------+


                                      Cumulative energy wake loss (%)
+-------------+-------------+-----------+--------------------+-----------------+--------------------------+
| Selection   |   SCADA (%) |   LES (%) |   LES error (p.p.) |   FLORIS CC (%) |   FLORIS CC error (p.p.) |
|-------------+-------------+-----------+--------------------+-----------------+--------------------------|
| Entire farm |        3.00 |      2.92 |              -0.08 |            3.75 |                     0.76 |
| Turbine 00  |       -3.09 |     -3.75 |              -0.67 |            1.73 |                     4.81 |
| Turbine 01  |       -0.74 |      0.36 |               1.11 |            2.76 |                     3.51 |
| Turbine 02  |       -0.35 |      3.09 |               3.43 |            2.56 |                     2.90 |
| Turbine 03  |        3.70 |      7.34 |               3.64 |            4.01 |                     0.31 |
| Turbine 04  |        6.28 |      4.86 |              -1.42 |            6.66 |                     0.37 |
| Turbine 05  |        8.31 |      5.42 |              -2.89 |            7.96 |                    -0.35 |
| Turbine 06  |        6.63 |      4.00 |              -2.63 |            0.88 |                    -5.75 |
+-------------+-------------+-----------+--------------------+-----------------+--------------------------+

LES seems to underestimate total AEP (MWh), I'm guessing due to a slightly lower estimated inflow wind speed compared to what was actually seen in the field. However, it is excellent at estimating farm-wide wake loss. Also individual turbine wake losses are quite well estimated, showing much smaller deviations than FLORIS. Generally LES outperforms FLORIS' Cumulative Curl by quite a margin in relative wake losses! This is also seen in the energy ratios.

image

Release checklist:

  • Update the version in
    • pyproject.toml
  • Create a tag in the NREL/FLASC repository
  • Upload the SMARTEOLE LES timeseries files and the import script to a separate location, ZENODO perhaps?
  • Documentation: add more information about SMARTEOLE LES simulation set-up
  • Can we get rid of this new file flasc/data_processing/timeseries_to_grid_solutions.py altogether by just using functions that already exist in FLASC?

@Bartdoekemeijer
Copy link
Collaborator Author

Hi @paulf81, @misi9170 -- Happy New Years! 🥳

Just wanted to get the ball rolling on this PR. It's still more of a concept and would love your steer on this so we can turn it into something that fits FLASC best. There's no rush -- would be helpful to get some steer in the next month or so! Also happy to have a meeting on this so that I can walk you through it, if that's easier. 👍

@paulf81
Copy link
Collaborator

paulf81 commented Jan 6, 2026

thank you @Bartdoekemeijer ! I'm very excited to dig into this, I'll try to make some time to look/think through it all soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants