200
2
2
2
2
(
)
c
q
q
F
c v
c x
y
=
=
+
ɺ
ɺ
2
2
2
2
2
2
2
2
/
,
/
c x
n
n
c y
n
n
F
c v x v
c x x
y
F
c v y v
c y x
y
=
=
+
=
=
+
ɺ
ɺ ɺ
ɺ
ɺ
ɺ ɺ
ɺ
Hạ bậc nhận ñược phương trình vi phân như sau
2
2
2
2
1
(
)
1
(
)
x
x
l
n
y
y
l
n
x
v
v
c x
c x x
y
m
y
v
v
mg
c y
c y x
y
m
=
= −
+
+
=
= −
+
+
+
ɺ
ɺ
ɺ
ɺ ɺ
ɺ
ɺ
ɺ
ɺ
ɺ ɺ
ɺ
Trước hết viết một m-file mô tả phương trình vi phân trên, trong ñó các thông số
khối lượng và các hệ số cản ñược khai báo là biến toàn cục.
function ydot = dandao(t,y)
% ptvp cd cua vien dan: m khoi luong, cl he so can tuyen tinh,
% cn he so can ty le binh phuong. vector y = [y1, y2, y3, y4]';
% y1 la toa do x, y2 la van toc vx
% y3 la toa do y, y4 la van toc vy
global m cl cn
g = 9.81; % gia toc trong truong
v = (y(2)^2 + y(4)^2)^0.5; ydot = zeros(4,1);
ydot(1) = y(2);
ydot(2) = -1/m*(cl*y(2) + cn*v*y(2));
ydot(3) = y(4);
ydot(4) = -1/m*(m*g + cl*y(4) + cn*v*y(4));
Lệnh ode45 ñược sử dụng ñể giải phương trình vi phân với các ñiều kiện ñầu
(0)
(0)
0, (0)
cos , (0)
sin
o
o
x
y
x
v
y
v
α
α
=
=
=
=
ɺ
ɺ
Ở ñây ta sẽ khảo sát quĩ ñạo chuyển ñộng của viên ñạn có khối lượng
25
m
=
kg,
vận tốc tại nòng súng
300
o
v
=
m/s, với các góc bắn khác nhau từ 10 ñến 90 ñộ.
Từ kết quả này ta có thể chỉ ra ñược tầm xa và ñộ cao của viên ñạn.
a) Trường hợp bỏ qua lực cản không khí, ta cho các hệ số cản
0
l
n
c
c
=
=
global m cl cn
m = 25; cl = 0.0; cn = 0.0;
t_start = 0; t_end = 100.0;
vo = 300; alpha = [10 : 10 : 90];
N = length(alpha); ymax = zeros(1,N);
for i = 1:length(alpha)
y1 = 0; y2 = vo*cosd(alpha(i));