Zadanie projektowe nr K-1
Wymiary
AB = 0,15 m
AC=0,25 m
CD=0,53 m
DE=0,3 m
a=0,35 m
j = & & o
2
w = & & rad/s
2
Lp. Określić
1 Trajektorię punktu E (zakres pracy członu 6: x , x )
Emin Emax
2 Przebiegi prędkości punktu E v (j )
E 2
3 Przebiegi przyspieszenia punktu E a (j )
E 2
Jak pokazano w [1]1, aby rozwiązać zadanie należy ułożyć układ funkcji opisujących
położenie członów mechanizmu:
f(w,q,x)=0, (1)
gdzie:
w wektor wymiarów(wartości stałych)
q wektor napędów,
x wektor zmiennych nieznanych.
Rysunek 1. Przyjęte pętle wektorowe
Aby zapis był kompletny należy uzyskać n równań na n niewiadomych, czyli w tym
przypadku tyle ile wynosi wymiar wektora x (ile jest zmiennych niewiadomych).
Równania te, można uzyskać za pomocą tzw. równań konturowych. Są to równania sum
wektorów, które ułożone w pętle dają w wyniku 0. Na rys. 1 pokazano przyjęte pętle
wektorowe:
a
+ b + c = 0
{ . (2)
5Q + 5R + 5S + 5T = 0
Rysunek 2. Zmienne zależne - nieznane
1
dział 3.3.2 Uporządkowanie macierzowe (str. 132)
Jeżeli przyjąć za zmienne niewiadome wektor x, tak jak pokazano na rysunku 2:
x={BC, Ć , Ć , xE }T
4 5
Równania wektorowe (2) można zapisać, jako współrzędne wektorowe OX oraz OY (rzutując
wektory na osie głównego układu współrzędnych). W ten sposób otrzymamy 2 równania
z każdej pętli wektorowej. (2) przyjmuje postać:
( ) ( )
AB cos Ć2 - BC cos Ć4 = 0
( ) ( )
AB sin Ć2 - BC sin Ć4 + AC = 0
5S(5Ś, 5ł, 5ؙ) = . (3)
( ) ( )
CD cos Ć4 + DE cos Ć5 - 5e58 = 0
( ) ( )
{CD sin Ć4 + DE sin Ć5 - 5N - 5456 = 0
Na czerwono zaznaczono zmienne niewiadome x, na zielono napęd q, reszta parametrów
zawartych w równaniach to wymiary (parametry stałe).
Tak zapisane równania można rozwiązać za pomocą programu MATLAB. Na początek
należy zdefiniować wszystkie wymiary oraz ustawić napędy. Należy rozpocząć o stworzenia
pustego pliku (skryptu) z rozszerzeniem .m, nazwiemy go kienmatyka_k1.m(rys. 3):
Rysunek 3. Tworzenie skryptu
Zaczynamy skrypt od wyczyszczenia przestrzeni roboczej, a następnie definiujemy wymiary:
clear all;
AB=0.15;
CD=0.53;
DE=0.3;
AC=0.25;
a =0.35;
fi2=30;
zmienna fi2 odpowiada kątowi napędu Ć , kolejno należy zdefiniować wskaznik(uchwyt2)
2
do funkcji nienazwanej 3, która zwróci nam wartość f(w,q,x) (3). W programie MATLAB
tworzy się go za pomocą znaku @:
f = @(X)([AB*cosd(fi2)-X(1)*cosd(X(2));...
AB*sind(fi2)-X(1)*sind(X(2))+AC;...
CD*cosd(X(2))+DE*cosd(X(3))-X(4);...
CD*sind(X(2))+DE*cosd(X(3))-a-AC]);
2
ang. handle
3
ang. anonymous function
Funkcje sind oraz cosd odpowiadają funkcjom trygonometrycznym sin i cos, przyjmujące
argumenty kątowe w stopniach. Tak zdefiniowany wskaznik na funkcję f można użyć,
do rozwiązania układu równań f(w,q,x)=0, za pomocą funkcji fsolve().
W następnym kroku należy zdefiniować wektor startowy zmiennych x, od którego zaczniemy
poszukiwanie rozwiązania:
x = [0.3,30,180,0];
wartości wektora x zostały przyjęte z góry i nie spełniają warunku (1): f(w,q,x)=0. Aby
znalezć rozwiązanie użyjemy funkcji fsolve4 w następujący sposób:
x = fsolve(f,x);
funkcja ta przyjmuje 2 parametry:
1. Wskaznik na f.
2. Wektor startowy x, z którego zaczyna przeszukiwanie
Zwracana wartość to wektor rozwiązania, czyli szukane wartości x. Jeżeli informację, jakie
funkcja fsolve wypisuje na ekranie są niepożądane można je wyłączyć za pomocą
dodatkowych argumentów, przekazanych jako trzeci argument funkcji fsolve. Argumenty te
można złożyć za pomocą funkcji optimset5, np.:
x = fsolve(f,x,optimset('Display','off','TolFun',1e-12));
parametr Display definiuje, jakie informacje ma wypisać funkcja fsolve,
TolFun tolerancja wartości funkcji f, poniżej której można zakończyć przeszukiwanie
rozwiązania.
Kolejnym krokiem jest rozwiązanie równania prędkości x, w tym celu należy zróżniczkować
równania (1) po czasie, zakładając:
q=q(t)
x=x(t)
otzymamy rówanie:
Ax+Bq =0, (4)
gdzie:
55؇ 55؇
54 = , 55 =
55ؙ 55ł
to odpowiednio jakobiany ze względu na zmienne znane i nieznane. Aby rozwiązać równanie
prędkości ze względu na prędkości zmiennych nieznanych należy je przekształcić:
x= -A-1Bq
Skrypt wygląda następująco:
A = [ BC*sind(fi4),-cosd(fi4),0,0;...
-BC*cosd(fi4),-sind(fi4),0,0;...
0,-CD*sind(fi4),-DE*sind(fi5),-1;...
0, CD*cosd(fi4), DE*cosd(fi5),0];
B = [-AB*sind(fi2);...
AB*cosd(fi2);...
0;...
0];
dq=1;
dx = -A\B*dq;
4
Szersze informacje znajdują się w pomocy do programu MATLAB, wywołując polecenia: help fsolve
lub doc fsolve
5
jw.: help optimset lub doc optimset
dq jest to pochodna napędu Ć , czyli prędkość kątowa . W wyniku mamy prędkości x.
2 2
Jest to rozwiązanie jedynie dla jednej pozycji kąta Ć . Jeżeli chcemy wyznaczyć
2
charakterystykę dla całego zakresu pracy należy skrypt zapętlić w następujący sposób:
Wersja dla jednej pozycji Skrypt zapętlony
clear all; clear all;
AB=0.15; AB=0.15;
CD=0.53; CD=0.53;
DE=0.3; DE=0.3;
AC=0.25; AC=0.25;
a =0.35; a =0.35;
x = [0.3,30,180,0]; x = [0.3,30,180,0];
wek_muE=[];wek_fi2=[];wek_t=[];wek_vE=[];
fi2_pocz=30;
fi2=30; for fi2=fi2_pocz:1:(fi2_pocz+360 )
f = @(X)([AB*cosd(fi2)-X(1)*cosd(X(2));... f = @(X)([AB*cosd(fi2)-X(1)*cosd(X(2));...
AB*sind(fi2)-X(1)*sind(X(2))+AC;... AB*sind(fi2)-X(1)*sind(X(2))+AC;...
CD*cosd(X(2))+DE*cosd(X(3))-X(4);... CD*cosd(X(2))+DE*cosd(X(3))-X(4);...
CD*sind(X(2))+DE*sind(X(3))-a-AC]); CD*sind(X(2))+DE*sind(X(3))-a-AC]);
%x = fsolve(f,x); %x = fsolve(f,x);
x = fsolve(f,x,... x = fsolve(f,x,...
optimset('Display','off','TolFun',1e-12)); optimset('Display','off','TolFun',1e-12));
BC = x(1); BC = x(1);
fi4 = x(2); fi4 = x(2);
fi5 = x(3); fi5 = x(3);
xE = x(4); xE = x(4);
A = [ BC*sind(fi4),-cosd(fi4),0,0;... A = [-cosd(fi4), BC*sind(fi4),0,0;...
-BC*cosd(fi4),-sind(fi4),0,0;... -sind(fi4),-BC*cosd(fi4),0,0;...
0,-CD*sind(fi4),-DE*sind(fi5),-1;... 0,-CD*sind(fi4),-DE*sind(fi5),-1;...
0, CD*cosd(fi4), DE*cosd(fi5),0]; 0, CD*cosd(fi4), DE*cosd(fi5),0];
B = [-AB*sind(fi2);... B = [-AB*sind(fi2);...
AB*cosd(fi2);... AB*cosd(fi2);...
0;... 0;...
0]; 0];
dq=1; dq=1;
dx = -A\B*dq; dx = -A\B*dq;
t = ((fi2-fi2_pocz)*pi/180)/dq;
wek_muE=[wek_muE;xE];
wek_vE=[wek_vE;dx(4)];
wek_fi2=[wek_fi2;fi2];
wek_t=[wek_t;t];
end
Zmienne wek_t , wek_fi2 , wek_muE , wek_vE są wektorami, które przechowują
wartości czasu, kąta Ć , położenia punktu E oraz prędkości v . Przed pętlą tworzone są, jako
2 E
wektory stałe, a następnie dopisywane są wartości charakterystyk na koniec wektora za
każdym wywołaniem pętli symulacji. Na czerwono oraz strzałkami po lewej stronie
zaznaczone zostały różnice pomiędzy skryptami.
Aby rozwiązać przyspieszenia należy zaimplementować w powyższym skrypcie równanie
przyspieszeń:
Ax+Ax+Bq+Bq =0.
Literatura:
1. Anotni Gronowicz, Podstawy Analizy układów kinematycznych , Oficyna
Wydawnicza Politechniki Wrocławskiej 2003
Wyszukiwarka
Podobne podstrony:
Analiza kinematyczna mechanizmów Metoda wektorowa równań konturowych prezentacjaMacierze i układy równań przykładyPrzykład numerycznego rozwiązania równania różniczkowego II rzęduMES1 Wykład 2 PRZEDSTAWIENIE METOD PRZYBLIŻONYCH NA PRZYKŁADZIE RÓWNANIA POISSONAAndrzej Palczewski Rownania rozniczkowe zwyczajne przyklady i zadaniamn k1 przykl 2011 2012Mathcad Laborki K1 MGcw6 arkusz obliczeniowy przykladwitamina K1 St Majprzykładowy test AprzykladowyJrkusz150UM[1] drukowOEiM AiR Przykladowy EgzaminZnaczenie korytarzy ekologicznych dla funkcjonowania obszarów chronionych na przykładzie Gorcówprzykladowe zadania redoksĆwiczenie 14 przykładwięcej podobnych podstron