게임을 어느정도 하다보면 유체역학에 대해서는 대충 감을 잡게 된다


(대충 유속 1000까지는 어떻게든 커버가 된다는 뜻)


유체야 바닐라든 모드든 이것저것 다루다보니 대략적인 감이라도 있지만 열파이프는 원전말고는 쓰는 곳이 거의 없다보니 수식적으로 어떻게 돌아가는지에 대해서는 감이 거의 없다

그저 열파이프가 두꺼우면 더 많이 전달되고, 파이프가 짧을수록 좋다는 것만 알 뿐


그래서 이걸 좀 수식적으로 정리해보려고 이것저것 검색이랑 실험을 좀 해봤음


Reference 1 : https://wiki.factorio.com/Heat_pipe


대충 구글번역 때려보면 이런 내용이 적혀있다.


이 내용대로라면 만약 원전에서 120MW에 해당하는 열을 해당하고, 열교환기에서 120MW에 해당하는 열을 소비할 경우 P=120을 대입하면

T=1+(P/15) = 1+(120/15)=1+8 = 9도라는 값을 얻을 수 있게 된다.

파이프가 한 칸 갈 때마다 9도씩 감소한다는 뜻이며, 그럼 원자로가 1000도라면 55칸 떨어진곳은 1000-55*5=605도까지 떨어진다. 더 이상 가면 500도 아래로 떨어지기 때문에 열교환기가 작동할 수 없다.





Reference 2 : https://forums.factorio.com/viewtopic.php?t=50169

다른 글도 하나 보게 됐는데 여긴 이렇게 적혀있음


P=Q = c * (T-1)/5

파이프의 열용량은 1MJ/K 이기 때문에

P=(T-1)/5로 써도 무방

이건 틱당 전송량이기 때문에 초당 전송량을 보려면 60을 곱해주어야함

P=(T-1)/5*60 = 12(T-1)

레퍼런스1처럼 T에대해서 정리하면 T=1+(P/12)를 얻게 된다

만약 120MW를 전송해야한다면 T=1+120/12=11도를 얻게된다.


레퍼1이랑 레퍼2가 식이 묘하게 다르니 실험을 통해 어느식이 맞는지 확인해보자



원래는 열 인터페이스나 Editor extension모드의 무한 히트파이프를 사용하려서 테스트를 해보려고 했는데 저 추가 제거가 내가 원하는대로 동작을 안함

그래서 이건 포기하고 바닐라에 있는 원전, 열교환기, 증기터빈에 모딩을 좀 해서 실험하기 좋게 만들어주었다






40MW가아닌 10GW분량의 열을 생산할수 있는 전기원자로

바닐라는 우라늄 연료전지를 태워야하지만 전기에너지를 사용하도록 바꿔주었음


10MW아닌 10GW 까지 분량의 물을 끓일 수 있는 짱 좋은 열교환기


적당히 값 늘려주었더니 291TW 분량의 증기를 발전해서 전기로 바꿔먹을수 있는 짱 좋은 증기터빈



얘네들을 이렇게 구성해준다

전부다 전력 제한을 10GW급까지 처리할 수 있도록 늘려주었기 때문에 단 1개의 원자로, 1개의 열교환기, 1개의 증기터빈만으로 실험환경이 조성이됨

만약 원자로에서 생성하는 열량을 제한하고 싶으면 저기 저 무한축전기의 출력을 줄여서 설정하면 딱 그만큼만 열으로 전환을 해준다

열교환기에서 소모하는 열량도 마찬가지로 무한축전기의 입력을 줄여서 설정하면 열량 소비속도를 조절할 수 있다


지금은 왼쪽에선 120MW의 전기를 공급해주고 있고 오른쪽에선 그보다 많은 양의 전기를 소비하도록 해주었다


이때의 전력그래프


왼쪽네트워크


오른쪽네트워크


생산쪽이 120MW의 전기를 생산, 그것을 전부 열로 전환, 그것을 전부 물을 끓여서 증기로 바꾸고, 그것을 전부 전기로 전환하여 120MW 생산

열손실없이 열이 잘~ 전달되는것을 알 수있다.



이때의 온도상태를 한번 보자


열교환기는 작동최소컷인 500도까지 떨어졌고 파이프가 한칸이동할때마다 9도씩 증가하고 있다.

아까 레퍼1에 의하면 1칸당 9도가 변화하고, 레퍼2에 의하면 1칸당 11도가 변화한다고 해는데 실험 결과를 보아선 레퍼1이 맞는 것 같다.


즉,

T=1+P/15

P=15(T-1) (초당)

P=(T-1)/4 (틱당)

이다


레퍼2가 일단 수식은 틀린것 같지만 그래도 눈여겨볼 점이 하나 있다.

지금 1칸당 9도씩 차이가 나므로 원자로의 온도는 545도여야 할 것 같지만 실제로는 537.8도가 나오고 있고 왜 이런지에 대해선 레퍼2의 자료를 통하여 어느정도 짐작할 수 있었다.

아까 열파이프의 용량이 1MJ이므로 C=1로 놓아도 된다고 하고 넘어갔지만 원자로는 열용량이 1이 아니라 10이다.

P=Q=c* (T-1)/5이라고 했었는데 우리는 이식이 틀린 것을 알고 있다. 나누기 5가 아닌 나누기 4로 바꾸어보자

P=c* (T-1)/4

이건 틱당 공식이므로 초당공식으로 바꾸기 위해 60을 곱하면

P=15*c*(T-1)

c에 10을 대입하면

P=150(T-1), T=1+P/150이 되고, P에 120MW를 대입하면

T=1+120/150 = 1.8도


536+1.8도==537.8도


딱 맞는다. 공식이 검증되었으니 c를 생략하지 말고 공식에 반영하자.



T=1+P/(15c)

P=15c(T-1) (초당)

P=c(T-1)/4 (틱당)

(원자로 c=10, 열파이프/열교환기 c=1)


이것과는 별개로 레퍼2에 의하면 틱당 전달 열량은 0과 50/3사이에 클립핑된다고 설명하고 있다.

그말인 즉슨 초당 전달 열량은 0과 1000사이에 클립핑된다는건데

하한인 0으로 클립핑되는건 온도차가 1도 아래로 나는 경우니 당연한 것이고, 상한인 경우에도 실제로 그러한지 확인해보자




왼쪽네트워크의 전기 공급량을 2GW로 늘렸는데도 불구하고 오른쪽 네트워크에서는 1GW의 열량만을 공급받고 있다

이경우 왼쪽 네트워크에서는 전기를 수요에 맞게 1GW만 사용하는것이 아닌 공급되는 2GW를 전부 소비를 하고 있는 상태이다. 다만 온도 한계 1000도를 넘긴 탓에 그대로 열 손실이 발생하고 있는 상황


열파이프를 설치를 아무리 짧게 하더라도 이 1GW한계는 절대적인 한계이니 이 이상의 열량을 전달해야한다면 열파이프 라인을 필히 분산해야 한다는 뜻이다




T=1+P/(15c)

P=15c(T-1) (초당) (최대 1GJ, 최소 0)

P=c(T-1)/4 (틱당) (최대 16.66MJ, 최소 0)

(원자로 c=10, 열파이프/열교환기 c=1)



이론적인 원리는 알았으니 이제 원자로-열교환기 사이의 거리를 알아낼 수 있다.

원자로의 온도가 1000도라고 하고 열교환기의 온도가 500도라고 하면 둘 사이의 온도차이는 500도가된다.

열파이프의 열용량은 1이니까 T=1+P/15 가 열파이프가 한칸 떨어질때마다 감소하는 온도가 되니

500/(1+P/15) 가 곧 500도가 떨어지기 위한 거리가 된다.

P가 만약 120MW였다면 55.5 칸이 지나면 500도가 떨어지게 되고 그 뒤에 있는 열교환기는 일을 할 수가 없다.



실험에서는 성능이 좋은 열교환기를 딱 한개 사용하였지만 물론 실제상황에서의 열교환기는 10MW짜리를 여러개 설치하여야 한다.



이렇게 되면 거리 구하는게 조금더 귀찮아지긴한다

가장 오른쪽의 열교환기의 온도를 500도라고 가정하고 나면 가장 왼쪽의 열교환기 부분의 온도를 역산할 수 있을 것이고

아까는 (1000-500)/(1+P/15)로 계산을 하였지만 (1000-가장왼쪽부분의 온도)/(1+P/15)로 식을 변형해준다면 거리 계산이 가능할 것으로 보인다.



실제 이 추론이 맞아 떨어지는지에 대한 실험과 파이프를 2겹 이상으로 깔면 어떻게 되는지에 대해서는 다음 기회에