جلسه ششم:حل معادله انتقال حرارت براي استوانه با دماي ثابت سطح خارجي

نویسنده: م. ه. فرجودیان

فرضها:

1-    خواص جسم در طول دوره تغييردما تغيير نكند.

2-    از تاثير انتقال حرارت جابجايي صرف نظر شده و دماي سطح خارجي استوانه از ابتدا U0 در نظر گرفته شده.

3-    طول جسم بينهايت در نظر گرفته شده.

معادله حرارت در سيستم مختصات دكارتي بصورت زير است:

image001

كه در آن:

image002

ودر مختصات قطبي بصورت زير است:

image003

در اين روابط U تابع دمااست و

image005

جسم را استوانه اي به طول بينهايت و شعاع r1 با شرايط زير در نظر مي گيريم:

clip_image005

clip_image006

clip_image007

Ui دماي اوليه استوانه و U0  دماي سطح بيروني آن است. معادله حرارت بصورت زير خواهد بود:

clip_image008

براي ساده تر شدن مسئله از تغيير متغير زير استفاده مي كنيم:

clip_image009

شرايط (1) و (2)  و (3) بصورت زير خواهد شد:

clip_image010

clip_image011

clip_image012

با فرض اينكه W حاصل ضرب دو تابع TوR باشد:

image014

معادله حرارت بصورت زير خواهد شد:

clip_image014

كه اين رابطه زماني امكان پذير است كه برابر ثابتي باشد، در نتيجه:

clip_image015

clip_image016

clip_image018

رابطه (7) معادله بسل است . فرم كلي  آن بصورت زير است:

clip_image019

كه جواب عمومي آن بصورت زير است:

clip_image020

كه  Jpتابع نوع اول وYp تابع نوع دوم بسل از مرتبه p گفته مي شود.

Bessel

و در نتيجه جواب عمومي (1) بصورت زير است:

clip_image021

از شرط مرزي (5) نتيجه مي شود:

clip_image022

زيرا Y1(r) در r=0 بيكران است و J1(r) در r=0 برابر صفر است.

از شرط مرزي (6) نتيجه مي شود:

clip_image023

كه در آن Zn صفرهاي تابع بسل هستند. چند مقدار اول آن داراي مقادير زير است:

clip_image024

clip_image025

clip_image026

clip_image029

clip_image030

clip_image032

clip_image033

clip_image034

clip_image035

clip_image037

clip_image038

توضيح اينكه زيربرنامه ZrsCal در برنامه زير Zn ها را محاسبه مي كند.درنتيجه:

clip_image039

از رابطه (8) نيز نتيجه مي شود:

clip_image040

در نتيجه :

clip_image041

براي سادگي an=BnCn بنابراين:

clip_image042

با استفاده از شرط اوليه (4) :

clip_image043

براي تعيين an از تعامد توابع بسل استفاده مي كنيم:

clip_image044

ودرنتيجه:

clip_image045

clip_image046

clip_image047

 

clip_image048

و:

clip_image049

اين تابع درجه حرارت نقاط مختلف استوانه را بر حسب زمان بيان ميكند.براي مثال اگر قطر استوانه 14mm و ساير مشخصات آن بصورت زير فرض شود:

clip_image050

clip_image051

بگيريم نمودار 1 دماي نقاط مختلف آن را به فاصله r از نقطه وسط در زمانهاي متفاوت نشان مي دهد.چنانكه ملاحظه مي شود در زمان t=0  دماي نقاط مختلف تقريبا صفر است. ( تفاوت اندكي كه ملاحظه مي گردد بخاطر تقريبي بودن محاسبات است.) در زمان t=300 هم دماي نقاط مختلف تقريبا به 100oC رسيده.

نمودار 2 منحني تغييرات دماي نقاط مختلف استوانه را بر حسب زمان نشان مي دهد.

نمودار 3 فرم سه بعدي دو نمودار 1و2 است.

نمودار 4 دماي مركز استوانه برحسب زمان براي قطرهاي مختلف نشان مي دهد. چنانكه از اين نمودار مشاهده ميگردد هر چه قطر متوسط استوانه افزايش مي يابد زمان لازم براي اينكه دماي مركز آن به دماي مورد نظر برسد بيشتر است.

نمودار 5 هم فرم سه بعدي نمودار 4 است.

graph-2

نمودار (1)

graph-3

نمودار (2)

cylinder-1

نمودار (3)

graph-1

نمودار (4)

cylinder-2

نمودار (5)

برنامه زير كه به زبان ‍C نوشته شده دماي نقاط مختلف استوانه را در زمانهاي مختلف براي شرايط فوق ارائه مي دهد.


توضيحات برنامه:

زيربرنامه J0x مقدار J0(x) را بازمي گرداند.

زيربرنامه J1x مقدار J1(x) را بازمي گرداند.

زيربرنامه ZrsCal مقادير Zn را بازمي گرداند.

زيربرنامه ufn  مقدار U(t,r) را بازمي گرداند.


#include <stdio.h>

#include “iostream.h”

#include “math.h”

#include <conio.h>

 

float U0,Ui,c,Ro,k,alfa;

double zrs[12];

 

long double J0x(double w){

int i;

long double J0=1.0,Jn=1.0;

for(i=1;i<70;i++){

Jn=-Jn*((w/i)/2.0)*((w/i)/2.0);

J0=J0+Jn;

}

return J0;

}

 

long double J1x(double w){

int i;

long double J1=w/2,Jn=w/2;

for(i=1;i<70;i++){

Jn=-Jn*((w/i)/2.0)*((w/(i+1))/2.0);

J1=J1+Jn;

}

return J1;

}

 

 

void zrscal(){

int n;

double x0=0,x=2;

for(n=0;n<=12;n++){

do{

x0=x;

x=x0-J0x(x0)/(J0x(x0+0.0001)-J0x(x0))*0.0001;

}while(fabs(x-x0)>=0.00005);

zrs[n]=x;

x=zrs[n]+3.1415926;

}

}

 

 

double ufn(float r,float t,float r1){

int n;

long double urt,sigma=0;

for(n=0;n<=12;n++)

sigma=sigma+exp(-alfa*pow((zrs[n]/(r1/1000)),2)*t)*J0x(zrs[n]*r/(r1))/(zrs[n]*J1x(zrs[n]));

urt=U0+2*(Ui-U0)*sigma;

return urt;

}

 

main(){

float r,d,t,r1,t1,t2,r2;

cout<<“Enter D(mm):”;

cin>>d;

cout<<“Enter k(W/m’C):”;

cin>>k;

cout<<“Enter c(KW/Kg’C):”;

cin>>c;

cout<<“Enter Density(Kg/m3):”;

cin>>Ro;

cout<<“Enter U0(‘C):”;

cin>>U0;

cout<<“Enter Ui(‘C):”;

cin>>Ui;

r1=d/2;

t1=pow(r1,1.9)*9+9;

t2=t1/5;

r2=r1/10;

alfa=k/Ro/(c*1000);

zrscal();

for(t=0.0;t<=t1;t=pow(t,1.1)+t2/20){

printf(“\n  r(mm)    t(Sec)      U(‘C)”);

printf(“\n—————————-“);

for (r=0.0;r<=r1;r=r+r2)

printf(“\n%6.2f    %5.0f       %5.1f”,r,t,ufn(r,t,r1));

cout<<“\n”;

}

t=2*t1;

printf(“\n  r(mm)    t(Sec)      U(‘C)”);

printf(“\n—————————-“);

for (r=0.0;r<=r1;r=r+r2)

printf(“\n%6.2f    %5.0f       %5.1f”,r,t,ufn(r,t,r1));

}