İnşaat Mühendisleri İçin Python - Uygulama 1, Kiriş Hesabı

Python programlama dili dünya üzerinde birçok profesyonel ve meraklı tarafından kullanılan açık kaynaklı bir programlama dilidir. Biz de burada bu popüler Python dilini kullanarak inşaat mühendisliğinde bazı hesaplamalarda kullanılabilecek basit programlar yazacağız.  

İlk olarak tek donatılı dikdörtgen kirişler için kesit hesabı yapabilen bir uygulama yazalım. Bir yazılım yazmadan önce yapacağımız daha doğrusu bilgisayara yaptıracağımız işlemler için bir algoritma geliştirmeliyiz. Bu algoritma ile kodları yazarken daha düzenli ve kontrollü olabiliriz. 

Öncelikle kiriş hesabı için bilgisayarın bilmesi yani işlemler için belleğinde bulunması gereken bilgileri belirleyelim. Öncelikle ön tasarım için belirlemiş olduğumuz kiriş boyutlarını programımızın da bilmesi gerekiyor. Ayrıca gerekli çekme donatısı alanı, Beton sınıfı ve kullanılacak donatı sınıfının da bilinmesi gerekiyor. Ve tabi kirişe etkiyen yüklerden meydana gelen tasarım momenti değerini de bilmemiz gerekiyor.

Öncelikli olarak yukarıda verilen değerlerin programa girilmesi gerekiyor yani bu değerler bizim girdilerimiz olacak.

İşte şimdi hesaplamalara geçeceğimiz zaman. Öncelikle programa donatı oranını hesaplatacağız ve bu oranı minimum donatı ve maksimum donatı oranları ile kıyaslamasını yapacağız. Sonrasında eşdeğer basınç bloğu değerini hesaplatıp, bu değer ile Kapasite (Taşıma Gücü) Moment değerini hesaplayacağız. Ve son bir kıyaslama ile, kapasite momentini tasarım momenti değeri ile kıyaslayarak programı sonlandıracağız.  

Öncelikle BeamSection isimli bir class oluşturalım. initial fonksiyonumuzu tanımlayalım ve programa gireceğimiz girdi değerlerini tanımlayalım.

class BeamSection():
def __init__(self):
self.beam_weight = int(input("bw: "))
self.beam_height = int(input("d: "))
self.bar_area = float(input("As: "))
self.design_strength = float(input("fcd: "))
self.char_strength = float(input("fctd: "))
self.press_block_coeff = float(input("k1: "))
self.bar_yield_strength = float(input("fyd: "))
self.design_moment = float(input("Md: "))

Şimdi de donatı oranını hesaplayalım. Bunun için beamSection isimli bir fonksiyon tanımlayalım ve kiriş kesit hesabı işlemlerini bu fonksiyon altında irdeleyelim. Ve elbette bu fonksiyonu __init__ fonksiyonu altında self.beamSection() ile çağırmayı unutmayalım.

def sectionCalculate(self):
self.bar_ratio = self.bar_area / (self.beam_weight * self.beam_height)
self.bar_ratio_min = 0.85 * (self.char_strength / self.bar_yield_strength)
if self.bar_ratio >= self.bar_ratio_min:
self.balanced_ratio = 0.85 * self.press_block_coeff * (self.design_strength /
        self.bar_yield_strength) * (600/(600+self.bar_yield_strength))
else:
print("Kesit uygun değil, Çekme donatısı alanı artırılabilir.")

Burada donatı oranını hesaplatıp elde edilen değeri if bloğu ile minimum donatı oranı ile karşılaştırdık. Eğer donatı oranı minimum değerden küçük ise ekrana donatı oranı artırılabilir şeklinde bir uyarı yazdırdık. Aksi halde dengeli donatı oranı değerini hesaplattık.

Şimdi de donatı oranını maksimum donatı oranı değerleriyle karşılaştıralım. Öncelikle zorunlu koşul olan 0.85*ρb değeri ile sonrasında deprem yönetmeliğinde verilen 0.02 değeri ile karşılaştıralım. Eğer donatı oranı maksimum değerlerden büyük ise ekrana "Kesit uygun değil, kesit boyutları artırılabilir." şeklinde bir yazı yazdıralım. 

self.max_bar_ratio_1 = 0.85 * self.balanced_ratio
self.max_bar_ratio_2 = 0.02
if self.bar_ratio > self.max_bar_ratio_1 and self.bar_ratio > self.max_bar_ratio_2:
print("Kesit uygun değil, kesit boyutları artırılabilir.")
Donatı oranı maksimum değerlerden küçük ise eşdeğer basınç bloğu derinliğini hesaplattık. Şimdi de taşıma gücü momentini hesaplayalım ve bu moment değerini tasarım momenti değeri ile karşılaştıralım. Yine bir If bloğu ile eğer kapasite momenti tasarım momenti değerinden küçük ise ekrana "Kesit kendisine etkiyen yükü taşıyamaz.", aksi halde "Kesit uygun." yazdıralım.
else:
self.press_block = (self.bar_area * self.bar_yield_strength) /
    (0.85 * self.design_strength * self.beam_weight)
print(self.press_block)

self.capasity_moment = self.bar_area * self.bar_yield_strength * (self.beam_height - self.press_block/2)
if self.capasity_moment >= self.design_moment:
print("Kesit uygun.")
else:
print("Kesit kendisine etkiyen yükü taşıyamaz.")
 Ve en sonunda programımızı bitirdik. Şimdi  tek yapmamız gereken oluşturduğumuz sınıfı çağırarak programı başlatmak olacak.

Yorumlar

Popüler Yayınlar