Đang tải... (xem toàn văn)
Ở trong bài tập lớn này ta cần sử dụng các giản đồ số để xác định được Tx,ylà nhiệt độ trong miền tính toán, đồng thời giải quyết các vấn đồ được đặt ra ởmục 2.. để có thể hiểu rõ về c
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHĐẠI HỌC BÁCH KHOA
KHOA KỸ THUẬT GIAO THÔNG
BÀI TẬP LỚN MÔN HỌC
PHƯƠNG PHÁP SỐ - ĐỘNG LỰC HỌC LƯU CHẤTGiảng viên hướng dẫn: Lê Tuấn Phương Nam
Lớp: P01
Sinh viên thực hiện:
Sinh viên thực hiệnMã số sinh viên
Nguyễn Viết Minh Quân2010558Nguyễn Thị Khánh Ly2010400Nguyễn Bá Hoàng Nhân2012521
Thành phố Hồ Chí Minh, tháng 4 năm 2024
Trang 21.2.1Ảnh hưởng của kích thước lưới 4
1.2.2Ảnh hưởng của giản đồ số cho số hạng đối lưu 4
1.2.3Ảnh hưởng của các thông số Re và Pr trong số hạng khuếch tán 4
2CƠ SỞ LÝ THUYẾT 5
2.1 Phương pháp số 5
2.2 Rời rạc hóa phương trình vi phân thành hệ phương trình đại số 6
2.3 Công thức tính thông lượng “fluxes” cho một cell tại các biên và bêntrong miền tính toán 6
2.4 Sơ đồ giải thuật để viết chương trình (code): 12
2.5 Lựa chọn phương pháp giải quyết phù hợp 13
3KẾT QUẢ TÍNH TOÁN VÀ THẢO LUẬN 14
Trang 3PHỤ LỤC HÌNH ẢNH
Hình 1: Normal cells 7
Hình 2: Bottom-Left corner boundary 7
Hình 3: Left wall boundary 8
Hình 4: Top-Left corner boundary 9
Hình 5: Top-Right corner boundary 9
Hình 6: Right wall boundary 10
Hình 7: Bottom-Right corner boundary 10
Hình 8: Bottom wall boundary 11
Hình 9: Top wall boundary 11
Hình 10: Sơ đồ giải thuật 12
Hình 11: Miền tính toán 13
Hình 12: Contour tại mức lưới 32cells 15
Hình 13: Contour tại mức lưới 800cells 15
Hình 14: Contour tại mức lưới 3200cells 15
Hình 15: Contour tại mức lưới 12800cells 15
Hình 16: So sánh giữa hai giản đồ upwind và central 19
Hình 17: Contour nhiệt độ tại Pr =1.5 Re = 20 20
Hình 18: Contour nhiệt độ tại Pr =1 Re = 35 20
Trang 4PHỤ LỤC ĐỒ THỊ
Đồ thị 1: Khảo sát hội tụ lưới 16Đồ thị 2: Đồ thị nhiệt độ tại y = 1 ở các hệ số khác nhau 21Đồ thị 3: Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau 21
Trang 51 VẤN ĐỀ
1.1 Đề bài
Xem xét vấn đồ đối lưu – khuếch tán hai chiều ổn định của nhiệt độ:
Trong đó Pr là hằng số Prandtl và Re là số Reynolds. Điều kiện biên: T(0,y) = 0; T(1,y) = 1; ;
Điều kiện biên theo phương ngang như sau:
là thành phần vận tốc theo phương x
là thành phần vận tốc theo phương y
Trang 6 Ở trong bài tập lớn này ta cần sử dụng các giản đồ số để xác định được T(x,y)
là nhiệt độ trong miền tính toán, đồng thời giải quyết các vấn đồ được đặt ra ởmục 2 để có thể hiểu rõ về các giản đồ, phương pháp giản đồ số nào phù hợphơn,…
1.2 Giải quyết vấn đề
1.2.1 Ảnh hưởng của kích thước lưới
Dùng giản đồ số “upwind” bậc nhất cho các số hạng đối lưu, tự do thiết kế 03 loại lưới
(thô, vừa, và mịn) để xét độ hội tụ lưới, viết chương trình (code) để tìm sự phân bốnhiệt độ T(x, y) trong miền tính toán và nhiệt độ tại các đường x = 0.5 và y = 1 Trình
bày hình ảnh, vẽ đồ thị và nhận xét kết quả cho 03 loại lưới trên.
1.2.2 Ảnh hưởng của giản đồ số cho số hạng đối lưu
Dùng giản đồ số trung tâm “central” cho các số hạng đối lưu để tính toán kết quả, rồiso sánh với kết quả khi dùng giản đồ số “upwind” ở câu 1 cho cùng 1 lưới.
1.2.3 Ảnh hưởng của các thông số Re và Pr trong số hạng khuếch tán.
Thay đổi các hằng số như sau:a) Pr = 1 và Re = 35
b) Pr = 1,5 và Re = 20
Khi đó dùng giản đô số “upwind” cho các số hạng đối lưu và lưới hội tụ xác định câu 1
để tìm phân bố T(x, y) Nhận xét kết quả đạt được ở câu 3 và so sánh với kết quả ở câu
1 cùng các điều kiện (lưới và giản đồ số).
Trang 72 CƠ SỞ LÝ THUYẾT
2.1 Phương pháp số
Ta có ba phương pháp chính để giải một bài toán trong lưu chất
Sai phân hữu hạn
FDM - Dễ lập trình.- Có thể giải trên các máy tínhsong song.
- Tốt nhất trên lưới hình chữnhật.
- Khó sử dụng với nhữngmô hình có hình phứctạp.
- Chỉ dùng cho lưới cấutrúc.
Phần tử hữu hạn
FEM - Phương pháp liên tục.- Các hàm cơ bản được sử dụngđể tính gần đúng nghiệm.- Cho phép tính toán ở nhiều
loại lưới khác nhau.
- Dễ sử lý những mô hình cóbiên dạng hình học cong.
- Khó xác định bảo toàncục bộ.
- Khó rời rạc một bàitoán đối lưu
Thể tích hữu hạn
FVM - Dễ lập trình- Phương pháp rời rạc.
- Bảo toàn cục bộ dẫn đếnthông lượng trong mỗi thể tíchkiểm soát được bảo toàn.- Cho phép tính toán ở nhiều
dạng lưới khác nhau.
- Để đạt được high-orderthì cần phải sử dụngcác loại lưới cấu trúc,điều này dễ làm ảnhhưởng đến hình họccủa mô hình.
Yêu cầu của để bài là:
- Giải quyết là bài toán về truyền nhiệt trong lưu chất có thành phần đối lưu và
Trang 8Vậy nên nhóm quyết định sử dụng phương pháp thể tích hữu hạn (FVM) để giải quyếtbài toán.
2.2 Rời rạc hóa phương trình vi phân thành hệ phương trình đại số
101\*MERGEFORMAT (.)
Trang 9Hình 1: Normal cells
02\* MERGEFORMAT (.)
Phần tử ở biên góc trái tại x =0
Với điều kiện biên
Phần tử 2
Trang 10303\*MERGEFORMAT (.)
Phần tử 3:
Hình 3: Left wall boundary
04\* MERGEFORMAT (.)
Phần tử 4
Trang 11Hình 4: Top-Left corner boundary
505\*MERGEFORMAT (.)
Với biên phải tại x =1
Phần tử 5
Hình 5: Top-Right corner boundary
Trang 12606\*MERGEFORMAT (.)
Trang 13808\*MERGEFORMAT (.)
Phần tử phía dưới y = 0 – Phần tử 8
Hình 8: Bottom wall boundary
909\* MERGEFORMAT (.)
Phần tử phía trên tại y = 1 – Phần tử 9
Trang 14Hình 9: Top wall boundary
010\* MERGEFORMAT (.)
Trang 152.4 Sơ đồ giải thuật để viết chương trình (code):
Hình 10: Sơ đồ giải thuật
Miền tính toán (Domain) [1x2] được chia lưới dưới dạng hình chữ nhật với a ô lướitheo chiều x và b ô lưới theo chiều y Các ô lưới (cell) được đánh số thứ tự từ 1 đến N= a.b như hình bên dưới
Trang 1612345…j … a-2a-1a
32a+12a+22a+32a+42a+5………2a+(a-2) 2a+(a-1)3a
43a+13a+23a+33a+43a+5………3a+(a-2) 3a+(a-1)4a
b-1(b-2)a+1 (b-2)a+2 (b-2)a+3 (b-2)a+4 (b-2)a+5………(b-2)a+a-2 (b-2)a+a-1 (b-2)a+a
b(b-1)a+1 (b-1)a+2 (b-1)a+3 (b-1)a+4 (b-1)a+5………(b-1)a+a-2 (b-1)a+a-1abHình 11: Miền tính toán
Vị trí của một ô lưới được xác định theo quy tắc như một phần từ trong ma trận, tức ôlưới ở hàng i và cột i có vị trí (i,j) và có số thứ tự là n = (i – 1).a – j
Ma trận hệ số A và B chứa các hệ số của phương trình giải cho ô lưới thứ n sẽ có kíchthước NxN và 1xN.
Hàng thứ n của mà ma trận A và B là hệ số của phương trình khuếch tán – đối lưu viếtcho ô lưới T(i,j) (với n = (i -1).a+j ).
2.5 Lựa chọn phương pháp giải quyết phù hợp
Để thực hiện giải các nghiệm của hệ phương trình : A.x = B, ta có nhiều phương phápgiải quyết Trong Matlab, để giải hệ phương trình tuyến tính dạng A⋅x = B, ta có thể sử
dụng hàm mldivide hoặc mrdivide, hoặc sử dụng các hàm khác như linsolve hoặc cáchàm giải hệ phương trình tuyến tính cụ thể như inv, lu, qr, chol
Cơ sở toán học phổ biến cho việc giải hệ phương trình này là sử dụng các phươngpháp đại số tuyến tính như:
- Phương pháp ngịch đảo ma trận (Matrix inversion method):
x= A−1.B
Tuy nhiên, phương pháp này không phổ biến trong thực tế vì nó yêu cầu tính toán matrận nghịch đảo, đòi hỏi nhiều tài nguyên tính toán của máy tính và không hiệu quảcho các ma trận lớn.
Trang 17- Phương pháp phân rã LU (LU decomposition): Phương pháp này phân rã ma
trận A thành tích của một ma trận tích LU, trong đó L là một ma trận tam giácdưới và U là một ma trận tam giác trên Sau đó, hệ phương trình được giải bằngviệc giải hai hệ phương trình tam giác:
{Ly=BUx= y
Trong đó, y và x là các vectơ không gian tương ứng.
- Phương pháp sử dụng Decomposition QR: Tương tự như phân rã LU, nhưng
phân rã A thành tích của một ma trận trực giao Q và một ma trận tam giác trênR Cách tiếp cận này thích hợp cho các ma trận dài và hẹp.
- Phương pháp sử dụng Cholesky Decomposition: Được sử dụng cho các ma trận
đối xứng và xác định dương.
Các phương pháp này tùy thuộc vào tính chất cụ thể của ma trận A và có thể cải thiệnhiệu suất tính toán Trong mã nguồn của MATLAB sẽ thực hiện các phương pháp nàymột cách tối ưu để cung cấp kết quả chính xác và hiệu quả khi giải hệ A.x = B
3 KẾT QUẢ TÍNH TOÁN VÀ THẢO LUẬN
3.1 Câu 1
Tiến hành khảo khát độc lập lưới tại các mức lưới có số lượng ô lưới (cell) khácnhau:
Trang 18Hình 12: Contour tại mức lưới 32cellsHình 13: Contour tại mức lưới 800cells
Hình 14: Contour tại mức lưới 3200cellsHình 15: Contour tại mức lưới 12800cells
Khảo sát giá trị nhiệt độ tại vị trí (x,y) = (0.5,1), kết quả cho ở đồ thị:
Trang 19Khảo sát hội tụ lưới
Đồ thị 1: Khảo sát hội tụ lưới
Nhận xét: Về mặt lý thuyết, lưới có độ mịn càng cào thì độ chính xác càng cao
tuy nhiên thời gian tính toán cũng càng lớn và bộ nhớ xử lý của máy tính càngcần nhiều hơn Từ quá trình khảo sát độ hội tụ lưới ta thấy, với mức lưới khoảngtrên 4000 cells Kết quả cho ra độ sai lệch không đáng kể (đạt hội tụ lười) Dovậy để tiết kiện thời gian và tài nguyên máy tính nhưng không mất tính chínhxác, ta lựa chọn kích cỡ lưới là 7200 cells ( 60 ô lưới trên trục x và 120 ô lướitrên trục y).
Dưới đây là kết quả tham khảo của lưới 7200 cells sử dụng giản đồ CentralScheme:
0.82890.83420.83980.8457…0.96850.97750.98650.99550.83430.83970.84530.8512…0.97010.97860.98710.99570.83790.84340.84900.8549…0.97110.97930.98760.99590.83980.84520.85090.8567…0.97170.97970.98780.9959
Trang 203.2 Câu 2
Giản đồ Upwind và Central là hai phương pháp phổ biến được sử dụng trongphân tích phần tử hữu hạn (CFD) cho các bài toán 2D So sánh giữa hai giản đồnày:
Giản đồ Upwind:Ưu điểm:
Hiệu quả cho các bài toán có dòng chảy mạnh và có tính chất 'dòng một chiều'(one-directional flow), trong đó dòng chảy chủ yếu di chuyển theo một hướng.Giảm hiện tượng dao động và sự phân tán nếu dòng chảy di chuyển theo mộthướng cụ thể.
Nhược điểm:
Không hiệu quả khi xử lý các hiện tượng dòng chảy phức tạp hoặc đa chiều.Dễ gây ra hiện tượng mất cân bằng nếu không được thực hiện cẩn thận.Giản đồ Central:
Trang 21thuộc vào tính chất cụ thể của bài toán và sự kỹ năng của người mô phỏng đểcấu hình và sử dụng chúng một cách hiệu quả.
Khảo sát giá trị nhiệt độ của cells 1 (giá trị T(1,1)) đối với từng kích thước lưới ở 2giản đồ Upwind-Scheme và Central-Scheme:
Upwind – SchemeCentral – Scheme
UpWind-Scheme Central-Scheme
320.20850.176615.31%2000.21070.20104.60%4500.15160.14554.05%8000.11570.11183.34%32000.05800.05701.86%72000.03860.03811.27%128000.02880.02860.96%T(1,1); Pr = 1, Re = 20 Delta (%)Cells
Trang 23Hình 17: Contour nhiệt độ tại Pr =1.5 Re = 20
Trang 24Với trường hợp tăng hệ số Reynolds, do hiệu ứng thủy động lực mạnh hơn ở số Reynolds cao hơn, sự khuếch tán theo hướng ngang bị giảm đi và khả năng truyền nhiệt của lưu chất giảm đi đáng kể.
Đồ thị nhiệt độ tại y = 1 ở các hệ số khác nhau
Pr=1 Re=20Pr= 1.5 Re=20Pr=1 Re=35
Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau
Pr=1 Re=20Pr= 1.5 Re=20Pr=1 Re=35y
Đồ thị 3: Đồ thị nhiệt độ tại x=0.5 ở các hệ số khác nhau
Trang 25Có thể thấy được rằng sự ảnh hưởng đến khả năng truyền nhiệt của hệ sốReynolds và hệ số Prandtl lên bài toán gần như là giống nhau Chúng đều làmgiàm khả năng truyền nhiệt.
Trang 26TÀI LIỆU THAM KHẢO
Trang 27PHỤ LỤC
Code vẽ đồ thị phân bố vận tốc:
[X, Y] = meshgrid(0:(1/20):1, 0:(2/20):2);u = -sin(pi*X).*cos(pi*Y);
v = cos(pi*X).*sin(pi*Y);
quiver(X, Y, u, v);xlabel('x');
title('Vector V');axis equal;
contourf(X, Y, sqrt(u.^2 + v.^2)); colorbar;
title('Contour velocity');axis equal;
Trang 28Output:
Code giản đồ số Central Scheme (Matlab):
% BTL 1% Input
dy = 2/b;
N = a*b; % Number of cells
fprintf('Total cell: %d\n', N);
Trang 29% Domain matrix
A = zeros(N,N);B = zeros(N,1);
Domain = sym('d',[b,a]);
% Matrix coorndinat
X = dx/2;Y = dy/2;
% West face
fluxw = 0-(1/(Pr*Re))*dy*((Domain(1,1)-0)/(0.5*dx));
% Y axis
Trang 30fluxn = v*dx*Domain(1,1);
% South face
v = cos(pi*X(1))*sin(pi*(Y(b)-dy/2)); fluxs =
p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,
[Domain(1,1),Domain(1,2),Domain(2,1)]);Coeff_Domain = double(Coeff_Domain);A(1,1) = Coeff_Domain(3);
A(1,2) = Coeff_Domain(2);A(1,a+1) = Coeff_Domain(1);
% Top-Right corner boundary (1,a)% X axis
% Est face
u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(b));
fluxe = Domain(1,a));
% West face
u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(b)); fluxw =
u*dy*0.5*(Domain(1,a-1)+Domain(1,a))-(1/(Pr*Re))*(dy/dx)*(Domain(1,a)-Domain(1,a-1));
Trang 31
% Y axis% North face
v = cos(pi*X(a))*sin(pi*(Y(b)+dy/2)); fluxn = v*dx*Domain(1,a);
% South face
v = cos(pi*X(1))*sin(pi*(Y(b)-dy/2)); fluxs =
p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(1,a-1),Domain(1,a),Domain(2,a)]);
Coeff_Domain = double(Coeff_Domain); A(a,a-1) = Coeff_Domain(4);
A(a,a) = Coeff_Domain(3); A(a,2*a) = Coeff_Domain(2); B(a) = - Coeff_Domain(1);
% Bottom-Left corner boundary b,1% X axis
% Est face
u = -sin(pi*(X(1)+dx/2))*cos(pi*Y(1)); fluxe =
u*dy*0.5*(Domain(b,2)+Domain(b,1))-(1/(Pr*Re))*(dy/dx)*(Domain(b,2)-Domain(b,1));
Trang 32fluxw = 0-(1/(Pr*Re))*dy*(Domain(b,1)-0)/(0.5*dx);
% Y axis% South face
v = cos(pi*X(1))*sin(pi*(Y(1)-dy/2)); fluxs = v*dx*Domain(b,1);
% North face
v = cos(pi*X(1))*sin(pi*(Y(1)+dy/2)); fluxn =
p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(b-1,1),Domain(b,1),Domain(b,2)]);
Coeff_Domain = double(Coeff_Domain);
A((b-1)*a+1,(b-2)*a+1) = Coeff_Domain(3);A((b-1)*a+1,(b-1)*a+1) = Coeff_Domain(2);A((b-1)*a+1,(b-1)*a+2) = Coeff_Domain(1);
% Bottom-Right corner boundary (b,a)% X axis
% Est face
u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(1));
fluxe = Domain(b,a));
Trang 33
% West face
u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(1)); fluxw =
% Y axis% South face
v = cos(pi*X(a))*sin(pi*(Y(1)-dy/2)); fluxs = v*dx*Domain(b,a);
% North face
v = cos(pi*X(a))*sin(pi*(Y(1)+dy/2)); fluxn =
p = fluxn - fluxs + fluxe - fluxw;
Coeff_Domain = 1),Domain(b,a)]);
coeffs(p,[Domain(b-1,a),Domain(b,a-Coeff_Domain = double(coeffs(p,[Domain(b-1,a),Domain(b,a-Coeff_Domain); A(a*b,(b-2)*a+a) = Coeff_Domain(4); A(a*b,(b-1)*a+a-1) = Coeff_Domain(3); A(a*b,a*b) = Coeff_Domain(2);
B(a*b) = - Coeff_Domain(1);
% Left Boundary (i,1)for i = 2 : (b-1)
Trang 34% Est face
u = -sin(pi*(X(1)+dx/2))*cos(pi*Y(b-i+1)); fluxe =
fluxw = 0-(1/(Pr*Re))*(dy/(0.5*dx))*(Domain(i,1)-0);
v = cos(pi*X(1))*sin(pi*(Y(b-i+1)-dy/2)); fluxs =
p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(i-
1,1),Domain(i,1),Domain(i,2),Domain(i+1,1)]);Coeff_Domain = double(Coeff_Domain);
A((i-1)*a+1,(i-2)*a+1) = Coeff_Domain(4);A((i-1)*a+1,(i-1)*a+1) = Coeff_Domain(3);A((i-1)*a+1,(i-1)*a+2) = Coeff_Domain(2); A((i-1)*a+1,i*a+1) = Coeff_Domain(1);
end
Trang 35% Right Boundary (i,a)for i = 2 : (b-1)
% X axis% Est face
u = -sin(pi*(X(a)+dx/2))*cos(pi*Y(b-i+1));
fluxe = Domain(i,a));
% West face
u = -sin(pi*(X(a)-dx/2))*cos(pi*Y(b-i+1)); fluxw =
% Y axis% North face
v = cos(pi*X(a))*sin(pi*(Y(b-i+1)+dy/2)); fluxn =
% South face
v = cos(pi*X(a))*sin(pi*(Y(b-i+1)-dy/2)); fluxs =
Trang 36p = fluxn - fluxs + fluxe - fluxw;
Coeff_Domain = 1),Domain(i,a),Domain(i+1,a)]);
coeffs(p,[Domain(i-1,a),Domain(i,a-Coeff_Domain = double(coeffs(p,[Domain(i-1,a),Domain(i,a-Coeff_Domain);
A((i-1)*a+a,(i-2)*a+a) = Coeff_Domain(5); A((i-1)*a+a,(i-1)*a+a-1) = Coeff_Domain(4); A((i-1)*a+a,(i-1)*a+a) = Coeff_Domain(3); A((i-1)*a+a,i*a+a) = Coeff_Domain(2);
B((i-1)*a+a)= - Coeff_Domain(1);
% Top Boundary (1,j)for j = 2 : (a-1)
% X axis% Est face
u = -sin(pi*(X(j)+dx/2))*cos(pi*Y(b)); fluxe =
% West face
u = -sin(pi*(X(j)-dx/2))*cos(pi*Y(b)); fluxw =
u*dy*0.5*(Domain(1,j-1)+Domain(1,j))-(1/(Pr*Re))*dy*(Domain(1,j)-Domain(1,j-1))/dx;
Trang 37% Y axis% North face
v = cos(pi*X(j))*sin(pi*(Y(b)+dy/2)); fluxn = v*dx*Domain(1,j);
% South face
v = cos(pi*X(j))*sin(pi*(Y(b)-dy/2)); fluxs =
p = fluxn - fluxs + fluxe - fluxw;Coeff_Domain = coeffs(p,[Domain(1,j-
1),Domain(1,j),Domain(1,j+1),Domain(2,j)]);Coeff_Domain = double(Coeff_Domain);
A(j,j-1) = Coeff_Domain(4); A(j,j) = Coeff_Domain(3); A(j,j+1) = Coeff_Domain(2); A(j,a+j) = Coeff_Domain(1);
% Bottom Boundary (b,j)for j = 2 : (a-1)
% X axis% Est face
u = -sin(pi*(X(j)+dx/2))*cos(pi*Y(1));