Force ile Kiriş Deplasman ve Dönme Hesabı (Singularity)

Force ile Kiriş Deplasman ve Dönme Hesabı (Singularity)

Merhaba arkadaşlar;

Bu makalede Force/Fortran ile herhangi bir yüke maruz kalan bir kiriş üzerinde, herhangi bir noktadaki deplasman ve dönmeyi hesaplayacağız.

Bu hesaplamayı singularite yolu ile fortran yardımı ile yapalım.

Öncelikle fortran'ı bilmeyen arkadaşlar, korkmanıza gerek yok. Fortran; özellikle sayısal ve bilimsel hesaplamalar için uygun olan genel amaçlı, yordamsal, programlama dilidir. Fortranı ücretsiz olarak indirebilirsiniz. Kullanımı çok çok basittir. Ben fortran programlama dilini 1 günde öğrenip bu singularite algoritmasını tasarlayan biri olarak söylüyorum bunu size.

Programı geliştirmek isteyenler veya işleyişini merak edenler için kodlarını da ekledim, onun dışında sadece kullanmak isteyen arkadaşlar .exe uzantılı herhangi bir bilgisayarda kullanabilecekleri şekilde programı buradan indirebilirler.

Fortran Singularite ile Deplasman ve Dönme Hesabı

       program hafzullah
       real k_b,t_y,x_p,Mo,x_Mo,w,x_w1,x_wm,E,I,x_b,x_w2,M,y,c2,c1,a_t
       do
       write(*,*)'KiriŸ boyunu girin (m) :'
       read(*,*)k_b
       write(*,*)'P ykn girin (kN) :'
       read(*,*)t_y
       write(*,*)'P yknn uygulama noktasn girin (m) :'
       read(*,*)x_p
       write(*,*)'Mo momentini girin (kNm) :'
       read(*,*)Mo
       write(*,*)'Mo momentinin uygulama noktasini girin (m) :'
       read(*,*)x_Mo
       write(*,*)'w yayl yk girin (kN/m) :'
       read(*,*)w
       write(*,*)'w yayl ykn baŸlang‡ noktasn girin :'
       read(*,*)x_w1
       write(*,*)'w yayl ykn uzunlu§unu girin (m) :'
       read(*,*)x_wm
       write(*,*)'Elastisite modln girin (GPa) :'
       read(*,*)E
       write(*,*)'Atalet momentini girin (m^4) :'
       read(*,*)I
       write(*,*)'Deplasman hesaplanacak noktay girin (m) :'
       read(*,*)x_b
       a_t=E*I
       payda=k_b*a_t*1e3
       py2=a_t*1e3
       x_w2=x_w1+x_wm
       x=0
       c2=0
       R1=(t_y*(k_b-x_p)/k_b)-(Mo/k_b)
     $    +(w*(x_wm)*(k_b-(x_w1+x_w2)/2)/k_b)
       R2=(t_y*x_p/k_b)+(Mo/k_b)+(w*(x_wm)*(x_w1+x_w2)/(2*k_b))
       write(*,1)R1
    1  format(22x,'R1 = ',f6.2)
       write(*,2)R2
    2  format(22x,'R2 = ',f6.2)
       if(x.lt.x_p.and.x.lt.x_Mo.and.x.lt.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-((R1/6)*(x**3.)/(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.lt.x_Mo.and.x.lt.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.)/(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.ge.x_Mo.and.x.lt.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)+(Mo/2)*(x-x_Mo)**2.)/(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.lt.x_Mo.and.x.ge.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(w/24)*(x-x_w1)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.lt.x_Mo.and.x.lt.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)+(w/24)*(x-x_w2)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.ge.x_Mo.and.x.lt.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.+(Mo/2)*(x-x_Mo)**2.)/(py2
     $   )+c1*x+c2)
       elseif(x.ge.x_p.and.x.lt.x_Mo.and.x.ge.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.-(w/24)*(x-x_w1)**4.)/(py2
     $   )+c1*x+c2)
       elseif(x.ge.x_p.and.x.lt.x_Mo.and.x.ge.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.-(w/24)*(x-x_w1)**4.)/(py2
     $   )+c1*x+c2)
       elseif(x.ge.x_p.and.x.lt.x_Mo.and.x.lt.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.+(w/24)*(x-x_w2)**4.)/(py2
     $   )+c1*x+c2)
       elseif(x.lt.x_p.and.x.ge.x_Mo.and.x.ge.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)+(Mo/2)*(x-x_Mo)**2.-(w/24)*(x-x_w1)**4.)
     $   /(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.ge.x_Mo.and.x.lt.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)+(Mo/2)*(x-x_Mo)**2.+(w/24)*(x-x_w2)**4.)
     $   /(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.lt.x_Mo.and.x.ge.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(w/24)*(x-x_w1)**4.+(w/24)*(x-x_w2)**4.)
     $   /(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.ge.x_Mo.and.x.ge.x_w1.and.x.lt.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.+(Mo/2)*(x-x_Mo)**2.
     $   -(w/24)*(x-x_w1)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.ge.x_Mo.and.x.lt.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.+(Mo/2)*(x-x_Mo)**2.
     $   +(w/24)*(x-x_w2)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.lt.x_Mo.and.x.ge.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.-(w/24)*(x-x_w1)**4.
     $   +(w/24)*(x-x_w2)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.lt.x_p.and.x.ge.x_Mo.and.x.ge.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)+(Mo/2)*(x-x_Mo)**2.-(w/24)*(x-x_w1)**4.
     $   +(w/24)*(x-x_w2)**4.)/(a_t*1e3)+c1*x+c2)
       elseif(x.ge.x_p.and.x.ge.x_Mo.and.x.ge.x_w1.and.x.ge.x_w2)then
       x=k_b
       c1=(-(R1/6)*(x**3.)+(t_y/6)*(x-x_p)**3.-(Mo/2)*(x-x_Mo)**2.
     $    +(w/24)*(x-x_w1)**4.-(w/24)*(x-x_w2)**4.-c2)/payda
       write(*,4)c1
       x=x_b
       y=-(((R1/6)*(x**3.)-(t_y/6)*(x-x_p)**3.+(Mo/2)*(x-x_Mo)**2.
     $   -(w/24)*(x-x_w1)**4.+(w/24)*(x-x_w2)**4.)/(a_t*1e3)+c1*x+c2)
       endif
       write(*,3)y
    3  format(23x,'y = ',f6.2)
    4  format(/,23x,'c = ',f6.2)
       read(*,*)dur
       end do
       end

Faydalı olması dileğiyle..

Hafzullah Yıldırım

Merhaba ben Hafzullah! Voiser.net, Hesaplus.com projelerinin kurucusuyum. 2015'te Kocaeli Üniversitesi'nden mezun oldum ve devamında Yüksek Lisans eğitimimi tamamladım. 2017'de çalıştığım şirketten istifa ederek kendi yazılım firmam Hafzullah.com.tr'yi kurdum.

Toplam 1 Yorum

cengiz aksu
cengiz aksu

04.11.2017 22:39:44

Öncelikle program güzel benim sorum mesnetler ankastre mi seçiyoruz başka mesnet tipi seçilebiliyor mu?

Hafzullah Yıldırım
Hafzullah Yıldırım

12.11.2017 19:38:14

Maalesef mesnet seçemiyorsunuz.

Sende Yorum Yap

Benzer Yazılar

Voiser Kimin?
Voiser.net Nedir?
Voiser Yeni Ofisine Geçti
İzmit'te Pandemi (Tam Kapanma)
Kişisel Blog Para Kazandırır Mı
Bedelli Askerliğin Tarihçesi