尚未偵測到更新。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.