공학설계입문 과목 팀 프로젝트 - 본인 코딩과 시뮬레이션 담당
본 프로젝트의 목표는 케이블카 Hanger의 효율적 설계를 찾는 것입니다.
효율적 설계란 Hanger가 파손되지 않도록 목표 안전계수(S.F.) 4.5를 만족하는 최소한의 질량(m)을 찾는 것을 의미합니다.
-
목표 안전계수 (S.F.):
4.5 -
기준 재료:
AISI 4340 350A QT(고강도 합금강) -
재료 항복강도 (
$S_y$ ):1102.00 MPa -
최종 목표 응력 (
$\sigma_{target}$ ):$1102.00 / 4.5 \approx$ 244.9 MPa
이 프로젝트는 Python과 Fusion 360을 연동한 최적화 방식을 사용합니다.
- Python:
main.py스크립트가 황금 분할 탐색(Golden Section Search, GSS) 알고리즘을 실행합니다. - Fusion 360: 사용자는 Python이 알려준
r(곡률 반경),D(단면 지름) 값을 Fusion 360의 파라미터에 입력하여 "정적 응력" 시뮬레이션을 실행합니다. - User: 사용자는 Fusion 360에서 계산된 최대 폰 미세스 응력(MPa) 값을 다시 Python 터미널에 입력합니다.
- 반복: GSS 알고리즘이 입력된 응력 값을 바탕으로 탐색 구간을 좁혀 다음
r,D값을 제안합니다.
이 과정은 탐색 구간이tolerance(default: 50.0mm) 이하로 줄어들 때까지 반복됩니다. - 최종 탐색: 1~4번의 GSS 과정을 여러 질량(m) 값에 대해 반복 수행하여, 최종 목표 안전계수 4.5를 만족하는 최적의 질량(
m)을 찾아냅니다.
이 과정에서 tolerance 값을 변경해 반복 횟수를 조절할 수 있습니다.
- 형상: Hanger의 형상은 스테이플(Staple) (b-h-b) 모델을 가정합니다. 이는
hanger_model.py의(2*b) + h수학 공식과 일치합니다. - 고정 변수:
b(수평 팔 길이),h(수직 높이),m(총 질량)은 각 GSS 시뮬레이션마다 고정됩니다.
저희 프로젝트에서는 b=500mm, h=3000mm로 고정했습니다. - 최적화 변수:
r(곡률 반경),D(단면 지름) - 경계 조건: GSS의 탐색 범위는 공학적/기하학적 한계인
D/2 < r < h/2로 설정됩니다.
main.py: GSS 알고리즘을 실행하고 유저와 상호작용하는 메인 스크립트. GSS 완료 후 결과를 CSV 파일로 자동 저장합니다.hanger_model.py: Hanger의 "스테이플(b-h-b)" 형상에 대한 부피(V)와 경계값(r=D/2)을 계산하는 수학 함수 모음입니다.plotter.py: GSS 결과를 Matplotlib으로 시각화하는plot_results함수 모음입니다.gss_results_*.csv: (자동 생성)main.py실행 시 시뮬레이션 결과가 저장되는 데이터 파일입니다.
-
필요한 Python 라이브러리를 설치합니다.
pip install numpy matplotlib pandas
-
main.py스크립트를 실행합니다.python main.py
-
스크립트의 안내에 따라 고정값
b,h,m을 입력합니다.--- 1. 기본 고정값 입력 --- 고정할 b (수평 팔 길이, mm) 값을 입력하세요: 500 고정할 h (수직 팔 길이, mm) 값을 입력하세요: 3000 고정할 m (총 질량, kg) 값을 입력하세요: 189 -
스크립트가 GSS 알고리즘을 시작하고, 시뮬레이션할
r과D값을 알려줍니다.--- 3. GSS 초기값 계산 (2회 시뮬레이션 필요) --- ---------------------------------------- 다음 값으로 Fusion 360 시뮬레이션을 진행하세요: r = 1146.8524 mm D = 86.1362 mm -
Fusion 360에서 해당
r,D값으로 모델을 수정하고 정적 응력 시뮬레이션을 실행합니다. -
결과 창에서 '응력(Stress) - 폰 미세스(von Mises)'의 최대(Max) 값을 확인합니다.
-
확인한 응력 값을 Python 터미널에 입력합니다.
-> 시뮬레이션 결과(최대 폰 미세스 응력, MPa)를 입력하세요: 245.2 -
GSS가
tolerance에 도달할 때까지 4~7번 과정을 반복합니다. -
탐색이 완료되면 터미널에 결과 행렬이 출력되고 그래프 창이 팝업되며 CSV 파일이 저장됩니다.