3.9 KiB
3.9 KiB
PRD: FEM Surrogate Tutorial
목표
FEM 기반 구조해석 데이터로 surrogate model을 구축하고 검증하는 전체 절차를 학습할 수 있는 한국어 튜토리얼을 만든다. 독자는 2D beam 요소로 해석 데이터를 직접 생성하고, 여러 surrogate 모델을 같은 데이터셋에서 학습, 평가, 비교한다.
사용자
- FEM과 선형 정적 구조해석의 기본 개념을 아는 대학원생.
- CAE 해석 결과를 기계학습 모델로 근사하고 싶은 연구자.
- surrogate 기반 설계 탐색, 민감도 분석, 최적화의 입문 파이프라인을 재현하고 싶은 엔지니어.
사용자 문제
고정밀 구조해석은 반복 설계, 불확실성 분석, 최적화에서 계산 비용이 커진다. Surrogate model은 해석 데이터에서 입력 변수와 응답의 관계를 학습하여 빠른 근사 예측을 제공하지만, 모델별 가정, 데이터 설계, 검증 방법, 외삽 위험을 함께 이해해야 실무적으로 사용할 수 있다.
학습 성과
튜토리얼을 완료한 독자는 다음을 할 수 있어야 한다.
- 2D Euler-Bernoulli beam/frame 요소를 이용해 선형 정적 FEM 해석 데이터를 생성한다.
- DOE와 Latin Hypercube Sampling으로 입력 공간을 정의하고 해석 케이스를 만든다.
- Response Surface, Gaussian Process/Kriging, Random Forest, Gradient Boosting, MLP를 같은 데이터셋에 적용한다.
- RMSE, MAE, R2, residual, parity plot, uncertainty 또는 feature importance로 모델을 진단한다.
- 최종 비교표를 통해 구조해석 surrogate 문제에 맞는 모델을 선택하는 기준을 설명한다.
핵심 산출물
docs/theory/: surrogate 모델별 이론 문서와 출처.notebooks/: 데이터 생성, 모델별 학습, 최종 비교 notebook.src/femsurrogate/: notebook에서 재사용하는 FEM, 데이터, 모델, plotting helper.tests/: FEM 공식 검증, dataset schema, surrogate pipeline smoke test.BeamExamples/: 2D beam solver 검증용 cantilever 예제와 기준 변위 파일.data/reference/: 재현 가능한 기준 해석 데이터.reports/: 모델별 metric, 예측값, 그림.
MVP 범위
- 선형 정적 2D Euler-Bernoulli beam/frame 요소.
- 기준 구조: fixed-free cantilever beam 또는 간단한 planar frame.
- Solver 검증 기준 fixture:
BeamExamples/CantileverBeam.txt와BeamExamples/CantileverBeam_Displacements.txt. - 입력 변수:
L,b,h,E,P. - 응답 변수:
tip_uy_m,max_abs_bending_stress_pa,mass_kg,compliance_j. - Surrogate 모델:
- Response Surface Methodology: polynomial features + Ridge regression.
- Gaussian Process Regression/Kriging.
- Random Forest Regressor.
- Gradient Boosting Regressor.
- Multi-layer Perceptron Regressor.
MVP 제외 사항
- 상용 CAE 연동.
- 3D beam, shell, solid element.
- Timoshenko beam, geometric nonlinearity, material nonlinearity, contact, buckling, modal, transient analysis.
- PyTorch/TensorFlow 기반 deep learning framework.
- Bayesian optimization, active learning, MLflow, DVC, browser dashboard.
- 배포용 Python package publishing.
성공 기준
- 이론 문서가 모델별로 분리되어 있고 각 문서에 출처가 있다.
- FEM solver가
BeamExamples/CantileverBeam.txt를 해석했을 때BeamExamples/CantileverBeam_Displacements.txt의 모든 노드Ux,Uy,Rz기준값과 허용오차 내에서 일치한다. 00_beam2d_fea_dataset.ipynb가 데이터셋을 생성하고, 생성 데이터가 동일 seed에서 재현된다.- 모든 모델별 notebook이 같은 dataset과 split을 사용한다.
- 최종 비교 notebook이 모든 모델의 metric JSON을 읽어 하나의 비교표와 그림을 만든다.
- FEM solver는 cantilever beam 해석해와 BeamExamples regression fixture를 모두 비교하는 pytest를 통과한다.
- 전체 notebook은
nbconvert --execute로 순서대로 실행 가능하다.