1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo khoa học: "ứng dụng ch-ơng trình matlab trong việc giải một số bài toán tính đường mặt nước dòng chảy trong kênh hở" pot

11 585 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 188,7 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ứng dụng chương trình matlab trong việc giải một số bài toán tính đường mặt nước dòng chảy trong kênh hở Ks.. Nguyễn viết thanh Bộ môn Thuỷ lực - Thuỷ văn Khoa Công trình Trường Đại họ

Trang 1

ứng dụng chương trình matlab trong việc giải

một số bài toán tính đường mặt nước dòng chảy

trong kênh hở

Ks Nguyễn viết thanh

Bộ môn Thuỷ lực - Thuỷ văn Khoa Công trình

Trường Đại học Giao thông Vận tải

Tóm tắt: ứng dụng phần mềm để giải quyết các bμi toán kỹ thuật lμ một xu hướng tất yếu

hiện nay Matlab lμ một trong những phần mềm có khả năng ứng dụng cao vμ rất tiện ích trong

các trường đại học trên thế giới hiện nay Bμi báo nμy giới thiệu một số ứng dụng của Matlab

tính toán đường mặt nước dòng chảy trong kênh hở

Summary: Using software to solve the technical problems is a current tendency

The Matlab program is one of some software which are usually applied by many universities

in the world This article presents some applications of Matlab in the open channel flow

problems

CT 2

I Đặt vấn đề

Matlab là tổ hợp một cấu trúc chương trình với các hàm toán học đã xác định trước ứng

dụng của Matlab rất đa dạng ta có thể xây dựng các chương trình khác nhau để giải các bài

toán kỹ thuật, cụ thể đối với bài toán tính và vẽ đường mặt nước trong kênh hở ta có thể viết

chương trình theo sơ đồ khối:

Tính chiều sâu

dọc theo dòng

chảy

Nhập

dữ liệu

Tính toán các yếu tố thuỷ lực (bán kính, chu vi, diện tích)

Tính chiều dài kênh

Vẽ đường mặt nước

In kết quả

Khi tính toán đường mặt nước thường phải áp dụng phương pháp gần đúng trong đó có

phương pháp cộng trực tiếp song việc tính toán cho khối lượng tính toán lớn và độ chính xác

không cao Vì vậy sử dụng Matlab để giải các bài toán này sẽ làm cho việc tính nhanh hơn và

mức độ chính xác theo yêu cầu

II Tiếp cận vấn đề

Ta xét bài toán dòng chảy không áp trong cống tròn:

Trang 2

Mặt cắt ngang i-i

• Phương pháp 1

Từ công thức tính lưu lượng của Sêdi-Manning rút ra:

A S R n

1

Q= H23 012

3 4 H

2 2 2 3 4 H

2 2 0

R

V n A R

Q n

CT 2

Từ phương trình vi phân cơ bản của dòng chảy ổn định, thay đổi dần không áp:

3 2

2 3 4 H

2 2 0 2

3 4 H

2 2 0 2 0

gA

B Q 1

A R

Q n S

gA

B V 1 R

V n S

Fr 1

S S dx dy

ư

ư

=

ư

ư

=

ư

ư

trong đó: S0 - độ dốc đáy kênh;

n - hệ số nhám Manning;

V - vận tốc trung bình mặt cắt,

A

Q

V = ;

RH - bán kính thuỷ lực;

B - chiều rộng mặt thoáng;

A - diện tích mặt cắt ướt;

Fr - số Frút,

gy

V

Q - lưu lượng (m3/s)

Trang 3

Sai phân ta có: y

A R

Q n S gA

B Q 1 L

2 3 4 H

2 2 0

3 2

Δ

=

Sơ đồ khối:

Kết thúc

Bắt đầu

y Δ

y y

yi+1= i+Δ

i

i Hi i

2 2 i

2 i

2 i

P

A R

180 / 2 r P

) 2 sin(

2

r 360

2 r A

) y ( r 2 B

=

π

ì θ

ì

=

θ

− θ π

=

ì

=

2

R R R , 2

B B B , 2

A A

= +

= +

y

A R

Q n S

A 81 , 9

B Q 1 L

2 i 3 4 Hi

2 2 0

3 i i 2

1

ì

=

1 i i

1 i 1

Vẽ quan hệ L = f(y)

In kết quả

CT 2

Trang 4

• Phương pháp 2

Từ phương trình vi phân S0 Sf

dx

de

ư

= chuyển thành phương trình sai phân S0 Sf

L

e

ư

= Δ

Δ

f

S

e L

ư

Δ

= Δ

trong đó: e - năng lượng đơn vị mặt cắt,

2 i

2 i i

gA 2

Q y

e = + ; Sf - độ dốc thuỷ lực trung bình

Sơ đồ khối: cấu trúc chương trình Matlab về cơ bản không thay đổi ta chỉ thay đổi công thức tính độ tăng chiều dài ΔLi

Bắt đầu

y Δ

y y

yi+1= i+Δ

i

i Hi 2

2 i

i

2 i

2 i

P

A R

; ) 2 sin(

2

r 360

2 r A

180 / 2 r P

; ) y ( r 2 B

= θ

ư θ π

=

π

ì θ

ì

=

ư

ư

ì

=

2

R R R , 2

B B B , 2

A A

= +

= +

=

ư

⎛ +

ư

⎛ +

=

+ +

3 Hi

2 i

2 2 0

2 i

2 i 2 1 i

2 1

i 1 i

R A

Q n S

gA 2

Q y gA

2

Q y

L

1 i i

1 i 1

L+ =∑Δ +Δ +

Vẽ quan hệ L= f(y); In kết quả

Kết thúc

CT 2

Trang 5

• Phương pháp 3: Phương pháp tính lặp (TRAP)

[F(i) F(i 1)]

l 2

1 y

yi+1= i+ Δi+1 + +

) 1 i ( F ) i ( F

y 2

+ +

Δ

ì

=

Δ +

với

i 3 i

2 fi 0

B gA

Q 1

S S ) i ( F

ư

ư

=

Chương trình Matlab chỉ thay đổi công thức tính Δ : Li

Bắt đầu

y Δ

y y

yi+1= i+Δ

i

i Hi i

2 2 i

2 i 2 i

P

A R

180 / 2 r P

) 2 sin(

2

r 360

2 r A

) y ( r 2 B

=

π

ì

ì

=

θ

ư θ π

=

ư

ư

ì

=

i 3 i

2 fi 0

B gA

Q 1

S S ) i ( F

ư

ư

=

) 1 i ( F ) i ( F

y 2

+ +

Δ

ì

=

1 i i

1 i 1

Vẽ quan hệ L = f(y)

In kết quả

Kết thúc

CT 2

Trang 6

Ví dụ:

Một dòng chảy có lưu lượng 10 m3/s dọc theo một cống tròn có bán kính r = 1 m Nếu tại mặt cắt 1, chiều sâu dòng chảy là 0,8 m Tính chiều dài kênh từ mặt cắt 1 đến mặt cắt 2 có độ sâu 1,2 m về phía hạ lưu? Kênh làm bằng bêtông (n = 0,014) có độ dốc dọc không đổi S0 = 0,003

• Chương trình Matlab 1

% -Tinh duong mat nuoc trong kenh ho - clear all;close all;

c=pi./180;

delta_y=input('do tang chieu sau(m)\n');

r=input('ban kinh mat cat kenh(m)\n');

n=input('do nham kenh\n');

q=input('luu luong kenh m^3/s\n');

so=input('do doc day kenh\n');

y=[0.80: delta_y: 1.20];

%chieu sau dong chay thay doi tu 0.8 den 1.2m

for i=1:length(y);

al_pha=(180./pi)*acos((y(i)-r)/r);

the_ta=180-al_pha;

b(i)=2*sqrt(r.^2-(y(i)-r).^2);

%chieu rong dinh mat cat kenh

A(i)=r.^2*the_ta*c-r.^2/2.*sin(2*the_ta*c);

%dien tich mat cat ngang

P(i)=r.*2.*the_ta*c;

%chu vi uot cua mat cat kenh

rh(i)=A(i)./P(i);

%ban kinh thuy luc

delta_l(1)=0;

l(1)=0;

%cac gia tri ban dau trong day "delta_l" va "l" bang 0

for i=1:length(y)-1;

A_av(i)=(A(i)+A(i+1))./2;

b_av(i)=(b(i)+b(i+1))./2;

rh_av(i)=(rh(i)+rh(i+1))./2;

%gia tri trung binh dt,be rong dinh,ban kinh thuy luc

delta_l(i+1)=((1-(q.^2.*b_av(i))./(9.81.*A_av(i).^3))./(so-(n).^2.*(q.^2./(rh_av(i).^(4./3).*A_av(i).^2)))).*delta_y;

%xac dinh chieu dai theo y va delta_y dua tren cac gia tri trung binh l(i+1)=sum(delta_l(1:i))+delta_l(i+1);

%chieu dai kenh

end

plot(l,y);%Ve quan he l va y

grid;

xlabel('chieu dai kenh');

ylabel('chieu cao chat long');

title('dong chay trong kenh ho');

axis([0 100 2 4]);

fprintf('\n\n\nsection y, m delta_y, m delta_l, m l, m\n');

for i=1:length(y);

fprintf('%1.0f %2.2f %1.2f %4.2f %4.2f\n', i, y(i), delta_y, delta_l(i), l(i));

end

% -Ket thuc -

Trang 7

• NhËp d÷ liÖu:

do tang chieu sau (m): 0.1

ban kinh mat cat kenh (m): 1

do nham kenh: 0.014

luu luong kenh m^3/s: 10

do doc day kenh: 0.003

KÕt qu¶:

Section y(m) delta_y(m) delta_l(m) l(m)

1 0.80 0.10 0.00 0.00

2 0.90 0.10 27.09 27.09

3 1.00 0.10 25.79 52.88

4 1.10 0.10 23.98 76.86

5 1.20 0.10 21.51 98.37

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

chieu dai kenh

dong chay trong kenh ho

CT 2

• Ch−¬ng tr×nh Mablab 2:

% -Tinh duong mat nuoc trong kenh ho -

clear all;close all;

c=pi./180;

delta_y=input('do tang chieu sau(m)\n');

r=input('ban kinh mat cat kenh(m)\n');

n=input('do nham kenh\n');

Trang 8

q=input('luu luong kenh m^3/s\n');

so=input('do doc day kenh\n');

y=[0.80: delta_y: 1.20];

%chieu sau dong chay thay doi tu 0.8 den 1.2m

for i=1:length(y);

al_pha=(180./pi)*acos((y(i)-r)/r);

the_ta=180-al_pha;

b(i)=2*sqrt(r.^2-(y(i)-r).^2);

%chieu rong dinh mat cat kenh

A(i)=r.^2*the_ta*c-r.^2/2.*sin(2*the_ta*c);

%dien tich mat cat ngang

P(i)=r.*2.*the_ta*c;

%chu vi uot cua mat cat kenh

rh(i)=A(i)./P(i);

%ban kinh thuy luc

end

delta_l(1)=0;

l(1)=0;

%cac gia tri ban dau trong day "delta_l" va "l" bang 0

for i=1:length(y)-1;

A_av(i)=(A(i)+A(i+1))./2;

b_av(i)=(b(i)+b(i+1))./2;

rh_av(i)=(rh(i)+rh(i+1))./2;

%gia tri trung binh dt,be rong dinh,ban kinh thuy luc

y(i+1)=y(i)+delta_y;

delta_l(i+1)=(((y(i+1)+q.^2./(2*9.81.*A(i+1).^2))-

(y(i)+q.^2./(2*9.81*A(i).^2)))/(so-(n.^2*q.^2./(A_av(i).^2*rh_av(i).^(4./3)))));

%xac dinh chieu dai theo y va delta_y dua tren cac gia tri trung binh

CT 2

l(i+1)=sum(delta_l(1:i))+delta_l(i+1);

%chieu dai kenh

end

plot(l,y);%Ve quan he l va y

grid;

xlabel('chieu dai kenh');

ylabel('chieu cao chat long');

title('dong chay trong kenh ho');

axis([0 100 0 2]);

fprintf('\n\n\nsection y, m delta_y, m delta_l, m l, m\n');

for i=1:length(y);

fprintf('%1.0f %2.2f %1.2f %4.2f %4.2f\n', i, y(i), delta_y, delta_l(i), l(i));

end

% -Ket thuc -

• NhËp d÷ liÖu:

do tang chieu sau (m): 0.1 ban kinh mat cat kenh (m): 1

do nham kenh: 0.014 luu luong kenh m^3/s: 10

Trang 9

do doc day kenh: 0.003

KÕt qu¶:

Section y(m) delta_y(m) delta_l(m) l(m)

1 0.80 0.10 0.00 0.00

2 0.90 0.10 27.48 27.48

3 1.00 0.10 26.10 53.58

4 1.10 0.10 24.23 77.81

5 1.20 0.10 21.72 99.53

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

chieu dai kenh

dong chay trong kenh ho

CT 2

• Ch−¬ng tr×nh Matlab 3:

% -Tinh duong mat nuoc trong kenh ho -

clear all;close all;

c=pi./180;

delta_y=input('do tang chieu sau(m)\n');

r=input('ban kinh mat cat kenh(m)\n');

n=input('do nham kenh\n');

q=input('luu luong kenh m^3/s\n');

so=input('do doc day kenh\n');

y=[0.80: delta_y: 1.20];

%chieu sau dong chay thay doi tu 0.8 den 1.2m

for i=1:length(y);

al_pha=(180./pi)*acos((y(i)-r)/r);

the_ta=180-al_pha;

b(i)=2*sqrt(r.^2-(y(i)-r).^2);

%chieu rong dinh mat cat kenh

Trang 10

A(i)=r.^2*the_ta*c-r.^2/2.*sin(2*the_ta*c);

%dien tich mat cat ngang

P(i)=r.*2.*the_ta*c;

%chu vi uot cua mat cat kenh

rh(i)=A(i)./P(i);

%ban kinh thuy luc

F(i)=(so-(n).^2.*(q.^2./(rh(i).^(4./3).*A(i).^2)))./((1-(q.^2.*b(i))./(9.81.*A(i).^3)));

end

delta_l(1)=0;

l(1)=0;

%cac gia tri ban dau trong day "delta_l" va "l" bang 0

for i=1:length(y)-1;

delta_l(i+1)=2*delta_y./(F(i)+F(i+1));

%xac dinh chieu dai theo y va delta_y

l(i+1)=sum(delta_l(1:i))+delta_l(i+1);

%chieu dai kenh

end

plot(l,y);%Ve quan he l va y

grid;

xlabel('chieu dai kenh');

ylabel('chieu cao chat long');

title('dong chay trong kenh ho');

axis([0 100 0 2]);

fprintf('\n\n\nsection y, m delta_y, m delta_l, m l, m\n');

for i=1:length(y);

fprintf('%1.0f %2.2f %1.2f %4.2f %4.2f\n', i, y(i), delta_y, delta_l(i), l(i));

CT 2

end

% -Ket thuc -

NhËp d÷ liÖu:

do tang chieu sau (m): 0.1 ban kinh mat cat kenh (m): 1

do nham kenh: 0.014 luu luong kenh m^3/s: 10

do doc day kenh: 0.003

Section y (m) delta_y (m) delta_l (m) l (m)

1 0.80 0.10 0.00 0.00

2 0.90 0.10 27.11 27.11

3 1.00 0.10 25.79 52.90

4 1.10 0.10 23.93 76.83

5 1.20 0.10 21.38 98.21

Trang 11

0 10 20 30 40 50 60 70 80 90 100 0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

chieu dai kenh

dong chay trong kenh ho

Phương pháp 1 và 3 cho kết quả khá giống nhau; phương pháp 1 cho kết quả l = 98,37 m,

phương pháp 3 cho kết quả l = 98,21 m

Như vậy, cùng một cấu trúc chung của chương trình Matlab tính toán đường mặt nước có

thể được cải biến đưa vào nhiều phương pháp giải khác nhau để so sánh, đánh giá và chọn 1

phương pháp thích hợp

Ví dụ trên ta thấy được sự lợi ích của chương trình máy tính, nó có thể giúp ta giải quyết

hàng loạt bài toán tương tự bằng cách thay đổi dữ kiện đầu vào và thay đổi công thức tính phù

hợp với bài toán, ưu điểm của việc giải bài toán trên máy tính là cho kết quả khá chi tiết và hình

ảnh trực quan sinh động qua đó giúp cho người học tiếp cận dần với phương pháp học mới

Tài liệu tham khảo

[1] Irving H Shames Mechanics of Fluid NXB Mc Graw – Hill, 2003

[2] Young W Hwon & Hyochoong Bang The Finite Element Method Using Matlab, 2000

[3] Phùng Văn Khương, Trần Đình Nghiên (chủ biên), Bùi Thị Vinh Thuỷ lực NXB Giao thông

Vận tải, 1994Ă

Ngày đăng: 06/08/2014, 13:21

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối: - Báo cáo khoa học: "ứng dụng ch-ơng trình matlab trong việc giải một số bài toán tính đường mặt nước dòng chảy trong kênh hở" pot
Sơ đồ kh ối: (Trang 3)
Sơ đồ khối: cấu trúc chương trình Matlab về cơ bản không thay đổi ta chỉ thay đổi công thức  tính độ tăng chiều dài  Δ L i - Báo cáo khoa học: "ứng dụng ch-ơng trình matlab trong việc giải một số bài toán tính đường mặt nước dòng chảy trong kênh hở" pot
Sơ đồ kh ối: cấu trúc chương trình Matlab về cơ bản không thay đổi ta chỉ thay đổi công thức tính độ tăng chiều dài Δ L i (Trang 4)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w