Як я можу автоматизувати процес оптимізації дизайну фізичного об’єкта?


9

Я намагаюся оптимізувати розподільник потоку в резервуарі таким чином, щоб швидкість і розподіл температури в будь-якому поперечному перерізі були відносно рівномірними. Є багато параметрів, які я можу налаштувати до максимальної рівномірності поперечного перерізу, наприклад, кількість вхідних труб, їх положення, орієнтація та напрямок. Я знаю, що можу створити декілька різних геометрій і перевірити кожну окремо, але це забирає багато часу. Я хотів би мати можливість написати програму, яка може ітеративно перевіряти декілька випадків одночасно (паралельно) та адаптивно вибирати новий набір геометрій для тестування, виходячи з попередніх результатів. Як мені найкраще це зробити?


1
Частина пошуку параметрів, для мене, є легкою частиною. Нетривіальна частина параметризує геометрію.
Джефф Оксберрі

Відповіді:


4

Що ви хочете зробити, це оптимізація форми за допомогою градієнтних методів. Це по суті означає, що вам потрібно обчислити градієнт цільової функції wrt до параметрів моделі.

Для невеликої кількості параметрів ви можете використовувати FD, але для великої кількості параметрів потрібно вивчити суміжні методи. Якщо ви використовуєте комерційний код чи чужий код, який не може вирішити суміжні рівняння, тоді FD - ваш єдиний варіант.

Розгляньте основні книги з оптимізації основних форм.

Редагувати: Для структурних проблем ПЕ ви можете ознайомитися з книгою Чоя та Кіма I та II


Деякі параметри є лише цілими ... Чи все ж може застосовуватися підхід на основі градієнта?
Пол

Чи рекомендуєте ви якісь хороші підручники / книги з оптимізації форми?
Пол

Щось коротке / просте ви можете прочитати так: acdl.mit.edu/mdo/mdo_06/EulerAdjoint.pdf . Як я вже сказав з FD, його тривіально, оскільки вам потрібно просто обчислити градієнт (тобто запустіть свій CFD-код багато разів, залежно від кількості параметрів), а потім скористайтеся градієнтом для оптимізації. Зазвичай потрібно кілька ітерацій, перш ніж оцінки параметрів сходяться. Для великих параметрів це стає дорогим, і вам доведеться вдатися до суміжних методів обчислення градієнта.
stali

Дякую, stali. Це було дуже вдалим вступом до суміжних методів.
Пол

5

Якщо правильно параметризувати деталь конструкції з геометрії, це проблема оптимізації чорного поля зі змішаними дискретними та безперервними параметрами.

DAKOTA http://dakota.sandia.gov/ та NOMAD http://www.gerad.ca/NOMAD/Project/Home.html - це два корисні пакети, які дозволяють автоматично вибирати найкращий вибір параметрів. (DAKOTA має кращу підтримку додатків, але, напевно, NOMAD має кращі оптимізатори.)

Щоб змінити геометрію, введіть дискретний або безперервний параметр для кожного елемента керування, за допомогою якого потрібно впливати на геометрію, та автоматизуйте побудову геометрії з колекції елементів керування. Зауважте, що методи, що не містять похідних, досить повільні у великих розмірах, тому зберігайте кількість параметрів досить малим.

Закінчивши вивчення простору одним з вищевказаних пакетів, ви можете уточнити аналіз, зробивши більш точну оптимізацію, в якій фіксуються всі дискретні параметри та всі постійні параметри, для яких ви не можете отримати аналітичну похідну. Але ви можете збільшити кількість параметрів безперервної форми, щодо яких можна обчислити аналітичні похідні, оскільки оптимізатор на основі градієнта (наприклад, IPOPT https://projects.coin-or.org/Ipopt ) може ефективно вирішувати набагато більші проблеми .

Якщо ви не знаєте, як отримати похідну, але залежність є рівною, ви можете розглянути можливість використання автоматичної програми диференціації або кодування вашої постійної проблеми в AMPL, і в цьому випадку інтерфейс solver піклується про похідні.

Основи оптимізації форми див., Наприклад, Haftka, RT та Grandhi, RV, оптимізація структурних форм - опитування, Комп'ютерні методи в прикладній механіці та техніці 57 (1986), 91-106. (Довіряйте опису моделювання; але не використовуйте розв’язувачі, які вони рекомендують, оскільки технологія оптимізації значно покращилася з того часу.)


Які підходи я можу застосувати для параметризації геометрії?
Пол

Дивіться додаток до моєї відповіді.
Арнольд Ноймаєр

@Paul: Я просто виправив нерозумну помилку в своєму написанні - параметри геометрії, звичайно, можуть бути дискретними або безперервними!
Арнольд Ноймаєр

3

Що стосується параметризації геометрії (як Джефф зазначив, що немає тривіального) - я щиро рекомендую Бренда Кульфан - Універсальний метод параметричного представлення геометрії, J. Aircraft, Vol.45, No.12008 .

Описаний підхід застосовується при аеродинамічній оптимізації літальних апаратів.


3

Існує також суміжна оптимізація простору, яка здається набагато швидшою, ніж стандартна параметрична оптимізація в CFD. Останнім часом він набув значного зростання популярності у спільноті CFD в цілому, особливо в OpenFOAM. Зараз ми організовуємо семінар по OpenFOAM, і ми отримали багато абстрактних матеріалів щодо цього методу. Якщо вас цікавить, перегляньте це , щоб отримати іншу інформацію, просто google "оптимізація суміжних форм простору в CFD".

Додаткова інформація:

Якщо ви можете використовувати OpenFOAM, існує бібліотека на базі Python, яка використовується саме для таких дій, щоб маніпулювати великою кількістю випадків і змінювати їх параметри під назвою PyFoam . Для простої геометрії ви можете визначити сітку як простий блокMesh і повторити все, що завгодно. Для простого випадку це питання написання декількох циклів у Python. Ось як виглядає сценарій, якщо ви зміните швидкість граничної умови "на вході". Прості зміни геометрії сітки - це ще кілька рядків коду ...


2

Вам знадобиться:

  1. оптимізатор і
  2. інструмент CFD, який досить здатний (гнучкий) для вирішення різних проектів конкретної концепції або навіть належності до різних концепцій.

Наступні функції мають вирішальне значення для інструменту CFD:

  • Висока обчислювальна ефективність (швидкість) для обробки великої кількості окремих конструкцій у розумні часові рамки.
  • Висока гнучкість та привітність чисельних методик з метою виключення ручного втручання в процес пошуку / аналізу.
  • Програмна маніпуляція геометрією.

Тому я можу порекомендувати наступне програмне забезпечення:

  1. Інсайт Інструментарій, який забезпечує велику кількість оптимізаторів, які можна поєднати
  2. Бібліотека розширеного моделювання, що пропонує

    • Висока продуктивність:

      • Бібліотека прискорена апаратним забезпеченням, тобто здатна використовувати апаратне забезпечення GPU або FPGA (за наявності), що означає програму на 10-100 прискорення порівняно з процесором. Також у звичайному процесорі він використовує розширені функції, такі як SIMD.
      • Він заснований на динамічному підході до компіляції, що означає, що не потрібно жертвувати продуктивністю для гнучкості. Це призводить до прискорення в 10 разів порівняно зі стандартною технікою компіляції.
      • ASL може використовуватися в кластерній інфраструктурі та на комп'ютерах з багатьма GPU.
    • Висока гнучкість та доброзичливість:

      • У сітчасті безкоштовно чисельні методи засновані на прямокутній сітці і занурених граничних підходів. Ці функції дозволяють автоматизувати оптимізацію дизайну, оскільки не потрібно створювати сітку.
      • Бібліотека заснована на динамічному підході до компіляції, що означає, що не потрібно жертвувати продуктивністю для гнучкості. Це дозволяє сформулювати єдиний загальний та ефективний алгоритм для різних конструкцій / концепцій.
    • Генерація та маніпулювання геометричними примітивами .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.