Tag Archives: tutorial

Last updated by at .

Tutorial PLC: pengertian PLC (2)

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Topik

Menjelaskan pengertian PLC standar. Serta diberikan contoh kasus sebuah fungsi logika direalisasikan menggunakan rangkaian digital, logika kontak dan PLC

Apa yang dimaksud dengan PLC ?

PLC merupakan singkatan dari Programmable Logic Controller. PLC merupakan aplikasi sebuah sistem mikroprosesor (mikrokomputer) digunakan sebagai kontroler standar dalam industri yang bersifat dapat diprogram berdasarkan fungsi-fungsi logika. PLC secara standar, memproses program berdasarkan fungsi-fungsi logika yang ditanamkan (diprogram) dalam PLC. Fungsi-fungsi logika didasarkan pada logika-logika yang ada pada saluran masukan dan saluran keluaran PLC. Jadi PLC memiliki sejumlah saluran masukan dan saluran keluaran. Secara standar PLC memiliki saluran masukan dan keluaran berupa logika 0 atau logika 1.

Pada prinsipnya pengertian PLC adalah:

  1. Perangkat kontroler merupakan aplikasi sebuah sistem mikroprosesor dirancang khusus untuk keperluan kontroler di Industri.
  2. Dapat diprogram berdasarkan fungsi-fungsi logika didasarkan pada intruksi-intruksi yang dimengerti PLC.
  3. Memiliki sejumlah saluran masukan dan keluaran.
  4. Agar lebih mudah dimengerti berikut ini diberikan contoh kasus sebuah fungsi logika yang akan direalisasikan menggunakan gerbang logika, logika kontak dan PLC.

Sebuah fungsi logika: F = (A’. B) + C

Pernyataan fungsi logika di atas dapat diimplementasikan dengan menggunakan beberapa cara yaitu:

Gerbang Logika 

Jika diimplementasikan dengan gerbang-gerbang logika dapat digambarkan dalam Gambar 1 berikut: 

Gambar 1
Fungsi F = (A’.B)+C diwujudkan dengan gerbang logika 

 Keluaran F akan berlogika 0 atau 1 sesuai dengan kombinasi logika pada saluran masukan A, B dan C berdasarkan fungsi logika (A’ . B) + C. Terdapat 8 kombinasi logika masukan pada rangkaian ini, karena terdapat 3bit masukan. Secara tabel kebenaran keluaran F diperlihatkan dalam tabel berikut ini:</p

No. Masukan Keluaran
  A B C F
1. 0 0 0  0
2. 0 0 1 1
3. 0 1 0 1
4. 0 1 1 1
5. 1 0 0 0
6. 1 0 1 1
7. 1 1 0 0
8. 1 1 1 1

 

 

Bila diamati dari tabelkebenaran di atas keluaran F akan berlogika 1 hanya jika C = 1 atau A = 0 dan B = 1. Dengan menggunakan komponen gerbang-gerbang logika, jika dibutuhkan perubahan-perubahan fungsi logikanya maka diperlukan perubahan-perubahan pada rangkaian logikanya. Gerbang NOT menggunakan komponen IC jenis 7406, AND IC jenis 7408 dan OR IC jenis 7432. Rangkaian di atas merupakan rangkaian kombinasi, karena keluaran hanya tergantung pada kombinasi logika saluran masukannya.

Logika Kontak

 Sebuah kontak dapat digunakan untuk mengimplementasikan sebuah rangkaian logika. Jika menggunakan gerbang logika, idealnya logika 0 berupa tegangan 0 Volt dan logika 1 berupa tegangan 5 Volt pada saluran masukan dan keluarannya.

Jika menggunakan sebuah kontaktor (tombol tekan), penekanan tombol berupa masukan dan kontaktornya berupa keluaran. Sebuah tombol jika ditekan memiliki arti masukan sebagai logika 1 dan sebaliknya jika tidak ditekan memiliki arti masukan sebagai logika 0. Kondisi kontaktor sebuah tombol dalam keadaan terhubung memiliki arti keluaran sebagai logika 1 dan jika kontaktornya terbuka memiliki arti keluaran berlogika 0.

Berikut ini diperlihatkan hubungan kontaktor untuk mewujudkan gerbang-gerbang logika AND, OR, NOR, NAND, dan NOT.

Dengan logika kontak dapat direalisasikan sebuah gerbang-gerbang logika seperti halnya gerbang-gerbang logika AND, OR, NOR, NAND dan NOT, dengan cara menghubungkan secara seri atau paralel.

Sebuah gerbang AND dapat diwujudkan dengan dua buah kontak masing-masing jenis NO (Normally Open) yang dihubungkan secara seri. Dengan demikian keluaran merupakan kondisi antara kedua ujung kontak, jika terhubung menunjukkan keluaran berlogika 1, jika terbuka keluaran berlogika 0. Pada gerbang AND ini keluaran akan berlogika 1 (terhubung) jika kedua kontak A dan B masing-masing ditekan atau berlogika 1.

Sebuah gerbang OR diwujudkan dengan dua buah kontak masing-masing jenis NO yang dihubungkan secara paralel. Dengan demikian keluaran akan berlogika 0 jika kedua kontaknya berlogika 0.

Sebuah gerbang NOR (NOT OR), dapat diwujudkan dengan mengubah menjadi AND dengan menggunakan kontak jenis NC (Normally Closed) pada masing-masing masukannya. Sehingga keluarannya akan berlogika 1 jika kedua kontaknya berlogika 0. Karena masing-masing kontak A dan B menggunakan jenis NC, jika kedua kontak berlogika 0 membuat keluarannya berlogika 1.

Sebuah gerbang NAND (NOT AND), dapat diwujudkan dengan mengubah menjadi OR dengan menggunakan kontak jenis NC pada masing-masing masukannya. Sehingga keluarannya akan berlogika 0, jika kedua masukannya berlogika 1. Karena kedua kontak menggunakan jenis NC, jika kedua kontak tersebut berlogika 1 akan menyebabkan keluaran tidak terhubung atau berlogika 0.

Sebuah gerbang NOT dapat diwujudkan denan sebuah kontak jenis NC, sehingga logika keluarannya akan selalu kebalikan dari logika masukannya.

Rangkaian gerbang logika seperti yang ditunjukkan dalam Gambar 1 di atas dari sebuah fungsi F=(A’.B)+C, dapat diwujudkan dengan menggunakan rangkaian logika kontak dengan menggunakan gerbang logika AND, OR dan NOT, seperti yang diperlihatkan dalam Gambar 2 berikut ini.

 

Gambar 2
Fungsi F = (A’ . B) + C dengan menggunakan rangkaian logika kontak

Jika digambarkan dalam bentuk diagram relay diperlihatkan dalam Gambar 3 berikut ini.

 

Gambar 3
Diagram relay

PLC (Programmable Logic Controller)

 Sebelum dijelaskan bagaimana contoh di atas jika direalisasikan dengan menggunakan PLC, perlu dijelaskan terlebih dahulu tentang saluran masukan dan keluaran secara standar yang dimiliki oleh sebuah PLC. PLC secara standar (dasar) memiliki sejumlah saluran masukan dan keluaran dalam bentuk logika 0 atau 1.

Saluran masukannya berupa tegangan sebesar 24VDC, jika diberi tegangan 24VDC berarti saluran masukan tersebut berlogika 1, jika tidak diberi tegangan (terbuka) atau 0 VDC saluran masukan tersebut berlogika 0. Sedangkan saluran keluarannya secara standar berupa kontaktor rele yang ada didalam PLC (IR- Internal Relay), jika kontaknya tertutup berarti logika saluran keluarannya adalah logika 1, jika terbuka logika saluran keluarannya adalah 0. Setiap PLC memiliki sejumlah saluran masukan dan keluaran tertentu tergantung tipe dari PLC yang digunakan. Setiap kelompok saluran masukan dan keluaran dibagi menjadi kelompok alamat yang terdiri dari 8 bit, 16 bit atau 32 bit tergantung jenis PLC yang digunakan. Setiap kelompok memiliki alamat-alamat tertentu pada PLC agar dapat diakses melalui instruksi PLC.

Berikut ini contoh pengawatan PLC untuk mewujudkan sebuah fungsi F = (A’.B) + C, diperlihatkan dalam Gambar 4.

 

Gambar 4
Contoh Aplikasi PLC

Dari Gambar 4 di atas, variabel masukan A, B dan C dimasukkan melalui saluran masukan PLC masing-masing pada bit 0, 1 dan 2. Untuk memberikan logika 0 atau 1 masing-masing dihubungkan seri dengan sebuah saklar (kontak) dan sumber tegangan 24VDC. COM merupakan saluran bersama, sehingga masing-masing saluran diberi logika 1 berupa tegangan 24VDC terhadap COM (COMmon). Jika saluran ini dibiarkan terbuka berarti saluran masukan diberi logika 0.

Demikian pula dengan saluran keluarannya, dalam contoh ini digunakan bit 0, jika berlogika 1 maka antara keluaran bit 0 dan COM akan terhubung singkat melalui kontaktor Internal Relay. Seperti halnya saluran masukan, saluran keluaran menggunakan saluran bersama (COMmon). Untuk mengetahui keluaran bit 0 berlogika 1 atau 0, dihubungkan dengan sebuah beban lampu pijar dan di seri dengan sumber tegangan AC 220V.

Selanjutnya PLC diprogram berupa fungsi (A’.B)+C dengan menggunakan diagram ladder. Program dalam bentuk diagram ladder diperlihatkan dalam Gambar 5 berikut ini.

 

Gambar 5
Program ladder contoh aplikasi

Dalam program ladder Gambar 5 di atas, digunakan PLC OMRON jenis CQM1 CPU41-V1. Saluran masukan memiliki alamat 000, saluran keluaran memiliki alamat 100. Variabel masukan A, B dan C masing-masing menggunakan bit 0, 1 dan 2, sehingga alamatnya dapat dituliskan masing-masing dengan 000.00 (A), 000.01 (B) dan 000.02 (C). Sedangkan keluarannya menggunakan bit 0 dan ditulis dengan alamat 100.00. Penulisan program secara ladder mudah dipahami karena secara langsung dapat menunjukkan fungsi logika-logikanya. Selanjutnya ladder tersebut harus diubah menjadi instruksi-instruksi PLC OMRON CQM1, dengan menggunakan program SYSWIN secara otomatis akan diubah menjadi instruksi PLC. Instruksi tersebut adalah:

LD NOT 000.01
AND 000.01
OR 000.02
OUT 100.00
END

Instruksi PLC OMRON CQM1 dari contoh aplikasi

Mengenai pemrogram dengan menggunakan ladder akan dijelaskan dalam topik yang terpisah.

Posted in PLC | Tagged , , | 2 Comments

Tutorial PLC: pengantar (1)

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Topik 

Menjelaskan tentang dasar-dasar PLC, Elemen dasar PLC 

Pendahuluan

 Industri dibangun karena adanya kebutuhan pengembangan kualitas dan menaikkan produktifitas. Fleksibilitas juga merupakan kebutuhan utama dan perlu dipikirkan, sehingga perubahan sistem proses produksi dalam industri menjadi sangat penting, agar dapat menyesuiakan dengan kebutuhan konsumen yang semakin bervariasi dari waktu ke waktu.

Bayangkan, untuk merealisasikan itu semua sebuah otomatisasi produksi dalam industri semakin diperlukan. Biasanya berupa panel-panel yang dipenuhi dengan rangkaian-rangkaian elektrik untuk keperluan sistem kontrol. Dalam panel-panel tersebut terdapat sejumlah interkoneksi antara elektrik dan mekanik (electromechanical) berupa relay untuk membuat sebuah sistem kontrol proses yang dapat dapat bekerja secara otomatis. Interkoneksi berupa hubungan pengawatan antara beberapa relay dengan menggunakan kawat penghantar. Seorang engineer medisain rangkaian logika untuk keperluan sistem, dan bagian elektrik akan menerima outline rangkaian logika yang akan diimplementasikan dengan menggunakan relay. Untuk membangun sebuah rangkaian logika bisa dalam jumlah ratusan relay. Rancangan akan berupa sebuah rangkaian ladder (ladder schematic). Ladder akan dapat menggambarkan seluruh saklar, sensor, motor, klep, relay dan lain sebagainya, yang nantinya akan ditemukan dalam sistem sebenarnya. Pekerjaan elektrik adalah menghubungkan seluruh sistem dengan menggunakan kawat penghantar.

Salah satu masalah yang timbul dengan menggunakan cara ini yaitu penggunaan sistem kontrol yang didasarkan pada relay mekanik. Instrumen mekanik biasanya akan menjadi aus sehingga hubungan kontak-kontaknya tidak akan tersambung secara sempurna, karena adanya gerakan-gerakan mekanis. Jika salah satu relay berhenti bekerja, bagian teknisi elektrik akan sulit mencari satu persatu relay yang mengalami gangguan agar sistem secara keseluruhan bekerja normal kembali.

Masalah lainnya adalah cara ini akan menyebabkan sistem akan dihentikan dalam periode waktu tertentu selama perbaikan, sehingga industri berhenti melakukan proses produksi, karena adanya perbaikan pada panel-panel elektrik. Jika ada sebuah keputusan untuk mengadakan perubahan-perubahan kecil dalam sistem kontrolnya, diperlukan biaya yang cukup besar dan proses produksi akan berhenti pada periode waktu tertentu sampai sistem bekerja normal kembali.

Kontroler pertama yang dapat diprogram 

 ”General Motors” adalah perusahaan pertama kali yang mengetahui adanya kebutuhan untuk menggantikan panel kontrol yang menggunakan sistem pengawatan. Fleksibilitas dan kecepatan serta kemudahan untuk mengadakan perubahan otomasi sistem produksi menjadi krusial. Ide General Motors adalah menggunakan sistem logika berbasis mikrokomputer (mikrokomputer saat itu kira-kira sebanding dengan mikrokontroler 8bit saat ini) untuk menggatikan sejumlah pengawatan menggunakan relay.Jika diperlukan perubahan dalam sistem logikanya atau dalam hal operasi, program dalam mikrokomputer dapat diubah.

Cara ini akan lebih baik dibanding menggunakan relay, tetapi terdapat masalah baru yaitu bagaimana teknisi dapat menerima sebuah perangkat yang baru. Sistem yang komplek akan diperlukan pemrograman yang komplek pula. Belum lagi teknisi harus belajar dan memahami bahasa pemrograman komputer sebagai tambahan pekerjaannya. Divisi Generl Motors Hidromatic dari sebuah perusahaan besar menjawab kebutuhan ini dan menentukan kriteria dari sebuah programmable logic controler pertama. Saat itu terdapat beberapa perusahaan yang akan menjual instrument yang digunakan dalam kontrol industri sebagai kontroler sekuensial sederhana, tidak seperti PLC yang kita kenal sekarang.
Kebutuhan spesifikasi peralatan baru saat itu adalah didasarkan pada komponen elektronik menggantikan komponen mekanik, komputer yang memiliki fleksibilitas, kondisi yang dibutuhkan dalam industri seperti getaran, panas, debu dll dan mmiliki kapabilitas dapat diprogram ulang dan digunakan untuk pekerjaan lainnya. Kriteria terakhir sangat penting, yaitu perangkat baru dapat diprogram dan dipelihara dengan mudah.

“Gould Modicon” mengembangkan sebuah perangkat pertama yang dapat memenuhi kriteria ini. Kunci kesuksesannya adalah perangkat baru ini dapat diprogram tanpa harus belajar bahasa pemrograman. Yaitu dapat diprogram sama seperti bahasa pemrograman yaitu diagram ladder (ladder diagram), mudah dipelajari penggunaannya. Teknisi dapat memahami dengan mudah sebab akan terlihat seperti logika. Selanjutnya, tidak memerlukan kemampuan pemrograman bahasa komputer. PLC awalnya disebut sebagai PC Controller (Programmable Controller). Hal ini akan menyebabkan sedikit menjemukan ketika terlihat sebuah Personal Komputer. Untuk menghindari itu semua, didisain sebuah komputer khusus, dan programmable controller menjadi Programmable Logic Controller. PLC pertama merupakan perangkat yang sederhana. Dihubungkan dengan beberapamasukan seperti saklar, sensor digital, dll, dan didasarkan pada logika internal berupa keluaran on atau off. Seiring dengan adanya kebutuhan kontrol yang semakin komplek seperti kontrol temperatur, posisi, tekanan dll. Selanjutnya dari tahun ke tahun, pembuat PLC menambahkan sejumlah kemampuan dan improvisasi. Sekarang PLC dapan melakukan pekerjaan yang sangat komplek seperti kontrol posisi, variasi regulasi, dan sejumlah aplikasi komplek. Kecepatan melaksanakan pekerjaan dan kemudahan program juga dikembangkan. Selai itu modul-modul untuk keperluan khusus juga dikembangkan, seperti modul komunikasi untk hubungan dengan beberapa PLN melalui jaringan komunikasi. Sampai saat ini sulit dibayangkan pekerjaan apa yang tidak dapat dikerjakan oleh PLC.

Bagian-bagian PLC

 PLC pada kenyatannya adalah sistem mikrokontroler untuk industri (pada akhir-akhir ini kita menyebutnya mikroprosesor daripada mikrokontroler) dimana merupakan perangkat keras dan lunak yang khusus diadaptasikan untuk kebutuhan industri. Skema secara blok secara dengan komponen yang tipikal membentuk PLC diperlihatkan dalam Gambar 1.

Kebutuhan khusus adalah adanya saluran masukan dan keluaran, sebab dalam blok ini akan ditemukan kebutuhan proteksi untuk mengisolasi blok CPU dari kondisi yang tidak menentu di lingkungan industri yang dapat membahayakan CPU melalui saluran masukan. Unit pemrogram biasanya sebuah komputerdiperlukan untuk menulis program pada umumnya berupa diagram ladder (ladder diagram).

Gambar 1
Elemen Dasar dari PLC 

Central Processing Unit (CPU, Unit Pengolah Utama) 

Central Processing Unit (CPU) merupakan komponen utama atau otak dari sebuah PLC. CPU itu sendiri biasanya menggunakan salah satu dari mikrokontroler. Seperti halnya mikrokontroler 8bit, sebagai contoh mikrokontroler 8051, dan sekarang mikrokontroler 16 bahkan 32 bit. Tanpa disebutkan kebanyakan ditemukan mikrokontroler Hitachi dan Fujitsu dalam PLC buatan Jepang, Mikrokontroler Siemens di Eropa, dan Mikrokontroler Motorola di Amerika. CPU juga dapat berkomunikasi, saling berinterkoneksi dengan perangkat PLC lainnya, mengeksekusi program, operasi memori, dapat mengecek saluran masukan dan men-set saluran keluaran. PLC memiliki rutin yang komplek untuk mengecek memori dalam hal memastikan bahwa tidak ada kesalahan-kesalahan dalam operasinya. Secara sederhana akan terlihat sebuah PLC memiliki beberapa indikator berupa LED untuk menunjukkan adanya kesalahan-kesalahan saat beroperasi.

Memori

Memori sistem (saat ini kebanyakan diimplementasikan menggunakan teknologi FLASH) digunakan PLC untuk sistem kontrol proses. Selain itu sistem operasi itu sendiri berisi sebuah user program untuk menterjemahkan dari bentuk diagram ladder menjadi bentuk biner. Isi memori FLASH dapat diubah hanya dalam kondisi dimana user program berubah. PLC yang digunakan saat ini selain memori FLASH daripada menggunakan EEPROM, karena memori FLASH dapat diubah dan dihapus secara elektrik. Dengan menggunakan memori FLASH proses penulisan akan menjadi sangat singkat. Untuk memprogram ulang memori biasanya dilakukan melalui kabel serial yang dihubungkan dengan PC melalui perangkat lunak pengembangan.status dari saluran masukan dan keluaran

Memori user dibagi kedalam beberapa blok yang memiliki fungsi khusus. Beberapa bagian memori digunakan untuk menyimpan status saluran masukan dan keluaran. Pada kenyataannya disimpan sebagai “1″dan “0″ dalam memori bit yang spesifik. Setiap masukan dan keluaran berhubungan dengan bit dalam memori. Bagian lain memori digunakan untuk menyimpan isi dari variabel yang digunakan dalam userprogram. Sebagai contoh, nilai timer, nilai counter yang akan disimpan dalam memori ini.

Pemrograman PLC

PLC dapat diprogram melalui sebuah komputer, tetapi dapat juga melalui konsole secara manual. Secara praktek mengartikan bahwa setiap PLC dapat diprogram melalui sebuah komputer dan diperlukan perangkat lunak untuk pemrogramannya. Sekarang sangat idel melalui saluran serial komputer yang dapat berkomunikasi dengan PLC untuk melalukan pemrograman. Jika program akan dikoreksi untuk pengembangan, program di PLC dapat di ambil kembali kemudian diprogram kembali jika ada perubahan-perubahan dalam programnya.

Pada umumnya program PLC digunakan untuk melakukan switching menjadi on atau of dari sistem masukan dan keluarannya, program dieksekusi secara realtime dan dilengkapi dengan dokumentasi. Dokumentasi ini diperlukan agar program mudah dimengerti untuk melacak gangguan-gangguan atau kesalahan-kesalahan yang terjadi pada saat beroperasi dan pemeliharaan. Komentar tambahan dapat membantu teknisi mengerti diagram ladder dengan benar.

Catu daya

Catu daya listrik digunakan sebagai energi untuk menghidupkan unit CPU dan komponen-komponen lainnya. Kebanyakan PLC bekerja pada tegangan 24VDC atau 220VAC. Kebanyakan PLC menggunakan modul catu daya secara terpisah pada PLC yang besar, PLC kecil dan menengah biasanya sudah dilengkapi catu daya. Pengguna PLC biasanya harus mengetahui berapa kebutuhan arus yang diperlukan, agar catu daya mampu menyediakan arus sesuai dengan kebutuhan. Setiap jenis PLC akan membutuhkan arus yang berbeda.

Catu daya ini biasanya tidak digunakan untuk masukan dan keluaran ekternal. Pengguna harus menyediakan catu daya secara terpisah untuk masukan dan keluarannya, sebab tidak dapat dipastikan kebutuhan catu daya. Beberapa PLC kecil menyediakan tegangan untuk saluran masukan dan keluaran yang telah diintegrasikan kedalam PLC.

Saluran Masukan PLC

Kemampuan dari sebuah sistem otomasi sangat tergantung kemampuan PLC untuk membaca sinyal dari berbagai jenis sensor dan perangkat masukan. Tombol, keyboard dan manusia mengoperasikannya untuk melakukan hubungan pengoperasian mesin. Di lain pihak, dalam hal untuk mendeteksi bekerjanya perangkat, melihat mekanisme gerakan, sensor level dlsb. Sinyal masukan dapat berupa logika (on/off) atau analog. PLC kecil biasanya memiliki saluran masukan digital, pada PLC besar juga dapat menerima masukan analog melalui unit khusus yang disisipkan pada PLC. Sinyal analog yang sering digunakan adalah sinyal arus antara 4 sampai 20 mA dan sinyal orde tegangan milivolt yang dibangkitkan oleh sensor-sensor yang bervariasi. Sensor biasanya digunakan sebagai masukan bagi PLC. Sensor digunakan untuk keperluan mengukur temperatur, tekanan, atau dimensi fisik (sensor induksi yang dapat mendeteksi benda metal).

Antarmuka penyesuai masukan

Antarmuka penyesuai masukan juga disebut sebagai antarmuka yang diletakkan antara saluran masukan dan unit CPU. Fungsinya adalah antarmuka penyesuai untuk memproteksi CPU dari sinyal yang tidak menentu di lingkungan luarnya. Modul penyesuai masukan mengubah logika nyata menjadi level tegangan yang dapat diterima PLC,sebagai contoh masukan dari sensor yang bekerja 24VDC harus diubah menjadi tegangan 5VDC agar dapat diproses oleh CPU. Biasanya melalui isolasi secara optik, fungsi ini akan diperlihatkan dalam Gambar 2 berikut ini.


Gambar 2
Antarmuka penyesuai masukan

Isolasi secara optik artinya tidak ada hubungan elektri antara dunia luar dan unit CPU. Secara optik (Optically) sinya dari dunia luar dikirim secara optik (sinar LED). Cara ini merupakan cara yang sederhana. Perangkat luar memberikan sinya agar LED on, selanjutnya akan menyebabkan photo transistor bekerja (konduksi), dan CPU akan memandangnya sebagai logika 0 (tegangan kolektor jatuh dibawah 1V). Ketika sinyal masukan menyebabkan LED menjadi off, transistor berhenti berkonduksi, tegangan kolektor akan naik, dan CPU menerima informasi logika 1.

Saluran keluaran PLC

Antarmuka penyesuai keluaran sama halnya dengan antarmuka penyesuai masukan. CPU memberikan sinyal ke LED dan menyebabkan hidup. Sinar akan mengeksitasi phototransistor menjadi konduksi, dan selanjutnya tegangan kolektor akan turn dibawah 0,7V, dan perangkat luar akan menerima logika 0. Kebalikannya sinyal akan diiterprestasikan sebagai logika 1. Phototransistor tidak dihubungkan secara langsung ke keluaran PLC. Antara phototransistor dam keluaran biasanya berupa relay atau transistor yang memiliki kemampuan untuk melayani arus yang besar.

Antarmuka penyesuai keluaran diperlihatkan dalam Gambar 3 berikut ini.

Gambar 3
Antarmuka penyesuai keluaran 

Saluran ektensi 

Setiap PLC memiliki batasan dalam hal jumlah saluran masukan dan keluaran yang disediakan. Jika diperlukan penambahan jumlah saluran masukan dan keluaran, biasanya disediakan saluran ektensi tambahan yang dapat disisipkanmodul-modul tambahan yang dapat disesuaikan dengan kebutuhan. Misalnya penambahan modul keluaran relay, transistor, atau modul tegangan analog dan lain sebagainya. Biasanya fasilitas ini dimiliki oleh PLC skala menengah atau besar dan tidak dimiliki oleh LC skala kecil atau Compact PLC. 

 

Posted in PLC | Tagged , , | Leave a comment

Belajar elektronika: sensor temperatur tipe LM35

Sensor suhu diperlukan untuk menginformasikan sinyal keluaran sebagai umpan-balik pada kontroler. Sensor temperatur jenis LM35 merupakan sensor dalam bentuk rangkaian terpadu yang memiliki kepresisian, dimana tegangan keluarannya linier dan bergantung kepada temperatur dalam satuan derajat celcius. LM35  merupakan sensor temperatur yang linier dikalibrasi dalam derajat celcius, sebagai pengguna tidak memerlukan pengurangan konstanta kelvin untuk memperoleh nilai dalam derajat celcius. Juga tidak memerlukan rangkaian luar untuk kalibrasi atau penyesuaian untuk memperoleh ketelitian secara tipikal kurang lebih 0.25 derajat celcius pada temperatur ruangan, dan secara keseluruhan kurang lebih 0.75 derajat celcius pada temperatur antara -50 sampai 150 derajat celcius.  

Adapun spesifikasi yang dimiliki sensor temperature LM35 ini adalah:

  1. Terkalibrasi secara langsung dalam derajat celcius.
  2. Keluaran linier 10.0mV/derajat celcius.
  3. Ketelitian dijamin 0.5 derajat celcius pada temperatur 25 derajat celcius.
  4. Bekerja pada temperatur antara -50 sampai 150 derajat celcius.
  5. Disiapkan sebagai aplikasi remote.
  6. Tegangan operasi antara 4 sampai 20V
  7. Arus drain lebih kecil dari 60 mikro Ampere.
  8. Pemanasan sendiri sangat rendah yaitu 0.08 derajat celcius dalam udara.
  9. Secara tipikal ketidak linieran sebesar 0.25 derajat celcius.
  10. Impedansi output 0.1 Ohm untuk beban 1 mA.

Secara tipikal rangkaian aplikasi dari sensor temperatur LM35 diperlihatkan dalam gambar berikut ini.

Didalam aplikasinya, jika tegangan keluarannya memerlukan level tegangan yang kurang, perlu ditambahkan sebuah penguat operasi.

Penguat operasi yang umum digunakan untuk menaikkan tegangan keluaran sensor ini adalah jenis penguat operasi tidak membalik. Mengenai teori penguat operasi tidak membalik dapat anda lihat dalam posting disini.

Besarnya tegangan keluaran yang dibutuhkan diantaranya ditentukan oleh besarnya tegangan yang dibutuhkan ADC pada skala penuh. Atau tergantung kepada kebutuhan tegangan yang dibutuhkan pada masukan rangkaian berikutnya.

Untuk lebih jelasnya mengenai sensor temperatur ini dapat anda baca dalam lembar data yang dikeluarkan oleh pembuatnya dan dapat anda download disini.

 Download

 

Posted in Elektronika | Tagged , , | Leave a comment

Fungsi alih plant pemanas air elektrik diperoleh dari pemodelan matematik (heat exchanger)

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Pemanas air secara sederhana dapat digolongkan sebagai heat exchanger untuk menukar panas dari sumber panas ke material, baik fluida, gas atau padat.

Plant penukar panas atau disebut dengan heat exchanger, berfungsi untuk memindahkan panas dari sumber pemanas menuju ke bahan yang akan diproses. Gambar dibawah mengillustrasikan sebuah sistem pemanas air secara elektrik. Obyek dari sistem ini secara tipikal adalah penyedia air panas di rumah-tangga. Sistem pemanas air di rumah-tangga adalah adanya air panas yang berada dalam tangki dan air dingin yang dimasukkan ke sistem. Sebuah saklar termostat diputar sebagai referensi dari temperature yang diinginkan.

 

Jika diasumsikan dibuat bahwa temperatur dari benda adalah uniform, maka sejumlah sistem panas dapat direpresentasikan dengan persamaan diferensial linier seperti yang diperlihatkan dalam persamaan berikut.   Disini akan dijelaskan sebuah sistem pemanas air sebagai contoh sederhana dari sistem panas. Hukum energi diperoleh bahwa panas ditambahkan ke dalam sistem sama dengan panas yang disimpan ditambah dengan rugi-rugi panas. Hal ini dapat diekpresikan dengan hubungan:

 Qh = Qc + Qo + Qi + Ql 

Dimana:

  1. Qh= aliran panas yang diberikan oleh elemen pemanas.
  2. Qc = aliran panas ke dalam tangki air. 
  3. Qo = aliran panas merupakan kerugian oleh air panas dalam tangki.
  4. Qi = aliran panas yang terbawa oleh air dingin yang masuk ke tangki.
  5. Ql = aliran panas yang melewati isolasi panas.                                

 Persamaan (1) dapat diuraikan menjadi:

Dimana:
C = kapasitas panas dari air dalam tangki.
 = temperature air dalam tangki.

Dimana:
V = aliran air dari tangki
H = Panas spesifik (specific heat) air

                                                                                    Dimana:
 = Temperatur air masuk ke dalam tangki dan

                                                                                    

Dimana:
 = temperature udara yang mengelilingi tangki.
R = resitansi termal dari isolasi panas.

Dengan memasukkan persamaan-persamaan diatas kedalam persamaan pertama, dapat diekpresikan menjadi:

  

Presentasi model panas sejauh ini dapat di   , ,   dan V sebagai variable. Pada kondisi yang spesifik dimana V adalah konstan dan = , persamaan (6) di sederhanakan menjadi:

 

Dimana :

  = temperatur air didalam tangki dengan referensi .

Transformasi laplace dari persamaan diatas diberikan sebagai:

 

Fungsi alih dari sistem, didefiniskan sebagai perbandingan antara keluarandengan masukan dapat diberikan:

 

 

 

 

Posted in Pemodelan, Sistem Kontrol | Tagged , | Leave a comment

Belajar elektronika: rangkaian sensor temperatur

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Sensor temperatur merupakan sensor yang mengubah besaran temperatur menjadi besaran tegangan atau lainnya. Dalam sistem kontrol temperatur, sensor temperatur sangat diperlukan  keperluan membaca temperatur keluaran plant untuk diumpankan kembali sebagai feedback. 

Sensor temperatur pada jaman sekarang banyak jenisnya dan sudah dalam bentuk monolitik dalam satu komponen. Salah satu sensor yang sudah lazim dipakai dan banyak beredar di toko elektronik adalah LM35. LM35 sudah ditera dalam satuan derajat celcius, sehingga tidak perlu lagi mengkonversi derajat kelvin menjadi celcius. Sesuai dengan lembar data, keluaran LM35 adalah 10mV/derajat celcius. Jadi setiap kenaikan 1 derajat celcius, akan bertambah 10mV. Kalau sensor ini dioperasikan sampai 100 derajat celcius, maka keluarannya adalah 1V. Hal ini masih dirasa kurang jika ADC yang digunakan memerlukan tegangan masukan 5V pada skala penuh. Jadi masih diperlukan penguatan sebesar 5 kalinya atau AV = 5.

Untuk membuat pengkondisi sinya sinyal temperatur LM35 agar pada temperatur 100 derajat celcius keluarannya sebesar 5V, diperlukan penguat operasi seperti yang telah diposting disini

Rangkaian lengkap sensor temperatur diperlihatkan dalam gambar berikut ini.

 Dari rangkaian diatas penguatan AV adalah:

Karena AV yang dibutuhkan sama dengan 5, maka R2/R3 harus sama dengan 4. Kalau R2=400KOhm, maka R3=100KOhm. Selanjutnya R1 = R3 = 100KOhm.

Dari lembar data LM35 memerlukan tegangan antara 4-20V, disini saya menggunakan tegangan 15V, demikian pula LM358. 

Jika anda membutuhkan lembar data LM35 dapat didownload disini.

 Download

 

 

 

Posted in Elektronika | Tagged , , | Leave a comment

Teori elektronika: penguat operasi tak membalik

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Penguat operasi tak membalik terkadang diperlukan dalam penguat sederhana misalnya untuk pengkondisi sinyal sensor, karena dibutuhkan polaritas masukan sama dengan keluaran. 

Konfigurasi penguat operasi tak membalik seperti berikut ini:

Dalam konfigurasi ini, tegangan sinyal masukan, (Vin) diasup secara langsung ke terminal non-inverting (+). Dengan demikian berarti bahwa perubahan tegangan keluaran Vout dari penguat operasi memiliki polaritas  ”positif”  terhadap tegangan masukannya, artinya tegangan keluaran tidak dibalik polaritasnya. Hasil tegangan keluarannya akan sefasa dengan tegangan masukannya.

Sinyal umpan balik dari penguat non-inverting diperoleh dengan menerapkan sebagian kecil dari sinyal tegangan keluaran kembali ke terminal membalik  (inverting,-) melalui resitor Rf  melalui rangakai dengan resistor  R2.  Ini konfigurasi loop tertutup menghasilkan rangkaian penguat tak membalik (non-inverting) dengan stabilitas yang sangat baik, impedansi masukan yang sangat tinggi, impedansi Rin mendekati tak terhingga  karena tidak ada arus yang mengalir ke terminal masukan positif  (kondisi ideal) dan impedansi output Rout yang rendah. 

Analisa rangkaian

Agar mudah dianalisa rangkaian digambarkan kembali secara terbalik seperti pada rangkaian disamping. Seperti dalam teori penguat operasi secara ideal, arus masuk terminal membalik dan tidak membalik adalah nol, dan tidak ada beda tegangan diantara terminal ini. Sehingga dengan demikian Vin adalah sama tegangannya dengan V1 terhadap virtual ground. Dengan demikian tegangan keluaran Vout akan ditentukan sepenuhnya oleh besarnya resistansi R2 dan Rf. Pada akhirnya rangkaian seri Rf dan R2 membentuk voltage devider (pembagi tegangan). Selanjutnya dengan menggunakan formula rangkaian pembagi tegangan maka diperoleh:

 

Karena Vi sama dengan Vin, maka penguatan tegangan penguat operasi dapat diperoleh: 

 

 Atau dapat dituliskan kembali menjadi:

Dengan demikian dapat disimpulkan bahwa penguat operasi dengan konfigurasi ini penguatan tegangan Av  akan lebih besar dari 1, ini berbeda dengan konfigurasi penguat operasi membalik.

 

Posted in Elektronika | Tagged , , | Leave a comment

Belajar arduino: board tanpa bootloader

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Kali ini saya akan berbagi pengalaman tentang bagaimana board arduino tanpa menggunakan bootloader.  Sebenarnya bootloader yang ditanamkan dalam board arduino adalah program kecil yang berfungsi untuk mengupload (memprogram flash) secara serial dengan menggunakan protokol serial RS232. Hal ini awalnya untuk membuat mudah para pengguna didalam mengupload hasil kompilasi dalam IDE arduino. Oleh karena itu mengapa pada umumnya board arduino aslinya disisipkan piranti untuk mengubah USB ke serial, sehingga menjadi sangat sederhana tinggal menancapkan board arduino ke saluran USB komputer.

Namun sejak versi IDE arduino 1.0.0,  sudah dilengkapi fasilitas menu “Upload Using Programmer”. Menu bisa anda klik File->Upload Using Programmer,  atau bisa menggunakan shortcut Ctrl+Shift+U. Program hasil kompilasi akan diupload ke board arduino melalui piranti pemrograman sesuai dengan pilihan di menu Tools->Programmer->{pilih sesuai dalam pilihan}. Dengan cara ini bootloader tidak lagi diperlukan karena pasti akan diisi dengan nilai FF alias dihapus. Penulis mencoba dengan menggunakan programmer USBasp yang meggunakan pin MISO, MOSI, SCK dan RESET pada ATmega328. Sebenarnya hanya menambahkan 1 kabel saja, kalau secara serial RS232 menggunakan:  TX, RX, RESET. Kecepatannya akan lebih cepat menggunakan cara ini, sehingga akan menghemat waktu pengembangan aplikasi mikrokontroler.

 

 

 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | Leave a comment

Belajar arduino: membuat board sendiri ATmega8, 168 dan 328

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini diperuntukkan bagi yang ingin belajar arduino namun berkantong tipis untuk membeli board arduino yang relatif mahal. Atau bagi mereka yang memang suka utak-atik perangkat keras elektronika. Mikrokontroler ATmega 8, 168 dan 328 memiliki jumlah kaki yang sama yaitu 28 untuk kemasan DIP, mikrokontroler jenis ini banyak yang menjualnya relatif lebih murah dibanding dengan mikrokontroler lainnya. Dengan memiliki salah satu mikrokontroler dan ditambah dengan sedikit komponen sebenarnya sudah bisa berfungsi layaknya board arduino yang asli.

Dalam posting ini berisi tutorial cara membuat arduino.

Membangun rangkaian

Untuk membuat arduino  terdapat banyak pilihan jenis mikrokontroler yang akan digunakan. Namun dalam posting ini bisa menggunakan ATmega 8, 168, 328. Saya menggunakan ATmega 328 dengan kapasitas memori program lebih besar yaitu 32KB. Bangunlah dahulu rangkaian mikrokontroler dalam rangkaian berikut ini.

 

 Komponen yang harus anda sediakan adalah:

  1. IC1: Mikrokontroler ATMega8, 168, atau 328, terserah kepada anda silakan dipilih salah satu.
  2. Q1: Kristal resonator, 8MHz atau 16MHz.
  3. R1: sebagai resistor pullup untuk reset sebesar 1K – 10K
  4. C1 dan C2 sebesar 22pF.

Tegangan suply VCC adalah 5VDC, jangan sampai terbalik polaritasnya, kalau terjadi maka mikrokontroler akan menjadi almarhum alias terbakar. Untuk mengisi program biasanya menggunakan ICSP dengan menggunakan 4 sinyal MISO, MOSI, SCK dan RESET. Saya sarankan menggunakan USBASP bisa dibuat sendiri dengan menggunakan mikrokontroler ATmega8. Tegangan suply 5V dapat disuply dari USBASP programmer dengan mengambil daya dari port USB komputer. Cara membuat USBASP programmer dijelaskan dalam posting lainnya.

Anda dapat membangun rangkaian dengan menggunakan breadboard agar mudah bereksperimen dengan menghubungkan setiap kaki komponen  menggunakan kabel engkel sekitar 0.5-1mm. Pilihan lain bisa mengunakan PCB berlobang dan anda bisa menghubungkan dengan kawat engkel untuk setiap kaki komponen dengan cara disolder.

 

 Rangkaian yang dibangun pada breadboard diatas, belum ada bootloader arduinonya. Jadi perlu diprogram bootloader sesuai dengan jenis mikrokontroler ATmega yang digunakan. Untuk mengisi booloader ini cara yang paling mudah dengan menggunakan IDE arduino. Namun anda memerlukan piranti pemrogram yang sesuai dan dikenal arduino. Anda harus menset jenis pemrogram sesuai dengan yang anda gunakan. Cara settingnya pilih menu Tools->programmer->”pilih jenis programmer”.

Programmer yang termurah adalah jenis Parallel Programmer yang memanfaatkan port paralel pada komputer. Namun sayang pada laptop sudah tidak ada lagi. Kalaupun menggunakan konverter USB-LPT akan menjadi lebih ribet lagi, lebih baik menggunakan USBasp bisa dibeli dipasaran umum atau dibuat sendiri menggunakan ATmega8. Saya menggunakan USBasp sebagai pemrogramnya.

 

Yang tak kalah pentingnya adalah mengenal koneksi pemrograman pada USBasp agar proses pemrograman berhasil. Pada USBasp ada dua jenis konektor yaitu 6pin dan 10pin. Saya menggunakan jenis 10pin pada USBasp buatan sendiri.

Saluran pemrograman adalah MISO, MOSI dan SCK dihubungkan dengan MISO, MOSI dan SCK mikrokontroler target. Sedangkan RES dihubungkan ke RESET mikrokontroler target untuk mereset menjadi mode program. Sedangkan VTG adalah sumber tegangan +5V dari port USB komputer. GND adalah saluran bersama. Jadi total yang harus dihubungkan ke mikrokontroler adalah 5 kabel jika board anda memiliki suply tegangan +5V sendiri. Jika board and tidak memiliki suply +5V dan diperoleh dari USB komputer, VTG dihubungkan ke VCC mikrokontroler. Harus diperhatikan jangan kedua-duanya, untuk menghindari kerusakan komputer karena tegangannya menjadi bentrok. 

Mengisi BootLoader

Bootloader merupakan program pendek yang diisikan kedalam ATmega, yang akan dieksekusi saat mikrokontroler diberi catudaya. Sebenarnya bootloader ini merupakan firmware untuk  pemrograman yang bekerja secara serial RS232. Jadi cukup memanfaatkan saluran serial RS232 pada komputer, untuk selanjutnya bootloader akan menangani pengisian program pada memori program berupa Flash dalam ATmega. Sebenarnya masih ada pilihan lainnya untuk mengisi/upload hasil kompilasi arduino yaitu salah satunya dengan menggunakan USBasp, sehingga tanpa memerlukan bootloader.

Namun jika ini yang menjadi pilihan anda akan dijelaskan bagaimana mengisi (burn) firmware bootloader ini. Untuk mengisi bootloader hubungkan MISO -> MISO, MOSI -> MOSI, SCK -> SCK, /RES -> RESET, GND -> GND, VTG -> VCC (jika target disuply dari tegangan USB komputer).

 Setelah target tersambung dengan benar ke programmer USBasp, colokkan USBasp. Selanjutnya jalankan arduino, kemudian lakukan sebagai berikut:

  1. Set board yang sesuai: Tools -> Board -> Duemilanove w/ATmega 328 (bisa yang lain asal ATmega328 16MHz)
  2. Set Programmer: Tools -> Programmer -> USBasp
  3. Kirim bootloader: Tools -> Burn bootloader

Saya menggunakan arduino versi 1.0.1.

YouTube Preview Image

Meng-upload program

Untuk menguji apakah bootloader bekerja dengan baik, dicoba mengupload program dari contoh yang ada pada arduino bernama “blink”. Hubungkan TX komputer -> RX arduino (pin 2), RX komputer -> TX arduino (pin 3), RTS komputer -> RESET arduino (pin 1). Ingat ketiga saluran dari serial komputer harus memiliki level tegangan logika TTL 0 V atau 5V. Kalau anda menggunakan USB to serial pada umumnya, keluarannya masih dalam taraf level tegangan RS232. Untuk mengubah level tegangan RS232 ke TTL gunakan IC MAX232.

YouTube Preview Image

Mudah-mudahan bermanfaat buat seluruh pengunjung blog. 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 28 Comments

Belajar arduino: hello world

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini akan dijelaskan bagaimana cara berkenalan dengan arduino bagi para pemula. “Hello world” adalah istilah yang sering digunakan dalam dunia pemrograman untuk mengawali dan mengenalkan sebuah pemrograman. Biasanya program adalah sederhana dengan menampilkan kalimat “Hello World” ke piranti keluaran stadar dari sistem mikroprosesor yang digunakan. Kalau di PC biasanya dikeluarkan pada layar, kalau tidak dilengkapi dengan layar biasanya ditampilkan ke konsole secara serial. Dalam arduino untuk mengenalkan sebuah program secara sederhana dengan cara mengkerdipkan led dengan periode hidup dan mati tertentu.

Bagi para pemula untuk belajar arduino yang harus dipersiapkan adalah:

  1. Board arduino (bukan buatan sendiri), saya menggunakan board nano yang berbasis mikrokontroler ATmega328 dengan clock 16MHz.

  2.  Perangkat lunak arduino terbaru dapat anda download disini. Pilih sesuai dengan sistem operasi yang sesuai dengan komputer anda.

Dalam board arduino biasanya sudah dilengkapi dengan led untuk keperluan mengetes perangkat keras atau sebagai indikator serbaguna. Dalam arduino nano biasanya menggunakan penyemat D13 atau digital kanal 13.

Langkah-langkah eksperimen

 Langkah-langkah eksperimen arduino bagi para pemula adalah:

  1. Tancapkan usb serial ke kemputer anda. 
  2. Pastikan drivernya sudah terinstall dan dikenali dengan benar.
  3. Untuk mengecek driver,-> My Computer, klik kanan,Properti. Klik Hardware,Device Manager. Lihat port COM apa sudah terlihat dalam daftar driver, catat kanalnya.
  4. Jalankan arduino.
  5. Load contoh program dengan memilih menu.

Nah, dalam editor akan terlihat programnya sebagai berikut:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Mengenai cara kerja program akan saya jelaskan nanti, teruskan rasa penasaran anda sebagai tanda ketertarikan hobi yang yang baru ini. 

Kompilasi

 Sebelum program diupload ke board arduino ada baiknya bagaiman mengkompilasi untuk melihat apakah ada kesalahan penulisan program. Dalam arduino tidak ada menu kompilasi, sebagai gantinya adalah menu “Verify”. Klik icon tersebut maka dalam jendela pesan akan ditampilkan statu sedang dikompile.

Jika sudah terdapat kesalahan dalam program maka dilanjutkan dengan mengupload program ke board arduino yang anda gunakan. Klik ikon panah kanan disebelah kanan ikon “verify”. Kanal COM akan dicari secara otomatis oleh arduino dan akan memberikan saran kepada anda setelah ditemukan.

Jangan lupa sebelumnya harus anda set dulu board yang anda gunakan sesuai dengan jenis board arduino tersebut. Pilih menu  Tool -> Board. Saya set sesuai dengan board yang saya gunakan yaitu Nanp ATmega328. Mungkin anda menggunakan board yang berbeda dengan saya, oleh karena itu set sesuai dengan yang anda miliki.

Penjelasan program

Dari program di atas cara kerja program dapat dijelaskan sebagai berikut:

  1. Baris pertama  dari program terdapat sintak:  int led = 13; merupakan pendefinisian led sebagai nilai 13, ini digunakan untuk menandai nomer saluran yang digunakan untuk pin arduino terhubung dengan led. 
  2. Baris program berikutnya adalah fungsi void setup(), yang akan dieksekusi pertama kali sesaat setelah arduino diberi catudaya, berfungsi untuk perintah-perintah insialisasi sebelum program utama dieksekusi. Isi dari fungsi ini adalah pendefinisian pin io dengan sintak:  pinMode(led, OUTPUT);  memiliki arti bahwa mode dari pin (penyemat) 13 (bukan pin mikrokontroler) yaitu saluran D13 (digital nomer 13) difungsikan sebagai saluran keluaran atau output. Nomer 13 ini ditahan dalam variabel led sebagai konstanta, dengan maksud agar dapat dikonfigurasi dengan mudah karena berada di atas.
  3. Baris program berikutnya adalah fungsi void loop(), merupakan fungsi dari program utama yang akan dieksekusi secara berurutan dari atas sampai terakhir dan kembali lagi dari atas sampai terakhir, begitu seterusnya karena merupakan loop yang tidak pernah berakhir. Baris pertama dari fungsi ini adalah  digitalWrite(led, HIGH); artinya tulislah logika 1 (high) pada pin keluaran nomer 13, dengan demikian led yang terhubung ke pin ini akan menyala, karena led diseri dengan resistor secara pulldown (terhubung ke ground). Selanjutnya adalah mengeksekusi sintak delay(1000); yaitu waktu tunda selama 1000mS atau 1 detik, dengan demikian led menyala selama 1 detik. Berikutnya adalah  digitalWrite(led, LOW); artinya tulislah logika 0 (low) pada pin keluaran nomer 13, dengan demikian led yang terhubung ke pin ini akan mati. Selanjutnya delay(1000); mengakibatkan led mati selama 1 detik. Keseluruhan program artinya led berkedip hidup selama 1 detik, mati selama satu detik. 

 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 2 Comments

Belajar Arduino: pengantar

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini mengenai arduino, merupakan perkembangan terkini cara mengembangkan aplikasi mikrokontroler relatif lebih mudah jika dibandingkan dengan cara konvensional. Sudah lama saya tidak berkecimpung lagi dalam utak-atik aplikasi mikrokontroler, kira-kira 5 tahun lamanya. Karena sekitar 3 tahun yang lalu saya sudah tidak langi mengajar mikroprosesor pada Jurusan Teknik Elektro, Universitas Brawijaya dengan alasan sudah jenuh. Namun seiring dengan perkembangan teknologi mikrokontroler yang melaju dengan cepat, saya banyak menemukan mikrokontroler serba canggih dengan banyak piranti didalam internal mikrokontrolernya seperti keluaran AVR. Karena mikroprosesor telah mendarah daging dalam kehidupan saya sebagai pengajar mikroprosesor sejak tahun 1986-2009 atau 23 tahun lamanya. 

Didalam mengajar saya utamakan teori kemudian memberikan pemahaman dalam dunia nyatanya. Karena kalau teori saja, bagaikan sebuah cerita fiksi yang tidak tahu wujud kenyataannya. Kalau praktek saja tanpa teori bagaikan orang buta yang tidak tahu jalan sebenarnya, dan pada akhirnya hanya meraba-raba tanpa tahu sebabnya. Yang benar adalah Teori dan praktek selalu beriringan, sehingga didalam belajar ilmu pengetahuan hendaklah berdasar tiga hal yaitu: “Belajar Membaca”, “Belajar Berpikir” dan “Belajar berbuat”. “Belajar membaca” adalah tahap awal belajar ilmu pengetahuan. Belajar membaca artinya menelusuri jejak ilmu pengetahuan yang ada dibumi ini, karya-karya orang lain, atau apa-apa yang sudah dilakukan oleh orang lain. Tujuannya adalah membangun motivasi, menghargai karya orang lain, memulai hal-hal baru yang belum dilakukan orang lain. “Belajar berpikir” adalah suatu langkah awal dari sebuah ketertarikan kepada sebuah ilmu pengetahuan, sekaligus mengetahui kemampuan diri sendiri, mengetahui bahwa kita ada oleh karena itu kita berpikir. Selain itu juga bertujuan untuk mengetahui atau mengukur kemampuan diri sendiri. Selanjutnya adalah “Belajar berbuat” artinya apa yang telah dibaca dan dipikir haruslah diverifikasi dalam bentuk perbuatan, sebagai contoh praktek. Belajar berbuat bertujuan untuk mengoreksi diri sendiri, apakah yang telah dibaca dan dipikir benar adanya, kalau tidak benar mulailah dari awal untuk mencari kebenaran apa yang telah kita pelajari. Semua itu adalah sebuah proses yang harus dijalani agar apa-apa yang kita ajarkan adalah benar dan telah dibuktikan. Dengan demikian apa yang kita sampaikan dalam ruang kelas bukan sebuah isapan jempol belaka.

Arduino

Mengenai arduio yang telah diluncurkan dalam situs arduino, yang sampai saat posting ini ditulis telah memiliki versi 1.0.1. Arduino sebenarnya adalah perangkat lunak IDE (Integrated Development Environment ). Sebuah perangkat lunak yang memudahkan kita mengembangkan aplikasi mikrokontroler mulai dari menuliskan source program, kompilasi, upload hasil kompilasi, dan uji coba secara terminal serial. Namun sampai saat ini arduino belum mampu men-debug secara simulasi maupun secara perangkat keras, kita tunggu selanjutnya.

Arduino ini bisa dijalankan di komputer dengan berbagai macam platform karena didukung atau berbasis Java. Source program yang kita buat untuk aplikasi mikrokontroler adalah bahasa C/C++ dan dapat digabungkan dengan assembly. Penulis menggunakan arduino berbasis mikrokontroler AVR dilingkungan jenis ATMEGA yaitu ATMEGA 8, 168, 328 dan 2650.

Sampai disini silakan dulu download program arduino kemudian installah dalam komputer anda. Setelah anda instal coba dirun maka akan muncul tampilan sebagai berikut.

 

Dari tampilan kedua dapat dibagi menjadi 3 jendela yaitu: Menu dan tombol icon, editor dan pesan. Pada bagian bawah terlihat jenis mikrokontroler atau board arduino saat ini yaitu Board Arduino BT dengan mikrokontroler ATmega328 dengan menggunakan kanal serial COM7 untuk upload hasil kompilasi dan komunikasi konsole serial.

Penggunaan arduino sangat mudah, kemudahan karena kita tidak perlu lagi mengetahui detail perangkat keras dari mikrokontroler  terutama mengenai konfigurasi register-register yang harus dilakukan dengan mengetahui cara kerja dari mikrokontroler. Selain itu arduino sangat kaya dengan library baik dari pengembang arduino maupun sumbangan dari orang lain, karena arduino sifatnya adalah opensoource.

Pada saat source dikompilasi, maka hasilnya berupa file heksa di upload ke mikrokontroler secara serial dengan memanfaatkan pin TX/RX untuk ATmega8 adalah penyemat 2 dan 3. 

Bagaimana cara kerja pengembangan sistemnya ?

Disamping IDE arduino sebagai jantungnya, bootloader adalah jantung dari arduino lainnya yang berupa program kecil yang dieksekusi sesaat setelah mikrokontroler diberi catu daya. Bootloader ini berfungsi sebagai pemonitor aktifitas yang diinginkan oleh arduino. Jika dalam IDE terdapat file hasil kompilasi yang akan diupload, bootloader secara otomatis menyambutnya untuk disimpan dalam memori program. Jika pada saat awal mikrokontroler bekerja, bootloader akan mengeksekusi program aplikasi yang telah diupload sebelumnya. Jika IDE hendak mengupload program baru, bootloader seketika menghentikan eksekusi program berganti menerima data program untuk selanjutnya diprogramkan dalam memori program mikrokontroler. Pendek kata sangat mudah mekanisme pengembangan aplikasinya. Tentang IDE arduino kita bahas sampai disini saja, selanjutnya saya akan menjelaskan perangkat keras pendukung lainnya.

Piranti komunikasi serial RS232

Hubungan komunikasi data antara IDE arduino dengan board arduino digunakan komunikasi secara serial dengan protokol RS232. Tentunya jika anda tertarik dengan arduino ini, cek terlebih dahulu apakah komputer anda ada port komunikasi serialnya. Untuk komputer PC dipastikan sudah ada port serialnya dengan konektor DB9, namun untuk Laptop akhir-akhir ini sudah dihilangkan. Jika anda menggunakan laptop modern, diperlukan sebuah antarmuka serial rs232 biasanya ditancapkan ke USB. Sudah barang tentu jika board arduino anda sudah dilengkapi dengan komunikasi serial RS232 (biasanya USB), piranti ini tidak lagi digunakan, cukup langsung ditancapkan ke USB komputer anda. Biasanya catu daya 5V otomatis akan disuply ke board arduino anda.

Piranti serial rs232 ini digunakan jika board arduino atau arduino buatan sendiri tidak dilengkapi dengan piranti serial 232. Jika tidak tersedia, gunakan usb to serial pada umumnya. Tapi harus diingat penyemat TX/RX mikrokontroler merupakan level ttl, jadi harus diubah dari level rs232 ke ttl dengan menggunakan chip max232. Belakangan ini udah ada piranti usb to serial dengan level ttl, jadi tidak perlu menggunakan chip max232 lagi. Saluran yang digunakan adalah RX, TX dan DTR. DTR digunakan untuk mereset mikrokontroler secara otomatis ketika IDE arduino mengirimkan program untuk dituliskan ke memori program mikrokontroler. Jadi DTR dihubungkan dengan penyemat reset mikrokontroler arduino.

Board arduino

Board arduino sebenarnya berisi komponen utama mikrokontroler AVR, mulai dari ATmega8 sampai seri terbaru diantaranya adalah 2650. Selain itu board arduino dilengkapi dengan chip USB to serial, sehingga penggunanya mudah menggunakannya  hanya dengan mencolokkan ke port USB komputer/laptop. Sebenarnya kita bisa membuat board tersebut, karena board yang sudah jadi hanyalah mikrokontroler yang diisi dengan program bootloader  yang juga tersedia pada IDE arduino. Membangun board arduino sendiri akan dibahas dalam posting yang terpisah.

Untuk melihat jenis-jenis board arduino yang sudah jadi bisa anda klik disini.

Bahasa pemrograman

 Bahasa pemrograman yang digunakan oleh IDE arduino didalam mengembangkan aplikasi mikrokontroler adalah C/C++. Tentunya terdapat style khusus yang membedakannya yaitu:

  1. void main(void) sebagai fungsi program utama diganti dengan void loop() . Perbedaannya pada c biasa tidak terjadi loop, jadi harus ada looping yang ditambahkan misalnya while(1){……}. Dalam arduino secara otomatis fungsi loop() akan kembali lagi dari awal jika sudah dieksekusi intruksi paling bawahnya.
  2. Ditambahkan fungsi void setup(void), fungsi ini dugunakan untuk inisialisasi mikrokontroler sebelum fungsi utama loop() dieksekusi.
  3. Tidak direpotkan dengan setting register-register, karena arduino sudah memasukkannya kedalam librarynya dan secara otomatis disesuikan dengan jenis board arduino berkenaan jenis mikrokontrolernya. Jadi setup perangkat kerasnya menjadi mudah.

Dalam posting yang lain akan dijelaskan aplikasi sederhana tentang arduino, agar mudah dipahami apa sebenarnya arduino itu. 

Penyemat 

Pada arduino memberikan penamaan penyemat secara spesifik agar mudah dikenali oleh pengguna awam. Jika kita terbiasa  mengembangkan aplikasi mikrokontroler tidak menggunakan arduino, penyemat menggunakan nama penyemat sesuai dengan lembar data dari pabriknya. Arduino menamakan penyemat secara spesifik yaitu dua jenis saluran yaitu analog dan digital. Setiap saluran analog dan digital diberi urutan angka, misalnya D5 adalah saluran digital kanal 5, A0 adalah saluran analog kanal 0. 

 

 

Dari gambar di atas, yang penamaan penyemat yang berwarna  merah adalah nama saluran arduino. Sedangkan nama penyemat yang berwarna hitam adalah nama penyemat mikrokontroler ATmega8, 168 dan 328. Dengan demikian pengembang aplikasi mikrokontroler dengan menggunakan arduino tidak usah pusing-pusing mengetahui nama dan nomer penyemat mikrokontroler yang sedang dikembangkan aplikasinya.

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 8 Comments

Keypad using ADC: a microcontroller application

In this post, I will explain how to design a keypad by using an internal ADC of the microcontroller or microprocessor system.

ADC will be used to determine which any key is pressed in the state. In principle, there is a circuit that can generate a differrent voltages at each place of push button pressing. A simple circuit is by applying a voltage divider circuit using some  series resitors, which can lead to different voltages for each keystrokes.

For example, it is necessary to distinguish the five key functions in the program the microcontroller, the UP, DOWN, RIGHT, LEFT, and SELECT button. There are required 6 pieces of resistor: 2K, 220, 330, 1K, 3k3 and 10K, in order to generate the  rising voltage at ADC of microcontroller by successive key presses: UP, DOWN, LEFT, RIGHT, SELECT.

1. The circuit will work as follow:

  1. If  the “UP” button is pressed, the voltage to ADC will be 0 Volt, because the 2K resistor will be pulled down to ground.
  2. If the “DOWN” button is pressed, the voltage to ADC will be:
  3. If the “LEFT” button is pressed, the voltage to ADC will be:

  4. If the “RIGHT” button is pressed, the voltage to ADC will be:
  5. If the “SELECT” button is pressed, the voltage to ADC will be:
  6. If no button is pressed, the voltage to ADC will be:

2. 10bit ADC conversion

If the output of the voltage divider circuit (“to ADC”) fed to the 10bit ADC input, then any key presses will produce a decimal:

  1. UP button: 0V will be 0 decimal.
  2. DOWN button: 0.7082 Volt will be 145 decimal.
  3. LEFT button: 1.6102 Volt will be 329 decimal.
  4. RIGHT button: 2.4684 Volt will be 505 decimal.
  5. SELECT button: 3.6207 Volt will be 741 decimal.
  6. No Button: 4.4203 Volt  will be 905 decimal.

3. How to programming tricks

In fact every keystrokes are not exactly generate a voltage as described in point 1. Means a range slightly above or below the voltage. Thus, the voltage value of the middle is taken, for example: the “UP” from 0V to 0.7082 / 2 = 0.3541V, the “DOWN” from 0.7082V to 0.7082 + (1.6102-0.7082) / 2 = 1.1592 V, and so on.
More easily calculated from point 2, the decimal after being converted by the ADC.
  1. The button of  “UP” on pressed state when the conversion result of ADC is defined below value of 145/2 or 72 decimal.
  2. The button of  “DOWN” on pressed state when the conversion result of ADC is defined below value of 145+(329-145)/2 or 237 decimal.
  3. The button of  “LEFT” on pressed state when the conversion result of ADC is defined below value of 329+(505-329)/2 or 417  decimal.
  4. The button of  “RIGHT” on pressed state when the conversion result of ADC is defined below value of 505+(741-505)/2 or 623 decimal.
  5. The button of  “SELECT” on pressed state when the conversion result of ADC is defined below value of 741+(905-741)/2 or 823 decimal.
  6. No button on pressed state when the conversion result of ADC is defined below value of 905+(1024-905)/2 or 964 decimal.

C  Programming

/*********************************************************/
// keypad using adc
// created by: Bambang Siswoyo
// Electronic department - University of Brawijaya
/*********************************************************/

int adc_button_table[6] = { 72, 237, 417, 623, 823, 964 };
int NUM_KEYS = 6;
#define UP      0
#define DOWN    1
#define LEFT    2
#define RIGHT   3
#define SELECT  4
#define NOKEY   5

int read_adc()
{
  ............................................
  ... created by youself, how to read the adc
  ............................................
}

int get_key()
{
       int k_num;            // number of key
       int adc_read_val;     // conversion value

       // Convert voltage from voltage devider
       // This function must be adjusted to the microcontroller adc
       adc_read_val = read_adc();
       for (k_num = 0; k_num < NUM_KEYS; k_num++)
	{
	   if (adc_read_val < adc_button_table[k_num])
	      { return k_num }
	}
}

void main()
{ // main program for testing only
  int btn;

  // read key
  btn = get_key();
  // action
  switch(btn)
    {
      case UP:
          //do something when var equals 0
          break;
      case DOWN:
          //do something when var equals 1
          break;
      case LEFT:
          //do something when var equals 2
          break;
      case RIGHT:
          //do something when var equals 3
          break;
      case SELECT:
          //do something when var equals 4
          break;
      case NOKEY:
          //do something when var equals 5
          break;
}
Posted in Electronics | Tagged , , | Leave a comment

Filter Low Pass: aplikasi pada sensor temperatur

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Sensor temperatur sering digunakan sebagai umpan balik pada sistem kontrol temperatur. Sensor sangat penting dalam sistem kontrol, harus memiliki kepresisian yang baik dan harus stabil. Dalam aplikasinya sensor temperatur mengubah temperatur menjadi tegangan. Namun tegangan yang dihasilkan oleh sensor selalu disertai dengan sinyal-sinyal diluar dari informasi yang sebenarnya.

Sebagai contoh sensor temperatur LM35, merupakan sensor elektronik yang kompak dan murah harganya dapat digunakan sebagai senor temperatur dalam sistem kontrol. Sensor ini memiliki kepresisian 10mV/oC. Biasanya sensor ini diperpanjang dengan menggunakan 3buah kabel jalur tegangan dc +- dan jalur keluaran sensor. Sinyal noise akan dihasilkan karena adanya perpanjangan kabel dan akan membuat kesalahan pada sistem umpan balik.

Untuk menghilangkan sinyal-sinyal yang bukan informasi dari temperatur digunakan filter low pass. Yang paling murah menggunakan komponen pasip R dan C  yang diletakkkan pada ujung paling akhir dari perpanjangan kabel menuju ke pengkondisi sinyal.

Adapun rangkaian pasip RC low pass filter diperlihatkan dalam gambar berikut ini:

 

Dari rangkaian filter low pass diatas dapat ditulis persamaan sebagai:

Dimana:

  •   adalah tegangan keluaran filter.
  • adalah sinyal tegangan berasal dari keluaran sensor temperatur.
  • adalah impedansi dari kapasitor.
  • adalah impedansi dari Resistor.

 

 Selanjutnya untuk mendapatkan tegangan keluaran secara statis, persamaan dapat dituliskan kembali menjadi:

Salah satu contoh dalam aplikasi yang saya posting disini, menggunakan dan . Maka hasil perhitungan untuk tegangan masukan sebesar 5 volt adalah:

Pada frekwensi = 5Hz

Pada frekwensi 400Hz 

 

Agar lebih mudah menggambarkan respon keluaran sebagai fungsi frekwensi, digunakan parameter s, kemudian dengan menggunakan fungsi bode dalam SCILAB, respon keluaran akan mudah digambarkan dalam kawasan frekwensi.

Fungsi alihnya dapat dituliskan kembali menjadi:

Perintah scilab mencari tanggapan frekwensi dan tanggapan fasa adalah sebagai berikut:

-->clear all;

-->s=%s
 s  =

    s   

-->G=syslin('c',1,10^-5*s+1)
 G  =

         1
    -----------
    1 + 0.00001s    

-->bode(G,0,100000)

 

Frekwensi cutt-off pada penguatan -3db berada pada sekitar 10KHz, atau sinyal yang diloloskan pada 0 db sampai pada frekwensi 100Hz. Ini sudah cukup pada sebagai umpan balik pada sistem kontrol temperature dengan frekwensi sampling maksimal 50Hz atau 20mS. Paling tidak dengan waktu sampling 50mS sinyal umpan balik sudah bisa mengikuti respon temperatur plant dengan penguatan 0 db.

 Dibuat oleh: Bambang Siswoyo

 

Filter low pass diatas memiliki orde 1. Agar penurutan penguatan menjadi lebih tajam digunakan orde 2 dengan menyusun 2 filter low pass secara kaskade. Sebagai contoh dua filter low pass dihubungkan secara kaskade diperlihatkan dalam gambar berikut ini.

Untuk mencari fungsi alihnya dapat dituliskan sebagai berikut:

 

Dengan menggunakan scilab dapat diperoleh fungsi alih totalnya dengan perintah sebagai berikut:

-->s=%s
 s  =

    s   

-->ZR1=1000;

-->ZC1=1/(10*10D-9*s);

-->ZR2=500;

-->ZC2=1/(10*10D-9*s);

-->G1=ZC1/(ZR1+ZC1);

-->G2=ZC2/(ZR2+ZC2);

-->GT=G1*G2
 GT  =

                 1.000D-14
    -----------------------------------
                                       2
    1.000D-14 + 1.500D-18s + 5.000D-23s   

-->G=syslin('c',GT)
 G  =

                 1.000D-14
    -----------------------------------
                                       2
    1.000D-14 + 1.500D-18s + 5.000D-23s   

-->bode(G,0,100000) 

Adapun respon frekwensinya diperlihatkan sebagai berikut:

Kesimpulan

Pada filter orde dua atau dua kaskade memiliki penurunan fasa paling curam jika dibandingkan dengan filter orde satu. Kecuraman penguatan  sangat diperlukan pada filter,karena akan semakin mendekati filter ideal.

Posted in Electronics | Tagged , , | 2 Comments

Belajar Scilab: menambahkan kontroler PID dalam untai G(s)

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Dalam posting ini, error telah diperbaiki dengan menambahkan penguatan dalam untai G(s), jadi sama dengan ditambahkan kontroler P. Namun dari unjuk kerja keluaran sistem masih terjadi osilasi dengan overshoot yang cukup besar sekitar 75%.

Disini akan dicoba untuk menambahkan kontroler PID didalam untai G(s). Berikut ini blok diagram dalam posting ini, digambarkan kembali:

Setelan Kd tetap dipertahankan sama dengan 2. Demikian juga nilai penguatan 3 tetap dipertahankan juga. Hanya ditambahkan Kontroler PID dalam untai G(s).

Dengan demikian sistemnya akan berubah menjadi:

Dengan menggunakan scilab dalam console, fungsi alih dan respon keluarannya dihitung untuk melihat paramater kestabilan.

-->clear all

-->t=0:0.01:1;

-->Kp=300;Ki=200;Kd=30;

-->PID=Kp+Ki/s+Kd*s
 PID  =

                    2
    200 + 300s + 30s
    ----------------
           s           

-->G=3/((s+1)^2+2*s)
 G  =

        3
    ---------
              2
    1 + 4s + s   

-->Gt=PID*G
 Gt  =

                    2
    600 + 900s + 90s
    ----------------
             2   3
       s + 4s + s      

-->TF=Gt/(1+Gt)
 TF  =

                      2
      600 + 900s + 90s
    --------------------
                    2   3
    600 + 901s + 94s + s   

-->RES_PID=csim('step',t,TF);

-->plot2d(t,RES_PID,style=3)

-->xgrid()

-->xtitle('Perbaikan respon dengan menambah kontroler PID dalam untai G(s) -
           Bambang Siswoyo - TEUB','detik','amplitudo');

-->legend('Kp = 300 - Ki = 200 - Kd = 30',4);

Dengan menyetel Kd=300, Ki=200 dan Kd=30, hasil perintah diatas berupa  respon keluaran  adalah:

Sebagai perbandingan antara sebelum dan sesudah ditambahkan kontroler PID diperlihatkan dalam grafik respon keluaran berikut ini:

Posted in scilab, Sistem Kontrol, Teori | Tagged , | Leave a comment

Belajar Scilab: memperbaiki error dengan menambah penguatan K dalam untai G(s)

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Pembahasan dalam posting sebelumnya, telah dibahas bagaimana menganalisa sistem kontrol dengan mengambarkan  penempatan akar dari polinomial pole/denumerator dari fungsi alih secara keseluruhan dengan menyetel besarnya K. Pembahasan dalam posting sebelumnya,diperoleh besaran K=2 agar diperoleh unjuk kerja yang terbaik. Namun dari hasil uji unjuk kerja respon keluaran masih memiliki error sebesar 25%, dengan time steady state sebesar kira-kira 5detik. Untuk lebih jelasnya klik disini untuk melihat respon keluaran dalam posting sebelumnya.

Lebih mudahnya digambarkan kembali diagram blok sistem tersebut.

Respon yang paling baik adalah dengan menset Kd= 2, selanjutnya akan ditambah penguatannya didalam untai G(s) dengan mengganti blok yang mengandung penguatan 3.0 dengan parameter K.

Maka fungsi alihnya secara loop terbuka akan menjadi:

Jadi fungsi alih open loopnya adalah:

Kemudian K akan disetel dengan faktor perkalian 3.0 (penguatan sebelumnya=3.0), sehingga K diganti dengan 3.K,  fungsi alihnya diubah menjadi:

Sekarang K akan disetel  dengan nilai 1, 5,  dan 100, dengan menggunakan scilab sebagai berikut:

-->clear all

-->s=%s
 s  =

    s   

-->deff('[TF]=tfunc(K)','TF=(3*K)/(s^2+4*s+3*K+1)')

-->t=0:0.01:15;

-->TF_1=tfunc(1)
 TF_1  =

        3
    ---------
              2
    4 + 4s + s   

-->TF_5=tfunc(5)
 TF_5  =

        15
    ----------
               2
    16 + 4s + s   

-->TF_100=tfunc(100)
 TF_100  =

        300
    -----------
                2
    301 + 4s + s   

-->RESP_1=csim('step',t,TF_1);

-->RESP_5=csim('step',t,TF_5);

-->RESP_100=csim('step',t,TF_100);

-->plot2d(t,RESP_1,style=3)

-->plot2d(t,RESP_5,style=5) 

-->plot2d(t,RESP_100,style=6)

-->xgrid(2)

-->legend(['K = 1 : belum ditambah penguatan';'K = 5';'K = 100'],4); 

-->xtitle('Perbaikan error dengan menambah penguatan dalam untai G(s) -
              Bambang Siswoyo - TEUB','detik','amplitudo');

 Setelah diuji repon keluarannya menjadi:

Kesimpulan

  • Setelah ditambahkan penguatan dalam untai G(s) error semakin mengecil.
  • Time steady state, semakin cepat, K=5 menjadi 3 detik, K=100 menjadi 3 detik dari sekitar 5 detik dengan K=1.
  • Error paling kecil mendekai nol dengan setelan K=100.
  • Sistem masih mengalami osilasi, dan overshoot hampir 70%, perlu diperbaiki ulang dengan menambahkan kontroler PID.

 

Posted in scilab, Sistem Kontrol, Teori | Tagged , | Leave a comment

Belajar Scilab: analisa root locus — aplikasi

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Dari teori analisa root locus yang telah saya posting disini, akan diaplikasikan dengan menggunakan tool scilab. Fungsi-fungsi yang akan digunakan dalam analisa root locus ini adalah:

  • deff (‘[s1,s2,...]=newfunction(e1,e2,….)’,text [,opt])
    merupakan perintah untuk mendefinisikan fungsi yang berisi variabel keluaran s1, s2 ….., nama fungsi yang digunakan dan text adalah string yang berisi perintah-perintah perhitungan.
  • roots (p)
    merupakan perintah untuk mencari akar-akar fungsi polinomial.

Testing

Misal ada persamaan polinomial variabel s:

Untuk mencari akar-akar persamaan polinomial adalah:

-->s=%s   // cara singkat mendefinisikan s sebagai variabel polinomial
 s  =

    s   

-->P=s^3+0.5*s^2+-3*s+50    // mendefinisikan persamaan polinomial
 P  =

                  2   3
    50 - 3s + 0.5s + s   

-->akar=roots(P);    // mencari akar-akarnya simpan di variabel akar

-->akar        // tampilkan
 akar  =

  - 4.1407193
    1.8203597 + 2.959981i
    1.8203597 - 2.959981i  

 Mendefinisakan fungsi

Jika persamaan polinomial diatas mengandung variabel K pada orde 2. Untuk selanjutnya K akan disetel dengan nilai-nilai yang diinginkan, maka diperlukan perintah deff. Sebagai contoh fungsi polinomial diubah menjadi:

Akar-akar akan dicari dengan menyetel K=2, 5, 8, 9. Cara mencarinya adalah:

-->s=%s
 s  =

    s   

-->deff('[tf]=tfunc(K)','tf=s^3+(K+0.5)*s^2+-3*s+50')

-->tf=tfunc(0)              // testing melihat fungsi dengan K=0
 tf  =

                  2   3
    50 - 3s + 0.5s + s     

-->roots(tf)               // testing untuk mencari akar-akarnya
 ans  =

  - 4.1407193
    1.8203597 + 2.959981i
    1.8203597 - 2.959981i  

-->roots(tfunc(2))        // cara singkat mencari akar dengan K = 2
 ans  =

  - 5.0524566
    1.2762283 + 2.8753117i
    1.2762283 - 2.8753117i  

-->roots(tfunc(5))            // mencari akar dengan K = 5
 ans  =

  - 6.9623596
    0.7311798 + 2.5781485i
    0.7311798 - 2.5781485i  

-->roots(tfunc(8))           // mencari akar dengan K = 8
 ans  =

  - 9.3870227
    0.4435114 + 2.2649062i
    0.4435114 - 2.2649062i  

-->roots(tfunc(9))          // mencari akar dengan K = 9
 ans  =

  - 10.266581
    0.3832907 + 2.1733059i
    0.3832907 - 2.1733059i  

 

Contoh aplikasi

Berikut ini sistem kontrol loop tertutup secara diagram blok digambarkan sebagai berikut:

Selesaikan blok diagram diatas:

  1. Temukan fungsi alih loop terbuka C(s)/R(s).
  2. Carilah akar-akarnya untuk setelan Kd = 0, 1, 1.5, 1.8,2, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.6, 4, 5, 10.
  3. Tentukan berapa nilai Kd agar sistem menjadi stabil.

Untuk menyelesaikan loop tertutup dari blok diagram diatas dikerjakan terlebih dahulu dimana:

Kemudian jika digambarkan kembali sistem secara diagram blok akan diperoleh:

 Terakhir akan diperoleh fungsi alih open loopnya menjadi:

 Jadi fungsi alih secara keseluruhan atau fungsi alih loop terbuka menjadi:

Selanjutnya dengan menggunakan scilab melalui console, akan dicari akar-akarnya untuk setiap penyetelan K agar  sistem menjadi stabil.

-->deff('[F]=fungsi_alih(Kd)','F=s^2+(Kd+2)*s+4.0')

-->roots(fungsi_alih(0))         // akar Kd = 0 -- tidak stabil
 ans  =

  - 1. + 1.7320508i
  - 1. - 1.7320508i  

-->roots(fungsi_alih(1))        // akar Kd = 1 -- tidak stabil
 ans  =

  - 1.5 + 1.3228757i
  - 1.5 - 1.3228757i  

-->roots(fungsi_alih(1.5))      // akar Kd = 1.5 -- tidak stabil
 ans  =

  - 1.75 + 0.9682458i
  - 1.75 - 0.9682458i  

-->roots(fungsi_alih(1.8))      // akar Kd = 1.8 -- tidak stabil
 ans  =

  - 1.9 + 0.6244998i
  - 1.9 - 0.6244998i  

-->roots(fungsi_alih(2))        // akar Kd = 2 -- stabil
 ans  =

  - 2.
  - 2.  

-->roots(fungsi_alih(2.5))     // akar Kd = 2.5 -- stabil
 ans  =

  - 3.2807764
  - 1.2192236  

-->roots(fungsi_alih(2.6))     // akar Kd = 2.6 -- stabil
 ans  =

  - 3.4357817
  - 1.1642183  

-->roots(fungsi_alih(2.7))     // akar Kd = 2.7 -- stabil
 ans  =

  - 3.5838963
  - 1.1161037  

-->roots(fungsi_alih(2.8))     // akar Kd = 2.8 -- stabil
 ans  =

  - 3.7266499
  - 1.0733501  

-->roots(fungsi_alih(2.9))     // akar Kd = 2.9 -- stabil
 ans  =

  - 3.8650972
  - 1.0349028  

-->roots(fungsi_alih(3))      // akar Kd = 3 -- stabil
 ans  =

  - 4.
  - 1.  

-->roots(fungsi_alih(3.1))    // akar Kd = 3.1 -- mulai tidak stabil
 ans  =

  - 4.1319292
  - 0.9680708  

-->roots(fungsi_alih(3.6))    // akar Kd = 3.6 -- tidak stabil
 ans  =

  - 4.7595918
  - 0.8404082  

-->roots(fungsi_alih(4))      // akar Kd = 4 -- tidak stabil
 ans  =

  - 5.236068
  - 0.7639320  

-->roots(fungsi_alih(5))      // akar Kd = 5 -- tidak stabil
 ans  =

  - 6.3722813
  - 0.6277187  

-->roots(fungsi_alih(10))     // akar Kd = 10 -- tidak stabil
 ans  =

  - 11.656854
  - 0.3431458  

Jadi daerah stabil paling tidak sudah ditemukan Kd berada antara 2 sampai 3. Untuk daerah yang lain bisa dicoba dengan nilai Kd lebih diperbesar, atau coba dengan nilai Kd menjadi negatip.

Untuk lebih meyakinkan diuji respon keluaran dengan memilih Kd yaitu: 0, 2, 3 dan 10, dengan menggunakan perintah scilab dalam console:

-->s=%s
 s  =

    s   

-->deff('[F]=fungsi_alih(Kd)','F=3.0/(s^2+(Kd+2)*s+4.0)')

-->t=0:0.01:15;

-->TF_0=fungsi_alih(0)
 TF_0  =

        3
    ---------
              2
    4 + 2s + s   

-->TF_2=fungsi_alih(2)
 TF_2  =

        3
    ---------
              2
    4 + 4s + s   

-->RESPON_3=csim('step',t,TF_3);

-->clear all

-->deff('[F]=fungsi_alih(Kd)','F=3.0/(s^2+(Kd+2)*s+4.0)')

-->t=0:0.01:15;

-->TF_0=fungsi_alih(0)
 TF_0  =

        3
    ---------
              2
    4 + 2s + s   

-->TF_2=fungsi_alih(2)
 TF_2  =

        3
    ---------
              2
    4 + 4s + s   

-->TF_3=fungsi_alih(3)
 TF_3  =

        3
    ---------
              2
    4 + 5s + s   

-->TF_10=fungsi_alih(10)
 TF_10  =

         3
    -----------
               2
    4 + 12s + s   

-->RESPON_0=csim('step',t,TF_0);

-->RESPON_2=csim('step',t,TF_2);

-->RESPON_3=csim('step',t,TF_3);

-->RESPON_10=csim('step',t,TF_10);

-->plot2d(t,RESPON_0,style=1)

-->plot2d(t,RESPON_2,style=3)

-->plot2d(t,RESPON_3,style=5)

-->plot2d(t,RESPON_10,style=8)

-->xgrid(4)

-->xtitle('Respon Kontroler dengan analisis root locus -
              Bambang Siswoyo - TEUB','detik','amplitudo');

-->legend(["Kd = 0"; "Kd = 2"; "Kd = 3"; "Kd = 10"],4);

 Hasil grafiknya sebagai berikut:

 

Kesimpulan

  • Dari grafik diatas untuk Kd=0, 2, 3 dan 10, membuktikan bahwa teori root locus membantu untuk medisain secara awal dengan menyetel parameter-parameter yang diinginkan.
  • Kd=0, menujukkan grafik berosilasi karena ada akar komplek, sedangkan akar real berada dikiri -1, sistem masih bisa menuju kestabilan.
  • Kd=2, menunjukkan respon yang paling stabil, karena akar semuanya real dan berada paling jauh dikir -1 jika dibandingkan dengan yang lainnya.
  • Kd=3, menunjukkan sistem bisa stabil walaupun sedikit teredam karena mendekati -1
  • Kd=10, menunjukkan sistem bisa stabil walaupun paling teredam jika dibandingkan dengan yang lainnya.
  • Semuanya berada pada amplitudo steady state sekitar 0.75, sehingga errornya masih sangat besar yaitu 0.25, atau 25%.
  • Untuk membuat sistem memiliki error yang kecil perlu didisain ulang dengan menambah penguatan pada untai G(s), misalnya dengan penguatan 10. Disain ulang sistem tersebut, dibahas di posting ini.

 

 

 

Posted in Program, scilab, Sistem Kontrol | Tagged , | 1 Comment

Belajar Scilab: analisa root locus — teori

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Dalam rekayasa sistem kontrol biasanya memiliki satu atau lebih parameter disain, penyesuaian atau pengaturan oleh pengguna. Hal ini sangatlah penting untuk menentukan apakah sistem yang dibuat menjadi tidak stabil. Dalam rekayasa sistem kontrol secara umum haruslah menjadi stabil agar sistem menjadi aman. Sebagai contoh, memikirkan agar mesin cuci menjadi stabil sehingga tidak membuat berjalan di lantai yang akan membuat berbahaya bagi penggunanya. Atau pesawat udara berkecepatan tinggi yang gagal tinggal landas karena getaran resonansi. Dengan penggambaran root locus (penempatan akar) dapat digunakan untuk merencanakan kestabilan sistem dengan menyetel variabel pada rentang tertentu, sehingga dapat diketahui sistem apakah menjadi tidak stabil atau berosilasi.

Dengan menelaah kembali tentang penyelesaian umum sebuah persamaan diferensial homogen, akar komplek akan menghasilkan osilasi secara sinusoida. Jika akarnya real akan menghasilkan suku-suku et. Jika akarnya adalah negatip nyata akan cenderung menurun menjadi 0 dan stabil, selain itu jika positip akan menghasilkan kenaikan secara eksponensial dan menjadi tidak stabil. Mengenai akar-akar dalam persamaan diferensial homogen orde dua, ditunjukkan dalam gambar berikut.

Perilaku unjuk kerja sistem ditentukan oleh posisi akar-akar dari penyebut atau pole pada salib sumbu komplek. Berikut ini dijelaskan hubungan unjuk kerja sistem dengan posisi akar-akar pole dari fungsi alih secara keseluruhan:

Negatip Real

Jika akar-akar polenya berupa akar negatip real, maka kerja sistem akan stabil karena cenderung menurun menuju nol.

Komplek (real = 0)


Dengan akar imajiner, maka unjuk kerja keluarannya akan menjadi sinusoida. Dengan demikian keluarannya tidak akan pernah stabil.

Negatip Real dan Komplek

Jika akar-akarnya berupa negatip real dan imajiner, biasanya berpasangan, maka unjuk kerja keluaran akan berosilasi namun semakin mengecil menuju nol. Sehingga kemungkinan sistem akan bisa menjadi stabil. Namun pada beberapa plant dihindari adanya osilasi, biasanya pada mekanik-mekanik yang besar dan berat sehingga tidak membahayakan.

Sangat negatip real dan Komplek

Dengan akar sangat negatip dan komplek osilasinya lebih kecil dan sedikit dibandingkan dengan yang diatas, sehingga akan cepat stabil.

Negatip real kembar

Kemungkinan akar-akarnya bisa negatip real namun sama atau kembar. Unjuk kerja keluarannya akan sama dengan yang sebelumnya yaitu cenderung menuju kestabilan.

Positip real kembar

Pada kondisi akar positip real kembar, unjuk kerja keluran cenderung menaik sehingga membuat sistem tidak akan pernah mencapai kestabilan.

Positip real komplek

Dengan akar positip real komplek, menjadikan unjuk keluarannya berosilasi semakin membesar. Ini harus dihindari karena akan membuat plant berbahaya.

Kesimpulan

Dengan melihat kembali solusi umum untuk suatu persamaan diferensial homogen. Akar komplek akan menghasilkan osilasi sinusoidal. Jika akar adalah nyata hasilnya akan sesuai dengan et. Jika akar-akar real negatif maka keluaran  akan cenderung meluruh sampai nol dan menjadi stabil,  sementara akar positif akan menghasilkan hal yang menaik  secara eksponensial dan menjadi tidak stabil.

Posted in scilab, Sistem Kontrol, Teori | Tagged , | 2 Comments

Belajar Scilab: metode design PID untuk kontrol kecepatan Motor DC

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Berdasarkan posting disini, yang membahas tentang pemodelan motor dc magnet permanen, disini akan diaplikasikan sebuah motor dc dengan parameter motor yang sama kedalam sistem kontrol kecepatan (speed control).

Motor dc akan diaplikasikan sebagai kontrol kecepatan dengan menerapkan kontroler P, PI, PD, dan PID.Penjelasan hanya mengulas bagaimana untuk mendapatkan fungsi alih secara keseluruhan setelah plant ditambahkan kontroler dengan unity feedback.

Untuk mendapatkan fungsi alih  digunakan scilab dihitung secara manual melalui console, dengan tujuan untuk lebih memahami cara kerja perhitungan. Disini sekedar diuji unjuk kerja sistem dengan berbagai parameter Kp, Kd dan Ki, bukan mendisain sistem kontrol dengan menentukan parameter unjuk kerja terlebih dahulu. Adapun motor dc magnet permanen yang digunakan memiliki paramater yang sama dengan posting sebelumnya adalah:

  • Momen inersia motor adalah
  • Rasio redaman dari sistem mekanik
  • Konstanta electromotive force
  • Resistansi elektrik
  • Induktansi elektrik
  • Masukan (V): sumber tegangan dc
  • Keluaran posisi poros motor
  • Rotor dan poros motor diasumsikan kaku

 

1. Menentukan Fungsi alih motor dc magnet permanen

Untuk mendisain sistem kontrol kecepatan menggunakan motor dc, terlebih dahulu harus menentukan fungsi alih motor dc dengan menggunakan parameter-parameter mekanik-elektrik dari motor dc tersebut. Dapat digunakan model matematika, atau dengan menggunakan identifikasi sistem.

Fungsi alih dari motor dc tersebut jika dituliskan kembali dari posting sebelumnya adalah:

 

 Dengan menggunakan scilab akan dicari fungsi alihnya:

-->// memasukan parameter motor J,b,K,L,R
J=0.01
 J  =

    0.01  

-->b=0.1
 b  =

    0.1  

-->R=1
 R  =

    1.  

-->L=.5
 L  =

    0.5  

-->K=0.01
 K  =

    0.01  

// zero
-->num=K
 num  =

    0.01  

// mendefinisikan polinomial s
-->s=%s
 s  =

    s   

// pole
-->denum=(J*s+b)*(L*s+R)+K^2
 denum  =

                           2
    0.1001 + 0.06s + 0.005s   

// fungsi alih
-->tf=syslin('c',num,denum)
 tf  =

             0.01
    ----------------------
                           2
    0.1001 + 0.06s + 0.005s   

 

Dari hasil perhitungan dengan menggunakan console scilab seperti diatas diperoleh fungsi alih motor dc, masukan tegangan (V) dan keluaran kecepatan rotasi dalam radian/detik, sebagai berikut:

2. Menguji respon open loop

Selanjutnya diuji unjuk kerja hubungan antara tegangan masukan motor dc dan kecepatan putar dalam radian/detik, untuk pertama kalinya untuk keperluan simulasi tegangan masukan diberikan sebesar 1V berupa fungsi step. Pengujian ini adalah pengujian respon waktu secara open loop. Dalam simulasi menggunakan nilai sebesar 1, dipakai sebagai perunit dalam sistem. Berikut ini perintah untuk menganalisa unjuk kerja motor dengan menggunakan console scilab.

-->t=0:.01:4;      // waktu uji

-->res=csim('step',t,tf);   // uji respon

-->plot(t,res)    // grafik respon

-->xgrid(4)      // gambarkan grid

Grafik responnya sebagai berikut:

Dari hasil analisa motor dc dengan tegangan masukan 1V memiliki respon: kecepatan maksimum adalah 1 radian/s tercapai pada sekitar 3 detik. Jadi dalam sistem kontrol kecepatan dalam simulasi ini, motor dc ini akan diberi tegangan antara 0-1V, kecepatan maksimal keluaran adalah  rpm atau dibulatkan saja menjadi 94 rpm.

3. Menentukan fungsi alih Sensor kecepatan

Biasanya sebagai sensor kecepatan digunakan motor dc sebagai sensor kecepatan secara konvensional. Sensor ini kadang disebut dengan sensor dinamometer, dengan prinsip kebalikan dari motor yaitu masukan kecepatan putar dan keluaran adalah tegangan dc. Jika digunakan dinamometer, harus ditentukan terlebih dahulu fungsi alihnya. Namun disini menggunakan unity feedback untuk mempermudah pembelajaran, yaitu keluaran motor disambungkan secara langsung sebagai feedback atau sama dengan H(s)=1.

4. Menggambarkan Diagram blok sistem kontrol kecepatan motor dc

Agar mendapatkan dokumentasi dan lebih mudah untuk dipelajari, gambarkan secara diagram blok sistem kontrol kecepatan secara loop tertutup yang telah didisain. Secara diagram blok hasilnya diperlihatkan sebagai berikut:

5. Mencari fungsi alih secara keseluruhan

Kontroler P

Disini sebagai kontroler adalah kontroler proporsional. Misalkan konstanta penguatan kontroler Kp = 200, maka fungsi alih secara keseluruhan, dapat dipandang sebagai satu blok dan dapat diuji secara open loop. Dengan menggunakan scilab fungsi alihnya dapat diperoleh dengan cara:

-->s=%s;        // mendefinisikan polinomial s

-->tf_motor=syslin('c',0.01,0.1001+0.06*s+0.005*s^2)   // fungsi alih motor
 tf_motor  =

             0.01
    ----------------------
                           2
    0.1001 + 0.06s + 0.005s   

-->Kp=200;       // konstanta Kp

-->G_P=Kp*tf_motor      // mencari G total
 G_P  =

               2
    -----------------------
                           2
    0.1001 + 0.06s + 0.005s   

-->H=1       // unity feedback
 H  =

    1.  

-->TF_P=G_P/(1+G_P*H)      // fungsi alih total
 TF_P  =

           400
    ----------------
                    2
    420.02 + 12s + s   

 

Kontroler PI

Kontroler PI adalah:

Dimana Ki adalah konstanta penguatan integrator dan Kp adalah konstanta penguatan proporsional. Untuk mencari fungsi alih secara keseluruhan ditentukan Kp=200 , Ki =20, maka fungsi alihnya dapat dicari dengan cara:

-->Ki=20;       // konstanta Ki

-->G_PI=(Kp+Ki/s)*tf_motor     // mencari G untuk PI
 G_PI  =

           0.2 + 2s           
  ------------------------   
                 2        3  
  0.1001s + 0.06s + 0.005s   

-->TF_PI=G_PI/(1+G_PI*H)       // mencari fungsi alih total PI
 TF_PI  =
          40 + 400s          
    ---------------------    
                      2   3  
    40 + 420.02s + 12s + s  

Kontroler PD

Kontroler PD adalah:

Dimana Kd adalah konstanta penguatan diferensiator dan Kp adalah konstanta penguatan proporsional. Untuk mencari fungsi alih secara keseluruhan ditentukan Kp=300 , Kd =20, maka fungsi alihnya dapat dicari dengan cara:

-->Kp=300; Kd=20;

-->G_PD=(Kp+Kd*s)*tf_motor
 G_PD  =

           3 + 0.2s
    ----------------------
                           2
    0.1001 + 0.06s + 0.005s   

-->H=1;

-->TF_PD=G_PD/(1+G_PD*H)
 TF_PD  =

       600 + 40s
    ---------------
                    2
    620.02 + 52s + s   

Kontroler PID

Kontroler PID adalah:

Dengan menggunakan Kp=300, Ki=200 dan Kd=10, fungsi alih secara keseluruhan dengan menggunakan scilab dapat diperoleh dengan cara:

-->Kp=300; Kd=200; Ki=10;

 -->G_PID=(Kp+Ki*1/s+Kd*s)*tf_motor
 G_PID  =
 
                      2        
         2 + 3s + 0.1s         
    -----------------------    
                   2        3  
    0.1001s + 0.06s + 0.005s   

-->H=1
 H  =

    1.  

-->TF_PID=G_PID/(1+G_PID*H)
 TF_PID  =
 
                       2      
       400 + 600s + 20s       
    ----------------------    
                       2   3  
    400 + 620.02s + 32s + s       

6. Menguji unjuk kerja respon keluaran

Terakhir adalah menguji unjuk kerja sistem kontrol kecepatan motor dc untuk melihat parameter kontrolnya, terutama time steady state dan errornya. Dengan menggunakan scilab unjuk kerja keluarannya adalah sebagai berikut.

Kontroler P

Hasil uji respon kontroler P dengan Kp=200 menggunakan scilab:

Kontroler PI

Hasil uji respon kontroler PI dengan Kp=200, Ki=20 menggunakan scilab: 

Kontroler PD

Hasil uji respon kontroler P dengan Kp=300, Kd=20 menggunakan scilab:

 

Kontroler PID

Hasil uji respon kontroler PI dengan Kp=300, Ki=200, Kd=10  menggunakan scilab:

 

Posted in scilab, Sistem Kontrol, Teori | Tagged , | 1 Comment

Motor DC: model state space

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Dalam posting sebelumnya tentang fungsi alih motor dc, diturunkan dengan menggunakan transformasi lapace diperoleh sebuah fungsi alih fungsi s. Kali ini adalah motor dc dengan model state space, kumparan medan diberi tegangan tetap atau merupakan magnet permanen. Model ini bisa digunakan dengan menggunakan pengaturan arus kumparan jangkar.

Motor dc sering diaplikasikan kedalam speed control atau servo control dengan tegangan tetap pada kumparan medan atau magnet permanen. Sebuah motor dc dengan poros dihubungkan dengan roda gila atau beban inersia, rangkaian setara elektriknya diperlihatkan dalam gambar berikut ini.

Dalam gambar diatas, dapat kita asumsikan nilai-nilai parameter yang berhubungan dengan motor tersebut. COntoh parameter-parameter berikut  diperoleh dari pengukuran:

  • Momen inersia motor adalah
  • Rasio redaman dari sistem mekanik
  • Konstanta electromotive force
  • Resistansi elektrik
  • Induktansi elektrik
  • Masukan (V): sumber tegangan dc
  • Keluaran posisi poros motor
  • Rotor dan poros motor diasumsikan kaku

Besarnya Torsi motor berhubungan dengan arus jangkar i dengan faktor konstan Kt, emf balik berhubungan langsung dengan kecepatan rotasi poros motor, secara matematika dapat dituliskan sebagai berikut:

Dalam satuan SI, Kt (konstanta jangkar), samadengan Ke (konstanta motor). Dari persamamaan diatas dapat diteulis kembali persamaannya dengan menerapkan hukum newton dan dikombinasikan dengan hukum kirchhoff.

 

Fungsi alih

Dengan menggunakan transformasi laplace dari persamaan model diatas dapat dekspresikan dengan menggunakan bentuk s:

Dengan mengeliminasi I(s), akan didapatkan fungsi alih dimana kecepatan rotasi sebagai keluaran dan tegangan sebagai masukan. Fungsi alihnya akan menjadi:

State Space

Dalam bentuk state space, persamaan diatas dapat diekpresikan dengan memilih kecepatan rotasi dan arus elektrik sebagai variabel state dan tegangan sebagai masukan. Keluaran dipilih kecepatan rotasi.

Persyaratan disain

Pertama, sebagai kompensasi motor hanya dapat berputar pada 0.1 radian/sec dengan masukan tegangan sebesar 1 Volt (akan didemontrasikan ketika respon openloop disimulasi). Persyaratan secara dasar sebuah motor harus dapat berputar sesuai dengan permintaan kecepatan, steady state error dari kecepatan motor harus lebih kecil dari 1%. Persyaratan unjuk kerja lainnya, motor harus memiliki akselerasi untuk mencapai steady state sesegera mungkin saat motor dihidupkan. Pada kasus ini diinginkan agar settling time adalah 2 detik. Jika terlalu cepat akan  peralatan, diinginkan memiliki overshoot lebih kecil dari 5%.

Jika disimulasi dengan referensi masukan sebuah masukan unit step, kecepatan keluaran motor seharusnya:

  • Settling time lebih kecil dari 2 detik
  • Overshoot lebih kecil dari 5%
  • Error steady state lebih kecil 1%

Selanjutnya respon waktu dari fungsi alih motor tersebut diatas akan diuji dengan menggunakan program scilab. Parameter-parameter yang digunakan seperti yang tertera diatas.

Fungsi Alih

-->clear all

-->s=poly(0,'s')
 s  =

    s   

-->J=0.01;

-->b=0.1;

-->K=0.01;

-->R=1;

-->L=0.5;

-->t=0:0.05:5;

-->num=K
 num  =

    0.01  

-->den=(J*s+b)*(L*s+R)+K^2
 den  =

                           2
    0.1001 + 0.06s + 0.005s   

-->h=syslin('c',num,den)
 h  =

             0.01
    ----------------------
                           2
    0.1001 + 0.06s + 0.005s  

-->r=csim('step',t,h);

-->plot (t,r)

 Hasil respon waktunya diperlihatkan dalam gambar berikut ini:

Dari plotting diatas terlihat bahwa ketika tegangan 1 Volt diberikan kepada sistem, motor hanya dapat mencapai kecepatan maksimal sekitar 0.1 radian/s. Juga motor steady state tidak dicapai dalam 3 detik, ini dibawah kriteria yang diminta dalam disain yaitu 2 detik.

Coba kita uji bagaimana jika motor diberi tegangan 220V, maka hasilnya akan menjadi:

 

State Space

-->J=0.01;

-->b=0.1;

-->K=0.01;  

-->R=1;

-->L=0.5;

-->A=[-b/J K/J; -K/L -R/L]
 A  =

  - 10.     1.
  - 0.02  - 2.  

-->B=[0; 1/L]
 B  =

    0.
    2.  

-->C=[1 0]
 C  =

    1.    0.  

-->D=0;

-->s1=syslin('domain',A,B,C,D);

-->t=0:0.05:5;

-->r=csim('step',t,s1);

-->plot (t,r)

 Hasil unjuk kerja respon waktunya sama dengan grafik diatas.

Posted in scilab, Sistem Kontrol, Teori | Tagged , | 3 Comments

Motor DC: fungsi alih

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Dalam implementasinya, sistem kontrol banyak menggunakan motor dc sebagai aktuator seperti halnya pada aplikasi speed kontrol, servo kontrol atau kontrol posisi. Dalam perancangan untuk menganalisa performa atau unjuk kerja sistem, pada perancangan sistem kontrol konvensional harus diketahui dahulu fungsi alih plant. Dengan demikian dapat ditentukan bagaimana kontroler dapat direncanakan dan diimplementasikan kedalam sistem.
Dalam posting ini, akan dijelaskan bagaimana menentukan fungsi alih dari motor DC.

Model elektrik motor DC

Dalam gambar diatas, merepresentasikan motor DC dibebani dengan sebuah beban inersia (inertial load). Tegangan diberikan kepada kumparan medan (field) dan jangkar (armature) dari motor direpresentasikan dengan Vf dan Va. Resistansi dan induktansi kumparan medan dan jangkar dari motor direpresentasikan dengan Rf, Lf, Ra dan La.

Torsi dibangkitkan oleh motor bergantung secara proporsional terhadap if dan ia yaitu arus dalam kumparan medan dan jangkar dari motor. Hubungan antara Torsi motor (Tm) dengan if dan ia secara matematik dapat dituliskan sebagai berikut:

 Pengontrolan Arus Kumparan Medan

Pada motor dc dengan pengontrolan arus kumparan medan, arus kumparan jangkar ia dibuat konstan, dan arus dari kumparan medan diberikan melalui tegangan kumparan medan Vf. Pada kasus ini, torsi motor akan meningkat secara linier dengan arus kumparan medan. Secara matematika dapat dituliskan:

Dengan transformasi laplace dari kedua sisi pad persamaan ini memberikan fungsi alih dari masukan srus menghasilkan torsi.

Pada sisi kumparan medan motor, hubungan antara tegangan dan arus secara matematik dapat dituliskan menjadi:

Fungsi alih dari masukan tegangan menghasilkan arus dalam kumparan medan, dapat ditemukan dengan transformasi laplace pada kedua sisi persamaan:

Persamaan tersebut menhasilkan persamaan sistem orde satu. Selanjutnya fungsi alih dari masukan tegangan menghasilkan torsi pada motor, dapat diperoleh dengan mengkombinasikan rumus (2) dan rumus (3), menjadi:

Persamaan diatas menghasilkan persamaan orde satu, artinya masukan tegangan bentuk step pada kumparan medan akan menghasilkan torsi motor naik secara eksponensial.

Selanjutnya, keluaran torsi motor akan diberikan kepada beban inersia. Sebuah persamaan yang menggambarkan gerak rotasi
beban inersia dapat ditemukan dengan  menjumlahkan momen-momen. Dalam gambar di kiri, merupakan penggambaran beban inersia berputar kebalikan arah jarum jam menghasilkan Tm, kemudian terdapat sebagai gaya lawannya.

atau dapat dituliskan menjadi:

Selanjutnya fungsi alih dari masukan torsi motor ke perubahan kecepatan rotasi adalah:

Persamaan (5) diatas menghasilkan sistem orde satu. Dengan mengkombinasikan persamaan (4) dan (5), akan diperoleh fungsi alih sebagai masukan tegangan kumparan medan terhadap perubahan kecepatan:

Persamaan diatas menghasilkan persamaan orde dua.

Karena , fungsi alih dari tegangan masukan kumparan medan terhadap perubahan posisi rotasi menjadi:

 Persamaan diatas menghasilkan persamaan sistem orde tiga.

Pengontrolan arus kumparan jangkar

Pada pengontrolan arus kumparan jangkar motor, arus kumparan medan if ditahan konstant, dan arus kumparan jangkar dikontrol melalui tegangan Va. Pada kasus ini, torsi motor yang dihasilkan linier terhadap arus kumparan jangkar. Dan selanjutnya dapat ditulis sebagai berikut:

Fungsi alih dari masukan arus kumparan jangkar menghasilkan torsi motor adalah:

Hubungan antara tegangan/arus pada sisi kumparan jangkar motor adalah:

Dimana Vb merepresentasikan “EMF balik” diinduksi oleh putaran dari kumparan jangkar dalam medan magnet. EMF balik Vb secara proporsional terhadap kecepatan , dimana , dengan transformasi laplace pada persamaan (9) menjadi:

 

atau menjadi:

Seperti sebelumnya, fungsi alih dari masukan torsi motor terhadap perubahan kecepatan rotasi adalah:

Persamaan (8), (11) dan (12) secara bersama-sama dapat direpresentasikan diagram blok loop tertutup (closed loop) seperti berikut ini:

Penyelesaian dari blok diagram diatas, memberikan fungsi alih sebagai masukan tegangan kumparan jangkar menghasilkan perubahan kecepatan:

Fungsi alih sebagai masukan tegangan kumparan jangkar menghasilkan perubahan posisi sudut ditemukan dengan mengalikan persamaan (13)  oleh 1/s.

 

Posted in Sistem Kontrol, Teori | Tagged , | 2 Comments

Tugas S2: Advanced Power System

Saya mau sharing hasil pekerjaan, tugas saya saat masih kuliah S2 Teknik Elektro, Universitas Brawijaya, angkatan Th. 2005 atau angkatan kedua. Tugas ini menggunakan matlab sebagai alat bantu metode komputasinya. Jadi anda perlu mengubahnya kedalam scilab jika anda menggunakan scilab.

TUGAS 1

ADVANCED POWER SYSTEM

  
 

 

 

Oleh

Ir. Bambang Siswoyo

26 Maret 2006

 

 

 

Dosen

Ir. Mahfudz Shidiq, MS.

 

PROGRAM STUDI S2 TEKNIK ELEKTRO

SEMESTER GENAP TAHUN AJARAN 2005/2006

UNIVERSITAS BRAWIJAYA

2006

1.    SOAL

 Diketahui diagram segaris jaringan sistem daya seperti yang diperlihatkan dalam gambar 1 berikut ini.

Gambar 1
Diagram segaris sistem daya

Beban sebesar itu dipenuhi oleh dua generator, salah satu generator membangkitkan daya tetap 125 MVA dengan faktor daya 0,8 (100 + j75 MVA) dihubungkan ke bus Elektro, dan satu generator yang lain bertugas sebagai slack bus dengan tegangan 150 KV dihubungkan dengan bus Mesin.

 Pertanyaan:

  1. Tentukan tegangan pada 3 bus yang lain dengan metode aliran daya a). fast decoupled. b). Gauss-Seidel Zbus.
  2. Hitung daya yang dibangkitkan oleh generator pada slack bus.
  3. Hitung total rugi-rugi daya sistem.

1.  PENYELESAIAN SECARA GAUSS-SEIDEL           


PERUNIT

Untuk memudahkan penggunaan besaran, semua besaran diubah kedalam perunit dengan tegangan mengacu pada generator slack bus pada bus mesin yaitu 150 KV dan daya mengacu pada generator tetap G1 sebesar 125 MVA . Dengan demikian 1PU adalah: 150 KV dan 125 MVA.

Selanjutnya untuk perunit dapat dihitung yaitu:

  • Impedansi dasar =
  • Tegangan dasar = 150 KV
  • Daya dasar = 125 MVA
  • Arus Dasar =                    

Kemudian seluruh impedansi saluran, daya beban dan generator,  tegangan bus dibagi dengan besaran ini.          

IMPEDANSI PERUNIT (OHM)

  1. 6 + j24 menjadi (6 + j24) / 180           = 0.0333 + j0.1333
  2. 12 + j48 menjadi (12 + j48) / 180       = 0.0667 + j0.2667
  3. 10 + j40 menjadi (10 + j40) / 180       = 0.0556 + j0.2222
  4. 16 + j64 menjadi (16 + j64) / 180       = 0.0889 + j0.3556

DAYA PERUNIT (MVA)

  1. 100 + j75 menjadi (100 + j75) / 125   = 0.8 + j0.6
  2. 80 + j40 menjadi (80 + j40) / 125       = 0.64 + j 0.32
  3. 70 + j30 menjadi (70 + j30) / 125       = 0.56 + j0.24
  4. 50 + j15 menjadi (50 + j15) / 125       = 0.4 + j0.12

 TEGANGAN PERUNIT (KV)

       150 menjadi 150/150        =

 DIAGRAM SEGARIS DALAM PERUNIT

 Diagram segaris sistem daya dalam gambar 1 dapat digambarkan kembali dengan pemberian nomer node, nomer elemen dan arah arus, diperlihatkan dalam gambar 2 berikut ini:

Gambar 2
Diagram segaris sistem daya

 Jika digambarkan kembali dengan metode graph diperlihatkan dalam gambar 3 berikut ini:


Gambar 3
Sistem daya secara graph

Matrik Elemen-node

Dari gambar 3 diperoleh matrik elemen-node sebagai berikut:

 

 Matrik incident bus A

 Adapun matrik incident bus A, dengan bus 1 sebagai referensi diperoleh sebagai berikut:

 

MATLAB

>> A = [0 -1 0; 1 -1 0; -1 0 0; 0 0 1; -1 0 1]

A =

     0    -1     0

     1    -1     0

    -1     0     0

     0     0     1

Matrik transpose A

MATLAB

>> At = A.’

At =

     0     1    -1     0    -1

    -1    -1     0     0     0

     0     0     0     1     1

Sampai disini diperoleh variabel A sebagai matrik incident dan At sebagai matrik transpose incident.

Matrik Admintansi Elemen | y |

Berdasarkan gambar 2 dan gambar 3 diperloleh matrik diagonal impedansi z elemen sebagai berikut:

to be continue

 

Posted in Uncategorized | Tagged , | Leave a comment