온도 변화로 인한 습도 변화(octave 사용법)

7582 단어 습도Octave

그래프를 GNU octave로 써보도록 하겠습니다.


겨울이라서 습도를 소재로 도표를 써 보았다.
왜 히터를 틀면 습도가 떨어지죠?
octave 4.4.1을 사용합니다.

습도는?


공기 중에 존재하는 최대 수증기량을 100%로 설정할 때의 현재 수증기량의 비.
공기에 존재할 수 있는 최대 수증기량은 온도에 따라 결정되며, 온도가 높을수록 수증기를 많이 함유할 수 있다.(어떤 온도에서 대기에 포함될 수 있는 최대 수증기의 양은 포화수증기량 $[g/m^3]달러로 표시됨)
※ 정확한 말은 수증기압력과 포화수증기압력의 비율이지만, 대체로 수증기량과 포화수증기량의 비율로 비슷하니 신경 쓸 필요가 없다.예를 들어 대기가 존재하지 않으면 대량의 분수증기를 함유할 수 있는데 대기압은 대략 1시의 근사치이다.

포화수증기량의 도표를 써 보아라


선을 하나 그릴게요.


Wikipedia에 따르면 포화수증기량과 온도의 관계식은 다음과 같다.
포화수증기량
a(T)=\frac{\displaystyle 217 \times 6.1078 \times 10 ^ \dfrac{7.5T}{T+237.3}}{T + 273.15}
$T$: 온도 [℃]
$a(T)$: $T$[℃]시 포화수증기량 [g/m^3]
GNU octave로 이 포화수증기량을 그려보면...
포화수증기량
T = linspace(-10,120);
a = ( 217*6.1078*10.^((7.5*T)./(T+237.3)) ) ./ (T + 273.15);
plot(T, a);
T=lincepace(-10120)}-10~120 100조각으로 분할(=-10~120℃)
a = ... □포화수증기량 구하기
plot(T, a)} 가로축 T, 세로축 a의 차트 그리기
이런 느낌으로 도표를 만들 수 있다.

약간 계산 공식에 불가사의한 문장을 넣었지만octave는 기본적으로 행렬 연산 소프트웨어이기 때문에 표량임을 명확하게 나타내기 위한 것이다.(내 생각엔)

실만 있으면 외롭기 때문에× 가입을 시도하다


축에 학점이 없기 때문에 조금 추가합니다.
포화수증기량의 도표 변경
T = linspace(-10,120);
a  = 217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15);

Tx = -10:10:120;
ax = 217*6.1078*10.^((7.5*Tx)./(Tx+237.3)) ./ (Tx+273.15);
plot(T, a,'-', Tx, ax , 'xb');
grid on
xlabel("Celsius [^\\circC]");
ylabel("saturated [g/m^3]");
title("temperature vs saturated")
직선만 있는 그래프이기 때문에 10℃당 x를 Tx와 ax로 그립니다.
좌표 축과 도표에 제목을 추가합니다.
Tx=-10:10:10→-10~120, 10개 단위로 계산.
ax = ... A:변하지 않는다.
plot(T, a,'-', Tx, ax , 'xb')
 ↓
가로축에 T를 그리고 세로축에 a를 그리고 직선에 그리다
가로축에는 Tx, 세로축에는 ax,`x, 색깔은 파란색
포화수증기량의 도표 수정두 번 그리기

T = linspace(-10,40);
a  = 217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15);
plot(T, a,'-r; line ;');
hold on

T = -10:10:40;
a  = 217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15);
plot(T, a,'^g; point ;');

grid on;
xlabel("T Celsius [^\\circC]", 'FontSize',14);
ylabel("a(T) saturated [g/m^3]", 'FontSize',14);
title("Celsius T vs saturated a(T)",
    'FontSize',16,
    'FontName', 'LimoneFitR',
    'FontWeight', 'bold',
    'color', 'b');
plot을 두 번 사용한 쪽도 같은 도표를 표시합니다.
hold on으로 선언한 후 이후의 plot은 삭제하지 않고 직접 쓴다.
평상시 기온은 -10~40℃면 충분하기 때문에 범위를 바꾼다.

plot 명령 옵션


plot의 세 번째 매개 변수 (형식 지정)
선 유형
'-'선(default)
'-'파선
'점선'
‘-.’ 점선
태그 유형
더하기
'o' 원
'별표'.
‘.’ 점
'x'포크
사각형
시간표
'^'위로 삼각
'브이'아래 삼각.
오른쪽 삼각형
'왼쪽 삼각형'.
'p'오망성.
'h'육망성.
색상
‘k’ blacK
‘r’ Red
‘g’ Green
‘b’ Blue
‘m’ Magenta
‘c’ Cyan
‘w’ White
";key;"를 참고하십시오.
명령 창에는 일본어를 입력할 수 없습니다.입력 후

그래서 못해.사용 시 편집기에서 사용하십시오.하지만 UTF로 저장할 수는 없어요.

온도와 습도에 따라 수증기량을 계산하다


계산 공식 확인


현재 온도 $T$now}, 습도 $H달러에서 현재까지의 수증기량 $\rho달러
포화수증기량 $a (T{now}) $x 습도 $H왜냐하면 100달러가 비슷하기 때문이다
현재 수증기량
>> T = 20.0;
>> H = 45.0;
>> a = 217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15);
>> a * H / 100
ans =  7.7883
잘 모르겠지만 아마 그럴 거예요.

수증기량을 계산하는 공식으로 습도를 계산하여 도표를 만들다


온도 vs 상대습도(수증기량 고정)
1;
T_now = 20.0; # 現在の温度 (℃)
H_now = 40.0; # 現在の湿度 (%)

T_min = -40 # 計算する 最低温度
T_max = 120 # 計算する 最高温度
T_step = 5  # プロット間隔

T_disp_min = -10 # 表示する最低温度
T_disp_max = 40  # 表示する最高温度

a = 217*6.1078*10.^((7.5*T_now)./(T_now+237.3)) ./ (T_now+273.15); # 飽和水蒸気量を求める
R = a * H_now / 100 # 水蒸気量を求める

# グラフに線を引く
T = linspace(T_min,T_max);
H = 100 * R ./ (217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15));
plot(T, H,'-b; point ;');
hold on

# 5℃毎にグラフにマークをつける
T = T_min:T_step:T_max;
H = 100 * R ./ (217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15));
plot(T, H,'xb');

plot(T_now, H_now,'^r; given value ;'); #入力値を赤の三角でプロット

grid on;
xlabel("Celsius [^\\circC]", 'FontSize',14);
ylabel("R.H. [%]", 'FontSize',14);
title(["Celsius T vs Relative Humidity",
    sprintf("\n(%d^oC %d%% : %.2f g/m^3)", T_now, H_now, R)],
    'FontSize',16,
    'FontName', 'LimoneFitR',
    'FontWeight', 'bold',
    'color', 'b');

ylim([0 100]); # 湿度の表示範囲を 0~100 にする
xlim([T_disp_min T_disp_max]); # 温度の表示範囲を指定

이 도표를 보면 20℃ 습도 40%인 방은 실온이 25℃로 올라가면 습도가 30%, 15℃로 내려가면 온도가 50%를 넘는다.


수증기량 고정시 온도-습도도 그리기


온도 vs 상대습도 차트
1;
T_min = -20; # 計算する 最低温度
T_max = 120; # 計算する 最高温度

T_disp_min = -10; # 表示する最低温度
T_disp_max =  40; # 表示する最高温度

T_and_H = [-30,-20,-10, 0,10,20,30,40,50,60,70,80,90,100;# 温度
            50, 50, 50,50,50,50,50,50,50,50,50,50,50,50] # 湿度

for i = T_and_H
  T_now = i(1)
  H_now = i(2)

  a = 217*6.1078*10.^((7.5*T_now)./(T_now+237.3)) ./ (T_now+273.15); # 飽和水蒸気量を求める
  R = a * H_now / 100 # 水蒸気量を求める

  # グラフに線を引く
  T = linspace(T_min,T_max,1000);
  H = 100 * R ./ (217*6.1078*10.^((7.5*T )./(T +237.3)) ./ (T +273.15));
  plot(T,H,'-');
  hold on
endfor

grid on;
xlabel("Celsius [^\\circC]", 'FontSize',14);
ylabel("R.H. [%]", 'FontSize',14);
title("Celsius T vs Relative Humidity",
    'FontSize',16,
    'FontName', 'LimoneFitR',
    'FontWeight', 'bold',
    'color', 'b');

ylim([0 100]); # 湿度の表示範囲を 0~100 にする
xlim([T_disp_min T_disp_max]); # 温度の表示範囲を指定
실행하면 이런 느낌이야.온도-습도 등 수증기량 곡선

만약에 틀리면 자동 비율로 하면...

습도 3만% 이런 게 무슨 뜻인지 모르겠어요.
T_and_H 팀에서 단번에 수증기량 R이 나온 계산을 생각하면 속도가 나오겠죠.그리고 이 행렬 R을 사용하여 H를 구하면...이 점을 고려한 두뇌(^^;여유롭게 하면 할 수 있겠지.
파라다이스fun을 사용하면 octave 프로그램을 단독으로 병행 처리할 수 있을 것 같습니다.병행화 해봐!
GNU Octave(전편), (후편)취택가일

좋은 웹페이지 즐겨찾기