콘텐츠로 이동
Data Prep
상세

Waterpool Simulation Using Regular Waves

선형 파동 이론 기반 2차원 조파수조 시뮬레이션 프로젝트


개요

작은 진폭을 갖는 선형 파동 이론을 바탕으로, 2차원 조파수조에서의 파동 전파를 수치적으로 구현하고 시뮬레이션 애니메이션을 통해 전파 특성을 시각화한 학부 프로젝트.


문제정의

해양공학에서 파동 전파 특성을 이해하는 것은 선박 설계, 해양 구조물 안정성 분석 등에 필수적. 조파수조(Wave Tank)는 이러한 파동 특성을 실험적으로 연구하는 장비이며, 수치 시뮬레이션을 통해 물리적 실험 전 예측이 가능.

목표:

  1. 선형 파동 이론을 수치 모델로 구현
  2. 입사파와 반사파의 상호작용 시각화
  3. 파형 변화의 시간적 진행 애니메이션

이론적 배경

선형 파동 이론

작은 진폭 가정 하에서 파동 방정식:

\[\eta(x, t) = A \cos(kx - \omega t)\]
  • \(\eta\): 수면 변위
  • \(A\): 파고 (진폭)
  • \(k\): 파수 (= 2π/λ)
  • \(\omega\): 각주파수 (= 2π/T)

입사파 + 반사파

η_total = η_incident + η_reflected
        = A_i cos(kx - ωt) + A_r cos(kx + ωt)

분석/모델링

주요 변수 (6개)

변수 설명 단위
A_i 입사파 진폭 m
A_r 반사파 진폭 m
k 파수 rad/m
ω 각주파수 rad/s
L 수조 길이 m
T 시뮬레이션 시간 s

MATLAB 시뮬레이션

% 파라미터 설정
A_i = 0.1;      % 입사파 진폭 (m)
A_r = 0.05;     % 반사파 진폭 (m)
k = 2*pi/5;     % 파수 (파장 5m)
omega = 2*pi/3; % 각주파수 (주기 3s)
L = 20;         % 수조 길이 (m)

% 공간 및 시간 그리드
x = linspace(0, L, 200);
t = linspace(0, 10, 100);

% 애니메이션 생성
figure;
for i = 1:length(t)
    eta_i = A_i * cos(k*x - omega*t(i));  % 입사파
    eta_r = A_r * cos(k*x + omega*t(i));  % 반사파
    eta_total = eta_i + eta_r;            % 합성파

    plot(x, eta_total, 'b-', 'LineWidth', 2);
    ylim([-0.2, 0.2]);
    xlabel('Position (m)');
    ylabel('Surface Elevation (m)');
    title(sprintf('t = %.2f s', t(i)));
    drawnow;
end

Python 데이터 처리

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

# 파라미터
A_i, A_r = 0.1, 0.05
k, omega = 2*np.pi/5, 2*np.pi/3
L = 20

x = np.linspace(0, L, 200)

def update(frame):
    t = frame * 0.1
    eta_i = A_i * np.cos(k*x - omega*t)
    eta_r = A_r * np.cos(k*x + omega*t)
    line.set_ydata(eta_i + eta_r)
    return line,

fig, ax = plt.subplots()
line, = ax.plot(x, np.zeros_like(x))
ax.set_ylim(-0.2, 0.2)

ani = FuncAnimation(fig, update, frames=100, blit=True)
plt.show()

결과

시뮬레이션 출력

파동 전파 애니메이션을 통해 다음을 확인:

  1. 입사파 진행: 좌→우 방향으로 전파
  2. 반사파 생성: 우측 벽에서 반사되어 역방향 전파
  3. 간섭 패턴: 입사파와 반사파의 중첩으로 정상파 형성

주요 성과

  1. 수학 기반 선형파 이론을 실제 수치 모델로 구현하며, 물리 현상의 시각적 해석 역량 확보
  2. 비전공자에게 파동 개념을 설명하며 데이터 기반 커뮤니케이션 및 설득력 강화
  3. 반복 실험을 통해 모델 해석과 결과 검증의 중요성을 체감하며, 데이터 기반 사고 방식 고도화

배운 점

  1. 수치 해석: 연속적인 물리 현상을 이산화하여 컴퓨터로 시뮬레이션
  2. 시각화의 힘: 애니메이션으로 복잡한 현상을 직관적으로 전달
  3. 팀 협업: 주제 선정, 역할 분배, 일정 관리 주도 경험

기술 스택

구분 기술
시뮬레이션 및 애니메이션 MATLAB
수치 계산 및 파라미터 조정 Python (numpy, matplotlib)