Jurnal Tugas Besar
Rangkuman Jurnal: "Algoritma Genetika Berbantuan MATLAB untuk Penetapan Parameter Tidak Konstan pada Turbin Air Skala Mikro"
Jurnal ini membahas penerapan metode Algoritma Genetika (AG) untuk mengoptimalkan parameter tidak konstan pada turbin air skala mikro. Parameter ini mencakup tinggi jatuh air, debit air, dan efisiensi mekanis, yang berperan penting dalam pencapaian efisiensi mekanis optimal. Metode AG digunakan karena kemampuannya dalam mencari solusi secara acak dengan hasil yang akurat dan optimal, yang didukung oleh simulasi menggunakan aplikasi MATLAB.
1. Tujuan Penelitian [Kembali]
- Menghasilkan logical array untuk dua struktur matriks berbeda, yaitu 5x3 dan 3x2.
- Mengoptimalkan parameter tidak konstan untuk meningkatkan efisiensi mekanis turbin air.
Penelitian dilakukan melalui beberapa tahapan:
- Penyiapan Aplikasi MATLAB: Membuat struktur sintaks dan menjalankan simulasi berdasarkan langkah-langkah AG, yaitu inisialisasi, evaluasi, crossover, mutasi, dan seleksi.
- Simulasi:
- Matriks 5x3: Lima parameter berpengaruh (densitas air, gravitasi bumi, tinggi jatuh air, debit air, efisiensi mekanis) sebagai masukan, dan tiga parameter tidak konstan (tinggi jatuh air, debit air, efisiensi mekanis) sebagai keluaran.
- Matriks 3x2: Tiga parameter tidak konstan (tinggi jatuh air, debit air, efisiensi mekanis) sebagai masukan, dan dua parameter tidak konstan (debit air, efisiensi mekanis) sebagai keluaran.
3. Hasil Penelitian dan Simulasi [Kembali]
Hasil Penelitian
- Simulasi Matriks 5x3 menghasilkan logical array dengan nilai 1 pada semua elemen, menunjukkan kesesuaian parameter masukan dan keluaran.
- Simulasi Matriks 3x2 juga menunjukkan hasil logical array yang sepenuhnya valid dengan nilai 1, mengonfirmasi efisiensi mekanis dan debit air sebagai parameter yang dapat dioptimalkan untuk turbin air skala mikro.
Simulasi Program MATLAB
Program Lama:
clear
clc
% Subprogram Inisialisasi
ji = input('Populasi = ');
m = input('Jumlah parameter input = ');
jumlah_populasi = 2^m;
n = input('Jumlah parameter output = ');
for i = 1:m
x = rand(m, n);
fprintf('Kromosom ke-%d = \n', i);
disp(x);
end
% Subprogram Evaluasi
c = input('Lama Proses = ');
a_1 = input('Nilai tinggi jatuh = ');
eval_l1 = a_1 * c;
a_2 = input('Nilai debit air = ');
eval_l2 = a_2 * c;
a_3 = input('Nilai efisiensi mekanis = ');
eval_l3 = a_3 * c;
a_4 = input('Nilai densitas air = ');
eval_l4 = a_4 * c;
a_5 = input('Nilai gaya gravitasi = ');
eval_l5 = a_5 * c;
eval_total = eval_l1 + eval_l2 + eval_l3 + eval_l4 + eval_l5;
disp('Nilai Evaluasi = ');
disp(eval_total);
% Subproses Crossover
u = 0;
k = rand(3, 2); % Contoh matriks 3x2 untuk crossover
for i = 1:ji
offspring_1 = (k + (k + 1)) / 2;
offspring_2 = mod(k + (k + 1), 2);
end
disp('Offspring 1:');
disp(offspring_1);
disp('Offspring 2:');
disp(offspring_2);
x_1 = offspring_1;
x_2 = offspring_2;
% Subproses Mutasi
vv = 1;
mutasi_1 = 0;
for j = 1:m
x_2 = x_2;
x_1 = x_1;
end
vt = j;
mutasi_2 = 0;
for i = 1:n
x_2 = x_2;
end
vv_2 = n;
switch 2
case 1
y = x_2;
case 2
y = offspring_2 + 1;
otherwise
y = offspring_2;
end
fprintf('\nChromosome Hasil Seleksi = \n');
disp(y);
% Subprogram Seleksi
sc = 0;
for j = 1:ji
sc = sc + j;
prob = j / sc;
pb = 0;
pb = pb + prob;
komprob = pb;
if rand() <= komprob
disp('Chromosome Terpilih:');
disp(k); % Output sebagai contoh seleksi
end
end
% Output Matriks Identitas 3x2
disp('Matriks Identitas 3x2:');
identitas = eye(3, 2); % Membuat matriks identitas 3x2
disp(identitas);
Output Program Lama:
Populasi = 5
Jumlah parameter input = 3
Jumlah parameter output = 2
Kromosom ke-1 =
0.7922 0.0357
0.9595 0.8491
0.6557 0.9340
Kromosom ke-2 =
0.6787 0.3922
0.7577 0.6555
0.7431 0.1712
Kromosom ke-3 =
0.7060 0.0462
0.0318 0.0971
0.2769 0.8235
Lama Proses = 3
Nilai tinggi jatuh = 1
Nilai debit air = 1
Nilai efisiensi mekanis = 5
Nilai densitas air = 0
Nilai gaya gravitasi = 0
Nilai Evaluasi =
21
Offspring 1:
1.1948 0.5344
0.8171 0.9387
1.4502 0.8816
Offspring 2:
0.3897 1.0689
1.6342 1.8775
0.9004 1.7631
Chromosome Hasil Seleksi =
1.3897 2.0689
2.6342 2.8775
1.9004 2.7631
Chromosome Terpilih:
0.6948 0.0344
0.3171 0.4387
0.9502 0.3816
Chromosome Terpilih:
0.6948 0.0344
0.3171 0.4387
0.9502 0.3816
Matriks Identitas 3x2:
1 0
0 1
0 0
Program Baru:
clear
clc
% subprogram inisialisasi
ji = input('Populasi = ');
m = input('Jumlah parameter input = ');
jumlah_populasi = 2^m;
n = input('Jumlah parameter output = ');
% Inisialisasi matriks kromosom
disp('Kromosom awal:')
for i = 1:m
x = rand(m, n); % Membuat array random
disp(['Kromosom ke-', num2str(i), ':']);
disp(x);
end
% subprogram evaluasi
c = input('Lama Proses = ');
% Input parameter dan evaluasi
a_1 = input('Nilai tinggi jatuh = ');
eval_l1 = a_1 * c;
a_2 = input('Nilai debit air = ');
eval_l2 = a_2 * c;
a_3 = input('Nilai efisiensi mekanis = ');
eval_l3 = a_3 * c;
a_4 = input('Nilai densitas air = ');
eval_l4 = a_4 * c;
a_5 = input('Nilai gaya gravitasi = ');
eval_l5 = a_5 * c;
% Total evaluasi
eval_total = eval_l1 + eval_l2 + eval_l3 + eval_l4 + eval_l5;
disp('Nilai Evaluasi:');
disp(eval_total);
% subproses crossover
u = 0;
D = (x + (x + 1)) / 2; % Operasi rata-rata
R = mod(2, (x + (x + 1)));
R_1 = R / 2;
R_2 = R / 2;
offspring_1 = D + R_1;
offspring_2 = D + R_2;
% Simpan hasil offspring
x_1 = offspring_1;
x_2 = offspring_2;
disp('Hasil Crossover:');
disp('x_1:');
disp(x_1);
disp('x_2:');
disp(x_2);
% subproses mutasi
disp('Mutasi:');
mutasi_1 = 0;
for j = 1:m
x_2 = ~x_2; % Invers logis
x_1 = ~x_1; % Invers logis
end
% Mutasi akhir
mutasi_2 = 0;
for i = 1:n
x_2 = ~x_2; % Invers logis
end
% Hasil mutasi
disp('x_1 setelah mutasi:');
disp(x_1);
disp('x_2 setelah mutasi:');
disp(x_2);
% Array logis 3x2 bernilai 1 semua
logical_array = true(3, 2);
disp('Array logis 3x2 :');
disp(logical_array);
Output Program Baru:
Populasi = 5
Jumlah parameter input = 3
Jumlah parameter output = 2
Kromosom awal:
Kromosom ke-1:
0.6463 0.2760
0.7094 0.6797
0.7547 0.6551
Kromosom ke-2:
0.1626 0.9597
0.1190 0.3404
0.4984 0.5853
Kromosom ke-3:
0.2238 0.5060
0.7513 0.6991
0.2551 0.8909
Lama Proses = 3
Nilai tinggi jatuh = 1
Nilai debit air = 1
Nilai efisiensi mekanis = 5
Nilai densitas air = 0
Nilai gaya gravitasi = 0
Nilai Evaluasi:
21
Hasil Crossover:
x_1:
1.0000 2.0060
2.2513 2.1991
1.0000 2.3909
x_2:
1.0000 2.0060
2.2513 2.1991
1.0000 2.3909
Mutasi:
x_1 setelah mutasi:
0 0
0 0
0 0
x_2 setelah mutasi:
0 0
0 0
0 0
Array logis 3x2 :
1 1
1 1
1 1
Kesimpulan
- Penggunaan metode AG terbukti efektif untuk menduga nilai parameter tidak konstan yang berpengaruh pada kinerja turbin air skala mikro.
- Simulasi berbasis AG dengan MATLAB menghasilkan keluaran sesuai prediksi, memungkinkan pencapaian efisiensi mekanis optimal.
- HTML↠ klik disini
- Jurnal↠ klik disini
- File Program Lama MATLAB ↠ klik disini
- File Program Baru MATLAB ↠ klik disini
0 Response to "Jurnal Tugas Besar"
Posting Komentar