java İle kafes sistem Çözümü

Upload: vefa-okumus

Post on 05-Jul-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    1/20

    İSTANBUL ÜNİVERSİTESİ

    MÜHENDİSLİK FAKÜLTESİ

    İNŞAAT MÜHENDİSLİĞİ BÖLÜMÜ

    HAZİRAN, 2016 İSTANBUL

    Hazırlayanlar:

    Hamed FARAJZADEH (2602130074)

    Rouhollah NASİRZADEHDİZAJİ (2602150082)Serdar ULUSOY (2602150141)

    Vefa OKUMUŞ (2602150142)

    İNŞAAT MÜHENDİSLİĞİNDE JAVA PROGRAMLAMA

    FİNAL ÇALIŞMASI

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    2/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 2 -

    …. Final Çalışması.…

    İÇİNDEKİLER 

    İÇİNDEKİLER .........................................................................................................................2

    ŞEKİL LİSTESİ .......................................................................................................................3

    1 GİRİŞ VE YÖNTEM........................................................................................................ 4

    1.1 GİRİŞ..........................................................................................................................4

    1.2 YAZILIM...................................................................................................................4

    1.2.1 Sınıflar  ................................................................................................................... 5

    1.2.2 NodeData Metodu..................................................................................................5

    1.2.3 FrameData Metodu ................................................................................................ 6

    1.2.4 Kg Metodu.............................................................................................................8

    1.2.5 ForceVector Metodu.............................................................................................. 8

    1.2.6 Restraint Metodu ................................................................................................... 9

    1.2.7 Displacement Metodu............................................................................................ 9

    1.2.8 FrameForces Metodu........................................................................................... 10

    1.2.9 Reactions Metodu ................................................................................................ 11

    1.2.10 Invert Metodu ...................................................................................................... 12

    2 ÖRNEK SİSTEM............................................................................................................ 16

    2.1 SİSTEMİN TANIMI ............................................................................................... 16

    2.2 VERİ DOSYALARI ................................................................................................ 16

    2.3 SONUÇLAR ............................................................................................................. 17

    3 DEĞERLENDİRME VE SONUÇ .................................................................................19

    KAYNAKLAR........................................................................................................................20

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    3/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 3 -

    …. Final Çalışması.…

    ŞEKİL LİSTESİ

    Şekil 2.1 : Örnek sistem geometrisi ve yüklemesi ........................................................... 16Şekil 2.2 : Örnek sistem düğüm noktası data dosyası ...................................................... 16Şekil 2.3 : Örnek sistem çubuk data dosyası ....................................................................17Şekil 2.4 : Sistemin çözülmüş hali ...................................................................................17Şekil 2.5 : Örnek sistemin yazılımla çözülen sonuçları ................................................... 18

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    4/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 4 -

    …. Final Çalışması.…

    1 GİRİŞ VE YÖNTEM

    1.1 GİRİŞ

    Kafes sistemlerin matris-deplasman yöntemiyle analizini konu edinen bu çalışma kapsamında

    Java platformunda çalışan bir yazılım hazırlanmıştır. Çalışmada öncelikle programın genel

    yapısı ve kodları sunulmuş sonrasında ise örnek bir sistemin çözümü verilmiştir.

    1.2 YAZILIM

    Yazılımın main metodu aşağıda sunulmuştur. Yazılım 8 farklı metod ile çalışmaktadır. Bunlar

    nokta bilgilerini data dosyasından alan “nodeData” metodu, frame bilgilerini data dosyasından

    alan “frameData” metodu, global rijitlik matrisini kuran “kg” metodu, kuvvet vektörünü kuran

    “forceVector ”   metodu, mesnet koşullarını global matrise işleyen “restraint”   metodu,

    deplasmanları hesaplayan “displacements” metodu, çubuk kuvvetlerini hesaplayan

    “frameforces” metodu ve reaksiyonları hesaplayan “reactions” metodu.

    static node node[] = new node[100];static frame frame[] = new frame[100];static double   kg [][];static double   kgunrest[][];static double   f [][];static int   r [][];static int   nn;static double   disp[][];

     public static void  main(String[] args) throws IOException {

    // Call nodeData function to get node informationnodeData();// Call nodeData function to get frame informationframeData();// Call kg function to build global stiffness matrixkg ();// Call restraint function to build force vectorforceVector ();// Call restraint function to modify kg for restraintsrestraint();// Call displacement function for calculation of displacementsdisplacements();// Call frameforces function for calculation of frame forces

    frameforces();// Call reactions function for calculation of frame forcesreactions();}

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    5/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 5 -

    …. Final Çalışması.…

    1.2.1 Sınıflar

    Programda MSA01 ana sınıfının yanında node ve frame isimli iki farklı sınıf bulunmaktadır.

    public class node {

    int nodeNo, nodeResX, nodeResY;double nodeX, nodeY, nodeFx, nodeFy;

    }

    public class frame {

    int frameNo, frameNodei, frameNodej;double frameiX, frameiY, framejX, framejY;

    double frameE, frameA, frameL;double frameSM[][] = new double[4][4];

    }

    1.2.2 NodeData Metodu

    Bu metod veri dosyasından düğüm noktası bilgilerini okur.

     public static void  nodeData() throws IOException {

    // This method opens text file and parses element dataint i=0;

    File file = new File("C:/java/nodes.txt");

    FileReader fileReader = new FileReader(file);String line;

    BufferedReader br = new BufferedReader(fileReader);

     while ((line = br.readLine()) != null) {

    node[i] = new node();

    String[] values = line.split("\\t");

    node[i].nodeNo = Integer. parseInt(values[0]);node[i].nodeX = Double. parseDouble(values[1]);node[i].nodeY = Double. parseDouble(values[2]);node[i].nodeResX = Integer. parseInt(values[3]);node[i].nodeResY = Integer. parseInt(values[4]);node[i].nodeFx = Integer. parseInt(values[5]);node[i].nodeFy = Integer. parseInt(values[6]);

    i=i+1;

    }

    // number of nodesnn = i;

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    6/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 6 -

    …. Final Çalışması.…

    br.close();

    }

    Düğüm noktası bilgileri “C:\java” klasöründe bulunan “nodes.txt” dosyasından okunmaktadır.

    Dosyanın data yapısı aşağıdaki şekilde olmalıdır. Veriler aynı satırda ve tab karakteriyle

    ayrılmış olmalıdır.

     Node numarası

    X Koordinatı

    Y Koordinatı

    X Yönünde Mesnetlenme Y Yönünde Mesnetlenme

    X Yönünde Kuvvet

    Y Yönünde Kuvvet

    1.2.3 FrameData Metodu

    Bu metod veri dosyasından çubuk  bilgilerini okur.

     public static void  frameData() throws IOException {// This method opens text file and parses element dataint i=0;double c, s;

    File file = new File("C:/java/frames.txt");FileReader fileReader = new FileReader(file);String line;BufferedReader br = new BufferedReader(fileReader);

     while ((line = br.readLine()) != null) {

    //Get frame dataframe[i] = new frame();

    String[] values = line.split("\\t");

    frame[i].frameNo = Integer. parseInt(values[0]);frame[i].frameNodei = Integer. parseInt(values[1]);frame[i].frameNodej = Integer. parseInt(values[2]);

    frame[i].frameE = Double. parseDouble(values[3]);frame[i].frameA = Double. parseDouble(values[4]);

    // Get frame coordinates

    frame[i].frameiX = node[frame[i].frameNodei].nodeX;frame[i].frameiY = node[frame[i].frameNodei].nodeY;

    frame[i].framejX = node[frame[i].frameNodej].nodeX;

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    7/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 7 -

    …. Final Çalışması.…

    frame[i].framejY = node[frame[i].frameNodej].nodeY;

    // Calculate frame lengthframe[i].frameL = Math.sqrt(Math. pow ((frame[i].framejX-frame[i].frameiX),2) + Math. pow ((frame[i].framejY-frame[i].frameiY),2));

    // Calculate cos and sinc = (frame[i].framejX-frame[i].frameiX)/frame[i].frameL;s = (frame[i].framejY-frame[i].frameiY)/frame[i].frameL;

    frame[i].frameSM[0][0] =c*c*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[0][1] =c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[0][2] = -1*c*c*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[0][3] = -1*c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;

    frame[i].frameSM[1][0] =c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[1][1] =s*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[1][2] = -1*c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[1][3] = -1*s*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;

    frame[i].frameSM[2][0] = -1*c*c*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[2][1] = -

    1*c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[2][2] =c*c*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[2][3] =c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;

    frame[i].frameSM[3][0] = -1*c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[3][1] = -1*s*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[3][2] =c*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;frame[i].frameSM[3][3] =

    s*s*frame[i].frameE*frame[i].frameA/frame[i].frameL;

    i=i+1;}

    br.close();

    }

    Çubuk bilgileri “C:\java” klasöründe bulunan “frames.txt” dosyasından okunmaktadır.

    Dosyanın data yapısı aşağıdaki şekilde olmalıdır. Veriler aynı satırda ve tab karakteriyle

    ayrılmış olmalıdır.

    Çubuk numarası

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    8/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 8 -

    …. Final Çalışması.…

      i Nokta Numarası

      j Nokta Numarası

    Çubuk elastisite modülü

    Çubuk alanı

    1.2.4 Kg Metodu

    Bu metod global rijitlik matrisini kurar.

     public static void  kg() throws IOException {

    // This method builds global stiffness matrixMSA01.kg  = new double[2*nn][2*nn];MSA01.kgunrest = new double[2*nn][2*nn];

    int i = 0, j = 0, t=0;int iNode = 0, jNode = 0;

     while (i < nn-1) {

    //Get frame node numbersiNode = frame[i].frameNodei;jNode = frame[i].frameNodej;

    int DOFs[] = {2*iNode, 2*iNode+1, 2*jNode, 2*jNode+1};

    for(j=0; j

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    9/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 9 -

    …. Final Çalışması.…

    1.2.6 Restraint Metodu

    Bu metod nokta mesnetlerinin rijitlik matrisine etkisini ayarlar.

     public static void  restraint() throws IOException {

    MSA01.r = new int[2*nn][1];

    for(int i=0; i

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    10/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 10 -

    …. Final Çalışması.…

    File file = new File("C:/java/results.txt");if (!file.exists()) {file.createNewFile();}

    FileWriter fileWriter = new FileWriter(file, true);BufferedWriter bWriter = new BufferedWriter(fileWriter);

    MSA01.disp = new double[mA][nB];

    bWriter.write("Displacements");bWriter.write(System.lineSeparator ());

    if (nA != mB) throw new RuntimeException("Illegal matrixdimensions.");

    for (int i = 0; i < mA; i++){for (int j = 0; j < nB; j++){

    for (int k = 0; k < nA; k++){disp[i][j] += f [i][k] * kg_inv[k][j];

    }

    bWriter.write(String.valueOf (disp[0][j]));bWriter.write(System.lineSeparator ());

    }}

    bWriter.close();}

    1.2.8 FrameForces Metodu

    Bu metod çubuk kuvvetlerini hesaplar .

     public static void  frameforces() throws IOException {

    int i = 0;int iNode = 0, jNode = 0;double c=0, s=0, E = 0, A = 0, L = 0;double dix = 0, diy=0, djx=0, djy=0;double F = 0;

    File file = new File("C:/java/results.txt");if (!file.exists()) {file.createNewFile();}

    FileWriter fileWriter = new FileWriter(file, true);BufferedWriter bWriter = new BufferedWriter(fileWriter);

    bWriter.write(System.lineSeparator ());bWriter.write("Frame Forces");bWriter.write(System.lineSeparator ());

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    11/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 11 -

    …. Final Çalışması.…

     while (i < nn-1) {

    //Get frame node numbersiNode = frame[i].frameNodei;

    jNode = frame[i].frameNodej;

    E = frame[i].frameE;A = frame[i].frameA;L = frame[i].frameL;

    // Calculate cos and sinc = (frame[i].framejX-frame[i].frameiX)/frame[i].frameL;s = (frame[i].framejY-frame[i].frameiY)/frame[i].frameL;

    dix = MSA01.disp[0][2*iNode];diy = MSA01.disp[0][2*iNode+1];djx = MSA01.disp[0][2*jNode];

    djy = MSA01.disp[0][2*jNode+1];

    F = (E*A/L)*(c*(djx-dix) + s*(djy-diy));bWriter.write("Frame" + String.valueOf (i) +": " +

    String.valueOf (F));bWriter.write(System.lineSeparator ());

    i++;}

    bWriter.close();

    }

    1.2.9 Reactions Metodu

    Bu nokta reaksiyonlarını hesaplar.

     public static void  reactions() throws IOException {

    int mA = disp.length;int nA = disp[0].length;int mB = kgunrest.length;int nB = kgunrest[0].length;

    File file = new File("C:/java/results.txt");if (!file.exists()) {file.createNewFile();}

    FileWriter fileWriter = new FileWriter(file, true);BufferedWriter bWriter = new BufferedWriter(fileWriter);

    bWriter.write(System.lineSeparator ());bWriter.write("Reactions");bWriter.write(System.lineSeparator ());

    if (nA != mB) throw new RuntimeException("Illegal matrixdimensions.");

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    12/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 12 -

    …. Final Çalışması.…

    for (int i = 0; i < mA; i++){for (int j = 0; j < nB; j++){

    for (int k = 0; k < nA; k++){

    f [i][j] += disp[i][k] * kgunrest[k][j];}

    bWriter.write(String.valueOf (f [0][j]));bWriter.write(System.lineSeparator ());

    }}

    bWriter.close();}

    1.2.10 Invert Metodu

    Bu metod bir matrisin tersini almaya yarar. Bu metod tarafımızca yazılmış olmayıp internet

    kaynaklıdır.

    public static double[][] invert(double a[][])

    {int n = a.length;

    double x[][] = new double[n][n];

    double b[][] = new double[n][n];

    int index[] = new int[n];

    for (int i=0; i

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    13/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 13 -

    …. Final Çalışması.…

    // Perform backward substitutions

    for (int i=0; i=0; --j)

    {x[j][i] = b[index[j]][i];

    for (int k=j+1; k

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    14/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 14 -

    …. Final Çalışması.…

    }

    c[i] = c1;

    }

    // Search the pivoting element from each column

    int k = 0;

    for (int j=0; j

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    15/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 15 -

    …. Final Çalışması.…

    // Modify other elements accordingly

    for (int l=j+1; l

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    16/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 16 -

    …. Final Çalışması.…

    2 ÖRNEK SİSTEM

    2.1 SİSTEMİN TANIMI

    Sistem geometrisi ve yükleme aşağıda verildiği gibidir . Çubuk elastisite modülü 200 kN/mm2,

    çubuk alanı ise 100 mm2’dir.

    Şekil 2.1 : Örnek sistem geometrisi ve yüklemesi

    2.2 VERİ DOSYALARI

    Sistem düğüm noktası data dosyası aşağıdaki şekildedir:

    Şekil 2.2 : Örnek sistem düğüm noktası data dosyası

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    17/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 17 -

    …. Final Çalışması.…

    Sistem çubuk data dosyası aşağıdaki şekildedir:

    Şekil 2.3 : Örnek sistem çubuk data dosyası

    2.3 SONUÇLAR 

    Şekil 2.4 : Sistemin çözülmüş hali

    Buna göre sistem tepe noktasında – y yönünde 100 mm deplasman yapmıştır. Sistem simetrik

    olduğundan çubuk kuvveti 50√ 2   kN (70kN), mesnet reaksiyonları da her iki yönde 50

    kN’dur.

    Yazılımdan elde edilen sonuçlar aşağıdaki şekildedir:

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    18/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 18 -

    …. Final Çalışması.…

    Şekil 2.5 : Örnek sistemin yazılımla çözülen sonuçları

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    19/20

    İnşaat Mühendisliğinde Java ProgramlamaFinal Çalışması   02.06.2016

    - 19 -

    …. Final Çalışması.…

    3 DEĞERLENDİRME VE SONUÇ

    Bu çalışma kapsamında matris-deplasman yöntemiyle kafes sistem çözümü yapan bir Java

     programı hazırlanmış ve örnek bir sistem programla çözülmüştür. Programın örnek

    çözümdeki sonuçlarla aynı değeri verdiği görülmüştür.

  • 8/15/2019 Java İle Kafes Sistem Çözümü

    20/20

    - 20 -

    …. Final Çalışması.…

    KAYNAKLAR 

    Structural Analysis IV, Dr. C Caprani Lecture Notes,

    http://www.colincaprani.com/files/notes/SAIV/4%20-20Matrix%20Stiffness%20Method.pdf 

    http://www.colincaprani.com/files/notes/SAIV/4%20-20Matrix%20Stiffness%20Method.pdf