Simulasi Dinamika Tangki Air dengan Lazarus: Cara Mudah Memahami Sistem Kontrol
kita akan membaut sebuah sistem pengisian tanki air, kenapa pilih tanki air karena paling simple perhitungannya dan mudah buatnya dan analisanya. tapi meskipun system ini lambat tapi kita bisa aplikasikan nantinya PID buatan kita sehingga kita tau apakah PID aplikatif dan sekalian belajar karakteristik PID pada system lambat.
jadi mari kita mulai dengan membayangkan sebuah tangki dulu :
Volume tangki
jika dengan luas alas 100cm2 dan tinggi tangki 100cm jadi volume tangki full adalah 10.000cm3 itu yang akan mendasari simulasi kita.
Dalam dunia kontrol sistem, memahami perilaku sistem dinamik adalah langkah penting sebelum menerapkan algoritma seperti PID.
Pada artikel ini, kita akan membangun dan mensimulasikan sistem pengisian tangki air, sebuah model klasik yang sederhana namun kaya makna.
Meski sistem ini tergolong lambat, justru di situlah tantangannya — kita bisa menguji respons dan kestabilan PID pada kondisi nyata sekaligus memahami karakteristik sistem dengan lebih intuitif.
Desain system tangki
Menetapkan FlowIn / FlowOut — kenapa 100 s untuk mengisi / menguras?
Dalam contoh teks kamu disebutkan: FlowIn dan FlowOut masing-masing 100 cm³/s. Dengan parameter tanki di kode:
TankArea = 100.0 cm²
TankHeightMax = 100.0 cm
maka volume penuh tangki = TankArea * TankHeightMax = 100 cm² * 100 cm = 10.000 cm³.
Jika laju pengisian bersih (net flow) = 100 cm³/s, waktu untuk mengisi dari kosong ke penuh adalah:
waktu = volume / laju = 10.000 cm³ / 100 cm³/s = 100 s.
(Itu yang kamu tulis — aritmetika di atas valid digit-by-digit: 10000 ÷ 100 = 100.)
Jadi pernyataan “mengisi dari kosong membutuhkan 100 detik dan untuk menguras dari full membutuhkan 100 detik” benar asalkanFlowIn = 100 dan FlowOut = 0 untuk kasus isi; atau untuk menguras, FlowOut = 100 dan FlowIn = 0. Jika keduanya aktif, yang relevan adalah net flow = FlowIn − FlowOut.
Hubungan langsung dengan kode (baris penting dan maknanya)
sekarang kita membutuhkan mendesain program di lazarusnya :
Inti desain: kenapa butuh 2 procedure + 2 timer
Desain yang kamu tulis membagi tugas menjadi dua lapis waktu berbeda:
RunSimulationStep (high-rate, mis. tiap 100 ms)
Tugas: menghitung dinamika plant secara numerik (perubahan level/volume pada tiap langkah simulasi).
Alasan: fisika (perubahan tinggi akibat flow) harus dihitung cukup sering agar simulasi stabil dan numerik akurat. Di kode kamu DeltaTime = 0.1 → 100 ms, dan tmr1 memanggil RunSimulationStep tiap interval itu.
UpdateTank (low-rate / akumulasi, mis. tiap 1 s)
Tugas yang kamu maksud: menghitung/menyimpan akumulasi total volume untuk keperluan logging, tampilan yang tidak perlu update tiap-milisekon, atau penyajian nilai per detik.
Alasan: operasi UI, penulisan log, atau pembacaan sensor sering cukup tiap 1 s; mempercepat UI tidak memberi manfaat dan malah bisa membuat aplikasi berat. Maka tmr2 dipakai untuk tugas yang lebih lambat (UI / akumulasi) — di desainmu kamu ingin tmr2.Interval := 1000.
Kesimpulan: dua timer ini meng-decouple (memisahkan) perhitungan fisika berkecepatan tinggi dari tugas UI/akumulasi berkecepatan rendah — praktek standar pada simulasi & control realtime.
Dari kode bisa di lihat:
tmr1.Interval := round(DeltaTime*1000); → tmr1 dipakai untuk memanggil RunSimulationStep (Δt = 0.1 s). procedure TForm1.tmr1Timer(Sender: TObject); begin RunSimulationStep; end;
RunSimulationStep mengambil nilai trackbar (flow_in := tb1.Position; flow_out := tb2.Position;) lalu memanggil UpdateTank(level_tanki, flow_in); dan mengeset tinggi := round(level_tanki);
tmr2Timer saat ini hanya melakukan:
tinggi := Round(level_tanki); // ambil nilai dari sensor
VirtualScreen.RedrawBitmap;
namun di desain kamu ingin tmr2 menjalankan akumulasi / update per 1 detik (misalnya untuk menambah entri log / menampilkan total volume per detik).
Catatan: di kode UpdateTank sekarang menghitung level tiap kali dipanggil (yaitu saat tmr1 berjalan) — sehingga UpdateTank sesungguhnya adalah update fisika per step, bukan akumulasi per 1 detik.
Procedure ini
menjelaskan tata aturan dalam Perbaikkan Control Valve secara sistematis yang
mencangkup troubleshooting umum, agar bisa menetukan apakah Control Valve ini
masih bisa dipakai dan akurat.
2.Prasarat dan Kondisi awal
2.1Pastikan
bahwa Control valve ini tidak sedang
terinterlock dengan sistem lainnya dan jika iya catat dalam form permitagar supervisor operasional mengerti
kondisinya dan bisa mengambil langkah untuk mematikan interlock atau hal
lainnya sesuai dengan SOP.
2.2Pastikan
control valve ini bisa di operasikan full open dan full close jika tidak ini
akan membatasi
Ruang lingkup troubleshooting nantinya.
2.3pastikan dalam bekerja menggunakan sarung
tangan panas jika sensor pada tempat yang panas dan plant sedang running.
2.4 Pastikan
alat yang di bawa sudah lengkap menghindari loss time untuk ambil tool
2.5 pastikan
jenis Control valve yang akan di cek
agar analisanya troubleshootingnya bisa tepat
3.Referensi
4.1.Manual book
KOSO-AR
4.Tanggung Jawab
4.1
Supervisior
:
4.2
Karu instrument
:
4.3
Teknisi instrument
:
5.Alat Pendukung
5.1Alat
Pelindung Diri
·Helm
·Sepatu
Safety
·Earplug
·Kaca mata
safety
5.2Alat Pendukung
Lainnya
·Radio
Komunikasi
·MultiTester
·Current injector
·Obeng + amplas halus
·Contact cleaner (no residu)
6.Test
Item
6.1Test mekanis
6.2Test Visual
6.3Test Motor
Listrik
6.4Test Modul
Kontrol
6.5Kalibrasi
control valve
7.Procedure
test dan penjelasannya
7.1Test mekanis
Test
mekanis ini dilakukan dengan cara
·Di putar
manual (di lakukan dengan power motor di matikan)
·Di putar
dengan motor
Asal energy gerak
sebuah control Valve dari manual oleh operator dan listrik dari gerakkan
motor Listrik,
maksudnya adalah dari kedua sumber ini apakah salah satunya bisa atau
keduanya tidak bisa
menggerakkan control valve. Adapun jika salah satunya berat maka
kita sudah
bisa melakukan troubleshooting lanjutan berdasarkan kondisi ini. Jika di putar
motor tidak mau atau berat dan di putar manual ringan bisa jadi bearing motor
sudah rusak
menyebabkan motor berat dan biasanya trip.
Dengan
memutar manual kita di harap bisa test untuk posisi full closed dan full open
atau posisi di antaranya apakah sudah maksimum baik untuk full close dan full
open. Dan untuk posisi di antaranya apakah ada yang berat atau stag. Hal ini
akan membatu untuk menganalisa keadaan mekanisnya. Agar jika semua amam bisa
fokus ke hal lainnya.
2.1Test Visual
Pada
langkah ini kita akan melakukan inspeksi visual melihat indikasi kerusakan baik
terbakar, cacat, putus kabel dan sebagainya
2.2Test Motor
Listrik
Motor
Listrik yang di pakai pada control valve biasanya adalah motor 1 phasa yang
bisa di rubah arah putarannya dan bisa di lihat pada diagram di atas, untuk
merubah putaran terletak pada fungsi switch LS1 dan LS2.
Dengan
mengetahui diagram motor maka kita bisa test motor apakah masih bagus atau
sudah rusak tapi harus lepas capasitor dulu karena menggangu pengukuran. Bisa
juga di lakukan pengetesan meger (insulationn test) jika sudah rendah nilainya
maka bisa di bilang motor tersebut rusak.
Atau
jika mau lebih yakin di test tersendiri untuk forward dan reverse nya dengan
membuat rangkaian luar. Dengan cara ini kita bisa lebih yakin akan torsinya
2.1Test Modul
Kontrol
Precondition,
Control
Valve pasti mempunyai deteksi posisi biasanya sebuah resistor potensio meter,
type potensionya ada yang derajat kebebasannya 2700 dan ada yang 3600
tergantung dengan sistem mekanisnya, dan sebagai tambahan pengaman biasanya
motornya di beri limit switch agar tidak bergerak dari batas maksimum
menghindari kerusakan mekanis dan semua ini perlu di indentifikasi komponennya
karena tiap type atau mode atau merk akan menentukan letak dan jenis alat yang
di gunakan untuk fungsi ini.
Di
harapkan pada test mekanis kita sudah yakin kalau mekanis tidak ada masalah dan
dengan asummsi itu troubleshooting ini tidak membahas mekanis.
·Power motor
di matikan sehingga pergerakan control valve hanya bergantung pada manual
operasi.
·Memasang
current injector di sisi SP dan Multitester pada sisi OP
·Men-set SP
pada titik 0% atau 4mA
·Memutar
control valve pada posisi full close
Testing
7.4.1Merubah nilai
SP menjadi 0% dan memutar control valve pada posisi full close.
7.4.2Dengan
kondisi 7.4.1 seharusnya kita mendapat nilai feedback (OP) sama dengan nilai SP
yaitu di 4mA, tetapi jika tidak maka harus adjust Zero pada modul kontrollernya
sehingga kita menadapatkan nilai yang sama atau jika tidak bisa mendekati nilai
SP-nya.
7.4.3Merubah nilai
SP menjadi 100% dan memutar control valve pada posisi full open.
7.4.4Dengan
kondisi 7.4.3 seharusnya kita mendapat nilai feedback (OP) sama dengan nilai SP yaitu 20mA, tetapi
jika tidak maka harus adjust span pada modul controllernya sehingga kita
mendapat nilai yang sama atau jika tidak mendekati nilai SP-nya.
7.4.5Jika setelah
proses 7.4.4 masih belum bisa tepat (masih selisih jauh) pada posisi full open
dan full closednya maka ulangi proses 7.4.1 sampai 7.4.4 sampai maksimal 3 kali
jika di rasa perlu dan mengalami perbaikkan.
7.4.6Jika pada
proses 7.4.5 tidak mengalami perbaikan maka bisa di pastikan modul atau encoder
mengalami kerusakan dan perlu di servis atau di ganti
7.5Kalibrasi control valve
Dengan
melakukan langkah 7.4 jika berhasil maka sebenarnya pada point 7.4.1 sampai
7.4.4 adalah proses kalibrasi control valve hanya saja power motor harus sudah
terpasang sehingga pengaturan full open dan close nya dari putaan motor.
8Acuan Standar
8.4Pada Test Mekanis seharusnya yang kita dapat
adalah jika di putar manual ringan dan jika di putar lewat motor pun tetap
ringan tidak menyebabkan arus motor yang
tinggi, panas, suara kasar dan tidak bergetar.
8.5Pada langkah ini kita memastikan semuanya dalam
keadaan normal artinya seperti biasanya, hal kita perlu cermati jika ada bau
terbakar, kapasitor yang kembung, kabel terbakar, bekas panas berlebih dll.
8.6Pada langkah ini kita inginkan mengukur hambatan
motor normal (biasanya kisaran 150 ohm tapi bisa bervariasi tergantung
motornya) dan test meger untuk memastikan keadaan isolasi coilnya dan
pengukuran siapa tahu ada short body dll.
8.7Cleaning sangat di butuhkan seharusnya terminal
bersih dari karat dan oksidasi, dan juga ujung dari transmitter itu harus
bersih dan tidak ada cacat. jika tidak cacat maka cukup hanya dengan di beri
contact cleaner.
kita sering melihat 0 pressure pada pressure gauge atau transmitter tapi apakah betul - betul zero pressure.
jadi apakah yang selama ini kita katakan 0 pressure atau jika kalibrasi yang di katakan zero ?
jadi yang selama ini kita pakai sebagai zero untuk pressure gauge adalah pressure atmosfer atau 1atm pada gambar yang di garis biru, jadi tidak benar2 zero pressure masih ada 1 atm
jadi area di bawah garis biru itu adalah vacumm atau pressure atmosfer. area di atas garis biru adalah pressure gauge
kalau kita bicara pressure absolute adalah jumlah antara pressure atm + pressure gauge
dan terakhir kenapa tidak di pakai ini karena di butuhkan referensi pressure absolute zero yang mana secara fisika tidak mungkin di dapat di bumi
jadi pada umumnya zero yang di pakai adalah titik pressure atmosfer atau 1 atm jika di atas di sebut positive pressure gauge jika di bawah maka di sebut negative pressure gauge atau vacumm
pada umumnya jika memakai ini tidak akan ada masalah hanya saja jika di pakai di luar bumi mungkin ini menjadi masalah. selama masih di power plant bumi ente masih safe 😜
Dalam Power Plant fungsi dari PID ini sangat membantu operator dalam menjalankan fungsinnya tanpa PID tentunya plant akan tetap bisa bekerja hanya saja operator harus lebih fokus dan tidak boleh lengah.
contoh kasus yang pernah saya alami sendiri adalah fungsi PID yang katanya terasa aneh dan tidak stabil (masukkan dari operator). operator yang pengalaman tentunya sudah terbentuk kebiasaan yang bisa mendeteksi keanehan dalam sistem operasi dan ini sangat baik sebagai masukkan untuk evaluasi.
setelah banyak evaluasi tentunya dengan operasinal dan engineer kami memutuskan bahwa masalah kemungkinan terbesar terjadi pada formula atau rumus PID yang di pakai dan sebagai kesimpulan kami harus mendatangkan vendor untuk evaluasi semua PID kami di plant.
dan hasilnya betul saja ada rumus yang terjadi kesalahan pengetikan
yang awalnya A3=L1-A2+A1 dan yang seharusnya A3=L1-A1+A2
dengan perubahan kecil tersebut barulah operator merasakan operasi yang nyaman
jadi apasih yang terjadi dengan perubahan kecil tersebut :
1. jika ada ganggauan pada beban semua PID langsung tidak kacau kalau dulu sedikit gangguan PID langsung berisolasi (naik turun) tidak mau stabil harus di manual dulu baru bisa
2. bayangkan semua maslaah ini terjadi di seluruh PID dan pada saat ada gangguan operator jadi super sibuk karena banyak yang mesti di handle makanya sering terjadi blackout karena tidak terhandle dengan baik
berikut adalah file serah terima pekerjaan dengan vendor kami disini