Memuat
Memuat
Ingin belajar lebih dalam?
Ikuti kursus kami atau tanyakan langsung lewat WhatsApp.
Dipilih dari software, topik, dan level “Kelas MATLAB: Water Cycle Algorithm (WCA) untuk Optimasi Microgrid Hibrid”.
Pilihan lain dari kami untuk MATLAB R2025b.
Belajar bareng mentor
Kursus Simulasi & Rekayasa Teknik terjadwal, dibimbing langsung, bersertifikat.

Kursus Ansys: Analisis Perpindahan Panas dan Heat Flux Menggunakan ANSYS Fluent dari Dasar Hingga Studi Kasus Industri
★ 5.0 (10)

Kursus Matlab: Perancangan Aplikasi MATLAB: Panduan utama untuk Aplikasi MATLAB
★ 5.0 (10)

Kursus Ansys: Simulasi Aliran Udara pada Radiator Mobil dengan ANSYS Fluent
★ 5.0 (9)
Minta dibuatkan
Tidak sempat belajar MATLAB R2025b? Tim kami bisa mengerjakan proyeknya.

Jasa Pembuatan Matlab — Complete Neural Signal Processing and Analysis Zero to hero
★ 5.0 (59)

Jasa Pembuatan Ansys Maxwell
★ 5.0 (50)

Jasa Pembuatan Petrel
★ 5.0 (14)
Kabari saya kalau ada kelas MATLAB R2025b baru
Paling banyak satu email per minggu. Berhenti kapan saja dengan satu klik.
Narasi lengkap video ini. Kalimat yang sedang diucapkan disorot saat video diputar; klik kalimat untuk melompat ke sana.
Inilah hasil yang akan kita dapatkan, kurva konvergensi WCA dan sebaran aliran, serta uji stabilitas 30-an dengan koefisien variasi hanya 0,31 persen. Yuk kita mulai dari proyek kosong. Halo, selamat datang. Di video ini kita akan belajar water cycle algoritm, atau WCA, di MATLAB, untuk menentukan jumlah panel surya, turbin angin, baterai, dan generator diesel pada sebuah mikrogrid hibrid. Seluruh pekerjaan dikerjakan dari nol, dari proyek kosong, menulis semua kode baris demi baris, menjalankan optimasi, sampai menguji stabilitas dan pengaruh ukuran populasi. Latar belakangnya begini. Mikrogrid hibrid terdiri dari panel surya, turbin angin, baterai, dan diesel. Pertanyaannya, berapa unit tiap komponen, supaya biaya energi, kehilangan pasokan, dan daya yang terbuang sama-sama rendah? WCA menjawabnya dengan meniru siklus air. Banyak aliran, yaitu kandidat solusi, mengalir menuju sungai, dan sungai mengalir menuju laut, yang adalah solusi terbaik. Aliran yang terlalu dekat dengan laut menguap, lalu dibangkitkan ulang di tempat acak. Setelan algoritma kita ambil dari file wca.m di folder penelitian. 50 iterasi, 20 aliran, koefisien langkah antara 1 dan 2, dan jarak evaporasi 0,1. Ada 4 variabel keputusan dengan batasnya. Panel surya 100-2000, turbin angin 1-20, baterai 10-500, dan diesel 1-5. Bobot fungsi objektif 0,4 untuk biaya energi, 0,599 untuk kehilangan pasokan, dan 0,001 untuk dummy load. Alur kerjanya 3 tahap. Setiap tahap 1 skrip matlab, dan semuanya memakai 5 fungsi inti yang sama. Parameter, fungsi objektif, pembangkit populasi, penghitung fitness, dan algoritma wca. Semua file itu akan kita ketik sendiri dari awal. Fungsi objektifnya menggabungkan 3 hal. Biaya energi naik seiring jumlah komponen. Probabilitas kehilangan pasokan turun jika kapasitas total naik. Dan dummy load muncul bila pembangkitan lebih besar dari kapasitas baterai. Ini model penyederhanaan untuk belajar algoritma, bukan simulasi per jam yang lengkap.
Kita mulai benar-benar dari 0. Ini matlab yang baru dibuka. Folder kerjanya masih folder home dan proyek kita belum ada sama sekali.
Di address bar kita arahkan ke folder proyek wca, yang masih kosong.
3 folder proyek kita buat dengan perintah mcdir lewat cell phone. 02 matlab untuk program, 03 hasil, dan 04 gambar. Perhatikan panel files, ketiga folder langsung muncul. Perintah CD20 matlab memindahkan folder kerja ke folder program. Kita siap menulis kode. Sekarang kita mulai menulis program, dari file kosong. Pertama, fungsi pembantu untuk gaya grafik. Di command window, kita ketik edit gaya underscore gambar. Matlab menanyakan apakah file baru dibuat. Kita klik yes. Kita mulai dari fungsi pembantu untuk gaya grafik.
Baris pertama mendeklarasikan fungsi gaya gambar tanpa masukan, dengan satu keluaran bernama C, yaitu palet warna. Baris komentar ini menjelaskan tujuan fungsi, mengatur tampilan grafik agar seragam dan mengembalikan palet warna. Perintah set pada growth, yaitu objek akar semua grafik matlab, mengubah nilai bawaan. Pertama, jenis huruf sumbu menjadi areal. Ukuran huruf sumbu bawaan menjadi 11. Jenis huruf teks, seperti judul dan label, juga menjadi areal. Kotak di sekeliling sumbu dimatikan agar tampilan lebih bersih. Tebal garis sumbu 0,8, dan tebal garis plot bawaan 1,8. Garis grid pada sumbu X dan Y dinyalakan, dengan transparansi tipis 0,15 supaya tidak mengganggu data. Tujuh baris berikut mendefinisikan palet warna sebagai fill dari struktur C. Biru, oranya, hijau, merah, ungu, abu, dan kuning. Tiap warna adalah vektor 3 angka merah, hijau, biru, dengan nilai antara 0 dan 1. Kata N menutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Fungsi pembantu kedua, buat underscore figure. Caranya sama, edit, lalu yes. Fungsi pembantu kedua, buat figure, menerima nama jendela serta lebar dan tinggi dalam piksel, dan mengembalikan handle figure.
Komentarnya menjelaskan, membuat jendela grafik lalu meletakkannya di tengah layar. Perintah figure membuat jendela grafik baru dengan nama, posisi dan ukuran lebar kali tinggi, serta warna latar putih. MoVe GUI dengan opsi center memindahkan jendela ke tengah layar, supaya grafik muncul rapi di depan editor. Dan N menutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Fungsi pembantu ketiga, simpan underscore gambar. Fungsi pembantu ketiga, simpan gambar, menerima figure, struktur parameter, dan nama berkas.
Tugasnya menyimpan figure ke folder gambar sebagai PNG 220 DPI. Jika folder gambar belum ada, dibuat dengan MACDIR. Fungsi eksis dengan argumen DIR menguji keberadaan folder, dan tanda tilde berarti tidak. Export grab Higgs menyimpan figure ke berkas PNG di folder gambar. Nama berkas disusun dari nama ditambah titik PNG, dengan resolusi 220 DPI. Penutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Sekarang file parameter. Semua setelan algoritma dan batas variabel kita kumpulkan di sini.
Kita mulai dari file parameter. Deklarasi fungsi parameter WCA tanpa masukan dan satu keluaran, yaitu struktur PAR. Semua angka setelan algoritma kita kumpulkan di satu tempat ini, supaya mudah diubah tanpa menyentuh kode algoritmanya. Komentar judul bagian, Folder Proyek. File nama dengan opsi full part memberi lokasi lengkap file ini, dan file parts mengambil folder induknya, yaitu 0.2 matlab. Naik satu tingkat lagi untuk mendapat folder akar proyek. Dari sana disusun dua alamat folder, 0.3 hasil untuk data keluaran, dan 0.4 gambar untuk grafik. Dengan cara ini, proyek bisa dipindah ke komputer lain tanpa mengubah halamat. Bagian setelan algoritma Water Cycle Algoritm, iterasi maksimum 50, dan ukuran populasi 20 aliran. Setiap aliran adalah satu kandidat konfigurasi mikrogrid. Part titik C adalah rentang koefisien langkah, antara 1 sampai 2, dan dmax adalah jarak minimum 0,1. Aliran yang terlalu dekat dengan laut akan menguap dan dibangkitkan ulang. Saklar cetak menentukan apakah progres tiap iterasi ditampilkan di command window. Nanti kita matikan saat menjalankan banyak run. Bagian Variable Keputusan Ada 4. Jumlah panel surya, turbin angin, baterai, dan generator diesel, namanya disimpan dalam cell array. Matrix Bones berisi batas bawah dan batas atas tiap variable, satu baris per variable, dipisah titik koma. Panel surya 100 sampai 2 ribu, turbin angin 1 sampai 20, baterai 10 sampai 500, dan diesel 1 sampai 5 unit. Jumlah variable diambil otomatis dari jumlah baris Bones dengan fungsi size. Terakhir bobot fungsi objektif, 0,4 untuk biaya energi COI, 0,599 untuk probabilitas kehilangan pasokan LPSP, dan 0,001 untuk dummy load. Jumlahnya 1. Dan N menutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Berikutnya fungsi objektif, yaitu ukuran baik buruknya satu konfigurasi microgrid.
Sekarang jantung masalahnya, fungsi objektif. Fungsi-fungsi objektif menerima satu konfigurasi X dan struktur parameter, lalu mengembalikan nilai biaya gabungan F, serta tiga komponennya dalam kom. Makin kecil makin baik. Empat elemen vektor X kita beri nama yang mudah dibaca. Jumlah PV, turbin angin, baterai, dan diesel. COI, biaya energi, dihitung dari biaya per unit tiap komponen. 0,2 untuk PV, 0,5 untuk turbin, 0,3 untuk baterai, dan 0,4 untuk diesel, dibagi seribu. LPSP dimodelkan menurun ketika total kapasitas bertambah. Fungsi max dengan 0 menjaga nilainya tidak pernah negatif. Dummy load, yaitu daya berlebih yang terbuang. Sepersepuluh dari PV ditambah turbin, dikurangi kapasitas baterai yang bisa menampung, dan juga tidak boleh negatif. Fungsi objektif adalah jumlah berbobot ketiga komponen, memakai tiga bobot lambda dari struktur parameter. Ketiga komponen dikemas dalam vektor COM supaya bisa dilaporkan nanti, lalu N menutup fungsi. Perlu diingat, ini model penyederhanaan untuk belajar algoritma, bukan simulasi per jam yang lengkap.
Simpan dengan Ctrl S, dan file selesai.
Kita uji di command window dengan mengetik parsama
dengan parameter underscore WCA.
Matlab menampilkan seluruh setelan sebagai struktur. Lalu partitik bones menampilkan batas keempat variabel, panel surya 100-2000, turbin angin 1-20, baterai 10-500, dan diesel 1-5. Sekarang uji fungsi objektif.
konfigurasi 1000 panel,
10 turbin,
250 baterai,
dan 3 diesel menghasilkan fitness sekitar 0,70. Lalu konfigurasi 100, 1, 10,1, dan 1, yang kita duga optimum, menghasilkan fitness 0,6079,
sedikit lebih rendah. Dan vektor COM menunjukkan ketiga komponennya, biaya energi, LPSP, dan dummy load. Fungsi pembantu untuk membangkitkan populasi awal.
Fungsi pembantu berikutnya, buat populasi, membangkitkan aliran awal. Masukannya struktur parameter, keluarannya matriks populasi. Run membuat matriks bilangan acak antara 0 dan 1, ukurannya jumlah aliran kali jumlah variabel. Perulangan for per variabel, bilangan acak disekalakan kerentang sebenarnya, yaitu batas bawah ditambah acak kali selisih batas atas dan bawah. Sehingga setiap aliran dijamin berada di dalam batas. Penutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Fungsi pembantu untuk menghitung fitness seluruh populasi.
Fungsi pembantu hitung fitness menghitung nilai fungsi objektif untuk seluruh baris populasi sekaligus. Array Fun memanggil fungsi objektif untuk setiap baris dari 1 sampai jumlah baris, dan hasilnya dikumpulkan menjadi 1 vektor fitness. Penutup fungsi. Simpan dengan Ctrl S,
dan file selesai.
Kita uji keduanya. Populasi yang dibangkitkan berukuran 20 baris kali 4 kolom,
20 aliran dengan 4 variabel.
Lalu hitung underscore fitness menghasilkan 20 nilai fitness,
dan nilai terendahnya adalah kandidat laut awal kita. Sekarang bagian terpenting, algoritma water cycle algoritma itu sendiri.
Sekarang algoritmanya sendiri, WCA optimasi. Keluarannya 5. Laut atau solusi terbaik, nilai fitnessnya, riwayat konvergensi, populasi awal, dan populasi akhir. Idenya meniru siklus air, aliran mengalir ke sungai, sungai mengalir ke laut, dan laut adalah solusi terbaik. Batas bawah dan batas atas diambil dari matrix bones, lalu ditransposisi menjadi vektor baris dengan tanda petik. Populasi awal dibangkitkan, dan salinannya disimpan di variabel awal untuk digambar nanti. Fitness seluruh aliran awal dihitung. Aliran dengan fitness terendah menjadi laut. Min mengembalikan nilai dan indeksnya, dan laut diambil dari baris dengan indeks itu. Sungai adalah seperempat aliran terbaik, yang fitnessnya di bawah kuantil 25%. Faktor riwayat disiapkan untuk mencatat fitness terbaik tiap iterasi. Perulangan utama berjalan sebanyak iterasi maksimum. Di dalamnya, perulangan kedua memeriksa setiap aliran satu per satu. Hanya aliran biasa yang bergerak, yang bukan sungai dan bukan laut. Eastmember dengan opsi rows memeriksa apakah baris itu termasuk sungai. Aliran memilih tujuan secara acak, dengan peluang 50% mengalir ke salah satu sungai yang dipilih acak, selain itu langsung ke laut. Koefisien langkah acak diambil dari rentang C, antara 1 dan 2. Persamaan inti WCA, posisi baru sama dengan posisi lama ditambah acak kali koefisien C kali jarak ketujuan. Satu perbaikan dari kode awal, posisi dipotong ke dalam batas dengan min dan max, supaya aliran tidak keluar dari rentang kapasitas yang masuk akal. Menutup percabangan if dan perulangan aliran. Tahap evaporasi. Untuk setiap aliran, jika jaraknya ke laut kurang dari demex, dan ia bukan laut itu sendiri, maka aliran dianggap menguap. Perbaikan kedua, laut tidak ikut dihapus, sehingga solusi terbaik tidak hilang. Aliran yang menguap dibangkitkan ulang di posisi acak baru di dalam batas, seperti hujan yang jatuh kembali ke bumi. Menutup if dan perulangan evaporasi. Fitness dihitung ulang untuk seluruh aliran, dan nilai terendah iterasi ini disimpan di F-Best. Laut hanya diperbarui kalau ada aliran yang lebih baik dari laut sebelumnya. Dengan begitu fitness terbaik tidak pernah memburuk. Sungai diperbarui dari seperempat aliran terbaik yang baru. Jika kebetulan kosong, sungai diisi dengan laut agar tidak terjadi galat. Fitness terbaik iterasi ini dicatat keriwayat. Jika saklar cetak menyala, print menampilkan nomor iterasi dan fitness terbaik di command window. Penutup perulangan utama. Populasi akhir disimpan ke keluaran akhir, dan end menutup fungsi.
Simpan dengan Ctrl S, dan file selesai. Kita jalankan algoritmanya.
Progres 50 iterasi tampil di command window, fitness terbaik turun lalu bertahan.
Variabel C berisi solusi optimal, dan F-B adalah nilai fitnessnya.
Lalu skrip langkah pertama, P01 jalankan WCA, yang menjalankan WCA, memvalidasi hasilnya, dan menggambar grafik. Sekarang skrip langkah satu,
yang menjalankan semuanya. Judul bagian diawali 2 tanda persen supaya menjadi sektion di editor. Bersihkan variable, command window, dan semua grafik lama. Panggil gaya gambar untuk palet warna, dan parameter WCA untuk seluruh setelan. RNG dengan angka 7 mengunci bilangan acak, sehingga hasil video ini bisa Anda ulangi persis sama. Tik dan Tok mengukur waktu komputasi, diantaranya kita panggil WCA optimasi dengan setelan PAR. Solusi optimal ditampilkan sebagai tabel dengan judul kolom nama variable, memakai array 2 table. Fungsi objektif dipanggil sekali lagi pada solusi terbaik untuk mendapat ketiga komponennya, lalu print mencetak fitness minimum, waktu, dan nilai COI, LPSP, dan dummy load. Bagian validasi analitik. Karena tiap kapasitas menambah biaya lebih besar daripada manfaat penurunan LPSP, optimum teoretisnya ada di batas bawah, kecuali baterai yang dipakai untuk meredam dummy load. Solusi teoretisnya, PV dan turbin di batas bawah, baterai sepersepuluh dari PV ditambah turbin, dan diesel di batas bawah. Fitness solusi teoretis dihitung, lalu dibandingkan dengan hasil WCA dalam persen selisih. Hasil disimpan ke file mat di folder 03 hasil. Bagian gambar. Satu figur berisi dua grafik berdampingan, dibuat dengan tileg layuk satu baris dua kolom. Grafik pertama, kurva konvergensi fitness terbaik terhadap iterasi, garis putus-putus merah untuk nilai teoretis, serta label sumbu dan judul. Grafik kedua, sebaran aliran pada bidang jumlah PV dan jumlah baterai. Abu-abu untuk populasi awal, orannya untuk populasi akhir, dan bintang kuning untuk laut. Label sumbu, legenda, judul, dan terakhir simpan gambar menyimpan figur sebagai PNG di folder 04 gambar.
Simpan dengan Ctrl S, dan file selesai. Kita klik run di tab editor.
Solusi optimal, 100 panel, 20 turbin, 10 baterai, dan 1 diesel, dengan fitness 0,6136, hanya 0,93% di atas optimum teoretis 0,6079. Waktu komputasinya kurang dari 1 detik. Dua grafik muncul di tengah layar,
dan otomatis disimpan sebagai PNG di folder 04 gambar.
Di grafik kiri, fitness terbaik turun tajam hanya dalam beberapa iterasi lalu bertahan. Garis merah putus-putus adalah nilai teoretis. Di kanan, populasi awal abu-abu tersebar luas, sedangkan populasi akhir orannya sudah menumpuk di sudut kiri bawah, tempat bintang kuning, yaitu laut. Skrip langkah 2, uji stabilitas dengan 30 run. Skrip langkah 2,
uji stabilitas. Algoritma metaheuristik bersifat acak, jadi saturan tidak cukup. Kita jalankan 30 kali dengan seed berbeda. Dimulai dengan membersihkan ruang kerja dan membuat gaya serta parameter. Saklar cetak dimatikan agar command window tidak dibanjiri 30x50 baris. Jumlah run 30, dan disiapkan vektor F untuk fitness serta matrix X untuk solusi tiap run. Perulangan 30 kali. Setiap run memakai seed sama dengan nomor run lewat RNG, lalu WCA optimasi menyimpan solusi dan fitnessnya. Ringkasan statistik, fitness terbaik, rata-rata, simpangan baku, dan koefisien variasi dalam persen. Rata-rata tiap variabel ditampilkan sebagai tabel, dan seluruh hasil disimpan ke file mat. Bagian gambar, dua grafik berdampingan. Grafik pertama, histogram fitness akhir dari 30 run, untuk melihat sebarannya. Grafik kedua, posisi tiap variabel dinormalkan kerentang 0 sampai 1 terhadap batasnya, supaya variabel berskala berbeda bisa dibandingkan. Diagram batang rata-rata posisi, ditambah batang galat simpangan baku, nama variabel di sumbu X, serta label dan judul. Simpan sebagai PNG.
Simpan dengan Ctrl S, dan file selesai.
Klik Run. 30 kali WCA dengan seed berbeda. Fitness terbaik 0,6079, sama dengan optimum teoretis. Rata-ratanya 0,6094, dan koefisien variasinya hanya 0,31%. Grafik hasil 30 run muncul.
Histogram memperlihatkan dua kelompok hasil. Sebagian besaran berhenti di sekitar 0,608, dan sebagian kecil sedikit lebih tinggi, sekitar 0,612. Di kanan, panel surya dan baterai hampir selalu dibatas bawah, sedangkan turbin angin dan diesel berbeda-beda antaran, karena pengaruhnya pada fitness sangat kecil. Jadi WCA konsisten, tetapi tidak menjamin optimum global di setiap run. Skrip langkah 3, pengaruh ukuran populasi. Skrip langkah 3,
pengaruh ukuran populasi. Kita bandingkan kecepatan konvergensi untuk beberapa ukuran populasi. Awalnya sama seperti sebelumnya. Bersihkan, muat gaya dan parameter, matikan cetak. Empat ukuran populasi. 10, 20, 40, dan 80. Tiap ukuran diulang 15 kali, dan matriks rata menampung kurva konvergensi rata-rata. Perulangan luar atas ukuran populasi. Setiap kali, nilai pop size pada parameter diganti. Perulangan dalam 15 kali dengan seed berbeda. Riwayat tiap run dibagi jumlah ulangan lalu dijumlahkan, jadi hasilnya adalah rata-rata. Fitness akhir rata-rata untuk tiap ukuran dicetak, dan perulangan luar ditutup. Hasilnya disimpan ke file map. Bagian gambar, 1 grafik, 4 kurva, 1 untuk tiap ukuran populasi. Label sumbu, legenda yang dibuat dengan kompose, judul, dan simpan sebagai PNG.
Simpan dengan ctrl S, dan file selesai.
Klik run. Setiap ukuran populasi diulang 15 kali, jadi prosesnya memakan waktu sekitar setengah menit dan videonya dipercepat. Fitness akhir rata-rata untuk populasi sepulang, 20, 40, dan 80 berturut-turut 0,6089, 0,6096, 0,6085, dan 0,608.
Grafik perbandingan muncul.
Keempat kurva hampir berimpit dan semuanya konvergen cepat.
Populasi 80 paling rendah, tetapi populasi 10 justru lebih baik daripada 20, jadi pengaruhnya tidak monoton dan selisihnya di bawah 0,3%.
Untuk masalah dengan 4 variable ini,
populasi 20 sudah memadai.
Ringkasan hasil, WCA menemukan konfigurasi yang selisihnya hanya sekitar 1% dari optimum teoretis, stabil di 30-an dengan koefisien variasi 0,31%, dan hanya sedikit dipengaruhi ukuran populasi. Kesimpulannya, WCA sederhana dan cepat untuk menentukan ukuran komponen mikrogrid. Kode asli kita perbaiki dengan dua hal. Posisi aliran dibatasi dalam rentang, dan laut tidak ikut menguap. Langkah lanjutnya, ganti fungsi objektif penyederhanaan ini dengan simulasi per jam 8.760 jam seperti pada penelitian utama. Itulah langkah lengkap menerapkan water cycle algoritm di MATLAB, dari proyek kosong sampai hasil. Semua skrip, hasil, dan laporan tersedia di folder proyek. Terima kasih telah menonton. Butuh bantuan pemodelan dan optimasi dengan MATLAB? Cerdas Inovasi Digital membuka kursus MATLAB, jasa pemodelan dan optimasi untuk skripsi, tesis, dan industri, serta menyediakan file proyek dari tutorial ini. Hubungi WhatsApp kami, atau kunjungi cerdasinovasidigital.com.
Ketik pertanyaan atau kata kunci; kami carikan bagian episode ini yang menjelaskannya dan lompatkan videonya ke sana.
Catatan disimpan bersama menit video saat ini dan hanya terlihat oleh Anda.
Bingung di salah satu langkah? Tanyakan di sini; pengajar dan peserta lain bisa menjawab.
Belum ada pertanyaan.

Tim Cerdas Inovasi Digital
Pengembang software, engineer BIM & 3D, dan praktisi AI
Sehari-hari kami mengerjakan software, model BIM, game, dan otomasi AI untuk klien, lalu menjadikan pengalaman praktik itu kelas langkah demi langkah: setiap langkah diperlihatkan di layar dan dilengkapi panduan PDF.
Lihat klien kami →