akrobot robot
TRANSCRIPT
2
ÖNSÖZ
Bu çalışmayı yaparken fikir paylaşımında bulunduğum arkadaşlarıma ,maddi manevi
desteklerini esirgemeyen aileme ve Kocaeli üniversitesi mekatronik mühendisliği
bölümü hocalarıma bizlere bilimi sevdirdiklerinden ve kazandırdıkları mesleki
vizyondan dolayı sonsuz teşekkür ederim..
3
ÖNSÖZ .................................................................................................................................................. 2
ŞEKİLLER DİZİNİ ............................................................................................................................. 4
ÖZET .................................................................................................................................................... 5
1.SİSTEMİN İNCELENMESİ ............................................................................................................ 6
1.1 EKSİK EYLEYİCİLİ SİSTEMLER: ...................................................................................................... 6 1.2 AKROBOT ÖZELLİKLERİ: .............................................................................................................. 6 1.3 SİSTEMİN PARAMETRELERİ ........................................................................................................... 8
2. SİSTEMİN DİNAMİK DENKLEMLERİNİN ÇIKARILMASI ................................................ 9
2.1 MATEMATİKSEL MODELLEME: ..................................................................................................... 9 2.2 AKROBOT KONUM VE HIZ DENKLEMLERİ ...................................................................................... 9 2.3 KİNETİK VE POTANSİYEL ENERJİ DENKLEMLERİ .......................................................................... 10 2.4 TORK DENKLEMLERİ: .................................................................................................................. 12
3.SİSTEMİN MATLAB SİMULİNK MODELLEMESİ ................................................................ 15
4.SİSTEMİN M-FILE ORTAMINDA İNCELENMESİ ................................................................ 18
5.GUI ARAYÜZÜNÜN TASARLANMASI .................................................................................... 20
5.1 Q1 AÇIK ÇEVRİM CEVABININ ELDE EDİLMESİ ............................................................................. 21 5.2 Q2 AÇIK ÇEVRİM CEVABININ ELDE EDİLMESİ ............................................................................. 22 5.3 Q1 PID KONTROL CEVABI .......................................................................................................... 23 5.4 Q2 PID KONTROL CEVABI .......................................................................................................... 24 5.5 TEMİZLE BUTONU ....................................................................................................................... 25
6.SİMULİNK İLE SANAL GERÇEKLİK ARAYÜZÜ TASARIMI ............................................ 26
KAYNAKLAR.................................................................................................................................... 30
ÖZGEÇMİŞ ........................................................................................................................................ 31
4
ŞEKİLLER DİZİNİ Şekil 1 akrobot ön ve yan gösterimi ......................................................................................... 6
Şekil 2:akrobot çalışması gösterimi ......................................................................................... 7
Şekil 3:akrobot ve sistem parametreleri gösterimi ................................................................... 8
Şekil 4:simulink modellemesi ................................................................................................ 15
Şekil 5:tork=3(N*m) süre=0.2 iken q1(rad) çıkışı ................................................................ 16
Şekil 6:tork=3(N*m) süre=0.2 iken q2(rad) çıkışı ............................................................. 16
Şekil 7:tork=3(N*m) süre=4 iken q1(rad) çıkışı .............................................................. 17
Şekil 8:tork=3(N*m) süre=4 iken q2(rad) çıkışı .............................................................. 17
Şekil 9:m-file Tork=3(N*m) süre =0.2 iken q1(rad) çıkışı ................................................. 19
Şekil 10:m-file Tork=3(N*m) süre =0.2 iken q2(rad) çıkışı ........................................... 19
Şekil 11:akrobot GUI arayüzü ............................................................................................... 20
Şekil 12:GUI örnek çalışma ................................................................................................... 25
Şekil 13 tasarlanan katı model ............................................................................................... 26
Şekil 14:x1 uzuv boyutları seçimi .......................................................................................... 26
Şekil 15 x1 uzvunun center özelliğinin ayarlanması.............................................................. 27
Şekil 16 x1-x2 translation blok ayarlamalar .......................................................................... 27
Şekil 17:akrobot sanal gerçeklik arayüz tasarımı................................................................... 28
Şekil 18: sanal gerçeklik arayüzü1........................................................................................ 29
Şekil 19:sanal gerçeklik arayüzü 2......................................................................................... 29
5
ÖZET
Eksik eyleyicili bir sistem olan akrobotun davranışını incelemek için matematiksel
olarak modelleyip öncelikle konum denklemlerini oradanda hız denklemleri elde
edilir. Daha sonra hız denklemlerinden yola çıkarak her bir uzvun öteleme, dönme
kinetik enerjileri ve potansiyel enerjileri çıkarılıp sistemin toplam kinetik ve toplam
potansiyel enerji ifadeleri elde edilir. Eklemlere ilişkin tork denklemleri elde etmek
için enerji dengesine dayalı lagrange-euler analitik yöntemi kullanılır. Bu yöntemle
elde edilen tork denklemlerini kullanarak sistemin değişkenleri olan q1 ve q2 ‘nin
davranışları simulink ortamında açık çevrim cevabı olarak gözlenebilir. Sistemin
davranışını m-file ortamında incelemek istersek; sistemin dinamik denklemlerindeki
doğrusal olmayan ifadeler sadeleştirilir ve sistemin trasfer fonsiyonu elde edilebilir.
Daha sonra çıkışlar m-file ortamında çizdirilir. Sonuçların doğruluğundan emin
olmak için m-file ve simulink ortamında elde edilen bulgular karşılaştırılır. Daha
sonra bu sonuçları bir arada görmek ve sistemin kontrolünü yapmak için bir gı
arayüzü tasarladım. Tasarladığım Gui yardımıyla değişken dinamik değerler
karşısında sistemimin oluşturduğu transfer fonksiyonlarını, durum uzayı matrislerini,
açık çevrim step yanıtlarını , ayrıca sistemin kontrolü amacıyla PID kontrol
parametrelerinin girilmesiyle kapalı çevrim sisteminin yanıtlarını
gözlemleyebilmekte ve istediğim şekilde değiştirebilirim.Daha sonra almış olduğum
kontrol çıkışlarını bir visual relity arayüzü tasarlayarak gözlemledim.
6
1.SİSTEMİN İNCELENMESİ
1.1 Eksik eyleyicili sistemler:
Tam tahrikli sistemler serbestlik derecesi kadar tahrik elemanına sahip olan
sistemlerdir. Tam tahrikli sistemlerin matematiksel olarak modellenmesi kolaydır
çünkü denklemlerin çözülebilmesi için gerekli olan parametre sayısı bulunmaktadır.
Eksik eyleyicili mekanik sistemler serbestlik derecesi sayısından daha az sayıda
kontrol girişine sahip olan mekanik sistemlerdir. Eksik eyleyicili mekanik sistemlere
gereksinim duyulmasında maliyeti düşürmek, donanım karmaşıklığını azaltmak,
olası eyleyici arızalarında sistemin çalışmaya devam etmesini sağlamak vb. gibi
nedenler yer almaktadır. Eksik eyleyicili mekanik sistemlerin uygulama alanları
arasında deniz araçları, hava ve uzay araçları, mobil robotlar, robot manipülatörleri
yer almaktadır. Eksik eyleyicili mekanik sistemleri tamamen lineerleştirmek
mümkün değildir ancak kısmi lineerleştirme yöntemleri mevcuttur.
1.2 Akrobot Özellikleri:
Şekil 1 akrobot ön ve yan gösterimi
7
Akrobot yapısında 3 uzuv 2 eklem ve 1 tahrik elemanından bulunur. Tahrik elemanı
2. Eklemde bulunur. Yapısı itibarı ile 2 serbestlik dercesine sahip olduğundan eksik
eyleyicili sistem kabul edilir. Sistem girişi tahrik elemanından sağlanan torktur.
Çevrim süresi boyunca uzuvların konumu sürekli değiştiğinden değişken
olarak kabul edilir ve dinamik denklemler bu değişkenler etrafında oluşur.
Şekil 2:akrobot çalışması gösterimi
Yukarıdaki şekil tamamen kontrolü yapılmış akrobot gösterimidir.
8
Şekil 3:akrobot ve sistem parametreleri gösterimi
1.3 Sistemin parametreleri
gösterim açıklama birim sayısal ifade
Birinci kol kütlesi kg 0.5289
İkinci kol kütlesi kg 0.3346
Birinci kol uzunluğu m 0.26987
İkinci kol uzunluğu m 0.36416
1.kolun ağırlık merkezinin 1.ekleme olan uzaklığı
m 0.13494
2.kolun ağırlık merkezinin 2.ekleme olan uzaklığı
m 0.18208
Birinci ekleme uygulanan tork N.m 0
ikinci ekleme uygulanan tork N.m 1
g Yerçekimi ivmesi ⁄ 9.81
1.kol atalet momenti Kg. 2.kol atalet momenti Kg. Birinci kolun x-ekseniyle açısı radyan -
ikinci kolun birinci kol ile olan açı radyan -
Birinci kolun x-eksenine göre hızı ⁄ -
ikinci kolun birinci kola göre hızı ⁄ -
Birinci kolun x-eksenine göre açısal ivmesi
⁄ -
ikinci kolun birinci kola göre açısal ivmesi
⁄ -
9
2. SİSTEMİN DİNAMİK DENKLEMLERİNİN ÇIKARILMASI
2.1 Matematiksel Modelleme: Matematiksel model gerçek hayattaki sistemin basit bir şeklidir. Matematiksel
model ile gerçek bir sistemin davranışı incelenebilir yada sistemden istenen
sonuçların alınabilmesi için gereken koşullar belirlenebilir. Karmaşık
sistemlerin anlaşılabilmesi ve kontrolü için, matematiksel model elde
edilmesi bir gerekliliktir.İlgilenilen sistemler genelde dinamik olduğundan,
ortaya çıkacak denklemlerde sürekli zamana bağlı olarak diferansiyel
denklemler formunda olacaktır.
2.2 akrobot konum ve hız denklemleri
Eklemlerin koordinat sistemi üzerindeki konumları uzunluklar ve açılar cinsinden
ifade edilir.
Eklemlere ilişkin hız ifadeleri konum ifadelerinin zamana göre türevleri alınarak
hesaplanır.
( )
(
)
10
2.3 kinetik ve potansiyel enerji denklemleri
=Birinci kola ait öteleme ve dönme kinetik enerji denklemi:
(
)
([ ]
) [ ]
[ ]
[
]
=İkinci kola ait öteleme ve dönme kinetik enerji denklemi
(
)
(
[ ]
[ ] )
(
)
+
(
[ ]
)
+
(
)
Not=
[
]
11
[ ] [ ]
[ ]
Toplam kinetik enerji:
K=
[ ]
[
] (
)[
]
[ ]
[
] (
)[
]
[ ]
Potansiyel enerji denklemleri:
( )
( ) (
)
Toplam potansiyel enerji:
( ) (
) (
)
12
2.4 tork denklemleri:
Eklemlere ilişkin tork denklemleri elde edilirken enerji dengesine dayalı Lagrange-
Euler analitik yöntemi kullanılır.
[
] [ ]
[ ] (
)
( ) (
)
[
]
, T2=
[
]
[
]+(2 [ ]+( [
]
[
]= [
]+(2 [
]
-(2 ) [ ]+ ( [ ]
=-cos [ ]
(
[
]
[ ] [ ]
[ ]
)
13
İkinci tork denklemini elde etmek için tekrar laplace ifadesini kullanırsak;
= [ ] +( [
]
[
]= [ ] - [ ]+ ( [
]
=- -
= [ + ]+ [
] +
+
Elde edilen tork ifadelerinin matris formunda yazılışı aşağıdaki gibidir [1].
T=D(q) + C(q, ) + B(q)
T=[
] , D(q) = [
] , C(q, ) =[
] , B(q) =[
]
[
] [
] +[
] [
] + [
] = [
]
(genel dinamik denklem)
=
+
= = + , =
, [ ]
, = 0
= )gcos + gcos(
= + gcos(
15
3.SİSTEMİN MATLAB SİMULİNK MODELLEMESİ
Bu modelleme ile sistemin değişkenleri olan nin açık çevrimde nasıl
davrandığını görebilmek için 'yi elde etmemiz gereklidir. Bunun için de tork
denklemlerinden ifadeleri elde edilir daha sonra bu ifadeler integratörle
işleme sokulup çıkışları oluşturulur. Oluşturulan simulink modeli:
Şekil 4:simulink modellemesi
16
Şekil 5:tork=3(N*m) süre=0.2 iken q1(rad) çıkışı
Şekil 6:tork=3(N*m) süre=0.2 iken q2(rad) çıkışı
18
4.SİSTEMİN M-FILE ORTAMINDA İNCELENMESİ
Sistemimiz doğrusal olamayan ifadeler içerdiğinden q1=pi/2 ve q2=0 noktasında
lineerleştirilebilir.Sistem q1 ve q2 için ayrı ayrı doğrusallaştırma yapıldıktan sonraki
m-file kodu aşağıdaki gibidir.
m1=0.5289;
tork=-3;
m2=0.3346;
l1=0.26987;
lc1=0.13494;
lc2=0.18208;
l2=0.36416;
g=9.81;
atalet1=(m1*l1*l1)/3;
atalet2=(m2*l2*l2)/3;
d11=(m1*lc1*lc1)+(m2*l1*l1)+atalet1+atalet2+(m2*lc2*lc2)
+(2*m2*l1*lc2);
d12=(m2*lc2*lc2)+(atalet2)+(m2*l1*lc2);
d22=(m2*l1*lc2);
x=(d12-((d22*d11)/d12));%q1 ye göre lineeleştiğinde s^2 katsayısı
%x=d22-((d12*d12)/d11);%q2 ye göre lineeleştiğinde s^2 katsayısı
pay=1;
payda=[x 0 0];
step(tork*pay,payda,0.2)
“ d11,d12,d22 ”=matris halindeki dinamik denklem parametreleri
Aşağıda şekillerde sistemin q1=pi/2 ve q2=0 noktalarında lineerleştirilmiş halinin
q1 ve q2 için ayrı ayrı açık çevrim cevabı çizdirilmiştir.
19
Şekil 9:m-file Tork=3(N*m) süre =0.2 iken q1(rad) çıkışı
Şekil 10:m-file Tork=3(N*m) süre =0.2 iken q2(rad) çıkışı
20
5.GUI ARAYÜZÜNÜN TASARLANMASI
GUI içerisinde yer alan görsel nesneler ile matlab içinde yazılan program ve
kullanıcı ile iletişimi sağlayan bir arayüzdür. Kullanıcıya komut satırı kullanmadan
veri alımı grafik çizimi gibi birçok kolaylık sağlar..Yani,hem arayüz hemde program
komutlarını çalıştıran bir mekanizma olarak adlandırılabilir. Ayrıca sistemimizin
dinamik değerleri değiştikçe her seferinde yeni transfer fonksiyonları hesaplamak ve
bunları incelemek yerine yapılan Gui ile bunlar gözlemlenebilir. Tasarladığım Gui
yardımıyla değişken dinamik değerler karşısında sistemimin oluşturduğu transfer
fonksiyonlarını, durum uzayı matrislerini, açık çevrim step yanıtlarını , ayrıca
sistemin kontrolü amacıyla PID kontrol parametrelerinin girilmesiyle kapalı çevrim
sisteminin yanıtlarını gözlemleyebilirimve istediğim şekilde değiştirebilirim.. Eğer
Gui tasarlamaktan biraz bahsedecek olur isek; matlab ana penceresinden boş bir gui
açılarak açılan pencereye çeşitli butonlar,textboxlar, statik textler , axisler koyularak
uygun bir gui tasarlanabilir.aşağıda akrobot projesi için tasarladığımız GUI arayüzü
mevcuttur.
Şekil 11:akrobot GUI arayüzü
21
Tasarlanan arayüzde 5 adet pushbuton giriş ve kontrol parametrelerinin bulunduğu
paneller sistemin açık çevrim ve pıd kontrol grafiklerini incelemek için
koyduğumuz axes grafik çizim nesneleri mevcuttur.Arayüzden lineerleştirilen
dinamik denlemlerin q1 ve q2 açık çevrim cevabları, ve bu cevapların pıd kontrolleri
olmak üzere toplamda 4 cevap elde edilmiştir. Ve temizle push butonuyla sistem
parametreleri sıfırlanarak farklı bir hesaplama için arayüz hazır hale getirilir.
5.1 Q1 Açık çevrim cevabının elde edilmesi
Bu cevabı programlamak için öncelikle arayüzdeki doğrusallaştırma panelinden Q1
AÇIK butonu şağ tıklanır view callbacks Daha önce simulink ortamında açık
çevrim cevabını elde etmiştik.guı ortamında giriş parametreleri simulinke yani(
akrobotson_tf2) dosyasına gönderildi daha sonra sistemi linmod komutuyla
lineerleştirip transfer fonksiyonunu elde ettik.ardından sisteme arayüzden alınan tork
değeri verilip q1 açık çevrim cevabı elde edildi.>>callback yolu izlenerek program
parçaları yazılır. Program ise şöyle;
function pushbutton4_Callback(hObject, eventdata, handles)
tork=str2double(get(handles.t,'String'));%arayüzden alınan tork değeri
m1=(get(handles.m1,'String'));%arayüzden alınan m1 kütlesi
m2=(get(handles.m2,'String'));%arayüzden alınan m2 kütlesi
l1=(get(handles.l1,'String'));%arayüzden alınan l1 uzunluğu
l2=(get(handles.l2,'String'));%arayüzden alınan l2 uzunluğu
g=(get(handles.g,'String'));%arayüzden alınan yerçekimi ivmesi
m1=['m1=' m1,';'];
m2=['m2=' m2,';'];
l1=['l1=' l1,';'];
l2=['l2=' l2,';'];
g=['g=' g,';'];
str=char(m1,m2,l1,l2,g);
sim('akrobotson_tf2');
set_param(bdroot, 'InitFcn',str);
sim('akrobotson_tf2');
[A,B,C,D]=linmod2('akrobotson_tf2')
[num,den]=ss2tf(A,B,C,D)
sistem=tf(num,den);
fonk=series(tork,sistem);
axes(handles.axes1);
step(fonk,10);
title('teta1');
xlabel('süre[sn]');
ylabel('konum[rad]');
22
5.2 Q2 Açık çevrim cevabının elde edilmesi
Daha önce simulink ortamında açık çevrim cevabını elde etmiştik.guı ortamında
giriş parametreleri simulinke yani( akrobotson_tf) dosyasına gönderildi daha sonra
sistemi linmod komutuyla lineerleştirip transfer fonksiyonunu elde ettik.ardından
sisteme arayüzden alınan tork değeri verilip q2 açık çevrim cevabı elde edildi.Bu
cevabı programlamak için öncelikle arayüzdeki doğrusallaştırma panelinden Q2
AÇIK butonu şağ tıklanır view callbacks>>callback yolu izlenerek program
parçaları yazılır. Program ise şöyle;
function pushbutton1_Callback(hObject, eventdata, handles)
tork=str2double(get(handles.t,'String'));%arayüzden alınan tork değeri
m1=(get(handles.m1,'String'));%arayüzden alınan m1 kütlesi
m2=(get(handles.m2,'String'));%arayüzden alınan m2 kütlesi
l1=(get(handles.l1,'String'));%arayüzden alınan l1 uzunluğu
l2=(get(handles.l2,'String'));%arayüzden alınan l2 uzunluğu
g=(get(handles.g,'String'));%arayüzden alınan yerçekimi ivmesi
m1=['m1=' m1,';'];
m2=['m2=' m2,';'];
l1=['l1=' l1,';'];
l2=['l2=' l2,';'];
g=['g=' g,';'];
str=char(m1,m2,l1,l2,g);
sim('akrobotson_tf');
set_param(bdroot, 'InitFcn',str);
sim('akrobotson_tf');
[A,B,C,D]=linmod2('akrobotson_tf')
[num,den]=ss2tf(A,B,C,D)
sistem=tf(num,den);
fonk=series(tork,sistem);
axes(handles.axes2);
step(fonk,10);
title('teta2');
xlabel('süre[sn]');
ylabel('konum[rad]');
23
5.3 Q1 PID kontrol cevabı
GUI arayüzünden alınan giriş parametreleri simulinke yani( akrobotson_tf2)
dosyasına gönderildi daha sonra sistemi linmod komutuyla lineerleştirip transfer
fonksiyonunu elde ettik.daha sonra arayüzden alınan kp kı kd den oluşan bir
fonksiyon olustrulup açık çevrim tranfer fonksiyonu ile seri olarak çarpıldı.ardından
feedback komutu ile oluşan sistemin kapalı çevrim cevabı elde edildi.
Bu cevabı programlamak için öncelikle arayüzdeki kontrol panelinden KONTROL
Q2 butonu şağ tıklanır view callbacks>>callback yolu izlenerek program parçaları
yazılır. Program ise şöyle;
function pushbutton6_Callback(hObject, eventdata, handles)
tork=(get(handles.t,'String'));%tork için arayüzden alınan string değer
m1=(get(handles.m1,'String'));
m2=(get(handles.m2, 'String'));
l1=(get(handles.l1, 'String'));
l2=(get(handles.l2,'String'));
g=(get(handles.g, 'String'));
Kp = str2double(get(handles.kp,'String'));%kp ki kd değerleri double olarak alındı
Ki = str2double(get(handles.ki,'String'));
Kd = str2double(get(handles.kd,'String'));
m1=['m1=' m1,';'];%sistem parametreleri dizi haline çevrildi
m2=['m2=' m2,';'];
l1=['l1=' l1,';'];
l2=['l2=' l2,';'];
g=['g=' g,';'];
str=char(m1,m2,l1,l2,g);
open('akrobotson_tf2');
sim('akrobotson_tf2');
set_param(bdroot, 'InitFcn',str);
sim('akrobotson_tf2');
[A,B,C,D]=linmod2('akrobotson_tf2')
[num,den]=ss2tf(A,B,C,D)
pay_kontrol=[Kd Kp Ki];
payda_kontrol=[1 0];
pay=conv(num,pay_kontrol);
payda=conv(den,payda_kontrol);
sistem=tf(pay,payda);
kapali=feedback(sistem,1);
axes(handles.axes4);
step(kapali);
title('teta1');
xlabel('süre[sn]');
ylabel('konum[rad]');
24
5.4 Q2 PID kontrol cevabı
GUI arayüzünden alınan giriş parametreleri simulinke yani( akrobotson_tf2)
dosyasına gönderildi daha sonra sistemi linmod komutuyla lineerleştirip transfer
fonksiyonunu elde ettik.daha sonra arayüzden alınan kp kı kd den oluşan bir
fonksiyon olustrulup açık çevrim tranfer fonksiyonu ile seri olarak çarpıldı.ardından
feedback komutu ile oluşan sistemin kapalı çevrim cevabı elde edildi.
Bu cevabı programlamak için öncelikle arayüzdeki kontrol panelinden KONTROL
Q2 butonu şağ tıklanır view callbacks>>callback yolu izlenerek program parçaları
yazılır. Program ise şöyle;
function pushbutton5_Callback(hObject, eventdata, handles)
tork=(get(handles.t,'String'));
m1=(get(handles.m1,'String'));
m2=(get(handles.m2, 'String'));
l1=(get(handles.l1, 'String'));
l2=(get(handles.l2,'String'));
g=(get(handles.g, 'String'));
Kp = str2double(get(handles.kp,'String'));
Ki = str2double(get(handles.ki,'String'));
Kd = str2double(get(handles.kd,'String'));
m1=['m1=' m1,';'];
m2=['m2=' m2,';'];
l1=['l1=' l1,';'];
l2=['l2=' l2,';'];
g=['g=' g,';'];
str=char(m1,m2,l1,l2,g);
open('akrobotson_tf');
sim('akrobotson_tf');
set_param(bdroot, 'InitFcn',str);
sim('akrobotson_tf');
[A,B,C,D]=linmod2('akrobotson_tf')
[num,den]=ss2tf(A,B,C,D)
pay_kontrol=[Kd Kp Ki];
payda_kontrol=[1 0];
pay=conv(num,pay_kontrol);
payda=conv(den,payda_kontrol);
sistem=tf(pay,payda);
kapali=feedback(sistem,1);
axes(handles.axes3);
step(kapali);
title('teta2');
xlabel('süre[sn]');
ylabel('konum[rad]');
25
5.5 temizle butonu
Bu komutla birlikte sistemdeki bütün parametreler sıfırlanır ve yapılacak olan yeni
bir işlem için hazır olur.bu komutun program parametreleri ise şöyle
function pushbutton2_Callback(hObject, eventdata, handles)
axes(handles.axes1); plot(0,0);%axes ler temizlendi
axes(handles.axes2); plot(0,0);
axes(handles.axes3); plot(0,0);
axes(handles.axes4); plot(0,0);
set(handles.t,'String','');%giriş parametreleri sıfırlandı
set(handles.m1, 'String','');
set(handles.m2, 'String','');
set(handles.l1,'String','');
set(handles.l2,'String','');
set(handles.g, 'String','');
set(handles.kp,'String','');
set(handles.ki,'String','');
set(handles.kd,'String','');
Şekil 12:GUI örnek çalışma
Şekil 12 de görüldüğü gibi giriş ve kontrol parametreleri arayüzdeki gibi seçildiğinde oluşan
g1 ve q2 açık çevrim cevapları ,q1 ,q2 pıd kontrol çıkışları şekildeki gibidir.
26
6.SİMULİNK İLE SANAL GERÇEKLİK ARAYÜZÜ TASARIMI
bu tarz katı model uygulamalarının gerçekleştirebilmemiz için öncelikle sanal
gerçeklik arayüzünde kullanılacak olan mekanizmanın visual reality build
programında katı modelinin çizilmesi ve uzantısı .wrl olacak şekilde kaydedilmelidir.
Şekil 13 tasarlanan katı model
Bunu yaparken uzuvların boyutları x,y,z ve bu uzuvların birbiriyle olan ilişkisi
vrbuild programında düzenlenir.bir uzvun boyutlarını değiştirmek için geometry >>
box>>size yolu izlenerek değişririlebilir.
Şekil 14:x1 uzuv boyutları seçimi
27
X1ve x2 uzuvlarının boyutları belirlendikten sonra uzuvların birbiriyle
ilişkilendirilmesi gerekir.akrobot projesindeki uzuvlardan x1 uzvu sadece rotation
x2 uzvu ise hem rotation hemde translation hareketi yapmaktadır.Bu hareketi
yapmak için x1 ve x2 uzuvları en alt noktaları etrafın da rotation hareketi yapmalıdır.
Buyüzden iki cismin center özelliği taban noktasına ayarlanır.
Şekil 15 x1 uzvunun center özelliğinin ayarlanması
Bu iki uzvu birbiri ile ilişkilendirmek için x1 uzvunun üst yüzeyi ile x2 uzvunun alt
yüzeyi birleştirilir.bunu için translation bloğu kullanılır.
Şekil 16 x1-x2 translation blok ayarlamalar
28
Kaydetme işlemi bittikten sonra simulinkte oluşturduğumuz sistem modeli ve
kullandığımız kontrol bloğu ile birlikte sanal gerçeklik bloğunuda simulink
dosyamıza ekliyoruz.
Şekil 17:akrobot sanal gerçeklik arayüz tasarımı
Simulinkte oluşturulan kapalı çevrim sisteme simulink kütüphanesinden virtual
reality modulunu ekleyip ve üzerine çift tıklanarak parametre ayarlarına
girilir.burada .wrl olarak kaydedilen dosya çağrılıp kontrol etmek istenen özellikleri
işaretlenir. Şekildeki sistemi kontrol etmek için pıd bloğu kullanılmıştır.sistemin
istenen dereceye oturması sanal gerçeklik arayüzünde gözlemleyebileceğiz.sanal
gerçeklik arayüzünde dönme işlemini gerçekleştirmek amacıyla sistemden alınan q1
ve q2 açılarını modüle göndeririz. Hareketimiz z ekseni etrafında gerçekleşeceğinden
sistemdeki 4 lü maxların 3.girişlerine 1 , ilk iki girişlerine 0 verilir .ardından q1 ve
q2 çıkışları modülün rotation girişi olan 4. girişe yönlendirilir.Arayüzde bulunan 3 lü
mux ise 2.uzuv olan x2 nin translation hareketi içindir. X2 için verilen translation
denklemi ise şöyle;
Z ekseninse translation hareketi olmadığından 3’lü mux un 3. Girişine 0
verilir.böylece gerekli bağlantı yapıldıktan sonra simulinkte simule edilirse sanal
gerçeklik arayüzü şekildeki gibi gerçekleşmektedir.
30
KAYNAKLAR
[1] Prof.Dr.Zafer Bingül Matlab ve Simulinkle Modelleme /Kontrol
[2] S.Kahvecioğlu Enerji kontrolüne dayalı doğrusal olmayan model
görümlü denetim ile ters sarkacın yukarı kaldırılması.
[3] Reza Olfati-Saber (2000) Nonlinear control of underactuated
mechanical systems with application to robotics and aerospace vehicles.
[4] Onur Albostan Eksik eyleyicili mekanik sistemlerin kontrolü
(yüksek lisans tezi)
[5] Guoyang cheng A matlab toolkit for composite nonlinear feedback control
Ben M.Chen
Kemao Peng
Tong H.Lee
31
ÖZGEÇMİŞ
Ad Soyad : Oğuz Aloğlu
Doğum Yeri ve Tarihi : Çayeli-temmuz 1991
Lise : Çayeli Vakıfbank Lisesi
Lisans : Kocaeli üniversitesi-Mekatronik müh.
e-mail : [email protected]