Xét chuyển động của một vật rơi trong không khí có tính đến tác dụng của lực cản. Thực nghiệm cho thấy trong phần lớn các trường hợp, lực ma sát tăng lên cùng độ lớn vận tốc theo quy luật:
\(F_{ms} = -k_1v-\text{sign}(v)k_2v^2.\)Vì \(v^2\) luôn mang giá trị không âm nên hàm “\(-\text{sign}(v)\)” xuất hiện ở đây nhằm diễn tả tính ngược chiều vận tốc của lực ma sát. Các hệ số ma sát \(k_1\) và \(k_2\) phụ thuộc vào hình dạng của vật rơi và tính chất của môi trường.
Các lệnh
1 2 3 4 5 | %% INPUT DATA h0 = 60; % Do cao ban dau m = 1; k1 = 1; k2 = 0.01; |
giúp khai báo tham số ban đầu về độ cao, khối lượng và các hệ số ma sát. Mỗi khi thời gian tăng lên trong mỗi vòng lặp, gia tốc được tính lại theo theo công thức:
1 | a = -g+F_ms(k1,k2,v)/m; |
Trong đó hàm số của lực ma sát được viết riêng trong một chương trình con nằm ngay sau chương trình chính:
1 2 3 4 |
Video minh hoạ
Code chương trình
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | function roi_co_ma_sat clc close all clear all %% CONSTANTS g = 9.81; %% INPUT DATA h0 = 60; % Do cao ban dau m = 1; k1 = 1; k2 = 0.01; %% x = 0; y = h0; v = 0; t = 0; dt = 0.01; s = 0; t_array = t; s_array = s; v_array = v; a_array = g; %% FIGURE fig_vatroi = figure('name','Vat roi','color','white','numbertitle','off'); set(gcf,'Units','normalized'); set(gcf,'Position',[0 0.1 0.2 0.8]); graph_quanang = plot(x,y,'ro','MarkerSize',20,'markerfacecolor','r'); xlabel('X [m]'); ylabel('Y [m]'); axis equal axis([-0.15*h0 0.15*h0 -0.01*h0 1.2*h0]); fig_quangduong = figure('name','Quang duong','color','white','numbertitle','off'); set(gcf,'Units','normalized'); set(gcf,'Position',[0.2 0.1 0.3 0.38]); graph_quangduong = plot(t_array,s_array,'b','linewidth',2); xlabel('Thoi gian [s]'); ylabel('Quang duong [m]'); fig_vantoc = figure('name','Van toc','color','white','numbertitle','off'); set(gcf,'Units','normalized'); set(gcf,'Position',[0.5 0.1 0.3 0.38]); graph_vantoc = plot(t_array,v_array,'g','linewidth',2); xlabel('Thoi gian [s]'); ylabel('Van toc [m/s]'); fig_giatoc = figure('name','Gia toc','color','white','numbertitle','off'); set(gcf,'Units','normalized'); set(gcf,'Position',[0.2 0.5 0.3 0.38]); graph_giatoc = plot(t_array,a_array,'r','linewidth',2); xlabel('Thoi gian [s]'); ylabel('Gia toc [m/s^2]'); %% CALCULATION while y>0 t = t+dt; t_array = [t_array t]; a = -g+F_ms(k1,k2,v)/m; v = v+a*dt; y = y+v*dt+0.5*a*dt.^2; s_array = [s_array h0-y]; v_array = [v_array abs(v)]; a_array = [a_array abs(a)]; figure(fig_vatroi); set(graph_quanang,'xdata',x,'ydata',y); figure(fig_quangduong); set(graph_quangduong,'xdata',t_array,'ydata',s_array); figure(fig_vantoc); set(graph_vantoc,'xdata',t_array,'ydata',v_array); figure(fig_giatoc); set(graph_giatoc,'xdata',t_array,'ydata',a_array); pause(0.002); end end %% Ham luc ma sat function F = F_ms(k1,k2,v) F = -k1*v-sign(v)*k2*v.^2; end |
Một vài kết quả
Đồ thị phụ thuộc của quãng đường đi được theo thời gian:
Ban đầu vật rơi khá nhanh, sau đó dần tiến về một tốc độ ổn định và không tăng thêm nữa:
Gia tốc ban đầu của vật bằng gia tốc trọng trường \(9.81 m/s^2\). Sau đó vì tốc độ tăng dần, lực ma sát cũng tăng theo ngược chiều chuyển động làm gia tốc giảm đi. Càng rơi nhanh, lực ma sát càng lớn. Do đó trọng lực dần bị cân bằng bởi lực cản ma sát, gia tốc tiến về 0 và vật chuyển động thẳng đều.