Серии продувки и ИИ-агент
Простыми словами. Один расчёт отвечает на вопрос «какие силы при этом
угле и этом положении руля». Серия отвечает сразу на много таких
вопросов: она сама перебирает углы атаки и отклонения руля (или углы
скольжения) и собирает таблицу — по ней видно, как работает руль, на каком
угле модель летит горизонтально, на какой скорости сваливается и устойчива
ли она. Серия считается часами, поэтому ставится одна задача, а результат
ждёт в «Моих расчётах». Серии есть только у вошедших. В конце страницы — как
делать всё то же через ИИ-агента (MCP).
Серия отклонений руля
Серия считает силы одной группы рулей на многих углах атаки и отклонениях —
одной задачей. Результат живёт в «Моих расчётах».
Как поставить из формы. Войдите, загрузите модель (шаг 1) и на шаге 2
отметьте рули группы, которую хотите посчитать, — с осью шарнира и ходом (см.
«Рули: назначение и ход»). На
шаге 3 «Условия» появится выбор «Один расчёт / Серия отклонений»:
выберите серию, затем группу рулей (в списке только те, что отмечены на шаге 2)
и план — «39» по умолчанию или «27». Под выбором — грубая оценка времени,
только порядок величины: «порядка 2 часов на видеокарте, порядка суток без
неё» (если видеокарта сервера недоступна — только время на процессоре).
Правило округления: до 16 часов — целые часы, от 16 часов — целые сутки;
фактическое время может заметно отличаться. Скорость потока задаётся как
обычно, а угол атаки и качество сетки у серии не спрашиваются: она сама
перебирает углы плана и считается только в режиме «точно». На шаге 4 сводка
называет режим, группу, план и ту же оценку времени; «Запустить расчёт»
ставит в очередь одну задачу-серию и открывает её страницу в «Моих
расчётах». Если рули не отмечены или шаг 2 пропущен, выбора нет — форма
ставит одиночный расчёт; без входа вместо выбора стоит подсказка войти.
План. «39» (по умолчанию) — 13 углов атаки × 3 отклонения (оба края хода и
нейтраль), «27» — 9 × 3, дешевле на треть и грубее по углу. Полная таблица —
углы от −10° до +15° с шагом 0,5° × 15 отклонений — восстанавливается по
посчитанным кадрам, когда серия досчитана, с оценкой неопределённости у
каждого узла. Углы одного отклонения считаются по возрастанию, и каждый
следующий до 7° начинается с решения предыдущего — так кадр короче и точнее,
чем с нуля; первый угол каждого отклонения и углы выше 7° (у срыва, где ответ
мог бы зависеть от порядка счёта) считаются с нуля.
Время. «39» на видеокарте — около 1,6 часа для половины модели (руль
высоты, закрылки, элевоны) и около 3 часов для модели целиком (элероны, руль
направления: у них нужна вся модель, без плоскости симметрии); без
видеокарты — около 17 и 33 часов. Модель целиком помещается на видеокарту,
пока её сетка не крупнее примерно 5,9 млн клеток; сетка крупнее считается на
процессоре. Если сетка модели вышла больше, чем сервер удержит в памяти, она
строится заново грубее и серия считается дальше: все кадры одной серии — на
сетках одного размера. Обычно это видно на первой же сетке и добавляет к
серии около 13 минут; если грубее пришлось перейти позже, уже посчитанные
кадры прежних отклонений считаются заново, и счётчик «Кадров готово» на это
время откатывается назад. Режима «быстро» у серии нет: его сетка крупнее щели
шарнира, и в нейтрали руль получает ложный «провал» подъёмной силы — около
8 % на нашем замере.
Серия досчитывает кадры там, где поляра гнётся. После кадров каждого
отклонения серия смотрит, насколько ненадёжна достройка между посчитанными
углами, и добавляет кадры посередине отрезков, где ошибка достройки выше ±2 %
силы (на уровне шума сетки сборки); вне −2…+6° точность самих кадров —
проценты, поэтому там порог ±10 %. Плоские участки остаются редкими. Не
больше 4 добавочных кадров на отклонение — «39» вырастает не выше 51 кадра,
«27» — не выше 39; число «Кадров готово из …» растёт вместе с ними. Время
серии на форме — диапазон («2 ч – 4 ч»): нижняя граница — как у плоской
поляры, верхняя — со всеми добавочными кадрами. У аккаунта одновременно идёт
одна серия; в суточный лимит она засчитывается как один расчёт.
Крен и рыскание — у серий элеронов и руля направления. У этих серий
модель считается целиком, и в таблице кадров появляются колонки «Крен,
Н·м» и «Рыскание, Н·м», а под ней — раскрывающаяся таблица наклона
крена по отклонению (Н·м на градус) на каждом угле атаки: так видно,
насколько эффективны элероны по крену. Знак — как у самолёта: крен
положителен, когда правое крыло уходит вниз, рыскание — когда нос уходит
вправо. «Плюс» отклонения — задняя кромка правого элерона вниз (левый — в
обратную сторону), поэтому положительное отклонение даёт отрицательный
крен. Моменты — относительно той же точки, что момент тангажа (центр масс,
если задан; иначе начало координат файла); коэффициента крена нет — размах
модели трубе не известен. У серии руля высоты, закрылков и элевонов
(полумодель) и у одиночных расчётов без скольжения крена и рыскания нет:
плоскость симметрии гасит их по построению.
Страница серии
Страница серии показывает, сколько кадров готово из плана (и сколько не
посчиталось), полосу прогресса, что считается сейчас (сетка очередного
отклонения или кадр), в очереди — сколько расчётов перед серией, а когда
серия идёт — сколько минут она идёт уже (оценки «осталось» нет); обновляется
сама. Серия уступает очередь одиночным расчётам между своими кадрами,
поэтому может постоять. Пока серия идёт, её можно отменить: из очереди
она уходит сразу, идущая останавливается за несколько секунд, посчитанные
кадры остаются.
Ниже — таблица кадров: отклонение, угол атаки, сопротивление и подъёмная
сила; «≈» у кадра — силы не установились; «» у угла — он вне −2…+6°: там
силы печатной сборки в «точно» не устанавливаются и за долгий расчёт, и
точность кадра — проценты, а не шум сетки (±1,5–2 %). Насколько кадр не
установился, видно числом: «Итерации» — на какой итерации решатель
остановился (кадр без установления кончается на своём потолке: 350
итераций, у кадра, начатого с решения предыдущего угла, — 300), «Размах
D / L, %» — насколько сопротивление и подъёмная отходили от своего среднего
за последние итерации (прочерк — меньше 1 %), «Дрейф D / L, %»* —
насколько расходятся средние первой и второй половины этих итераций. Большой
дрейф значит, что среднее ещё плывёт, ИЛИ что сила медленно колеблется с
периодом порядка самого окна (у сборки так ведёт себя подъёмная).
Файлы. На странице своей серии — «Скачать посчитанные кадры (CSV)»
(frames.csv, в любой момент, в том числе у отменённой серии: те же числа,
что в таблице, плюс outside_reliable_alpha — пометка «», extra_round —
добавочный кадр сгущения, сходимость кадра, у модели целиком —
roll_moment_nm/yaw_moment_nm) и, когда серия досчитана, «Скачать полную
таблицу (CSV)»* (table.csv: строка на каждый узел «угол × отклонение» с
силами, оценкой неопределённости и номером кадра, если узел посчитан, а не
восстановлен; колонка uncertain помечает узлы, которым после сгущения
доверять нельзя). Серия с полётной массой — ещё «Выводы по полётной массе
(CSV)». Всё сразу — архивом ZIP (см.
«Скачать цифры и архив»).
Как смотреть серию. Когда серия досчитана и полная таблица восстановлена,
под таблицей кадров появляется блок «Исследовать серию»:
- ползунок угла атаки — все углы таблицы с шагом 0,5°, и ползунок
отклонения руля — 15 положений хода группы; - карточка выбранной точки — подъёмная, сопротивление, L/D и момент
тангажа с оценкой неопределённости «± …». Под карточкой сказано, откуда
числа: «посчитано» — в этой точке решался кадр серии (силы самого кадра
указаны строкой «в кадре: …» — они отличаются от таблицы на шум расчёта) —
или «восстановлено» — точка между кадрами, числа достроены по
посчитанным; - переключатель величины и два графика: по углу атаки (кривые для краёв хода
и нейтрали пунктиром плюс выбранное отклонение сплошной) и по отклонению при
выбранном угле. Мелкие точки — посчитанные кадры, крупная — выбранная
точка.
Под карточкой — угол балансировки выбранного отклонения: угол атаки, при
котором момент тангажа относительно центра масс равен нулю, и наклон dM/dα
там (отрицательный — модель устойчива: при росте угла момент опускает нос).
Центр масс серии задаётся на форме запуска; в просмотрщике его можно сдвинуть
полями X/Z — момент всех точек таблицы и кадров и угол балансировки
пересчитываются сразу. Таблица загружается вместе со страницей один раз —
ползунки двигаются без обращений к серверу.
3D серии: давление, проигрывание, щётка
Давление на модели у каждого кадра. Серия сохраняет у каждого кадра лёгкий
3D-слой — давление на поверхности модели (около 0,1 МБ на кадр), а форму
модели с рулём в своём положении — один раз на отклонение. В «Исследовать
серию» двигаете ползунок угла или отклонения — модель сразу перекрашивается
давлением этого кадра, а руль стоит в своём положении (крутить, приближать и
«Сбросить вид» — как в 3D одиночного расчёта). Синее — разрежение, красное —
поджатие. По умолчанию шкала одна на всю серию, чтобы кадры можно было
сравнивать на глаз; переключатель «Шкала кадра» растягивает её под выбранный
кадр. Таблица серии гуще посчитанных кадров, и в точке, где кадра нет,
показан ближайший посчитанный кадр — подпись над моделью называет его
угол и отклонение. Если у какого-то кадра слоя нет, подпись так и говорит
(«у кадра N слоя нет — показан ближайший со слоем: кадр M»); силы при этом на
месте. Первый показ скачивает 3D-движок (≈ 0,6 МБ) и форму модели своего
отклонения (≈ 1–3 МБ), дальше — один файл ≈ 0,1 МБ на точку. На широком
экране заодно подгружаются соседние точки, на телефоне — нет.
«Досчитать 3D-слой». Если у части кадров готовой серии слоя давления нет,
под 3D есть кнопка «Досчитать 3D-слой» (видна только владельцу): она
заново считает ТОЛЬКО кадры без слоя — на той же сетке, в том же порядке и с
тем же тёплым стартом, что в серии, — и заранее называет, сколько это кадров
и примерно сколько минут (у серии на плане «27» со сгущением — около часа
полумоделью и около двух часов моделью целиком). Силы, таблица и выводы
серии при этом не меняются: досчёт добавляет только давление на
поверхности. Пересчитанные силы сверяются с сохранёнными, и если у кадра они
разошлись больше шума (≈ 1,3–1,4 % в надёжной зоне углов, вне её — размах
колебания силы самого кадра, но не меньше 2 %), кадр называется под 3D —
таблица по-прежнему показывает сохранённые силы. Кадр, который досчёт уже
пробовал, второй раз не предлагается. Если перестроенная сетка отклонения
вышла не точно такой, как в серии, его кадры не досчитываются (давление
легло бы не на те точки модели) — это тоже названо; если сохранённую форму
модели с перестроенной сеткой не сверить вовсе, сетка даже не строится
(время видеокарты не тратится), и кадры названы сразу. Пока идёт досчёт,
серия стоит в очереди, как обычная серия, её можно остановить кнопкой
«Остановить досчёт» — серия при любом исходе остаётся готовой. Таблица,
архив и сравнение доступны и во время досчёта; удалить серию, пока досчёт
считается, нельзя — сначала остановите его. Досчёт не тратит суточный лимит,
но, как и серия, идёт не больше одного на аккаунт.
Ключевые кадры с полным 3D. Кроме лёгкого слоя, серия сохраняет полный
3D-вид (давление, линии тока, поле течения — тот же формат и просмотрщик,
что у одиночного расчёта) у нескольких кадров: нейтрали и обоих краёв хода
руля на одном-двух углах атаки — 3–6 кадров. Это те же кадры плана, а не
дополнительные расчёты. Углы по умолчанию — 2° и 5° (оба в зоне −2…+6°,
где силы сборки устанавливаются); угла, которого нет в плане, берётся
ближайший угол плана (у «39» вместо 2° — 1°). На форме запуска, в блоке
серии, поле «Углы атаки кадров с 3D» принимает один-два угла через
запятую, а флажок «Не сохранять 3D кадров» оставляет серию только с
силами. Цена — до ≈ 10 МБ на кадр (до ≈ 60 МБ на серию из шести кадров,
хранится и удаляется вместе с серией) и около минуты к серии. У ключевых
кадров в таблице стоит ссылка «3D», а в просмотрщике — кнопка «Открыть
этот кадр в 3D». Ссылки видит только владелец (по секретной ссылке кадры
серии не раздаются — как и CSV серии). Если 3D какого-то ключевого кадра не
построилось, серия всё равно готова, а страница предупреждает об этом.
Проигрывание серии (▶). Над моделью — кнопка ▶/⏸, выбор оси («Угол
атаки» или отклонение руля), режим («Петля» или «Туда-обратно») и скорость
(0,5×–4×; 1× — 6 точек таблицы в секунду, то есть 51 угол — около 8,5 с).
Между соседними точками всё меняется плавно, а не скачком: цвет давления
— смесь двух ближайших посчитанных кадров, числа карточки и маркеры на
графиках — интерполяция таблицы. Перед стартом страница догружает давление
всех кадров пути («загружено N из M файлов, X МБ»); при включённом в системе
«уменьшении движения» скорость по умолчанию 0,5×, а точки сменяются шагом;
если давление загрузить не удалось, играют только числа и графики. ⏸
останавливает на ближайшей точке, ползунок во время проигрывания тоже
останавливает его. Сервер во время проигрывания не опрашивается. Проход
можно сохранить роликом (см. «Сохранить видео»).
Поворачивается самолёт, а не воздух. Модель (вместе с щёткой и линиями
тока) повёрнута на угол атаки показанного кадра вокруг точки момента серии
(ЦТ; если точку не задавали — вокруг середины модели), а воздух всегда идёт
слева направо вдоль тонкой серой оси — это «горизонт», по нему виден
угол. Камера не крутится вместе с моделью: при проигрывании по углу атаки
самолёт плавно поднимает и опускает нос.
Подъёмная по размаху (зелёная «щётка»). Над моделью стоят зелёные
столбики — по одному на каждую из 48 полос размаха — и линия по их вершинам:
высота столбика — подъёмная сила этой полосы. Видно, где по размаху
рождается подъёмная (у хорошего крыла огибающая близка к эллипсу), где её
«съедает» фюзеляж и как она растёт с углом атаки. Масштаб один на всю
серию, поэтому при проигрывании щётка растёт вместе с углом. Все столбики
крыла стоят на линии четверти хорды, как в XFLR5: у стреловидного крыла
линия идёт назад к законцовкам, у крыла с поперечным V — вверх. Верхушки
соединяет плавная линия — сглаживание по размаху, которое не пересекает
резкие скачки (ступень у фюзеляжа, спад у законцовки); исходная ломаная по
полосам остаётся тонкой бледной линией под ней. Отрицательная подъёмная —
столбики вниз; щётка рисуется поверх модели. У полумодели щётки зеркальны,
как и модель. Считает её браузер из того же давления, которым раскрашена
модель. Под тумблером «Подъёмная по размаху» — сумма полос в ньютонах,
подъёмная кадра и разница в процентах: в полосах только давление, а сила
кадра — с трением, поэтому несколько процентов разницы — норма; у кадров с
подъёмной около нуля процент не пишется.
Горизонтальное оперение — своя, пурпурная щётка над стабилизатором (у
V-хвоста — над его панелями, высота — вертикальная составляющая силы), с тем
же масштабом, что у крыла, и подпись делит сумму: «крыло X Н, оперение Y Н».
Оперение узнаётся по геометрии. Если модель разбита на детали, оперение —
деталь, которая стоит позади задней кромки крыла с заметным зазором и сама
тонкая, как пластина (щётка заводится, если среди таких деталей есть
горизонтальная или V); киль идёт в щётку оперения (его вклад в подъёмную
почти нулевой, боковую силу щётка не показывает), элевоны и закрылки остаются в крыле, а объёмные детали
позади крыла — гондола, обтекатель мотора, отдельная задняя часть фюзеляжа —
оперением не считаются. Если стабилизатор слит с крылом и фюзеляжем в одно
тело (так у печатных сборок, у серии рулей и у расчёта с отклонённым рулём
модель всегда считается одним телом), граница идёт по положению: задняя
кромка крыла берётся на внешней части размаха, где крыло одно, и всё, что
лежит позади неё с заметным зазором, — оперение, если там есть
горизонтальная (или V) поверхность шире фюзеляжа. Тогда в пурпурную щётку
попадает и хвостовая часть фюзеляжа позади крыла — так же, как передняя
часть фюзеляжа входит в зелёную щётку крыла; одиночный киль без
стабилизатора, конец фюзеляжа, переднее горизонтальное оперение «утки» и
вытянутый назад центроплан летающего крыла щётку оперения не заводят. У
тандема, посчитанного одним телом, заднее крыло целиком попадает в щётку
оперения: по одной геометрии его не отличить от большого стабилизатора.
Поток (тумблер «Поток»). Линии тока есть только у ключевых кадров.
У такого кадра поверх давления бегут оранжевые штрихи — воздух «массой», как
«Поток как масса» в 3D одиночного расчёта (≈ 1–2 МБ, скачиваются при первом
показе кадра). У остальных кадров потока нет — чужие линии на них не
переносятся (они посчитаны при другом угле и положении руля и прошли бы
сквозь модель), подпись называет ближайший ключевой кадр. При проигрывании
поток проявляется около ключевого кадра и плавно гаснет к соседнему. Линии
всех ключевых кадров на пути проигрывания скачиваются до старта и держатся до
его конца, поэтому поток появляется у каждого из них. Тумблер прячет штрихи и
ничего не скачивает.
Кадр серии отдельно, с 3D
Под ползунками досчитанной серии есть кнопка «Посчитать этот кадр отдельно
с 3D». Она ставит одиночный расчёт на той же модели и с тем же
назначением рулей, на выбранных ползунками угле атаки и отклонении (см.
«Один расчёт с отклонением руля»);
отклонения узла ложатся точными числами серии (2.857143°, а не округлёнными
для показа). Серия при этом не перезапускается и не меняется; новый расчёт
идёт в суточный лимит и в очередь как любой одиночный, открывается в «Моих
расчётах», а повтор той же кнопки отдаёт уже поставленный расчёт. Кнопка —
только на странице своей серии, по секретной ссылке её нет. Силы такого
расчёта совпадают с кадром серии в пределах шума кадра: тот же файл, то же
отклонение, та же рамка и сетка.
Серия по скольжению
На шаге 3 выберите «Серия» и в группе — «Скольжение, модель целиком (без
рулей)»: рули для неё не нужны. Серия идёт при угле атаки этого шага и сама
проходит скольжения по плану:
- beta9 (по умолчанию) — от −10° до +10° через 2,5°: 9 расчётов, порядка
часа на видеокарте и около 8 часов без неё; - beta5 — −10, −5, 0, +5, +10°: 5 расчётов, около получаса на видеокарте
и около 4–5 часов без неё.
Все расчёты серии идут на одной сетке (её след накрывает оба крайних
скольжения), моделью целиком и только в режиме «точно»; 3D-вида у кадров нет —
только силы и моменты. На странице серии — таблица по скольжению (боковая сила,
крен, рыскание, сопротивление, подъёмная, тангаж) и блок «Устойчивость по
скольжению»: рыскание, крен и боковая сила на градус скольжения — наклон
прямой по кадрам от −5° до +5° (кадры за ±5° показывают, где кривая начинает
загибаться, и в наклон не входят). Знаки и смысл — как у
сравнения пары расчётов со скольжением.
Моменты — относительно центра масс серии (поле точки момента на шаге 3).
Таблицу и наклоны можно скачать файлом beta.csv, все кадры — frames.csv.
Серия отклонений руля со скольжением не принимается — скольжение перебирает
только эта серия. Файл-полумодель самолёта серия по скольжению тоже не
принимает (граница та же, что у одиночного расчёта со скольжением).
Точка момента на странице серии по скольжению двигается так же, как у
одиночного расчёта: введите X и Z центра масс — моменты крена, рыскания и
тангажа каждого кадра и оба наклона пересчитаются сразу, без нового
расчёта; «Точка расчёта» возвращает числа серии.
Полётная масса у серии по скольжению. Если у серии задана масса, под
таблицей кадров стоят выводы по каждому скольжению: какую долю веса несёт
подъёмная сила кадра, скорость и тяга горизонтального полёта на угле атаки
серии и сколько скольжение стоит по тяге против 0°. Угла горизонтального
полёта, скорости сваливания и запаса устойчивости у такой серии нет: для них
нужен перебор углов атаки. Файл flight.csv — строка на кадр.
Сравнение двух серий
Две серии сравниваются так же, как два одиночных расчёта (отметьте их в «Моих
расчётах»), но вместо сил и 3D страница показывает поляры двух серий на
одних графиках и таблицу по углам атаки:
- отклонение руля — серии сравниваются при одном и том же отклонении: по
умолчанию ближайшем к нулю из общих у обеих серий, другое выбирается списком
над графиками (?d=<градусы>в адресе). Нет ни одного общего отклонения —
страница скажет об этом: сравнивать силы при «разных ручках» нельзя; - четыре графика — подъёмная сила, сопротивление, качество L/D и момент
тангажа: кривая A сплошная, кривая B пунктирная (различимы и без цвета).
Это числа таблиц серий — те же, что показывает ползунок на странице серии;
момент — в Н·м (у серии нет опорных площади и хорды); - таблицу по углам — для каждого угла атаки A, B и разница B − A по
каждой из четырёх величин с отметкой, у кого лучше; углы, которых нет в
одной из серий, помечены «только в A»/«только в B» и не сравниваются; - предупреждение о разных условиях — как у одиночных, плюс другая
группа рулей. Моменты, взятые относительно разных точек, не вычитаются.
Две серии по скольжению сравниваются таблицей по скольжению — боковая
сила, моменты крена и рыскания, сопротивление и подъёмная сила A, B и
разница B − A — и наклонами каждой серии с разницей. Скольжение, которого нет
в одной из серий, показано и не сравнивается. Угол атаки у двух серий должен
совпадать: страница называет общий угол, а расхождение — в списке условий.
Серию по скольжению нельзя сравнить с серией руля.
Через ИИ-агента (MCP)
Расчётами своего аккаунта может управлять ИИ-агент через MCP-сервер Skyforge
(токен в «Настройки → API-токены»; как подключить агента —
ИИ-ассистент и MCP). Ставить,
перезапускать, останавливать и удалять — право токена wind_tunnel:write,
читать — read. Лимит тот же — 10 расчётов в сутки на аккаунт или личный
лимит аккаунта (отказ account_daily_limit называет это число).
Как агенту посчитать самолёт. Модель в осях расчётчика (нос −X, верх +Z)
или с nose/up; одиночный расчёт — полумодель (целый симметричный самолёт
сервер сам переносит на плоскость симметрии). Для чисел — quality='accurate'
(«быстро» — черновик, сравнивать нельзя). Поляра — серия одиночных расчётов по
углам −2…+6° (каждый идёт в суточный лимит), руль — серия отклонений.
not_converged: true — силы не устоялись: верьте им меньше и сверьтесь с
соседним углом. Два варианта сравнивает wind_tunnel_compare — надёжно только
при одинаковых условиях и «точно». Тот же сценарий коротко записан в описании
wind_tunnel_submit.
Инструменты
wind_tunnel_submit— поставить расчёт: STL или STEP вstl_base64
(до 8 МБ; STEP сервер узнаёт по содержимому) или файл вашего Хранилища
(vault_file_id, ниже), скорость, качество, угол атакиalpha_deg,
скольжениеbeta_deg(расчёт модели целиком, в отчёте блокlateral).wind_tunnel_rerun— перезапуск на том же файле; не названный параметр
— как у исходного расчёта, ориентация — всегда исходная.wind_tunnel_series_submit— серия отклонений: группа рулей, план
«39»/«27»,task_idсвоего расчёта с назначенными рулями или новый файл; в
ответе — грубый порядок времени с пометкой «не обещание». Группаbeta—
серия по скольжению при углеalpha_deg, планыbeta9/beta5.wind_tunnel_series_cancel,wind_tunnel_cancel— отменить серию;
остановить любой свой расчёт, в том числе идущий (ниже).wind_tunnel_series_relayer— досчитать 3D-слой давления у кадров
готовой серии, которым он не достался.wind_tunnel_list,wind_tunnel_status,wind_tunnel_report—
мои расчёты, статус (у серии — кадры, адреса CSV, сinclude_table=true—
полная таблица, те же числа, что у ползунков на странице; у серии по
скольжению — блокbetaиbeta_csv_url) и отчёт (силы, предупреждения,
ссылки на картинки).wind_tunnel_compare— сравнить два своих готовых расчёта (task_id_a,
task_id_b): силы A и B, разница B − A в единицах и %, кто лучше,
совпадают ли условия (conditions_match,mismatches),parts— детали
пары, ссылка на страницу сравнения; пара, различающаяся только
скольжением, несётsideslip— путевую устойчивость. Для пары серий —
kind: "series",deflection_deg(по умолчанию ближайшее к нулю общее),
deflections_degиanglesсcompared/only_in; две серии по
скольжению —kind: "beta_series",betasиslopes; серия по скольжению с
серией руля — отказcompare_series_kind.wind_tunnel_set_flight— поменять полётную массу готового расчёта или
серии без нового расчёта (ниже).wind_tunnel_delete— то же, что кнопка «Удалить» в «Моих расчётах».
Аргументы постановки
- Черновик «быстро» агент видит: у такого расчёта
forces_draft: true(в
списке, статусе и отчёте), аaccuracy_noteв отчёте говорит, что силы
приблизительные и для сравнения его надо перезапустить с
quality='accurate'. - Рули — аргумент
controlsуwind_tunnel_submit/wind_tunnel_rerun
(та же форма, что у мастера: группа, номера деталей, ось шарнира в мм, ход в
обе стороны; у перезапуска без аргумента — как у исходного расчёта);
назначение видно вwind_tunnel_status. Имена деталей STEP по номерам — в
task.input_step.shell_namesответа постановки и списка. - Ориентация —
noseиupуwind_tunnel_submitи
wind_tunnel_series_submitсо своим файлом (оси файла-x…+z, верх
поперёк носа; без них — без поворота); ось шарнира вcontrolsтогда — в
осях уже повёрнутой модели. Перезапуск и серия сtask_idберут ориентацию
исходного расчёта,wind_tunnel_statusеё показывает (orientation). - Отклонение руля —
deflection_groupиdeflection_degу
wind_tunnel_submit(вместе сcontrols, в которых есть эта группа) и
wind_tunnel_rerun(без аргументов — отклонение исходного расчёта,
deflection_degменяет угол); отклонение — вtask.deflectionи
conditions.deflectionотчёта. Кадр серии с 3D —wind_tunnel_rerunпо
task_idсерии сalpha_degиdeflection_deg; безdeflection_deg
серию не перезапустить (series_rerun). Отказы:bad_deflection,
deflection_no_group,deflection_out_of_travel. - Центр масс —
moment_ref_mm([x, z]в мм, в осях повёрнутой модели)
уwind_tunnel_submit,wind_tunnel_rerunиwind_tunnel_series_submit;
без аргумента — начало координат, у перезапуска — точка исходного расчёта. - Внутренний проток —
internal_flowуwind_tunnel_submit
(task.internal_flowв ответе); в отчёте —leak_check, у деталей
connected_to_flow, блокthrough_flow(расход и баланс). - Атмосфера — либо
altitude_m(−500…11 000) и/илиtemperature_c
(−60…+50; без температуры — стандартная для высоты), либо оба числа
density_kg_m3(0.3…1.4) иkinematic_viscosity_m2_s(1e-5…5e-5,
например1.46e-5). Оба способа сразу, одно из пары ρ/ν или значение вне
границ — отказbad_atmosphere, задача не создаётся. Не задано ничего —
воздух у земли (0 м, 15 °C); у перезапуска и серии сtask_id— воздух
исходного расчёта. Итоговые ρ, ν, скорость звука и (если есть) высота с
температурой — в полеatmosphereответа любого инструмента и отчёта.
Чтобы совпасть с XFLR5, передайте те жеdensity_kg_m3и
kinematic_viscosity_m2_s. - Полётная масса —
flight_mass_g(г) и необязательныеwing_area_dm2,
mac_mmуwind_tunnel_submit,wind_tunnel_rerunи
wind_tunnel_series_submit. Отчёт одиночного расчёта несёт блокflight,
статус серии — тот же блок с углом горизонтального полёта
(level_alpha_deg), скоростью сваливания (stall_speed_ms), нейтральной
точкой и запасом (static_margin_pct) и ссылкуflight_csv_url. Площадь
или САХ без массы — отказbad_flight.
wind_tunnel_set_flight(task_id, flight_mass_g?, wing_area_dm2?, mac_mm?)
меняет массу у готового расчёта или серии: ответ сразу несёт пересчитанные
выводы (conclusions); без аргументов — масса убирается.
wind_tunnel_compareнесёт блокflight(a,b,same_weight).
Что агент видит в ответе
- Починка при загрузке —
task.input_repair:before/after
(открытые рёбра, края дырboundary_edges, число дырholesи наибольшая
—hole_max_mm/hole_max_width_mm, перевёрнутые и копии треугольников),
что сделано (holes_closed,welded_vertices,flipped_faces,
removed_duplicates) и наибольший сдвиг поверхностиmax_deviation_mm;
large_caps— закрытые плоские заплатки крупнее 2 мм (shell,
length_mm,width_mm;large_caps_total— их число): могли закрыть
задуманное отверстие;skipped— почему починка отменена или урезана.
null— чинить было нечего. Риск утечки до расчёта —task.leak_risk. - Цифры — отчёт (
wind_tunnel_report) и статус готового расчёта (поле
results) отдают одно и то же: условия (conditions— скорость, угол
атаки, качество, полумодель или целиком, число Маха, скоростной напор),
атмосферу, силы и момент с признаками сходимости (forces) и
коэффициенты. Коэффициенты считаются, когда агент назвал площадь крыла всей
моделиref_area_m2(CL, CD) и хордуref_chord_m(Cm и число
Рейнольдса); Cm — относительноmoment_ref_mmили точки момента расчёта. - Силы по деталям — ключ
partsв блоке цифр:items(по убыванию
площади, «прочее» последним:name— имя тела STEP илиnull,rank,
kind,area_m2,drag_n,lift_n,drag_share,lift_share),
sum_drag_n/sum_lift_n,min_area_fraction(порог «прочего», 0.01).
null— расчёт не разбивался. - Сжимаемость — у расчёта быстрее 100 м/с статус и отчёт несут поле
compressibility: на сколько процентов занижены силы давления
(pressure_forces_low_pct) и тот же текст предупреждения, что на странице. - Архив —
archive_urlвwind_tunnel_status/wind_tunnel_report:
ссылка, открывается тем же токеном сread; содержимое в ответ не
кладётся.
Крупная модель, остановка и удаление
- Модель больше 8 МБ агент передаёт не base64, а через ваше Хранилище:
кладёт файл в свою карточку (загрузкойPOST /vault/<карточка>/filesтем
же токеном со скоупомvault:write— до 200 МБ на файл — или
vault_uploadдля небольших файлов) и ставит расчёт аргументом
vault_file_idуwind_tunnel_submitилиwind_tunnel_series_submit.
Для этого токену нужен ещёread, и считается только файл ВАШЕЙ карточки,
не из корзины. Третий путь — та же загрузка, что у веб-формы:POST /tools/wind-tunnel(multipart, полеstl, заголовокAccept: application/json, токен сwind_tunnel:write) — до 500 МБ. - Остановка —
wind_tunnel_cancel: то же, что кнопка «Остановить
расчёт», для одиночного расчёта и для серии. В очереди расчёт закрывается
сразу (outcome: cancelled), идущий останавливается не позже чем через
~30 секунд (outcome: requested), задача становитсяfailedс кодом
cancelled, аwind_tunnel_statusвfailure.stageназывает стадию.
Законченный расчёт — ошибкаtask_finished. - Удаление —
wind_tunnel_delete. Расчёт в очереди удаление снимает с
очереди; идущий удалить нельзя — отказtask_running: сначала остановите
его, потом удаляйте.