Category Archives: Sistem Kontrol

Berhubungan dengan sistem kontrol

Last updated by at .

Neuro-Fuzzy and Soft Computing: Jyh-Shing Roger Jang

Download

Posted in Ebook teori, Teori, Uncategorized | Tagged , | Leave a comment

Fuzzy Logic with Enginering Applications: Timoty J. Ross

Bagi yang memerlukan buku tentang fuzzy logic silakan didownload disini untuk keperluan belajar secara pribadi, dan jangan dikomersialkan tentunya.

Download

 

Posted in Ebook teori, Teori | 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

Pengaruh fungsi alih pada sensor sebagai umpan balik

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 sistem kontrol closed loop, peranan sensor sangat penting, karena digunakan sebagai umpan balik bagi kontroler digunakan untuk memutuskan berapa besarnya sinyal yang akan diberikan ke aktuator. Idealnya sebuah sensor sebagai umpan balik adalah memberikan informasi sesuai yang ada pada keluaran plant, atau dalam sistem blok memiliki konstanta 1, yaitu informasi berupa sinyal dari plant dikuatkan dengan nilai 1 sehingga sesuai dengan informasi yang sebenarnya. Dengan demikian kontroler sebagai penentu keputusan tidak akan salah menafsirkan berapa seharusnya besaran sinyal yang harus dikeluarkan ke masukan aktuator, sehingga sistem akan cepat menjadi stabil. Selain itu yang tidak kalah pentingnya sebuah sensor harus memiliki linieritas, artinya keluaran sensor harus proporsional dengan masukan sensor.

Pada kenyataannya sensor yang memiliki lineritas yang tinggi, sangatlah sulit untuk diwujudkan. Disini akan diuji sistem yang telah diposting disini, dengan mengganti fungsi alih dari umpan balik.

Sistem digambarkan kembali sebagai berikut:

Besarnya Kp, Ki dan Kd tetap dipertahankan seperti sebelumya yaitu berturut-turut: 300, 300 dan 30.

Sebelumnya dicari dahulu fungsi alih untai penguatan G(s) dengan menggunakan scilab agar dapat digunakan secara berulang-ulang:

-->clear all

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

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

                        2
    3 + 180000s + 18000s
    --------------------
                2      3
     200s + 800s + 200s    

-->t=0:0.1:7;

Selanjutnya akan diuji dengan menggunakan fungsi alih H(s) selain 1.

H(s) real lebih kecil dari 1

Sebagai contoh H(s) = 0.5, dengan menggunakan scilab dengan perintah berikut:

-->H1=0.5
 H1  =

    0.5  

-->TF1=G/(1+G*H1)
 TF1  =

                                  2
      0.0147960 + 899.99998s + 90s
    --------------------------------
                                2   3
    0.0073978 + 450.99999s + 49s + s   

-->RES_PID1=csim('step',t,TF1);

-->plot2d(t,RES_PID1,style=5);

-->xgrid();

Hasil responnya diperlihatkan sebagai berikut:

Dari respon dengan fungsi step, seperti diatas terlihat bahwa keluaran stabil sebesar dua kali dari setpointnya, yaitu sebesar 2. Hal ini dikarenakan sensor tidak memberikan informasi yang benar dari keluaran plant. Sensor memberikan sinyal keluaran setengah dari keluaran plant sesungguhnya, sehingga seharusnya stabil pada keluaran = 1, kontroler masih menerima error.

H(s) real lebih besar dari 1

Sebagai contoh H(s) = 1.5, dengan menggunakan scilab dengan perintah berikut:

-->H2=1.5
 H2  =

    1.5  

-->TF2=G/(1+G*H2)
 TF2  =

         899.99852 + 90s
    -------------------------
                              2
    1350.9977 + 138.99998s + s   

-->RES_PID2=csim('step',t,TF2);

-->plot2d(t,RES_PID2,style=5);

-->xgrid();

Hasil responnya diperlihatkan sebagai berikut:

Dari respon dengan fungsi step, seperti diatas terlihat bahwa keluaran stabil sebesar 0.667 kali dari setpointnya yaitu sekitar 0.667. Hal ini dikarenakan sensor memberikan penguatan  dari informasi yang benar dari keluaran plant. Sensor memberikan penguatan sinyal keluaran 1.5 kali dari keluaran plant sesungguhnya, sehingga seharusnya belum stabil pada keluaran = 1, kontroler sudah tidak menerima error. Hal ini terlihat bahwa keluaran teredam sehingga terlihat steady pada error yang besar.

H(s) mengandung delay

Sebagai contoh H(s) = 5s, dengan menggunakan scilab dengan perintah berikut:

-->H3=5*s
 H3  =

    5s   

-->TF3=G/(1+G*H3)
 TF3  =

                                       2
    0.0000333 + 1.9955654s + 0.1995565s
    -----------------------------------
                               2   3
        0.0023836s + 9.9866962s + s       

-->RES_PID3=csim('step',t,TF3);

-->plot2d(t,RES_PID3,style=5);

-->plot2d(t,RES_PID3,style=5);

-->xgrid()

Hasil responnya diperlihatkan sebagai berikut:

Dari respon dengan fungsi step, seperti diatas terlihat bahwa keluaran tidak akan pernah stabil, karena selalu menaik.  Hal ini dikarenakan sensor memberikan informasi yang terlambat terhadap keluaran plant, karena mengandung unsur diferensiator.

H(s) mengandung integrator

Sebagai contoh H(s) = 1/(0.05s), dengan menggunakan scilab dengan perintah berikut:

-->H4=1/(0.05*s)
 H4  =
 
      1     
    -----   
    0.05s   
 
-->TF4=G/(1+G*H4)
 TF4  =
 
                              2              
               899.9985s + 90s               
    -------------------------------------    
                                      2   3  
    17999.97 + 1800.9999s + 3.9999833s + s   
 
-->RES_PID4=csim('step',t,TF4);
 
-->plot2d(t,RES_PID4,style=5);
 
-->xgrid()

Hasil responnya diperlihatkan sebagai berikut:

Dari respon dengan fungsi step, seperti diatas terlihat bahwa keluaran tidak akan pernah stabil, karena menjadi berosilasi semakin membesar. Hal ini dikarenakan sensor memberikan informasi semakin menaik atau berlebihan terhadap keluaran plant, karena mengandung unsur integrator. Sistem yang demikian harus dihindari karena akan merusak plant, terutama plant mekanik.

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

Automatic Tuning of PID-regulators

Download

Posted in Ebook teori, Teori | Tagged , | Leave a comment

Introduction to the Mathematical Theory of Systems and Control

Download

 

 

Posted in Ebook teori, Teori | Tagged , , | Leave a comment

An Introduction to Mathematical Modelling

 

Download

 

 

 

Posted in Ebook teori, Sistem Kontrol, Teori | Tagged , , | Leave a comment

Ebook Online: Introduction to physical system modelling

Untuk membaca ebook  online, gunakan browser yang mendukung seperti Chrome.


Posted in Ebook teori, Sistem Kontrol, Teori | Tagged , , | Leave a comment

Introduction to physical system modelling

Download

Posted in Ebook teori, Sistem Kontrol, Teori | Tagged , , | Leave a comment

Ebook Online: System Dynamics

Untuk membaca ebook  online, gunakan browser yang mendukung seperti Chrome.


Posted in Ebook teori, Sistem Kontrol, Teori | Tagged , , | Leave a comment

Ebook Online: An Introduction to Mathematical Modelling

Untuk membaca ebook  online, gunakan browser yang mendukung seperti Chrome.


Posted in Ebook teori, Sistem Kontrol | Tagged , , | Leave a comment

Ebook Online: Introduction to the Mathematical Theory of Systems and Control

Untuk membaca ebook  online, gunakan browser yang mendukung seperti Chrome.


Posted in Ebook teori, Sistem Kontrol | Tagged , , | Leave a comment

Bode Plot: 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.

Ketika tranformasi fasor diaplikasikan ke sebuah fungsi alih, hasilnya dapat diekpresikan sebagai magnitude dan sudut sebagai fungsi frekwensi. Magnitude adalah penguatan dan sudut adalah pergeseran fasa. Biasanya nilai ini hanya dihitung sebagai satu frekwensi dan dan dikalikan dengan nilai masukan untuk memperoleh nilai keluaran. Pada frekwensi yang lainnya, fungsi alih akan berubah. Penguatan fungsi alih dan sudut fasa dapat diplot sebagai fungsi frekwensi, untuk memperoleh gambara utuh tentang respon sebuah sistem.

 

Dalam gambar diatas, merupakan analogi penggambaran sebuah panel equalizer dari amplifier audio yang sering dipakai dalam rumah tangga. Dalam panel terdapat tuas-tuas penguatan untuk memberikan besarnya penguatan pada daerah frekwensi dari sinyal audio. Masing-masing penguatan dibagi menjadi 6 daerah frekwensi. Dari posisi masing-masing tuas dapat secara langsung menggambarkan grafik penguatannya, seperti yang terlihat dibagian bawah gambar.

Demikian pula bode plot, merupakan upaya untuk menggambarkan berapa besar penguatan sebagai fungsi frekwensi. Dengan demikian bode plot merupakan metode untuk menggambarkan penguatan tersebut sebagai fungsi frekwensi dalam satu gambar. Pada equalizer merupakan upaya untuk menghasilkan penguatan untuk membentuk keluaran tertentu, namun pada bode plot merupakan kebilkannya yaitu keluaran sudah terbentuk, selanjutnya mengupayakan untuk menggambarkan berapa besarnya penguatan sebagai fungsi frekwensi.

 

to be continue

 

 

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

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

Scilab code: transfer function and performance of control systems using DC Motor Model

This post contains the simple code written for Scilab, associated with the modeling of permanent magnet dc motor. The code of this program are made by me and is for all who need it. So is open source, you can modify as appropriate. Do not forget you also include my name and my website link in your application or website, and do not forget me say thank you.

Source Code 1

Download

 DC motor used is a permanent magnet, with the default parameters are:

  1. Moment of inertia of the rotor: 
  2. Electromotive force constant:  
  3. Damping ratio of the mechanical system:
  4. Electric resistance:
  5. Electric inductance: 

If you want another dc motor parameters, please edit that variable in the source program.  Enter the parameters of the control constants Kp, Ki, and Ki, then the dc motor transfer function and the total transfer function of each controller P,  PI, PD and PID will be displayed.

Also, the graphics performance of the control system for each controllers P, PI, PD and PID will be generated.

 

 

Posted in Program | Tagged , , | Leave a comment

Root Locus Analysis

Referensi ini sangat berguna untuk belajar mengenai sistem kontrol guna menganalisa sistem menggunakan root locus. Root locus masih sering digunakan untuk menganalisa kestabilan dengan melihat penempatan akar-akar dari pole dan zero.

Download

Posted in Ebook 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