Kontrola Lancanika
Kontrola Lancanika
Kontrola Lancanika
Kontrola lančanika
Seminarski rad
1
Sadržaj
1.Uvod ................................................................................................................................... 4
4. ZAKLJUČAK.................................................................................................................. 15
LITERATURA .................................................................................................................... 16
PRILOG ............................................................................................................................... 17
2
Popis slika
3
1. Uvod
Zadatak rada je da pomoću matlaba izvršimo odgovarajuća mjerenja lančanika te
da ustanovimo ispravnost lančanika. Mjerenja koja će se vršiti su broj zuba lančanika te
unutrašnji i vanjski prečnik, odnosno prečnik lančanika i prečnik vratila. Broj zubi
lančanika će nam koristiti kao mjera ispravnosti istog. Drugim riječima korisnik će unositi
broj zubi koji bi ispravan lančanik trebao da ima, program zatim mjeri broj zubi te donosi
zaključak o ispravnosti tj. da li je lančanik defektan ili ispravan.
Neki uvjeti koji su potrebni da bi algoritam radio jest da je pozadina svjetlija od
lančanika, da lančanik ima što homogeniju boju, idealno da je jednobojan, te da je
perspektiva slike u odnosu na lančanik okomita.
Danas se u industriji koriste moderni sistemi koji su bazirani na viziji, gdje input u
algoritam bi predstavljala kamera, odnosno slike koji bi davala algoritmu svakih nekoliko
trenutaka. Treba napomenuti da svaki algoritam nije neograničeno fleksibilan i da određeni
uslovi moraju biti ispunjeni za njegovo funkcioniranje, naravno što više vremena je
utrošeno u isti to će on postati sve više fleksibilniji.
4
2. Lančani prenosnici
Pljosnatim i klinastim remenjem prenosi se snaga i gibanje pomoću veze
silom(trenje). Kod lančanog prijenosa, slično prijenosu sa zupčastim remenom, prenos se
vrši pomoću veze oblikom. Lančani prijenos upotreblajva se tamo gdje je remenski
prijenost nemoguč zbog loših prostornih i prijenosnih oblika ili razmaka osi. Lančani
prijenosi s manjih obuhvatnim uglom i manjim razmakom osi mogu prenositi znatno veće
sile nego remenski prijenosi. Općenito im nije potrebno nikakvo prednaprezanje, te prema
tome manje opterećuju vratila. Lančani prijeso ne rade međutim elastično, nužno je bolje
održavanje, moraju se podmazivati, a često ih treba zaštiti protiv utjecaja prašine. Lanci i
lančanici su znatno skuplji od remena i remenice. Dobri su u gradnjih transportnih uređaja,
u industriji motornih vozila i poljoprivrednih strojeva.
5
Slika 2. Lančani prijenos na dva gonjena vratila
6
3. Gallov lanac (DIN 8150 i 8151). Spojnice (lamele) su okretljivo smještene na
svornjacima. Uska površina nalijeganja spojnice na svornjak omogućuje brzine
samo do 0,5 m/s. Izrađuje se i sa više spojnica za dizala i dizalice;
4. Valjkasti lanci (DIN 8187) kod kojih su unutarnje spojnice naprešane na tuljke,
okretljivo uložene na svornjake. Svornjaci su uprešani u vanjske spojnice, a krajevi
raskovani. Time se dobiva zglob tuljak/svornjak (zglobni tuljak). Takvi zglobni
tuljci imaju na sebi još kaljene valjke. Lanci s valjcima pogodni su gotovo za sve
vrste pogona, pa se zato najviže i upotrebljavaju. Neosjetljivi su prema vanjskim
utjecajima. Jednoredni valjkasti lanci nazivaju se simpleks, dvoredni dupleks, a
troredni tripleks. Mogu se spajati tako da tvore četveroredne, petoredne i višeredne
valjkaste lance. U DIN 8181 standardizirani su valjkasti lanci s dugim člancima za
velike razmake osi, a u DIN 8188, dati su valjkasti lanci u inčima (američka
izvedba);
5. Lanci s tuljkom (DIN 73232) su u stvari valjkasti lanci, ali bez vanjskih valjaka.
Zbog toga su lakši od lanaca s valjcima i manje podložni utjecaju centrifugalne sile,
tako da mogu raditi s većom brzinom. Pretežno se upotrebljavaju za motorna
vozila. Zbog održavanja i trošenja u prihvatljivim granicama, potrebna im je točna i
brižljiva obrada lančanika. Osjetljiviji su prema vanjskim utjecajima (prašina i
nečistoća) od valjkastih lanaca. U novijim konstrukcijama se ne upotrebljavaju, već
se zamjenjuju valjkastim lancima;
6. Rotary-lanci (DIN 8182) imaju zakrivljene spojnice, pa se mogu upotrebljavati s
proizvoljnim brojem članaka. Zbog zakrivljenosti spojnica ovi su lanci veoma
elastični, tako da mogu primati bolje udarna opterećenja;
7. Zupčasti lanci (DIN 8190) sa spojnicama u obliku dva trokutasta zuba. Vanjski
nosivi bokovi zubi zatvaraju međusobno kut od 60º. Zbog povećanja otpornosti na
trošenje, u spojnicama se nalaze kaljeni zglobni tuljci. Da ne bi došlo do bočnog
pomicanja zupčastih lanaca, ugrađuju se dodatno vodeće, nenazubljene spojnice
(jedna srednja ili dvije vanjske), koje zahvataju u prstenaste utore lančanika.
Zupčasti lanci pogodni su za vrlo velike brzine i rade gotovo bešumno (upravljački
lanac kod motora s unutarnjim izgaranjem). Skuplji su od svih dosad opisanih
lanaca. Za najveće zahtjeve u pogledu otpornosti na trošenje, izrađuju se zupčasti
lanci s valjnim zglobovima (bez kliznog gibanja u zglobu!). U uljnoj kupki moguće
su brzine lanaca do 30 m/s.
8. Specijalni lanci (lanci s tuljkom prema DIN 8164) namijenjeni su naročito grubim
vanjskim pogonima. Transportni lanci s tuljkom prema DIN 8165, 8166, 8184 i
8185 upotrebljavaju se za transportne trake, transportne trase, kružna dizala, dizala
s upornicom, pokretne stube i slično. Nadalje, postoje višestruki lanci s tuljcima
prema DIN 8171 za transportne uređaje, lanci za člankaste konvejere DIN 8175,
lanci za lančaste trase DIN 8176 i lanci za stružne konvejere DIN 8177.
9. Pogonski lanci, osim onih od temper-lijeva, izrađuju se od čelika za cementiranje ili
čelika za poboljšanje. Trošenje u zglobovima lanca prouzročuje trajnu deformaciju,
koja se stalno povećava, a smije da iznosi do 3%.
7
Lančanici. Valjkaste lance i lance s tuljkom može se prikazati kao svornjake
nanizane na uže, koji postepeno ulaze u uzubine lančanika. Uzubine moraju biti tako
oblikovane da pri dizanju pruženog lanca mogu svornjaci nesmetano izlaziti iz uzubina. Da
bi se izjednačile tolerancije i trenje deformacije lanca, potrebno je veliko zaobljenje
korijena zuba i velik bočni kut, koji ipak ne smije biti prevelik, da se svornjaci lanca ne bi
penjali na bok zuba. Oblik zuba je prema DIN 8196. [
Podmazivanje. Veću trajnost pogonskih lanaca pri većoj brzini, može se postići
dobrom zaštitom od prašine i brižljivim podmazivanjem. U tom slučaju može se računati s
većim učešćem tekućeg trenja umjesto mješovitog. Povoljna pogonska temperatura lanca
je 70 ºC, a za uljnu kupku ili optočno ulje 60 ºC. Ako se te temperature prekorače, mora se
predvidjeti hlađenje ili upotreba maziva otpornog na zagrijavanje (motorno ulje s
dodatkom grafita ili molibdendisulfida). Ulja za podmazivanje moraju na pogonskoj
temperaturi pri podmazivanju u uljnoj kupci ili pri optočnom tlačnom podmazivanju imati
viskoznost 20 do 50 cSt, pri podmazivanju kapanjem 40 do 80 cSt, te pri ručnom
podmazivanju 80 do 120 cSt (u ovom slučaju može se podmazivati i teškim uljima ili
tekućom mašću). Izvanredan utjecaj na podmazivanje ima stanje maziva. Zanemarivanje
dobne izmjene ulja ili zaboravljanje na potrebu naknadnog podmazivanja, može dovesti do
onečišćenja maziva ili čak do suhog trenja, a time do većeg trošenja zglobova lanca. Pri
podmazivanju kapanjem ulja na unutarnju stranu traka lanca dolazi oko 4 do 14 kapi na
minutu. Pri tome treba paziti da ulje može prodrijeti do zglobova, a da ne ulazi na krivom
mjestu, odakle otječe bez koristi. Pri podmazivanju u uljnoj kupci donja traka uranja se u
ulje do polovine širine spojnice. Dobri rezultati dobivaju se ako se ugradi kolut za prskanje
ulja, koji stvara uljnu maglu. Uljne čestice talože se na lanac i na okapnice, odakle
sakupljeno ulje ponovo kaplje na lanac. Pri tome može donja traka lanca još dodatno
uranjati u uljnu kupku. Pri optočnom tlačnom podmazivanju ubrizgava se ulje na unutarnju
stranu povratne trake.
8
3. Opis programa
Prije nego što krenemo sa opisom algoritma za kontrolu lančanika treba prvo da
posmatramo problem kroz prizmu industrijske primjene i uslovima u kojem bi se mogao da
ovaj program izvede. Industrijski uslovi su poznati po tome da su bučni i prašnjavi.
Međutim ukoliko se izabere dobra lokacija kamere i sočivo se redovno održava,
prašnjavost se može eliminisati kao smetnja, pored toga , primjenom odgovarajućeg filtera,
eliminacijom buke u programu još više smanjujemo efekat prašnjavog sočiva.
Program bi se mogao koristiti u nekom industrijskom postrojenju za proizvodnju
lančanika. Nakon završene obrade lančanici se trakastim transporterom prevoze do
međuspremišta. Prilikom transporta, kamera koja je postavljena na najboljem mogućem
mjestu i pod najboljom orjentacijom fotografira lančanik, te se ta slika dalje procesuira i
izvodi zaključak o ispravnosti dijela. Te se on otklanja sa trake ukoliko je defektan ili
nastavlja svoj put ukoliko nije.
Za poboljšanje kvalitete slike korišten je samo filter za otklanjanje buke sa slike, iz
razloga što slika mora biti što bolje fotografirana zbog prirode samog problema. Parametri
koji se mjere su: broj zuba, spoljašnji prečnik lančanika te prečnik vratila. Uslov
ispravnosti je broj zuba. Da bi algoritam funkcionirao potrebno je da pozadina bude
svjetlija od samog lančanika te da lančanik ima jasne granice odnodno tamnije granice od
pozadine, poželjno je da bude jednobojan.
Koraci u algoritmu:
1. Čišćenje predmemorije kao i radne površine.
2. Učitavanje slike
3. Pretvaramo RGB sliku u sivu sliku
4. Čistimo sliko od buke
5. Pretvaramo sivu sliku u crno bijelu sliku
6. Pravimo inverznu crno bijelu sliku
7. Plotujemo „dva kruga“ od kojih je jedan vanjski prečnik lančanika a drugi je
ofsetovan za odgovarajući broj piksela prema unutra
8. „Siječemo“dio imeđu ta dva kruga
Ovi koraci predstavljaju jezgro programa, program je detaljnije obrazložen u nastavku.
close all
clear
lancanik=imread('C:\Users\Osman\Desktop\bmx_chainring.jpg');
subplot(3,3,1), imshow(lancanik), title('Originalna slika')
9
Sliku dalje pretvaramo u sivu sliku te je prikazujemo
lancanik=rgb2gray(lancanik);
subplot(3,3,2), imshow(lancanik), title('Siva slika')
lancanik1=medfilt2(lancanik);
subplot(3,3,3), imshow(lancanik1), title('Uklojnena buka sa slike')
Vršimo pretvaranje sive slike koja je očišćena od buke u crno bijelu sliku. Prvo
računamo prag sive slike pomoću funkcije „graytresh“ kojeg koristimo kako bi sliku
binarizirali na što je bolji mogući način, tj. da binarna slika bude što bolje segmentirana sa
što jasnijim granicama.
level=graythresh(lancanik);
lancanikcb=im2bw(lancanik,level);
subplot(3,3,4), imshow(lancanikcb), title('Crno bijela slika')
J=imcomplement(lancanikcb);
subplot(3,3,5), imshow(J), title('Inverzna crno bijela slika')
Pošto naša slika ima rupa na neželjenim mjestima pomoću funkcije „imfill“ ćemo
ih popuniti. Ta funkcija prepoznaje klastere 0 te ih mijenja sa 1.
lancanikcb2=imfill(J,'holes');
subplot(3,3,6), imshow(lancanikcb2), title('Popunjene rupe')
Nakon što smo obradili sliku na željeni format pristupamo rješavanju problema.
Prvo trebamo da saznamo karakteristike elementa, to ćemo odraditi pomoću funkcije
„regionprops“ koja ima sljedeće izlaze:
Area: 52888
Centroid: [152.2857 151.7073]
BoundingBox: [17.5000 16.5000 269 271]
SubarrayIdx: {[1x271 double] [1x269 double]}
MajorAxisLength: 261.5073
MinorAxisLength: 258.2434
Eccentricity: 0.1575
Orientation: 79.6135
ConvexHull: [72x2 double]
ConvexImage: [271x269 logical]
ConvexArea: 57353
Image: [271x269 logical]
FilledImage: [271x269 logical]
FilledArea: 52888
10
EulerNumber: 1
Extrema: [8x2 double]
EquivDiameter: 259.4978
Solidity: 0.9221
Extent: 0.7255
PixelIdxList: [52888x1 double]
PixelList: [52888x2 double]
Perimeter: 1.1873e+03
PerimeterOld: 1.2540e+03
Odabrali smo da želimo da imamo pristup svim ovim parametrima, međutim nas
trenutno zanima samo svojstvo ConvexHull koji predstavlja zapravo ljušturu objektra.
Kada plotamo to svojstvo na sliku, najbolje ga opisuje „guma oko objekta“. U našem
slučaju to svojstvo će najpribližnije opisati vanjski prečnik lančanika. „Izvlačimo“
koordinate te ih plotujemo na slici, boja linije: žuta, debljina: 2.
rp=regionprops(double(lancanikcb2),'all')
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','Yellow','Linewidth',2);
[r,c]=size(lancanikcb2);
mask=poly2mask(xy(:,1),xy(:,2),r,c);
ones(10);
maskeroded=imerode(mask,ones(10));
rp=regionprops(double(maskeroded),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','red','linewidth',2);
zubi(maskeroded)=0;
subplot(3,3,8),imshow(zubi),title('Prikaz zubi');
[l,num]=bwlabel(zubi);
11
Da bismo izmjerili prečnik vratila prvo je potrebno da prikaćemoo rupe koje smo
već ranije popunili, zatim uz pretostavku da je rupa koja predstavlja unutrasnji prečnik
manja od 1000 piksela, popunjajemo ostale, manje rupe, koje su manje od 1000 piksela.
Zatim prikazujemo rezultate odnosno: broj zubi, spoljašnji prečnik kao i prečnik
vratila. Prečnike dobivamo pomoću funkcije regionprops, koristimo jedan od njezinih
izlaza a to je „EquivDiameter“, zbog preciznijih rezultata, za prečnik lančanika korištena je
slika maske. Rezultati prečnika su prikazani u pikselima, međutim ako bi se znala tačna
razdaljina kamere od predmeta, odgovarajućim preobrazbama moglo bi se pretvoriti u
milimetre odnosno centimeter ili metre.
Da bi program znao da li je lančanik ispravan, koristimo input te broj zuba koji smo
dobili kao izlaz iz programa
if x==num
disp('Lancanik nema defekata')
else
disp('Lancanik je defektan')
end
12
3.1. Prikaz rezultata
x=
39
Broj zubi je
num =
39
Spoljasnji precnik
d1 =
EquivDiameter: 270.2297
Precnik vratila je:
d2 =
EquivDiameter: 37.1681
Lancanik nema defekata
13
Mjerenje vanjskog lančanika gdje su ostali smatrani kao smetnja:
14
4. ZAKLJUČAK
Prilikom izrade programa nije vođeno računa o fleksibilnosti algoritma. Ukolko bi
željeli da program bude koristam moralo bi se poraditi više na tome. Ograničenje da
pozadina bude svjetlija od lančanika bi mogli eliminisati pomoću „if“ petlje gdje bi jedan
dio programa bio zadužen za detekciju pozadine i lančanika te bi dalje mjerili jačinu
svjetlosti unutar odgovarajućih polja od interesa. Ukoliko je lančanik svjetliji samo bi se
izostavio dio gdje računamo inverznu binarnu sliku. Međutim lančanici dolaze u različitim
oblicima i konstrukcijskim izvedbama, vrlo bi teško bilo napraviti univerzalni program za
kontrolu svih vrsta lančanika.
15
LITERATURA
16
PRILOG
Tekst programa:
close all
clear
prompt='Koliko zuba bi trebao da ima ispravan lancanik';
x=input(prompt)
lancanik=imread('C:\Users\Osman\Desktop\slika3.jpg');
subplot(3,3,1), imshow(lancanik), title('Originalna slika')
lancanik=rgb2gray(lancanik);
subplot(3,3,2), imshow(lancanik), title('Siva slika')
lancanik1=medfilt2(lancanik);
subplot(3,3,3), imshow(lancanik1), title('Uklojnena buka sa slike')
level=graythresh(lancanik);
lancanikcb=im2bw(lancanik,level);
subplot(3,3,4), imshow(lancanikcb), title('Crno bijela slika')
J=imcomplement(lancanikcb);
subplot(3,3,5), imshow(J), title('Inverzna crno bijela slika')
lancanikcb2=imfill(J,'holes');
subplot(3,3,6), imshow(lancanikcb2), title('Popunjene rupe')
rp=regionprops(double(lancanikcb2),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','Yellow','Linewidth',2);
[r,c]=size(lancanikcb2);
mask=poly2mask(xy(:,1),xy(:,2),r,c);
ones(10);
maskeroded=imerode(mask,ones(10));
rp=regionprops(double(maskeroded),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','red','linewidth',2);
rupe=lancanikcb2 & ~J;
rupe2=bwareaopen(rupe, 1000);
subplot(3,3,7), imshow(rupe2), title('Prikaz precnika vratila');
zubi=lancanikcb2;
zubi(maskeroded)=0;
subplot(3,3,8),imshow(zubi),title('Prikaz zubi');
[l,num]=bwlabel(zubi);
disp('Broj zubi je')
num
disp('Spoljasnji precnik')
d1=regionprops(mask, 'EquivDiameter')
disp('Precnik vratila je:')
d2=regionprops(rupe2, 'EquivDiameter')
if x==num
disp('Lancanik nema defekata')
else
disp('Lancanik je defektan')
end
17