vehicle gearbox modelling

46
T.C. B ˙ ILEC ˙ IK ¸ SEYH EDEBAL ˙ I ÜN ˙ IVERS ˙ ITES ˙ I MÜHEND ˙ ISL ˙ IK FAKÜLTES ˙ I B ˙ ILG ˙ ISAYAR MÜHEND ˙ ISL ˙ I ˘ G ˙ I ARAÇ ¸ SANZIMAN MODELLEMES ˙ I Mustafa Köstek B ˙ IT ˙ IRME ÇALI ¸ SMASI Ö˘ gr.Gör.Murat ÖZALP HAZ ˙ IRAN-2015 B ˙ ILEC ˙ IK

Upload: mustafa-koestek

Post on 12-Aug-2015

40 views

Category:

Software


5 download

TRANSCRIPT

Page 1: vehicle gearbox modelling

T.C.

BILECIK SEYH EDEBALI ÜNIVERSITESI

MÜHENDISLIK FAKÜLTESI

BILGISAYAR MÜHENDISLIGI

ARAÇ SANZIMAN MODELLEMESI

Mustafa Köstek

BITIRME ÇALISMASI

Ögr.Gör.Murat ÖZALP

HAZIRAN-2015

BILECIK

Page 2: vehicle gearbox modelling

T.C.

BILECIK SEYH EDEBALI ÜNIVERSITESI

MÜHENDISLIK FAKÜLTESI

BILGISAYAR MÜHENDISLIGI

ARAÇ SANZIMAN MODELLEMESI

Mustafa Köstek

BITIRME ÇALISMASI

Ögr.Gör.Murat ÖZALP

HAZIRAN-2015

BILECIK

Page 3: vehicle gearbox modelling

BILDIRIM

Bu kitaptaki bütün bilgilerin etik davranıs ve akademik kurallar çerçevesinde elde edildi-ginive yazım kurallarına uygun olarak hazırlanan bu çalısmada bana ait olmayan her türlüifade ve bilginin kaynagına eksiksiz atıf yapıldıgını bildiririm.

DECLARATION

I hereby declare that all information in this document has been obtained and presentedin accordance with academic rules and ethical conduct. I also declare that, as required bythese rules and conduct, I have fully cited and referenced all materials and results that arenot original to this work.

Imza

Mustafa KÖSTEK

5.6.2015

ii

Page 4: vehicle gearbox modelling

ÖZET

BITIRME ÇALISMASI

ARAÇ SANZIMAN MODELLEMESI

Ögrencinin Adı SOYADI

BILECIK SEYH EDEBALI ÜNIVERSITESIMÜHENDISLIK FAKÜLTESI

BILGISAYAR MÜHENDISLIGI BÖLÜMÜ

Danısman:Ögr.Gör Murat ÖZALP

2015, 46 Sayfa

Jüri Üyeleri Imza

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Öncelikle bir aracın nasıl yürüdügü fiziksel olarak açıklanacak,daha sonra ise masaüstü

uygulama ortamında teorik bilgiler uygulamaya dökülerek uygulamada kullanılan C#

programlama dilinde kulanılan araç kutuları anlatılıp algoritma gerçeklenerek bir ma-

saüstü uygulaması olusturulmus,bunun yanında kullanıcı tarafından vites degistirme ve-

rilerini bir verikümesi olarak kaydetip bir tus vasıtasıyla egitilerek kullanıcının egittigi

verilere göre vites degistirme islemlerini otomatik gerçeklestiren i-tronic vites tasarlan-

mıstır.Yanı sıra yakıt tüketimi,araç performansları,tork kavramına ciddi sekilde deginile-

cektir.

Anahtar Kelimeler: fizik motoru,makine ögrenmesi,yakıt tüketimi,döndürme kuvveti,performans

iii

Page 5: vehicle gearbox modelling

ABSTRACT

THESIS

VEHICLE GEARBOX MODELLING

Mustaf Köstek

BILECIK SEYH EDEBALI UNIVERSITYENGINEERING FACULTY

DEPARTMENT OF COMPUTER ENGINEERING

Advisor:Lect. Murat ÖZALP

2015, 46 Pages

Jury Sign

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

First, a car physics engine based on the physics knowledge will be carried out. In addition to

project into a vehicle shift of pre-gearbox data are recorded in a data set according to the user’s

data set via a button educating a prototype that performs the gear changes according to the limits

determined by the user’s interaction was conducted.

Keywords:the physics engine, machine learning, fuel consumption, torque, performance

iv

Page 6: vehicle gearbox modelling

ÖNSÖZ

Bu projenin yazımının basından sonuna kadar emegi geçen ve beni bu konuya yönlen-

diren saygı deger hocam ve danısmanım Sayın Murat ÖZALP’a tüm katkılarından ve

hiç eksiltmedigi desteginden dolayı tesekkür ederim.

Mustafa Köstek

v

Page 7: vehicle gearbox modelling

Içindekiler

* v

SEKILLER TABLOSU viii

1 GIRIS 1

2 Araç nasıl yürür? 2

2.1 Tork nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2 Dinamik kuvvetleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Sürtünme kuvvetleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3.1 Lastik yuvarlanma sürtünmesi . . . . . . . . . . . . . . . . . . . 4

2.3.2 Aerodinamik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4 Sanzıman Ve Disli Oranları . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.5 Tüketim verileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6 I-tronic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Naive Bayes sınıflandırıcı 10

3.1 Sınıflandırma Problemi . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Nicelik Kümesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3 Bayes Karar Teoremi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4 Naive Bayes Sınıflandırıcı . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4 C# nedir? 14

4.1 Tasarım hedefleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2 Elestiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.3 Performans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4 Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.5 Projeye DLL’lerin Eklenmesi . . . . . . . . . . . . . . . . . . . . . . . . 15

4.6 Gösterge Ve Özelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.7 Visual C# Chart Kullanımı ( Grafik ) . . . . . . . . . . . . . . . . . . . . 20

4.8 OleDbConnection Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . 21

vi

Page 8: vehicle gearbox modelling

5 Programlama 26

5.1 Algoritmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.1 Gaza basma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.2 Tekerler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.3 Araç kuvveti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.1.4 Dıs kuvvetler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.1.5 Form yüklenirken . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1.6 Her timer periyodunda . . . . . . . . . . . . . . . . . . . . . . . 29

5.1.7 Hız sabitleyici tusu . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1.8 i-tronic tusu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.1.9 Gaza basma ve fren yapma . . . . . . . . . . . . . . . . . . . . . 30

5.1.10 Vites artırma azaltma . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2.1 Naif bayes algoritması . . . . . . . . . . . . . . . . . . . . . . . 31

5.2.2 Anaforma ait islev ve üyeleri . . . . . . . . . . . . . . . . . . . . 31

5.3 Araç Ve Harita Veritabanı . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 SONUÇLAR VE ÖNERILER 35

SONUÇLAR VE ÖNERILER 35

KAYNAKLAR 36

ÖZGEÇMIS 37

vii

Page 9: vehicle gearbox modelling

SEKILLER TABLOSU

1 Bir araç farklı devir bantlarında farklı tork degerleri üretir[1] . . . . . . . 2

2 Yokus yukarı ve asagı inen araça etkiyen kuvvetler . . . . . . . . . . . . 3

3 Bir aktarma organı [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Yeni bir proje açılması . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Sıralı olarak bir projede dll olusturma ve çagırma adımları . . . . . . . . 17

6 Dll referans gösterme islemi . . . . . . . . . . . . . . . . . . . . . . . . 18

7 Referans alınan komponentin içerigi [8] . . . . . . . . . . . . . . . . . . 19

8 C# bir chart görünümü . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

9 Oledb veri saglayıcıları . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

10 Baglantı olusurulduguna dair çıktı . . . . . . . . . . . . . . . . . . . . . 24

11 Oledb nesne ile baglantı olusturuldugunun çıktısı . . . . . . . . . . . . . 25

12 Naive bayes sınıfına ait islev ve alanları . . . . . . . . . . . . . . . . . . 32

13 Ana forma ait islev ve alanları . . . . . . . . . . . . . . . . . . . . . . . 32

14 Veritabanına ait bilgileri depolayan tablolar . . . . . . . . . . . . . . . . 34

viii

Page 10: vehicle gearbox modelling

1 GIRIS

Bir arac nasıl hızlanır hızı nasıl limit hız olur bu soruların cevabı aslında iki bilinme-

yenli bir optimizasyon problemi olarak göze çarpar birinci parametre gaza basılma oranı

ikincisi vitesin pozisyonudur.Dıs etkenler olarak ise rüzgar ve yol sürtünmesi yanı sıra

araçın bulundugu yolun egimide bu optimizastonu etkileyen önemli unsurlardandır. Gü-

nümüzde gözde konulardan olan vites tipleri önemli hususlardandır.Genel olarak iki adet

mod bulunmaktadır;eco ve spor modu gibi.Bu teknolojiye yenilikçi bir teknoloji ile farklı

bir üslup getirmeyi amaçlamaktadır.

1

Page 11: vehicle gearbox modelling

2 Araç nasıl yürür?

Aracın çalısması ile birlikte araca gaz vererek araçtan tork elde edilir.Bu tork araçta

aktarma organları ile harekete dönüstürülerek aracın hareket etmesi saglanır.

2.1 Tork nedir?

Her aracın motor karakteristigine göre belirli devir bandlarında belli tork degerleri üre-

tir.Bu tork döndürme kuvveti olarak tanımlanır.Sekil 1’de oldugu gibi bir aracın motoruna

ait tork grafigi gösterilmistir.

Sekil 1: Bir araç farklı devir bantlarında farklı tork degerleri üretir[1]

2

Page 12: vehicle gearbox modelling

Sekil 2: Yokus yukarı ve asagı inen araça etkiyen kuvvetler

2.2 Dinamik kuvvetleri

Araçlar bulundugu yolun egim açısına göre bir ivmelenme söz konusudur.Sekil 2’de

buna örnekler nitelikte çözümlenmistir.[2] Görüldügü gibi yolun egimine göre araç inis

ve çıkıslarında araça etki eden kuvvetler .

k sürtünme katsayısı,F aracın motor kuvveti,g yerçekimi ivmesi,m ise arabanın kütlesi

olarak nitelendirilmistir.

2.3 Sürtünme kuvvetleri

Temel olarak araça etki eden sürtünme kuvveti lastikler ile yol arasındaki kuvvet-

tir.Diger bir kuvvet ise hava sürtünme kuvveti olarak nitelendirilmistir.Bu iki kuvvet araca

negatif olarak etki eden kuvvetler olarak adlandırılabilir.

3

Page 13: vehicle gearbox modelling

2.3.1 Lastik yuvarlanma sürtünmesi

Yüzyıllar önce bulunan tekerlek icat edilerek hem sürtünmeden dogan negatif kuvvet

minimize edilmistir.Yuvarlanma sürtünmesi normal olarak sürüklenme kuvvetinin yakla-

sık olarak ellide biri kadardır.Böylelikle araç kuvvetinden daha büyük oranlarda istifade

edilmistir. Baslıca yüzeylerin yuvarlanma sürtünme kuvvetleri asagıdaki gibidir:[3]

• Çelik ray üstünde çelik tekerlek 0.001-0.002

• Sambrelsiz teker 0.002-0.005

• Kamyon lastigi(asfalt) 0.006-0.01

• Beton-otomobil lastigi 0.01-0.015

• Asfalt-otomobil lastigi 0.03

• Katı kum otomobil lastigi 0.04-0.08

• Gevsek kum-otomobil lastigi 0.2-0.4

Mesela,beton üzerinde hareket eden 2 ton agırlıgındaki bir otomobile etki eden sür-

tünme kuvvetini hesaplayalım... G=2000 * 9,81 =19.620 Newton c=0.015 alalım (yukar-

daki tablodan) Bu durumda yuvarlanma sürtünme kuvvetimiz Fy=19.620 * 0,015 = 294,3

N olarak hesaplanır. Yukarıda da bahsettigim gibi yuvarlanmadan dolayı olan sürtünme

kaybı çok küçük. Sonucumuz 294 N oda yaklasık 30 kg civarında bir kuvvete denktir.

Sayet lastik ile beton arasındaki kaymadan mütevellit sürtünme sorulmus olsaydı bu du-

rumda sürtünme katsayımız f=0,7 olacaktı ve sonucumuz 0,7*19620 =13734 N olacaktı ,

buda digerinin yaklasık 47 katı büyüklükte bir sürtünme kuvveti olurdu.

4

Page 14: vehicle gearbox modelling

2.3.2 Aerodinamik

Düsük hızlarda hava direnci diger kayıplar yanında oldukça düsük mertebelerdedir.

Ancak hız 30-40 km/h degerine ulasınca hava direnci önem kazanır. Bunun sebebi hava

direncinin hızın karesiyle dogru orantılı olarak artmasıdır. Geometrik boyutları araç dıs

formuna baglı direnç katsayısı (cw) belli olan bir araca herhangi bir hızda etkiyen direnç

kuvveti hesaplanabilir. Örnek olarak; hızı 30 m/sn (108 km/h) olan bir aracın rüzgara dik

kesit yüzeyi 3m2kare olsun. Aracın direnç katsayısı Cw =0,45 ise bu araca etkiyen direnç

(1)’nolu ifade ile bulunur.[4]

D = 0,5 ·d · cw ·A ·V 2 (1)

Bura da ;

• d: Havanın yogunlugu ( 1.255kg/m2 )

• A: Aracın dik kesit alanı (m2 )

• V: aracın hızı ( m/sn ) dir.

• D = 0,5x1,255x0,45x3x(30)2

• D= 762,4 Newton

Bu kuvvet 80 kg agırlıgında bir kütleyi havaya kaldırmak için gerekli olan kuvvete

esittir. Cw degeri bir cismin dıs formu sebebiyle düzgün dogrusal akım içinde olusturdugu

süreksizlik ve girdaplar gibi akım bozuntularının sonucu ortaya çıkar. Dıs form itibariyle

cisim ne derece az bozuntuya sebep olursa direnç katsayısı ve buna baglı olarak direnç

kuvvetide o derece küçük olur. Görüldügü gibi hızı ve geometrik boyutları belli olan

bir aracın hava direnç kaybını azaltmanın tek yolu aracın dıs formuna baglı olan direnç

katsayısı Cw’yi azaltmaktır. Cw degerinin azaltılması:

• Motor gücü sabit bir aracın daha yüksek hıza erisebilmesi

5

Page 15: vehicle gearbox modelling

• Belli hıza çıkması istenen araca daha küçük motor takılabilmesi

anlamına gelir.Binek araçları için ekonomi açısından ikinci sık yarıs arabalarında ise

yüksek performans hedeflendiginden birinci sık Cw degerinin nemini ortaya koyar. Di-

renç katsayısı Cw’nin azaltılabilmesi için araç formları gün geçtikçe aerodinamikteki

adıyla damla formuna benzetilmeye çalısılmaktadır. Damla formunun özelligi dogrusal

akımda bilinen en az bozuntuya sebep olan yapı olmasıdır.

2.4 Sanzıman Ve Disli Oranları

Motordaki yüksek torklu kuvvetten optimum derecede verim elde etmek için disli ve

aktarma organları kullanılır.Böylelikle hem yakıttan hemde hızlanma ve performansı en

yüksek derecede verim elde edilir. Basit bir disli modeli ile anlatayım;Motordan sanzı-

mana gücü aktaran asagıdaki en soldaki küçük disli olsun. (ortadaki 2 katı, sagdaki 4

katı büyüklügünde yani 1:1, 2:1 ve 4:1) Bizim motorumuzun ürettigi 1000 devirde tork

degeri 100 Nm olsun. (yani küçük dislideki gücümüz) simdi ortadaki disli ile küçük dis-

liyi birlestirelim. Ortadaki, küçügün 2 katı olduguna göre 1000 devir dönen küçük disli

2 katı büyüklügündeki disliyi 1000/2=500 kez döndürecektir. 1 dakikadaki tur (devir) sa-

yısı azaldı ancak bu durum ihtiyacımız olan torku arttıracak. is= kuvvet ∗mesa f e (mesafe

burada dislimizin oranı oluyor yani 2’yi kullanacagız) formülünde bizim için is elde ede-

cegimiz torku ifade ediyor, kuvvet ise motordan ilk çıkan güç yani 100 Nm. Hesabımız

100× 2 = 200Nm.Hızlıca en büyük disliyi de hesaplayacak olursak 100× 4 = 400Nm

oluyor. Ama tur sayısı (1000/4) 250 oluyor bu sefer.Birinci vitesde duran aracımız kalkıs

yapacak ve en yüksek güce ihtiyacımız var, bu yüzden 400Nm üreten disli birinci vites

digeri de 2. vites olacaktır. Birinci viteste tur sayısı az oldugu için de aracımız hız kazan-

dıkça son devire ulasılacak ve 2. vitese atıldıgında tur sayısı da artmıs olacak ve aracımız

hız kazanmaya devam edecek, bu arada araç ilk hareketini artık kazandı belirli bir hıza

ulastıgı için ilk bastaki kadar yüksek güce ihtiyacı kalmadı bu yüzden 200Nm gayet ye-

terli.Iste sanzımanın en basit tanımı budur. Sanzıman tabi bunun biraz daha karmasık hali

ama temel mantık yukarıdaki örnek ile aynı.

6

Page 16: vehicle gearbox modelling

Sekil 3: Bir aktarma organı [5]

Sanzıman disli oranları otomobilde aracın 0-100 oranından son hızına gibi performans

degerlerine etki eder, peki bizim ne isimize yarar? Sanzıman disli oranlarını bildigimiz bir

otomobilin son hızını hesaplayabiliriz ya da lastik boyutu degistirlecegi zaman dogru hız

bilgisine ulasabiliriz. Bu hesaplama yukarıdaki 3 disli örneginden biraz daha karmasık.

O örnekte lastik ebatı ve diger önemli etkenleri gözardı ederek kaba bir hesap yapmıstık.

Artık hesabımızda jant çapı, lastik yanagı, lastik ebatı ve son disli oranını da kullanaca-

gız.Rastgele bir araç düsünelim.Düz viteste oranlar 1.vites: 3.626, 2. vites: 2.188, 3. vites:

1.541, 4. vites: 1.213, 5. vites: 1.000, 6. vites: 0.767 ve son disli oranı 4.100. Jant ölçüsü

17 inç, lastik ebatı 215 ve lastik yanagı 45.Simdi gelelim hesabımıza,Hızı bulmak için

önce tekerlegin yuvarlanma dairesini ve tekerlege aktarılan devri bulmamız gerekiyor.

1.Formül:Tekerlek yuvarlanma dairesi = (( jant çapı(inc)*25,4)+(lastik genisligi*yanak

yüksekligi*2))*Pi sayısı Hesabımız: ((17*25.4)+(215*0.45*2))*3,141= 1.963m

2. Formül:Tekerlege aktarılan devir = Devir(rpm)/son disli oranı/vites oranı/1000 Hesa-

bımız:6500/4.100/3.626/1000=0.437

3. ve son Formül:Hız = Tekerlek yuvarlanma dairesi x tekerlege aktarılan devir x 60

1.963*0.437*60= 55.35 km/saat Gördügümüz gibi aracın 1. vitesteki son hızı 55.35 km

çıktı.

7

Page 17: vehicle gearbox modelling

2.5 Tüketim verileri

Araçların tüketim verileri genel olarak su sekilde tayin edilir;Sehir içi tüketim veri-

leri 50 km/saat ve ortalama hız 20 km/saat olacak sekilde dur kalklar ile mesafeye göre

ortalama alınarak 100 km’deki tüketim degeri öngörülür.Sehir dısı tüketim degerleri ise

maksimum 120 km/saat hızla ve ortalama hızı 90 km/saat olacak sekilde mesafeye göre

ortalama alınarak 100 km deki ortalama tüketim degerleri tayin edilir. Temel olarak 20

km/saat hızda aracın tüketim degerlerini iki adet degiskenimiz vardır bu hızda iken bu-

lundugu motorun devri ve motora ne kadar gaz verildigidir. Bu iki parametreyi biz birinci

dereceden iki bilinmeyenli denklem sistemine çevirip bu parametrelerin cevabı olarakta

tüketim degerlerini yazarsak bu iki katsayı aracılıgıyla biz anlık olarak tüketim degerini

çıkartabiliriz söyleki;bir araç var sehir içi 100 km’de 12 litre,sehir dısı 100 km’de 7 litre

yakıt tüketsin.O zaman:

7 = (100/90)∗ (17∗ thr+dev∗55) (2)

12 = (100/20)∗ (4∗ thr+dev∗30) (3)

thr degeri ve dev degeri programda kosturulacak olan katsayılardır.Bu katsayılar yuka-

rıdaki denklemde görüldügü gibi iki adet denklemden elde edilir.Mantıksal olarak yakıt

tüketimi gaza ne kadar basıldıgı,motor devir büyüklügü ile dogru orantılıdır.Yukarıdaki

denklemde görülen degerler sırasıyla 20 ve 90 km/saat hızlarında giden aynı araca ait

olan tüketim deger esitsizligi (4) nolu denklem ile temsil edilir.

x,y =

5 32

17 55

2.4

6.1

(4)

Buradan thr ve dev degerleri elde edilir.Sonra ise bunlar formülde yerine konarak 100 km

de ve saatteki yakıt tüketimi bulunur.

8

Page 18: vehicle gearbox modelling

Tablo 1: Datatable’a kayıtları tutan soyut küme

Önceki geçilen vites devir hız

1 2 33 15

2 3 45 37

3 4 38 42

4 3 18 29

3 2 16 16

2 1 13 9

2.6 I-tronic

Bu vites tipinde kullanıcının kendi optimizasyonuna göre vites attırıp azaltma bilgile-

rini ait belirli parametreleri bir kayıtta tutarak bir tus vasıtasıyla i-tronic moduna geçilir.Bu

modda önceden kayıt edilmis verilere isleyip vites degistirmeye ait sınırlarını belirleye-

rek bu parametreler dahilinde ilgili vitesi her bir zaman tikinde sorgular.Eger bu modda

iken vites islemi kullanıcı tarafından yapılırsa moddan çıkılır ve yeniden vites degisim-

lerinde parametreler sıfırlanan veritabanına kayıt edilir(sıfırlanır). Tablo 1’de bir egitim

verisi gösterilmistir.

9

Page 19: vehicle gearbox modelling

3 Naive Bayes sınıflandırıcı

Naïve Bayes Sınıflandırıcı adını Ingiliz matematikçi Thomas Bayes’ten (yak. 1701

- 7 Nisan 1761) alır. Naïve Bayes Sınıflandırıcı Örüntü tanıma problemine ilk bakısta

oldukca kısıtlayıcı görülen bir önerme ile kullanılabilen olasılıkcı bir yaklasımdır. Bu

önerme örüntü tanıma da kullanılacak her bir tanımlayıcı nitelik ya da parametrenin is-

tatistik açıdan bagımsız olması gerekliligidir. Her ne kadar bu önerme Naive Bayes Sı-

nıflandırıcısının kullanım alanını kısıtlandırsa da, genelde istatistik bagımsızlık kosulu

esnetilerek kullanıldıgında da daha karmasık Yapay sinir agları gibi metotlarla karsılas-

tırabilir sonuçlar vermektedir. Bayes Teoremi Naive Bayes sınıflandırıcısı Bayes teore-

minin bagımsızlık önermesiyle basitlestirilmis halidir. Bayes teoremi (5) nolu denklemle

ifade edilir.

P(A|B) = P(B|A)P(A)P(B)

(5)

P(A|B); B olayı gerçeklestigi durumda A olayının meydana gelme olasılıgıdır (bakınız

kosullu olasılık)

P(B|A); A olayı gerçeklestigi durumda B olayının meydana gelme olasılıgıdır

P(A) ve P(B); A ve B olaylarının önsel olasılıklarıdır. Burada önsel olasılık Bayes te-

oreminine öznellik katar. Diger bir ifadeyle örnegin P(A) henüz elde veri toplanmadan

A olayı hakkında sahip olunan bilgidir. Diger taraftan P(B|A) ardıl olasılıktır çünkü veri

toplandıktan sonra, A olayının gerçeklesmis oldugu durumlarda B olayının gerçeklesme

ihtimali hakkında bilgi verir.

3.1 Sınıflandırma Problemi

Naive Bayes Sınıflandırması Makine ögreniminde ögreticili ögrenme alt sınıfındadır.

Daha açık bir ifadeyle sınıflandırılması gereken sınıflar(kümeler) ve örnek verilerin hangi

sınıflara ait oldugu bellidir. E-posta kutusuna gelen e-postaların spam olarak ayrıstırıl-

ması islemi buna örnek verilebilir. Bu örnekte spam e-posta ve spam olmayan e-posta

ayrıstırılacak iki sınıfı temsil eder. Elimizdeki spam ve spam olmayan e-postalardan ya-

ralanarak gelecekte elimize ulasacak e-postaların spam olup olmadıgına karar verecek

10

Page 20: vehicle gearbox modelling

bir Algoritma da ögreticili makina ögrenmesine örnektir. Sınıflandırma isleminde genel

olarak elde bir örüntü (pattern) vardır. Buradaki islem de bu örüntüyü daha önceden ta-

nımlanmıs sınıflara sınıflandırmaktır. Her örüntü nicelik (feature ya da parametre) kümesi

tarafından temsil edilir.

3.2 Nicelik Kümesi

Yine yukarıda bahsedilen spam e-posta örneginden devam edilecek olunursa; Posta

kutumuzda bulunan spam e-postaları spam olmayan e-postalardan ayıran parametreler-

den olusan bir küme, meselaikramiye,ödül gibi sözcüklerden olusan, nicelik kümesine

örnektir. Matematiksel bir ifadeyle nicelik kümesi (6) nolu ifade ile temsil edilir.

x(i), i = 1,2, . . . ,L (6)

, ise (7) nolu ifade edilecektir.

x = [x(1),x(2), . . . ,x(L)]T (7)

∈ RLL-boyutlu nicelik vektörünü olusturur. x ∈ RL verildigine göre ve S ayrıstırılacak

sınıflar kümesiyse, Bayes teoremine göre (8) numaralı ifade yazılır.

P(Si|x)∗P(x) = P(x|Si)∗P(Si) (8)

ve (9) nolu ifade ile tanımlanır.

P(x) =L

∑i=1

p(x|Si)P(Si) (9)

• P(Si); Si’nin öncel olasılıgı i=1,2,. . . ,L,

• P(Si|x); Si’nin ardıl olasılıgı

• P(x); x in Olasılık yogunluk fonksiyonu(oyf)

11

Page 21: vehicle gearbox modelling

• P(x|Si); i = 1 = 2, . . . , L, x’in kosullu oyf’si

3.3 Bayes Karar Teoremi

Elimizde sınıfı belli olmayan bir örüntü olsun. Bu durumda (10) nolu ifade söz konu-

sudur.

x = [x(1),x(2), . . . ,x(L)]T ∈ RL (10)

sınıfı belli olmayan örüntünün L-boyutlu nicelik vektörüdür. Spam e-posta örneginden

gidecek olursak spam olup olmadıgını bilmedigimiz yeni bir e-posta sınıfı belli olmayan

örüntüdür. Yine Si|x’in atanacagı sınıf ise; Bayes karar teorisine göre x sınıf Si’ya aittir

eger

P(Si|x)> P(S j|x),∀ j 6=, i (11)

diger bir ifadeyle

P(x|Si)P(Si)> P(x|S j)P(S j),∀ j 6=, i (12)

3.4 Naive Bayes Sınıflandırıcı

Verilen bir x’in (x = [x(1),x(2), ...,x(L)]T ∈ RL) sınıf Si’ye ait olup olmadıgına karar

vermek için kullanılan yukarıda formüle edilen Bayes karar teoreminde istatistik olarak

bagımsızlık önermesinden yararlanılırsa bu tip sınıflandırmaya Naive bayes sınıflandırıl-

ması denir. Matematiksel bir ifadeyle (13) numaralı

P(x|Si)P(Si)> P(x|S j)P(S j),∀ j 6=, i (13)

ifadedeki P(x|Si) terimi yeniden yazılırsa (14) nolu ifade gibi olacaktır.

P(x|Si)≈L

∏k=1

P(xk|Si) (14)

12

Page 22: vehicle gearbox modelling

böylece Bayes karar teoremi asagıdaki sekli alır.Bayes karar teorisine göre x sınıf Si ya

aittir eger (15)’u saglıyorsa

P(Si)L

∏k=1

P(xk|Si)> P(S j)L

∏k=1

P(xk|S j) (15)

P(Si) ve P(S j) i ve j sınıflarının önsel olasılıklarıdır.Elde olan veri kümesinden degerleri

kolayca hesaplanabilir. Naive bayes sınıflandırıcının kullanım alanı her nekadar kısıtlı gö-

züksede yüksek boyutlu uzayda ve yeterli sayıda veriyle x’in (nicelik kümesi) bilesenleri-

nin istatistik olarak bagımsız olması kosulu esnetilerek basarılı sonuçlar elde edilebilinir.

13

Page 23: vehicle gearbox modelling

4 C# nedir?

C# Programlama Dili,Microsoft’un gelistirmis oldugu yeni nesil programlama dilidir.[10]

C#, .NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem de insan

algısına esit seviyededir. Buradaki orta ifadesi dilin gücünü degil makine dili ile günlük

konusma diline olan mesafesini göstermektedir. Örnegin; Visual Basic .NET (VB.NET)

yüksek seviyeli bir dildir dersek bu, dilin insanların günlük yasantılarında konusma biçi-

mine yakın sekilde yazıldıgını ifade etmektedir. Dolayısıyla VB.NET, C#.NET’ten daha

güçlü bir dildir diyemeyiz. Programın çalısması istenen bilgisayarlarda framework kurulu

olması gerekmektedir. (Windows 7 ve Windows Vista’da .NET Framework kuruludur)

4.1 Tasarım hedefleri

ECMA tarafından C# dilinin tasarım hedefleri söyle sıralanır:

• C# basit, modern, genel-amaçlı, nesneye yönelik programlama dili olarak tasarlan-

mıstır.

• Çünkü yazılımın saglamlılıgı, güvenirliligi ve programcıların üretkenliligi önemli-

dir. C# yazılım dili, güçlü tipleme kontrolü (strong type checking), dizin sınırlar

kontrolü (array bounds checking), tanımlanmamıs degiskenlerin kullanım tespiti,

(source code portability), ve otomatik artık veri toplama gibi özelliklerine sahiptir.

• Programcı portatifligi özellikle C ve C++ dilleri ile tecrübesi olanlar için çok önem-

lidir.

• Enternasyonal hale koymak için verilen destek çok önemlidir.

• C# programlama dili sunucu ve gömülü sistemler için tasarlanmıstır. Bununla bir-

likte C# programlama dili en basit islevselli fonksiyondan isletim sistemini kullanan

en teferruatlısına kadar kapsamaktadır.

14

Page 24: vehicle gearbox modelling

• C# uygulamaları hafıza ve islemci gereksinimleri ile tutumlu olmak uzere tasarlan-

mıstır. Buna ragmen C# programlama dili performans açısından C veya assembly

dili ile rekabet etmek için tasarlanmamıstır

4.2 Elestiri

C# konusunda elestiriler tabii ki var. En önemlisi using ile hangi referansları kullana-

cagımızı çok iyi bilmeliyiz. Ayrıca süslü parantez "" ve noktalı virgül ";" karakterlerini

çok sevmemiz ve asla unutmamamız gerekmektedir.

4.3 Performans

Digerleri gibiSanal Makine’ye dayalı dillerden biridir, C# programlama dili direkt yer-

lesik kod’a derleyen dillerden daha yavastır.

4.4 Platform

.NET Microsoft uygulama bonservisi Windows üzerinde geçerlidir. Fakat C# program-

larını Windows, Linux veya MacOs üzerinde yürüten baska uygulamalar da yer almakta-

dır. Mono(software)ve DotGnu

4.5 Projeye DLL’lerin Eklenmesi

Birçok progamda görmüsüzdür bu dosyayı.Ya da isletim sistemi dosyalarının bulun-

dugu yerde mutlaka karsımıza çıkmıstır.[7]Dll dosyaları içinde çalısabilir kod bulundu-

ran kendi basına çalısamayan,executable dosyalar tarafından dinamik ya da static olarak

çagrılıp kullanılabilen,içinde prosedur veya fonksiyon bulundurabilen dosyalardır. Niçin

kullanmalıyız?

15

Page 25: vehicle gearbox modelling

Sekil 4: Yeni bir proje açılması

Yaptıgınız uygulama büyük bir program olabilir. Programınızın bellekte tuttugu alanı

azaltmak için bazı fonksiyonları dinamik olarak çagırıp kullanmak gerekebilir.Iste tam

burada DLL kullanmak oldukça mantıklı ve gereksinim duyulan bir istir. Bundan farklı

olarak Dll dosyası kullanarak Exe dosyalarınızın sismesini engelleyebilirsiniz. Sisersene

olur?

Ilk olarak exe dosyasında olabilecek bir hata tum programı etkiler.Bundan sakınmak için

dll dosyalarını kullanmak gerekir. Belki en önemli gerekliliklerden biri de tasınabilir-

lik.Bir islem birden çok exe dosyasında gerekebilir.Örn;bir dizi elemanlarının toplamını

birden çok program da kullanmak gerekebilir.Bunun için yazılan bir dll dosyasını diger

projelere import ederek çok rahat bir sekilde kullanabilirsiniz.DLL kullanmanın avanta-

jının yanında mutlaka dezavantajları da vardır...Mesela projeye gereken bir dll dosyası

mevcut degilse proje eksik çalısabilir ya da hiç çalısmayabilir.

Örn;statik olarak çagrılan bir dll belirtilen klasorde mevcut degilse dosya çalısmaz.Bellege

ilk olarak dll dosyaları yuklendiginden program açılmadan kapanır. Simdi bir dll yazalım

ilk olarak resimde görüldügü gibi Sekil 5’te kullanım gösterilmistir.

Class Library proje tipini seçiyoruz. Daha Sonra basit bir islem olarak asagıdaki kodlar

yazıyoruz.

public int topla(int a, int b)

16

Page 26: vehicle gearbox modelling

Sekil 5: Sıralı olarak bir projede dll olusturma ve çagırma adımları

17

Page 27: vehicle gearbox modelling

Sekil 6: Dll referans gösterme islemi

{

return a + b;

}

public double bol(Double a, Double b)

{

return a / b;

}

Daha Sonra Sadece Build edip islemi tamamlıyoruz.Dll hazırdır.Simdi en kolay yoldan

bir dll nasıl kullanılır onu gösterelim. Simdi Sekmesinden yeni bir WindowsApplication

projesi açıyoruz. Buradan karsımıza gelen tarayıcıya olusturdugumuz Dll dosyasının ye-

rini Sekil 6’de oldugu gibi gösteriyoruz.

Bunuda yaptıktan sonra Classımız solution’a eklendi.Sırada Classı çagırmak var...

ilk_dll.Class1 mydll = new ilk_dll.Class1();

//Class olu³turduk

private void button1_Click(object sender, EventArgs e)

{

label3.Text=mydll.topla(

Convert.ToInt32(textBox1.Text),

18

Page 28: vehicle gearbox modelling

Sekil 7: Referans alınan komponentin içerigi [8]

Convert.ToInt32(textBox2.Text)).ToString();

//Class�m�zdaki topla fonksiyonunu ça§�rd�k.

}

private void button2_Click(object sender, EventArgs e)

{

label4.Text = mydll.bol(Convert.ToDouble(textBox1.Text),

Convert.ToDouble(textBox2.Text)).ToString();

//Bol fonksiyonunu ça§�rd�k

}

4.6 Gösterge Ve Özelikleri

C#’ta bir önceki baslıkta anlatıldıgı gibi çalısma anında .dll uzantılı olarak projeye im-

port edilebildiginden bahsettik Sekil 7’da oldugu gibi göstergeler projede referans olarak

eklendikten sonra tulbax’ta gözükecektir.

Göstergeye ait özelikler Tablo 2’de gösterilmistir.

19

Page 29: vehicle gearbox modelling

Tablo 2: Göstergeye ait islevlerÖzelik adı Tipi TanımlamasıDialColor Color Arka plan rengini ayarlarDialText String Göstergedeki yazıyı kontrol eder

EnableTransparent Background bool Transparan arkaplanı aktif ederGlossiness Float ParlaklıkMaxValue Float En büyük alabilecek degeriMinValue Float En küçük alabilecegi degeri

NoOfDivisions Int Numaralarla bölümlendirmeNoOfSubDivision Int Her bölme için görüntülenecek bölüm sayısı

RecommendedValu e Float Esik alan çizmek için pivot noktası olarak kullanılacaktır.ThresholdPercent Float Esik alanının yüzde ölçegini ayarlar.

Value Float Degeri kontrol eder

4.7 Visual C# Chart Kullanımı ( Grafik )

Chart bildigin grafik( Çubuk,pasta,çizgiler,egilim çizgileri vs) hazırlamak için kulla-

nılan bir tür Microsoft tarafından gelistirilen Component’dir.[7] Bir çok projede is gö-

rür niteliktedir ve tasarımını renklendirerek iyilestirebiliyorsunuz. Microsoftun sitesinde

yazdıgı gibi’Microsoft Chart for .NET Framework 3.5 SP1’ den itibaren bulunur ve .net

framework 2.0 de yoktur.(Sahsen aradım). Chart Componentinden ufak bir ekran görün-

tüsü. Örneklerle anlatmaya geçeyim hemen.Chart componenti toolbox da data sekmesinin

altında mevcuttur. Oradan sürükleyerek formumuza ekleyelim.Boyutlarını ve kisisel ayar-

larınızı yapın

Sekil 8: C# bir chart görünümü

ve kod kısmına geçelim hemen.Sekil 8’da oldugu gibidir bir chart. Ben network kim ne

20

Page 30: vehicle gearbox modelling

kadar dosya indirmis kim ne kadar dosya yüklemis onların takibini yaptıgım için grafigi

de ona göre hazırlayacagım.

this.chart1.Titles.Clear();

this.chart1.Series.Clear();

this.chart1.Series.Add("Download");.

this.chart1.Series.Add("Upload");//Upload� ekledik

this.chart1.Series[0].Color = Color.Red;//Download�n rengini

//belirledik.(Grafiksel iyile³tirmek için)

this.chart1.Series[1].Color = Color.Orange;//Upload�n rengini belirledik.

for (int i = 0; i < 7; i++)//Ben 7 adet kay�t gösteriyorum çünkü bu

{

this.chart1.Series[0].Points.AddXY(kisi[i].ToString(),

double.Parse(down[i].ToString())/1024.0/1024.0);//x parametresi altta

this.chart1.Series[1].Points.AddXY(kisi[i].ToString(),

double.Parse(up[i].ToString()) 1024.0 / 1024.0);

//Burda o ki³iye birde upload de§eri

}

Bu arada kisi, up, down degiskenleri bende arraylist isterseniz siz string, int ve double

dizi olarakta tanımlanabilir.

4.8 OleDbConnection Sınıfı

OleDbConnection sınıfı, ADO.NET sınıflarının , Ole Db destegi olan veri kaynaklarına

erisebilmesi amacıyla kullanılır. Veri kaynagının tipi tam olarak bilinmedigi için, arada bu

islevi ayırt etmeye yarayan bir COM+ nesnesi yer almaktadır. OleDbConnection sınıfına

ait bir nesne iletisim kurmak istedigi veri kaynagına ait ole db veri saglayıcısını belirtmek

durumundadır. Bunu daha iyi kavramak için asagıdaki Sekil 9 figüre bakalım.

21

Page 31: vehicle gearbox modelling

Sekil 9: Oledb veri saglayıcıları

Görüldügü gibi bir OleDbConnection nesnesi öncelikle bir Ole Db Data Provider (

Ole Db Veri Saglayıcısı) ile iletisim kurar. Ardından bu veri saglayıcı istenen veri kay-

nagına eriserek, gerekli hattı tesis etmis olur. Peki bu islemi nasıl gerçeklestirecegiz. Iste

tüm Connection nesnelerinin en önemli özelligi olan ConnectionString özelligi bu nok-

tada devreye girmektedir. Kısaca ConnectionString özelligi ile, veri kaynagı ile saglana-

cak olan iletisim hattının kurulum bilgileri belirlenir. OleDbConnection sınıfı için Con-

nectionString özelligi asagıdaki prototipe sahiptir. public virtual string ConnectionString

get; set; ConnectionString özelligi belirlenmis bir OleDbConnection sınıfı nesne örnegini

açtıgımızda, yani veri kaynagına olan hattı kullanılabilir hale getirdigimizde, bu özel-

lik yanlız-okunabilir (read-only) hale gelir. Dolayısıyla açık bir OleDbConnection nesne-

sinin ConnectionString özelligini degistiremezsiniz. Bunun için bu baglantıyı tekrardan

kapatmanız gerekecektir. ConnectionString özelligi, bir takım anahtar-deger çiftlerinin

noktalı virgül ile ayırlmasından olusturulan string bir bilgi toplulugudur. ConnectionSt-

ring özelligi içinde kullanabilecegimiz bu anahtar-deger çiftlerinin en önemlisi Provider

anahtarıdır. Bu anahtara verecegimiz deger, hangi tip ole db veri saglayıcısını kullanmak

istedigimizi belirtmektedir. Örnegin Sql sunucusuna, Sql Ole Db Provider ile baglanmak

istersek, Provider anahtarına, SQLOLEDB degerini atarız. Provider anahtarı mutlaka be-

lirtilir. Daha sonraki anahtar-deger çiftleri ise bu Provider seçimine baglı olarak degisiklik

gösterecektir. Veri kaynagına hangi tip Ole Db Veri Saglayıcısından baglandıgımızı seç-

tikten sonra, baglanmak istedigimiz veri kaynagıda belli olmus olucaktır. Sırada bu veri

22

Page 32: vehicle gearbox modelling

kaynagının adını veya adresine belirtecegimiz anahtar-deger çiftlerinin belirlenmesi var-

dır. Örnegin bir Sql Sunucusuna baglanıyorsak, sunucu adınıda Ole Db Data Provider(

Veri Saglayıcısı) ’na bildirmemiz gerekir. Bunun için Data Source anahtarını kullanırız.

Bununla birlikte baglandıgımız veri kaynagı, sql yada oracle gibi bir veritabanı yönetim

sistemi degilde, Access gibi bir tablolama sistemi ise, Data Source anahtarı, tablonun fi-

ziki adresini alır. Sql ve Oracle gibi sunuculara yapılacak baglantılarda Provider ve Data

Source seçiminin yanında hangi veritabanına baglanılacagınıda Initial Catalog anahtarı

yada Database anahtarı ile belirleriz. Bunların dısında veri kaynagına yapılacak olan bag-

lantının güvenlik ayarlarınıda belirtiriz. Çogunlukla Integrated Security gibi bir anahtara

True degerinin atandıgını görürüz. Bu anahtar, veri kaynagına baglanmak istenen uygu-

lama için, makinenin windows authentication ayarlarına bakıldıgını belirtir. Dolayısıyla

sql sunucusuna baglanma yetkisi olan her windows kullanıcısı bu baglantıyı saglayabilir.

Ancak istersek belli bir kullanıcı adı veya sifresi ilede bir veritabanına baglantı açılmasını

saglayabiliriz. Bunun için ise, User ID ve Password anahtarlarını kullanırız. Buraya kadar

bahsettiklerimiz kavramsal açıklamalardır. Dilerseniz basit örnekler ile konuyu daha iyi

açıklamaya çalısalım. Örneklerimizi Console uygulamaları seklinde gerçeklestirecegiz.

Ilk örnegimizde, Sql Sunucusundaki veritabanı için, bir baglantı hattı olusturup açacagız.

using System;

using System.Data.OleDb; /* OleDbConnection s�n�f�, Data.OleDb isim uzay�nda yer

almaktad�r. */

namespace OleDbCon1

{

class Class1

{

static void Main(string[] args)

{

OleDbConnection conFriends=new OleDbConnection();

conFriends.ConnectionString="Provider=SQLOLEDB;Data

Source=localhost;Database=Friends;Integrated Security=SSPI";

try

23

Page 33: vehicle gearbox modelling

Sekil 10: Baglantı olusurulduguna dair çıktı

{

conFriends.Open(); /* Open metodu ile olu³turdu§umuz ileti³im hatt�n�

kullan�ma aç�yoruz. */

Console.WriteLine("Ba§lant� aç�ld�...");

conFriends.Close(); /* Close metodu ilede olu³turulan ileti³im hatt�n�

kapat�yoruz. */

Console.WriteLine("Ba§lant� kapat�ld�...");

}

catch(Exception hata)

{

Console.WriteLine(hata.Message.ToString());

}

}

}

Aynı örnekte bu kez belli bir kullanıcı ile baglanmak istedigimizi düsünelim. Bu du-

rumda ConnectionString’imizi asagıdaki sekilde degistirmemiz gerekir. Bu durumda User

ID ve Password anahtarlarına gerekli kullanıcı degerlerini atarız.Sekil 12’de baglantı olus-

turulmus bir çıktı gösterilmistir.

conFriends.ConnectionString= ”Provider = SQLOLEDB;DataSource= localhost;Database=

Friends;UserId = sa;Password =CucP??80.”; Simdide bir Access tablosuna nasıl bag-

lanabilecegimizi görelim. Bunun için ConnectionString özelligimizi asagıdaki gibi yaza-

rız.

OleDbConnection conYazarlar=new

OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=c:\\Authors.mdb");

24

Page 34: vehicle gearbox modelling

Sekil 11: Oledb nesne ile baglantı olusturuldugunun çıktısı

try

{

conYazarlar.Open();

Console.WriteLine("Yazarlar Access veritaban�na ba§lant� aç�ld�...");

conYazarlar.Close();

Console.WriteLine("Yazarlar Access veritaban�na olan ba§lant� kapat�ld�...");

}

catch(Exception hata)

{

Console.WriteLine(hata.Message.ToString());

}

Bu örnekte dikkat ederseniz ConnectionString özelligini, OleDbConnection nesnemizin

diger yapıcı metodu içerisinde parametre olarak belirledik. Ayıraca, Provider olarak bu

kez Microsoft.Jet.OLEDB.4.0 ’ı seçerek, bir Access veritabanına baglanmak istedigimizi

bu Ole Db Provider’a bildirmis olduk.Daha sonra bu veri saglayıcı componenti, Data

Source anahtarındaki degere bakarak, ilgili adresteki veritabanına bir hat çekti.

Sekil 11’de örnekte bu gösterilmistir.

25

Page 35: vehicle gearbox modelling

5 Programlama

Araç simulasyon ortamına ait kullanılan eventler ve özelikler.

5.1 Algoritmalar

5.1.1 Gaza basma

Bu fonksiyon temel olarak asagıdaki kaba kodu gerçekler.timer belirlenen hassas peri-

yotlarda asagıdaki event’i denleyecektir ve program bu kosullara göre kosacaktır.

• eger gaza basılırsa

• hız sabitleyicide degilse

• gazı oku

• eger sabitleyicide ise

• eger sabitlenme hızı anlık hızdan küçükse ise

• gazı ver

• degilse

• gazı sıfırla

5.1.2 Tekerler

Bu fonksiyonda parametre olarak aldıgı aracın lastik ölçüleri,maksimum motor devri,vites

disli oranlarına göre asagıdaki hesaplamaları yapan islevdir.

• tekerin yuvarlanma mesafesini bul

26

Page 36: vehicle gearbox modelling

• her bir vites oranına göre maksimum hızları hesapla

5.1.3 Araç kuvveti

Bu fonksiyon ise vites konumu ve gaz kelebeginden okudugu degerlere göre aracın

motor devrinin seyrettigi devir degerine göre motor torkuna göre yola aktarılan kuvveti

hesaplayan islevdir.

• eger itronic mod aktifse

• baglı parametrelere göre vites arttır

• eger vites 1 de ise

• birinci vitesin oranını al

• degilse eger vites 2 de ise

• birinci vitesin oranını al

• degilse eger vites 3 de ise

• birinci vitesin oranını al

• degilse eger vites 4 de ve sanzımandan küçük ise

• birinci vitesin oranını al

• degilse eger vites 5 de ve sanzımandan küçük ise

• birinci vitesin oranını al

• degilse eger vites 6 de ve sanzımandan küçük ise

• birinci vitesin oranını al

27

Page 37: vehicle gearbox modelling

• degilse eger vites 7 de ve sanzımandan küçük ise

• birinci vitesin oranını al

• eger dev tick degerinden kucukse

• dev e tik degerini ata

• degilse

• güncel devir hızını hesapla

• eger

• dev maxdevirden buyukse

• dev e maksimum degeri ata

• yola aktarılan kuvveti hesapla

5.1.4 Dıs kuvvetler

Bu metotta eger menzil olarak atanmıs alınacak yol tükenmis ise yeni yol baslıgı

olusturur harita seçimi yapılmamıssa,yapıldıysa yukarıda açıklanmıs olan durum geçerli-

dir.Yolun parametrelerine göre araca etkiyen ivme hesaplanır.Sürtünme hesapları ve fren

kontrolüde yapıldıktan sonra güncel anlık hız hesaplanır.Menzilden çıkartılarak alınan yol

güncellenir.

• eger menzil sıfırdan küçükse

• eger harita seçimi yapılmamıssa

• rastgele inis yada çıkıstan olusan rastgele egimli belirli bir menzilden olusan harita

olustur

28

Page 38: vehicle gearbox modelling

• eger harita seçilmisse

• haritadan parametreleri çek

• eger menzil sıfırdan küçük degilse

• egime göre neagatif yada pozitif ivmeyi hesapla

• hıza göre hava sürtünme kuvvetini hesapla

• torka göre aracın ivmesini hesapla

• frena basıldıysa fren degerini ata

• son olarakta anlık hızı hesapla

• menzilden anlık hızı çıkart

• programın çıktılarını yaz

5.1.5 Form yüklenirken

Veritabanından baslıkları çekip forma ekleyerek sorgularken seçilecek anahtarlar ekle-

nir

5.1.6 Her timer periyodunda

Gaz basma,araç kuvveti,dıs kuvvetleri her timer periyotta hesaplanarak bilgiler forma

göncerilir.

5.1.7 Hız sabitleyici tusu

Bu fonksiyonda hız sabitleme tusuna basıldıgında asagıdaki algoritmayı gerçekler.

29

Page 39: vehicle gearbox modelling

• tusu devre dısı bırak

• modu aktif et

• anlık hızı sabitltici hız olarak ata

• formda sabitlenmis hızı göster

5.1.8 i-tronic tusu

• butonu disable et

• sınıflandrıcıyı aktif et

5.1.9 Gaza basma ve fren yapma

Mainform mousemove özeligi ile iliskilendirilmis fonksiyon

• belirtilen koordinatlar arasında ise imleç

• gaz verme koordinatları içinde ise gaz ver(kalibrasyona göre)

• degilse

• fren verme koordinatları içinde ise fren yap(kalibrasyona göre)

• hız sabitleyici devre dısı

• mod false

• sabitleyici tusu aktif et

30

Page 40: vehicle gearbox modelling

5.1.10 Vites artırma azaltma

Vites arttırıp azaltma artırma islemi mouse’un butonlarının event’larına ait özelikler

atanmıstır.

• Datatable temizle

• listbox-ı temizle

• mouseun sol klik edildi ise

• vites artır

• datatable a ilgili parametreleri kaydet

• mouseun sag klik edildi ise

• vitesi azalt

• datatable a ilgili parametreleri kaydet

• i-tronic modu aktif edilebilir

5.2 UML

5.2.1 Naif bayes algoritması

Naive bayes algoritması hazır kod olarak alınarak projeye eklendi.Bu sınıfa ait öze-

lik,islev ve alanlar Sekil 12’te görüldügü gibidir

5.2.2 Anaforma ait islev ve üyeleri

Anaforma ait islevler Sekil 13’deki gibidir.

31

Page 41: vehicle gearbox modelling

Sekil 12: Naive bayes sınıfına ait islev ve alanları

Sekil 13: Ana forma ait islev ve alanları

32

Page 42: vehicle gearbox modelling

5.3 Araç Ve Harita Veritabanı

Burada veritabanından çekilmek üzere bazı veriler kaydedilecektir.Veriler sırasıyla

asagıdaki gibidir.

• Bölünmüs devir bantlarına ait tork degerleri

• Vites oranları

• Son disli oranı

• Agırlık

• Tekerlek ölçüleri

• Tüketim katsayıları

• Vites sayisi

• Son deviri

• Genislik,Yükseklik,cw degeri ve araca ait resmin yoluaraç adlı tabloda tutulmakta-

dır.

Ayrıca yol adlı tabloda yol tipleri ayrı bir tabloda ise bu yollara ait olan yolların nite-

lik ve niceliklerini tutan bilgiler Sekil 14’de tanımlandıgı gibi tablolarda tutulmaktadır

Yola ait nitelikler yol bilgilerinden farklı tabloda egimi,yukarımıı,mesafesi ve sürtünme

katsayılarını barındırır.

33

Page 43: vehicle gearbox modelling

Sekil 14: Veritabanına ait bilgileri depolayan tablolar

34

Page 44: vehicle gearbox modelling

6 SONUÇLAR VE ÖNERILER

Sonuç olarak c# ortamında bir araçın dinamik olarak hesapları,yakıt tüketimleri,

performansları ve bunlara ek olarak i-tronic adında bir kullanıcı davranıslarını modellene-

rek simulasyonda kendi kendine vites atılması saglandı,ancak vites oranlarının biribirine

çok yakın oldugu ve veri kümesinin kararsız,bulanık oldugu durumlarda basarısız netice

vermesi olasılıgı yüksek oldugu gözlenmistir.

35

Page 45: vehicle gearbox modelling

Kaynaklar

[1] http://forum.donanimhaber.com

[2] http://yegitek.meb.gov.tr,

[3] http://www.muhendese.com/yuvarlanma-surtunmesi/

[4] htt p : //tr.wikipedia.org/wiki/Aerodinamik(otomobil)

[5] htt p : //www.tnoz.com/sanziman− nedir − disli− oranlari− ne− ise− yarar −

2526/

[6] htt p : //www.codepro ject.com/Articles/318126/Naive−Bayes−Classi f ier

[7] htt p : //www.abdullahaltintas.com/index.php/dll − olusturulmasi − ve −

dllkullanimi/

[8] AmbalavanarT hirugnanam,htt p : //www.codepro ject.com/Articles/20341/Aqua−

Gauge

[9] htt p : //www.csharpuygulamalar.com/20130414archive.html

[10] htt p : //tr.wikipedia.org/wiki/CSharp

36

Page 46: vehicle gearbox modelling

ÖZGEÇMIS

KISISEL BILGILER

Adı Soyadı :Mustafa KÖSTEK

Uyrugu : T.C

Dogum Yeri ve Tarihi: Çayıralan 1993

Adres : Çayıralan

Telefon : +905549935366

e-mail : [email protected]

EGITIM DURUMU

Lisans Ögrenimi : Bilecik Seyh Edebali Üniverstesi, Bilecik

Bitirme Yılı : 2015

Lise : Balıkesir Edremit Anadolu Lisesi

IS DENEYIMLERI

Yıl : 2013

Kurum : IZSU

Stajlar : IZSU

ILGI ALANLARI

Eskrim

YABANCI DILLER : Almanca,Ingilizce

37