尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Wind farm annual energy production in Streamlit: Weibull wind resource, Jensen and Ainslie wake models, six-factor loss cascade. Built at Greenard Consulting, validated against WAsP.
翻译准备中
正在加载完整 README。
查看完整 README ↗Case study with figures: zaydhouachmi.github.io/work/wind-farm.html · Try the wake model in your browser
A Streamlit application that estimates the annual energy production of a wind farm from wind measurements, terrain roughness and a turbine layout. Built during an internship at Greenard as a lightweight, open alternative to commercial tools such as WAsP.
z0.Fed the 12-sector Weibull table from the WAsP "Waspdale" example site, the tool recomputes a 4.90 m/s mean wind speed, the same value WAsP reports. A 6-turbine, 1 MW farm (54 m rotor, 50 m hub, 5 rotor diameters apart, Jensen wakes) then shows why height and terrain correction matter:
| Wind climate | Mean speed | Gross energy | Net energy | Capacity factor |
|---|---|---|---|---|
| Raw station data (10 m) | 4.90 m/s | 3,679 MWh/yr | 2,663 MWh/yr | 5.1 % |
| Corrected to the turbine site (50 m) | 7.88 m/s | 16,186 MWh/yr | 9,264 MWh/yr | 17.6 % |
The second row puts all the wind in one direction (270°), which is the worst case for wakes: up to 62 % loss on the third turbine in a row. A real wind rose spreads the wakes out. tests/test_model.py checks that behaviour.
pip install -r requirements.txt
streamlit run app.py
Then open the URL Streamlit prints (usually http://localhost:8501).
Example CSVs are included so you can see the expected columns:
| File | Columns |
|---|---|
wind_rose_example.csv | direction_deg, frequency_pct, weibull_k, weibull_a |
wind_measurements_example.csv | direction_deg, speed_ms (one row per reading) |
power_curve_example.csv | wind_speed_ms, power_kw |
layout_example.csv | id, x, y (metres) |
roughness_example.csv | z0 |
| Module | Role |
|---|---|
app.py | Streamlit interface — all inputs and results |
wind_resource.py | Wind rose, Weibull fitting, vertical extrapolation |
power_curve.py | Parametric and tabulated turbine power curves |
wake_model.py | Wake deficit models |
energy_yield.py | Gross/net energy and the six-factor loss cascade |
turbine.py, wind_farm.py | Turbine and farm data structures |
topography.py | Terrain roughness handling |
visualization.py | Layout and wind rose plots |
demo_*.py | Runnable examples that produce the images above |
tests/ | pytest suite for the model |
PHASE_2_AINSLIE_DERIVATION.md documents the maths behind the wake model, and
CHANGELOG-v3.md records what changed between versions (in French).
pip install pytest
python -m pytest
22 tests in tests/test_model.py check the model against hand calculations: the Jensen wake formula, the power curve, Weibull statistics, log-law height scaling, the loss cascade, wind-aligned geometry, and the farm energy table. demo_smoke.py is a quick script that compares the three wake models on one layout.
Ct is fixed (0.8 by default) rather than varying
with wind speed.