Desain Injeksi Mold untuk Plastik

Pembuatan cetakan plastik selain harus mampu mengintegrasikan mulai dari konsep aliran fluida saat proses injeksi sampai dengan proses manufacture dilaksanakan, CAD berperan besar dalam menuangkan imaginasi menjadi visualisasi yang mudah dipahami dan dilakukan pengecekan sebelum proses CAM dan manufacture dijalankan. melalui satu-teknik.blogspot.com, saya menerima jasa desain, analisa aliran, hingga pembuatan injeksi mold dengan harga jauh lebih murah daripada pabrikan.

CFD Application : Air Flow and Temperature Distribution

Gambar ini memperlihatkan suhu sebuah ruangan data center, atau ruang server komputer pada sebuah perusahaan, perbedaan panas jelas terlihat, melalui CFD desain ruangan dapat menentukan letak exhaust, input fan yang tepat, sekaligus dapat memperkirakan besar aliran udara yang terjadi, sehingga ukuran fan pun bisa sesuai dengan kapasitas yang diperlukan.

CAE on Polymer Technology

Metode numerik khusus untuk aliran polymer telah dikembangkan, meliputi proses solidifikasi, proses perpindahan panas antar material, hingga perpindahan panas antara mesin injeksi dan lingkungan sekitar. metode tersebut sangat membantu desainer mold untuk merancang cetakan, memperkirakan arah aliran, menjaga balancing runner, balancing aliran, hingga meminimalisir defect yang akan terjadi.

Integrated CAD-CFD

Untuk mempermudah proses pre processor, saat ini sudah banyak software yang mengabungkan fitur CAD dan CFD menjadi satu bagian, misalnya Unigraphics dengan Fluent dan Nastran.

CFD Application : wind turbine blade

Aplikasi CFD paling bermanfaat terhadap aliran panas, perpindahan panas dan aliran fluida, seperti udara, turbing angin, desain sayap pesawat, kapal laut sangat banyak menggunakan CFD untuk mempercepat proses analisa.

Showing posts with label Gauss Jordan. Show all posts
Showing posts with label Gauss Jordan. Show all posts

Friday, 30 March 2012

Contoh Hasil Persamaan Simultan Gaus jordan, contoh 4.1 buku CFD

sesuai dengan contoh di buku CFD, saya mencoba menjalankan program yang sudah dibuat pada posting sebelumnya, langkah-langkah untuk menjalankan program tersebut adalah
1. masukkan nilai matrix nxn dan hasilnya pada kolom y, program ini mampu menghitung maksimal 250 persamaan.
2. masuk design mode geser letak button "mulai menghitung" agar tidak menganggu, keluar dari design mode, lalu klik button tersebut
3. setelah disusun seperti diatas, dan tombol mulai menghitung di klik akan muncul form seperti berikut

4. masukkan nilai matrix X terlebih dahulu, tinggal select range, seperti gambar dibawah berikut, hati-hati jangan sampai huruf X1,X2 dst ikut terselect

5. lanjutkan memilih untuk matrix hasil (Y)

6. lalu klik hitung, nilainya akan langsung muncul bersama dengan inversenya pada tab sheet baru dibawah bernama Hasil X! (lihat gambar dibawah ini)
7. hasilnya? alhamdulillah sama persis dengan di buku
file belum saya upload ke box tempat biasa saya sharing hasilnya, sesegera mungkin dech,
keep on touch


Penyelesaian persamaan simultan : alogaritma dan pemrograman visual basic (VBA) dan excel

persamaan simultan yang terdiri dari n persamaan dengan jumlah n yang tidak diketahui dapat diselesaikan dengan metode gaus jordan, untuk mempermudah digunakan prinsip matrik
Design form
seperti konsep sebelumnya untuk menampilkan form ini saya masukkan command button ke dalam excel langsung, seperti dibawah berikut, caranya aktifkan tabs developer lalu klik design mode, lalu insert command button, hasilnya seperti dibawah berikut

pada button tersebut masukkan perintah seperti berikut

Private Sub btn_Run_Gauss_Jordan_Click()
    frm_M_GaussJordan.Show
End Sub


perintah tersebut akan menampilkan form gausjordan (tergantung anda menamainya seperti apa)
Pembuatan Program
1. pemakaian input
untuk memakai input saya memakai reference edit box, atau namanya refedit, tool ini hanya ada di VBA, penggunaanya adalah untuk menselect range(cell, cell) pada visual basic, untuk menghitung matrik, metode ini sangat efisien
cara memakainya tinggal masukkan ke form, dari toolbox, pilih refedit (pojok kiri bawah pada gambar diatas) hasilnya seperti pada box setelah masukkan matrix x...
2. membuat module program
membuat modul fungsi yang bisa dipanggil sudah saya jelaskan di beberapa posting sebelumnya, tentang bisection dan newton rapshon,
isi dari module tersebut kira-kira seperti ini, kata garis miring adalah keteranganya, biar mudah dipahami sesuai dengan permintaan sohib-sohib sekelas


Function Gauss_Jordan(A As Variant) As Variant
Dim i As Long, j As Long, k As Long, Atemp
Dim cols As Long, rows As Long, MaxVal As Double
Dim Max_Ind As Double, temp As Double, hold()


    'bila fungsi mulai dipanggil, jumlah kolom dan baris akan dihitung untuk menentukan jumlah n, dan apakah matrix yang ada dapat dihitung, object(A) maksudnya adalah matrix untuk X, = trus artinya bila ada nilainya
   
  If IsObject(A) = True Then
        cols = A.Columns.Count
        rows = A.rows.Count
    Else
        cols = UBound(A, 2)
        rows = UBound(A, 1)
    End If
    
    'menambahkan kolom untuk meletakkan hasil perhitungan,  Atemp merupakan matrix temporary sebelum digunakan nantinya dalam perhitungan.


    cols = cols + cols
    ReDim hold(1 To rows, 1 To cols), Atemp(1 To rows, 1 To cols)
    
    'menambahkan matrix x dan matrix y menjadi augmented matrix, aug matrix adalah matrix gabungan antara x dan y


    For i = 1 To rows
        For j = 1 To rows
            Atemp(i, j) = A(i, j)
            Atemp(i, j + rows) = 0#
        Next j
        Atemp(i, i + rows) = 1#
    Next i
    
    For i = 1 To rows
    
        MaxVal = Atemp(i, i)
        Max_Ind = i
       
 ' prosedure pendek menghitung nilai maximum, hal ini berguna untuk menentukan apakah matirx tersebut ada penyelesaianya atau tidak, akan muncul msg box error bila matrix ternyata singular


        For j = i + 1 To rows
            If Abs(Atemp(j, i)) > Abs(MaxVal) Then
                MaxVal = Atemp(j, i)
                Max_Ind = j
            End If
        Next j
        
        If MaxVal = 0 Then
            MsgBox Prompt:="Matrix adalah singular!", Title:="Error"
            Exit Function
        End If
        
        'prosedure perhitungan pivoting pada matrix


        For j = i To cols
            temp = Atemp(i, j)
                    Atemp(i, j) = Atemp(Max_Ind, j) / MaxVal
                      If Max_Ind <> i Then Atemp(Max_Ind, j) = temp
        Next j
        
        
        For k = 1 To rows
            If k <> i Then            
              
                For j = 1 To cols
                    hold(k, j) = -Atemp(k, i) * Atemp(i, j)
                Next j
             
                For j = 1 To cols
                   Atemp(k, j) = Atemp(k, j) + hold(k, j)
                Next j
            End If
        Next k
    Next i
    Gauss_Jordan = Atemp
End Function


------------------------------------------------------------------------
wahh.. panjang dan ribet? betul sekali, kok bisa bikin program seperti itu? nanti saya tunjukin rahasianya, sekarang kita teruskan membuat programnya

3. program pada button Hitung
double klik tombol hitung lalu masukkan perintah seperti berikut


Private Sub OK_Btn_Click()


Dim i As Double, j As Double, Data As Variant, n As Double
Dim A As Variant, MaxCol As Double, temp As Double, b()
Dim wks, cntsheets, newsheet As Worksheet, FinalCol As Double
Dim x(), Aplus(), Ainv()

' untuk menjaga agar inputan tidak salah, gunakan coding berikut ini, bila input matrix salah, atau ada huruf yang dimasukkan ke dalam cell, maka akan muncul peringatan kalau input matrix salah


If IP_A.Value = Empty Then
        Me.Hide
        MsgBox Prompt:="Pilih Cell untuk memasukkan angka." & vbCr & _
                       "Jangan tulis dengan variablenya.", _
                       Buttons:=48, Title:="Matrix input salah!"
        Me.Show
        Exit Sub
    End If

' matrix A adalah matrix input pada x


A = Application.RANGE(IP_A.Value)
 n = UBound(A, 1)

' pengecekan matrix untuk Y atau B pada program berikut


If IP_b.Value <> Empty Then
        b = Application.RANGE(IP_b.Value)
        If UBound(A, 1) <> UBound(b, 1) Then
            Me.Hide
            MsgBox Prompt:="baris di A harus sama dengan baris di b.", _
                   Buttons:=544, Title:="Error!"

     Err.Description = "Jumlah Baris Matrix tidak sama."
            GoTo EndProc
        End If
    End If

' terakhir menghitung inverse yang dilanjutkan untuk menghitung adjoint matrix, sehingga didapatkan nilai x1-xn

Aplus = Gauss_Jordan(A)
        If IsError(Aplus) Then GoTo EndProc
        ReDim Ainv(1 To n, 1 To n)
    For i = 1 To n
        For j = 1 To n
            Ainv(i, j) = Aplus(i, j + n)
        Next j
    Next i

If IP_b.Value <> Empty Then
        x = Application.MMult(Ainv, b)
    End If

' hasilnya diletakkan pada sheet baru


   cntsheets = Application.Sheets.Count - Application.Charts.Count
        Set newsheet = Application.Worksheets.add(after:=Worksheets(cntsheets))
        newsheet.name = "Hasil X!"
        FinalCol = 0


With Application
          .Cells(1, FinalCol + 1) = "Inverse Matrix "
        For j = 1 To n
           For i = 1 To n
               .Cells(i + 1, FinalCol + j).Value = Ainv(i, j)
           Next i
        Next j
        If IP_b.Value <> Empty Then
            FinalCol = FinalCol + n
            Cells(1, FinalCol + 1) = "SOLUSI"
            For i = 1 To n
                .Cells(i + 1, FinalCol + 1).Value = x(i, 1)
            Next i
        End If
    End With
    
    Application.Calculation = xlCalculationAutomatic


Unload Me
Exit Sub

-----------------
 program ini diambil dari beberapa sumber, ada tiga buku yang dipakai, satu buku berhasil saya download sedangkan dua buku lainya masih nongkrong di google book, silahkan check di refferensi bawah.

karena posting ini panjang, maka hasil programnya saya pisah, silahkan check dibawah ini, untuk mengetahui hasilnya, hasilnya dapat dilihat disini

Referensi Wajib

1.   Excel scientific and engineering cookbook  By David M. Bourg
2.   Numerical Methods with VBA Programming  By James Hiestand
3.   Excel for Scientists and Engineers: Numerical Methods   E. Joseph Billo 


Wednesday, 28 March 2012

Eliminasi gaus Jordan, alogaritma dan pemograman menggunakan VBA

Eliminasi Gaus Jordan sangat bermanfaat untuk proses perhitungan persamaan suku banyak, namun linier, proses perhitungan eliminasi gaus adalah dengan mengeliminasi baris per barisnya sehingga didapatkan matrix berbentuk segitiga, bila proses segitiga selesai, perhitungan variabel bisa dijalankan dengan back subtitusi.

Alogaritma
misalnya diketahui 3 buah persamaan
a11x1+ a12x2 + a13x3 = a14
a21x1+ a22x2 + a23x3 = a24
a31x1+ a32x2 + a33x3 = a34

untuk proses eliminasi x1 dari ketiga persamaan diatas :
1. for i =1 to 3 dan j=1 to 4 read aij
2. end for
3. for i = 2 to 3 in step of 1 hitung
4. u1 = ai1/a11
5. for j = 1 to 4 in steps of 1 do
6. aij = aij-ua1j
7. end for
8. end for

untuk eliminasi x2 dari persamaan ketiga
9. i = 3
10. u = a12/a22
11. for j = 2 to 4 in step of 1 do
12 aij = aij - ua2j
13. end for
14. end for

dari alogarima diatas akan didapatkan matrik segitiga, setelah didapatkan matrik segitia tinggal dilakuakn subtitusi balik, sehingga nilai x1,x2,x3 didapatkan.

Konsep Pemograman
form yang saya pakai saya desain seperti berikut
untuk memulai memasukkan program, double klik tombol hitung, code program yang saya tulis berikut, saya gunakan konsep yang sederhana dan hanya bisa digunakan untuk tiga persamaan dengan tiga konstanta yang tidak diketahui


Private Sub CommandButton1_Click()
Dim a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, hx1, hx2, hx3 As Double
Dim u1, u2, u3 As Double
Dim e21, e22, e23, e24, e31, e32, e33, e34, e342, e332 As Double


a11 = ta11.Text
a12 = ta12.Text
a13 = ta13.Text
a14 = ta14.Text
a21 = ta21.Text
a22 = ta22.Text
a23 = ta23.Text
a24 = ta24.Text
a31 = ta31.Text
a32 = ta32.Text
a33 = ta33.Text
a34 = ta34.Text
' menghitung u
u1 = a21 / a11
u2 = a31 / a11
u3 = a32 / a22
'eliminasi baris 2 dan 3
e21 = a21 - (u1 * a11)
e22 = a22 - (u1 * a12)
e23 = a23 - (u1 * a13)
e24 = a24 - (u1 * a14)
e31 = a31 - (u2 * a11)
e32 = a32 - (u2 * a12)
e33 = a33 - (u2 * a13)
e34 = a34 - (u2 * a14)
' eliminasi baris 2 dan 3, sekaligus menghitung hasil x3, x2, dan x1
e342 = e34 - (u3 * e24)
e332 = e33 - (u3 * e23)
'subtitusi balik
hx3 = e34 / e33
hx2 = ((e24 - (e23 * hx3)) / e22)
hx1 = Val((a14 - (a12 * hx2) - (a13 * hx3)) / a11)
' menulis hasil
thx1.Text = hx1
thx2.Text = hx2
thx3.Text = hx3
End Sub


untuk clear text, silahkan masukkan program seperti berikut,

Private Sub CommandButton2_Click()
ta11.Text = ""
ta12.Text = ""
ta13.Text = ""
ta14.Text = ""
ta21.Text = ""
ta22.Text = ""
ta23.Text = ""
ta24.Text = ""
ta31.Text = ""
ta32.Text = ""
ta33.Text = ""
ta34.Text = ""
thx1.Text = ""
thx2.Text = ""
thx3.Text = ""
End Sub

untuk memudahkan loading form tersebut saya juga memasukkan tombol ke spreadsheet excel, lalu memberikan perintah menampilkan form tersebut seperti dibawah ini
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

ketika program dijalankan, hasilnya kurang lebih seperti ini
programnya dapat didownload pada embed object berikut, untuk mendownload pastikan browser anda sudah terinstal flash player, butuh waktu untuk melihat tampilan dari box.net
semoga bermanfaat