[Python][Lens]

[Python][Lens]#03 분리 변수법을 사용한 열확산 해석(시각화)

루크1983 2023. 5. 17. 00:30

수식:

 

 

1. 이 식의 의미와 목적:

  • U(x, t) = T(t)X(x): 이 식은 분리 변수법을 사용하여 1차원 열 전달 문제의 해를 표현합니다. 분리 변수법은 다변수 함수를 각 변수에 대한 단일 변수 함수의 곱으로 분리하는 수학적인 기법입니다. 이 식에서 U(x, t)는 위치 x와 시간 t에 따른 온도 분포를 나타내는 함수입니다. 분리 변수법을 사용하여 T(t)와 X(x)를 분리하고 각각 시간과 위치에 대한 함수로 표현함으로써 원래의 편미분 방정식을 간단한 형태의 방정식으로 분리합니다. 이를 통해 초기 조건과 경계 조건에 맞는 1차원 열 전달 문제의 해를 구할 수 있습니다.
  • U(x, t) = Ae^(-κt/λ^2) [Bcos(x/λ) + Csin(x/λ)
    U(x, t) = e^(-κt/λ^2) [Dcos(x/λ) + Esin(x/λ)]:
     이 식은 초기 조건과 경계 조건에 따른 1차원 열 전달 문제의 해를 나타냅니다. T(t) = Ae^(-κt/λ^2)는 시간에 따른 온도 변화를 나타내며, X(x) = Bcos(x/λ) + Csin(x/λ)는 위치에 따른 온도 분포를 나타냅니다. 이 식은 초기 조건과 경계 조건을 충족하는 열 전달 문제의 해를 제공하므로, 특정한 초기 온도, 위치에서의 온도, 경계 조건 등을 고려하여 문제를 해결하는 데 활용될 수 있습니다.

이러한 식들은 초기 조건과 경계 조건이 주어진 1차원 열 전달 문제에서의 해석을 가능하게 합니다. 이 식들을 사용하여 초기 조건과 경계 조건을 충족하는 온도 분포를 계산하고 그래프로 표현할 수 있습니다. 또한, 이를 통해 열 확산 및 열전도에 따른 시간과 위치에 따른 열 전달 현상을 이해하고 예측할 수 있습니다.

분리 변수법을 사용하여 1차원 열 전달 문제를 해결하는 것은 실제 열 관련 문제에서 많이 활용됩니다. 예를 들어, 고온 가열, 열 처리, 열 전달 장치 설계 등 다양한 열 관련 분야에서 초기 조건과 경계 조건에 따른 온도 분포를 예측하고 원하는 조건을 만족시키기 위해 이러한 식을 활용할 수 있습니다.

따라서, 위의 식들은 초기 조건과 경계 조건을 충족하는 열 전달 문제의 해를 제공하고, 열 확산 및 열전도에 따른 시간 및 위치에 따른 온도 분포를 예측하고 분석하는 데 사용될 수 있는 유용한 도구입니다.

 

 

2. 수학기호:

  • U(x, t): U는 위치 x와 시간 t에 따른 온도를 나타내는 함수입니다.
  • T(t): T는 시간 t에 따른 온도를 나타내는 함수입니다.
  • X(x): X는 위치 x에 따른 온도를 나타내는 함수입니다.
  • A, B, C, D, E: 주어진 초기 조건과 경계 조건에 따라 결정되는 상수입니다.
  • e: e는 자연 로그의 밑이며, 약 2.71828의 값을 가집니다.
  • κ: 열확산계수를 나타내는 상수입니다.
  • λ: 음의 값을 가지는 분리 상수(separation constant)로서, 해의 유일성과 유한성을 보장하기 위해 사용됩니다.



3. 활용방안:

렌즈 사출의 맥락에서 이 식을 활용하는 방안을 고려하면, 다음과 같이 접근할 수 있습니다:

  • 사출 성형 과정 모델링: 이 식을 활용해 사출 성형 과정 중에 발생하는 열 분포를 모델링할 수 있습니다. 사출 성형은 고온과 고압을 사용하여 플라스틱 또는 다른 재료를 원하는 형태로 만드는 과정이므로, 제품의 품질과 성능은 대체로 이 과정에서의 열 분포에 크게 영향을 받습니다.
     a. 가열 단계: 이 수식을 사용하면 각 위치에서의 열 분포를 예측하고, 이를 바탕으로 가열 과정을 최적화할 수 있습니다. 예를 들어, 어떤 위치에서의 열 분포가 이상하다면, 그 위치에서 가열 속도를 조정할 수 있습니다.
     b. 사출 단계: 이 수식은 또한 사출 성형 과정에서의 열 분포를 예측하는데 사용될 수 있습니다. 이를 통해 사출 압력을 조정하거나, 성형 공구의 디자인을 개선하여 제품의 품질을 향상시킬 수 있습니다.
     c. 냉각 단계: 마지막으로, 이 수식은 냉각 과정에서의 열 분포를 예측하는데도 사용할 수 있습니다. 이를 통해 냉각 속도를 조정하거나, 성형 공구의 디자인을 개선하여 제품의 품질을 향상시킬 수 있습니다.

  • 품질 관리: 이 방정식을 사용하면 사출 성형 과정에서 발생할 수 있는 여러 문제를 예측하고 이해할 수 있습니다. 예를 들어, 특정 위치에서 열 분포가 이상하다면, 그 부분에서 불량품이 생길 가능성이 높습니다. 이를 통해 품질을 향상시키고 불량률을 줄일 수 있습니다.

  • 프로세스 최적화: 이 식을 사용하여 사출 성형 과정에서의 열 분포를 이해함으로써, 사출 성형기의 매개변수를 조정하여 과정을 최적화할 수 있습니다. 이를 통해 에너지 효율을 향상시키고, 제품의 일관성을 유지하며, 사출 성형 시간을 줄일 수 있습니다.

 

 

4. Code:

import numpy as np
import matplotlib.pyplot as plt

# 초기 조건 설정
L = 1  # 구간 길이
n = 100  # 구간을 나누는 점의 개수
x = np.linspace(0, L, n)  # 구간을 나누는 점들
t = np.linspace(0, 1, n)  # 시간을 나누는 점들
λ = 1  # 열전도율
κ = 1  # 열확산계수

# 분리 변수법을 사용하여 U(x,t) 구하기
T1 = np.exp(-κ * t / (λ ** 2))  # T(t) = e^(-κt/λ^2)
X1 = np.sin(x * np.pi / L)  # X(x) = sin(xπ/L)
U1 = np.outer(T1, X1)  # U(x,t) = T(t)X(x)

# A = 1, B = 1, C = 0인 경우
A = 1
B = 1
C = 0
T2 = A * np.exp(-κ * t / (λ ** 2))  # T(t) = Ae^(-κt/λ^2)
X2 = B * np.cos(x * np.pi / L)  # X(x) = cos(xπ/L)
U2 = np.outer(T2, X2)  # U(x,t) = T(t)X(x)

# D = 1, E = 0인 경우
D = 1
E = 0
T3 = np.exp(-κ * t / (λ ** 2))  # T(t) = e^(-κt/λ^2)
X3 = D * np.cos(x * np.pi / L)  # X(x) = cos(xπ/L)
U3 = np.outer(T3, X3)  # U(x,t) = T(t)X(x)

# 그래프 그리기
fig, axs = plt.subplots(3, 1, figsize=(8, 12))

# 첫 번째 그래프: U(x,t) = T(t)X(x)
axs[0].set_title('U(x,t) = T(t)X(x)')
axs[0].set_xlabel('x')
axs[0].set_ylabel('t')
axs[0].imshow(U1, cmap='hot', extent=[0, L, 0, 1], aspect='auto')

# 두 번째 그래프: U(x,t) = Ae^(-κt/λ^2)cos(xπ/L)
axs[1].set_title('U(x,t) = Ae^(-κt/λ^2)cos(xπ/L)')
axs[1].set_xlabel('x')
axs[1].set_ylabel('t')
axs[1].imshow(U2, cmap='hot', extent=[0, L, 0, 1], aspect='auto')

# 세 번째 그래프: U(x,t) = e^(-κt/λ^2)cos(xπ/L)
axs[2].set_title('U(x,t) = e^(-κt/λ^2)cos(xπ/L)')
axs[2].set_xlabel('x')
axs[2].set_ylabel('t')
axs[2].imshow(U3, cmap='hot', extent=[0, L, 0, 1], aspect='auto')

plt.show()



 

 

 

5. Code 설명 및 결과:

이 코드는 1차원 열방정식의 초기 조건을 가진 구간에서의 온도 분포를 시간에 따라 시각화하는 것을 목표로 합니다. 코드의 각 부분을 이론적으로 설명하면 다음과 같습니다:

  1. 초기 조건 설정:
    • L: 구간의 길이를 나타내는 변수입니다.
    • n: 구간을 나누는 점의 개수를 나타내는 변수입니다.
    • x: 0부터 L까지의 범위를 n개의 점으로 나눈 배열입니다. 이 배열은 구간을 나타내는데 사용됩니다.
    • t: 0부터 1까지의 범위를 n개의 점으로 나눈 배열입니다. 이 배열은 시간을 나타내는데 사용됩니다.
    • λ: 열전도율을 나타내는 상수입니다.
    • κ: 열확산계수를 나타내는 상수입니다.
  2. 분리 변수법을 사용하여 U(x,t) 구하기:
    • 분리 변수법은 변수를 분리하여 풀어나가는 방법으로, 여기서는 U(x,t)를 T(t)와 X(x)의 곱으로 표현합니다.
    • T1, X1을 구하기 위해 초기 조건과 분리 변수법을 사용합니다. T1은 T(t)를, X1은 X(x)를 나타내는 배열입니다.
    • np.outer 함수를 사용하여 T1과 X1을 외적하여 U1을 구합니다. U1은 U(x,t)를 나타내는 2차원 배열입니다.
  3. A = 1, B = 1, C = 0인 경우:
    • A, B, C는 상수입니다. 여기서는 A = 1, B = 1, C = 0을 사용합니다.
    • T2, X2를 구하기 위해 초기 조건과 상수를 사용합니다.
    • T2는 T(t)를, X2는 X(x)를 나타내는 배열입니다.
    • U2를 구하기 위해 T2와 X2를 외적합니다.
  4. D = 1, E = 0인 경우:
    • D, E는 상수입니다. 여기서는 D = 1, E = 0을 사용합니다.
    • T3, X3을 구하기 위해 초기 조건과 상수를 사용합니다.
    • T3는 T(t)를, X3은 X(x)를 나타내는 배열입니다.
    • U3를 구하기 위해 T3와 X3를 외적합니다.
  5. 그래프 그리기:
    • matplotlib.pyplot을 사용하여 그래프를 그립니다.
    • subplots 함수를 사용하여 3개의 서브 그래프를 가진 그림 객체를 생성합니다.
    • 각 서브 그래프에 대해 제목, 축 레이블을 설정하고 imshow 함수를 사용하여 U(x,t)를 히트맵으로 표현합니다. extent 매개변수는 x와 t의 범위를 지정하고, aspect 매개변수는 가로축과 세로축의 비율을 조정합니다.