설명서:FEM 해석하기
- Introduction
- Discovering FreeCAD
- Working with FreeCAD
- Python scripting
- The community
유한 요소법(Finite Element Method, FEM)은 공학, 물리학, 응용 수학 분야에서 복잡한 문제를 해결하는 데 사용되는 강력한 계산 기법입니다. 이 방법은 크고 복잡한 물체나 구조를 유한 요소(finite element)라 불리는 더 작고 단순한 부분들로 나누는 방식으로 작동합니다. 각 요소는 개별적으로 분석되며, 이후 이들의 거동을 종합하여 힘, 열, 진동과 같은 외부 영향에 대해 전체 구조가 어떻게 반응하는지를 예측합니다.
FEM은 구조 공학, 기계 설계, 공기역학, 전자기학과 같은 분야에서 널리 사용되며, 하중을 받을 때 물체가 어떻게 변형되는지, 재료 내부에서 열이 어떻게 전달되는지, 그리고 전자기장이 서로 다른 물체와 어떻게 상호작용하는지를 시뮬레이션하는 데 활용됩니다. 이러한 상호작용에 대한 상세한 분석을 제공함으로써, FEM은 실제 물리적 시제품을 제작하지 않고도 제품의 성능, 안전성, 효율성을 최적화할 수 있도록 엔지니어와 디자이너를 지원합니다.
FreeCAD에서 이러한 시뮬레이션을 수행하는 것은 FEM 작업대(workbench)를 통해 이루어지며, 이 작업대는 유한 요소 해석(Finite Element Analysis, FEA)을 수행하기 위해 특별히 설계되었습니다. FEM 작업대는 모델 준비, 재료 속성 할당, 메시(mesh) 생성, 시뮬레이션 실행에 이르기까지의 전 과정을 지원하는 포괄적인 도구 모음을 제공합니다. 또한 FEM 작업대는 구조 해석, 열 해석, 동적 해석 등 다양한 유형의 시뮬레이션을 지원하며, CalculiX와 같은 해석기(solver)를 비롯해 여러 해석 도구를 사용할 수 있는 높은 범용성을 갖추고 있습니다.
이 작업대(workbench)는 다른 FreeCAD 작업대(workbench)들과의 통합 사용을 가능하게 하여, 모델 준비부터 해석까지의 과정을 매끄럽게 연결해 줍니다. 또한 응력, 변형, 온도 분포와 같은 시뮬레이션 결과를 시각화하고 해석할 수 있는 강력한 후처리(post-processing) 도구도 제공합니다. 전체 작업 흐름은 다음과 같은 단계로 구성됩니다:
- 형상 준비(Preparing the Geometry): FEM 해석을 수행하려면 모델을 단순화하거나 최적화해야 합니다. 여기에는 시뮬레이션 결과에는 영향을 주지 않지만 계산 비용만 증가시키는 불필요한 세부 요소나 형상을 제거하는 작업이 포함되는 경우가 많습니다. 이러한 3D 형상 준비 작업에는
PartDesign 작업대(workbench)나
Part 작업대(workbench)와 같은 다른 작업대의 도구들을 활용할 수 있습니다. 형상을 FEM 작업대에서 올바르게 사용할 수 있도록 준비하는 방법에 대해서는 FEM 형상 준비 및 메시(FEM Geometry Preparation and Meshing) 페이지에 자세히 설명되어 있습니다.
- 재료 속성 할당(Assigning Material Properties): 정확한 시뮬레이션을 위해서는 재료 정의가 매우 중요합니다. 구조 해석의 경우 영률(Young’s modulus), 포아송 비(Poisson’s ratio), 밀도(density)와 같은 속성이 필요하며, 열 해석에서는 열전도율(thermal conductivity)과 비열(specific heat capacity)과 같은 속성이 사용됩니다. 재료는 FreeCAD에 포함된 재료 라이브러리에서 선택할 수도 있고, 필요에 따라 사용자 정의 재료로 직접 설정할 수도 있습니다.
- 메시 생성(Meshing): 메시 생성은 형상을 유한 요소로 분할하여, 해석기가 객체를 분석할 수 있도록 하는 과정입니다. 메시의 품질은 매우 중요하며, 더 세밀한 메시는 보다 정확한 시뮬레이션 결과를 제공하지만 그만큼 계산 자원을 더 많이 필요로 합니다. 응력이나 변형이 크게 발생할 것으로 예상되는 영역에 집중하여 메시를 국부적으로 세분화할 수 있는 도구들도 제공됩니다. 자세한 내용은 메시 기본(Meshing basics) 문서를 참고하세요.
- 하중 및 구속조건 적용(Applying Loads and Constraints): 이 단계에서는 힘, 압력, 모멘트, 또는 열 하중과 같은 물리적 조건을 모델에 적용합니다. 또한 시뮬레이션하려는 상황에 따라 특정 지점을 고정하거나, 대칭 조건을 적용하거나, 움직임을 제한하는 등의 경계 조건(boundary conditions)도 함께 정의합니다.
- 해석기 실행(Running the Solver): 설정이 모두 완료되면, 해석기가 적용된 조건에 대해 모델이 어떻게 반응하는지를 계산합니다. CalculiX와 같은 해석기는 수행되는 해석 유형에 따라 변위, 응력 등 다양한 물리량을 계산합니다. 이 과정에 소요되는 시간은 메시의 밀도와 모델의 복잡도에 따라 달라질 수 있습니다.
- 후처리(Post-Processing): 시뮬레이션이 완료되면 FEM 작업대(workbench)에 포함된 도구를 사용하여 결과를 시각화합니다. 응력, 변형률, 변위 분포는 색상 맵으로 표현되며, 변형 형상(deformation) 플롯도 생성할 수 있습니다. 이러한 시각화 결과를 통해 모델의 성능을 면밀히 분석할 수 있고, 응력이나 변형이 크게 발생하는 영역을 쉽게 파악할 수 있습니다.
FreeCAD 준비하기
이 섹션에서는 간단한 예제를 통해 일반적인 FEM 해석 절차를 보여줄 것입니다. FEM이라는 주제는 매우 방대하지만, 여기서는 캔틸레버 보(cantilever beam)라는 단순한 형상에 초점을 맞추겠습니다. 우리의 목표는 하중이 가해졌을 때 이 보의 최대 수직 변위를 구하고, 그 수치 해석 결과를 해석해(이론) 해와 비교하는 것입니다. 계산 역학(computational mechanics)에서는 시뮬레이션의 정확성과 신뢰성을 보장하기 위해, 수치 해석 결과를 실험 데이터나 해석적 해와 비교·검증하는 과정이 필수적입니다. 또한 이번 해석에서는 FreeCAD 설치 시 기본으로 포함된 패키지들만 사용할 예정이므로, 추가적인 설치 작업은 필요하지 않습니다.
형상 준비하기
먼저 간단한 형상을 생성하겠습니다. 이를 위해 PartDesign 작업대(workbench)를 사용할 것입니다.
- 새 문서를 생성한 후
PartDesign 작업대(workbench)로 이동합니다.
새 스케치(New Sketch)를 눌러 YZ 평면에 새 스케치를 생성합니다.
- 원점(origin)을 중심으로
중심 사각형(centered rectangle)을 그립니다. 이때
스케처 치수(Sketcher Dimension) 도구를 사용하여 수직 치수는 20 mm, 수평 치수는 10 mm로 설정합니다.
- 원점(origin)을 중심으로
- 스케치 모드를 종료합니다.
- 방금 생성한 스케치를 선택한 상태에서
돌출(Pad) 작업을 적용하고, 길이를 1000 mm로 설정합니다.
- 이제 형상 준비가 완료되었습니다. 이 예제에서는 보의 높이(h)와 너비(b)를 길이(L)에 비해 매우 작게 설정했는데, 이는 하중이 가해졌을 때 굽힘 거동에 집중하기 위함입니다. 이렇게 설정하면 보가 전형적인 길고 가는 구조물처럼 거동하게 되어, 굽힘이 주요 효과로 나타납니다. 또한 이러한 구성은 손으로 계산할 수 있는 간단한 해석식과 결과를 비교하는 데에도 유리합니다.
해석하기
- 이제 FEM 해석을 시작할 준비가 되었습니다.
FEM 작업대(workbench)로 전환합니다.
새 해석(New Analysis)을 누릅니다.
- 새 해석이 생성되고 설정 패널이 열립니다. 해석 생성(Create Analysis) 버튼은 유한요소해석을 실행하기 위한 기본 골격을 설정합니다. 이 버튼은 메쉬, 재료 속성, 구속 조건(예: 고정점), 적용 하중, 해석기(solver)와 같은 핵심 요소들을 체계적으로 정리하는 해석 컨테이너를 생성합니다. 즉, 이후 메쉬 생성과 해석기 실행 등 다음 단계를 진행하여, 정의된 조건 하에서 객체가 어떻게 거동하는지를 분석할 수 있도록 시뮬레이션에 필요한 모든 준비를 해줍니다.
- 먼저 메쉬(Mesh)를 생성하겠습니다. 이를 위해 본체를 선택한 상태에서
Netgen을 이용한 형상 기반 FEM 메쉬 버튼을 누릅니다. 이 옵션은 오픈소스 메쉬 생성 도구인 Netgen을 사용하며, 유한요소해석에서 복잡한 형상에 특히 적합한 고품질 사면체(tetrahedral) 메쉬를 생성하는 데 사용됩니다.
- 메셔 파라미터 창에서는 설정을 단순하게 유지하고 최대 셀 크기(Max Size)만 변경합니다. Max Size 옵션은 개별 메쉬 요소가 가질 수 있는 최대 크기를 정의하며, 메쉬의 조밀함(거칠기 또는 세밀함)을 제어합니다. 값이 클수록 요소 수가 적은 거친 메쉬가 생성되어 계산 속도는 빨라지지만 정확도는 떨어질 수 있습니다. 반대로 값이 작을수록 요소 수가 많은 세밀한 메쉬가 생성되어 정확도는 높아지지만 더 많은 계산 자원이 필요합니다. 이 값을 10으로 설정한 뒤 적용(Apply)을 누르세요.
- 메쉬가 준비되었습니다.
- 이제
새 재료(New Material) 옵션을 눌러 메쉬에 적용할 재료(Material)를 정의할 수 있습니다. 재료 선택은 모든 해석에서 매우 중요합니다. 서로 다른 물성을 가진 재료는 동일한 조건에서도 서로 다르게 거동하기 때문입니다. 강도, 탄성, 밀도와 같은 요소들은 재료가 힘, 압력, 온도 등에 어떻게 반응하는지를 결정하는 핵심적인 역할을 합니다. 적절한 재료를 선택해야만 실제 환경에서 객체가 보일 거동을 정확히 반영한 시뮬레이션 결과를 얻을 수 있습니다.
- 재료를 선택할 수 있는 작업 패널이 열립니다. 재료(Material) 드롭다운 목록에서 Steel-1C22 재료를 선택한 후 확인(OK)을 누르세요.
- 마지막 단계는 하중과 구속 조건을 적용하여 실제 물리적 조건을 FEM 해석에 반영하는 것입니다. 이 간단한 예제에서는 한쪽이 벽에 고정된(벽에 부착된 것을 나타냄) 보(beam)가 있고, 다른 한쪽은 자유롭게 움직일 수 있습니다. 보의 전체 길이에 걸쳐 분포 하중이 적용되어, 실제 환경에서 받는 하중을 모사합니다. 먼저 벽에 고정되어 움직일 수 없는 면을 지정하겠습니다.
고정 구속(Constraint fixed) 버튼을 누르세요.
- 추가(add) 버튼을 누른 뒤 보의 왼쪽 면(원점에 위치한 면)을 선택하고 적용(Apply)을 클릭합니다. 이제 이 면은 움직일 수 없는 것으로 지정됩니다.
- 이제 보의 상단 면에 분포 하중을 추가하겠습니다. 이는 예를 들어 보 위에 큰 무게가 올려진 상황을 나타낼 수 있습니다. 이를 위해
힘 하중(Force load) 옵션을 사용합니다.
- 보의 상단 면을 클릭한 뒤, 힘의 크기를 1000 N으로 설정하고 방향 반전(Reverse direction) 옵션을 선택합니다. 그런 다음 확인(OK)을 누르세요. 이제 하중이 적용되었습니다.
- 이제 계산을 시작할 준비가 되었습니다.
Calculix 해석기(solver)를 선택합니다.
- 정적(Static) 해석을 선택한 후 Write .inp file을 눌러 CalculiX용 입력 파일을 생성합니다. 그다음 CalculiX 실행(Run CalculiX)을 누르세요. 이제 시뮬레이션이 실행됩니다.
- 이제 결과를 확인할 수 있습니다.
결과 표시(show results) 옵션을 클릭하세요.
- Z 방향 변위(Displacement Z) 옵션에 체크합니다. 이는 이 예제에서 수직 방향 좌표에 해당합니다.
- 수직 변위의 최소값과 최대값을 확인할 수 있습니다. 해석 결과에 따르면 최대 수직 변위는 -356.30 mm입니다. 이는 해석적으로 계산한 값인 -357.14 mm와 매우 잘 일치합니다.
- 옆에 있는 슬라이더를 움직일 수 있습니다. 힘을 점점 더 적용함에 따라 변형이 커지는 모습을 시각적으로 확인할 수 있습니다.
FEM 작업대(workbench)에 표시되는 결과만으로는 실제 구조물의 치수 결정이나 재료 선정과 같은 현실적인 공학적 의사결정을 내리기에는 물론 아직 충분하지 않습니다. 하지만 이러한 결과만으로도 힘이 구조물 내부를 어떻게 전달되는지(하중 전달 경로), 그리고 어느 부분이 가장 큰 응력을 받아 취약해지는지를 파악하는 데에는 매우 유용한 정보를 제공해 줍니다.
Read more

