Download - LAPORAN PENELITIAN FAKULTAS
LAPORAN PENELITIAN FAKULTAS
DESAIN ESTIMASI KECEPATAN DENGAN EXTENDED KALMAN
FILTER DAN SINGLE NEURON-FUZZY KECEPATAN
CONTROLLER UNTUK SENSORLESS BRUSHLESS DC MOTOR
PENGUSUL
Nama : Dr. Muhammad Rif’an, ST., MT | NIDN : 0022107404
PENELITIAN INI DIBIAYAI OLEH DANA
BLU FAKULTAS TEKNIK UNIVERSITAS NEGERI JAKARTA
BERDASARKAN SURAT KEPUTUSAN REKTOR
NOMOR : 482/SP/2017
TANGGAL : 5 MEI 2017
FAKULTAS TEKNIK
UNIVERSITAS NEGERI JAKARTA
NOPEMBER 2017
ii
HALAMAN PENGESAHAN
Judul Penelitian : DESAIN ESTIMASI KECEPATAN DENGAN
EXTENDED KALMAN FILTER DAN SINGLE
NEURON-FUZZY KECEPATAN CONTROLLER
UNTUK SENSORLESS BRUSHLESS DC MOTOR
Pelaksana
a) Nama Lengkap : Dr. Muhammad Rif’an, ST., MT
b) NIDN : 0022017404
c) Jabatan Fungsional : Lektor
d) Program Studi : D3 Elektronika
e) Nomor HP : 08567074880
f) Alamat surel : [email protected]
Anggota (1)
a) Nama Lengkap :
b) NIDN :
c) Perguruan Tinggi :
Anggota (2)
a) Nama Lengkap :
b) NIDN :
c) Perguruan Tinggi
Instansi Mitra
Nama Institusi Mitra : -
Alamat : -
Penanggung Jawab :
Biaya Penelitian : Rp 10.800.000,-
Jakarta, 1 Nopember 2017
Mengetahui,
Dekan Fakultas Teknik, Ketua
Dr. Agus Dudung R., M.Pd Dr. Muhammad Rif’an, ST., MT
NIP. 19650817 199102 1 001 NIP. 19741022 200112 1 001
Menyetujui,
Ketua Lembaga Penelitian dan
Pengabdian Kepada Masyarakat UNJ
Dr. Ucu Cahyana, Msi
NIP. 196608201994031002
iii
RINGKASAN
Metode estimasi dan kontrol BLDC disajikan dalam makalah ini. Karena BLDCM adalah
motor tanpa kuas maka BLDC membutuhkan posisi sensor untuk memutar rotor dan ini
adalah kelemahan dari BLDC. Algoritma sensorless Extended Kalman Filter (EKF)
diusulkan untuk menutupi kelemahan ini. Selain itu, BLDC juga merupakan sistem non linier.
Dengan demikian, sulit untuk mendapatkan pengendali parameter PID yang akurat dan bagus
dengan metode PID konvensional. Dalam tulisan ini, jaringan saraf tunggal - Fuzzy PID
untuk BLDC dikembangkan. Hasil percobaan menunjukkan bahwa EKF mampu
memperkirakan kecepatan BLDC dan jaringan saraf tunggal - Kontroler Fuzzy PID membuat
sistem BLDC lebih cepat.
Kata Kunci: Extended Kalman; Single Nueron; BLDC; Sensorless
iv
PRAKATA
Puji syukur kami panjatkan kehadirat Allah SWT, Tuhan penguasa alam semesta, atas
perkenaNyalah laporan perkembangan penelitian fakultas ini dapat dilaksanakan dengan baik.
Penelitian ini merupakan pengembangan desain estimasi kecepatan motor menggunakan
estimasi berbasis Ekstended Kalman Filter dan pengendali neuro fuzzy. Pada laporan
perkembangkan penelitian kali ini akan disampaikan perihal seputar proses pelaksanaan
penelitian semenjak kontak penelitian sampai penyampaian progress report.
Pada kesempatan ini peneliti mengucapkan banyak terima kasih kepada Dekan Fakultas
Teknik yang telah memberikan kepercayaan kepada tim peneliti untuk melakukan penelitian
tentang estimasi kecepatan motor tahun 2017 ini.
Sebagai bagian dari proses pembelajaran, laporan perkembangan penelitian ini tidak luput
dari kekeliruan dan kekurangan, oleh karena itu kami tim peneliti mohon maaf sekaligus
terbuka terhadap masukan dan kritikan bagi perbaikan hasil penelitian kami kelak.
Peneliti
v
DAFTAR ISI
HALAMAN PENGESAHAN ................................................................................................... ii
RINGKASAN .......................................................................................................................... iii
PRAKATA ................................................................................................................................ iv
DAFTAR ISI .............................................................................................................................. v
DAFTAR GAMBAR ................................................................................................................ vi
DAFTAR LAMPIRAN ............................................................................................................ vii
BAB I PENDAHULUAN .......................................................................................................... 1
BAB II TINJAUAN PUSTAKA ............................................................................................... 2
Motor Brushless Dirrect Current ........................................................................................... 2
Model Matematika Motor Brushless DC ............................................................................... 4
Motor Brushless DC Driver .................................................................................................. 7
Sensorless BLDC Motor ........................................................................................................ 7
Kalman Filter ......................................................................................................................... 8
Gain Kalman Filter .............................................................................................................. 11
Algoritma Kalman Filter ...................................................................................................... 14
Extended Kalman Filter ....................................................................................................... 15
Logika Fuzzy ....................................................................................................................... 16
BAB III TUJUAN DAN MANFAAT PENELITIAN ............................................................. 17
Tujuan Penelitian ................................................................................................................. 17
Manfaat Penelitian ............................................................................................................... 17
BAB IV METODE PENELITIAN .......................................................................................... 18
Tempat dan Waktu Penelitian .............................................................................................. 18
Metode Penelitian ................................................................................................................ 18
BAB V HASIL DAN LUARAN YANG DICAPAI................................................................ 20
BAB VI KESIMPULAN DAN SARAN ................................................................................. 23
DAFTAR PUSTAKA .............................................................................................................. 24
LAMPIRAN ............................................................................................................................. 25
vi
DAFTAR GAMBAR
Gambar 1. Bagian dan Konstruksi Motor BLDC ...................................................................... 3
Gambar 2. Blok Pengaturan Brushless DC Motor ..................................................................... 3
Gambar 3Rangkaian Ekuivalen Motor Brushless DC ............................................................... 5
Gambar 4 Blok Diagram Pengendalian Kecepatan Motor Brushless DC ................................. 7
Gambar 5 Blok Diagram Pengendalian Kecepatan Motor Brushless DC menggunakan
Kalman Filter ............................................................................................................................. 8
Gambar 6 Blok Diagram Sistem Diskrit .................................................................................... 9
Gambar 7 Blok Diagram Sistem Diskrit dengan noise w .......................................................... 9
Gambar 8. Blok Diagram Sistem Diskrit dengan noise w dan v ............................................. 10
Gambar 9 Blok Diagram Estimasi Kalman Filter .................................................................... 10
Gambar 10 Ilustrasi Kalman Filter .......................................................................................... 15
Gambar 11 Struktur Pengendali Logika Fuzzy ........................................................................ 16
Gambar 12 Alur Penelitian ...................................................................................................... 19
Gambar 13 Speed Response pada ref 1000 RPM .................................................................... 20
Gambar 14 Respon aktual dan estimasi dengan EKF .............................................................. 21
Gambar 15 Respon aktual dan estimasi dengan EKF menggunakan pengendali PI .............. 21
Gambar 16 Respon aktual dan estimasi dengan EKF menggunakan Pengendali Neuron-
Fuzzy ........................................................................................................................................ 22
vii
DAFTAR LAMPIRAN
Lampiran 1 Biodata SIDOS ..................................................................................................... 25
Lampiran 2 Source Code ......................................................................................................... 46
Lampiran 3 Publikasi ............................................................................................................... 54
1
BAB I PENDAHULUAN
Motor DC tanpa kabel (BLDC) semakin banyak digunakan di berbagai sektor seperti
otomotif, industri, dan rumah tangga karena karakteristik kecepatan dan torsi yang lebih baik,
efisiensi tinggi, respon dinamis tinggi, umur operasi yang panjang, perawatan yang rendah,
keandalan dan daya tahan yang baik. BLDC adalah motor tanpa kuas dan dikontrol secara
elektronik, lalu untuk memutar rotor, BLDC memerlukan informasi posisi rotor dengan posisi
sensor. Selain itu, hal itu juga menyebabkan masalah dengan biaya tinggi dan kehandalan
sensor. Banyak penelitian telah mengembangkan teknik tanpa sensor untuk mengatasi
masalah ini. Solusi efektif akan mendorong penggunaan BLDC ke semua area sebagai
keandalan berbiaya rendah dan tinggi.
Dalam beberapa dekade terakhir, banyak solusi drive tanpa sensor telah dikembangkan untuk
menggantikan posisi sensor, yaitu dengan back-trapesium-EMFs [1-9]. Penginderaan kembali
EMF voltage [1-2], integrasi EMF belakang [5-6], deteksi konduksi dioda freewheeling [7],
estimasi fluks [3] - [4], dan teknik modifikasi motor [9]. Namun, hampir seluruhnya tidak
mampu bekerja dengan baik pada semua kecepatan dan masih ada masalah akurasi,
kompleksitas, dan kehandalan.
Di sisi lain, kontrol motor penggerak BLDC memerlukan proses yang kompleks seperti
pemodelan, pengendalian skema seleksi, simulasi dan parameter tuning. Diperlukan
pengetahuan dan pengalaman untuk mendapatkan dan menyempurnakan parameter
pengendali agar mendapatkan kinerja yang optimal. Baru-baru ini, berbagai solusi kontrol
modern diusulkan untuk merancang kontrol optimal motor BLDC [10-11]. Namun, metode
ini tidak baik karena belum bisa mendapatkan parameter kontrol optimal.
Dalam tulisan ini, Extended Kalman Filter Estimator dan Single Neuron-Fuzzy Controller
scheme diusulkan untuk estimator dan kontrol kecepatan BLDCM. Makalah ini disusun
dengan cara berikut. Bagian 2 menjelaskan motor BLDC, bagian 3 menjelaskan perancangan
Estimator Kecepatan Kalman Extended untuk Motor DC Tanpa Sensorless Brushless, bagian
4 secara singkat menggambarkan rancangan Single Neuron-Fuzzy Speed Controller untuk
Motor DC Brushless tanpa sensor, bagian 5 menyajikan perbandingan antara Hasil yang
diperoleh dengan metode Single Neuron-Fuzzy dan Sensorless dan akhirnya, bagian 6
menyimpulkan makalah ini
2
BAB II TINJAUAN PUSTAKA
Motor Brushless Dirrect Current
Motor Brushless DC (BLDC) termasuk dalam jenis motor sinkron. Hal ini berarti bahwa
medan magnet yang dihasilkan oleh stator dan medan magnet yang dihasilkan oleh rotor
berputar pada frekuensi yang sama. Motor BLDC tidak mengalami "slip" yang biasanya
ditemui pada motor induksi. Pada umumnya motor BLDC terdiri dari rotor sebagai bagian
yang berputar yang merupakan magnet permanen dan stator sebagai bagian yang tetap yang
merupakan kumparan konduktor pembawa arus. Pada konfigurasi ini, motor BLDC hampir
sama dengan motor DC yang memiliki komutator terbalik, yaitu bagian magnet yang berputar
dan bagian konduktor tetap diam. Pada umumnya stator motor BLDC memiliki tiga
kumparan kawat yang terhubung dengan konfigurasi bintang dan saling berpasangan
membentuk kutub yang berjumlah genap.
Karena tidak adanya sikat (brushless), komutasi motor BLDC dikendalikan secara elektronik.
Untuk memutar motor BLDC, kumparan stator harus diberi tegangan secara berurutan. Hal
terpenting dalam proses ini adalah bagaimana mengetahui posisi rotor agar dapat diketahui
bagian mana yang harus diberi tegangan. Pada umumnya posisi rotor dideteksi menggunakan
sensor Hall Effect yang tertanam di stator dan sebagian besar motor BLDC memiliki tiga
sensor sensor Hall Effect dengan rentang 60 derajat. Setiap kali kutub magnet rotor melewati
dekat hall Sensor, maka akan dibangkitkan sinyal tinggi atau rendah yang menunjukkan
kutub utara atau kutub selatan yang melalui sensor tersebut. Berdasarkan kombinasi dari tiga
sinyal sensor ini, urutan yang tepat pergantian pemberian tegangan dapat ditentukan.
Setiap urutan komutasi, masing-masing phasa kumparan pada stator memiliki keadaan yang
berbeda-beda yaitu kumparan pertama diberi tegangan positif, kumparan kedua diberi
tegangan negatif dan kumparan ketiga tanpa tegangan. Dengan adanya perbedaan polaritas
tegangan pada masing-masing kumparan, maka akan terbentuk medan magnet yang akan
berinteraksi dengan medan magnet permanen pada rotor. Agar motor berjalan, medan magnet
yang dihasilkan oleh kumparan harus menggeser posisi secara bergantian sehingga rotor akan
berputar untuk mengejar ketinggalan dengan bidang medan magnet stator. Bagian dan
Konstruksi Motor BLDC ditunjukkan pada Gambar 2.1.
3
Gambar 1. Bagian dan Konstruksi Motor BLDC
Setiap 60 derajat putaran listrik, Hall Sensor berubah keadaannya. Dibutuhkan enam langkah
untuk menyelesaikan siklus putaran listrik ini. Namun, satu siklus putaran listrik mungkin
tidak sesuai dengan revolusi mekanik lengkap rotor. Jumlah siklus listrik untuk
menyelesaikan rotasi mekanik ditentukan oleh jumlah pasangan pole pada rotor. Untuk setiap
pasang pole rotor, satu siklus listrik selesai. Jadi, jumlah siklus / rotasi listrik sama dengan
jumlah pasangan pole rotor. Untuk mengontrol pemberian tegangan motor BLDC digunakan
inverter 3 phasa yang terdiri dari enam switch dan switch ini diaktifkan berdasarkan input
sensor Hall. Teknik Pulse Width Modulated (PWM) digunakan untuk mengubah keadaan ON
atau OFF pada switch. Untuk mengatur kecepatan, frekuensi sinyal Pulse Width Modulated
(PWM) yang digunakan harus lebih tinggi dari frekuensi motor. Frekuensi PWM harus
minimal 10 kali dari frekuensi maksimum motor. Kecepatan dan torsi motor tergantung pada
kekuatan medan magnet yang dihasilkan oleh kumparan stator dari motor yang berbanding
lurus dengan arus yang melaluinya. Oleh karena itu menyesuaikan tegangan akan mengubah
kecepatan motor. Blok Pengaturan Brushless DC Motor ditunjukkan oleh Gambar 2.2.
Gambar 2. Blok Pengaturan Brushless DC Motor
4
Motor BLDC memiliki banyak keunggulan dibandingkan motor DC bersikat dan motor
induksi. Beberapa di antaranya adalah:
Kecepatan yang lebih baik dibandingkan torsi karakteristik
respon tinggi dinamis
Efisiensi tinggi
umur operasi panjang
operasi bersuara
kecepatan berkisar Tinggi
Ukuran kompak
momen inersia Rendah
torsi tinggi terhadap volume
Karena keuntungan di atas, BLDC motor digunakan dalam berbagai aplikasi. Namun
demikian motor BLDC memiliki keterbatasan karena kebutuhan yang lebih mahal pada
kontrol elektronik disebabkan adanya sensor posisi seperti Hall efek, resolver, atau encoder
sebagai sumber informasi untuk melakukan kontor elektronik. Disamping itu, pemasangan
sensor ini menyebabkan beberapa masalah seperti: (1) meningkatkan ukuran dan biaya; (2)
dapat mengurangi keandalan dan ketahanan sistem karena adanya komponen tambahan dan
kabel-kabel; (3) sensitivitas sensor tergantung kepada suhu, cahaya atau kontaminasi yang
timbul akibat operasi motor; (4) kesulitan instalasi dan pemeliharaan sensor.
Untuk itu, pada penelitian ini akan dibahas mengenai penggunaan motor BLDC tanpa sensor.
Skema ini ditempuh untuk mengurangi masalah yang timbul akibat adanya sensor dan untuk
mengestimasi kecepatan dan posisi rotor digunakan metode Ensemble Kalman Filter
sehingga dapat digunakan untuk pemberian tegangan yang tepat.
Model Matematika Motor Brushless DC
Distribusi fluks pada motor BLDC berbentuk trapesium dan karena itu model kerangka acuan
rotor d-q tidak berlaku. Penurunan model motor BLDC didasarkan pada asumsi bahwa arus
induksi pada rotor karena stator bidang harmonik diabaikan, rugi besi dan rugi-rugi lainnya
juga diabaikan. Motor dianggap memiliki tiga fase. Pemodelan motor BLDC dilakukan
dengan menggunakan persamaan berdasarkan rangkaian ekuivalen dinamis dari motor BLDC.
Selain itu, diasumsikan juga bahwa motor BLDC memiliki konfigurasi bintang pada
gulungan stator, sistem tiga fasa yang seimbang dan celah udara yang seragam. Induktansi
5
bersama antara gulungan fasa stator juga dapat diabaikan jika dibandingkan dengan
induktansi diri. Rangkaian ekuivalen motor BLDC ditampilkan pada Gambar 2.3 [24].
Gambar 3Rangkaian Ekuivalen Motor Brushless DC
Dengan Ra=Rb=Rc=R adalah hambatan motor dan LA=LB=LC=L adalah induktansi motor,
dengan menggunakan persamaan KCL dapat diturunkan:
(1a)
(1b)
(1c)
Dengan ea, eb, dan ec adalah back-emf setiap phasa yang memiliki persamaan:
(2a)
(2b)
(2c)
dan
{
(3)
6
Dengan persamaan torsi
(4)
Dan
* (
) (
) + (5)
Dengan kb : konstanta back-emf, kt : konstanta torsi, J: momen inersia, B: hambatan, TL:
Torsi beban, Te: Torsi elektrik, e: posisi rotasi elektrik, dan n: kecepatan rotasi.
Berdasarkan persamaan 1, 2, 4, dan.5 dapat dibentuk persamaan keadaan motor BLDC dalam
bentuk:
Dengan
[ ] (6a)
[ ] (6b)
[
(
)
(
)
(
)
(
)
]
(6c)
[
]
(6d)
[
] (6e)
7
Motor Brushless DC Driver
Untuk mengatur kecepatan motor BLDC digunakan rangkaian drive yang terdiri dari
pengendali kecepatan dan pengendali arus, serta inverter. Secara keseluruhan pengendalian
kecepatan motor BLDC ditunjukkan pada Gambar 4.
Gambar 4 Blok Diagram Pengendalian Kecepatan Motor Brushless DC
Kecepatan motor diambil dan dibandingkan dengan kecepatan referensi menggunakan
penjumlah. Error yang dihasilkan diperkirakan sebagai e=r-n. Error yang didapat
diberikan kepada pengendali kecepatan untuk ditransformasi menjadi torsi referensi.
Keluaran dari pengendali kecepatan adalah torsi referensi dan selanjutnya arus referensi
diturunkan berdasarkan torsi referensi ini. Arus referensi dibandingkan dengan arus stator
aktual dan selisih yang dihasilkan diteruskan sebagai masukan kepada inverter dan PWM.
Sensorless BLDC Motor
Pengunaan hall sensor pada motor BLDC diperlukan untuk memberikan informasi posisi
sehingga dapat diketahui dan dikendalikan kecepatan motor BLDC. Namun demikian,
penggunaan sensor dapat mengurangi ketahanan dalam sistem kontrol motor. Beberapa
dekade telah dikembangkan metode pengendalian tanpa sensor (sensorless) dan telah menjadi
bidang penelitian yang signifikan. Penggunaan sensorless memiliki banyak keuntungan
seperti pengurangan biaya, peningkatan keandalan, penghapusan kesulitan dalam
mempertahankan sensor, dll. Metode sensorless sangat direkomendasikan digunakan dalam
lingkungan industri berminyak, lokasi kurang dapat diakses, dan di mana saja dengan
keterbatasan lingkungan. Terdapat beberapa metode sensorless yang telah diusulkan sampai
saat ini, diantaranya:
Speed Controller
PWM & Inverter BLDCM
Hall Sensor
r
n
+
-
e iref
Vref
Current Controller
ref
8
Metode yang menggunakan pengukuran arus, tegangan, dan persamaan motor
fundamental, serta manipulasi aljabar,
Metode menggunakan observer,
Metode menggunakan metode sensoring back-emf, dan
Metode menggunakan teknik sensorless starting.
Pada penelitian ini akan digunakan metode estimasi dengan memanfaatkan metode kalman
filter. Dengan menggunakan estimasi kalman filter, maka blok diagram pengaturan kecepatan
menjadi seperti yang ditunjukkan pada Gambar 5 .
Gambar 5 Blok Diagram Pengendalian Kecepatan Motor Brushless DC menggunakan Kalman Filter
Kalman Filter
Pada tahun 1960, R.E. Kalman menerbitkan makalah tentang solusi rekursif untuk masalah
filter data-diskrit linear (disebut Kalman Filter). Sejak saat itu dan didukung oleh kemajuan
komputasi digital, Kalman filter telah menjadi subyek penelitian yang luas dan digunakan
dalam berbagai aplikasi. Kalman Filter merupakan seperangkat persamaan matematika yang
menyediakan solusi komputasi (rekursif) efisien dari metode kuadrat-terkecil. Filter ini
memiliki keunggulan dalam beberapa aspek misalnya mendukung estimasi keadaan dari masa
lalu, sekarang, dan bahkan masa depan, serta tetap dapat mengestimasi walaupun ketika
persamaan sistem yang dimodelkan tidak diketahui secara pasti.
Diskrit Kalman Filter
Didefiniskan sistem linear diskrit dengan persamaan:
(7)
Speed Contr
PWM & Inverter BLDCM
Kalman Filter
r
n
+
-
e iref
Vref
Current Contr
ref
9
Dengan keadaan adalah skalar, a dan b adalah konstanta, serta masukkan adalah skalar,
dan k adalah waktu sampling. Persamaan 7 dapat digambarkan ke dalam blok diagram seperti
Gambar 6. dengan Z-1 adalah waktu tunda.
Gambar 6 Blok Diagram Sistem Diskrit
Misalkan terdapat noise pada sistem, sehingga persamaan 2.7 menjadi
(8)
Dengan adalah white noise dengan mean nol dan kovarians Q dan berkorelasi dengan
input. Sehingga persamaan 8. dapat digambarkan seperti Gambar 7.
Gambar 7 Blok Diagram Sistem Diskrit dengan noise w
Berdasarkan persamaan 8. Kalman Filter digunakan untuk menyaring sinyal x sehingga efek
dari noise w dapat diminimalkan. Bahkan lebih dari itu, Kalman Filter merepresentasikan
bahwa sinyal x tidak dapat diukur secara langsung, namun dengan yang diukur adalah sinyal
keluaran z yang merupakan perkalian konstanta h dengan x dan ditambahkan dengan noise v,
sehingga persamaan keluaran sistem menjadi
(9)
Nilai z tergantung pada nilai saat ini dari x dan ditentukan oleh gain h. Selain itu, pengukuran
memiliki noise sendiri, v, yang merupakan white noise dengan mean nol dan kovarians R
10
yang tidak berkorelasi dengan input atau dengan noise w. Dua sumber noise adalah
independen satu sama lain dan mandiri dari input.
Dan blok diagram sistem menjadi seperti Gambar 8.
Gambar 8. Blok Diagram Sistem Diskrit dengan noise w dan v
Dengan demikian Kalman Filter digunakan untuk menyaring z sehingga dapat
memperkirakan variabel x dan meminimalkan efek dari w dan v. Untuk tujuan ini, Kalman
merepresentasikan filter dengan blok diagram estimasi sebagai berikut:
Gambar 9 Blok Diagram Estimasi Kalman Filter
Perbedaan gambar sistem asli dengan gambar sistem untuk estimasi adalah adanya yang
disebut sebagai nilai awal perkiraan dengan persamaan
11
(10)
Perkiraan awal digunakan untuk memprediksi dan perbedaan antara output estimasi
dengan output aktual disebut residual atau inovasi dengan persamaan
(11)
Jika residual kecil, berarti perkiraan yang dilakukan adalah baik, dan jika residual besar maka
perkiraan tidak begitu baik. Kalman Filter menggunakan informasi ini untuk memperbaiki
perkiraan yang disebut perkiraan baru. Sehingga persamaan perkiraan baru menjadi:
(12)
Hal utama Kalman Filter adalah menemukan nilai G yang digunakan untuk memperbaiki
perkiraan baru sehingga didapat nilai estimasi yang optimal.
Gain Kalman Filter
Untuk menetukan nilai Gain Kalman Filter didefinisikan kesalahan dari perkiraan yang
dilakukan. Terdapat dua kesalahan yaitu kesalahan priori dan kesalahan posteriori. Masing-
masing didefinisikan sebagai selisih antara nilai aktual dan estimasi (baik priori atau
posteriori) seperti persamaan:
(13a)
(13b)
Dan rata-rata kuadrat errornya adalah
{
} (14a)
{ } (14b)
Kalman Filter meminimalkan varians posteriori, pk , dengan memilih sesuai nilai G. Subtitusi
persamaan 12 ke persamaan 14b dan didapat
{
} (15)
Untuk menemukan nilai G yang meminimalkan varians, maka turunan pk terhadap G harus
nol. Sehingga persamaannya menjadi
12
,(
) -
{
}
{
}
{
} {
}
,
(
) -
,
( )
-
(16)
Penyelesaian persamaan 16 dilakukan dengan menyelesaiakan secara terpisah antara
pembilang dan penyebut, sehingga
Subtitusi persamaan 9 ke persamaan pembilang 16
{
}
{
}
= {
}
{
} (17)
Noise v, adalah tidak berkorelasi baik input atau perkiraan x priori, sehingga
{ } dan persamaan 17 menjadi
{
}
{ }
{ }
(18)
Dengan metode yang sama dapat dilakukan penyederhanaan untuk penyebut, sehingga
didapat persamaan
13
Dengan R adalah { }, sehingga persamaan untuk gain Kalman Filter adalah
(19)
Pada persamaan 19 terdapat yang didapat dari {
} dan penurunan
persamaannya adalah
{
}
{ }
{ }
{ } {
}
(20)
Sedangkan merupakan nilai sebelumnya dengan penurunan persamaannya adalah
{ }
{
}
{
}
{
}
{
}
{ } {
}
{ } {
}
(21)
Subtitusi persamaan 19 ke persamaan 21 untuk mengeliminasi R didapat
(22)
14
Algoritma Kalman Filter
Setiap langkah dalam Kalman Filter dimulai dengan inisialisasi sistem yang terdiri dari Gain,
B dan H . Keadaan x , input u, dan output z. Setiap sampling yang dilakukan diberi indeks k.
Proses ini memiliki dua langkah, langkah prediksi (yang menghitung perkiraan keadaan
berikutnya berdasarkan pada pengukuran terakhir dari output), dan langkah koreksi (yang
menggunakan nilai saat ini dari perkiraan untuk memperbaiki hasil yang diberikan oleh
langkah prediktor).
Langkah Prediksi
Hitung keadaan awal dengan persamaan
Hitung kovarian priori dengan persamaan
Langkah Koreksi
Hitung Gain Kalman Filter dengan persamaan
Hitung keadaan posteriori dengan persamaan
Hitung kovarian posteriori dengan persamaan
Ilustrasi Algoritma Kalman Filter disajikan pada Gambar 10.
15
Gambar 10 Ilustrasi Kalman Filter
Extended Kalman Filter
Extended Kalman Filter (EKF) adalah Kalman Filter untuk sistem yang bersifat nonlinier.
Sitem Nonlinier yang didefinisikan berbentuk:
(23)
Dan keluaran sistem yang diukur
(24)
Dengan penurunan yang sama seperti Kalman Filter, didapat algoritma untuk EKF adalah
sebagai berikut:
Langkah Prediksi
1. Hitung keadaan awal dengan persamaan
2. Hitung kovarian priori dengan persamaan
Langkah Koreksi
3. Hitung Gain Kalman Filter dengan persamaan
4. Hitung keadaan posteriori dengan persamaan
16
5. Hitung kovarian posteriori dengan persamaan
Logika Fuzzy
Logika fuzzy adalah metode tujuan umum yang fleksibel untuk menerapkan fungsi non linier.
Jadi berguna dalam aplikasi kontrol. Salah satu kelebihannya adalah kombinasi pengetahuan
ahli, yang diungkapkan secara linguistik atau numerik, pembelajaran mesin, atau teknik
lainnya dapat digunakan dalam desainnya. Jadi, dalam tulisan ini, digunakan untuk menyetel
parameter K secara online.
Biasanya, Fuzzy Logic memiliki tiga tahap utama, seperti yang ditunjukkan pada Gambar 4,
yaitu sebagai berikut (1) Fuzzification, sebuah proses mengubah masukan tajam ke input
fuzzy. (2) Mesin inferensi dan basis aturan, pada tahap ini, input fuzzy diubah menjadi
keluaran fuzzy dengan menangani aturan fuzzy dan sebagai hasilnya, respon yang sesuai
dengan input dihasilkan. Biasanya, pengetahuan ahli tentang bagaimana mengendalikan
tanaman dapat diungkapkan dengan seperangkat aturan kontrol linguistik. Jadi aturan dasar
bisa diatur sesuai dengan pengetahuan ahli. (3) Defuzzifikasi, sebuah proses menghasilkan
keluaran yang tajam pada basis yang kabur.
Gambar 11 Struktur Pengendali Logika Fuzzy
17
BAB III TUJUAN DAN MANFAAT PENELITIAN
Tujuan Penelitian
Tujuan penelitian ini adalah mengembangkan Desain Estimasi Kecepatan Dengan Extended
Kalman Filter Dan Single Neuron-Fuzzy Kecepatan Controller Untuk Sensorless Brushless
Dc Motor.
Manfaat Penelitian
Manfaat dari penelitian ini adalah hasil uji coba peneltian ini dapat dikembangkan dalam
skala perangkat keras yang dapat dimanfaatkan untuk pengembangan kendaraan berbasis
motor listrik.
18
BAB IV METODE PENELITIAN
Tempat dan Waktu Penelitian
Pelaksanaan penelitian guna Desain Estimasi Kecepatan Dengan Extended Kalman Filter dan
Single Neuron-Fuzzy Kecepatan Controller untuk sensorless Brushless DC akan dilakukan di
Laboratorium Elektronika, Jurusan Teknik Elektro, Fakultas Teknik, Universitas Negeri
Jakarta, dengan waktu penelitian dari April hingga Oktober 2017.
Metode Penelitian
1). Pra-penelitian
Tahap ini menghimpun data dan informasi terkait Estimasi Kecepatan Dengan
Extended Kalman Filter dan Single Neuron-Fuzzy.
2). Penyusunan Instrumen
Pada tahap ini akan dilakukan penyusunan algoritma Estimasi Kecepatan
Dengan Extended Kalman Filter dan Single Neuron-Fuzzy. Pengujian
dilakukan sampai mendapatkan estimasi kecepatan.
3). Validasi Instrumen
Tahap ini melakukan pengujian desain Estimasi Kecepatan Dengan Extended
Kalman Filter dan Single Neuron-Fuzzy Kecepatan Controller untuk
sensorless Brushless DC sehingga didapatkan estimasi kecepatan yang stabil.
Pengujian dilakukan secara simulasi menggunakan komputer hingga
mendapatkan keluaran yang stabil dan sesuai dengan kecepatan sebenarnya.
4). Pengumpulan Data
Tahap ini melakukan pembangunan rangkaian berdasarkan desain yang
dirancang dan dilakukan pengujian, serta dikumpulkan datanya.
19
Gambar 12 Alur Penelitian
5). Analisis Data dan Penyusunan Laporan
Tahap ini menganalisi data dan menyimpulkan hasil penelitian berdasarkan hasil uji coba.
Kesimpulan diharapkan dapat menghasilkan suatu Desain Estimasi Kecepatan Dengan
Extended Kalman Filter dan Single Neuron-Fuzzy Kecepatan Controller untuk sensorless
Brushless DC.
Literatur
Penyusunan
Algoritma
Sesuai?
gaya
Perbaikan Algoritma
Pengujian Algoritma
Stabil?
Perbaikan Algoritma
Pembangunan Rangkaian
Sesuai?
Inspeksi ulang
Kesimpulan
20
BAB V HASIL DAN LUARAN YANG DICAPAI
Luaran penelitian yang dicapai adalah berupa algoritma dan simulasi penggunaan estimasi
kecepatan motor BLDC yang telah diterima pada jurnal internasional.
Model BLDC drive dengan kecepatan dan pengendali arus disimulasikan di Matlab. Respon
kecepatan untuk perubahan langkah dalam input ditunjukkan pada Gambar 13.
Gambar 14 adalah posisi rotor aktual dan perkiraan dengan algoritma EKF. Perintah
kecepatan motor awalnya ditetapkan pada 104,7 rad / sec (1000 rpm) dan pada t = 0,05 detik;
Kecepatan referensi berubah menjadi 157,1 rad / sec (1500 rpm). Perkiraan kecepatan respon
jelas mengikuti kecepatan sebenarnya setelah masa transien.
Pada Gambar 15, kurva mewakili respons kecepatan sistem yang berada di bawah kontrol
pengendali PI konvensional. Parameter pengontrol PI konvensional disetel sebagai KP = 1,78,
KI = 0,0178.
Gambar 13 Speed Response pada ref 1000 RPM
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
200
400
600
800
1000
1200
Time (s)
Speed (
RP
M)
ref speed
actual speed
21
Gambar 14 Respon aktual dan estimasi dengan EKF
Gambar 15 Respon aktual dan estimasi dengan EKF menggunakan pengendali PI
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-200
0
200
400
600
800
1000
1200
1400
1600
Time (s)
Speed (
RP
M)
ref speed
EKF Estimated speed
Actual Speed
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.050
200
400
600
800
1000
1200
Time (s)
Speed (
RP
M)
Ref Speed
Actual Speed
EKF Estimated Speed
22
Gambar 16 Respon aktual dan estimasi dengan EKF menggunakan Pengendali Neuron-Fuzzy
Dengan tidak ada beban, respon kecepatan BLDCM di bawah kendali pengontrol yang
diusulkan ditunjukkan pada Gambar 16. Ketika berada di bawah kendali pengendali yang
diusulkan, sistem akan merespons dengan cepat dengan sedikit overshoot. Kesalahan steady
state adalah nol. Dari Gambar 16, dapat dilihat bahwa setelah menggunakan Fuzzy untuk
menyesuaikan parameter K, respon dinamis sistem jauh lebih cepat
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.050
200
400
600
800
1000
1200
Time (s)
Speed (
RP
M)
Ref Speed
Actual Speed
EKF Estimated Speed
23
BAB VI KESIMPULAN DAN SARAN
Kecepatan motor BLDC diperkirakan menggunakan metode Extended Kalman Filter.
Kecepatan ditentukan dari tegangan garis terukur dan arus motor. Hasil simulasi
membuktikan bahwa pengoperasian tanpa sensor dari sistem penggerak pengendali posisi
tidak langsung dimungkinkan. Untuk pengontrol, saat melatih neuron tunggal, nilai parameter
K sangat penting. Dengan menggunakan kemampuan perkiraan alam semesta dari sistem
logika fuzzy, pengendali neuron-fuzzy tunggal dikembangkan untuk menyesuaikan nilai
parameter K secara online. Hasil percobaan membuktikan bahwa kinerja tinggi dicapai di
bawah kendali pengontrol yang diusulkan. Penggunaan single neuron fuzzy membuat BLDC
dengan respon dinamis lebih cepat.
24
DAFTAR PUSTAKA
[1] T.M.Jahns, and M.Ehsani, (1991), “Four quadrant sensorless brushless motor,” in Proc.
IEEE APEC’91’, pp.202- 209.
[2] S.Ogasawara and H.Akagi, (1990), “An approach to position sensorless drive for
brushless dc motors,” Conf. Rec. IEEE-IAS, Innu.Meeting, 1990, pp.443-447.
[3] J.C .Morieera,(1994),“Indirect sensing for rotor flux position of permanent magnet AC
motors operating in wide speed range,” Conf, Rec. IEEE-IAS Annul. Meeting, 1994,
pp.401-407.
[4] N.Ertugrul and P.P.Acarnley,(1994), “A new algorithm for sensorless operation of
permanent magnet motors,”IEEE Trans.Ind .Applicat.., vol.30,pp.126-133,Jan./Feb.1994.
[5] H.Brunsbach and G.Henneberger, and T.Klepsch,(1993) “Position controlled permanent
excited synchronous motor without mechanical sensors,” Proc. EPE’93, Brighton,
U.K.,1993,pp.38-43.
[6] R.Dhaouadi, N.Mohan, and L.Norum,(1991), “Design and implemention of an extended
Kalman filter for the state estimation of a permanent magnet synchronous motor,”IEEE
Trans.Power Electron.,vol. 6,pp.491-497,July 1991.
[7] R.Krishna and R.Ghoseh,(1989), “Starting algorithm and performance of a PMDC
brushless motor drive system with no position sensor ,” Proc .IEEE
PESE’89,1989,pp.815-821.
[8] M.Jadric and B.Terzic. (1999), “Sensorless brushless dc motor with improved speed
estimation accuracy using stator resistance estimation,” in Proc. EPE’99, Lausanne,
Switzerland, 1999,CDROM.
[9] L.Loron and G.Laliberte,(1993), “Application of the extended Kalman filter to
parameters estimation of induction motors.” Proc EPE’93, Brighton, U.K., 1993, pp.85-
90.
[10] T. O..Mahony, C J Downing and K Fatla, “Genetic Algorithm for PID Parameter
Optimization: Minimizing Error Criteria”, Process Control and Instrumentation 26-28
July 2000, University of Stracthclyde, pg 148- 153.
[11] David E. Goldberg, Genetic Algorithms in Search, Optimization and Machine
Learning. The University of Alabama, Addison-Wesley Publishing Company Inc, 1989..
25
LAMPIRAN
Lampiran 1 Biodata SIDOS
46
Lampiran 2 Source Code
clear all;
%close all;
disp('Hall Sensor - OPEN LOOP');
%Parameter BLDC BLY172S-24V-4000
%Details:
%DC motor SPEC:
%Rated Power = 55W
%Rated Speed = 4000 RPM
%Rated Voltage = 24V
%Continuous Stall Torque = 21 oz-in
%Peak Torque = 54 oz-in
%Peak Current = 11 A
%Line to Line Resistance = 0.8 ohms
%Line to Line Inductance =1.2 mH
%Torque Constant = 5.0 oz-in/A
%Back EMF Voltage = 3.72 VkRPM
%Rotor Inertia = 0.00068 oz-in-sec^2
%Gear Box SPEC:
%Gear Ratio: 100
%Compatible NEMA Torque: 17 oz-in
%Nominal Rated Torque : 2832 oz-in
%Peak Input Speed: 18000 RPM
%Backlash < 30 arcmin
%Runing Noise: 55 DB
rs = 0.4;
ls_lm = 0.6e-3;
inertia = 0.000048;
b_fric = 0;
p_hp = 0.0737;
pole = 8;
vdc = 24;
kb = 0.0042;
lamda_p = kb*(pole/2);
ip_rate = 3.5;
te_rate = 1.4642/2;
wbase_rpm = 1000;
% base values
pbase = p_hp*746;
vbase = vdc;
ibase = ip_rate;
tbase = te_rate;
wbase = wbase_rpm*(pi/30)*(pole/2);
ias=0;
ibs=0;
ics=0;
wr = 0;
thr = 0;
% old initial position
thr_old = thr;
%kp_w = 4.905583728; ki_w = 0.0349244; kd_w=0.001109; % pid speed
controller gains
47
kp_w = 4.905583728; ki_w = 0.0349244; kd_w=0.001109; % pid speed
controller gains
% wr_intg = integrator, _cmd = after limit, _star = before limit
wr_intg_pa = 0;wr_intg_pb = 0;wr_intg_pc = 0;
% torque limit => up to 2 [p.u.]
te_lim_p = 2*te_rate; te_lim_n = -2*te_rate;
tl = 0.00; % load torque
kp_i = 3.176; % p current controller gain
ki_p = 0.0005; % i current controller gain
% controller output
vasc = 0; vbsc = 0; vcsc = 0;
% triangular wave frequency and peak voltage
ftr = 20000; vtr_r = 10;
% voltage command limit
vc_lim_p = 9; vc_lim_n = -9;
% initial time, time increment, and final time
tt = 0;
dt = 1e-5;
banyak=15000;
tf = 2;
% variables for plotting
count = 0;
no_ds = int32(fix(tf/dt));
p_vabcs = zeros(no_ds,3);
p_fabcs = zeros(no_ds,3);
p_eabcs = zeros(no_ds,3);
p_isc = zeros(no_ds,4);
p_iabcs = zeros(no_ds,3);
p_torq = zeros(no_ds,5);
p_wr = zeros(no_ds,1);
p_thr = zeros(no_ds,1);
p_t = zeros(no_ds,1);
p_hall = zeros(no_ds,1);
% solving the dynamics of motor
iter = 0;
iter1 = 0;
indek=0;
wr_err1=0;
wr_derv=0;
wr_err=0;
while (tt<=tf)
indek=indek+1;
% compute torque command
te_star = 0.3*te_lim_p;
if (te_star>=te_lim_p)
te_cmd = te_lim_p;
elseif (te_star<=te_lim_n)
te_cmd = te_lim_n;
else
te_cmd = te_star;
end
% compute peak current command
48
ip_cmd = te_cmd/(2*lamda_p);
% conversion of the unit of thr : rad => deg
thr_deg = mod(thr*180/pi,360);
true_thr_deg = mod(thr*180/pi,360);
% phase current command according to the rotor position
if (((thr_deg>=0)&&(thr_deg<30))||((thr_deg>=330)&&(thr_deg<=360)))
mode = 1;
ias_cmd = 0;
ibs_cmd = -ip_cmd;
ics_cmd = ip_cmd;
elseif ((thr_deg>=30)&&(thr_deg<90))
mode = 2;
ias_cmd = ip_cmd;
ibs_cmd = -ip_cmd;
ics_cmd = 0;
elseif ((thr_deg>=90)&&(thr_deg<150))
mode = 3;
ias_cmd = ip_cmd;
ibs_cmd = 0;
ics_cmd = -ip_cmd;
elseif ((thr_deg>=150)&&(thr_deg<210))
mode = 4;
ias_cmd = 0;
ibs_cmd = ip_cmd;
ics_cmd = -ip_cmd;
elseif ((thr_deg>=210)&&(thr_deg<270))
mode = 5;
ias_cmd = -ip_cmd;
ibs_cmd = ip_cmd;
ics_cmd = 0;
elseif ((thr_deg>=270)&&(thr_deg<330))
mode = 6;
ias_cmd = -ip_cmd;
ibs_cmd = 0;
ics_cmd = ip_cmd;
end
% fas(thr): rotor position dependent function
if ((true_thr_deg>=0)&&(true_thr_deg<30))
fas_thr = true_thr_deg/30;
elseif ( (true_thr_deg>=30)&&(true_thr_deg<150) )
fas_thr = 1;
elseif ( (true_thr_deg>=150)&&(true_thr_deg<210) )
fas_thr = -true_thr_deg/30+6;
elseif ((true_thr_deg>=210)&&(true_thr_deg<330))
fas_thr = -1;
elseif ((true_thr_deg>=330)&&(true_thr_deg<=360))
fas_thr = true_thr_deg/30-12;
end
% fbs(thr): rotor position dependent function
if ((true_thr_deg>=0)&&(true_thr_deg<90))
fbs_thr = -1;
elseif ((true_thr_deg>=90)&&(true_thr_deg<150))
fbs_thr = true_thr_deg/30-4;
elseif ((true_thr_deg>=150)&&(true_thr_deg<270))
49
fbs_thr = 1;
elseif ((true_thr_deg>=270)&&(true_thr_deg<330))
fbs_thr = -true_thr_deg/30+10;
elseif ((true_thr_deg>=330)&&(true_thr_deg<=360))
fbs_thr = -1;
end
% fcs(thr): rotor position dependent function
if ((true_thr_deg>=0)&&(true_thr_deg<30))
fcs_thr = 1;
elseif ((true_thr_deg>=30)&&(true_thr_deg<90))
fcs_thr = -true_thr_deg/30+2;
elseif ((true_thr_deg>=90)&&(true_thr_deg<210))
fcs_thr = -1;
elseif ((true_thr_deg>=210)&&(true_thr_deg<270))
fcs_thr = true_thr_deg/30-8;
elseif ((true_thr_deg>=270)&&(true_thr_deg<=360))
fcs_thr = 1;
end
% compute back emf
eas = fas_thr*kb*wr;
ebs = fbs_thr*kb*wr;
ecs = fcs_thr*kb*wr;
% triangular carrier wave
vtr = rem(4*ftr*vtr_r*tt,4*vtr_r);
if (vtr<vtr_r)
%vtr = vtr;
elseif (vtr<(3*vtr_r) )
vtr = 2*vtr_r-vtr;
else
vtr = vtr-4*vtr_r;
end
% compute position difference
del_thr = thr-thr_old;
thr_old = thr;
% compute A phase control voltage : p control or freewheeling
if ((mode~=1)&&(mode~=4))
ias_det = 1;
wr_intg_pa = wr_intg_pa+ki_p*(ias_cmd-ias)*dt;
vasc = kp_i*(ias_cmd-ias) + wr_intg_pa;
% vasc = kp_i*(ias_cmd-ias);
if (vasc>vc_lim_p)
vasc = vc_lim_p;
elseif (vasc<vc_lim_n)
vasc = vc_lim_n;
end
if (vasc>=vtr)
vas = vdc/2;
else
vas = -vdc/2;
end
elseif (((del_thr<0)&&(mode==1))||((del_thr>=0)&&(mode==4)))
if (ias<=0)
ias_det = 0;
50
ias = 0;
vas = eas;
else
ias_det = 1;
vas = -vdc/2;
end
elseif (((del_thr>=0)&&(mode==1))||((del_thr<0)&&(mode==4)))
if (ias>=0)
ias_det = 0;
ias = 0;
vas = eas;
else
ias_det = 1;
vas = vdc/2;
end
end
% compute B phase control voltage : p control or freewheeling
if ((mode~=3)&&(mode~=6))
ibs_det = 1;
wr_intg_pb = wr_intg_pb+ki_p*(ibs_cmd-ibs)*dt;
vbsc = kp_i*(ibs_cmd-ibs) + wr_intg_pb;
% vbsc = kp_i*(ibs_cmd-ibs);
if (vbsc>vc_lim_p)
vbsc = vc_lim_p;
elseif (vbsc<vc_lim_n)
vbsc = vc_lim_n;
end
if (vbsc>=vtr)
vbs = vdc/2;
else
vbs = -vdc/2;
end
elseif (((del_thr<0)&&(mode==3))||((del_thr>=0)&&(mode==6)))
if (ibs<=0)
ibs_det = 0;
ibs = 0;
vbs = ebs;
else
ibs_det = 1;
vbs = -vdc/2;
end
elseif (((del_thr>=0)&&(mode==3))||((del_thr<0)&&(mode==6)))
if (ibs>=0)
ibs_det = 0; ibs = 0; vbs = ebs;
else
ibs_det = 1;
vbs = vdc/2;
end
end
% compute C phase control voltage : p control or freewheeling
if ((mode~=5)&&(mode~=2))
ics_det = 1;
51
wr_intg_pc = wr_intg_pc+ki_p*(ics_cmd-ics)*dt;
vcsc = kp_i*(ics_cmd-ics) + wr_intg_pc;
% vcsc = kp_i*(ics_cmd-ics);
if (vcsc>vc_lim_p)
vcsc = vc_lim_p;
elseif (vcsc<vc_lim_n)
vcsc = vc_lim_n;
end
if (vcsc>=vtr)
vcs = vdc/2;
else
vcs = -vdc/2;
end
elseif ( ( (del_thr<0)&&(mode==5) )||( (del_thr>=0)&&(mode==2) ) )
if (ics<=0)
ics_det = 0;
ics = 0;
vcs = ecs;
else
ics_det = 1;
vcs = -vdc/2;
end
elseif ( ( (del_thr>=0)&&(mode==5) )||( (del_thr<0)&&(mode==2) ) )
if (ics>=0)
ics_det = 0;
ics = 0;
vcs = ecs;
else
ics_det = 1;
vcs = vdc/2;
end
end
% runge-kutta 4th order method to find ias
% seq_iabcs1 = @(t,x) ((-rs/ls_lm)*x)-eas/ls_lm+(1/ls_lm)*vas;
if (ias_det==1)
phase = 1;
x=ias;
grad_1 = ((-rs*x)-eas+vas)/ls_lm;
x=ias+dt*grad_1/2;
grad_2 = ((-rs*x)-eas+vas)/ls_lm;
x=ias+dt*grad_2/2;
grad_3 = ((-rs*x)-eas+vas)/ls_lm;
x=ias+dt*grad_3;
grad_4 = ((-rs*x)-eas+vas)/ls_lm;
ias = ias + (grad_1+2*grad_2+2*grad_3+grad_4)*dt/6;
end
% runge-kutta 4th order method to find ibs
%seq_iabcs2 = @(t,x) ((-rs/ls_lm)*x)-ebs/ls_lm+(1/ls_lm)*vbs;
if (ibs_det==1)
phase = 2;
x=ibs;
grad_1 = ((-rs*x)-ebs+vbs)/ls_lm;
x=ibs+dt*grad_1/2;
52
grad_2 = ((-rs*x)-ebs+vbs)/ls_lm;
x=ibs+dt*grad_2/2;
grad_3 = ((-rs*x)-ebs+vbs)/ls_lm;
x=ibs+dt*grad_3;
grad_4 = ((-rs*x)-ebs+vbs)/ls_lm;
ibs = ibs + (grad_1+2*grad_2+2*grad_3+grad_4)*dt/6;
end
% runge-kutta 4th order method to find ics
%seq_iabcs3 = @(t,x) ((-rs/ls_lm)*x)-ecs/ls_lm+(1/ls_lm)*vcs;
if (ics_det==1)
phase = 3;
x=ics;
grad_1 = ((-rs*x)-ecs+vcs)/ls_lm;
x=ics+dt*grad_1/2;
grad_2 = ((-rs*x)-ecs+vcs)/ls_lm;
x=ics+dt*grad_2/2;
grad_3 = ((-rs*x)-ecs+vcs)/ls_lm;
x=ics+dt*grad_3;
grad_4 = ((-rs*x)-ecs+vcs)/ls_lm;
ics = ics + (grad_1+2*grad_2+2*grad_3+grad_4)*dt/6;
end
% compute electromagnetic torque
tas = (pole/2)*kb*fas_thr*ias;
tbs = (pole/2)*kb*fbs_thr*ibs;
tcs = (pole/2)*kb*fcs_thr*ics;
te = tas+tbs+tcs;
%seq_wr = @(t,x)
(eas/inertia)*ias+(ebs/inertia)*ibs+(ecs/inertia)*ics-
(b_fric/inertia)*x-(1/inertia)*(te-tl);
% runge-kutta 4th order method to find [wr thr]
x=wr;
grad_1 = ((-b_fric*x)+(te-tl))/inertia;
tgrad_1 = (pole/2)*x;
x=wr+dt*grad_1/2;
grad_2 = ((-b_fric*x)+(te-tl))/inertia;
tgrad_2 = (pole/2)*x;
x=wr+dt*grad_2/2;
grad_3 = ((-b_fric*x)+(te-tl))/inertia;
tgrad_3 = (pole/2)*x;
x=wr+dt*grad_3;
grad_4 = ((-b_fric*x)+(te-tl))/inertia;
tgrad_4 = (pole/2)*x;
wr = wr + (grad_1+2*grad_2+2*grad_3+grad_4)*dt/6;
thr = thr + (tgrad_1+2*tgrad_2+2*tgrad_3+tgrad_4)*dt/6;
% save some variables
count = count+1;
p_vabcs(count,:) = [vas vbs vcs];
p_fabcs(count,:) = [fas_thr fbs_thr fcs_thr];
p_eabcs(count,:) = [eas ebs ecs];
p_isc(count,:) = [ias_cmd ibs_cmd ics_cmd ip_cmd];
p_iabcs(count,:) = [ias ibs ics];
p_torq(count,:) = [te_cmd te tas tbs tcs];
p_thr(count,:) = thr;
53
p_wr(count,:) = wr;
p_t(count,:) = tt;
p_hall(count,:)=mode;
% time is increased by dt
tt = tt+dt;
end
subplot(2,1,1);plot(p_t,p_wr*30/pi);
subplot(2,1,2);plot(p_t,rem(p_thr,2*pi));
%subplot(4,1,1);plot(p_t,p_hall);
%subplot(4,1,2);plot(p_t,p_eabcs(count,1));
%subplot(4,1,3);plot(p_t,p_eabcs(count,2));
%subplot(4,1,4);plot(p_t,p_eabcs(count,3));
54
Lampiran 3 Publikasi