Б1 «Совместная калибровка Askervein + Perdigão» — записка
Волна Б модели воздуха, исполнитель Б1, ветка air/b1. Контракт — C10 v3 (docs/contracts/air-model.md): общая схема
tools/research/cases/scheme.py, общие правила постановки tools/research/cases/rules.py. Код, данные, команды —
tools/research/cases/b1/README.md. Решатель (air.py, solver.py), код игры и конфиги не менялись.
Коротко
- Общая длина перемешивания λ = 27 м (+4 −3) по обоим случаям вместе. χ²/ndf = 208/76: Askervein 165 на 47 наблюдаемых, Perdigão 43 на 35. Свои параметры случаев: α_A = 0,242 ± 0,004, z0_A = 0,05 м (+0,05 −0,03); α_NE = 0,33 (край сетки), α_SW = 0,29 ± 0,03, z0_P = 1,0 м (край сетки).
- Случаи тянут λ в разные стороны. Askervein сам по себе даёт λ = 145 м (+150 −50), χ² 136/44. Perdigão сам по себе упирается в нижний край λ = 10 м, χ² 29/31. Плата за общий параметр — Δχ² = 44. Так получается и на 2-м порядке, и после поправки сетки. Это структурное расхождение модели, параметр λ его не снимает (подробнее — §4).
- λ/h и lam по этим случаям не разделяются. В нейтрали без нагрева λ = max(lam, λ/h·h), а h у обоих случаев ≈ 1600–1800 м. Перевод «λ = λ/h·h_случая» даёт λ/h = 0,018 ± 0,0035 и χ² на 7,5 меньше. Но это выигрыш за счёт z0 (z0 через u* меняет h случая), а не данные о λ/h. Для разделения нужны случаи с другим h: слабый ветер, конвекция.
- Систематика схемы игры (1-й порядок против 2-го в лучшей точке, в параметры не входит): χ² 209 → 282. Askervein: разгоны ниже на 0,05–0,13 (−1…−2σ по группам). Perdigão: ≤ 0,09 (≤ 0,65σ).
- Регрессия матрицы А2.
- Перевод (а) lam = 27 м, lam_frac = 0: в штиль с нагревом окно 100 м не сходится (3001 итерация, max), cbl 7/8.
- Перевод (б) lam = 40, lam_frac = 0,0158: все cbl 8/8. Цена в цепочке игры (400 → 100 → 50 м, штиль с нагревом) +14 % итераций против new (493 против 433). На области 200 м в штиль с нагревом — 1101 итерация против 261.
- Оговорка к (б): в нейтральных случаях калибровки он даёт λ = 40 м, потому что пол lam выигрывает (0,0158·1700 = 27). Это Δχ² = +5,7 от совместного минимума: Askervein лучше, Perdigão хуже.
1. Сопоставимость (этап 1, принято К2 → C10 v3)
| Настройка | Askervein | Perdigão | Правило |
|---|---|---|---|
| Схема | scheme.py | scheme.py | одна |
| H (перепад рельефа в области наблюдений) | 119,9 м (HT над RS) | 173,6 м (гребень − дно, Menke 2019 табл. 2) | одно определение |
| dx, H/dx | 20 м, 6,0 | 30 м, 5,8 | dx = H/5,8 к шагу данных; dz = dx/2 |
| Область, губка боковая | 200 клеток (4 км), 35 клеток (700 м) | 200 клеток (6 км), 35 клеток (1050 м) | N_DOM 200, 35 клеток |
| Потолок, губка верхняя | высшая точка + 7,5 H; губка от высшей точки | то же | одно правило |
| Профиль притока | z_sat = 0,3·h = 450 м | 427–444 м | z_sat = 0,3·(0,3u*/f), max_profile = (z_sat/10)^α |
| Опорная скорость | U10 8,8: модель на RS 10 м = данные 8,895 | U10 3,27 / 3,12: модель на гребне 100 м = U100 | модель на опорной точке = данные у номинала |
| Лес | d = 0 | DSM + 12,6 м · доля леса; z0 скаляр | один способ |
| Наблюдаемые | ΔS к RS на той же высоте; профиль RS | u_∥/S_ref на мачтах; зона Menke | нижняя граница 1·dz; σ ⊕ 0,03 |
| Устойчивость | нейтраль | модель нейтральна, Δ_уст → σ | — |
Данные притока для z_sat (b1/out/fig_inflow.png). Askervein: змей до 267 м насыщения не показывает (местный показатель
0,21). Perdigão: по RHI-лидарам рост ветра прекращается на ≈ 400 м (NE) и ≈ 580 м (SW) над равниной притока.
Опора Askervein. Опорная мачта RS стоит в губке притока, то есть равна измеренному профилю. В области ×1,5 она выходит из губки, и её 10-м скорость растёт на 5 %: профиль модели при z0 0,03 не держит α 0,235. При этом разгоны к неизменному притоку меняются в среднем на +0,008. Поэтому эффект области — смена опоры, а не изменение течения над холмом. Область идёт в σ половиной, без сдвига.
Сеточная поправка. Δ = y(dx·2/3) − y(dx). dx/2 (32–37 млн клеток) не помещается в 12 ГБ.
- У номинала: Askervein в среднем +0,04, максимум 0,16; Perdigão ≤ 0,10.
- В лучшей точке поправка от номинала годится: разница rms 0,13–0,14σ, максимум 0,10. Прямой прогон dx·2/3 без поправки даёт χ² 212 против 209.
SW Perdigão. На мачтах долины ветер повёрнут вдоль долины (118–177° при притоке 216°): это каналирование, нейтральное среднее поле его не воспроизводит. Наблюдаемое на всех мачтах обоих подслучаев — u_∥/S_ref, как у зоны Menke. Мачты не исключались, веса не понижались.
2. Пачка и подгонка
- Сетки по λ (lam_frac = 0, lam = λ; 10–400 м, лог., 9 значений):
- Askervein: α 0,19–0,28 (7) × z0 0,01–0,3 (лог., 5) — 315 прогонов;
- Perdigão: α 0,15–0,33 (5) × z0 0,1–1,0 (лог., 5) × NE/SW — 450 прогонов.
- Все строки проходят
check_c10с 0 нарушений: 319 строк Askervein, 458 Perdigão, вместе с проверкой у лучшей точки. - Не ok — 1 прогон (SW, λ 10, α 0,33, z0 0,1: max 4000). Итерации 91–1441 (Askervein), 141–621 (NE), 151–4001 (SW).
- GPU: 1,55 ч Askervein + 2,33 ч Perdigão (RTX 4070 SUPER).
- Подгонка —
b1/fit.py: кубическая интерполяция по (ln λ, α, ln z0), iminuit (MIGRAD, MINOS), χ² по формуле C10. Зона Menke — одно наблюдение на величину (среднее модели NE и SW).
| Вариант | λ, м | α_A | z0_A, м | α_NE | α_SW | z0_P, м | χ²/ndf | Askervein | Perdigão |
|---|---|---|---|---|---|---|---|---|---|
| совместно, одно λ | 27,1 (+3,9 −3,2) | 0,242 ± 0,004 | 0,052 (+0,048 −0,029) | 0,33 (край) | 0,287 ± 0,034 | 1,0 (край) | 208,3/76 | 165,2 | 43,2 |
| совместно, λ = λ/h·h_i (λ/h 0,0182 ± 0,0035) | 38,6 / 22,1 / 21,1 | 0,239 | 0,17 | 0,31 | 0,21 | 0,31 | 200,8/76 | 156,5 | 44,2 |
| совместно, общий α_P | 29,0 | 0,242 | 0,053 | 0,33 | = α_NE | 1,0 | 209,9/77 (Δχ² 1,6) | 162,6 | 47,3 |
| только Askervein | 145 (+151 −48) | 0,235 | 0,20 | — | — | — | 135,5/44 | 135,5 | — |
| только Perdigão | 10 (край) | — | — | 0,33 (край) | 0,28 | 1,0 (край) | 28,6/31 | — | 28,6 |
χ² по группам (совместно):
| Группа | χ² | n |
|---|---|---|
| Askervein, подветренная сторона | 94,2 | 8 |
| Askervein, линия B | 29,1 | 11 |
| Askervein, наветренная сторона | 25,7 | 12 |
| Askervein, вершина | 12,8 | 8 |
| профиль RS | 3,4 | 8 |
| зона Menke | 7,5 | 3 |
| NE tse11 | 9,3 | 2 |
| NE tse09 | 5,5 | 3 |
| SW tse06 | 4,6 | 2 |
| остальные мачты Perdigão | ≤ 1,5 | — |
Края сетки. Основной вариант упирается в α_NE = 0,33 и z0_P = 1,0. Сетку не расширяли:
- z0 > 1 м при dz 15 м теряет смысл (z1/z0 < 7,5, пристенная функция ломается);
- α > 0,33 — выше оценки по шероховатости для леса (Counihan 1975: ≈ 0,24–0,27 при z0 1–2 м).
Оба параметра уходят на край, чтобы усилить дефицит скорости у земли и рециркуляцию. Это то же структурное расхождение, что
в §4, а не недостаток сетки. Профили χ²: b1/out/fig_fit_profiles.png.
3. Проверка у лучшей точки (b1/out/best_table.md)
| Прогон | итераций A/NE/SW | χ² Askervein | χ² Perdigão | всего |
|---|---|---|---|---|
| лучшая точка (прямой прогон; суррогат 208,3) | 101/231/231 | 165,2 | 43,4 | 208,6 |
| local_k выкл | 121/241/251 | 252,7 | 27,9 | 280,6 |
| 1-й порядок (схема игры) | 101/171/161 | 234,4 | 48,0 | 282,4 |
| dx·2/3, без поправки сетки | 391/481/451 | 170,4 | 41,5 | 211,9 |
local_k выкл помогает Perdigão (−15), но вредит Askervein (+88): выбор А3 (вкл.) подтверждается.
Систематика схемы игры (1-й − 2-й порядок), в параметры не входит:
- Askervein: вершина −0,13 (−2,0σ), подветренная сторона −0,09 (−1,6σ), линия B −0,06, наветренная −0,05.
- Perdigão: мачты −0,01…−0,08 (до −0,65σ); зона почти не меняется (NE L/D 0,40 → 0,40).
4. Отрыв за грядой при малом λ — ответ на вопрос плана
Малое λ не завышает отрыв за двойной грядой: даже при λ = 27 м и α, z0 на краях зона Perdigão меньше данных.
| данные | модель | |
|---|---|---|
| NE: L/D | 0,50 | 0,40 |
| NE: глубина/H | 0,90 | 0,70 |
| NE: max(−u)/U100 | 0,22 | 0,11 |
| SW: L/D | 0,50 | 0,20 |
| SW: глубина/H | 0,90 | 0,33 |
| SW: max(−u)/U100 | 0,22 | 0,07 |
Обратного течения на мачтах NE в долине (tse09–tse11, данные −0,13…−0,22) модель тоже не набирает.
За одиночным холмом Askervein при том же λ дефицит скорости, наоборот, сильнее данных:
| данные | модель | |
|---|---|---|
| ANE10 | +0,40 | −0,03 |
| AANE20 | −0,06 | −0,45 |
| AANE30 | −0,19 | −0,58 |
Одно λ не может одновременно усилить рециркуляцию в долине и ослабить след за холмом. Возможные причины — первый порядок K-замыкания, стационарное среднее поле, неразрешённый внутренний слой (Askervein, AM-09), каналирование и стратификация в долине Perdigão. Это граница модели («Границы модели»), а не недоподогнанный параметр.
5. Регрессия матрицы А2 (b1/out/a2_regression.md, tools/research/a2pre/out/matrix_b1.jsonl)
Онгудай, цепочка 400 → 100 → 50 м и область 200 м; штиль и 3 м/с; с нагревом и без; cbl и surface. α, z0, max_profile Онгудая не подбирались: взяты номинал игры (0,14 / 0,1 / 1,8) и перекалибровка (0,235 / 0,09 / 2,0).
| Набор | cbl: сошлось | итераций cbl | с решателя cbl | surface: сошлось |
|---|---|---|---|---|
| old (λ/h 0,25), А2 | 8/8 | 1516 | 33,7 с | 4/4 |
| new (λ/h 0,031), А2 | 8/8 | 1576 | 35,3 с | 2/4 |
| (а) lam 27, lam_frac 0 — game / recal | 7/8 (w100 штиль с нагревом: max) | 5486 / 5446 | 95,8 / 95,1 с | 2/4 |
| (б) lam 40, lam_frac 0,0158 — game / recal | 8/8 | 2506 / 2476 | 67,0 / 66,7 с | 2/4 |
Разница цены (б) против new — только в штиль с нагревом:
- цепочка игры: 201/61/231 против 161/61/211 итераций, 6,4 против 5,8 с;
- область 200 м: 1101 против 261 итерации.
При 3 м/с и без нагрева цена та же. Surface в штиль с нагревом не сходится, как и у new в А2 (это не режим игры).
6. Рекомендация и открытые вопросы
- Для игры — перевод (б): lam = 40 м, lam_frac ≈ 0,016. Все cbl-случаи сходятся. В нейтрали он даёт λ = 40 м: это
внутри напряжения двух случаев, Δχ² +5,7 от совместного минимума.
- (а) с λ = 27 м ближе к минимуму, но ломает сходимость окна 100 м в штиль с нагревом.
- Решение по α (координатор): α_A = 0,242 ± 0,004 — нейтральный сильный ветер Askervein. Для Perdigão α упирается в край, как параметр игры не годится.
- Моррис. Подгонкой параметров тех же факторов напряжение не снимается: λ одно, а local_k его перераспределяет между случаями. Повтор Морриса имеет смысл только как поиск структурного фактора (замыкание, Pr_t в нейтрали не действует) — решение пользователя.
- λ/h против lam. Для разделения нужен случай с другим h (слабый ветер или конвекция).
- Обход. Регрессия на области 200 м в штиль с нагревом стала в 4 раза дороже (λ меньше, чем у new: 40 против
0,031·h). Эталон
picard/и bench на 200 м надо пересчитать при переносе в игру.
Картинки
tools/research/cases/b1/out/:
fig_fit_profile_lam.png— профиль χ²(λ) по случаям;fig_fit_map_lf_lam.png— карта Δχ²(λ/h, lam);fig_fit_residuals.png— остатки;fig_fit_profiles.png— профили α, z0;fig_best_sections.png— разрезы Perdigão в лучшей точке;fig_inflow.png— данные притока;fig_ctl_obs.png,fig_ctl_sections.png— контроль у номинала.
Источники
Taylor & Teunissen 1987, BLM 39:15 (данные — Zenodo 4095052, CC BY 4.0) · Menke et al. 2019, ACP 19:2713 · NCAR/EOL ISFS Perdigão, doi:10.26023/ZDMJ-D1TY-FG14 · Raupach 1994, BLM 71:211 · Whiteman & Doran 1993, JAM 32:1669 · Counihan 1975, Atmos. Env. 9:871 · Blackadar 1962, JGR 67:3095 · Holtslag & Boville 1993, J. Climate 6:1825.