Aerodynamic Design and Optimization via a Specialized Agentic Generative AI Framework

zoo_gathers·2025년 11월 6일

논문 정리

목록 보기
12/13

해당 논문은 다음과 같은 출처를 갖습니다.

논문 출처:
https://deepblue.lib.umich.edu/items/02757539-02a2-4afa-9de9-4cd6d600eaf3

제목:
Aerodynamic Design and Optimization via a Specialized Agentic Generative AI Framework


초록

항공 우주 분야에서 동적 디지털 트윈의 실제 구현은 신속한 다분야 설계 분석 및 최적화(Multidisciplinary Design Analysis and Optimization, MDAO)를 필요로 하지만, 현재 이 프로세스는 느린 수동 워크플로우에 의해 제한된다.

본 논문에서는 높은 수준의 자연어 명령으로부터 복잡한 MDAO 워크플로우의 합성을 자동화하는 에이전트 기반 생성형 인공지능 프레임워크를 소개하고자 한다.

해당 프레임워크는 OpenAeroStruct 도구를 사용하여 공기역학적 최적화 스크립트를 자율적으로 생성, 실행 및 분석하는 다중 에이전트 아키텍처를 사용한다.


MDAO: 다분야 설계 분석 및 최적화

비행기를 설계한다고 가정했을 때 설계를 위해서는 다음과 같은 여러 분야를 고려해서 복잡한 연결을 한꺼번에 고려해야 하는데, 이때 이러한 복잡한 연결을 한꺼번에 고려해서 최적의 설계를 찾는 과정이 바로 MDAO이다.

OpenAerosStruct: 경량 오픈소스 공력, 구조 연성 최적화 도구

MDAO는 큰 개념이고, OpenAeroStruct는 그중에서도 "날개 설계 최적화"에 특화된 실습용 도구이다.

쉽게 말하면 "날개 모양을 바꾸면서 공기 흐름(공력)과 구조 강도를 동시에 계산하고, 최적의 모양을 자동으로 찾아주는 오픈소스 프로그램이다.

작동 방식:

  • 날개 모양(길이, 두께, 꼬임각 등)을 입력하면,
  • 공력 모델(VLM)이 양력과 항력을 계산하고,
  • 구조 모델이 강도와 변형 정도를 계산한다.
  • 두 결과를 합쳐서 "항력은 줄이되 강도는 유지하라"와 같은 최적화 문제를 푼다.

1. 요약 정리

  • 목표:
    자연어로 원하는 설계 요구를 주면 LLM 기반 여러 에이전트가 협업하여 항공기 날개 또는 유사 MDAO 문제의 해석, 코드 생성, 실행, 분석, 리포트까지 자동으로 끝내는 프레임워크를 만든다.

  • 문제 의식:
    기존 MDAO 작업은 매우 복잡하고 사람 손이 많이 가며 느렸다 --> 디지털 트윈(실제 자산과 실시간 양방향으로 연계되는 가상모델)에 필요한 신속한 업데이트가 불가능했다.

  • 기여:
    OpenAeroStruct(오픈소스 항공-구조 해석, 최적화 툴)를 사례로, multi-agent(다중 에이전트) 설계로 단계를 나눠 처리함으로써 신뢰성 높은 실행 가능한 코드와 진단/보고서 생성까지 자동화했다.
    또한 단일 LLM 한 번의 출력이 가진 불안정성을 극복했다고 한다.


2. 해결하고자 하는 내용

디지털 트윈을 실무에서 활용하려면 가상 모델을 자주 빠르게 바꿔야 하는데, 현재 MDAO는 사람의 전문지식과 수작업이 많이 필요해 속도와 확장성이 부족했다.

LLM을 단독으로 쓰면 코드 문법 오류, 변수 연결 오류, 컨텍스트(문맥) 부족 등으로 실행 불가 코드가 나오기 쉽다.

따라서

  • 자연어 요구 -> 실행 가능한 MDAO 파이썬 스크립트 자동 생성
  • 실패한 실행에 대한 자동 진단(어디가 문제인지) 제공
  • 결과를 사람이 이해하기 쉬운 보고서(PDF)로 자동 생성

결과적으로 디지털 트윈 업데이트의 속도, 신뢰성, 자동화 수준을 개선하려는 것이 목표이다.


3. 논문에서 제안한 프레임워크 - 전체 흐름

1. 사용자 입력(자연어 요구)

  • 예: "span = 20m, 면접 = 40m^2, CL = 0.5에서 항력 최소화" 같은 문장
  • 마치 목수에게 '이 책상은 크기 이거, 높이 이거, 튼튼해야 해'라고 말하는 단계

2. Task Reformulation Agent (작업 재구성 에이전트)

  • 자연어를 구조화된 데이터(schema화된 Python 객체)로 변환, 누락된 조건(예: 목적 함수 미지정)이 있으면 알려줌

  • 필요 이유
    : 사람의 자연어를 컴퓨터가 확실하게 이해할 수 있도록 규격화하는 과정

3. 세 가지 Scripting Agents(코드 생성 에이전트들) - 분업

  • Mesh Agent
    : 메쉬(수치해석을 위한 격자) 생성 코드 작성, (예: span과 면적이 주어지면 근처치 계산)
  • Geometry Agent
    : 날개 형상(기본 기하)과 최적화 대상으로 삼을 변수(예: 테이퍼비, sweep 등) 설정
  • Optimization Agent
    : 목적함수(예: 항력 최소화), 제약조건, 최적화 알고리즘(SLSQP 기본 설정 등) 코드를 작성
  • 아날로지
    : 엔지니어가 도면 담당, 재료 담당, 조립 담당으로 나뉘어 각자 코드를 만드는 것

4. 통합 스크립트 실행(오토메이션)

  • 생성된 파이썬 스크립트를 실제로 실행해 OpenAeroStruct를 통해 해석, 최적화 수행
  • 실행 결과(수치, 그래프)를 HTML/PDF 리포트로 출력

5. Initial Analysis Agent(초기 분석 에이전트)

  • 역할
    : 생성된 보고서(PDF)를 읽어 최적화 성공 여부 판단, 디자인 변수들의 상한/하한 도달 여부, 수렴성 등을 판단하고 원인 분석, 권장 조치 제시.

  • RAG로 물리적 의미를 보강해서 진단의 신뢰도를 높임.

6. Report Writing Agent

  • 역할
    : 초기 분석 결과와 시각자료(예: 최적화된 날계 PDF 그림)를 모아 LaTeX 보고서로 정리. 사람이 읽기 좋게 문장과 그림 포함 보고서 생성.

7. RAG

  • 필요시, Information Retrieval Agent가 도메인 문서들을 검색하여(벡터 DB) 에이전트들의 분석 컨텍스트에 물리적 상식을 추가

4. 기술적 핵심 요소

  • Mesh Agent

수치 데이터(좌표점 배열)로 비행기 날개를 3D로 해석하려면 “이 부분에서 공기가 얼마나 흐르고, 힘이 얼마나 걸리는지”를 계산이 필요하다. 그 계산은 연속적인 면 대신, “조각조각 쪼개진 격자점(mesh grid)” 위에서 이루어지며, 즉, “메쉬”는 그림이 아니라 좌표(x,y,z)의 집합이다.

OpenAeroStruct의 Mesh 예시

OAS에서 자주 쓰는 메쉬 예시는 이런 형태이다.

mesh_dict = {
    "num_y": 5,   # 날개 span 방향으로 몇 등분할지
    "num_x": 2,   # chord 방향(앞~뒤)으로 몇 등분할지
    "wing_type": "rect"
}
mesh = generate_mesh(mesh_dict)

이 generate_mesh() 함수가 만들어내는 건
겉으로 보면 “날개 모양 격자 이미지”처럼 보이지만, 실제로는 아래와 같은 수치 데이터이다

mesh.shape  # (5, 2, 3)
mesh[0][0]  # [x, y, z] 좌표 값
  • Geometry Agent

OAS는 현재 날개(Wing) 중심의 MDAO 툴로 즉, 지오메트리라고 해도 엔진·동체 전체가 아니라 날개 구성요소의 기하 정보만 다룬다.

지오메트리는 “형상 정의 단계”로서, 날개의 크기·비율·각도·트위스트(비틀림) 같은 물리적 설계 변수를 지정하는 부분이다.

geometry_options = {
    "span": 10.0,         # 날개 폭
    "chord": 1.0,         # 날개 길이
    "sweep": 5.0,         # 뒤로 젖힌 각도
    "taper": 0.8,         # 끝날개가 뿌리날개 대비 얼마나 얇은지
    "twist_cp": [0.0, 2.0]  # 날개가 비틀린 정도
}

이렇게 입력하면 OAS가 mesh 데이터 위에 이 값들을 적용해서
“이런 형상의 날개”를 해석할 수 있는 상태로 세팅한다.

Geometry Agent는 “항공기 전체”가 아니라 “지금 해석 대상이 되는 형상(예: 날개)”의 매개변수를 생성하도록 한다.

  • Optimization Agent

주어진 목적(예: 항력 최소화, 양력 최대화)을 만족하는 설계변수를 반복 조정 과정

진행 과정 정리

간단 요약

자연어 설명
->
LLM이 이를 규격화
->
3개의 에이전트가 메쉬, 형상 설계, 최적화 코드를 각자 작성 및 OpenAeroStruct가 읽을 수 있는 실행 가능한 코드를 생성
->
OAS가 날개 해석/최적화 계산을 수행하고, 수치적 결과 데이터를 생성
->
수치 데이터를 받아서 Initial Analysis가 결과의 의미(성공, 실패 원인)를 분석,
RAG를 통해 관련 문서를 검색해 판단의 근거와 보완 설명을 붙임

->
해당 결과 및 근거를 기반으로 리포트 작성
->
작성된 리포트는 다시 데이터로 활용될 수 있도록 저장
->
결과를 사용자에게 전달

profile
전공: 소프트웨어, 관심 분야: LLM, NLP, 지식 그래프

1개의 댓글

LLM은 송주훈!!

답글 달기