TOPress 설계 의존 압력 하 구조 토폴로지 최적화 MATLAB 구현
초록
본 논문은 설계에 따라 변하는 유체 압력 하중을 고려한 토폴로지 최적화를 위한 100줄 MATLAB 코드인 TOPress를 소개한다. Darcy 법칙과 배수항을 이용해 압력장을 계산하고, 일관된 노드 하중을 도출한다. 이동 비대칭법(MMA)과 인접 변수법을 통해 하중 민감도를 효율적으로 구해 부피 제약 하의 최소 강성(컴플라이언스) 문제를 해결한다. 코드 구조와 확장 방법을 상세히 설명하고, 0‑1 설계에 가까운 결과를 얻기 위한 투영 필터 적용 절차도 제공한다.
상세 분석
TOPress는 설계 의존형 압력 하중을 다루는 토폴로지 최적화 분야에서 교육용 도구로서 큰 의미를 가진다. 기존 TO 연구에서는 주로 외부 집중 하중이나 중력 하중을 가정했으나, 유체 압력은 구조 형태에 따라 방향·크기·작용 위치가 변한다는 특수성을 갖는다. 이를 해결하기 위해 저자는 Darcy 법칙을 기반으로 압력장을 정의하고, 배수(term) 를 추가해 압력 유동을 제한한다. 압력 해석은 선형 정적 해석과 동일한 형태의 전역 강성 행렬을 사용하되, 유체 저항을 나타내는 추가 항을 포함한다는 점이 핵심이다. 이렇게 얻어진 압력 필드에서 각 요소의 평균 압력을 계산하고, 이를 구조 자유도에 매핑해 일관된 노드 하중 벡터를 만든다.
하중 민감도는 인접 변수법(adjoint method)으로 효율적으로 구한다. 압력장 자체가 설계 변수(밀도)와 연관되므로, 압력에 대한 민감도와 구조 강성에 대한 민감도를 동시에 고려해야 한다. 저자는 압력 방정식의 라그랑지안에 대한 변분을 수행해, 압력에 대한 직접 민감도와 구조 해에 대한 간접 민감도를 분리한다. 이 과정에서 이동 비대칭법(MMA)과 결합하면, 복잡한 비선형 최적화 문제를 안정적으로 해결할 수 있다.
코드 구조는 크게 여섯 부분으로 나뉜다. (1) 초기화 및 파라미터 설정, (2) 밀도 → 물성 변환(보간 함수), (3) 전역 강성 행렬 및 압력 행렬 조립, (4) 압력 해석 및 노드 하중 계산, (5) 목표 함수와 제약식 평가, (6) MMA 업데이트. 각 단계는 MATLAB의 행렬 연산을 활용해 간결하게 구현되었으며, 전체 코드가 100줄 이하라는 점은 교육용으로 매우 접근성이 높다.
또한 저자는 0‑1 설계에 근접하도록 투영 필터를 도입하는 방법을 제시한다. 필터링은 설계 변수의 연속성을 보장하면서도 최소 구조 크기를 제어한다. 투영 단계에서는 필터링된 변수에 비선형 투영 함수를 적용해, 최적화가 진행될수록 설계가 이산화(0 또는 1)되는 경향을 강화한다. 이는 실제 제조 가능성을 높이는 데 필수적인 절차이다.
벤치마크 사례에서는 압력 하중이 적용된 박스, L형 구조, 그리고 다공성 매체를 포함한 복합 구조를 최적화한다. 결과는 압력 하중이 구조 형태에 따라 재분배되는 모습을 명확히 보여주며, 하중 민감도를 무시했을 경우 발생하는 설계 오류도 실험적으로 입증한다. 전체적으로 TOPress는 설계 의존형 유체 압력 하중을 다루는 토폴로지 최적화의 핵심 이론을 구현 코드와 함께 제공함으로써, 연구자와 교육자가 빠르게 실험을 재현하고 확장할 수 있는 기반을 마련한다.
댓글 및 토론
Loading comments...
댓글 남기기