Amortyzator
Transkrypt
Amortyzator
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/s2
sztywność sprężyny w amortyzatorze = 20000 kg/s2
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 (y1, y2) spowodowane ciężarem koła m1 i karoserii m2
były równe odpowiednio -0.02 i -0.012 m, natomiast prędkości koła i karoserii (y3, y4) były równe 0 m/s.
Wymuszenie y0 opisano następująco (t – czas):
jeżeli t < t_kr to y0 = t, w przeciwnym razie y0 = 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;
else
y_0 = wys_kr;
end
delta = y_0-y(1);
if delta < 0
delta = 0;
end
if y(3)-y(4) >= 0
c = p1;
else
c = p2;
end
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);
else
y_0 = wys_kr;
end
delta = y_0-y(i,1);
if delta < 0
delta = 0;
end
if y(i,3)-y(i,4) >= 0
c = p1;
else
c = p2;
end
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];
end
% wykresy
plot(t,p(:,1),'-',t,p(:,2),'--')
title('Amortyzator');
xlabel('Czas (s)');
ylabel('Przyspieszenia (m/s2)');
legend('Kolo','Nadwozie');
grid
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
m2
k1
k2
=
=
=
=
20; % masa kola
200;
% masa cwiartki samochodu
110000; % sztywnosc opony
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)');
legend('Kraweznik','Kolo','Nadwozie');
grid
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');
grid
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');
grid
Dla ww. danych wejściowych uzyskano wykresy:
Zadanie do wykonania na zaliczenie. Każdy student:
1.
2.
3.
4.
oblicza wartość A = kolejny numer studenta na liście dziekańskiej / 10 ( równe odpowiednio 0.1, 0.2, itd.).
oblicza mnożnik B = 1 + A.
w swoim zadaniu oblicza masy m1 i m2 wg wzorów: m1 = B * 20 kg; m2 = B * 200 kg.
przeprowadza symulację działania amortyzatora dla tak zmienionych mas.
Polecenia:
A. Należy tak dobrać parametry amortyzatora (k1, k2, c) aby:
1.
2.
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).
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?:
y0 = 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ą (m3) oraz sprężystość i tłumienie zawieszenia fotela kierowcy (k3, c3). 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)?