Python İle Zorlanmış Taşınım Katsayısı Hesaplama

Isı taşınımı problemlerinde iç/dış akış veya doğal/zorlanmış taşınım şartlarına göre veya geometriye göre değişen formuller kullanılır. Bu formuller kullanırken oldukça dikkat gerektirmektedir. Yazmış olduğum bu program kullanıcıya girilecek parametreleri sormakta ve girilen parametrelere göre doğru formulasyonu seçip çözerek belirlenen şartlara göre istenen sonucu yazdırır. (Girilen parametreler MKS birim sistemine göre girilmelidir.)

Yazdığım kodlar ile Çengel’in Isı ve Kütle Transferi III.Basım kitabındaki çözülen örnekleri aşağıdaki şekilde doğruladım:

Örneğin bir zorlanmış taşınım örneğini ele alalım. Kitaptan örnek 7-1 deki parametrelerin programa girildiği ve Nusselt değerinin hesaplandığı ekran görüntüsü şekil 1. de görülmektedir.

Şekil 1. Şekil 2. Zorlanmış dış akış örneği (Çengel kitap)

Bir örnek de iç akış için doğrulayalım. Örnek 8-3 Bir Gölden Geçen Boru Hattında Petrol Akışı için Nusselt değeri hesaplanması yaptığım program görüntüsü şekil 2. deki gibidir.

Şekil 2. Zorlanmış iç akış örneği (Çengel kitap)

Zorlanmış iç/dış taşınım python programı için yazmış olduğum kodlar aşağıdaki gibidir:

girilen=''
while(girilen!='ç'):
 def caprazdaire(a,b,c,d,e,f):
  if a<reynolds<b:
   print("Nusselt:",0.989*(reynolds**0.33)*(prandtl**(1/3)))
   nusselt=0.989*(reynolds**0.33)*(prandtl**(1/3))
   print("ısı taşınım katsayısı:",k*nusselt/borucapi)
  elif b<reynolds<c:
   print("Nusselt:",0.911*(reynolds**0.385)*(prandtl**(1/3)))
   nusselt=0.911*(reynolds**0.385)*(prandtl**(1/3))
   print("ısı taşınım katsayısı:",k*nusselt/borucapi)
  elif c<reynolds<d:
   print("Nusselt:",0.683*(reynolds**0.466)*(prandtl**(1/3)))
   nusselt=0.683*(reynolds**0.466)*(prandtl**(1/3))
   print("ısı taşınım katsayısı:",k*nusselt/borucapi)
  elif d<reynolds<e:
   print("Nusselt:",0.193*(reynolds**0.618)*(prandtl**(1/3)))
   nusselt=0.193*(reynolds**0.618)*(prandtl**(1/3))
   print("ısı taşınım katsayısı:",k*nusselt/borucapi)
  elif e<reynolds<f:
   print("Nusselt:",0.027*(reynolds**0.805)*(prandtl**(1/3)))
   nusselt=0.027*(reynolds**0.805)*(prandtl**(1/3))
   print("ısı taşınım katsayısı:",k*nusselt/borucapi)
  def caprazkare():
   nusselt=0.102*(reynolds**0.675)*(prandtl**(1/3))
   print("taşınım katsayısı değeri:",k*nusselt/borucapi)
 print('Değerleri giriniz:')
 cevap=""
 orthiz=input("akışkan ortalama hız:")
 orthiz=float(orthiz)
 kinvis=input("akışkan kinematik viskozitesi:")
 kinvis=float(kinvis)
 borucapi=input("boru çapı:")
 borucapi=float(borucapi)
 plakauz=input("plaka uzunluğunu giriniz:")
 plakauz=float(plakauz)
 prandtl=input("Prandtl değerini giriniz.")
 prandtl=float(prandtl)
 k=input("iletim katsayisi girin:")
 k=float(k)
 reynolds=orthiz*borucapi/kinvis
 reynoldss=orthiz*plakauz/kinvis
 print("Reynolds:",reynolds)
 girilen=input("İç akış(i)/Dış Akış(d).Çıkmak için[ç]") 
 if girilen=='i' and reynolds<2300:
  print("Akış laminer")
  isilgirisuzunlugu=0.05*reynolds*prandtl*borucapi
  print(isilgirisuzunlugu)
  cevap=input("Isıl Giriş Uzunluğu boru uzunluğundan yeterince büyük mü? y/n")
  if cevap=="y":
   boruuzunlugu=input("boru uzunluğunu girin:")
   boruuzunlugu=float(boruuzunlugu)
   deger=(borucapi/boruuzunlugu)*reynolds*prandtl
   nusselt=3.66+(0.065*deger/(1+(0.04*((deger)**(2/3)))))
   h=k*nusselt/borucapi
   print("taşınım katsayısı değeri:",h)
  else:
   print("çözüm araştır")
 elif girilen=='i' and reynolds>10000:
  print("Akış türbülanslı")
  isilgirisuzunlugu=10*borucapi
  print(isilgirisuzunlugu)
  cevap=input("Isıl Giriş Uzunluğu boru uzunluğundan yeterince küçük mü? y/n")
  if cevap=="y":
   boruuzunlugu=input("boru uzunluğunu girin:")
   nusselt=0.023*(reynolds**0.8)*(prandtl)**0.4
   h=k*nusselt/borucapi
   print("taşınım katsayısı değeri:",h)
  else:
   print("çözüm araştır")
 elif girilen=='d':
  cevap=input("Dış akış geometrisini seçiniz: düz plaka(dp)/silindir(s),karekesitli(kk)")
  if cevap=='dp' and reynoldss<500000 and prandtl>0.6:
   print("Nusselt:",0.664*(reynoldss**0.5)*prandtl**(1/3))
  elif cevap=='dp' and 500000<=reynoldss<=10000000 and 0.6<=prandtl<=60:
   print("Nusselt:",0.037*((reynoldss**0.8)-871)*prandtl**(1/3))
  elif cevap=='s':
   caprazdaire(0.4,4,40,4000,40000,400000)
  elif cevap=='kk':
   caprazkare()

Program kodlarını açıklamadan önce özellikle optimize edilmesi gerektiğine değinmek isterim. Ben makine mühendisi olarak en hızlı şekilde ve işimi görecek şekilde yazmaya dikkat ettim, bir programcı gözüyle kod satırları farklı düzenlemeler ile kısaltılabilir.

Isı taşınımı türlerinde iletim ile ısı transferi hesabı yapılırken malzemenin ısı iletim katsayısını bilmek önemlidir; ki bu değer malzeme tipine bakılıp tablolardan elde edilebilir. Taşınım ile ısı tranferi hesaplanırken ise her problem tipine göre(birçok değişken parametre içeren) tekrar tekrar h (ısı taşınım katsayısı) değeri hesaplamak ve hesaplamak için de birçok şartı kontrol ederek karmaşık formulasyonları hassas şekilde çözmek gerekir. Çok fazla dikkat gerektiren bu hesaplamaları bir programa tanıtmak en mantıklısı olacaktır. Elbette bu program yalnızca belli başlı geometrileri kapsayan bir programdır ve analitik olarak çözümleme yapmaktadır. Daha karmaşık geometriler için nümerik olarak çözümleme yapacak kodlar tanımlanmalıdır.

Programda taşınım türlerinden zorlanmış taşınım probelemleri üzerinde durulmuştur. Program öncelikle akışkan hızı değeri, Prandtl, kinematik vizkozite, boru çapı, plaka uzunluğu değerlerini sormaktadır. Daha sonra iç akış/dış akış seçimini yapmanızı istemektedir ve hesapladığı Reynolds değerine göre akışın laminer mi türbülanslı mı olduğunu belirleyip iç akış için ısıl giriş uzunluğunu belirlemektedir ve kullanıcıya zorlanmış akışa maruz kalan geometrinin uzunluğu ile karşılaştırma yaparak evet veya hayır değerini girmesini beklemektedir. İç akış yalnızca boru içi akışlar için programa tanımlanmıştır. Dış akışta ise 3 geometri tipinden birinin seçiminin yapılması gerekmektedir ve dış akış problemi programa başlangıçta tanımlanan fonksiyonlar belirlenen şartlara göre çağrılarak çözümlenir ve döngü (‘ç’ + enter) ile çıkış yapılana kadar devam eder.

Yorum yapın