Mengurus SHGB menjadi SHM di Kabupaten Tangerang

img_20190123_083745499[1]

Artikel kali ini ditulis untuk sharing pengalaman sekaligus apresiasi terhadap pelayanan kantor Badan Pertanahan Nasional (BPN) Kabupaten Tangerang yang sangat baik. Saya mengurus Sertifikat Hak Guna Bangunan (SHGB, atau disingkat HGB) menjadi Sertifikat Hak Milik (SHM) secara mandiri tanpa menggunakan jasa notaris. Kalau pakai jasa notaris, harganya mungkin sampai sejuta atau lebih. Kalau bisa meluangkan waktu untuk mengurus sendiri, harganya jauh lebih murah. Prosesnya mudah dan cepat.

Kantor BPN Kabupaten Tangerang berlokasi di Tigaraksa. Kantor BPN ini berada di dalam kawasan kantor pemerintahan Kabupaten Tangerang. Kebetulan selain ke kantor BPN, saya juga mengurus dokumen di Kantor Disdukcapil. Jadi sekalian deh…

Tanggal 22 Januari 2019 saya datang ke kantor BPN. Saya tiba jam 09.00. Begitu buka pintu kaca, mata saya scanning isi sekeliling ruangan. Saat itu masih sepi. Hanya ada satu dua orang pengunjung. Layout ruangan cukup modern dengan sederet counter yang bernomer. Ruangan adem, nyaman, dan harum layaknya bank. Dekat pintu masuk ada bapak petugas yang jaga mesin antrian. Saya kasih tau keperluan saya untuk mengurus HGB menjadi SHM. Lalu si bapak dengan fasihnya menyebutkan syarat-syarat dokumen satu per satu. Sudah di luar kepala, pasti sudah biasa menghadapi orang yang mengurus HGB ke SHM. Saya lupa mencatat apa saja dokumen yang diperlukan, tapi seingat saya ini:

  1. Sertifikat HGB asli
  2. IMB dan fotocopy (IMB biasanya diberikan oleh developer)
  3. KTP asli dan fotocopy
  4. Bukti pembayaran PBB terakhir. Ingat bukan hanya lembar tagihan PBB yang warna ungu itu ya. Tapi juga bukti pembayaran yang dicetak oleh bank atau Alfamart saat kita melakukan pembayaran
  5. Materai 6000 satu lembar
  6. Untuk jaga-jaga jika ditanyakan, mungkin bawa juga Akta Jual Beli dan Kartu Keluarga

Setelah diperiksa kelengkapan dokumen, langsung diarahkan ke salah satu counter. Petugas di counter lakukan verifikasi dokumen-dokumen tersebut. Setelah itu, saya diberikan map dan formulir yang perlu diisi.  Nah agak gampang-gampang susah isi formulirnya karena ada isian nomer yang mengacu ke sertifikat. Untungnya si bapak yang jaga mesin antrian tersebut datang dan menawarkan bantuan mengisi formulir tersebut. 5 menit sudah selesai diisi. Kemudian saya dikasih nomer antrian. Saat itu nomer saya yang terdepan, jadi saya langsung ke counter lagi untuk menyerahkan map dan formulir yang telah diisi. Setelah itu saya diberikan lembar billing membayar sebesar Rp. 50.000. Pembayaran dilakukan di loket pembayaran dalam ruangan yang sama. Saat itu saya membayar menggunakan kartu Debit Mandiri. Di loket sudah tersedia mesin EDC, jadi tinggal gesek dan masukkan kode billing. Ini dibantu oleh petugas loket. Setelahnya, petugas memberikan bukti pembayaran yang saya serahkan ke counter sebelumnya. Kemudian petugas counter memberikan lembar tanda terima, yang akan ditunjukkan pada waktu pengambilan sertifikat. Petugas memberi tahu bahwa sertifikat akan selesai sekitar jam 3 sore. Tapi saya memutuskan untuk mengambil besok paginya saja.

Besok pagi saya tiba di kantor BPN sekitar pukul 08.30, dan memasukkan lembar tanda terima ke loket pengambilan. Setengah jam kemudian, nama saya dipanggil. Petugas minta saya tunjukkan KTP untuk memastikan benar-benar saya adalah pemilik sertifikat yang akan diambil. Jadi jangan lupa bawa KTP ya. 

Petugas kemudian menyodorkan sebuah sertifikat yang adalah SHM sayaaaaa.. 🙂 Petugasnya menjelaskan dengan pelan-pelan bahwa SHGB sudah diubah jadi SHM. Di situ saya baru tahu bahwa Sertifikatnya masih sama. Hanya tulisan HAK GUNA BANGUNAN dicoret dan diganti HAK MILIK. Nomer sertifikat juga dicoret dan ditambahkan nomer yang baru. HGB sudah jadi SHM.. Legaaaaa…!

img_20190123_083823720[1]

img_20190123_084358300[1]
Tersedia juga counter untuk disabilitas
Advertisements

Scan and remove viruses using Clamav in Ubuntu

Recently my USB drive got infected. The virus duplicates existing files, but with an .exe extension. All of them are of 411,something kB in size. Later, this is scanned and identified as Trojan virus.

A short googling shows that clamav is a popular antivirus in Ubuntu, Linux in general. Without further ado, I then proceed to sudo apt-install clamav. The version 0.99 is installed. Before scanning, first we need to update the virus databases. The sudo freschclam command,  which is used to accomplish the job, doesn’t work. Maybe I haven’t tried hard enough. But some people suggest that it might be due to old version problem. So then I decide to uninstall clamav 0.99, and reinstall to the new version 0.100.0.

This time I install the clamav from the sources. I am fully aware that is not the only way to get clamav working nor a comprehensive and thorough tutorial. But here I am just showing the steps I have taken which leads me to a success. Oh btw, my OS is Ubuntu 16.04.

  1. sudo apt-get remove clamav (uninstall the existing clamav)
  2. sudo apt-get autoremove (uninstall dependencies, just to make sure they don’t mix up with the new version and cause problems)
  3. Download the source from https://www.clamav.net/downloads/production/clamav-0.100.0.tar.gz. This is version 0.100.0.
  4. Then go to the containing directory, and unzip it.
  5. ./configure (for checking dependencies and prepare some other stuff before compilation). Fail at this stage due to missing openssl library
  6. sudo apt-get install libssl-dev
  7. ./configure (again)
  8. sudo make (building the executable from sources. Might take some time to finish)
  9. sudo make install (installing all the files built from previous step to the appropriate directories)
  10. sudo freshclam (to download the virus databases). But fail at this stage because unable to parse the freshclam.conf. Actually it does not exist yet, but the example configuration file is provided.
  11. cd /usr/local/etc/ (go to the directory containing example conf file)
  12. sudo cp freshclam.conf.sample freshclam.conf
  13. sudo nano freshclam.conf (edit the file)
  14. Comment out the word ‘Example’ and save it
    # Comment or remove the line below.
    #Example
  15. sudo freshclam (again. it works now. take some time to download the databases)
  16. sudo clamscan -r -i –move=/home/yoppy/virus /media/yoppy/USB-drive-path
    -r is for recursive scanning. -i for showing detected scan only. Now we are ready to scan dan move the virus to another folder. And, delete it afterward. We can also delete the virus immediately with –remove option

clamscan virus detected

 

Asal-usul kata pulsa pada ponsel

cellphone

Pagi ini sebelum mandi sempat terpikir bagaimana sebenarnya asal usul kata ‘pulsa’ pada ponsel. Hari ini pulsa pada ponsel berarti saldo yang bisa digunakan untuk telepon, sms, maupun streaming data. Menurut KBBI, salah satu arti kata pulsa adalah satuan dalam perhitungan biaya telepon. Pulsa, yang berasal dari bahasa Inggris pulse, memiliki arti asli: denyut atau detak.

Kalau ditanya ‘Kamu punya pulsa ngga?’, dalam sepersekian detik kita bisa langsung mengerti maksudnya. Tapi kalau pertanyaan yang sama diterjemahkan dalam bahasa Inggris ‘Do you have pulses?’, kita membutuhkan beberapa waktu untuk mengerti maksudnya. Yang terjadi dalam pikiran saya kira-kira begini:

“Hah? Dia tanya apakah saya punya denyutan? Apakah saya masih hidup? Tidak masuk akal. Pasti bukan itu maksudnya. Hmmmm, apalagi ya arti pulse yang lain nya? Oh mungkin maksudnya apakah saya punya pulsa untuk telepon. Tapi saya masih perlu bertanya balik untuk konfirmasi apakah benar maksudnya seperti itu.”

Pertanyaan di atas dijamin tidak akan dimengerti oleh orang selain orang Indonesia. Mengapa? Karena makna pulsa telah bergeser sedemikian jauh dari arti dasarnya sampai tidak ada hubungan nya lagi: dari denyut menjadi satuan biaya telepon. Lalu bagaimana perubahan ini terjadi?

Dulu zaman belum ada ponsel, dan di rumah saya belum ada sambungan telepon, malam-malam di atas jam 9 saya sering ikut ibu ke wartel di Nanga Pinoh untuk menelepon tante saya di Pontianak. Saya perhatikan display total biaya telepon nya akan bertambah setiap beberapa detik tertentu. Misalnya tiap 20 detik akan bertambah Rp.1.000,-. Interval ini berbeda-beda untuk setiap kota tujuan. Kalau tidak salah ingat (tercantum dalam struk), tiap interval inilah yang disebut pulsa. Jadi total biaya telepon adalah jumlah pulsa dikali dengan biaya per pulsa.

Ketika awal-awal ponsel GSM mulai populer, untuk menelepon dengan kartu prabayar kita harus mengisi ‘pulsa’ menggunakan voucher fisik yang digosok. Seingat saya, pulsa yang diisikan adalah dalam satuan rupiah. Mungkin karena waktu itu belum ada kata yang bisa dipakai untuk merujuk ke arti saldo telepon tersebut, jadi paling mudah dipakailah kata ‘pulsa’ yang sudah ada. Walaupun agak-agak kurang nyambung juga sih 🙂

Saya tidak tau apakah pernah pada awalnya pengisian pulsa tersebut dihitung literally dalam satuan pulsa (seperti halnya menelepon di wartel), dan bukan rupiah. Kalau betul begitu, maka sangat bisa dipahami mengapa kata pulsa terbawa sampai sekarang.

Entahlah kebenarannya. Begitulah kira-kira yang terpikir tadi pagi sebelum mandi 

Pengalaman menggunakan Modul WiFi NodeMcu ESP8266

Ceritanya saya mau membuat sebuah prototipe lampu yang bisa dikendalikan secara wireless menggunakan handphone atau laptop. Rencananya akan ada kurang lebih 10 titik/node lampu. Masing-masing node berjarak +/- 20 meter sehingga membentuk garis lurus sepanjang 200 meter. Antar node tidak ada line of sight karena ada halangan berupa logam. Teknologi wireless yang digunakan haruslah secure, setidaknya mendukung otentikasi password. Dan yang paling penting, saya ingin membentuk jaringan wireless tersebut dalam topologi mesh network, yaitu tiap node berfungsi sebagai repeater yang meneruskan data ke node tetangga terdekatnya. Kenapa tidak gunakan saja sebuah transmitter daya besar yang bisa mennjangkau hingga node terjauh (200 meter)? Tidak, karena ada batasan daya transmisi yang diizinkan regulasi, dan hampir pasti (belum menemukan referensi) jangkauan sejauh itu membutuhkan daya yang melebihi limit, atau membutuhkan izin khusus.

Beberapa solusi wireless saya coba bandingkan, yaitu Zigbee, Bluetooh Low Energy (BLE) dan Bluetooh. Dari segi jangkauan, Zigbee memang mumpuni. Tapi dari kunjungan ke toko-toko online saya dapati bahwa modul Zigbee sangat mahal dan tidak banyak tersedia. Sedangkan, modul BLE dan Bluetooth jauh lebih murah harganya dan lebih mudah didapatkan. Tapi kemampuan jangkauannya di ambang batas spesifikasi yang saya tentukan di awal. Beberapa sumber mengatakan jangkauan Bluetooth hanya 10 meter, sedangkan sumber lainnya menyebutkan jarak 20 m bukanlah masalah. Memang soal jangkauan sangat tergantung dari kondisi lingkungan, apakah banyak halangan atau tidak, apakah halangan nya berupa logam, tembok beton, dsb. Dan memang dalam datasheet modul wireless kita biasanya tidak menemukan pernyataan bahwa jangkauan nya adalah sekian meter *. Parameter terukur yang bisa didapatkan dalam datasheet di antaranya adalah daya transmisi dan sensitivitas receiver. Salah satu pilihan saya awalnya jatuh pada modul Bluetooth nRF51. Modul ini memiliki daya transmisi 4 dBm. Untuk mengetahui apakah modul tersebut bisa menjangkau 20 meter, saya putuskan untuk mencobanya. Namun sesaat sebelum saya memesan modul ini di toko online, saya sempat chatting dengan Bondan Suwandi. Singkat cerita dia menyarankan untuk menggunakan modul WiFi ESP8266.

Tidak perlu waktu lama untuk googling, ternyata modul ESP8266 ini begitu menawan dan langsung mengubah keputusan saya :). Kenapa? Karena modul WiFi ini ternyata lebih murah daripada Bluetooth. Selain itu daya transmisi nya bisa mencapai 20 dBm (kalau tidak salah ini batas maksimal yang diizinkan regulasi di Indonesia), bandingkan dengan modul Bluetooth nRF51 yang hanya 4 dBm. Di Youtube, ada yang pernah mencoba jarak jangkauan ESP8266 ini di area terbuka dengan adanya line of sight. Hasilnya mengejutkan, bisa mencapai 500-1000 meter. Karena modul WiFi beroperasi pada frekuensi UHF 2.4 Ghz, tentu saja jika dalam ruangan yang dibatasi tembok atau terlindung logam, jangkauan nya akan menurun jauh. Selain itu, saya mendapati bahwa komunitas pengguna ESP8266 ini cukup banyak dan akif. Dan ternyata ada yang sudah mengimplementasikan mesh network di ESP8266. Persis seperti yang saya inginkan. Saya coba rangkumkan fitur-fitur ESP8266 yang tertulis dalam datasheet nya di sini:

  • Mendukung protocol WiFi IEEE 802.11 b/g/n, dengan otentikasi password WPA/WPA2
  • Terintegrasi low power 32-bit MCU (Tensilica)
  • Terintegrasi 10-bit ADC
  • Terintegrasi TCP/IP protocol stack
  • Terintegrasi TR switch, balun, LNA, power amplifier and matching network
  • Terintegrasi PLL, regulators, and power management units
  • SDIO 2.0, (H) SPI, UART, I2C, I2S, IR Remote Control, PWM, GPIO
  • Deep sleep power <10uA, Power down leakage current < 5uA
  • Konsumsi daya standby < 1.0mW
  • Daya transmisi +20 dBm dalam mode 802.11b
  • Mendukung mode Station (STA), Access Point (AP), dan STA+AP
  • Tersertifikasi FCC, CE, TELEC, WiFi Alliance, dan SRRC

block diagram ESP8266

ESP8266 mendukung mode STA+AP, yaitu berfungsi sebagai Station dan Access Point sekaligus. Fitur ini memungkinkan ESP8266 diprogram membentuk mesh network. Sebuah node bisa berfungsi sebagai Station yang terkoneksi ke node Access Point, dan sekaligus berfungsi sebagai Access Point bagi node Station lainnya. Namun perlu diperhatikan bahwa mode STA dan AP menggunakan jalur hardware yang sama sehingga ada beberapa kasus yang bisa membuat koneksi menjadi putus, seperti yang dijelaskan di sini:

Kasus 1:

  1. Station ESP8266 terkoneksi ke sebuah router (misalnya channel 6)
  2. Kemudian setting parameter AP ESP8266 melalui fungsi wifi_softap_set_config(), misalnya set ke channel 3
  3. Fungsi tersebut mungkin akan return true, tapi sebenarnya channel tetap di 6, karena hanya ada satu jalur hardware yang sudah diset di langkah 1

Kasus 2:

  1. Setting channel AP ESP8266 x, misal channel 5, melalui fungsi wifi_softap_set_config()
  2. Kemudian ada beberapa Station yang terkoneksi ke AP ESP8266 x tersebut
  3. Kemudian Station ESP8266 x mencoba melakukan koneksi ke router yang memiliki channel yang berbeda (misal channel 6)
  4. AP ESP8266 x harus mengubah channel nya menjadi sama dengan Station ESP8266 x, yaitu channel 6
  5. Akibatnya station-station yang terkoneksi ke AP ESP8266 x pada langkah 2 akan disconnected karena telah terjadi perubahan channel

Kasus 3:

  1. Beberapa station terkoneksi ke AP ESP8266 x
  2. Jika kemudian Station ESP8266 x mencoba melakukan scanning channel untuk mencari router,  station-station yang terkoneksi pada langkah 1 mungkin akan disconnected. Sebabnya, Station ESP8266 x yang terus mengubah channel mengakibatkan channel AP ESP8266 x ikut berubah.

VARIAN MODUL DAN CARA PENGGUNAAN ESP8266

Ada banyak varian modul ESP8266 yang beredar saat ini, yaitu:

  • Tanpa USB to serial converter: ESP01, ESP02, hingga ESP14 (lebih detail lihat di sini)
  • Dengan USB to serial converter: NodeMCU, ESPToy

alltheesps

Sumber Gambar: sini.

Saya sudah mencoba ESP01 dan NodeMCU. Untuk memprogram ESP01 dari port USB kita perlu menambahkan USB to Serial converter. Kita bisa gunakan FTDI, CH340, atau board Arduino Uno. Tapi entah kenapa modul ESP-01 ini susah sekali diprogram, sering kali gagal nge-flash. Padahal saya sudah coba beberapa saran seperti menambahkan resistor pada pin-pin tertentu (lupa persisnya) dan menggunakan power supply external yang mampu supply arus hingga 1 ampere. Tetap saja, flashing-nya sering gagal. Adakah yang punya pengalaman yang sama? Bagaimana cara mengatasinya?

Modul NodeMCU merupakan modul ESP-12 yang sudah dilengkapi dengaan CH340 USB to Serial Converter. Pengalaman saya menggunakan modul NodeMcu berjalan mulus, tidak ada masalah dalam flashing. Ada beberapa cara untuk menggunakan ESP8266, yaitu:

  1. Lua. Merupakan bahasa scripting yang kecil dan ringan untuk aplikasi embedded systems. Tentu saja untuk menggunakan Lua, ESP8266 harus diprogram firmware interpreter Lua. Panduannya bisa dilihat di sini. Metode ini cukup mudah digunakan.
  2. AT command. Untuk menggunakan AT command, install firmware AT command seperti dalam tutorial ini. Metode ini juga mudah digunakan. Namun tidak semua kemampuan ESP8266 bisa dieksplor
  3. C++ dengan Arduino IDE. Metode ini menggunakan Arduino IDE yang sudah cukup familiar bagi pegiat elektronika. Yang perlu dilakukan adalah mengunduh library ESP8266, seperti dalam panduan ini. Ada cukup banyak contoh-contoh aplikasi yang disertakan dalam library tersebut. Metode ini memiliki tingkat kesulitan lebih tinggi daripada AT command, tapi kita punya kebebasan untuk customize operasi dan fungsi ESP8266. Dan metode ini yang saya gunakan untuk membuat prototipe kendali lampu secara wireless dalam mesh network.
  4. SDK ESP8266. Metode ini memiliki tingkat kesulitan paling tinggi, tapi kita punya kebebasan seluas-luasnya untuk memprogram ESP8266. Salah satu panduan untuk memulai menggunakan SDK ESP8266 bisa dilihat di sini.
  5. PlatformIO. Ini juga menggunakan bahasa C dan library seperti pada Arduino IDE, namun dengan IDE (editor, code completion, library management) yang lebih baik. Saya sedang mencoba install tool ini.

MESH NETWORK

Awalnya saya coba implementasi mesh network menggunakan library easyMesh. Saya mulai dengan contoh program examples/demoToy. Program ini memasang easyMesh, webserver dan websocket dalam ESP8266 sedemikian hingga tiap node akan langsung gabung dalam mesh network yang terjangkau. Selain itu, websocket memungkinkan laptop atau HP kita sebagai Station yang terkoneksi ke AP ESP8266, dan melakukan komunikasi secara kontinyu.  Namun dari pengalaman saya koneksi ke AP ESP8266 tidak handal dan sering kali disconnect. Penyebabnya mungkin karena implementasi easyMesh yang secara rutin melakukan scanning mencari network, sehingga koneksi yang sudah ada menjadi terputus. Library easyMesh ini juga sudah cukup lama tidak ada update, terakhir update 25 Agustus 2016.

Kemudian saya menemukan library painlessMesh yang dibangun berdasarkan easyMesh, namun telah mengalami perbaikan-perbaikan. Jadi saya coba pakai library painlessMesh, webserver, dan websocket ke modul ESP8266. Hasilnya adalah seperti dalam video demo di bawah ini **. Sekedar informasi tidak penting, lampu yang saya gunakan tersebut adalah lampu depan motor saya yang sudah rusak salah satu filamen nya. Dalam sebuah lampu depan motor itu ternyata ada dua filamen, satu untuk menerangi jauh ke depan, dan satu lagi menerangi jarak dekat. Begitu juga dengan lampu belakang, satu filamen untuk lampu malam dan satu filamen lainnya untuk rem. Saya baru tahu ini waktu mengganti lampu motor saya :). Kembali ke video, rangkaian dalam demo ini sangat sederhana. Lampu tersebut di drive  menggunakan transistor NPN Darlington TIP122, dan diberi supply 12 volt. Output PWM dari pin D1 ESP8266 yang berfungsi mengatur tingkat kecerahan lampu dihubungkan seri dengan resistor 10 kOhm dan kaki basis TIP122. Modul NodeMcu tersebut digunakan secara standalone, yaitu berfungsi menghandle protokol WiFi dan sekaligus berinteraksi dengan dunia luar (dalam hal ini mengendalikan lampu) melalui pin input/output nya. Jadi kita tidak perlu menggunakan mikrokontroler tambahan.

Dari hasil observasi, dapat saya laporkan bahwa koneksi websocket antara laptop ke node ESP8266 kadang-kadang mengalami gangguan dan terputus. Masih perlu ditelusuri lagi apa penyebabnya. Sedangkan koneksi antar node terlihat lebih reliable, dengan sesekali mengalami disonnected. Namun tidak sesering saat menggunakan library easyMesh.

Dalam demo ini hanya digunakan dua buah node. Tugas ke depannya adalah mencoba menambahkan lebih banyak node lagi, dan mengevaluasi seberapa reliable koneksi nya dan  seberapa jauh jangkauan mesh network ini.

Bagi yang membutuhkan modul WiFi NodeMcu ESP8266, bisa ke sini:

https://www.tokopedia.com/inovatronik/esp8266-nodemcu-iot-wifi-esp-12-usb-to-serial-internet

_______________________________

*: Tanggal 12 September 2017 lalu saya mengikuti seminar Microchip / Atmel. Di situ saya baru tahu tentang teknologi LoRa, yang memiliki ciri long range, low data rate, dan low energy. Teknologi LoRa mengklaim bisa menjangkau hingga jarak 15 km dengan adanya line of sight. Saya tidak  tahu seperti apa performa nya dalam lingkungan indoor.

 

Negara membiarkan

Apakah slogan ‘Negara harus hadir’ hanya tinggal slogan? Setidaknya itu yang terjadi di Jalan Baru Cisauk-Muncul, Tangerang. Kondisi jalan yang rusak parah terus dibiarkan sudah setahun ini. Semakin hari semakin parah. Jalanan cor ini patah di tengah. Akibatnya jalan jadi tidak rata, mungkin terjadi beda ketinggian sekitar 50 cm an. Kondisi diperparah lagi oleh kontur jalan yang menanjak. Apalagi waktu hujan, jalan jadi licin, dan terdapat genangan air yg cukup dalam. Mungkin bisa saya ternak ikan lele di situ.

Dalam kurun waktu 2-3 bulan ini, mungkin sudah ada 3 truk besar yang terguling. Akibatnya terjadi kemacetan panjang di jalan tersebut. Kali ini (15 Agustus 2016), terjadi lagi truk terguling dan menimpa sebuah mobil di sebelahnya. Ntah apakah ada korban jiwa atau tidak. Semoga tidak.

Sudah setahun jalan rusak tapi tidak dilakukan perbaikan. Negara sedang bangkrut, dan tidak punya uang? Entahlah. Lalu, jika jalan rusak parah seperti itu dan saat ini belum bisa perbaiki, tolonglah lakukan tindakan-tindakan antisipasi, misal dengan pengalihan jalan bagi truk-truk besar supaya tidak melintasi jalan tersebut. Pleaseeeeeee lakukan sesuatu!! Apakah harus ada korban lagi?

Negara hanya membiarkan.

#dari seorang warga yang tiap hari melintasi jalan tersebut

Numerically solving third-order RLC natural response

The previous post deals with a second-order RLC natural response. Whereas this one deals with a third-order RLC natural response.

page1

page2

% Numerically solving third-order RLC natural response using
% Ordinary Differential Equation (ode) solver
%% -----L---------
%  |    |        |
%  Cs   Cp      Rl
%  |    |        |
% ----------------
clear all;
Cs = 0.5 * 10^(-3);
Cp = 30 *10^-6;
L = 0.1*10^-6;
Rl = 0.1;

a = L;
b = L/(Cp*Rl);
c = (1/Cs) + (1/Cp);
d = 1/(Cp*Rl*Cs);

tspan = [0 0.00005];

init = 0;         % i(0+)
init2 = -100/L;   % di/dt(0+)
init3 = 0;        % d^2i/dt^2(0+)
y0 = [init; init2; init3];
[t, y] = ode45(@(t,y) [y(2); y(3); (-b*y(3)-c*y(2)-d*y(1))/a], tspan, y0);

i1 = y(:,1);
i1_pp = y(:,3); % i1''

% differentiating equation (3) once, we get i2
i2 = -Cp*( ((1/Cs)+(1/Cp))*i1 + L*i1_pp);
figure (2)
plot(t,i2*Rl,'r-')
grid on

X=[0 0.5];
Y=[0 0.5];
xlabel('time (s)')
ylabel('V_{RL} (volts)')

Here is the result:

thirr order RLC

I have verified the result using LTSPICE IV simulation. Here is the circuit file.

Frankly, it took me quite some time to choose which set of equations, combination of equations that will give solutions. I cannot see them immediately. It is important to choose which current (i1, i2 or i3) to be solved first because either current must be provided with its initial conditions. But not all initial conditions are available for all choice of currents. So, I did trial and error. Usually, if your differential equation is in terms of current, then you should choose the current that flows through an inductor. On the other hand, if your differential equation is in terms of voltage, then choose for voltage drop across a capacitor. By doing so, we will have the initial conditions.

If I am not mistaken, another approach using state equations provides an easier way to solve even more complex circuits.

 

Numerically solving second-order RLC natural response using Matlab

I remember that I only got a C+ for the subject of electric circuit II. It faithfully reflected my understanding of the subject. It was unclear to me, but fortunately I passed. Recently I revisited the subject of RLC natural response again because I wanted to analyze the performance of  a step up transformer based high voltage generator. For that reasons, I needed to derive RLC characteristic equations, and then solved it numerically in Matlab. After doing the problems for some time, I think now I have a better understanding.

I want to immortalize my notes in this blog. So I can look back to these notes in case I forget how to solve them in the future. Hopefully, you find them useful too 🙂

page1scan0002


% Numerically solving RLC natural response using
% Ordinary Differential Equation (ode) solver
%% -----Rp-------Rs----
%  |         |        |
%  C         L       Rl
%  |         |        |
%  --------------------
clear all;

C = 100 * 10^(-6);
L = 7 * 10^(-3);
Rl = 50;
Rs = 5;
Rp = 2;
Vc = 100;

a = (Rs+Rp+Rl)*L/(Rs+Rl);         %from equation (5)
b = (C*Rp*(Rs+Rl)+L)/(C*(Rs+Rl)); %from equation (5)
c = 1/C;                          %from equation (5)

tspan = [0 0.05];
init = 0;                             %i(0+)
init2 = ((Rs+Rl)*Vc)/((Rs+Rp+Rl)*L);  %di/dt (0+)
y0 = [init; init2];
[t, y] = ode45(@(t,y) [y(2); (-c*y(1)-b*y(2))/a], tspan, y0);
i3 = y(:,1);
i2 = y(:,2)*(L/(Rs+Rl));  %from equation (3)
i1 = -(i2+i3);            %from equation (1)

figure(2)
plot(t,i2*Rl)
grid on
xlabel('time (seconds)')
ylabel('V_{RL} (volts)')

Here is the result….

rlc natural response.png

I have verified the result by comparing with a free circuit simulation software LTSPICE IV. Here is the circuit file, if you want to check.