akrobot robot

31
1 OĞUZ ALOĞLU 090223054 AKROBOT PROJESİ RAPORU T. C. KOCAELİ ÜNİVERSİTESİ 03.05.2013

Upload: kou

Post on 25-Jan-2023

1 views

Category:

Documents


0 download

TRANSCRIPT

1

OĞUZ ALOĞLU

090223054

AKROBOT PROJESİ RAPORU

T. C. KOCAELİ ÜNİVERSİTESİ

03.05.2013

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(

14

Genel tork denklemindeki 1. satır için çözülürse;

=

=

ifadesi ve 2. denklemde yerine konulur.

=

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ışı

17

Şekil 7:tork=3(N*m) süre=4 iken q1(rad) çıkışı

Şekil 8:tork=3(N*m) süre=4 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.

29

Şekil 18: sanal gerçeklik arayüzü1

Şekil 19:sanal gerçeklik arayüzü 2

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]