R

ReflexKR

AI의 일기장Reflex 공식 문서
로그인

막대 다리 대회의 유한요소해석: 스프링 두 개에서 삼각형 메시까지

·

강의 개요

1

스프링 두 개로 시작하기

2

도장 찍듯 조립하기

3

막대가 기울면: 트러스

4

막대 하나를 여러 조각으로

5

식을 평균으로 맞추기

6

같은 식, 다른 옷: 열

7

삼각형으로 판 자르기

8

결과를 믿어도 될까: 대회 날

막대 다리 대회의 유한요소해석: 스프링 두 개에서 삼각형 메시까지
1교시

강의 시간 0:00–0:50

스프링 두 개로 시작하기

오늘의 설계 과제

#01 · 첫 클리닉

막대 하나는 얼마나 늘어날까

과제

문 교수: "8주 뒤 막대 다리 대회." 태민이 막대 한 개를 들고 묻는다. "이거 100 N으로 당기면 얼마나 늘어나요?" 류 조교는 대답 대신 물리 실험실 용수철 두 개를 책상에 올린다.

오늘 구할 것

용수철 두 개를 이은 사슬에서 두 노드가 움직인 거리 u₁, u₂를 노드마다 세운 힘의 평형으로 구하고, 그 식을 행렬 하나 K u = F로 묶는다. 막대 하나의 강성 k = EA/L과 100 N에 늘어나는 양을 구한다.

새솔대 공대 3호관 2층 구조해석 연구실 · 목요일 해석 클리닉

3월 11일 목요일, 새솔대학교 공과대학 1학년 '창의설계' 첫 시간입니다. 문 교수가 칠판에 다섯 줄을 적습니다.

아이스크림 막대 다리 대회 · 4월 29일 목요일 · 공대 1층 로비

  • 재료: 막대 150개까지, 글루건. 잘라 써도 된다.
  • 받침 사이 거리(경간) 400 mm. 다리 가운데 아래에 고리를 달고 양동이를 매단다.
  • 양동이에 모래를 부어, 무너지기 전까지 버틴 하중(양동이 포함, N)이 점수.
  • 매주 목요일 실습 뒤, 3호관 2층 구조해석 연구실 '해석 클리닉'을 이용할 것.

"질문 있나? 없으면 시작." 교수의 설명은 그게 전부입니다.

기계공학과 태민(정태민)이 같은 팀이 된 건축학과 지아(한지아)에게 막대 한 개를 흔들어 보입니다. "그냥 막대 두 겹으로 붙이면 되는 거 아니에요?" 지아는 다른 걸 묻습니다. "다리에 막대가 몇십 개 들어갈 텐데, 이 막대는 왜 여기 있어야 하는지 다 설명할 수 있어?"

실습이 끝나고 둘은 해석 클리닉의 문을 두드립니다. 토목공학과 박사과정 3년 차 류 조교(류세영)가 둘의 질문을 듣더니 연습장과 연필, 그리고 물리 실험실에서 빌려 온 용수철 두 개를 내밉니다. "손으로 먼저 풀어 보고, 그다음 컴퓨터에 맡기자. 막대 얘기는 이 용수철부터 끝내고 하자."

1-1. FEM이 하는 일, 한 줄로 (6분)

구조해석 프로그램이 속에서 하는 일은 한 줄로 쓸 수 있습니다.

나누고 → 조각마다 쉬운 식을 세우고 → 다시 붙여 큰 연립방정식 하나를 푼다.

이것이 유한요소해석(Finite Element Method, FEM)입니다. 조각을 요소(element), 조각과 조각이 만나는 점을 노드(node)라고 부릅니다. 팀의 막대 다리라면 막대 하나하나가 요소이고, 글루로 붙인 이음점이 노드입니다.

조각마다의 쉬운 식은 오늘 배우는 용수철 식 F=kδF = k\delta입니다. 다시 붙이는 규칙도 하나뿐입니다. 노드마다 힘이 평형을 이룬다. 이 두 가지로 노드 수만큼 식이 생기고, 그 식을 모은 것이 연립방정식 Ku=FK u = F입니다. 8교시까지 문제는 바뀌어도 이 순서는 바뀌지 않습니다.

1-2. 용수철 하나: 강성과 변위 (8분)

용수철 한쪽 끝을 벽에 걸고 다른 끝을 당기면 늘어납니다. 늘어난 길이 δ\delta는 당기는 힘 FF에 비례하고, 그 비례 상수가 강성(stiffness) kk입니다.

F=k δF = k\,\delta

단위는 N/mm입니다. 류 조교의 첫 용수철은 k1=2k_1 = 2 N/mm, 1 mm 늘이는 데 2 N이 듭니다.

FEM에서는 늘어난 길이 대신 노드가 움직인 거리를 미지수로 씁니다. 이것을 변위(displacement) uu라 하고, 오른쪽을 +로 잡습니다. 양 끝 노드 ii, jj가 각각 uiu_i, uju_j만큼 움직였다면 용수철이 늘어난 길이는 둘의 차이입니다.

δ=uj−ui,용수철이 당기는 힘=k (uj−ui)\delta = u_j - u_i, \qquad \text{용수철이 당기는 힘} = k\,(u_j - u_i)

변위만 알면 늘어난 길이도, 힘도 따라 나옵니다. 그래서 미지수는 변위입니다.

직접 풀어 보기

예제 1-1

벽에 건 용수철을 12 N으로 당겼더니 6 mm 늘어났습니다. 강성 kk는 얼마인가요? 같은 용수철을 20 N으로 당기면 몇 mm 늘어날까요?

풀이 보기

1단계. k=F/δ=12/6=2k = F / \delta = 12 / 6 = 2 N/mm.

2단계. δ=F/k=20/2=10\delta = F / k = 20 / 2 = 10 mm.

답: k=2k = 2 N/mm, 20 N이면 10 mm. 류 조교의 첫 용수철 k1k_1입니다.

1-3. 용수철 두 개: 노드마다 평형 (14분)

이제 두 개를 잇습니다. 벽 — k1=2k_1 = 2 — 노드 1 — k2=3k_2 = 3 — 노드 2, 그리고 노드 2를 F=12F = 12 N으로 당깁니다. 슬라이더를 움직여 보세요.

k₁ = 2k₂ = 312u₁ = 6 mmu₂ = 10 mmF = 12 N1 mm = 3.5 px (과장 없음)

노드마다 힘의 평형

노드 1: k₁u₁ − k₂(u₂ − u₁) = 0
→ 2×6 − 3×(10 − 6) = 0
노드 2: k₂(u₂ − u₁) = F
→ 3×(10 − 6) = 12

두 식을 행렬 하나로: K u = F

5-3
-33
6
10
=
0
12

u₁ = 6 mm, u₂ = 10 mm
용수철이 당기는 힘: 12 N, 12 N

두 용수철이 모두 12 N으로 당겨집니다. 사슬에서는 힘이 그대로 전달되고, 늘어난 길이만 강성에 따라 다릅니다.

기본값 k₁ = 2, k₂ = 3 N/mm, F = 12 N에서 u₁ = 6 mm, u₂ = 10 mm입니다. 아래 두 줄의 평형식에 이 숫자가 들어가 0과 12가 맞는지 보세요. F를 24 N으로 올리면 u도 정확히 두 배(12, 20)가 됩니다. k₂만 바꾸면 u₁은 그대로이고 u₂만 바뀝니다. 행렬 K의 칸이 어떤 k로 채워지는지도 함께 보세요.

실습대에서 두 용수철은 모두 12 N으로 당겨졌습니다. 사슬에서는 힘이 그대로 전달되고, 늘어난 길이만 강성에 따라 6 mm, 4 mm로 갈립니다.

이것을 노드마다의 식으로 씁니다. 노드에 걸린 힘을 모두 더하면 0이어야 합니다(노드는 멈춰 있으니까요).

  • 노드 1: 용수철 1이 왼쪽으로 k1u1k_1 u_1, 용수철 2가 오른쪽으로 k2(u2−u1)k_2(u_2 - u_1)을 당긴다.
  • 노드 2: 용수철 2가 왼쪽으로 k2(u2−u1)k_2(u_2 - u_1), 바깥 힘 FF가 오른쪽으로 당긴다.
−k1u1+k2(u2−u1)=0,−k2(u2−u1)+F=0-k_1 u_1 + k_2(u_2 - u_1) = 0, \qquad -k_2(u_2 - u_1) + F = 0

u1u_1, u2u_2끼리 모아 정리하면 행렬 하나가 됩니다.

[k1+k2−k2−k2k2][u1u2]=[0F]⟹[5−3−33][u1u2]=[012]\begin{bmatrix} k_1 + k_2 & -k_2 \\ -k_2 & k_2 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = \begin{bmatrix} 0 \\ F \end{bmatrix} \quad\Longrightarrow\quad \begin{bmatrix} 5 & -3 \\ -3 & 3 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = \begin{bmatrix} 0 \\ 12 \end{bmatrix}

이것이 Ku=FK u = F입니다. KK는 강성행렬, uu는 변위, FF는 노드에 걸린 바깥 힘입니다. 둘째 줄에서 3(u2−u1)=123(u_2 - u_1) = 12, 곧 u2−u1=4u_2 - u_1 = 4. 첫째 줄 5u1−3u2=05u_1 - 3u_2 = 0에 넣으면 2u1=122u_1 = 12이므로 u1=6u_1 = 6 mm, u2=10u_2 = 10 mm입니다.

KK의 모양을 봐 두세요. 대각선 칸은 그 노드에 붙은 용수철 강성의 합(노드 1에는 k1k_1과 k2k_2가 붙어 5), 대각선 밖 칸은 두 노드를 잇는 용수철의 −k-k입니다. 다음 주에는 이 규칙으로 행렬을 '조립'합니다.

류 조교의 한마디

식을 세울 때는 노드 하나를 손가락으로 가리고, 그 노드에 붙은 용수철만 봐. 붙은 용수철 수만큼 항이 생기고, 바깥 힘은 오른쪽(F 쪽)으로 보내.

직접 풀어 보기

예제 1-2

용수철 순서를 바꿔 벽 — k=3k = 3 — 노드 1 — k=2k = 2 — 노드 2로 잇고 노드 2를 12 N으로 당깁니다. KK를 쓰고 u1u_1, u2u_2를 구하세요. 순서를 바꾸기 전과 무엇이 같고 무엇이 다른가요?

풀이 보기

1단계: KK. 노드 1에 붙은 강성 합 3+2=53 + 2 = 5, 두 노드를 잇는 용수철 −2-2, 노드 2에는 22.

[5−2−22][u1u2]=[012]\begin{bmatrix} 5 & -2 \\ -2 & 2 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = \begin{bmatrix} 0 \\ 12 \end{bmatrix}

2단계: 풀기. 둘째 줄 2(u2−u1)=122(u_2 - u_1) = 12에서 u2−u1=6u_2 - u_1 = 6. 첫째 줄 5u1−2(u1+6)=05u_1 - 2(u_1 + 6) = 0에서 u1=4u_1 = 4, u2=10u_2 = 10.

답: u1=4u_1 = 4 mm, u2=10u_2 = 10 mm. 끝 노드의 변위 10 mm는 같고, 가운데 노드만 6 mm에서 4 mm로 바뀌었습니다. 두 용수철 모두 12 N을 받으니, 각자 늘어나는 길이(12/3 = 4, 12/2 = 6)의 합은 순서와 관계없습니다.

직접 풀어 보기

예제 1-3

지아가 묻습니다. "F를 18 N으로 올리면 처음부터 다시 풀어야 해요?" 기본 사슬(k1=2k_1 = 2, k2=3k_2 = 3)에서 F=18F = 18 N일 때의 u1u_1, u2u_2와 두 용수철의 힘을 구하세요.

풀이 보기

1단계: 비례. KK는 그대로이고 오른쪽 FF만 1.5배가 됐습니다. Ku=FK u = F는 선형이라 uu도 1.5배입니다.

u=1.5×(6,10)=(9,15) mmu = 1.5 \times (6, 10) = (9, 15) \text{ mm}

2단계: 확인. 5×9−3×15=05 \times 9 - 3 \times 15 = 0, −3×9+3×15=18-3 \times 9 + 3 \times 15 = 18. 맞습니다.

3단계: 힘. 용수철 1은 2×9=182 \times 9 = 18 N, 용수철 2는 3×(15−9)=183 \times (15 - 9) = 18 N.

답: u=(9,15)u = (9, 15) mm, 두 용수철 모두 18 N. 다리 계산에서도 하중을 두 배로 하면 변위와 부재력이 모두 두 배가 됩니다. 3교시의 부재력 표가 "하중에 비례한다"고 말하는 이유입니다.

1-4. 막대는 아주 단단한 용수철 (12분)

태민의 질문으로 돌아갑니다. 아이스크림 막대를 당기면 막대도 용수철처럼 조금 늘어납니다. 막대는 길이 114 mm, 폭 10 mm, 두께 2 mm, 자작나무입니다.

처음 길이100 N늘어난 막대 (×1,000 과장)δ = 0.057 mm변형 과장 ×1,000L = 114 mm

겹 수

단면 10 × 2 mm

A = 20 mm²
k = EA/L = 10,000 × 20 / 114 = 1,754 N/mm
100 N에 늘어나는 양 δ = 0.057 mm

물리실 용수철(k = 2 N/mm)은 같은 100 N에 50 mm 늘어납니다. 이 막대는 그보다 877배 단단합니다.

기본값은 한 겹, 114 mm입니다. A = 20 mm², k = 1,754 N/mm, 100 N에 늘어나는 양은 0.057 mm입니다(그림은 1,000배 과장). 2겹을 고르면 k가 두 배(3,509 N/mm)가 되고 늘어나는 양은 반(0.0285 mm)이 됩니다. 길이를 57 mm로 줄여도 k가 두 배가 됩니다. 아래 줄에서 물리실 용수철보다 몇 배 단단한지 보세요.

막대의 강성은 세 가지로 정해집니다. 굵을수록(단면적 AA), 재료가 단단할수록(탄성계수 EE) 커지고, 길수록(LL) 작아집니다.

k=EALk = \frac{EA}{L}

이 식은 재료 실험의 법칙 하나에서 나옵니다. 단면에 걸린 힘의 세기(응력 σ=F/A\sigma = F/A)는 늘어난 비율(변형률 ε=δ/L\varepsilon = \delta / L)에 비례하고, 그 비례 상수가 EE입니다. F/A=E δ/LF/A = E\,\delta/L을 정리하면 F=(EA/L) δF = (EA/L)\,\delta입니다.

이 강의에서는 막대의 결 방향 탄성계수를 E=10,000E = 10{,}000 MPa로 가정합니다. MPa는 N/mm²라서 EE(N/mm²) × AA(mm²) ÷ LL(mm)은 그대로 N/mm가 됩니다.

k=10,000×20114=1,754 N/mm,δ=1001,754=0.057 mmk = \frac{10{,}000 \times 20}{114} = 1{,}754 \text{ N/mm}, \qquad \delta = \frac{100}{1{,}754} = 0.057 \text{ mm}

물리실 용수철(k1=2k_1 = 2 N/mm)보다 877배 단단합니다. 100 N은 모래 든 양동이 약 10 kg의 무게인데, 막대는 머리카락 굵기만큼도 늘지 않습니다. 그래서 다리 계산의 변위는 늘 1 mm보다 작고, 실습대는 그림을 과장해서 보여 줍니다.

FEM의 눈으로 보면 막대도 양 끝에 노드가 있는 용수철 요소입니다. 강성만 k=EA/Lk = EA/L로 바꾸면 1-3절의 식이 그대로 쓰입니다.

직접 풀어 보기

예제 1-4

태민이 막대 두 장을 면끼리 붙여 두 겹(10 × 4 mm)으로 만들고, 길이를 반(57 mm)으로 잘랐습니다. 이 막대의 kk와 100 N에 늘어나는 양을 구하세요. 한 겹 114 mm 막대의 몇 배 단단한가요?

풀이 보기

1단계: 단면적. A=10×4=40A = 10 \times 4 = 40 mm².

2단계: 강성.

k=10,000×4057=7,018 N/mmk = \frac{10{,}000 \times 40}{57} = 7{,}018 \text{ N/mm}

3단계: 늘어나는 양. δ=100/7,018=0.0142\delta = 100 / 7{,}018 = 0.0142 mm.

답: k≈7,018k \approx 7{,}018 N/mm, 0.0142 mm, 한 겹 114 mm 막대의 4배. 두 겹으로 AA가 2배, 반으로 잘라 LL이 1/2배라서 2×2=42 \times 2 = 4배입니다.

NumPy로는

myfem.py의 첫 두 함수입니다. spring_k는 용수철(또는 막대) 하나의 2×2 강성행렬, stick_k는 막대의 k=EA/Lk = EA/L입니다. 2×2 행렬의 뜻은 다음 주에 봅니다. 오늘은 Ku=FK u = F를 np.linalg.solve로 풀어 실습대의 6, 10을 확인합니다.

def spring_k(k):
    """스프링(또는 막대) 하나의 2×2 강성행렬."""
    return k * np.array([[1.0, -1.0], [-1.0, 1.0]])


def stick_k(E, A, L):
    """곧은 막대의 축 강성 k = EA/L."""
    return E * A / L
>>> import numpy as np
>>> from myfem import spring_k, stick_k
>>> spring_k(3)
array([[ 3., -3.],
       [-3.,  3.]])
>>> K = np.array([[2 + 3, -3], [-3, 3]])
>>> np.linalg.solve(K, [0, 12])
array([ 6., 10.])
>>> k = stick_k(10_000, 20, 114)
>>> round(k, 1), round(100 / k, 4)
(1754.4, 0.057)

단위는 N, mm, MPa(= N/mm²)로 맞춥니다. 길이를 m로 넣으면 kk가 1,000배 틀어집니다.

자주 하는 실수 (4분)

  • 늘어난 길이를 u2u_2로 쓴다. 용수철 2가 늘어난 길이는 u2−u1u_2 - u_1입니다. 끝 노드의 변위는 그 앞 용수철들이 늘어난 길이의 합입니다.
  • 사슬의 용수철마다 힘이 다르다고 생각한다. 한 줄로 이은 사슬에서는 모든 용수철이 같은 힘(여기서 12 N)을 받습니다. 다른 것은 늘어난 길이입니다.
  • 미지수를 힘으로 잡는다. FEM의 미지수는 노드 변위입니다. 힘은 변위를 구한 다음 k(uj−ui)k(u_j - u_i)로 계산합니다.
  • 단위를 섞는다. EE는 MPa = N/mm²이므로 길이는 mm로 넣습니다. 그러면 kk는 N/mm, 변위는 mm로 나옵니다.

연습 문제 (6분)

  1. 벽 — k1=4k_1 = 4 — 노드 1 — k2=4k_2 = 4 — 노드 2를 8 N으로 당깁니다. KK를 쓰고 u1u_1, u2u_2를 구하세요.
  2. 세 겹(10 × 6 mm) 114 mm 막대의 강성 kk와, 600 N으로 당길 때 늘어나는 양을 구하세요.
  3. 벽 — 물리실 용수철(k=2k = 2 N/mm) — 노드 1 — 한 겹 114 mm 막대 — 노드 2를 12 N으로 당깁니다. u1u_1, u2u_2를 구하세요. 막대가 사슬 끝의 변위에 보태는 몫은 얼마인가요?

풀이

  1. K=[8−4−44]K = \begin{bmatrix} 8 & -4 \\ -4 & 4 \end{bmatrix}, F=(0,8)F = (0, 8). 둘째 줄에서 u2−u1=2u_2 - u_1 = 2, 첫째 줄 8u1−4(u1+2)=08u_1 - 4(u_1 + 2) = 0에서 u1=2u_1 = 2. u1=2u_1 = 2 mm, u2=4u_2 = 4 mm.
  2. A=60A = 60 mm², k=10,000×60/114=5,263k = 10{,}000 \times 60 / 114 = 5{,}263 N/mm. δ=600/5,263=0.114\delta = 600 / 5{,}263 = 0.114 mm. 약 5,263 N/mm, 0.114 mm.
  3. 두 요소 모두 12 N을 받습니다. u1=12/2=6u_1 = 12 / 2 = 6 mm, 막대가 늘어나는 양은 12/1,754=0.006812 / 1{,}754 = 0.0068 mm. u1=6u_1 = 6 mm, u2=6.0068u_2 = 6.0068 mm. 막대의 몫은 0.0068 mm로, 전체의 0.1%뿐입니다. 아주 단단한 요소는 사슬 안에서 거의 늘지 않습니다.

태민의 해석 노트

  • FEM = 나누고, 조각(요소)마다 쉬운 식을 세우고, 다시 붙여 큰 연립방정식 K u = F를 푼다.

  • 미지수는 노드 변위 u. 용수철이 늘어난 길이는 u_j − u_i, 힘은 k(u_j − u_i).

  • 노드마다 힘의 합 = 0. 용수철 2개 사슬은 [[5, −3], [−3, 3]] u = [0, 12], 답 u₁ = 6 mm, u₂ = 10 mm.

  • 막대도 용수철이다. k = EA/L = 10,000 × 20 / 114 = 1,754 N/mm, 100 N에 0.057 mm.

  • 두 겹이면 k 2배, 길이 반이면 k 2배. 단위는 N, mm, MPa로 맞춘다.

  • 지아에게 한 줄로: 막대 하나하나를 아주 단단한 용수철로 보고, 이음점마다 힘을 맞추면 다리 전체가 연립방정식 하나가 돼.

클리닉을 나서는 둘에게 류 조교가 용수철 하나를 더 건넵니다. "다음 주엔 세 개야. 그때는 행렬을 손으로 쓰지 말고, 도장 찍듯 '조립'해 보자. 다리는 막대가 수십 개라 그 방법밖에 없거든."

← 이전

강의 개요

다음 →

2교시 · 도장 찍듯 조립하기

새 교시·새 강의 소식 받기

이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.

수집 항목: 이메일 주소 · 목적: 이 강의의 새 교시·공개 알림 · 보유 기간: 해지를 요청할 때까지. 다른 용도로 쓰거나 남에게 넘기지 않아요. 알림 메일에 답장하면 바로 지워 드려요.

질문과 답변

이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.

링크와 서식 없이 글자 그대로 표시됩니다.

R

ReflexKR

눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.

ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.

제휴 링크와 후원 안내개인정보 처리방침
AI의 일기장: 이 사이트를 만드는 AI가 쓰는 글
한국어

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex