KİNEMATİK ANALİZ (HIZ VE İVME)

Kinematik, fizik biliminin ilgi alanı olan mekaniğin bir alt dalıdır. Hareketin uzay-zaman (konum) özellikleri ile ilgilenir. Harekete neden olan kütle ve kuvvet gibi özellikler kinematiğin ilgi alanı değildir. Kinematik konum, hız ve ivmelemeyi düzgün-doğrusal ve açısal olarak inceler. Kinematik Analiz hareketin oluşma nedenleri ile ilgilenmeksizin, hareketlerin konum ve zaman parametrelerinin incelenmesidir. matlab kullanılarak bir kameradan alınan görüntüden cismin konum - zaman, hız - zaman ve ivme - zaman grafiğini ortaya çıkaracağız. ilk başta kalibrasyon nedir neden yapılır sorusuna cevap verelim: Kalibrasyon tanımlanmış koşullar altında izlenebilirliği sağlanmış ölçüm cihazının  ölçülen cihaz ile arasındaki ilişkiyi belirleyen işlemler dizisi olarak tanımlayabiliriz. Bir kameradan cismi incelemeden önce onun ayarlarını yapmak ve yerdeki konumu ayarlamak için kalibrasyon yapılır.

video sitesi kalibrasyon resmi ve gerçek dünyada hangi koordinatlarda olduğu bilgisi verilen kameranın kalibrasyonunu yapıp sonradan yukarıdan düşen topun konum - zaman, hız - zaman ve ivme - zaman grafiğini nasıl çizeceğimizi ele alacağız:

function kalibrasyon_konum_belirleme()
close all;clear;
img_kalibrasyon = imread('calib_0001.jpg');
imshow(img_kalibrasyon);
% kalibrasyon için sırasıyla belirtilen 8 noktayı seç
I = ginput(8);
% kalibrasyon noktalarının gerçek konum değerleri bir diziye atılmaktadır.
S = [2.5 30
2.5 60
2.5 130
2.5 190
108 10
108 80
108 120
108 180];
% İki-Boyutlu Uyum Dönüşümü (2D Conformal Transformation)
% Dört-parametreli benzerlik dönüşümü olarak da bilinir
% Bu dönüşüm 3 basamaktan oluşmaktadır:
uyum_donusumu = calculate_conformal(I, S, 1);
% 1.Dönme : iki sistemin referans eksenlerini paralel yapmak için
donme_acisi = atand(uyum_donusumu(2)/uyum_donusumu(1));
% 2.Ölçekleme : iki koordinat sisteminde denk boyut yaratmak için
olceklendirme = uyum_donusumu(1)/cosd(donme_acisi);
% 3.Öteleme: iki koordinat sisteminde ortak bir başlangıç noktası yaratmak için
Tx = uyum_donusumu(3);
Ty = uyum_donusumu(4);
% yüklenecek resimleri matlab klasörün altından alıyoruz
srcFiles = dir(strcat(pwd,'\Cap300_*.jpg'));
hold off;
for i = 1 : length(srcFiles)

filename = strcat(pwd,'\',srcFiles(i).name);
RGB=imread(filename);
%resmi gri hale çevirme
I = rgb2gray(RGB);
% resmi gösterme ve değişikleri koruma
imshow(I);

% eşik değeri belirleme
[level EM] = graythresh(I);
% eşik değeri uygulama
bw = im2bw(I, EM);
% gereksiz görültüyü temizleme
bw= medfilt2(bw,[3 3]);
bw = bwareaopen(bw, 4);
% cisimlerin daha iyi görünmesi için doldurma
[B,L] = bwboundaries(bw,'noholes');

% Ağırlıklı kütle merkezini(WeightedCentroid),
% cismin kütle merkezini(Centroid)
% hesapanma
cismin_merkezleri = regionprops(L, I,  'WeightedCentroid', 'Centroid');
% cismin kütle merkezini belirleme
centroid = cismin_merkezleri.Centroid;
ball_drop_centroid(i,1) = centroid(1);
ball_drop_centroid(i,2) =  centroid(2);
% ağırlıklı kütle merkezini belirleme
weightedCentroid = cismin_merkezleri.WeightedCentroid;
ball_drop_weightedCentroid(i,1) = weightedCentroid(1);
ball_drop_weightedCentroid(i,2) =  weightedCentroid(2);

end
% kütle merkezi ve ağırlıklı kütle merkezi arasındaki farkı görebilmek
% için büyütünüz.
% kütle merkezine göre konum hesaplaması
H_centroid = calculate_reconformal(uyum_donusumu, ball_drop_centroid);
figure(1), plot(H_centroid(:,1),H_centroid(:,2), 'ro');
hold on;
axis equal;
grid on;
% ağırlıklı kütle merkezine göre konum hesaplaması
H_weightedCentroid = calculate_reconformal(uyum_donusumu, ball_drop_weightedCentroid);
figure(1), plot(H_weightedCentroid(:,1),H_weightedCentroid(:,2), 'b+');
% Grafiğe başlık ekleyelim:
xlabel('düşeyde aldığı yol (x)')
ylabel('yatayda aldığı yol (y)')
title('Topun Konum Grafiği')

v_centroid_x(1) = 0;
v_centroid_y(1) = 0;
v_weightedCentroid_x(1) = 0;
v_weightedCentroid_y(1) = 0;
a_centroid_x(1) = 0;
a_centroid_y(1) = 0;
a_weightedCentroid_x(1) = 0;
a_weightedCentroid_y(1) = 0;
zaman(1) = 1;
for i = 2 :length(H_centroid)
zaman(i) = i;
% hız hesaplanması
v_centroid_x(i) = H_centroid(i,1) - H_centroid((i-1),1);
v_centroid_y(i) = H_centroid(i,2) - H_centroid((i-1),2);
v_weightedCentroid_x(i) = H_weightedCentroid(i,1) - H_weightedCentroid((i-1),1);
v_weightedCentroid_y(i) = H_weightedCentroid(i,2) - H_weightedCentroid((i-1),2);
% ivme hesaplanması
a_centroid_x(i) = v_centroid_x(i) - v_centroid_x(i-1);
a_centroid_y(i) = v_centroid_y(i) - v_centroid_y(i-1);
a_weightedCentroid_x(i) = v_weightedCentroid_x(i) - v_weightedCentroid_x(i-1);
a_weightedCentroid_y(i) = v_weightedCentroid_y(i) - v_weightedCentroid_y(i-1);

end
% kütle merkezine göre yatay hız hesaplaması
figure(2), plot(zaman, v_centroid_x, 'ro');
hold on;
axis equal;
grid on;
% ağırlıklı hız merkezine göre yatay hız hesaplaması
figure(2), plot(zaman,v_weightedCentroid_x, 'b+');
% Grafiğe başlık ekleyelim:
xlabel('x')
ylabel('y')
title('Topun yatayda hız Grafiği')

% kütle merkezine göre düşey hız hesaplaması
figure(3), plot(zaman, v_centroid_y, 'ro');
hold on;
axis equal;
grid on;
% ağırlıklı hız merkezine göre düşey hız hesaplaması
figure(3), plot(zaman,v_weightedCentroid_y, 'b+');
% Grafiğe başlık ekleyelim:
xlabel('x')
ylabel('y')
title('Topun düşeyde hız Grafiği')

% kütle merkezine göre yatay ivme hesaplaması
figure(4), plot(zaman,a_centroid_x, 'ro');
hold on;
axis equal;
grid on;
% ağırlıklı kütle merkezine göre yatay ivme hesaplaması
figure(4), plot(zaman,a_weightedCentroid_x, 'b+');
% Grafiğe başlık ekleyelim:
xlabel('x')
ylabel('y')
title('Topun yatayda ivme Grafiği')

% kütle merkezine göre düşey ivme hesaplaması
figure(5), plot(zaman,a_centroid_y, 'ro');
hold on;
axis equal;
grid on;
% ağırlıklı kütle merkezine göre düşey ivme hesaplaması
figure(5), plot(zaman,a_weightedCentroid_y, 'b+');
% Grafiğe başlık ekleyelim:
xlabel('x')
ylabel('y')
title('Topun düşeyde ivme Grafiği')
end

Kodu: kalibrasyon_ayarlama

barcode
Destek İçin Buradaki Reklamları Tıklayabilirsiniz.
Destek İçin Buradaki Reklamları Tıklayabilirsiniz.

Ses Kontrolleri

Tam Ekran Yap