MPU6050 Gyroscope – Matlab Simulink – Arduino Pro Mini – Fuzzy Logic

2.207 Kişi Okudu

Bulanık mantık kontrol dersi için yaptığım örnek bir BULANIK MANTIK VE UÇUŞ KONTROL PROBLEMİNE UYGULANMASI çalışması. Bu çalışma sayesinde MATLAB Simulink konularında kendimi geliştirdim, bulanık mantık ile kontrol konularında kendimi ciddi bir şekilde geliştirdim.

Kullanılan Materyaller;

MPU-6050

multicopter ve robotik projelerinde sıklıklı kullanılan üzerinde 3 eksenli bir gyro ve 3 eksenli bir açısal ivme ölçer bulunduran 6 eksenli bir IMU sensör kartıdır. Kart üzerinde voltaj regulatörü bulunduğundan 3 ile 5 V arası bir besleme voltajı ile çalıştırılabilir. İvme ölçer ve gyro çıkışlarının her ikisi de ayrı kanallardan I²C çıkışı vermektedir. Her eksende 16 bitlik bir çözünürlükle çıkış verebilmektedir. Pinler arası boşluk standart olarak ayarlandığı için breadboard veya farklı devre kartlarında rahatlıkla kullanılabilir.

Özellikleri
– Çalışma gerilimi: 3-5V
– Gyro ölçüm aralığı: + 250 500 1000 2000 ° / s
– Açısal ivme ölçer ölçüm aralığı: ± 2 ± 4 ± 8 ± 16 g
– İletişim: Standart I²C

MPU – 6050

Arduino Pro Mini

Atmega328 temelli bir mikrodenetleyici kartıdır. Üzerinde 14 adet dijital giriş/çıkış pini (6 tanesi PWM çıkışı olarak kullanılabilir), 8 analog giriş, 16Mhz kristal ve reset tuşu bulundurmaktadır. Breadboard üzerinde kullanmak için ve boyutun önemli olduğu yerlerde kullanılmak üzere yapılmıştır. Pro Mini üzerinde usb soketi ve programlayıcı bulunmamaktadır. Kartı programlamak için USB-Serial Dönüştürücü veya başka usb-seri dönüştürücüler kullanılabilir.

Okumaya devam et MPU6050 Gyroscope – Matlab Simulink – Arduino Pro Mini – Fuzzy Logic

Kalman Filtresi MatLab Uygulama Kodları

2.444 Kişi Okudu

Kalman filtresini matlab üzerinde geliştirme daha hızlı bir şekilde anlayıp çözümlemek için yapılmış bir çalışmadır. Matlab üzerinde komutları değiştirip debug yapıp bu başarılı filtrenin nasıl çalıştığı anlamak için yapılmıştır. Kodlar tamamen C diline hızlı bir şekilde uyarlanabilir şekilde tasarlanmıştır.

Yukarıdaki şekilde mavi olan renk kalman filtresine girecek olan veriler, yeşil renkte bulunan grafik ise kalman filtresinden çıkan veriler.

Kalman katsayısı 1-0 arasında değiştirilerek filtrenin özelliği ayarlanabilir.

Yararlandığım kaynaklar;

1-)  İbrahim Çayır OĞLU – Kalman Filtresi ve Programlama 2012

2-)  Why You Should Use The Kalman Filter Tutorial – Pokemon Example

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Hazırlayan: Ahmet Yasin CİVAN
% Tarih     : 03.03.2017
% Yer       : Afyon Karahisar / Uydukent
%       www.ahmetyasincivan.com
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear
clc

hata_kovaryansi = 1;
kalman_katsayisi = 0.1;
onceki_kalman = 0;

olculen_veri =  [0.39 0.50 0.48 0.29 0.25 0.32 0.34 0.48 0.41 0 0.10 0.20 1 1.5 1.7 0.39 0.50 0.48 0.29 0.25 0.32 0.34 ]
uzunluk = length(olculen_veri)

kalman_tahmin_sakla = [1:1:uzunluk]


a=0;
for y = [1:uzunluk]

a=a+1;    
kalman_kazanci = hata_kovaryansi/(hata_kovaryansi+ kalman_katsayisi);
kalman_tahmin  = onceki_kalman + (kalman_kazanci*(olculen_veri(a)-onceki_kalman));
hata_kovaryansi = (1-kalman_kazanci)*hata_kovaryansi;
onceki_kalman = kalman_tahmin;

kalman_tahmin_sakla(a) = kalman_tahmin;

end


plot ( 1:uzunluk ,olculen_veri ,1:uzunluk , kalman_tahmin_sakla )