Yrd.Doç.Dr. SERDAR ARITAN tarafından verilenler:
- jump.txt olarak kaydedilmiş zıplayan birinin eklemlerinin koordinat bilgileri
- jumpAngle.m dosyasında ile jump.txt dosyasındaki bilgiler kullanılarak eklemlerin dönme açıları ve diğer bilgiler matlab değişkenlerne aktarılmasını sağlayan matlab fonksiyonu
- Oluşturmamız gereken simulink örneğinin çıktısını resim ve video Yrd.Doç.Dr. SERDAR ARITAN tarafından istenilenler:
- jump.txt dosyası işlenerek jumpAngel.m dosyasındaki fonksiyon kullanılarak zıplayan birinin simulink modellemesi yapılacak
- simulink modellemesi sonucu ortaya çıkan görüntü ile hocanın verdiği görüntü eşdeğer olacak
- Matlab içinde önceden oluşturulmuş sarkaç örneğini bakıp oradan gerekli bilgiler elde etmeniz bu örneğin daha da basitleştirecektir. Örneğe ulaşmak için tıklayınız.
- Ayarlarını yapmak için aşağıdaki kodu indirin hepsini silin otomatik sizin için ayarlar hazır olacaktır.
- Simulink Library Browser arama yaparak aşağıdaki blokları ekleyiniz: - bir tane Machine Environment yerçekim değerlerini modele eklemeki için (sarkaç örneğinde kopyalabilirsiniz) gravity değeri: [0 -9.81 0] toleranse: 1e-3 - bir tane Ground alınan yerçekim bilgileriyle hangi konumda durağını ayarlamak için Location: [0 0 0] Show Machine Environment port seçili hale getiriniz. - dört tane Joint Initial Condition modele ilk değer vermesini sağlamaktadır. Hesapladığımız eklem açıları tamamıyla bağımsız dünya koordinatlarına göre yapılmaktadır ama vücudun bir eklemini gerçek koordinatlara göre döndürdüğümüzde daha alta bulunanların dönmesi de eklenerek sistemi bozmaktadır. Bunu engellemek için eklemin altında bulunan eklemleri çıkartırsak bağımsız olarak hareket edecektir. birincisi Position: footAngle(1) ikincisi Position: legAngle(1)-footAngle(1) üçüncüsü Position: thighAngle(1)-legAngle(1) = thighAngle(1) - (legAngle(1) - footAngle(1) + footAngle(1) ) dördüncüsü Position: trunkAngle(1)-thighAngle(1) = trunkAngle(1) -(thighAngle(1) - legAngle(1) + legAngle(1) - footAngle(1) + footAngle(1) ) - tümü Units: deg - dört tane Joint Actuator motoru istenilen açıya getirmek için çalıştırır Actuate with: motion - dört tane Mux Number of inputs: 3 olarak ayarlayınız. - dört tane Joint Sensor motorda oluşan değişikliği incelemek için kullanılır. Compute torque ve Reaction force tıklayınız Output selected paramaters as one signal tıklamasını kaldırınız. - dört tane From Workspace kod ile değişkenlerde saklı olan eklem derecelerine erişmek için kullanılır. 40 dizilik bir veri alacağız: (tırnaklara dikkat edin tekrardan yazarsanız hata gitmiş olur!) birincisi Data: [time(1:40),footAngle(1:40)'] ikincisi Data: [time(1:40),legAngle(1:40)'-footAngle(1:40)'] üçüncüsü Data: [time(1:40),thighAngle(1:40)'-legAngle(1:40)'] dördüncüsü Data: [time(1:40),trunkAngle(1:40)'-thighAngle(1:40)'] - Sensörlerdeki veriler gözlemlemek için çıkış değerlerine Scope ekleyiniz - dört tane Revolute dönmeyi sağlayan motor görevi görmektedir. Number of sensor / actuator ports: 3 - dört tane Body ekleyiniz ve aşağıdaki gibi ayarlayınız:

- Yukarıdaki resim gibi bağlantıları yapınız.
- simulik çalışma alanına sağ tıklayıp Model Properties > Callbacks > InitFcn* yolu takip ederek Serdar Hoca'nın aşağıdaki kodunu yapıştırınız:
% Serdar ARITAN
load jump.txt;
j = 0;
for i = 1 : length(jump)/6
footAngle(i)= atan2d(jump(4+j, 2) - jump(6+j, 2) , jump(4+j, 1) - jump(6+j, 1));
legAngle(i)= atan2d(jump(3+j, 2) - jump(4+j, 2) , jump(3+j, 1) - jump(4+j, 1));
thighAngle(i)= atan2d(jump(2+j, 2) - jump(3+j, 2) , jump(2+j, 1) - jump(3+j, 1));
trunkAngle(i)= atan2d(jump(1+j, 2) - jump(2+j, 2) , jump(1+j, 1) - jump(2+j, 1));
j= i*6;
end
figure(1), plot(footAngle, 'r.-'), hold on
plot(legAngle,'g.-'), plot(thighAngle, 'b.-'), plot(trunkAngle, 'm.-'), grid on
time = [0: 0.02 : (length(footAngle) -1 )*0.02]';
totalMass = 1;
% Foot
footLength = 0.152;
footCG = footLength *.55;
footMass = 0.0147*totalMass;
% Leg
legLength = 0.255;
legCG = footLength + legLength*0.63;
legLength = footLength + legLength;
legMass = 0.0435*totalMass;
% Thigh
thighLength = 0.245;
thighCG = legLength + thighLength*0.63;
thighLength = legLength + thighLength;
thighMass = 0.1027*totalMass;
% Trunk
trunkLength = 0.288;
trunkCG = thighLength + trunkLength*0.62;
trunkLength = thighLength + trunkLength;
trunkMass = 0.5070*totalMass;
- Analiz yaparken yarattığımız simulink modelinin ayak kısmından yere bağladığımızı ama gerçek verilerde zıplarken ayakların yerden kesildiğini sonucu gördüğünüzde fark edeceksiniz.
Kodu: vize simulink kodu için tıklayınız Bütün içtenlikliğimle söylemem gerekiyor ki Serdar Hoca'nın dersleri zordur ama öyle bir anlatır ki dersin çok basit olduğunu zannedersiniz verdiği ödevlerle de çalışmanız konusunda yol gösterici olur ve farkında olmadan zor olan dersi kolayca öğrenmiş olursunuz. Bu yaptığım vize ödevini de Serdar Hoca'nın bugünkü yardımıyla bitirmiş oldum :) Tüm Ödevler: https://onedrive.live.com/redir?resid=AF3572A0A2A616F7!160&authkey=!AHRAeYDN3DDX9Q0&ithint=file%2crar