SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
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
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
B˙ILD˙IR˙IM
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 kayna˘gına eksiksiz atıf yapıldı˘gını bildiririm.
DECLARATION
I hereby declare that all information in this document has been obtained and presented
in accordance with academic rules and ethical conduct. I also declare that, as required by
these rules and conduct, I have fully cited and referenced all materials and results that are
not original to this work.
˙Imza
Mustafa KÖSTEK
5.6.2015
ii
ÖZET
B˙IT˙IRME ÇALI¸SMASI
ARAÇ ¸SANZIMAN MODELLEMES˙I
Ö˘grencinin Adı SOYADI
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 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ı olu¸sturulmu¸s,bunun yanında kullanıcı tarafından vites de˘gi¸stirme ve-
rilerini bir verikümesi olarak kaydetip bir tu¸s vasıtasıyla e˘gitilerek kullanıcının e˘gitti˘gi
verilere göre vites de˘gi¸stirme i¸slemlerini otomatik gerçekle¸stiren i-tronic vites tasarlan-
mı¸stır.Yanı sıra yakıt tüketimi,araç performansları,tork kavramına ciddi ¸sekilde de˘ginile-
cektir.
Anahtar Kelimeler: fizik motoru,makine ö˘grenmesi,yakıt tüketimi,döndürme kuvveti,performans
iii
ABSTRACT
THESIS
VEHICLE GEARBOX MODELLING
Mustaf Köstek
BILECIK ¸SEYH EDEBALI UNIVERSITY
ENGINEERING 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
ÖNSÖZ
Bu projenin yazımının ba¸sından sonuna kadar eme˘gi geçen ve beni bu konuya yönlen-
diren saygı de˘ger hocam ve danı¸smanım Sayın Murat ÖZALP’a tüm katkılarından ve
hiç eksiltmedi˘gi deste˘ginden dolayı te¸sekkür ederim.
Mustafa Köstek
v
˙Içindekiler
* v
¸SEK˙ILLER TABLOSU viii
1 G˙IR˙I¸S 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 Di¸sli 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 Ele¸stiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
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 tu¸su . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.8 i-tronic tu¸su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 i¸slev ve üyeleri . . . . . . . . . . . . . . . . . . . . 31
5.3 Araç Ve Harita Veritabanı . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 SONUÇLAR VE ÖNER˙ILER 35
SONUÇLAR VE ÖNER˙ILER 35
KAYNAKLAR 36
ÖZGEÇM˙I¸S 37
vii
¸SEK˙ILLER TABLOSU
1 Bir araç farklı devir bantlarında farklı tork de˘gerleri üretir[1] . . . . . . . 2
2 Yoku¸s yukarı ve a¸sa˘gı 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 olu¸sturma ve ça˘gırma adımları . . . . . . . . 17
6 Dll referans gösterme i¸slemi . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Referans alınan komponentin içeri˘gi [8] . . . . . . . . . . . . . . . . . . 19
8 C# bir chart görünümü . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9 Oledb veri sa˘glayıcıları . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10 Ba˘glantı olu¸suruldu˘guna dair çıktı . . . . . . . . . . . . . . . . . . . . . 24
11 Oledb nesne ile ba˘glantı olu¸sturuldu˘gunun çıktısı . . . . . . . . . . . . . 25
12 Naive bayes sınıfına ait i¸slev ve alanları . . . . . . . . . . . . . . . . . . 32
13 Ana forma ait i¸slev ve alanları . . . . . . . . . . . . . . . . . . . . . . . 32
14 Veritabanına ait bilgileri depolayan tablolar . . . . . . . . . . . . . . . . 34
viii
1 G˙IR˙I¸S
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 bulundu˘gu yolun e˘gimide 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
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 sa˘glanır.
2.1 Tork nedir?
Her aracın motor karakteristi˘gine göre belirli devir bandlarında belli tork de˘gerleri üre-
tir.Bu tork döndürme kuvveti olarak tanımlanır.¸Sekil 1’de oldu˘gu gibi bir aracın motoruna
ait tork grafi˘gi gösterilmi¸stir.
¸Sekil 1: Bir araç farklı devir bantlarında farklı tork de˘gerleri üretir[1]
2
¸Sekil 2: Yoku¸s yukarı ve a¸sa˘gı inen araça etkiyen kuvvetler
2.2 Dinamik kuvvetleri
Araçlar bulundu˘gu yolun e˘gim açısına göre bir ivmelenme söz konusudur.¸Sekil 2’de
buna örnekler nitelikte çözümlenmi¸stir.[2] Görüldü˘gü gibi yolun e˘gimine göre araç ini¸s
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 nitelendirilmi¸stir.
2.3 Sürtünme kuvvetleri
Temel olarak araça etki eden sürtünme kuvveti lastikler ile yol arasındaki kuvvet-
tir.Di˘ger bir kuvvet ise hava sürtünme kuvveti olarak nitelendirilmi¸stir.Bu iki kuvvet araca
negatif olarak etki eden kuvvetler olarak adlandırılabilir.
3
2.3.1 Lastik yuvarlanma sürtünmesi
Yüzyıllar önce bulunan tekerlek icat edilerek hem sürtünmeden do˘gan negatif kuvvet
minimize edilmi¸stir.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
edilmi¸stir. Ba¸slıca yüzeylerin yuvarlanma sürtünme kuvvetleri a¸sa˘gıdaki gibidir:[3]
• Çelik ray üstünde çelik tekerlek 0.001-0.002
• ¸Sambrelsiz teker 0.002-0.005
• Kamyon lasti˘gi(asfalt) 0.006-0.01
• Beton-otomobil lasti˘gi 0.01-0.015
• Asfalt-otomobil lasti˘gi 0.03
• Katı kum otomobil lasti˘gi 0.04-0.08
• Gev¸sek kum-otomobil lasti˘gi 0.2-0.4
Mesela,beton üzerinde hareket eden 2 ton a˘gı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 bahsetti˘gim gibi yuvarlanmadan dolayı olan sürtünme
kaybı çok küçük. Sonucumuz 294 N oda yakla¸sık 30 kg civarında bir kuvvete denktir.
¸Sayet lastik ile beton arasındaki kaymadan mütevellit sürtünme sorulmu¸s olsaydı bu du-
rumda sürtünme katsayımız f=0,7 olacaktı ve sonucumuz 0,7*19620 =13734 N olacaktı ,
buda di˘gerinin yakla¸sık 47 katı büyüklükte bir sürtünme kuvveti olurdu.
4
2.3.2 Aerodinamik
Dü¸sük hızlarda hava direnci di˘ger kayıplar yanında oldukça dü¸sük mertebelerdedir.
Ancak hız 30-40 km/h de˘gerine ula¸sınca hava direnci önem kazanır. Bunun sebebi hava
direncinin hızın karesiyle do˘gru orantılı olarak artmasıdır. Geometrik boyutları araç dı¸s
formuna ba˘glı 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·V2
(1)
Bura da ;
• d: Havanın yo˘gunlu˘gu ( 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 a˘gırlı˘gında bir kütleyi havaya kaldırmak için gerekli olan kuvvete
e¸sittir. Cw de˘geri bir cismin dı¸s formu sebebiyle düzgün do˘grusal akım içinde olu¸sturdu˘gu
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 ba˘glı 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 ba˘glı olan direnç
katsayısı Cw’yi azaltmaktır. Cw de˘gerinin azaltılması:
• Motor gücü sabit bir aracın daha yüksek hıza eri¸sebilmesi
5
• 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 hedeflendi˘ginden birinci ¸sık Cw de˘gerinin 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 özelli˘gi do˘grusal
akımda bilinen en az bozuntuya sebep olan yapı olmasıdır.
2.4 ¸Sanzıman Ve Di¸sli Oranları
Motordaki yüksek torklu kuvvetten optimum derecede verim elde etmek için di¸sli 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 di¸sli modeli ile anlatayım;Motordan ¸sanzı-
mana gücü aktaran a¸sa˘gıdaki en soldaki küçük di¸sli olsun. (ortadaki 2 katı, sa˘gdaki 4
katı büyüklü˘günde yani 1:1, 2:1 ve 4:1) Bizim motorumuzun üretti˘gi 1000 devirde tork
de˘geri 100 Nm olsun. (yani küçük di¸slideki gücümüz) ¸simdi ortadaki di¸sli ile küçük di¸s-
liyi birle¸stirelim. Ortadaki, küçü˘gün 2 katı oldu˘guna göre 1000 devir dönen küçük di¸sli
2 katı büyüklü˘gündeki di¸sliyi 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 ∗mesafe (mesafe
burada di¸slimizin oranı oluyor yani 2’yi kullanaca˘gız) formülünde bizim için i¸s elde ede-
ce˘gimiz 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 di¸sliyi 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 di¸sli birinci vites
di˘geri de 2. vites olacaktır. Birinci viteste tur sayısı az oldu˘gu için de aracımız hız kazan-
dıkça son devire ula¸sı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
ula¸stı˘gı için ilk ba¸staki kadar yüksek güce ihtiyacı kalmadı bu yüzden 200Nm gayet ye-
terli.˙I¸ste ¸sanzımanın en basit tanımı budur. ¸Sanzıman tabi bunun biraz daha karma¸sık hali
ama temel mantık yukarıdaki örnek ile aynı.
6
¸Sekil 3: Bir aktarma organı [5]
¸Sanzıman di¸sli oranları otomobilde aracın 0-100 oranından son hızına gibi performans
de˘gerlerine etki eder, peki bizim ne i¸simize yarar? ¸Sanzıman di¸sli oranlarını bildi˘gimiz bir
otomobilin son hızını hesaplayabiliriz ya da lastik boyutu de˘gi¸stirlece˘gi zaman do˘gru hız
bilgisine ula¸sabiliriz. Bu hesaplama yukarıdaki 3 di¸sli örne˘ginden biraz daha karma¸sık.
O örnekte lastik ebatı ve di˘ger önemli etkenleri gözardı ederek kaba bir hesap yapmı¸stık.
Artık hesabımızda jant çapı, lastik yana˘gı, lastik ebatı ve son di¸sli 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 di¸sli oranı 4.100. Jant ölçüsü
17 inç, lastik ebatı 215 ve lastik yana˘gı 45.¸Simdi gelelim hesabımıza,Hızı bulmak için
önce tekerle˘gin yuvarlanma dairesini ve tekerle˘ge aktarılan devri bulmamız gerekiyor.
1.Formül:Tekerlek yuvarlanma dairesi = (( jant çapı(inc)*25,4)+(lastik geni¸sli˘gi*yanak
yüksekli˘gi*2))*Pi sayısı Hesabımız: ((17*25.4)+(215*0.45*2))*3,141= 1.963m
2. Formül:Tekerle˘ge aktarılan devir = Devir(rpm)/son di¸sli 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 tekerle˘ge 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
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 de˘geri öngörülür.¸Sehir dı¸sı tüketim de˘gerleri 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 de˘gerleri tayin edilir. Temel olarak 20
km/saat hızda aracın tüketim de˘gerlerini iki adet de˘gi¸skenimiz vardır bu hızda iken bu-
lundu˘gu motorun devri ve motora ne kadar gaz verildi˘gidir. Bu iki parametreyi biz birinci
dereceden iki bilinmeyenli denklem sistemine çevirip bu parametrelerin cevabı olarakta
tüketim de˘gerlerini yazarsak bu iki katsayı aracılı˘gıyla biz anlık olarak tüketim de˘gerini
çı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 de˘geri ve dev de˘geri programda ko¸sturulacak 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 do˘gru orantılıdır.Yukarıdaki
denklemde görülen de˘gerler sırasıyla 20 ve 90 km/saat hızlarında giden aynı araca ait
olan tüketim de˘ger e¸sitsizli˘gi (4) nolu denklem ile temsil edilir.
x,y =


5 32
17 55
2.4
6.1

 (4)
Buradan thr ve dev de˘gerleri elde edilir.Sonra ise bunlar formülde yerine konarak 100 km
de ve saatteki yakıt tüketimi bulunur.
8
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 tu¸s vasıtasıyla i-tronic moduna geçilir.Bu
modda önceden kayıt edilmi¸s verilere i¸sleyip vites de˘gi¸stirmeye ait sınırlarını belirleye-
rek bu parametreler dahilinde ilgili vitesi her bir zaman tikinde sorgular.E˘ger bu modda
iken vites i¸slemi kullanıcı tarafından yapılırsa moddan çıkılır ve yeniden vites de˘gi¸sim-
lerinde parametreler sıfırlanan veritabanına kayıt edilir(sıfırlanır). Tablo 1’de bir e˘gitim
verisi gösterilmi¸stir.
9
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 yakla¸sımdır. Bu
önerme örüntü tanıma da kullanılacak her bir tanımlayıcı nitelik ya da parametrenin is-
tatistik açıdan ba˘gımsız olması gereklili˘gidir. 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 ba˘gımsızlık ko¸sulu
esnetilerek kullanıldı˘gında da daha karma¸sık Yapay sinir a˘gları gibi metotlarla kar¸sıla¸s-
tırabilir sonuçlar vermektedir. Bayes Teoremi Naive Bayes sınıflandırıcısı Bayes teore-
minin ba˘gımsızlık önermesiyle basitle¸stirilmi¸s 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çekle¸sti˘gi durumda A olayının meydana gelme olasılı˘gıdır (bakınız
ko¸sullu olasılık)
P(B|A); A olayı gerçekle¸sti˘gi 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. Di˘ger bir ifadeyle örne˘gin P(A) henüz elde veri toplanmadan
A olayı hakkında sahip olunan bilgidir. Di˘ger taraftan P(B|A) ardıl olasılıktır çünkü veri
toplandıktan sonra, A olayının gerçekle¸smi¸s oldu˘gu durumlarda B olayının gerçekle¸sme
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 oldu˘gu bellidir. E-posta kutusuna gelen e-postaların spam olarak ayrı¸stırıl-
ması i¸slemi 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 ula¸sacak e-postaların spam olup olmadı˘gına karar verecek
10
bir Algoritma da ö˘greticili makina ö˘grenmesine örnektir. Sınıflandırma i¸sleminde genel
olarak elde bir örüntü (pattern) vardır. Buradaki i¸slem 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 örne˘ginden devam edilecek olunursa; Posta
kutumuzda bulunan spam e-postaları spam olmayan e-postalardan ayıran parametreler-
den olu¸san bir küme, meselaikramiye,ödül gibi sözcüklerden olu¸san, 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ü olu¸sturur. x ∈ RL verildi˘gine 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 yo˘gunluk fonksiyonu(oyf)
11
• P(x|Si);i = 1 = 2, ..., L, x’in ko¸sullu 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 örne˘ginden
gidecek olursak spam olup olmadı˘gını bilmedi˘gimiz yeni bir e-posta sınıfı belli olmayan
örüntüdür. Yine Si|x’in atanaca˘gı sınıf ise; Bayes karar teorisine göre x sınıf Si’ya aittir
e˘ger
P(Si|x) > P(Sj|x),∀j =,i (11)
di˘ger bir ifadeyle
P(x|Si)P(Si) > P(x|Sj)P(Sj),∀j =,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
ba˘gı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|Sj)P(Sj),∀j =,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
böylece Bayes karar teoremi a¸sa˘gıdaki ¸sekli alır.Bayes karar teorisine göre x sınıf Si ya
aittir e˘ger (15)’u sa˘glıyorsa
P(Si)
L
∏
k=1
P(xk|Si) > P(Sj)
L
∏
k=1
P(xk|Sj) (15)
P(Si) ve P(Sj) i ve j sınıflarının önsel olasılıklarıdır.Elde olan veri kümesinden de˘gerleri
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) bile¸senleri-
nin istatistik olarak ba˘gımsız olması ko¸sulu esnetilerek ba¸sarılı sonuçlar elde edilebilinir.
13
4 C# nedir?
C# Programlama Dili,Microsoft’un geli¸stirmi¸s oldu˘gu yeni nesil programlama dilidir.[10]
C#, .NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem de insan
algısına e¸sit seviyededir. Buradaki orta ifadesi dilin gücünü de˘gil makine dili ile günlük
konu¸sma diline olan mesafesini göstermektedir. Örne˘gin; Visual Basic .NET (VB.NET)
yüksek seviyeli bir dildir dersek bu, dilin insanların günlük ya¸santılarında konu¸sma 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 sa˘glamlılı˘gı, güvenirlili˘gi ve programcıların üretkenlili˘gi ö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 de˘gi¸skenlerin kullanım tespiti,
(source code portability), ve otomatik artık veri toplama gibi özelliklerine sahiptir.
• Programcı portatifli˘gi ö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 i¸slevselli fonksiyondan i¸sletim sistemini kullanan
en teferruatlısına kadar kapsamaktadır.
14
• C# uygulamaları hafıza ve i¸slemci gereksinimleri ile tutumlu olmak uzere tasarlan-
mı¸stır. Buna ra˘gmen C# programlama dili performans açısından C veya assembly
dili ile rekabet etmek için tasarlanmamı¸stır
4.2 Ele¸stiri
C# konusunda ele¸stiriler tabii ki var. En önemlisi using ile hangi referansları kullana-
ca˘gı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
Di˘gerleri gibiSanal Makine’ye dayalı dillerden biridir, C# programlama dili direkt yer-
le¸sik kod’a derleyen dillerden daha yava¸stı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 ba¸ska 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 i¸sletim sistemi dosyalarının bulun-
du˘gu yerde mutlaka kar¸sımıza çıkmı¸stır.[7]Dll dosyaları içinde çalı¸sabilir kod bulundu-
ran kendi ba¸sına çalı¸samayan,executable dosyalar tarafından dinamik ya da static olarak
ça˘grılıp kullanılabilen,içinde prosedur veya fonksiyon bulundurabilen dosyalardır. Niçin
kullanmalıyız?
15
¸Sekil 4: Yeni bir proje açılması
Yaptı˘gınız uygulama büyük bir program olabilir. Programınızın bellekte tuttu˘gu alanı
azaltmak için bazı fonksiyonları dinamik olarak ça˘gırıp kullanmak gerekebilir.˙I¸ste tam
burada DLL kullanmak oldukça mantıklı ve gereksinim duyulan bir i¸stir. Bundan farklı
olarak Dll dosyası kullanarak Exe dosyalarınızın ¸si¸smesini engelleyebilirsiniz. ¸Si¸sersene
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 ta¸sınabilir-
lik.Bir i¸slem 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ı di˘ger
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 de˘gilse proje eksik çalı¸sabilir ya da hiç çalı¸smayabilir.
Örn;statik olarak ça˘grılan bir dll belirtilen klasorde mevcut de˘gilse dosya çalı¸smaz.Belle˘ge
ilk olarak dll dosyaları yuklendi˘ginden program açılmadan kapanır. ¸Simdi bir dll yazalım
ilk olarak resimde görüldü˘gü gibi ¸Sekil 5’te kullanım gösterilmi¸stir.
Class Library proje tipini seçiyoruz. Daha Sonra basit bir i¸slem olarak a¸sa˘gıdaki kodlar
yazıyoruz.
public int topla(int a, int b)
16
¸Sekil 5: Sıralı olarak bir projede dll olu¸sturma ve ça˘gırma adımları
17
¸Sekil 6: Dll referans gösterme i¸slemi
{
return a + b;
}
public double bol(Double a, Double b)
{
return a / b;
}
Daha Sonra Sadece Build edip i¸slemi 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 kar¸sımıza gelen tarayıcıya olu¸sturdu˘gumuz Dll dosyasının ye-
rini ¸Sekil 6’de oldu˘gu gibi gösteriyoruz.
Bunuda yaptıktan sonra Classımız solution’a eklendi.Sırada Classı ça˘gı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
¸Sekil 7: Referans alınan komponentin içeri˘gi [8]
Convert.ToInt32(textBox2.Text)).ToString();
//Classmzdaki topla fonksiyonunu ça§rdk.
}
private void button2_Click(object sender, EventArgs e)
{
label4.Text = mydll.bol(Convert.ToDouble(textBox1.Text),
Convert.ToDouble(textBox2.Text)).ToString();
//Bol fonksiyonunu ça§rdk
}
4.6 Gösterge Ve Özelikleri
C#’ta bir önceki ba¸slıkta anlatıldı˘gı gibi çalı¸sma anında .dll uzantılı olarak projeye im-
port edilebildi˘ginden bahsettik ¸Sekil 7’da oldu˘gu gibi göstergeler projede referans olarak
eklendikten sonra tulbax’ta gözükecektir.
Göstergeye ait özelikler Tablo 2’de gösterilmi¸stir.
19
Tablo 2: Göstergeye ait i¸slevler
Özelik adı Tipi Tanımlaması
DialColor Color Arka plan rengini ayarlar
DialText String Göstergedeki yazıyı kontrol eder
EnableTransparent Background bool Transparan arkaplanı aktif eder
Glossiness Float Parlaklık
MaxValue Float En büyük alabilecek de˘geri
MinValue Float En küçük alabilece˘gi de˘geri
NoOfDivisions Int Numaralarla bölümlendirme
NoOfSubDivision Int Her bölme için görüntülenecek bölüm sayısı
RecommendedValu e Float E¸sik alan çizmek için pivot noktası olarak kullanılacaktır.
ThresholdPercent Float E¸sik alanının yüzde ölçe˘gini ayarlar.
Value Float De˘geri kontrol eder
4.7 Visual C# Chart Kullanımı ( Grafik )
Chart bildi˘gin grafik( Çubuk,pasta,çizgiler,e˘gilim çizgileri vs) hazırlamak için kulla-
nılan bir tür Microsoft tarafından geli¸stirilen Component’dir.[7] Bir çok projede i¸s gö-
rür niteliktedir ve tasarımını renklendirerek iyile¸stirebiliyorsunuz. 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 ki¸sisel 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 oldu˘gu gibidir bir chart. Ben network kim ne
20
kadar dosya indirmi¸s kim ne kadar dosya yüklemi¸s onların takibini yaptı˘gım için grafi˘gi
de ona göre hazırlayaca˘gı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;//Downloadn rengini
//belirledik.(Grafiksel iyile³tirmek için)
this.chart1.Series[1].Color = Color.Orange;//Uploadn rengini belirledik.
for (int i = 0; i  7; i++)//Ben 7 adet kayt 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 de˘gi¸skenleri 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 deste˘gi olan veri kaynaklarına
eri¸sebilmesi amacıyla kullanılır. Veri kayna˘gının tipi tam olarak bilinmedi˘gi için, arada bu
i¸slevi ayırt etmeye yarayan bir COM+ nesnesi yer almaktadır. OleDbConnection sınıfına
ait bir nesne ileti¸sim kurmak istedi˘gi veri kayna˘gına ait ole db veri sa˘glayıcısını belirtmek
durumundadır. Bunu daha iyi kavramak için a¸sa˘gıdaki ¸Sekil 9 figüre bakalım.
21
¸Sekil 9: Oledb veri sa˘glayıcıları
Görüldü˘gü gibi bir OleDbConnection nesnesi öncelikle bir Ole Db Data Provider (
Ole Db Veri Sa˘glayıcısı) ile ileti¸sim kurar. Ardından bu veri sa˘glayıcı istenen veri kay-
na˘gına eri¸serek, gerekli hattı tesis etmi¸s olur. Peki bu i¸slemi nasıl gerçekle¸stirece˘giz. ˙I¸ste
tüm Connection nesnelerinin en önemli özelli˘gi olan ConnectionString özelli˘gi bu nok-
tada devreye girmektedir. Kısaca ConnectionString özelli˘gi ile, veri kayna˘gı ile sa˘glana-
cak olan ileti¸sim hattının kurulum bilgileri belirlenir. OleDbConnection sınıfı için Con-
nectionString özelli˘gi a¸sa˘gıdaki prototipe sahiptir. public virtual string ConnectionString
get; set; ConnectionString özelli˘gi belirlenmi¸s bir OleDbConnection sınıfı nesne örne˘gini
açtı˘gımızda, yani veri kayna˘gına olan hattı kullanılabilir hale getirdi˘gimizde, bu özel-
lik yanlız-okunabilir (read-only) hale gelir. Dolayısıyla açık bir OleDbConnection nesne-
sinin ConnectionString özelli˘gini de˘gi¸stiremezsiniz. Bunun için bu ba˘glantıyı tekrardan
kapatmanız gerekecektir. ConnectionString özelli˘gi, bir takım anahtar-de˘ger çiftlerinin
noktalı virgül ile ayırlmasından olu¸sturulan string bir bilgi toplulu˘gudur. ConnectionSt-
ring özelli˘gi içinde kullanabilece˘gimiz bu anahtar-de˘ger çiftlerinin en önemlisi Provider
anahtarıdır. Bu anahtara verece˘gimiz de˘ger, hangi tip ole db veri sa˘glayıcısını kullanmak
istedi˘gimizi belirtmektedir. Örne˘gin Sql sunucusuna, Sql Ole Db Provider ile ba˘glanmak
istersek, Provider anahtarına, SQLOLEDB de˘gerini atarız. Provider anahtarı mutlaka be-
lirtilir. Daha sonraki anahtar-de˘ger çiftleri ise bu Provider seçimine ba˘glı olarak de˘gi¸siklik
gösterecektir. Veri kayna˘gına hangi tip Ole Db Veri Sa˘glayıcısından ba˘glandı˘gımızı seç-
tikten sonra, ba˘glanmak istedi˘gimiz veri kayna˘gıda belli olmu¸s olucaktır. Sırada bu veri
22
kayna˘gının adını veya adresine belirtece˘gimiz anahtar-de˘ger çiftlerinin belirlenmesi var-
dır. Örne˘gin bir Sql Sunucusuna ba˘glanıyorsak, sunucu adınıda Ole Db Data Provider(
Veri Sa˘glayıcısı) ’na bildirmemiz gerekir. Bunun için Data Source anahtarını kullanırız.
Bununla birlikte ba˘glandı˘gımız veri kayna˘gı, sql yada oracle gibi bir veritabanı yönetim
sistemi de˘gilde, Access gibi bir tablolama sistemi ise, Data Source anahtarı, tablonun fi-
ziki adresini alır. Sql ve Oracle gibi sunuculara yapılacak ba˘glantılarda Provider ve Data
Source seçiminin yanında hangi veritabanına ba˘glanılaca˘gınıda Initial Catalog anahtarı
yada Database anahtarı ile belirleriz. Bunların dı¸sında veri kayna˘gına yapılacak olan ba˘g-
lantının güvenlik ayarlarınıda belirtiriz. Ço˘gunlukla Integrated Security gibi bir anahtara
True de˘gerinin atandı˘gını görürüz. Bu anahtar, veri kayna˘gına ba˘glanmak istenen uygu-
lama için, makinenin windows authentication ayarlarına bakıldı˘gını belirtir. Dolayısıyla
sql sunucusuna ba˘glanma yetkisi olan her windows kullanıcısı bu ba˘glantıyı sa˘glayabilir.
Ancak istersek belli bir kullanıcı adı veya ¸sifresi ilede bir veritabanına ba˘glantı açılmasını
sa˘glayabiliriz. 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çekle¸stirece˘giz.
˙Ilk örne˘gimizde, Sql Sunucusundaki veritabanı için, bir ba˘glantı hattı olu¸sturup açaca˘gız.
using System;
using System.Data.OleDb; /* OleDbConnection snf, Data.OleDb isim uzaynda ye
almaktadr. */
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
¸Sekil 10: Ba˘glantı olu¸suruldu˘guna dair çıktı
{
conFriends.Open(); /* Open metodu ile olu³turdu§umuz ileti³im hattn
kullanma açyoruz. */
Console.WriteLine(Ba§lant açld...);
conFriends.Close(); /* Close metodu ilede olu³turulan ileti³im hattn
kapatyoruz. */
Console.WriteLine(Ba§lant kapatld...);
}
catch(Exception hata)
{
Console.WriteLine(hata.Message.ToString());
}
}
}
Aynı örnekte bu kez belli bir kullanıcı ile ba˘glanmak istedi˘gimizi dü¸sünelim. Bu du-
rumda ConnectionString’imizi a¸sa˘gıdaki ¸sekilde de˘gi¸stirmemiz gerekir. Bu durumda User
ID ve Password anahtarlarına gerekli kullanıcı de˘gerlerini atarız.¸Sekil 12’de ba˘glantı olu¸s-
turulmu¸s bir çıktı gösterilmi¸stir.
conFriends.ConnectionString = ”Provider = SQLOLEDB;DataSource = localhost;Database =
Friends;UserId = sa;Password = CucP??80.”; ¸Simdide bir Access tablosuna nasıl ba˘g-
lanabilece˘gimizi görelim. Bunun için ConnectionString özelli˘gimizi a¸sa˘gıdaki gibi yaza-
rız.
OleDbConnection conYazarlar=new
OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;data source=c:Authors.mdb)
24
¸Sekil 11: Oledb nesne ile ba˘glantı olu¸sturuldu˘gunun çıktısı
try
{
conYazarlar.Open();
Console.WriteLine(Yazarlar Access veritabanna ba§lant açld...);
conYazarlar.Close();
Console.WriteLine(Yazarlar Access veritabanna olan ba§lant kapatld...);
}
catch(Exception hata)
{
Console.WriteLine(hata.Message.ToString());
}
Bu örnekte dikkat ederseniz ConnectionString özelli˘gini, OleDbConnection nesnemizin
di˘ger 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 ba˘glanmak istedi˘gimizi
bu Ole Db Provider’a bildirmi¸s olduk.Daha sonra bu veri sa˘glayıcı componenti, Data
Source anahtarındaki de˘gere bakarak, ilgili adresteki veritabanına bir hat çekti.
¸Sekil 11’de örnekte bu gösterilmi¸stir.
25
5 Programlama
Araç simulasyon ortamına ait kullanılan eventler ve özelikler.
5.1 Algoritmalar
5.1.1 Gaza basma
Bu fonksiyon temel olarak a¸sa˘gıdaki kaba kodu gerçekler.timer belirlenen hassas peri-
yotlarda a¸sa˘gıdaki event’i denleyecektir ve program bu ko¸sullara göre ko¸sacaktır.
• e˘ger gaza basılırsa
• hız sabitleyicide de˘gilse
• gazı oku
• e˘ger sabitleyicide ise
• e˘ger sabitlenme hızı anlık hızdan küçükse ise
• gazı ver
• de˘gilse
• gazı sıfırla
5.1.2 Tekerler
Bu fonksiyonda parametre olarak aldı˘gı aracın lastik ölçüleri,maksimum motor devri,vites
di¸sli oranlarına göre a¸sa˘gıdaki hesaplamaları yapan i¸slevdir.
• tekerin yuvarlanma mesafesini bul
26
• her bir vites oranına göre maksimum hızları hesapla
5.1.3 Araç kuvveti
Bu fonksiyon ise vites konumu ve gaz kelebe˘ginden okudu˘gu de˘gerlere göre aracın
motor devrinin seyretti˘gi devir de˘gerine göre motor torkuna göre yola aktarılan kuvveti
hesaplayan i¸slevdir.
• e˘ger itronic mod aktifse
• ba˘glı parametrelere göre vites arttır
• eger vites 1 de ise
• birinci vitesin oranını al
• de˘gilse e˘ger vites 2 de ise
• birinci vitesin oranını al
• de˘gilse e˘ger vites 3 de ise
• birinci vitesin oranını al
• de˘gilse e˘ger vites 4 de ve ¸sanzımandan küçük ise
• birinci vitesin oranını al
• de˘gilse e˘ger vites 5 de ve ¸sanzımandan küçük ise
• birinci vitesin oranını al
• de˘gilse e˘ger vites 6 de ve ¸sanzımandan küçük ise
• birinci vitesin oranını al
27
• de˘gilse e˘ger vites 7 de ve ¸sanzımandan küçük ise
• birinci vitesin oranını al
• e˘ger dev tick degerinden kucukse
• dev e tik de˘gerini ata
• de˘gilse
• güncel devir hızını hesapla
• e˘ger
• dev maxdevirden buyukse
• dev e maksimum de˘geri ata
• yola aktarılan kuvveti hesapla
5.1.4 Dı¸s kuvvetler
Bu metotta e˘ger menzil olarak atanmı¸s alınacak yol tükenmi¸s ise yeni yol ba¸slı˘gı
olu¸sturur 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 ini¸s yada çıkı¸stan olu¸san rastgele e˘gimli belirli bir menzilden olu¸san harita
olu¸stur
28
• e˘ger harita seçilmi¸sse
• haritadan parametreleri çek
• e˘ger menzil sıfırdan küçük de˘gilse
• e˘gime 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 de˘gerini 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 ba¸slı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 tu¸su
Bu fonksiyonda hız sabitleme tu¸suna basıldı˘gında a¸sa˘gıdaki algoritmayı gerçekler.
29
• tu¸su devre dı¸sı bırak
• modu aktif et
• anlık hızı sabitltici hız olarak ata
• formda sabitlenmi¸s hızı göster
5.1.8 i-tronic tu¸su
• butonu disable et
• sınıflandrıcıyı aktif et
5.1.9 Gaza basma ve fren yapma
Mainform mousemove özeli˘gi ile ili¸skilendirilmi¸s fonksiyon
• belirtilen koordinatlar arasında ise imleç
• gaz verme koordinatları içinde ise gaz ver(kalibrasyona göre)
• de˘gilse
• fren verme koordinatları içinde ise fren yap(kalibrasyona göre)
• hız sabitleyici devre dı¸sı
• mod false
• sabitleyici tu¸su aktif et
30
5.1.10 Vites artırma azaltma
Vites arttırıp azaltma artırma i¸slemi 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 sa˘g 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,i¸slev ve alanlar ¸Sekil 12’te görüldü˘gü gibidir
5.2.2 Anaforma ait i¸slev ve üyeleri
Anaforma ait i¸slevler ¸Sekil 13’deki gibidir.
31
¸Sekil 12: Naive bayes sınıfına ait i¸slev ve alanları
¸Sekil 13: Ana forma ait i¸slev ve alanları
32
5.3 Araç Ve Harita Veritabanı
Burada veritabanından çekilmek üzere bazı veriler kaydedilecektir.Veriler sırasıyla
a¸sa˘gıdaki gibidir.
• Bölünmü¸s devir bantlarına ait tork de˘gerleri
• Vites oranları
• Son di¸sli oranı
• A˘gırlık
• Tekerlek ölçüleri
• Tüketim katsayıları
• Vites sayisi
• Son deviri
• Geni¸slik,Yükseklik,cw de˘geri 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 e˘gimi,yukarımıı,mesafesi ve sürtünme
katsayılarını barındırır.
33
¸Sekil 14: Veritabanına ait bilgileri depolayan tablolar
34
6 SONUÇLAR VE ÖNER˙ILER
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ı sa˘glandı,ancak vites oranlarının biribirine
çok yakın oldu˘gu ve veri kümesinin kararsız,bulanık oldu˘gu durumlarda ba¸sarısız netice
vermesi olasılı˘gı yüksek oldu˘gu gözlenmi¸stir.
35
Kaynaklar
[1] http://forum.donanimhaber.com
[2] http://yegitek.meb.gov.tr,
[3] http://www.muhendese.com/yuvarlanma-surtunmesi/
[4] http : //tr.wikipedia.org/wiki/Aerodinamik(otomobil)
[5] http : //www.tnoz.com/sanziman − nedir − disli − oranlari − ne − ise − yarar −
2526/
[6] http : //www.codeproject.com/Articles/318126/Naive−Bayes−Classifier
[7] http : //www.abdullahaltintas.com/index.php/dll − olusturulmasi − ve −
dllkullanimi/
[8] AmbalavanarThirugnanam,http : //www.codeproject.com/Articles/20341/Aqua−
Gauge
[9] http : //www.csharpuygulamalar.com/20130414archive.html
[10] http : //tr.wikipedia.org/wiki/CSharp
36
ÖZGEÇM˙I¸S
K˙I¸S˙ISEL B˙ILG˙ILER
Adı Soyadı :Mustafa KÖSTEK
Uyru˘gu : T.C
Do˘gum Yeri ve Tarihi: Çayıralan 1993
Adres : Çayıralan
Telefon : +905549935366
e-mail : mustafakostek@gmail.com
E ˘G˙IT˙IM DURUMU
Lisans Ö˘grenimi : Bilecik ¸Seyh Edebali Üniverstesi, Bilecik
Bitirme Yılı : 2015
Lise : Balıkesir Edremit Anadolu Lisesi
˙I¸S DENEY˙IMLER˙I
Yıl : 2013
Kurum : ˙IZSU
Stajlar : ˙IZSU
˙ILG˙I ALANLARI
Eskrim
YABANCI D˙ILLER : Almanca,˙Ingilizce
37

Weitere ähnliche Inhalte

Was ist angesagt?

Analog devre elemanları
Analog devre elemanlarıAnalog devre elemanları
Analog devre elemanlarıErol Dizdar
 
Flashplatform optimizing content türkçe
Flashplatform optimizing content türkçeFlashplatform optimizing content türkçe
Flashplatform optimizing content türkçedeniz armutlu
 
Proje Kontrol Açıklamalı El Kitabı v.02.01
Proje Kontrol Açıklamalı El Kitabı v.02.01Proje Kontrol Açıklamalı El Kitabı v.02.01
Proje Kontrol Açıklamalı El Kitabı v.02.01Yusuf Yıldız
 
Adobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçeAdobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçedeniz armutlu
 
Adobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçeAdobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçedeniz armutlu
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBGA Cyber Security
 
DoS DDoS Saldırıları ve Korunma Yöntemleri Kitabı
DoS DDoS Saldırıları ve Korunma Yöntemleri KitabıDoS DDoS Saldırıları ve Korunma Yöntemleri Kitabı
DoS DDoS Saldırıları ve Korunma Yöntemleri KitabıBGA Cyber Security
 
Grup 2 b170100014_alperen dobrucalı tasarım çalışması
Grup 2 b170100014_alperen dobrucalı  tasarım çalışmasıGrup 2 b170100014_alperen dobrucalı  tasarım çalışması
Grup 2 b170100014_alperen dobrucalı tasarım çalışmasıBayram7
 
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Modulu
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep ModuluBTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Modulu
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Moduludeniz armutlu
 
BTT Modul 13. Isletim Sistemleri Destek
BTT Modul 13. Isletim Sistemleri DestekBTT Modul 13. Isletim Sistemleri Destek
BTT Modul 13. Isletim Sistemleri Destekdeniz armutlu
 

Was ist angesagt? (16)

Analog devre elemanları
Analog devre elemanlarıAnalog devre elemanları
Analog devre elemanları
 
Fireworks cs5 help
Fireworks cs5 helpFireworks cs5 help
Fireworks cs5 help
 
Visual studio
Visual studioVisual studio
Visual studio
 
Flashplatform optimizing content türkçe
Flashplatform optimizing content türkçeFlashplatform optimizing content türkçe
Flashplatform optimizing content türkçe
 
Proje Kontrol Açıklamalı El Kitabı v.02.01
Proje Kontrol Açıklamalı El Kitabı v.02.01Proje Kontrol Açıklamalı El Kitabı v.02.01
Proje Kontrol Açıklamalı El Kitabı v.02.01
 
Adobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçeAdobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçe
 
213 gim016
213 gim016213 gim016
213 gim016
 
Adobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçeAdobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçe
 
Flash cs5 help
Flash cs5 helpFlash cs5 help
Flash cs5 help
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
 
Photoshop cs5 help part 0001
Photoshop cs5 help part 0001Photoshop cs5 help part 0001
Photoshop cs5 help part 0001
 
SAP PP İçindekiler
SAP PP İçindekilerSAP PP İçindekiler
SAP PP İçindekiler
 
DoS DDoS Saldırıları ve Korunma Yöntemleri Kitabı
DoS DDoS Saldırıları ve Korunma Yöntemleri KitabıDoS DDoS Saldırıları ve Korunma Yöntemleri Kitabı
DoS DDoS Saldırıları ve Korunma Yöntemleri Kitabı
 
Grup 2 b170100014_alperen dobrucalı tasarım çalışması
Grup 2 b170100014_alperen dobrucalı  tasarım çalışmasıGrup 2 b170100014_alperen dobrucalı  tasarım çalışması
Grup 2 b170100014_alperen dobrucalı tasarım çalışması
 
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Modulu
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep ModuluBTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Modulu
BTT. Modul 14. Isletim Sistemleri Gelismis Ozellikler Megep Modulu
 
BTT Modul 13. Isletim Sistemleri Destek
BTT Modul 13. Isletim Sistemleri DestekBTT Modul 13. Isletim Sistemleri Destek
BTT Modul 13. Isletim Sistemleri Destek
 

Andere mochten auch

The Future of Bitcoin - State of Digital Money 2015 conference
The Future of Bitcoin - State of Digital Money 2015 conferenceThe Future of Bitcoin - State of Digital Money 2015 conference
The Future of Bitcoin - State of Digital Money 2015 conferenceJeff Garzik
 
Ang oferta ogólna ad action
Ang oferta ogólna ad actionAng oferta ogólna ad action
Ang oferta ogólna ad actionMaciej Czerwinski
 
Sacher 20 Spa Menu
Sacher 20 Spa MenuSacher 20 Spa Menu
Sacher 20 Spa Menuhotelsacher
 
Global Fuel Cells Industry
Global Fuel Cells IndustryGlobal Fuel Cells Industry
Global Fuel Cells IndustryReportLinker.com
 
Vasa Kazimirovic Crna Ruka
 Vasa Kazimirovic Crna Ruka Vasa Kazimirovic Crna Ruka
Vasa Kazimirovic Crna Rukabesnaglista
 
PresidentOTY.UCSanDiego
PresidentOTY.UCSanDiegoPresidentOTY.UCSanDiego
PresidentOTY.UCSanDiegoWilliam L. Hsu
 
Commodore 64 manual programacion basic 2.0
Commodore 64 manual programacion basic 2.0Commodore 64 manual programacion basic 2.0
Commodore 64 manual programacion basic 2.0Marco Abel
 
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014Universidade Federal do Cariri
 
Bvvp proj2 univ_stru_bhu-mandala
Bvvp proj2 univ_stru_bhu-mandalaBvvp proj2 univ_stru_bhu-mandala
Bvvp proj2 univ_stru_bhu-mandalaISKCON Chowpatty
 
101 ways that Q Research Software is better than SPSS
101 ways that Q Research Software is better than SPSS101 ways that Q Research Software is better than SPSS
101 ways that Q Research Software is better than SPSSMatilda Sarah
 

Andere mochten auch (20)

Zs18thbday
Zs18thbdayZs18thbday
Zs18thbday
 
Yerbabuena version 1.0
Yerbabuena version 1.0Yerbabuena version 1.0
Yerbabuena version 1.0
 
The Future of Bitcoin - State of Digital Money 2015 conference
The Future of Bitcoin - State of Digital Money 2015 conferenceThe Future of Bitcoin - State of Digital Money 2015 conference
The Future of Bitcoin - State of Digital Money 2015 conference
 
Gift
GiftGift
Gift
 
Pr satmaq
Pr   satmaqPr   satmaq
Pr satmaq
 
Ang oferta ogólna ad action
Ang oferta ogólna ad actionAng oferta ogólna ad action
Ang oferta ogólna ad action
 
Sacher 20 Spa Menu
Sacher 20 Spa MenuSacher 20 Spa Menu
Sacher 20 Spa Menu
 
Global Fuel Cells Industry
Global Fuel Cells IndustryGlobal Fuel Cells Industry
Global Fuel Cells Industry
 
Taking Care of the Soil in your School Garden
Taking Care of the Soil in your School GardenTaking Care of the Soil in your School Garden
Taking Care of the Soil in your School Garden
 
Yma wnl 13 02-11
Yma wnl 13 02-11Yma wnl 13 02-11
Yma wnl 13 02-11
 
Vasa Kazimirovic Crna Ruka
 Vasa Kazimirovic Crna Ruka Vasa Kazimirovic Crna Ruka
Vasa Kazimirovic Crna Ruka
 
Tourismuspreis Broschüre
Tourismuspreis BroschüreTourismuspreis Broschüre
Tourismuspreis Broschüre
 
PresidentOTY.UCSanDiego
PresidentOTY.UCSanDiegoPresidentOTY.UCSanDiego
PresidentOTY.UCSanDiego
 
Taller Vía del Valle
Taller Vía del ValleTaller Vía del Valle
Taller Vía del Valle
 
Commodore 64 manual programacion basic 2.0
Commodore 64 manual programacion basic 2.0Commodore 64 manual programacion basic 2.0
Commodore 64 manual programacion basic 2.0
 
Permodelan geospatial dalam gis
Permodelan  geospatial dalam gisPermodelan  geospatial dalam gis
Permodelan geospatial dalam gis
 
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014
Palestra e Minicurso Dispositivos Móveis XXXVII Enebd Jul 2014
 
User Experience & eGovernment for all
User Experience & eGovernment for allUser Experience & eGovernment for all
User Experience & eGovernment for all
 
Bvvp proj2 univ_stru_bhu-mandala
Bvvp proj2 univ_stru_bhu-mandalaBvvp proj2 univ_stru_bhu-mandala
Bvvp proj2 univ_stru_bhu-mandala
 
101 ways that Q Research Software is better than SPSS
101 ways that Q Research Software is better than SPSS101 ways that Q Research Software is better than SPSS
101 ways that Q Research Software is better than SPSS
 

Ähnlich wie vehicle gearbox modelling

Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...tolgasaglam
 
Adobe Flash ActionScript 3 components help Türkçe
Adobe Flash ActionScript 3 components help TürkçeAdobe Flash ActionScript 3 components help Türkçe
Adobe Flash ActionScript 3 components help Türkçedeniz armutlu
 
Flash as3 bileşenlerini kullanma
Flash as3 bileşenlerini kullanmaFlash as3 bileşenlerini kullanma
Flash as3 bileşenlerini kullanmadeniz armutlu
 
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİFPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİAliMETN
 
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708Radikal Ltd.
 
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectLimited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectSeref Ugur Demir
 
Sunucu işletim sistemi 1
Sunucu işletim sistemi 1Sunucu işletim sistemi 1
Sunucu işletim sistemi 1Erol Dizdar
 
Türkiye'de Kümelenme Politikaları / Burak Zengi
Türkiye'de Kümelenme Politikaları / Burak ZengiTürkiye'de Kümelenme Politikaları / Burak Zengi
Türkiye'de Kümelenme Politikaları / Burak ZengiBURAK ZENGI
 
Adobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama TürkçeAdobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama Türkçedeniz armutlu
 
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...Tolga SAĞLAM
 
Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Iklimlendirme Sogutma
 
Adobe Fireworks CS5 Türkçe Yardım Kitapçığı
Adobe Fireworks CS5 Türkçe Yardım KitapçığıAdobe Fireworks CS5 Türkçe Yardım Kitapçığı
Adobe Fireworks CS5 Türkçe Yardım Kitapçığıdeniz armutlu
 

Ähnlich wie vehicle gearbox modelling (20)

Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
Tolga Saglam - ISITMA/HAVALANDIRMA OTOMASYONUN NOVAPROOPEN SCADA İLE GERÇEKLE...
 
Adobe Flash ActionScript 3 components help Türkçe
Adobe Flash ActionScript 3 components help TürkçeAdobe Flash ActionScript 3 components help Türkçe
Adobe Flash ActionScript 3 components help Türkçe
 
Flash as3 bileşenlerini kullanma
Flash as3 bileşenlerini kullanmaFlash as3 bileşenlerini kullanma
Flash as3 bileşenlerini kullanma
 
Trt staj 2
Trt staj 2Trt staj 2
Trt staj 2
 
Freehand
FreehandFreehand
Freehand
 
Vektorel cizim freehand
Vektorel cizim freehandVektorel cizim freehand
Vektorel cizim freehand
 
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİFPGA MİMARİSİ ve TARİHİ GELİŞİMİ
FPGA MİMARİSİ ve TARİHİ GELİŞİMİ
 
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708
Avid Pro Tools HD Native Kullanici Kilavuzu v90_69708
 
Sixsigma
SixsigmaSixsigma
Sixsigma
 
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectLimited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
 
Sunucu işletim sistemi 1
Sunucu işletim sistemi 1Sunucu işletim sistemi 1
Sunucu işletim sistemi 1
 
9-Yazıcılar
9-Yazıcılar9-Yazıcılar
9-Yazıcılar
 
Türkiye'de Kümelenme Politikaları / Burak Zengi
Türkiye'de Kümelenme Politikaları / Burak ZengiTürkiye'de Kümelenme Politikaları / Burak Zengi
Türkiye'de Kümelenme Politikaları / Burak Zengi
 
8-Monitorler
8-Monitorler8-Monitorler
8-Monitorler
 
Adobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama TürkçeAdobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama Türkçe
 
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...
Tolga saglam –Isıtma havalandirma otomasyonun novaproopen scada i̇le gerçekle...
 
Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)Teknik resim ve çizim teknolojileri 520 tc0029 (2)
Teknik resim ve çizim teknolojileri 520 tc0029 (2)
 
7-Post(İlk Açılış)
7-Post(İlk Açılış)7-Post(İlk Açılış)
7-Post(İlk Açılış)
 
Adobe Fireworks CS5 Türkçe Yardım Kitapçığı
Adobe Fireworks CS5 Türkçe Yardım KitapçığıAdobe Fireworks CS5 Türkçe Yardım Kitapçığı
Adobe Fireworks CS5 Türkçe Yardım Kitapçığı
 
482 bk0082
482 bk0082482 bk0082
482 bk0082
 

vehicle gearbox modelling

  • 1. 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
  • 2. 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
  • 3. B˙ILD˙IR˙IM 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 kayna˘gına eksiksiz atıf yapıldı˘gını bildiririm. DECLARATION I hereby declare that all information in this document has been obtained and presented in accordance with academic rules and ethical conduct. I also declare that, as required by these rules and conduct, I have fully cited and referenced all materials and results that are not original to this work. ˙Imza Mustafa KÖSTEK 5.6.2015 ii
  • 4. ÖZET B˙IT˙IRME ÇALI¸SMASI ARAÇ ¸SANZIMAN MODELLEMES˙I Ö˘grencinin Adı SOYADI 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 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ı olu¸sturulmu¸s,bunun yanında kullanıcı tarafından vites de˘gi¸stirme ve- rilerini bir verikümesi olarak kaydetip bir tu¸s vasıtasıyla e˘gitilerek kullanıcının e˘gitti˘gi verilere göre vites de˘gi¸stirme i¸slemlerini otomatik gerçekle¸stiren i-tronic vites tasarlan- mı¸stır.Yanı sıra yakıt tüketimi,araç performansları,tork kavramına ciddi ¸sekilde de˘ginile- cektir. Anahtar Kelimeler: fizik motoru,makine ö˘grenmesi,yakıt tüketimi,döndürme kuvveti,performans iii
  • 5. ABSTRACT THESIS VEHICLE GEARBOX MODELLING Mustaf Köstek BILECIK ¸SEYH EDEBALI UNIVERSITY ENGINEERING 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
  • 6. ÖNSÖZ Bu projenin yazımının ba¸sından sonuna kadar eme˘gi geçen ve beni bu konuya yönlen- diren saygı de˘ger hocam ve danı¸smanım Sayın Murat ÖZALP’a tüm katkılarından ve hiç eksiltmedi˘gi deste˘ginden dolayı te¸sekkür ederim. Mustafa Köstek v
  • 7. ˙Içindekiler * v ¸SEK˙ILLER TABLOSU viii 1 G˙IR˙I¸S 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 Di¸sli 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 Ele¸stiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
  • 8. 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 tu¸su . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.8 i-tronic tu¸su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 i¸slev ve üyeleri . . . . . . . . . . . . . . . . . . . . 31 5.3 Araç Ve Harita Veritabanı . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6 SONUÇLAR VE ÖNER˙ILER 35 SONUÇLAR VE ÖNER˙ILER 35 KAYNAKLAR 36 ÖZGEÇM˙I¸S 37 vii
  • 9. ¸SEK˙ILLER TABLOSU 1 Bir araç farklı devir bantlarında farklı tork de˘gerleri üretir[1] . . . . . . . 2 2 Yoku¸s yukarı ve a¸sa˘gı 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 olu¸sturma ve ça˘gırma adımları . . . . . . . . 17 6 Dll referans gösterme i¸slemi . . . . . . . . . . . . . . . . . . . . . . . . 18 7 Referans alınan komponentin içeri˘gi [8] . . . . . . . . . . . . . . . . . . 19 8 C# bir chart görünümü . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9 Oledb veri sa˘glayıcıları . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 10 Ba˘glantı olu¸suruldu˘guna dair çıktı . . . . . . . . . . . . . . . . . . . . . 24 11 Oledb nesne ile ba˘glantı olu¸sturuldu˘gunun çıktısı . . . . . . . . . . . . . 25 12 Naive bayes sınıfına ait i¸slev ve alanları . . . . . . . . . . . . . . . . . . 32 13 Ana forma ait i¸slev ve alanları . . . . . . . . . . . . . . . . . . . . . . . 32 14 Veritabanına ait bilgileri depolayan tablolar . . . . . . . . . . . . . . . . 34 viii
  • 10. 1 G˙IR˙I¸S 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 bulundu˘gu yolun e˘gimide 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
  • 11. 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 sa˘glanır. 2.1 Tork nedir? Her aracın motor karakteristi˘gine göre belirli devir bandlarında belli tork de˘gerleri üre- tir.Bu tork döndürme kuvveti olarak tanımlanır.¸Sekil 1’de oldu˘gu gibi bir aracın motoruna ait tork grafi˘gi gösterilmi¸stir. ¸Sekil 1: Bir araç farklı devir bantlarında farklı tork de˘gerleri üretir[1] 2
  • 12. ¸Sekil 2: Yoku¸s yukarı ve a¸sa˘gı inen araça etkiyen kuvvetler 2.2 Dinamik kuvvetleri Araçlar bulundu˘gu yolun e˘gim açısına göre bir ivmelenme söz konusudur.¸Sekil 2’de buna örnekler nitelikte çözümlenmi¸stir.[2] Görüldü˘gü gibi yolun e˘gimine göre araç ini¸s 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 nitelendirilmi¸stir. 2.3 Sürtünme kuvvetleri Temel olarak araça etki eden sürtünme kuvveti lastikler ile yol arasındaki kuvvet- tir.Di˘ger bir kuvvet ise hava sürtünme kuvveti olarak nitelendirilmi¸stir.Bu iki kuvvet araca negatif olarak etki eden kuvvetler olarak adlandırılabilir. 3
  • 13. 2.3.1 Lastik yuvarlanma sürtünmesi Yüzyıllar önce bulunan tekerlek icat edilerek hem sürtünmeden do˘gan negatif kuvvet minimize edilmi¸stir.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 edilmi¸stir. Ba¸slıca yüzeylerin yuvarlanma sürtünme kuvvetleri a¸sa˘gıdaki gibidir:[3] • Çelik ray üstünde çelik tekerlek 0.001-0.002 • ¸Sambrelsiz teker 0.002-0.005 • Kamyon lasti˘gi(asfalt) 0.006-0.01 • Beton-otomobil lasti˘gi 0.01-0.015 • Asfalt-otomobil lasti˘gi 0.03 • Katı kum otomobil lasti˘gi 0.04-0.08 • Gev¸sek kum-otomobil lasti˘gi 0.2-0.4 Mesela,beton üzerinde hareket eden 2 ton a˘gı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 bahsetti˘gim gibi yuvarlanmadan dolayı olan sürtünme kaybı çok küçük. Sonucumuz 294 N oda yakla¸sık 30 kg civarında bir kuvvete denktir. ¸Sayet lastik ile beton arasındaki kaymadan mütevellit sürtünme sorulmu¸s olsaydı bu du- rumda sürtünme katsayımız f=0,7 olacaktı ve sonucumuz 0,7*19620 =13734 N olacaktı , buda di˘gerinin yakla¸sık 47 katı büyüklükte bir sürtünme kuvveti olurdu. 4
  • 14. 2.3.2 Aerodinamik Dü¸sük hızlarda hava direnci di˘ger kayıplar yanında oldukça dü¸sük mertebelerdedir. Ancak hız 30-40 km/h de˘gerine ula¸sınca hava direnci önem kazanır. Bunun sebebi hava direncinin hızın karesiyle do˘gru orantılı olarak artmasıdır. Geometrik boyutları araç dı¸s formuna ba˘glı 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·V2 (1) Bura da ; • d: Havanın yo˘gunlu˘gu ( 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 a˘gırlı˘gında bir kütleyi havaya kaldırmak için gerekli olan kuvvete e¸sittir. Cw de˘geri bir cismin dı¸s formu sebebiyle düzgün do˘grusal akım içinde olu¸sturdu˘gu 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 ba˘glı 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 ba˘glı olan direnç katsayısı Cw’yi azaltmaktır. Cw de˘gerinin azaltılması: • Motor gücü sabit bir aracın daha yüksek hıza eri¸sebilmesi 5
  • 15. • 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 hedeflendi˘ginden birinci ¸sık Cw de˘gerinin 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 özelli˘gi do˘grusal akımda bilinen en az bozuntuya sebep olan yapı olmasıdır. 2.4 ¸Sanzıman Ve Di¸sli Oranları Motordaki yüksek torklu kuvvetten optimum derecede verim elde etmek için di¸sli 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 di¸sli modeli ile anlatayım;Motordan ¸sanzı- mana gücü aktaran a¸sa˘gıdaki en soldaki küçük di¸sli olsun. (ortadaki 2 katı, sa˘gdaki 4 katı büyüklü˘günde yani 1:1, 2:1 ve 4:1) Bizim motorumuzun üretti˘gi 1000 devirde tork de˘geri 100 Nm olsun. (yani küçük di¸slideki gücümüz) ¸simdi ortadaki di¸sli ile küçük di¸s- liyi birle¸stirelim. Ortadaki, küçü˘gün 2 katı oldu˘guna göre 1000 devir dönen küçük di¸sli 2 katı büyüklü˘gündeki di¸sliyi 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 ∗mesafe (mesafe burada di¸slimizin oranı oluyor yani 2’yi kullanaca˘gız) formülünde bizim için i¸s elde ede- ce˘gimiz 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 di¸sliyi 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 di¸sli birinci vites di˘geri de 2. vites olacaktır. Birinci viteste tur sayısı az oldu˘gu için de aracımız hız kazan- dıkça son devire ula¸sı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 ula¸stı˘gı için ilk ba¸staki kadar yüksek güce ihtiyacı kalmadı bu yüzden 200Nm gayet ye- terli.˙I¸ste ¸sanzımanın en basit tanımı budur. ¸Sanzıman tabi bunun biraz daha karma¸sık hali ama temel mantık yukarıdaki örnek ile aynı. 6
  • 16. ¸Sekil 3: Bir aktarma organı [5] ¸Sanzıman di¸sli oranları otomobilde aracın 0-100 oranından son hızına gibi performans de˘gerlerine etki eder, peki bizim ne i¸simize yarar? ¸Sanzıman di¸sli oranlarını bildi˘gimiz bir otomobilin son hızını hesaplayabiliriz ya da lastik boyutu de˘gi¸stirlece˘gi zaman do˘gru hız bilgisine ula¸sabiliriz. Bu hesaplama yukarıdaki 3 di¸sli örne˘ginden biraz daha karma¸sık. O örnekte lastik ebatı ve di˘ger önemli etkenleri gözardı ederek kaba bir hesap yapmı¸stık. Artık hesabımızda jant çapı, lastik yana˘gı, lastik ebatı ve son di¸sli 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 di¸sli oranı 4.100. Jant ölçüsü 17 inç, lastik ebatı 215 ve lastik yana˘gı 45.¸Simdi gelelim hesabımıza,Hızı bulmak için önce tekerle˘gin yuvarlanma dairesini ve tekerle˘ge aktarılan devri bulmamız gerekiyor. 1.Formül:Tekerlek yuvarlanma dairesi = (( jant çapı(inc)*25,4)+(lastik geni¸sli˘gi*yanak yüksekli˘gi*2))*Pi sayısı Hesabımız: ((17*25.4)+(215*0.45*2))*3,141= 1.963m 2. Formül:Tekerle˘ge aktarılan devir = Devir(rpm)/son di¸sli 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 tekerle˘ge 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
  • 17. 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 de˘geri öngörülür.¸Sehir dı¸sı tüketim de˘gerleri 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 de˘gerleri tayin edilir. Temel olarak 20 km/saat hızda aracın tüketim de˘gerlerini iki adet de˘gi¸skenimiz vardır bu hızda iken bu- lundu˘gu motorun devri ve motora ne kadar gaz verildi˘gidir. Bu iki parametreyi biz birinci dereceden iki bilinmeyenli denklem sistemine çevirip bu parametrelerin cevabı olarakta tüketim de˘gerlerini yazarsak bu iki katsayı aracılı˘gıyla biz anlık olarak tüketim de˘gerini çı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 de˘geri ve dev de˘geri programda ko¸sturulacak 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 do˘gru orantılıdır.Yukarıdaki denklemde görülen de˘gerler sırasıyla 20 ve 90 km/saat hızlarında giden aynı araca ait olan tüketim de˘ger e¸sitsizli˘gi (4) nolu denklem ile temsil edilir. x,y =   5 32 17 55 2.4 6.1   (4) Buradan thr ve dev de˘gerleri elde edilir.Sonra ise bunlar formülde yerine konarak 100 km de ve saatteki yakıt tüketimi bulunur. 8
  • 18. 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 tu¸s vasıtasıyla i-tronic moduna geçilir.Bu modda önceden kayıt edilmi¸s verilere i¸sleyip vites de˘gi¸stirmeye ait sınırlarını belirleye- rek bu parametreler dahilinde ilgili vitesi her bir zaman tikinde sorgular.E˘ger bu modda iken vites i¸slemi kullanıcı tarafından yapılırsa moddan çıkılır ve yeniden vites de˘gi¸sim- lerinde parametreler sıfırlanan veritabanına kayıt edilir(sıfırlanır). Tablo 1’de bir e˘gitim verisi gösterilmi¸stir. 9
  • 19. 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 yakla¸sımdır. Bu önerme örüntü tanıma da kullanılacak her bir tanımlayıcı nitelik ya da parametrenin is- tatistik açıdan ba˘gımsız olması gereklili˘gidir. 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 ba˘gımsızlık ko¸sulu esnetilerek kullanıldı˘gında da daha karma¸sık Yapay sinir a˘gları gibi metotlarla kar¸sıla¸s- tırabilir sonuçlar vermektedir. Bayes Teoremi Naive Bayes sınıflandırıcısı Bayes teore- minin ba˘gımsızlık önermesiyle basitle¸stirilmi¸s 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çekle¸sti˘gi durumda A olayının meydana gelme olasılı˘gıdır (bakınız ko¸sullu olasılık) P(B|A); A olayı gerçekle¸sti˘gi 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. Di˘ger bir ifadeyle örne˘gin P(A) henüz elde veri toplanmadan A olayı hakkında sahip olunan bilgidir. Di˘ger taraftan P(B|A) ardıl olasılıktır çünkü veri toplandıktan sonra, A olayının gerçekle¸smi¸s oldu˘gu durumlarda B olayının gerçekle¸sme 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 oldu˘gu bellidir. E-posta kutusuna gelen e-postaların spam olarak ayrı¸stırıl- ması i¸slemi 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 ula¸sacak e-postaların spam olup olmadı˘gına karar verecek 10
  • 20. bir Algoritma da ö˘greticili makina ö˘grenmesine örnektir. Sınıflandırma i¸sleminde genel olarak elde bir örüntü (pattern) vardır. Buradaki i¸slem 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 örne˘ginden devam edilecek olunursa; Posta kutumuzda bulunan spam e-postaları spam olmayan e-postalardan ayıran parametreler- den olu¸san bir küme, meselaikramiye,ödül gibi sözcüklerden olu¸san, 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ü olu¸sturur. x ∈ RL verildi˘gine 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 yo˘gunluk fonksiyonu(oyf) 11
  • 21. • P(x|Si);i = 1 = 2, ..., L, x’in ko¸sullu 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 örne˘ginden gidecek olursak spam olup olmadı˘gını bilmedi˘gimiz yeni bir e-posta sınıfı belli olmayan örüntüdür. Yine Si|x’in atanaca˘gı sınıf ise; Bayes karar teorisine göre x sınıf Si’ya aittir e˘ger P(Si|x) > P(Sj|x),∀j =,i (11) di˘ger bir ifadeyle P(x|Si)P(Si) > P(x|Sj)P(Sj),∀j =,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 ba˘gı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|Sj)P(Sj),∀j =,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
  • 22. böylece Bayes karar teoremi a¸sa˘gıdaki ¸sekli alır.Bayes karar teorisine göre x sınıf Si ya aittir e˘ger (15)’u sa˘glıyorsa P(Si) L ∏ k=1 P(xk|Si) > P(Sj) L ∏ k=1 P(xk|Sj) (15) P(Si) ve P(Sj) i ve j sınıflarının önsel olasılıklarıdır.Elde olan veri kümesinden de˘gerleri 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) bile¸senleri- nin istatistik olarak ba˘gımsız olması ko¸sulu esnetilerek ba¸sarılı sonuçlar elde edilebilinir. 13
  • 23. 4 C# nedir? C# Programlama Dili,Microsoft’un geli¸stirmi¸s oldu˘gu yeni nesil programlama dilidir.[10] C#, .NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem de insan algısına e¸sit seviyededir. Buradaki orta ifadesi dilin gücünü de˘gil makine dili ile günlük konu¸sma diline olan mesafesini göstermektedir. Örne˘gin; Visual Basic .NET (VB.NET) yüksek seviyeli bir dildir dersek bu, dilin insanların günlük ya¸santılarında konu¸sma 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 sa˘glamlılı˘gı, güvenirlili˘gi ve programcıların üretkenlili˘gi ö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 de˘gi¸skenlerin kullanım tespiti, (source code portability), ve otomatik artık veri toplama gibi özelliklerine sahiptir. • Programcı portatifli˘gi ö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 i¸slevselli fonksiyondan i¸sletim sistemini kullanan en teferruatlısına kadar kapsamaktadır. 14
  • 24. • C# uygulamaları hafıza ve i¸slemci gereksinimleri ile tutumlu olmak uzere tasarlan- mı¸stır. Buna ra˘gmen C# programlama dili performans açısından C veya assembly dili ile rekabet etmek için tasarlanmamı¸stır 4.2 Ele¸stiri C# konusunda ele¸stiriler tabii ki var. En önemlisi using ile hangi referansları kullana- ca˘gı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 Di˘gerleri gibiSanal Makine’ye dayalı dillerden biridir, C# programlama dili direkt yer- le¸sik kod’a derleyen dillerden daha yava¸stı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 ba¸ska 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 i¸sletim sistemi dosyalarının bulun- du˘gu yerde mutlaka kar¸sımıza çıkmı¸stır.[7]Dll dosyaları içinde çalı¸sabilir kod bulundu- ran kendi ba¸sına çalı¸samayan,executable dosyalar tarafından dinamik ya da static olarak ça˘grılıp kullanılabilen,içinde prosedur veya fonksiyon bulundurabilen dosyalardır. Niçin kullanmalıyız? 15
  • 25. ¸Sekil 4: Yeni bir proje açılması Yaptı˘gınız uygulama büyük bir program olabilir. Programınızın bellekte tuttu˘gu alanı azaltmak için bazı fonksiyonları dinamik olarak ça˘gırıp kullanmak gerekebilir.˙I¸ste tam burada DLL kullanmak oldukça mantıklı ve gereksinim duyulan bir i¸stir. Bundan farklı olarak Dll dosyası kullanarak Exe dosyalarınızın ¸si¸smesini engelleyebilirsiniz. ¸Si¸sersene 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 ta¸sınabilir- lik.Bir i¸slem 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ı di˘ger 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 de˘gilse proje eksik çalı¸sabilir ya da hiç çalı¸smayabilir. Örn;statik olarak ça˘grılan bir dll belirtilen klasorde mevcut de˘gilse dosya çalı¸smaz.Belle˘ge ilk olarak dll dosyaları yuklendi˘ginden program açılmadan kapanır. ¸Simdi bir dll yazalım ilk olarak resimde görüldü˘gü gibi ¸Sekil 5’te kullanım gösterilmi¸stir. Class Library proje tipini seçiyoruz. Daha Sonra basit bir i¸slem olarak a¸sa˘gıdaki kodlar yazıyoruz. public int topla(int a, int b) 16
  • 26. ¸Sekil 5: Sıralı olarak bir projede dll olu¸sturma ve ça˘gırma adımları 17
  • 27. ¸Sekil 6: Dll referans gösterme i¸slemi { return a + b; } public double bol(Double a, Double b) { return a / b; } Daha Sonra Sadece Build edip i¸slemi 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 kar¸sımıza gelen tarayıcıya olu¸sturdu˘gumuz Dll dosyasının ye- rini ¸Sekil 6’de oldu˘gu gibi gösteriyoruz. Bunuda yaptıktan sonra Classımız solution’a eklendi.Sırada Classı ça˘gı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
  • 28. ¸Sekil 7: Referans alınan komponentin içeri˘gi [8] Convert.ToInt32(textBox2.Text)).ToString(); //Classmzdaki topla fonksiyonunu ça§rdk. } private void button2_Click(object sender, EventArgs e) { label4.Text = mydll.bol(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)).ToString(); //Bol fonksiyonunu ça§rdk } 4.6 Gösterge Ve Özelikleri C#’ta bir önceki ba¸slıkta anlatıldı˘gı gibi çalı¸sma anında .dll uzantılı olarak projeye im- port edilebildi˘ginden bahsettik ¸Sekil 7’da oldu˘gu gibi göstergeler projede referans olarak eklendikten sonra tulbax’ta gözükecektir. Göstergeye ait özelikler Tablo 2’de gösterilmi¸stir. 19
  • 29. Tablo 2: Göstergeye ait i¸slevler Özelik adı Tipi Tanımlaması DialColor Color Arka plan rengini ayarlar DialText String Göstergedeki yazıyı kontrol eder EnableTransparent Background bool Transparan arkaplanı aktif eder Glossiness Float Parlaklık MaxValue Float En büyük alabilecek de˘geri MinValue Float En küçük alabilece˘gi de˘geri NoOfDivisions Int Numaralarla bölümlendirme NoOfSubDivision Int Her bölme için görüntülenecek bölüm sayısı RecommendedValu e Float E¸sik alan çizmek için pivot noktası olarak kullanılacaktır. ThresholdPercent Float E¸sik alanının yüzde ölçe˘gini ayarlar. Value Float De˘geri kontrol eder 4.7 Visual C# Chart Kullanımı ( Grafik ) Chart bildi˘gin grafik( Çubuk,pasta,çizgiler,e˘gilim çizgileri vs) hazırlamak için kulla- nılan bir tür Microsoft tarafından geli¸stirilen Component’dir.[7] Bir çok projede i¸s gö- rür niteliktedir ve tasarımını renklendirerek iyile¸stirebiliyorsunuz. 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 ki¸sisel 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 oldu˘gu gibidir bir chart. Ben network kim ne 20
  • 30. kadar dosya indirmi¸s kim ne kadar dosya yüklemi¸s onların takibini yaptı˘gım için grafi˘gi de ona göre hazırlayaca˘gı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;//Downloadn rengini //belirledik.(Grafiksel iyile³tirmek için) this.chart1.Series[1].Color = Color.Orange;//Uploadn rengini belirledik. for (int i = 0; i 7; i++)//Ben 7 adet kayt 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 de˘gi¸skenleri 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 deste˘gi olan veri kaynaklarına eri¸sebilmesi amacıyla kullanılır. Veri kayna˘gının tipi tam olarak bilinmedi˘gi için, arada bu i¸slevi ayırt etmeye yarayan bir COM+ nesnesi yer almaktadır. OleDbConnection sınıfına ait bir nesne ileti¸sim kurmak istedi˘gi veri kayna˘gına ait ole db veri sa˘glayıcısını belirtmek durumundadır. Bunu daha iyi kavramak için a¸sa˘gıdaki ¸Sekil 9 figüre bakalım. 21
  • 31. ¸Sekil 9: Oledb veri sa˘glayıcıları Görüldü˘gü gibi bir OleDbConnection nesnesi öncelikle bir Ole Db Data Provider ( Ole Db Veri Sa˘glayıcısı) ile ileti¸sim kurar. Ardından bu veri sa˘glayıcı istenen veri kay- na˘gına eri¸serek, gerekli hattı tesis etmi¸s olur. Peki bu i¸slemi nasıl gerçekle¸stirece˘giz. ˙I¸ste tüm Connection nesnelerinin en önemli özelli˘gi olan ConnectionString özelli˘gi bu nok- tada devreye girmektedir. Kısaca ConnectionString özelli˘gi ile, veri kayna˘gı ile sa˘glana- cak olan ileti¸sim hattının kurulum bilgileri belirlenir. OleDbConnection sınıfı için Con- nectionString özelli˘gi a¸sa˘gıdaki prototipe sahiptir. public virtual string ConnectionString get; set; ConnectionString özelli˘gi belirlenmi¸s bir OleDbConnection sınıfı nesne örne˘gini açtı˘gımızda, yani veri kayna˘gına olan hattı kullanılabilir hale getirdi˘gimizde, bu özel- lik yanlız-okunabilir (read-only) hale gelir. Dolayısıyla açık bir OleDbConnection nesne- sinin ConnectionString özelli˘gini de˘gi¸stiremezsiniz. Bunun için bu ba˘glantıyı tekrardan kapatmanız gerekecektir. ConnectionString özelli˘gi, bir takım anahtar-de˘ger çiftlerinin noktalı virgül ile ayırlmasından olu¸sturulan string bir bilgi toplulu˘gudur. ConnectionSt- ring özelli˘gi içinde kullanabilece˘gimiz bu anahtar-de˘ger çiftlerinin en önemlisi Provider anahtarıdır. Bu anahtara verece˘gimiz de˘ger, hangi tip ole db veri sa˘glayıcısını kullanmak istedi˘gimizi belirtmektedir. Örne˘gin Sql sunucusuna, Sql Ole Db Provider ile ba˘glanmak istersek, Provider anahtarına, SQLOLEDB de˘gerini atarız. Provider anahtarı mutlaka be- lirtilir. Daha sonraki anahtar-de˘ger çiftleri ise bu Provider seçimine ba˘glı olarak de˘gi¸siklik gösterecektir. Veri kayna˘gına hangi tip Ole Db Veri Sa˘glayıcısından ba˘glandı˘gımızı seç- tikten sonra, ba˘glanmak istedi˘gimiz veri kayna˘gıda belli olmu¸s olucaktır. Sırada bu veri 22
  • 32. kayna˘gının adını veya adresine belirtece˘gimiz anahtar-de˘ger çiftlerinin belirlenmesi var- dır. Örne˘gin bir Sql Sunucusuna ba˘glanıyorsak, sunucu adınıda Ole Db Data Provider( Veri Sa˘glayıcısı) ’na bildirmemiz gerekir. Bunun için Data Source anahtarını kullanırız. Bununla birlikte ba˘glandı˘gımız veri kayna˘gı, sql yada oracle gibi bir veritabanı yönetim sistemi de˘gilde, Access gibi bir tablolama sistemi ise, Data Source anahtarı, tablonun fi- ziki adresini alır. Sql ve Oracle gibi sunuculara yapılacak ba˘glantılarda Provider ve Data Source seçiminin yanında hangi veritabanına ba˘glanılaca˘gınıda Initial Catalog anahtarı yada Database anahtarı ile belirleriz. Bunların dı¸sında veri kayna˘gına yapılacak olan ba˘g- lantının güvenlik ayarlarınıda belirtiriz. Ço˘gunlukla Integrated Security gibi bir anahtara True de˘gerinin atandı˘gını görürüz. Bu anahtar, veri kayna˘gına ba˘glanmak istenen uygu- lama için, makinenin windows authentication ayarlarına bakıldı˘gını belirtir. Dolayısıyla sql sunucusuna ba˘glanma yetkisi olan her windows kullanıcısı bu ba˘glantıyı sa˘glayabilir. Ancak istersek belli bir kullanıcı adı veya ¸sifresi ilede bir veritabanına ba˘glantı açılmasını sa˘glayabiliriz. 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çekle¸stirece˘giz. ˙Ilk örne˘gimizde, Sql Sunucusundaki veritabanı için, bir ba˘glantı hattı olu¸sturup açaca˘gız. using System; using System.Data.OleDb; /* OleDbConnection snf, Data.OleDb isim uzaynda ye almaktadr. */ 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
  • 33. ¸Sekil 10: Ba˘glantı olu¸suruldu˘guna dair çıktı { conFriends.Open(); /* Open metodu ile olu³turdu§umuz ileti³im hattn kullanma açyoruz. */ Console.WriteLine(Ba§lant açld...); conFriends.Close(); /* Close metodu ilede olu³turulan ileti³im hattn kapatyoruz. */ Console.WriteLine(Ba§lant kapatld...); } catch(Exception hata) { Console.WriteLine(hata.Message.ToString()); } } } Aynı örnekte bu kez belli bir kullanıcı ile ba˘glanmak istedi˘gimizi dü¸sünelim. Bu du- rumda ConnectionString’imizi a¸sa˘gıdaki ¸sekilde de˘gi¸stirmemiz gerekir. Bu durumda User ID ve Password anahtarlarına gerekli kullanıcı de˘gerlerini atarız.¸Sekil 12’de ba˘glantı olu¸s- turulmu¸s bir çıktı gösterilmi¸stir. conFriends.ConnectionString = ”Provider = SQLOLEDB;DataSource = localhost;Database = Friends;UserId = sa;Password = CucP??80.”; ¸Simdide bir Access tablosuna nasıl ba˘g- lanabilece˘gimizi görelim. Bunun için ConnectionString özelli˘gimizi a¸sa˘gıdaki gibi yaza- rız. OleDbConnection conYazarlar=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;data source=c:Authors.mdb) 24
  • 34. ¸Sekil 11: Oledb nesne ile ba˘glantı olu¸sturuldu˘gunun çıktısı try { conYazarlar.Open(); Console.WriteLine(Yazarlar Access veritabanna ba§lant açld...); conYazarlar.Close(); Console.WriteLine(Yazarlar Access veritabanna olan ba§lant kapatld...); } catch(Exception hata) { Console.WriteLine(hata.Message.ToString()); } Bu örnekte dikkat ederseniz ConnectionString özelli˘gini, OleDbConnection nesnemizin di˘ger 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 ba˘glanmak istedi˘gimizi bu Ole Db Provider’a bildirmi¸s olduk.Daha sonra bu veri sa˘glayıcı componenti, Data Source anahtarındaki de˘gere bakarak, ilgili adresteki veritabanına bir hat çekti. ¸Sekil 11’de örnekte bu gösterilmi¸stir. 25
  • 35. 5 Programlama Araç simulasyon ortamına ait kullanılan eventler ve özelikler. 5.1 Algoritmalar 5.1.1 Gaza basma Bu fonksiyon temel olarak a¸sa˘gıdaki kaba kodu gerçekler.timer belirlenen hassas peri- yotlarda a¸sa˘gıdaki event’i denleyecektir ve program bu ko¸sullara göre ko¸sacaktır. • e˘ger gaza basılırsa • hız sabitleyicide de˘gilse • gazı oku • e˘ger sabitleyicide ise • e˘ger sabitlenme hızı anlık hızdan küçükse ise • gazı ver • de˘gilse • gazı sıfırla 5.1.2 Tekerler Bu fonksiyonda parametre olarak aldı˘gı aracın lastik ölçüleri,maksimum motor devri,vites di¸sli oranlarına göre a¸sa˘gıdaki hesaplamaları yapan i¸slevdir. • tekerin yuvarlanma mesafesini bul 26
  • 36. • her bir vites oranına göre maksimum hızları hesapla 5.1.3 Araç kuvveti Bu fonksiyon ise vites konumu ve gaz kelebe˘ginden okudu˘gu de˘gerlere göre aracın motor devrinin seyretti˘gi devir de˘gerine göre motor torkuna göre yola aktarılan kuvveti hesaplayan i¸slevdir. • e˘ger itronic mod aktifse • ba˘glı parametrelere göre vites arttır • eger vites 1 de ise • birinci vitesin oranını al • de˘gilse e˘ger vites 2 de ise • birinci vitesin oranını al • de˘gilse e˘ger vites 3 de ise • birinci vitesin oranını al • de˘gilse e˘ger vites 4 de ve ¸sanzımandan küçük ise • birinci vitesin oranını al • de˘gilse e˘ger vites 5 de ve ¸sanzımandan küçük ise • birinci vitesin oranını al • de˘gilse e˘ger vites 6 de ve ¸sanzımandan küçük ise • birinci vitesin oranını al 27
  • 37. • de˘gilse e˘ger vites 7 de ve ¸sanzımandan küçük ise • birinci vitesin oranını al • e˘ger dev tick degerinden kucukse • dev e tik de˘gerini ata • de˘gilse • güncel devir hızını hesapla • e˘ger • dev maxdevirden buyukse • dev e maksimum de˘geri ata • yola aktarılan kuvveti hesapla 5.1.4 Dı¸s kuvvetler Bu metotta e˘ger menzil olarak atanmı¸s alınacak yol tükenmi¸s ise yeni yol ba¸slı˘gı olu¸sturur 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 ini¸s yada çıkı¸stan olu¸san rastgele e˘gimli belirli bir menzilden olu¸san harita olu¸stur 28
  • 38. • e˘ger harita seçilmi¸sse • haritadan parametreleri çek • e˘ger menzil sıfırdan küçük de˘gilse • e˘gime 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 de˘gerini 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 ba¸slı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 tu¸su Bu fonksiyonda hız sabitleme tu¸suna basıldı˘gında a¸sa˘gıdaki algoritmayı gerçekler. 29
  • 39. • tu¸su devre dı¸sı bırak • modu aktif et • anlık hızı sabitltici hız olarak ata • formda sabitlenmi¸s hızı göster 5.1.8 i-tronic tu¸su • butonu disable et • sınıflandrıcıyı aktif et 5.1.9 Gaza basma ve fren yapma Mainform mousemove özeli˘gi ile ili¸skilendirilmi¸s fonksiyon • belirtilen koordinatlar arasında ise imleç • gaz verme koordinatları içinde ise gaz ver(kalibrasyona göre) • de˘gilse • fren verme koordinatları içinde ise fren yap(kalibrasyona göre) • hız sabitleyici devre dı¸sı • mod false • sabitleyici tu¸su aktif et 30
  • 40. 5.1.10 Vites artırma azaltma Vites arttırıp azaltma artırma i¸slemi 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 sa˘g 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,i¸slev ve alanlar ¸Sekil 12’te görüldü˘gü gibidir 5.2.2 Anaforma ait i¸slev ve üyeleri Anaforma ait i¸slevler ¸Sekil 13’deki gibidir. 31
  • 41. ¸Sekil 12: Naive bayes sınıfına ait i¸slev ve alanları ¸Sekil 13: Ana forma ait i¸slev ve alanları 32
  • 42. 5.3 Araç Ve Harita Veritabanı Burada veritabanından çekilmek üzere bazı veriler kaydedilecektir.Veriler sırasıyla a¸sa˘gıdaki gibidir. • Bölünmü¸s devir bantlarına ait tork de˘gerleri • Vites oranları • Son di¸sli oranı • A˘gırlık • Tekerlek ölçüleri • Tüketim katsayıları • Vites sayisi • Son deviri • Geni¸slik,Yükseklik,cw de˘geri 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 e˘gimi,yukarımıı,mesafesi ve sürtünme katsayılarını barındırır. 33
  • 43. ¸Sekil 14: Veritabanına ait bilgileri depolayan tablolar 34
  • 44. 6 SONUÇLAR VE ÖNER˙ILER 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ı sa˘glandı,ancak vites oranlarının biribirine çok yakın oldu˘gu ve veri kümesinin kararsız,bulanık oldu˘gu durumlarda ba¸sarısız netice vermesi olasılı˘gı yüksek oldu˘gu gözlenmi¸stir. 35
  • 45. Kaynaklar [1] http://forum.donanimhaber.com [2] http://yegitek.meb.gov.tr, [3] http://www.muhendese.com/yuvarlanma-surtunmesi/ [4] http : //tr.wikipedia.org/wiki/Aerodinamik(otomobil) [5] http : //www.tnoz.com/sanziman − nedir − disli − oranlari − ne − ise − yarar − 2526/ [6] http : //www.codeproject.com/Articles/318126/Naive−Bayes−Classifier [7] http : //www.abdullahaltintas.com/index.php/dll − olusturulmasi − ve − dllkullanimi/ [8] AmbalavanarThirugnanam,http : //www.codeproject.com/Articles/20341/Aqua− Gauge [9] http : //www.csharpuygulamalar.com/20130414archive.html [10] http : //tr.wikipedia.org/wiki/CSharp 36
  • 46. ÖZGEÇM˙I¸S K˙I¸S˙ISEL B˙ILG˙ILER Adı Soyadı :Mustafa KÖSTEK Uyru˘gu : T.C Do˘gum Yeri ve Tarihi: Çayıralan 1993 Adres : Çayıralan Telefon : +905549935366 e-mail : mustafakostek@gmail.com E ˘G˙IT˙IM DURUMU Lisans Ö˘grenimi : Bilecik ¸Seyh Edebali Üniverstesi, Bilecik Bitirme Yılı : 2015 Lise : Balıkesir Edremit Anadolu Lisesi ˙I¸S DENEY˙IMLER˙I Yıl : 2013 Kurum : ˙IZSU Stajlar : ˙IZSU ˙ILG˙I ALANLARI Eskrim YABANCI D˙ILLER : Almanca,˙Ingilizce 37