Amortyzator Na rys 1. pokazano schemat układu amortyzacji samochodu, którego wszystkie koła jednocześnie najeżdżają na przeszkodę. Zamodelowano ćwiartkę samochodu przy następujących danych: masa kola = 20 kg masa ćwiartki samochodu = 200 kg sztywność opony = 110000 kg/s 2 sztywność sprężyny w amortyzatorze = 20000 kg/s 2 tłumienie (c) w trakcie ściskania = 10 kg/s tłumienie (c) w trakcie rozciągania = 2000 kg/s Model: Dodatkowe zmienne: Należy uwzględnić zmienność tłumienia oraz możliwość oderwania się koła od powierzchni drogi. Należy zasymulować zachowanie się układu w krótkim okresie (np. 2 s) od chwili, gdy samochód zaczął najeżdżać na krawężnik o wysokości wys_kr = 0.05 m, jeżeli czas najazdu trwał t_kr = 0.05 s. Warunki początkowe: Przyjęto, że w chwili t = 0 przemieszczenia koła i karoserii (y 1, y 2 ) spowodowane ciężarem koła m 1 i karoserii m 2 były równe odpowiednio -0.02 i -0.012 m, natomiast prędkości koła i karoserii (y 3, y 4 ) były równe 0 m/s.
Wymuszenie y 0 opisano następująco (t czas): jeżeli t < t_kr to y 0 = t, w przeciwnym razie y 0 = wys_kr. Model zapisano w postaci układu równań stanu: Przykład modelu symulacyjnego w Matlabie: 1. Równania prawych stron modelu zakodowano w pliku amortyzator_kr.m function dydt = amortyzator_kr(t,y,m1,m2,k1,k2,p1,p2,wys_kr,t_kr) g = 9.81; if t < t_kr y_0 = t*wys_kr/t_kr; y_0 = wys_kr; delta = y_0-y(1); if delta < 0 delta = 0; if y(3)-y(4) >= 0 c = p1; c = p2; a = [-c/m1*(y(3)-y(4))+k1/m1*delta-k2/m1*(y(1)-y(2))-g; c/m2*(y(3)-y(4))+k2/m2*(y(1)-y(2))-g]; dydt = [y(3); y(4); a(1); a(2);]; 2. Moduł obliczający przyspieszenia koła i karoserii zapisano w pliku Symulacja_amortyzator_kr_przyspieszenie.m
% przyspieszenia n = size(t); n = n(1); % okreslenie rozmiaru wektora t g = 9.81; p = []; for i = 1:1:n(1) if t(i) < wys_kr y_0 = t(i); y_0 = wys_kr; delta = y_0-y(i,1); if delta < 0 delta = 0; if y(i,3)-y(i,4) >= 0 c = p1; c = p2; a = [-c/m1*(y(i,3)-y(i,4))+k1/m1*delta-k2/m1*(y(i,1)-y(i,2))-g c/m2*(y(i,3)-y(i,4))+k2/m2*(y(i,1)-y(i,2))-g]; p = [p;a]; % wykresy plot(t,p(:,1),'-',t,p(:,2),'--') title('amortyzator'); xlabel('czas (s)'); ylabel('przyspieszenia (m/s2)'); leg('kolo','nadwozie'); 3. Główny moduł programu, który zadaje dane wejściowe, wywołuje procedurę rozwiązania równań modelu, oblicza przyspieszenia oraz rysuje wykresy przemieszczeń, przyspieszeń a także portrety fazowe koła i karoserii, zapisano w pliku Symulacja_amortyzator_kr.m % wprowadzenie danych m1 = 20; % masa kola m2 = 200; % masa cwiartki samochodu k1 = 110000; % sztywnosc opony k2 = 20000; % sztywnosc sprezyny w amortyzatorze
p1 = 10; % stala tlumika p2 = 2000; % stala tlumika wys_kr = 0.05; % wysokosc kraweznika t_kr = 0.05; % czas najazdu na kraweznik tk = 2; % czas symulacji % symulacja options = odeset('reltol',1e-4,'abstol',[1e-4 1e-4 1e-5 1e-5]); [t,y] = ode45(@(t,y) amortyzator_kr(t,y,m1,m2,k1,k2,p1,p2,wys_kr,t_kr),[0 tk],[-0.02;-0.12;0;0],options); % wykresy subplot(2,2,1) t1 = [0 t_kr tk]; y1 = [0 wys_kr wys_kr]; plot(t1,y1,'-r') % schodek hold on plot(t,y(:,1)+0.02,'-',t,y(:,2)+0.12,'--') % przemieszczenia - przesuniecie wykresow do poczatku ukladu XY title('amortyzator'); xlabel('czas (s)'); ylabel('przemieszczenia (m)'); leg('kraweznik','kolo','nadwozie'); subplot(2,2,2) Symulacja_amortyzator_kr_przyspieszenie % pzyspieszenia subplot(2,2,3) plot(y(:,1)+0.02,y(:,3)) % wykres fazowy y1, y3 - przesuniecie wykresow do poczatku ukladu XY title('kolo'); xlabel('przemieszczenie kola'); ylabel('predkosc kola'); subplot(2,2,4) plot(y(:,2)+0.12,y(:,4)) % wykres fazowy y2, y4 - przesuniecie wykresow do poczatku ukladu XY title('nadwozie'); xlabel('przemieszczenie nadwozia'); ylabel('predkosc nadwozia'); Dla ww. danych wejściowych uzyskano wykresy:
Zadanie do wykonania na zaliczenie. Każdy student: 1. oblicza wartość A = kolejny numer studenta na liście dziekańskiej / 10 ( równe odpowiednio 0.1, 0.2, itd.). 2. oblicza mnożnik B = 1 + A. 3. w swoim zadaniu oblicza masy m 1 i m 2 wg wzorów: m 1 = B * 20 kg; m 2 = B * 200 kg. 4. przeprowadza symulację działania amortyzatora dla tak zmienionych mas. Polecenia: A. Należy tak dobrać parametry amortyzatora (k 1, k 2, c) aby: 1. układ stabilizował się w rozsądnym czasie (np. < 3 s) przy różnych, rozsądnych wysokościach krawężnika (np. 5 15 cm) oraz różnych rozsądnych czasach najazdu (np. 0.005-0.1 s). 2. przyspieszenia były małe. B. Należy odpowiedzieć na pytanie : Jak zmieni się rozwiązanie, jeśli samochód będzie jechał z różnymi prędkościami po nierównej drodze, której kształt mona opisać następującą sinusoidą a pozostałe dane (masy, sztywności, tłumienia, warunki początkowe) pozostaną bez zmian?: y 0 = Amp * sin(omega * t) przy czym Amp amplituda sinusoidy (np. 2 15 cm); Omega = 2π/Okres; Okres czas przejazdu przez jeden cykl sinusoidy (np. 0.005 2.0 s). C. Należy przedyskutować warianty ilustrując je wykresami. D. Zbadać:
Jak się zmienią uzyskane rozwiązania, jeżeli tłumienie c ma wartość zadaną w trakcie ściskania oraz 85% wartości zadanej w trakcie rozciągania. Dodatkowe polecenie na podwyższenie oceny: Należy wyprowadzić i analogicznie przedyskutować model, w którym dodatkowo uwzględniono masę fotela wraz kierowcą (m 3 ) oraz sprężystość i tłumienie zawieszenia fotela kierowcy (k 3, c 3 ). Przemieszczenie fotela kierowcy określa współrzędna. Pytanie na ocenę celującą : Jak można zmodyfikować modele, aby tłumiki zawsze hamowały amortyzowane masy i nigdy ich nie przyspieszały (tzw. sterowanie pół-aktywne)?