Jump to content

Какие алгоритмы построения крыла + оптимизация CFD наиболее востребованы?


Recommended Posts

zerganalizer

Всем привет!

 

Мне предлагают заняться построениями крыла, профилями с возможностью оптимизации построений по результатам CFD-анализов. Отсюда возникает задача создать методику (алгоритм) проектирования крыла, профилей и связь всей этой параметрики с CFD-анализами.

 

Однако я увидел немало специального ПО, которое давно это делает, разными способами. Из недавних - LS-TECHNOLOGIES - сделала всё, что нужно, но в среде Flypoint Parametrica. Наверное, в каждой CFD есть ядро для построения геометрии, CFD-модуль и оптимизаторы, с возможностью деформации построенной геометрии для улучшения обтекания. Также есть возможности при моделировании параметров потока подгонять "болванку" кривой профиля под параметры потока, получая геометрию профиля "генеративно", под поток.

 

Я могу назвать ещё кучу ПО, пытающегося решить задачу построения профилей и крыльев на их основе под нужные параметры потока и обтекания, подобное есть даже в опробованном мною XFLR5 с его примитивными панельными методами расчёта, но...

 

Меня всё ещё гложет идея, что крыло с его профилями можно описать единым математико-поисковым алгоритмом, наподобие моего конфигуратора крыла (нуждается в создании нескольких версий под другие условия задачи) + конфигуратор профиля.

 

Отсюда я хочу снова обсудить тему создания наиболее оптимальных алгоритмов и методик построения крыла, как обсуждал это с аэродинамиками в ЦАГИ лет 15 назад для создания чего-то вроде приложения, решающего эту задачу. Тогда я в-целом ухватил их пожелания, и алгоритм в-целом выглядел так:

 

1. Аэродинамик выбирает компоновку крыла, "рисуя" образующие крыла в плане, галку поперечного "V" и набор специально подобранных профилей (из альманахов с точками), которые надо расставить по размаху где-то по характерным местам на образующих в плане, например, на изломе крыла и т.п. На основе этих данных уже понятно общее назначение ЛА и его характеристик.

2. В ЦАГИ расставленные профили поворачивали в каждой позиции по размаху на углы крутки каждого и двигали вверх-вниз, оптимизируя проложенные по носикам/хвостикам соединяющие сплайны для получения передней/задней образующих крыла. У меня своё решение на этот счёт, которое создаёт образующие однозначно на базе описанных выше исходных данных.

 

Тут я сделаю отступление от списка - аэродинамик, руководивший моими разработками, подбирал профили под свою компоновку с нужными характеристиками - camber positions, строительная толщина, Re и т.п. Это нужно, чтобы проектируемый лонжерон проходил как минимум вблизи положения максимальной строительной толщины каждого профиля по размаху крыла.

 

А ещё - так как скорость потока воздуха вдоль крыла примерно постоянная, а хорда всё меньше по размаху - число Re растёт для профилей с мЕньшей хордой, откуда профили надо подбирать под вычисленное Re каждого профиля. Плюс к этому - профиль крыла под такой увеличенный Re имеет свои особенности, например, у более "скоростных" профилей обычно camber position больше. Отсюда если аэродинамик хочет, чтобы ПРЯМОЙ лонжерон прошёл через camber positions, или максимальные строительные высоты всех профилей, кривые в плане нужно подгонять под выбранные профили, и положение лонжерона тоже. А, ЕМНИП, лонжерон должен пройти через центр масс ЛА, откуда возникает задача многокритериальной оптимизации крыла, профилей и геометрии ЛА в-целом.

 

Отсюда возникает идея не ставить готовые профили по размаху из альбомов с точками, а генерировать по месту, под заказ. А чтобы сгенерированный профиль отвечал всем требованиям, нужна оптимизация каждого под рассчитанный Re для "попадания его максимального аэродинамического качества в требуемый диапазон Re при выбранном camber position". А этот самый camber position будет не произвольный, а диктоваться прохождением лонжерона по размаху крыла и его прямолинейностью.

 

Собственно, я начинал заниматься конфигуратором профиля именно под эту задачу - генерации оптимального крыла по месту, чтобы не искать ближайший подходящий из известных. А далее - снова к списку:

 

3. Полученное крыло продувается CFD и оптимизируется методами деформации в конкретной CFD.

4. Полученная после оптимизации полигональная модель "заставляет" конфигуратор крыла и все профили перестроить для достижения той геометрии, что рекомендует CFD. Этот цикл п.п.2-4 может быть многократным, уточняющим геометрию. Сюда, возможно  войдёт и создание геометрии механизации крыла (закрылки, законфовки), которые будут участвовать в циклах оптимизации крыла.

 

Но тут возникает ситуация, когда сильные изменения геометрии крыла могут привести к существенному изменению длин хорд профилей и их значений Re. Откуда может возникнуть необходимость перегенерации профилей вкупе с их переоптимизацией под их изменившиеся числа Рейнольдса.

 

5. Возможно - создание геометрии механизации крыла (закрылки, законфовки), которые будут участвовать в циклах оптимизации крыла, можно вынести за скобки первых циклов оптимизации системы "образующие-лонжерон-профили-крыло" (п.п.2-4). Этот вопрос - к обсуждению.

 

Вообще мой конфигуратор крыла хотят прикрутить к оптимизатору (или оптимизатор - к конфигуратору) и заставить всю геометрию крайне гладко строить на движке CATIA, а помня о том, что мой конфигуратор написан сплошь на функционале ISD/ICEM в CATIA, то перенос построения куда-то ещё - не вариант.

 

А теперь - о главном. Каков же наиболее правильный алгоритм (их может быть несколько, судя по беседам с ЦАГовцами 15 лет назад), который нужно реализовать при создании конфигуратора (или, если хотите - приложения) для построения крыла, и какими параметрами он должен управляться?

 

Подобное задание я получил от аэродинамика в ЦАГИ, которое частично реализовал в разработках, проданных "Аэрокону" (г.Жуковский) 15 лет назад. Но интересно запрограммировать решение не только для беспилотников органических форм компоновки "летающее крыло". Нужен универсальный решатель, под современные реалии и возможности CFD. Что думаете?

 

И последнее. Я бы не стал думать в этом направлении при всём разнообразии существующего ПО, умеющего всё это так или иначе, и спроектированные им ЛА вполне себе летают. Но на мой взгляд - сама геометрия в существующих решениях строится "слишком грубо", откуда она не в состоянии описать собой всё возможное многообразие даже профилей. По моим изысканиям в построении "другой" геометрии профиля оказалось на практике, что построенная "кривулина" не может быть описана сплайнами/NURBS столь низких степеней полинома, лежащего в основе. Даже 100 точек в сплайне не способны помочь корректно повторить построенную мной кривую по уравнению 20+ степеней - кривулина гнётся во все стороны между точками, но только не туда. 300 точек и специальный "конвергентный" алгоритм расстановки точек по полученному профилю уже решают проблему - копия сплайна по ним практически идентична, анализ кривизны почти неотличим от оригинала, но...

 

Кто в каких CFD оптимизирует кривулину по 300-м точкам, да ещё с жёстким алгоритмом их расстановки??? Из того, что видел - оптимизируют какой-нибудь безье по 10-ти точкам в поисках "идеального профиля". Откуда вывод - подобные оптимизаторы "прошли мимо идеала" и не узнали о его существовании...

 

Есть ли у кого желание помочь мне разобраться с алгоритмом построения крыла и схемой его управления для будущих оптимизаций?

Link to post
Share on other sites


UnPinned posts
a_schelyaev
23 минуты назад, green_fly сказал:

Я бы еще предложил заранее посчитать обтекание какого-нибудь профиля, чтобы поисследовать на сходимость, попробовать поймать влияние качества поверхности. Может оказаться, что выбранная модель турбулентности влияет гораздо сильнее. Вот здесь интересные результаты - одна и та же оптимизационная задача, но два разных газодинамических решателя дают два разных оптимальных профиля. 

 

Тут товарищ оптимизирует за счёт повышения гладкости кривой дужки профиля. Типа выше третьей производной.

Link to post
Share on other sites
zerganalizer
Posted (edited)
15 часов назад, a_schelyaev сказал:

Поэтому все ваши закидоны по вылизывание обводов не сработают.

Я не вылизываю обводы - я могу построить то, что ваши оптимизаторы не МОГУТ В ПРИНЦИПЕ построить. Если, как в X-foil оптимизировать профиль из нурбсы со столь малым количеством опорных точек и низкой степени - она не сможет пройти через нужные точки с нужной кривизной.

 

Вчера пробовал такое в катии - кривая по опорным точкам. Когда до 13-й степени - кривулину сложно выгнуть так, чтобы повторить мои математические профили с их анализом кривизны. Нашёл статейку импортную, как с катией делали оптимизации профилей, как их строили. Приложу её сюда, оттуда картинка:

изображение.png

Даже такой B-сплайн не способен повторить мои профили - только когда попробовал такой 13+ степени - стало ближе к теме, но нужно больше точек для управления, и располагать их вверх-вниз по отрезкам на равных дистанциях по хорде - не вариант, шаг по хорде должен быть вариативный.

 

Оптимизировать такую кривулину в катии я пробовал перед попыткой разработать конфигуратор профиля по формульным кривым. Бредом оказалась задача - указать ограничения и цель. Анализ кривизны на автомате выходил пипец какой, навроде ваших "заоптимизированных" профилей. Вы правда надеетесь, что на таком кто-то лететь захочет??? Я бы на анализ кривизны (радиус кривизны) посмотрел...)))

изображение.png

14 часов назад, green_fly сказал:

Я бы еще предложил заранее посчитать обтекание какого-нибудь профиля, чтобы поисследовать на сходимость, попробовать поймать влияние качества поверхности.

Речь не идёт о КАЧЕСТВЕ поверхности профиля - а о таком наборе точек, через которые вы не проведёте ни одной кривой никаким известным моделированием гладко. Это дебри, куда оптимизаторы не совались - ядрышки не тянут такое. Есть примеры суперкритических профилей, повторить которые гладко совсем не простая задача. Собственно, я готовлюсь поисследовать профили через пакетный анализ оных в SU2. посмотрим поляры, сравним - далее будет видно)))

15 часов назад, a_schelyaev сказал:

Во флюенте поверхностная дискретизация

Пока я вижу, что в среде катии с FlowVision двусторонняя связь есть только у Simulia Abacus, который я как-то на катию ставил. В теории при таком раскладе строить и управлять циклом оптимизации с CFD можно целиком внутри понятным штатным функционалом, без внешних костылей.

 

Аналогично во ANSYS.Fluent for CATIA, вот брошюрку приложил.

 

Если это решение само генерит сетки по настройкам прямо в катии, продувает и выдаёт в неё же результат, чтобы одной строкой в штатном примитиве "Правило/реакция" сказать "считай, данные сюда" и задать цикл оптимизации - то надо думать - нужны ли мне внешние костыли с макросами. Если тамошний решатель сможет ещё и кластеры вычислительные запрягать - отличный и надёжный вариант, осталось решить - браться за освоение или нет)))

 

450117.pdf

14 часов назад, a_schelyaev сказал:

Тут товарищ оптимизирует за счёт повышения гладкости кривой дужки профиля. Типа выше третьей производной.

Пургу гоните. некоторые математические кривые трудно аппроксимировать теми кривыми, что вы оперируете.)))

ansys-fluent-for-catia.pdf

Edited by zerganalizer
Link to post
Share on other sites
a_schelyaev
29 минут назад, zerganalizer сказал:

Я не вылизываю обводы - я могу построить то, что ваши оптимизаторы не МОГУТ В ПРИНЦИПЕ построить. Если, как в X-foil оптимизировать профиль из нурбсы со столь малым количеством опорных точек и низкой степени - она не сможет пройти через нужные точки с нужной кривизной.

То, чем вы увлекаетесь, в практике плазового отдела ОКБ называлось "вылизывать теорию". Загоняли профиль опорный в инструмент типа Маткад и там с ним возились до просветления. Потом голову ломали, как это в реальности изготовить, если даже маршрут в ЧПУ не на основе исходной CAD-поверхности, а на основе триангуляции на ее основе, т.е. STL.

 

Вы точно поняли суть приведенного мною слайда с параметрами профиля? Вы уверены? 

Задача оптимизации обводов всегда ставится вокруг редуцирования параметрического ядра модели - за какое минимальное количество геометрических вы можете менять нужным образом модель с требуемым качеством обводов и с сохранением ограничений.
Если вам нужно двигать сотни точек образующей контур профиля по X и Y, т.е. удвоение количества параметров, то флаг в руки. Дальше вопрос с каким линейным шагом вы будете это делать, если у вас речь идет о производных высших порядков. Это еще кратно увеличит количество рассматриваемых вариантов.

И это только профиль, не крыло.

 

 

Link to post
Share on other sites
green_fly
29 минут назад, zerganalizer сказал:

Вы правда надеетесь, что на таком кто-то лететь захочет???

Вроде как это демонстрационная задача, показывающая возможности ПО. Никто на этом никуда не полетит.

38 минут назад, zerganalizer сказал:

Это дебри, куда оптимизаторы не совались - ядрышки не тянут такое.

Смело. Больше напоминает притчу про Неуловимого Джо.

Link to post
Share on other sites
zerganalizer
1 час назад, a_schelyaev сказал:

Если вам нужно двигать сотни точек образующей контур профиля по X и Y

Если соединять точки сплайном - то да, но в последних моих решениях формульные кривые высоких порядков (быстрее всего "туннельные профили" сходу строит кривулина 22 степени и чуть медленнее, но ближе к бОльшему числу точек - 26 степень, проходящие через 8-15 точек (только верхняя дужка) + несколько десятков коэффициентов в формуле.

 

Отсюда и говорю - существующие кривулины слишком "грубы", не дают нужных градиентов кривизны. Отклонение в носовой части в пару мм в толщине, другой градиент= профиль БЕЗ туннеля, с посредственными результатами продувки x-foil (-30% аэродинамического качества). Кривулины сильно похожи, но на метровой хорде 2мм в верхней дужке отклонений показывают падение качества на 20-30%.

1 час назад, green_fly сказал:

Вроде как это демонстрационная задача, показывающая возможности ПО. Никто на этом никуда не полетит.

Хрена себе демонстрашка. Нафига уродство в ранг правильного подхода возводить? Оптимизатор на моих профилях не скатывается в подобное - математика кривулин не даст.

Link to post
Share on other sites
a_schelyaev
1 час назад, zerganalizer сказал:

Хрена себе демонстрашка.

У вас серийный самолет на ваших профилях или крыле летает?

Link to post
Share on other sites
zerganalizer
1 час назад, a_schelyaev сказал:

серийный самолет на ваших профилях или крыле летает?

 Возможность запустить самолёт с кривой геометрией вовсе не означает его качество. МС-21 живой пример.

Link to post
Share on other sites
a_schelyaev
2 часа назад, zerganalizer сказал:

 Возможность запустить самолёт с кривой геометрией вовсе не означает его качество. МС-21 живой пример.

Наобещали значит...

Link to post
Share on other sites
zerganalizer
20 часов назад, a_schelyaev сказал:

Потом голову ломали, как это в реальности изготовить, если даже маршрут в ЧПУ не на основе исходной CAD-поверхности, а на основе триангуляции на ее основе, т.е. STL.

Мне проще - я хочу исходное задание и результат иметь в том же виде поверхностей class A, т.е. в исходнике. А оптимизация - "где-то там повертелась и показала" как правильно подстроить конфигуратор. Аналогично - по профилям.

13 часов назад, a_schelyaev сказал:

Наобещали значит...

Я вообще пока присматриваюсь к теме - стоит ли влазить? Профили свои я всё-таки проверю (есть чОткий алгоритм), а дальше - как пойдёт...

Link to post
Share on other sites
a_schelyaev
33 минуты назад, zerganalizer сказал:

А оптимизация - "где-то там повертелась и показала" как правильно подстроить конфигуратор.

Постройте по STL распределение кривизны с аппрокисирующей функцией из ЧПУ. Прослезитесь.

Link to post
Share on other sites
zerganalizer
4 минуты назад, a_schelyaev сказал:

Постройте по STL распределение кривизны

Не буду по STL, забуду про него - на входе оптимизатора будут class A и после оптимизации - они же, модифицированные. Остальные предложения - в топку истории.

Link to post
Share on other sites
a_schelyaev
14.03.2025 в 11:07, zerganalizer сказал:

Не буду по STL, забуду про него - на входе оптимизатора будут class A и после оптимизации - они же, модифицированные. Остальные предложения - в топку истории.

А на входе в расчетное приложение что будет?

Link to post
Share on other sites
zerganalizer

Для профиля - файл с точками, которые расставила моя фича в catia. SU2 так умеет. Для крыла думаю Флюинт поюзать, for CATIA.

Link to post
Share on other sites
zerganalizer

Если никто не хочет обсуждать тему правильного построения крыла и автоматизацию анализов, то лучше тему и закрыть. Пакетный анализ частично запустил - осталось прописать сбор нужной статистики и объединение её в поляры. Или родную починить - но пишут, для её нормальной работы SU2 надо откомпилить. Как получу поляры - отпишусь.

Link to post
Share on other sites
zerganalizer

Кратко отпишусь о достижениях:

 

1. Несколько обучалок SU2 я прошёл, включая турбулентный анализ потока с анимацией и усреднёнными результатами по итогам.

 

2. Освоил пакетный многопроцессорный расчёт, но пока с одной переменной - угол атаки или скорость. Оба сразу - осваиваю, для этого настроил питон и Spyder.

 

3. Начал осваивать программирование для построения аналога моего конфигуратора профиля целиком внутри питона, с возможностью зачитывать профиль катией, которая его воспроизведёт по той же формуле и полученным в питоне параметрам через design table.

 

4. Начал работать с ChapGPT (и планирую поставить специализированную ИИ) и осваивать с его помощью поиск и оптимизацию как класс будущих задач.

Дужка-1.jpg

Освоил построения управляемого гребня анализа кривизны а-ля CATIA в общем виде по профилю, осталось поставить релиз 2018, где у меня формулы профиля, чтобы воткнуть в эту питоновскую прожку. Аналогично сделать нижнюю дужку будет уже проще.

 

5. Попутно в процессе отдыха читаю форум SU2 на предмет понимания опций конфига, задающего параметры анализа профиля - готовлюсь к пакетному запуску расчётов.

 

6. Частично нашёл мешеры для профиля, правильно делающие сетку под SU2, самый понравившийся надо компилить в VS из исходников.

 

И главное - в процессе тестов я просчитал ещё раз точки на картинке, что админы удалили. Ранее я считал их на SU2_EDU - она умеет из точек профиля делать сетку, аналогичного качества, что в официальных обучалках SU2. Расчёт в полной версии SU2 близок к результатам SU2_EDU, на которые я в картинке ссылался.

 

Эти расчёты лишь подтверждают наличие "туннельного эффекта Bartini-Panguver", дажеярче, чем кажет XFLR5, иначе бы я забросил тему. Так что для запуска расчётов поляр я решил подготовиться основательно. Возможно, я продолжу работу над конфигуратором профиля в питоне + SU2, чтобы на основе рассчитанных поляр обучить нейросеть сразу рисовать профили моей математикой под физические параметры полёта. Хотя пока не знаю - насколько мощный нужен комп для такого.

 

Также я нашёл способ поизучать сетку SU2 гляделкой.

  • Нравится 1
Link to post
Share on other sites
a_schelyaev

Интересно, они поженятся в конце?

  • Нравится 1
Link to post
Share on other sites
zerganalizer
1 час назад, a_schelyaev сказал:

Интересно, они поженятся в конце?

Кто с кем?

 

А вообще решил сделать приложение, рисующее профиль с возможностью читать из файлов как формулы, так и набор точек для обрисовки существующих файлов профилей .dat моей математикой, выбранной из списка вариантов формул. Это даст возможность сразу проводить кривулины по любому dat-файлу с точками моихи формулами из списка. Такова текущая цель.

 

Потом буду пилить макрос для пакетной продувки полученного по моей математике профиля в SU2 и получение результатов в удобоваримом виде. Тогда я смогу сравнительные поляры выложить. Мешер простой родной SU2 есть, но попробую освоить внешний.

 

Последним движением по геометрии профиля будет поиск оптимизационного решения для большого цикла продувок профиля, дёргая МОИ параметры кривулин для получения геометрии под нужные физические критерии на основе продувок. Если выйдет - я буду заказывать физические искомые параметры, включая camber position, строительную высоту и режимы полёта, а оптимизатор (видимо, долго) будет искать идеальный профиль под наилучшие результаты продувки.

 

После этого файл с параметрами кривулины можно будет зачитывать в катию для реконструкции оптимизированного профиля там. Аналогично, оптимизировав все профили по размаху крыла, можно будет искать пути выгрузки крыла для CFD.

 

Попутно буду вести исследования на предмет поиска идеальных профилей под задачу и сравнения с существующими. Уже понятно - что, как и чем делать. Немного кодинга - и всё...

Link to post
Share on other sites
green_fly
8 минут назад, zerganalizer сказал:

Кто с кем?

Круз и Иден.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • Viktor2004
      Не знаю. Но это не опция и работает на всех чпу где есть такое окно
    • frei
      https://consulo.io/ Сам не юзал.  
    • gudstartup
      так его вроде как сама система генерирует даже пустой   Следующие данные могут быть выведены из ЧПУ до того, как вас попросят выключить питание. Если есть несколько путей, файл для пути 2 будет иметь расширение P-2, путь 3 будет P-3 и т. д.    
    • Guhl
      Мысли тут простые: 1я мысль: проверить предохранители 2я мысль: изучение мануалов, благо они имеются в достатке 3я мысль: изучить иностранные форумы типа cnczone, благо это ЧПУ нередкая в их краях вещь Также надо снять бэкап пока еще батарейка не села (если она там есть)   Вы уверены, что у станка питание 380В, а не 200В?
    • morfeantyri1
      Доброго дня, пытаемся восстановить работу старенького Matsuura MC1000 с управление Yasnac j300. Имеем ошибку 3100 servo alarm, Питание на сервопаках есть, кабель плоский связи между сервопаками проверили, видимых повреждений на плате ПК не видать. вопрос если это не блок связи в ПК то.  Возможна ли общая ошибка servo alarm из за проблем на какой-то конкретной оси? Правильно ли я понимаю что контактор питания осей (380 вольт) включается непосредственно перед запуском осей и не должен приводить к нарушению связи серво->ПК?  полный список ошибок таков: 3000 servo off (питание серв включается повторным нажитие кнопки питания по инструкции, сейчас этого не происходит в виду как я думаю ошибки servo alarm) 3100 servo alarm 2190 machine unready (думается следствие предыдущих двух ошибок) иногда появляется и исчезает ошибка 1093 memory error (OFS) но думаю это дело будущего. Может есть к кого какие мысли?!
    • mannul
      Можно, но не на этом старом синумерике. И по DXF нельзя задать вектора, потому что DXF плоский. А в скринах автора в каждом кадре векторы направления стоят, причем всегда вдоль оси Z. Поэтому могу с уверенностью сказать, что это выведено через пост, который эти вектора выводит всегда.
    • maxx2000
      @mannul на стойке нельзя по DXF файлу составить программу ? На стойке нельзя задать нумерацию кадров с любым шагом?
    • mannul
      Вряд ли кто-то будет сам считать векторы A3, B3, C3 и дуги в произвольной плоскости - CIP. Да и нумерация кадров с шагом 5 говорит о том что скорее всего программа выведена через пост.
    • brigval
      На линии разреза можно накладывать ограничения. Это не подойдет хотя бы в некоторых сложных случаях?
    • brigval
      Брагин Коммандер 3 v1.11     В версии 1.11  Добавлено: Добавлены настройки копирования проектов.  Добавлено: Добавлен пример организации Папки проектов.  Изменено: Исключен поиск ссылок в шаблонах КОМПАС-3D.  Изменено: При загрузке программа подключается к КОМПАС-3D не сразу, а только если это станет необходимым.  Исправлено: Программа завершала работу при долгом считывании ссылок.  Исправлено: Исправлены замеченные ошибки и неточности кода.  
×
×
  • Create New...