Tugas I Pengaturan II

Pengenalan Pengaturan II, 3.12.2012, Lab of Hardware

Berikut ini tugas kelompok yang harus dikerjakan hari ini. Tugasnya adalah merancang model di simulink, dan cari nilai P,I, dan D pada kontroler PID agar dipenuhi syarat:

  • Error < 0.05
  • % Overshoot < 10%
  • Settling Time < 5 detik

Kelompok I

Kelompok II

Kelompok III

Kelompok IV

Kirim ke: rahmadya.trias@gmail.com dengan melampirkan file .mdl dan capture SCOPE.

Menghitung Determinan Matrix 2×2 dengan C/C++

Setelah bisa menginput Matriks, menjumlah, dan mengalikan Matriks, berikutnya kita masuk ke teori-teori yang ada dalam Matriks lebih dalam lagi. Salah satunya adalah Determinan dan Invers. Determinan penting karena merupakan komponen dari inversi suatu matriks. Invers sangat dibutuhkan dalam penyelesaina persamaan simultan yang sering dijumpai dalam teknik. Diketahui suatu matriks:

Sedangkan invers didapat dari rumus:

Bagian ad-bc pada persamaan di atas dikenal dengan nama determinan. Buka Borland/Turbo C++ untuk membuat script perhitungan determinan suatu matriks. Masukan listing berikut (ketik ulang tanda ” karena tidak dikenali jika di copas). Matriks yg akan dicari determinannya adalah a,b,c dan d berturut-turut 1,2,3, dan 4.

  • #include <iostream.h>
  • #include <conio.h>
  • void main(){
  • int i,j,det,A[2][2]={1,2,3,4};
  • cout<<“Matriks A =”<<“\n”;
  • for(i=0;i<2;i++){
    • for(j=0;j<2;j++){
      • cout<<A[i][j]<<” “;
      • }
    • cout<<“\n”;
  • }
  • det=A[0][0]*A[1][1]-A[0][1]*A[1][0];
  • cout<<“Determinan = “<<det;
  • }

Hasilnya adalah sebagai berikut:

Membuat Drop Down List

Pertemuan kali ini membahas tentang Excel. Excel merupakan produk Microsoft yang fungsinya memanipulasi data, table, dan sejensinya. Misalnya data Kartu Rencana Studi (KRS) mahasiswa yang berisi nilai, max sks yang diambil dan data dosen wali.

Data nilai, ipk, max sks berasal dari sheet lain yang khusus berisi data mahasiswa. Kunci dari data tersebut adalah NPM mahasiswa yang dibuat dengan teknik Drop Down List. Lihat di help yang tersedia di Excel untuk tata cara penggunaannya. Berikut ini cara pembuatannya.

Pertama-tama buat data yang akan dijadikan drop down list. Beri nama variable tertentu, misalnya NPM.

Klik Data – Data Validation pada excel Anda. Pilih Setting kemudian pilih list. Arahkan ke data NPM saat diminta mencari list-nya.

Sorot seluruh kolom yang akan dijadikan Drop Down List, pastikan muncul =NPM. Atau ketik saja =NPM. Cek dengan mengklik cell yang dijadikan Drop Down List, hingga ditampilkan isi dari kolom list tersebut.

 

Metode Elemen Hingga pada Thrust Element dengan Matlab

Metode Elemen Hingga, 26.11.2012, T. Mesin – S1

Materi UTS yang lalu sampai kekakuan pegas dan kali ini kita mulai masuk ke bidang struktur, khususnya thrust element. Batang ini hanya menerima tegangan tarik dan tekan saja, tidak ada gaya geser dan bending. Banyak dimanfaatkan sebagai penyangga pada jembatan (berupa tali atau kolom). Di bawah ini contoh kasus yang akan kita selesaikan dengan metode elemen hingga.

Elemen 1 dan 2 memiliki luas penampang dan modulus elastisitas yang sama berturut-turut 30.000.000 psi dan 1 in2 sementara elemen 3 E sebesar 15.000.000 psi dan A3 = 2 in2. Berapakah: a) Matriks kekakuan K (General Stiffness Matrix) b) Pergeseran titik 2 dan 3? Dan c) Gaya reaksi di titik 1 dan 4.

Dari matriks-matriks kekakuan k di atas dirakit menjadi K:

Dan karena tidak ada pergeseran di titik 1 dan 4 maka diperoleh persamaan berikut ini:

Buka Matlab Anda, masukkan k (untuk elemen 2) dan d (defleksi titik 2 dan 3). Pada command window masukan instruksi:

Diperoleh pergeseran di titik 2 sebesar 0.002 in dan titik 3 0.001 in. Untuk memperoleh gaya di titik 4 gunakan persamaan umumnya. Masukan K dan D yang menyatakan berturut-turut matriks kekakuan umum dan pergeseran titik-titiknya.

Diperoleh gaya reaksi di titik 1 sebesar 2000 lb ke arah kiri dan di titik 4 sebesar 1000 lb ke kiri. Jangan lupa mengalikan dengan 1000000 pada matriks kekakuannya (biasanya mahasiswa lupa).

Merancang PID sistem Diskrit

Proporsional Integrator dan Diferensiator (PID) merupakan kontroler yang fungsinya memperbaiki kinerja sistem kendali. Baik buruknya sistem kendali, tergantung dari spesifikasi yang dituntut oleh sistem tersebut. Sistem yang cepat, belum tentu baik jika melebihi batas kesalahan yang ada. Sebagai contoh berikut ini sistem dengan fungsi alih digital, h=0.09516/(z-0.9048) memiliki error 0.5. Gunakan PID untuk memperbaiki kinerja sistem dengan syarat: 1) error < 0.1, 2)persentase overshott < 10%, dan respon time < 5 detik. Gunakan simulink MATLAB:

Atur nilai P, I, D dan konstanta waktu D agar diperoleh hasil spesifikasi di atas. Jika diambil besar P, I, D, t berturut-turut 1.5, 3, 1.2 dan 2, diperoleh hasil sebagi berikut:

Karena overshootnya 20 %, maka sistem tidak memenuhi syarat. Misal kita setting kembali P,I,D dan t berturut-turut 1, 2.5, 3, dan 2 diperoleh hasil sebagai berikut:

Sistem memiliki respon sekitar 7 detik, dan karena permintaan harus di bawah 5 detik, walaupun error dan % overshoot memenuhi syarat, tetap tidak bisa diaplikasikan. Berikutnya coba dengan P, I, D dan t berturut-turut

Sistem memiliki respon 5 detik (sesuai syarat) dan overshoot (1.1-1)*100 = 10 % sehingga sedikit memenuhi syarat. Coba ramu lagi PID agar diperoleh hasil optimal.

Jawaban Soal Aljabar Linear

Sehubungan ada masalah dengan ruangan praktikum hari ini (perbaikan) maka pertemuan kali ini hanya mereview hasil UTS yang lalu. Hasilnya kebanyakan salah di program dengan bahasa C++, sedangkan untuk yang berbahasa Matlab kebanyakan benar (walaupun ada jawaban yang saya sendiri bingung, waktu mengerjakan mikir apa sih?).

Berikut hasil jawabannya, contoh untuk kasus dengan NPM terakhir bernomor 1. Untuk Matlab kita mengalikan Matriks A dan B dengan memasukan matriks A=[1 3;2 4;5 6;7 8], B=[1 2 3;4 5 8], dilanjutkan dengan instruksi C=A*B. Sedangkan untuk bahasa C++ dapat dilihat koding berikut ini (ganti X dengan C ya supaya sesuai dengan soal):

  1. #include<stdio.h>
  2. #include<iostream.h>
  3. void main()
  4. {
  5. int A[4][2]={1,3,2,4,5,6,7,8};
  6. int B[2][3]={1,2,3,4,5,8};
  7. int i,j;
  8. int a,b,c,X[4][3];
  9. cout<<“Matriks A = “<<“\n”;
  10. for(i=0;i<4;i++)
  11. {
    1. for(j=0;j<2;j++)
    2. {
      1. cout<<A[i][j]<<” “;
    3. }
    4. cout<<“\n”;
  12. }
  13. cout<<“Matriks B = “<<“\n”;
  14. for(i=0;i<2;i++)
  15. {
    1. for(j=0;j<3;j++)
    2. {
      1. cout<<B[i][j]<<” “;
    3. }
    4. cout<<“\n”;
  16. }
  17. for(a=0;a<4;a++)
  18. {
    1. for(b=0;b<3;b++)
    2. {
      1. X[a][b]=0;
      2. for(c=0;c<2;c++)
      3. {
        1. X[a][b]=X[a][b]+A[a][c]*B[c][b];
      4. }
    3. }
  19. }
  20. cout<<“Hasil Kali = \n”;
  21. for(a=0;a<4;a++)
  22. {
    1. for(b=0;b<3;b++)
    2. {
      1. cout<<X[a][b]<<” “;
    3. }
    4. cout<<” \n”;
  23. }
  24. }

Berikut tampilan keluarannya:

UTS P. PENGATURAN II

 

PENG. PENGATURAN, 13.11.2012, T. KOMPUTER D3

 

  1. Suatu sistem kontrol mempunyai fungsi alih :

    Buat instruksinya dalam MATLAB (sampling 0.1 detik dan teknik ‘ZOH’) untuk:

    1. Mengkonversi menjadi sistem diskrit
    2. Membuat grafik untuk masukan tangga (step).

 

  1. Suatu sistem memiliki fungsi alih
    1. Konversi nilainya menjadi sistem kontinyu
    2. Buat grafik dengan masukan step untuk menguji sistem tersebut

NOTE: NPM berarti harga terakhir NPM Saudara, jika 0 ambil harga 10. Sedangkan NPM2 adalah angka sebelum angka terakhir NPM Saudara, Jika 0 ganti 10.

PENGUMUMAN

Komputer I, 08-11-2012, T. Elektro D3

UTS akan dilaksanakan minggu depan dengan soal:

  1. Membuat Blog Pribadi (akan di cek saat pelaksanaan UTS)
  2. Membuat Daftar Isi otomatis (otomatic table of contents)

Note: Nama blog mirip dengan nama masing2, atau buat / publish, tulisan yang mencirikan bahwa blog itu bukan blog orang lain.

Pohon Keputusan

Mat. Diskrit, 06.11.2012, T.Komputer

Pohon keputusan banyak dimanfaatkan untuk membantu pengambil keputusan dalam menentukan alternatif-alternatif pilihan yang ada. Dalam bidang kesehatan dapat digunakan untuk meprediksi penyakit pasien berdasarkan gejala-gejala yang ada. Buka matlab, buat dua buah matriks (matriks nilai dan matriks jurusan) yang akan dicari pohon keputusannya.

nilai =

 

8 7 6

7 8 7

8 8 9

7 8 6

6 6 8

10 9 9

5 6 7

6 6 7

jurusan =

 

ipa

ips

bhs

ips

bhs

ipa

bhs

bhs

Buat nama variabel dengan instruksi:

varnames = {‘nilai ipa’ ‘nilai ips’ ‘nilai bahasa’};

Berikutnya buat pohon keputusannya:

t1 = classregtree(nilai,jurusan,’splitmin’,5,’names’,varnames);

Setelah dijalankan >> view(t1) akan muncul pohon keputusannya:

Materi Ujian Tengah Semester Metode Elemen Hingga

Metode Elemen Hingga, 05.11.2012, T. Mesin S1

Berikut ini gambaran soal UTS Metode Elemen Hingga Teknik Mesin UNISMA (bae banget ya .. J). Buat programnya dalam bahasa Matlab, jika suhu atas, bawah, kiri dan kanan dimasukan suhu, akan diketahui Matriks suhunya disertai suhu pada titik-titik dalam Mesh itu (T1, T2, T3, T4, T5 dan T6).

Coba buat dengan disertai GUI jika mampu ( .. kyk pergi haji aja J), atau secara text-based juga tidak apa-apa. UTS nanti formasi nomor suhu, besar suhu, kemungkinan berbeda-beda tiap siswa. Lihat tulisan terdahulu untuk mengerjakannya.

Mengalikan Matriks dengan Ukuran Bervariasi

Aljabar Linear, 30.10.2012, T.Komputer

Jika pada pertemuan yang lalu kita mengalikan matriks ukuran 2×3 dengan 3×2, sekarang kita akan mengalikan matriks yang ukurannya tergantung dari pengguna asalkan tidak menyalahi kaidah perkalian (jumlah kolom matriks kiri harus sama dengan jumlah baris matriks kanan). Gunakan listing berikut ini (jika mengkopi – paste, jangan lupa simbol petik ” harus diketik ulang):

  • #include<stdio.h>
  • #include<iostream.h>
    • void main()
    • {
    • int i,j,A[5][5],B[5][5],ia,ja,ib,jb,a,b,c,X[5][5];
    • //menginput matriks A
    • cout<<“Masukkan Jumlah Baris Matriks A : “;
    • cin>>ia;
    • cout<<“Masukkan Jumlah Kolom Matriks A : “;
    • cin>>ja;
    • cout<<“Masukkan Matriks A \n”;
    • for(i=0;i<ia;i++)
    • {
      • for(j=0;j<ja;j++)
      • {
        • cout<<“Masukkan Elemen Matriks ke “<<(i+1)<<“,”<<(j+1)<<” :”;
        • cin>>A[i][j];
      • }
    • }
    • //menginput matriks B
    • cout<<“Masukkan Jumlah Baris Matriks B : “;
    • cin>>ib;
    • cout<<“Masukkan Jumlah Kolom Matriks B : “;
    • cin>>jb;
    • cout<<“Masukkan Matriks A \n”;
    • for(i=0;i<ib;i++)
    • {
      • for(j=0;j<jb;j++)
      • {
        • cout<<“Masukkan Elemen Matriks ke “<<(i+1)<<“,”<<(j+1)<<” :”;
        • cin>>B[i][j];
      • }
    • }
    • //menampilkan matriks A
    • cout<<“Matriks A = \n”;
    • for(i=0;i<ia;i++)
    • {
      • for(j=0;j<ja;j++)
      • {
        • cout<<A[i][j]<<” “;
      • }
      • cout<<“\n”;
    • }
    • //menampilkan matriks B
    • cout<<“Matriks B = \n”;
    • for(i=0;i<ib;i++)
    • {
      • for(j=0;j<jb;j++)
      • {
        • cout<<B[i][j]<<” “;
      • }
      • cout<<“\n”;
    • }
    • //mentraspose matriks A
    • cout<<“Transport matriks A : “<<“\n”;
    • for(j=0;j<ja;j++)
    • {
      • for(i=0;i<ia;i++)
      • {
        • cout<<A[i][j]<<” “;
      • }
      • cout<<“\n”;
    • }
    • //Mengalikan Matriks A dengan B
    • cout<<“Hasil kali Matriks A dengan B :”<<“\n”;
    • cout<<“Ukuran Matriks = “<<ia<<“x”<<jb<<“\n”;
    • for(a=0;a<ia;a++)
    • {    for(b=0;b<jb;b++)
      • {X[a][b]=0;
      • for(c=0;c<ja;c++)
      • {
      • X[a][b]=X[a][b]+A[a][c]*B[c][b];
      • }
      • }
    • }
    • //Menampilkan Matriks X
    • for(a=0;a<ia;a++)
    • {    for(b=0;b<jb;b++)
      • {
      • cout<<X[a][b]<<” “;
      • }
      • cout<<“\n”;
    • }
    • }

Setelah dijalankan akan dihasilkan perkalian matriks dengan ukuran yang ditentukan oleh pengguna program.

Merancang Apliksai Sederhana Perhitungan Kalor dgn Matlab

Metode Elemen Hingga, 29.10.2012, Tek Mesin S1

Setelah pada pertemuan sebelumnya kita membuat aplikasi perhitungan suhu suatu bidang dua dimensi dengan console (text-based), sekarang kita coba untuk membuat aplikasi yang berbasis Graphical User Interface (GUI). Untuk mempraktekannya download gambar berikut ini.

Kemudian pada command window ketik guide. Rancang disain seperti di bawah ini:

Gunakan teknik yang telah dijelaskan pada pertemuan yang lalu untuk menghitung nilai empat suhu di tengah jika atas, bawah, kiri dan kanan diberi suhu. Jika dijalankan hasilnya kira2 seperti di bawah ini.

Graph Theory 2

Mat Diskrit, 29.10.2012, T. Komputer D3

Jika pada pertemuan yang lalu kita menggunakan graph berarah, sekarang kita coba graph yang tidak berarah. Dalam Matlab tidak jauh berbeda teknik memasukkan datanya. Tetap gunakan arah panah sebagai patokan.

Setelah memasukan matriks graphnya:

>> W=[.5 .4 .3 .4 .2 .1];

>> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)

>>view(biograph(DG,[],’ShowWeights’,’on’))

Tekan tombol Accept. Akan dihasilkan gambar graph sebagai berikut:

Sekarang mencari Matriks graph untuk mengetahui jalur terpendek:

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

Untuk yang tidak berarah:

>> UG = tril(DG + DG’)

Matriks jalur terpendeknya:

>> graphallshortestpaths(UG)

 

ans =

 

0 Inf Inf Inf Inf

0.5000 0 Inf Inf Inf

0.4000 Inf 0 Inf Inf

0.7000 0.4000 0.3000 0 Inf

0.6000 0.5000 0.2000 0.1000 0

Mengalikan Matriks (2×3) dengan (3×2)

Aljabar Linear, 25.10.2012, T.Komputer D3, Lab Hardware

Pertemuan yang lalu kita telah membuat program perkalian dua buah matriks 3×3, sekarang kita coba membuat program mengalikan dua buah matriks, yakni matriks 2×3 dengan 3×2. Untuk menerima inputan matriks dari keyboard, buka program yang lalu. Lakukan modifikasi jangkauan i dan j baik untuk matriks kiri (A) dan matriks kanan (B).

Perhatikan kode di atas hasil modifikasi dari program sebelumnya. Deklarasi variabel, tidak ada perubahan, hanya saja format matriks A, B, dan X yang berubah jangkauan matriksnya. Matriks A jumlah baris 2 dan kolom 3, sebaliknya Matriks B dengan jumlah kolom 3 dan baris 2. Jangan lupa, kalang (for) untuk menampilkan matriks A dan B juga harus dimodifikasi.

Akhirnya, setelah Matriks A dan B terbentuk, dibuat satu kalang untuk membuat matriks X hasil perkalian kedua matriks itu. Perhatikan karena hasil kali matriks (2×3) dan (3×2) haruslah berukuran (2×2) maka a dan b dijaga dari 0 sampai 1 (array dimulai dari 0). Jalankan (Ctrl-F9).

Untuk latihan, coba buat program yang mengalikan matriks berapa saja, fleksibel, tergantung masukan ukuran matriks yang akan dikalikan. Tentu saja jika tidak memenuhi syarat, program langsung memberi respon adanya kesalahan tentang ukuran matriks sebagai syarat perkalian.

Graph Theory

Discrete Mathematic, Lab of Software, 23.10.2012, Comp. Engineering D3

Graph theory is an old theory about connection between vertex and edge. It was found in eighteen century by Euler. The first case was about bridge called konisberg. So, as a exercise we try to solve the smallest path to problem below.

Open your Matlab application and try to input that problem into Matlab. In command window, firstly, we create Matrix of vertexes and edges.

  • W=[.5 .4 .3 .4 .2 .1];
  • >> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)
  • DG =
  • (2,1) 0.5000
  • (5,4) 0.1000
  • (4,2) 0.4000
  • (1,3) 0.4000
  • (4,3) 0.3000
  • (3,5) 0.2000
  • view(biograph(DG,[],’ShowWeights’,’on’))

Finaly, we get the shortest path for every node using function ‘graphallshortestpaths

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

What is that matrix mean? The rows are represent nodes and the columns are another nodes. For example, the shortest path from node 2 to node 5 can be seen at that matrix are the number of row 2 column 5 is 1.1. You can count by your self that the node 2 to node 5 are across node 1 and 3 with 0.5, 0.4 and 0.2 = 1.1 which the same as element (2,5).