사용자정의 함수를 활용한 온도 자동제어 방법

2023년 10월 20일

평점 :

해석지식통 기술 자료

1. Abstract

 

수치해석은 해석영역의 경계정보로써 지배방정식을 풀어 내부의 해를 구하는방법입니다. 경계정보가 상세할수록 정확한 계산에 필요한 해석영역의 크기를 줄일 수있습니다. 사용자정의함수를 쓰면 사용자가 아는 정보를 가능한 한 빠짐없이 입력할 수 있습니다. 뿐만 아니라 시간이나 중간결과에 대해 조건부 입력을 할 수도 있어 해석의 자유도를 높입니다.

 

2. Technology 배경

 

유동해석을 포함한 수치해석은 기본적으로 숫자를 다루는 계산입니다. 해석 소프트웨어는 입력된 숫자를 지배방정식에 넣고 단순 연산 합니다. 이 때 사용자가 입력하는 값은 문제 상황을 정의하는 숫자들입니다. 사용자는 경계조건, 초기조건, 물성 정보 등에 값을 입력합니다.

 

 

함수

 

기능

 

사용 예

입력

결과

sqrt(X)

X에 대한 제곱근

sqrt(4)

2

abs(X)

X에 대한 절대값

abs(-3)

3

sin(X)

X에 대한 삼각함수 사인 (sine)

sin

1

asin(X)

X에 대한 사인의 역함수 (arc sine)

asin(1)

 

sinh(X)

X에 대한 하이퍼볼릭 사인 (hyperbolic sine)

sinh(1)

 

exp(X)

X에 대한 지수함수

exp(1)

 

interpolate

(#A1,B1,A2,B2,

…,#X)

변수 X A1일 때 B1을 출력하고 X A2일 때 B2를 출력하며 사잇값은 선형 보간 값

 interpolate(#0,2,10,5#t)

2 (t=0

0.3*t+2 (

10 (t=10)

int(X)

X에 대한 정수 변환 값

int(2.2)

2

mat(X)

해당영역에 정의된 재료의 이름이 X인경우 1출력

mat(물)

1 (계산절점의 재료가 물일 때)

0 (계산절점의 재료가 물이 아닐 때)

Cloud Of

DataFile(X)

텍스트 파일 X의 데이터로 삼차원 보간을 실행

CloudOfDataFile(D:\Projects\X.txt)

X.txt는 4 열로 구성되며 순서대로

x 좌표, y 좌표, z 좌표, 입력할 값으로

구성됨

 

) 0.0 0.0 0.0 5.0

1.0 0.0 0.0 -2.0

0.0 1.0 0.0 3.0

0.0 0.0 1.0 10.0

1.0 1.0 1.0 2.0

0.0 1.0 1.0 1.0

1.0 0.0 1.0 8.0

1.0 1.0 0.0 6.0

 

 

사용자는 대부분 상수를 입력합니다. 공간, 시간 등 변수에 따라 분포를 지니는 물리량을 하나의 숫자로 치환하는, 일종의 가정을 하는 셈입니다. 이 가정은 상당히 유용하지만 잘 들어맞지 않는 경우도 있습니다. 야외에서 부는 바람의 유속이 고도에 따라 다른 것이 그 예입니다. 수심이 깊어질수록 압력이 높아지는 것도 마찬가지입니다. 그런 경우 함수를 만들어 조건에 따라 값을 달리 적용해야 합니다. 이 함수를 “사용자정의함수(user defined function)”라고 합니다.

 

사용자정의함수는 함수, 변수/상수, 연산자로 구성됩니다. 함수는 입력 받은 값을 이용해 본연의 특수 연산을 수행합니다. 변수/상수는 해석 중 계산되는 변수, 또는 약속된 상수입니다. 연산자는 사용자정의함수 내에서 사용할 수 있는 연산자입니다. 변수/상수와연산자로 구성된 수식을 함수에 넣으면 결과값이 반환되는데, 사용자정의함수는 단독 함수나 함수의 조합으로 구성됩니다. 

 

사용자정의함수에서 사용할 수 있는 함수는 “midas NFX CFD User’s Manual”에서 상세히 다룹니다. 그 중 빈번히 쓰이는 함수를 위 표에 정리했습니다.

 

사용자정의함수에서 빈번히 사용되는 변수/상수를 아래 표에 정리했습니다.

 

상수/변수

의미

t

전체 해석 진행 시간

dt

시간 간격

step

해석 중 현재 스텝

x

직교좌표계 x 크기

vx

속도 x 성분

pr

압력

dn

밀도

tm

온도

pi

원주율: 3.1415926……

 

이 때 가공하지 않은 채 입력된 변수는 사용자정의함수를 계산하는 절점의 변숫값을참고합니다. 예를 들어, 33692번 절점에서 “tm+9*sin(t)”라는 사용자정의함수를 계산한다면 tm(온도), t(시간)은 33692번 절점의 값을 이용할 것입니다. 


만약 변수의 값을 특정 절점 값으로 고정한다면 그 절점을 일종의 센서로 활용할 수 있습니다. 변수 뒤에 괄호를 열고 절점 번호를 입력하면 해당 절점의 해당 변숫값을 사용자 정의 함수에서 참고해 쓸 수 있습니다. 예를 들어 사용자 정의함수“tm(33692)+9*sin(t(33692))”는 어떤 절점에서 계산되더라도 33692번 절점의 온도와 시간을 이용해 계산합니다.

 

사용자정의함수에서 빈번히 사용되는 연산자를 아래 표에 정리했습니다.

 

 

연산자

 

 

기능

사용 예

입력

결과

X+Y

더하기

2+1

3

X-Y

빼기

2-1

1

X*Y

곱하기

6*2

12

X/Y

나누기

6/2

3

X<Y

X가 Y보다 작으면 1, 크거나 같으면 0 출력

3<5

1

X&Y

X와 Y가 모두 참일 때 1, 둘 중 하나라도 거짓일 때 0 출력

(3<4)&(5<3)

0

X|Y

X와 Y 중 적어도 하나가 참일 때 1, 둘 모두 거짓일 때 0 출력

(3<4)|(5<3)

1

if(X)then(Y)else(Z)endif

X가 참일 경우 Y가 출력되고, X가 거짓일 경우 Z 출력

if(3<4)then(8)else(0)endif

8

 

3.Technology 사용법

 

3-1. 예제 설명

 

온도 센서가 6 ℃ 이상의 온도를 감지하면 냉기 순환 장치를 가동하는 냉장고가 있습니다. 냉장고 안 공기 온도가 5 ℃일 때 15 ℃의 음료캔이 2 개 놓입니다.

 

전체 해석영역

 

<전체 해석영역>

 

냉기순환장치가 작동하지 않을 때는 자연대류에 의해 음료캔이 냉각됩니다. 냉기 순환 장치는 배기구와 흡기구로 구성됩니다. 장치 가동 시 배기구에서는 0 ℃의공기가 2 m/s 로 토출됩니다. 흡기구는 항상 열려있어 냉장고 내부 압력이 대기압으로 유지되도록 합니다. 

 😥 미리 보기는 여기까지!
내용을 이어서 보고 싶다면,
아래 정보를 입력해 주세요.

기본별 색별 기본별 색별 기본별 색별 기본별 색별 기본별 색별

이미 참여하셨습니다.