{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/reinforcement-learning-increases-wind-farm","title":"Reinforcement Learning Increases Wind Farm Power Production by Enabling Closed-Loop Collaborative Control","arxiv_id":"2506.20554","date":"2025-06-25","proceeding":null,"authors":["Andrew Mole","Max Weissenbacher","Georgios Rigas","Sylvain Laizet"],"abstract":"Traditional wind farm control operates each turbine independently to maximize individual power output. However, coordinated wake steering across the entire farm can substantially increase the combined wind farm energy production. Although dynamic closed-loop control has proven effective in flow control applications, wind farm optimization has relied primarily on static, low-fidelity simulators that ignore critical turbulent flow dynamics. In this work, we present the first reinforcement learning (RL) controller integrated directly with high-fidelity large-eddy simulation (LES), enabling real-time response to atmospheric turbulence through collaborative, dynamic control strategies. Our RL controller achieves a 4.30% increase in wind farm power output compared to baseline operation, nearly doubling the 2.19% gain from static optimal yaw control obtained through Bayesian optimization. These results establish dynamic flow-responsive control as a transformative approach to wind farm optimization, with direct implications for accelerating renewable energy deployment to net-zero targets.","url_abs":"https://arxiv.org/abs/2506.20554v1","url_pdf":"https://arxiv.org/pdf/2506.20554v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"reinforcement-learning-increases-wind-farm","repo_url":"https://github.com/admole/wind-rl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"bayesian-optimization","task_name":"Bayesian Optimization"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2506.20554","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2506.20554"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/admole/wind-rl","reach":null}],"summary":{"ran_honours":2,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"7564faccbf0337f3","entry":"find_grid_dimensions","repo":"admole/wind-rl","repo_kind":"official","path":"Solver/ADM_setup.py","file_url":"https://github.com/admole/wind-rl/blob/HEAD/Solver/ADM_setup.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7564faccbf0337f3"}},{"code_sha256_prefix":"9bf3929a261f8789","entry":"launch_database","repo":"admole/wind-rl","repo_kind":"official","path":"launch_sac_run.py","file_url":"https://github.com/admole/wind-rl/blob/HEAD/launch_sac_run.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9bf3929a261f8789"}},{"code_sha256_prefix":"3ca343939e6d5ed6","entry":"launch_sac","repo":"admole/wind-rl","repo_kind":"official","path":"launch_sac_run.py","file_url":"https://github.com/admole/wind-rl/blob/HEAD/launch_sac_run.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OPAQUE_PARAMS","metamorphic_tier":"none","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ca343939e6d5ed6"}},{"code_sha256_prefix":"335d78e2adaf2093","entry":"next_prime_product","repo":"admole/wind-rl","repo_kind":"official","path":"Solver/ADM_setup.py","file_url":"https://github.com/admole/wind-rl/blob/HEAD/Solver/ADM_setup.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"335d78e2adaf2093"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}