Nghiên cứu sóng tràn qua đê biển có tường đỉnh ở bắc bộ

125 198 0
Nghiên cứu sóng tràn qua đê biển có tường đỉnh ở bắc bộ

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP & PTNT TRƯỜNG ĐẠI HỌC THỦY LỢI NGUYỄN VĂN THÌN NGHIÊN CỨU SÓNG TRÀN QUA ĐÊ BIỂN CÓ TƯỜNG ĐỈNH Ở BẮC BỘ LUẬN ÁN TIẾN SĨ KỸ THUẬT HÀ NỘI, NĂM 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP & PTNT TRƯỜNG ĐẠI HỌC THỦY LỢI NGUYỄN VĂN THÌN NGHIÊN CỨU SĨNG TRÀN QUA ĐÊ BIỂN CĨ TƯỜNG ĐỈNH Ở BẮC BỘ Chun ngành: Xây dựng cơng trình thủy Mã số: 62-58-40-01 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Bá Quỳ GS.TS Ngơ Trí Viềng HÀ NỘI, NĂM 2014 LỜI CAM ĐOAN Tác giả xin cam đoan cơng trình nghiên cứu thân tác giả Các kết nghiên cứu kết luận luận án trung thực, không chép từ nguồn hình thức Việc tham khảo nguồn tài liệu (nếu có) thực trích dẫn ghi nguồn tài liệu tham khảo theo quy định Tác giả luận án Nguyễn Văn Thìn i LỜI CẢM ƠN Có kết nghiên cứu hơm ngồi cống gắng thân, tác giả xin bày tỏ trân trọng, lòng biết ơn sâu sắc đến: GS.TS Ngơ Trí Viềng, PGS.TS Nguyễn Bá Quỳ, hướng dẫn tận tình thời gian tác giả thực luận án; Tác giả xin trân trọng cảm ơn GS.TS Nguyễn Quang Kim – Hiệu trưởng nhà trường động viên tạo điều kiện để tác giả hoàn thành luận án; Tác giả xin chân thành cảm ơn PGS.TS Thiều Quang Tuấn, PGS.TS Trịnh Minh Thụ, PGS.TS Nguyễn Trung Việt người thầy, người anh tận tình hướng dẫn, giúp đỡ, đóng góp ý kiến quý báu để tác giả hoàn thiện luận án; Tác giả xin bày tỏ lòng biết ơn sâu sắc đến các nhà khoa học trường có góp ý chân tình, thẳng thắn luận án tác giả.Tác giả xin trân trọng cảm ơn GS.TS Nguyễn Chiến nhà Khoa học Hội đồng đánh giá LATS cấp sở; Tác giả xin bày tỏ lòng biết ơn đến GS Oumaracie, Trường ĐH TU Braushweigh, CHLB Đức; Các GS trường Đại học Kyushu, Nhật giúp đỡ tác giả thời gian tác giả thực tập trao đổi nghiên cứu nước ngồi; Tác giả xin bày tỏ lịng biết ơn đến Quỹ phát triển khoa học công nghệ quốc gia (NAFOSTED); Chương trình NCKHCN phục vụ phịng tránh thiên tai bảo vệ môi trường sử dụng hợp lý tài nguyên thiên nhiên (KC08) Bộ Khoa học Công nghệ đầu tư kinh phí cho tác giả thực thí nghiệm luận án; Tác giả xin bày tỏ lịng biết ơn đến Phịng thí nghiệm trọng điểm quốc gia – Viện KHTL Việt Nam; Phịng thí nghiệm thủy lực tổng hợp, Trường Đại học Thủy lợi tạo điều kiện sở vật chất thời gian tác giả thực thí nghiệm; Tác giả xin cảm ơn Vụ Giáo dục Đại học - Bộ Giáo dục & Đào tạo, Bộ Nông nghiệp PTNT tạo điều kiện cho tác giả trình thực luận án; Tác giả xin bày tỏ lòng biết ơn trân trọng đến thầy Ban Giám hiệu nhà trường, tập thể giảng viên khoa Cơng trình, tập thể giảng viên khoa Kỹ thuật biển, phịng Khoa học cơng nghệ thầy giáo, giáo tồn trường giúp ln đỡ, động viên tác giả vượt qua khó khăn để thực luận án này; Tác giả xin bày tỏ lòng biết ơn đến cộng khoa học: TS Lê Bảo Trung; Ths Nguyễn Quang Lương; Ths Bùi Doãn Quyết; ThS Nguyễn Văn Ngọc; Tác giả xin bày tỏ lòng biết ơn đến đồng nghiệp tác giả Phòng Đào tạo ĐH&SĐH; Bộ mơn Thủy cơng chịu khó gánh vác cơng việc để tác giả có thời gian thực luận án; Tác giả xin bày tỏ lòng biết ơn sâu sắc đến GS.TS NGND Phạm Ngọc Ngọc Quý toàn thể thầy Hội đồng đánh giá LATS cấp trường không quản ngại vất vã đọc có đánh giá xác đáng luận án tác giả; Và điều khơng qun, tác giả xin bày tỏ lịng biết ơn tới gia đình ln sát cánh, động viên tác giả vượt qua khó khăn thực luận án luận án ii MỤC LỤC DANH MỤC CÁC HÌNH ẢNH vi DANH MỤC CÁC BẢNG BIỂU viii DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ix MỞ ĐẦU 1 Tính cấp thiết đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Cách tiếp cận phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn Cấu trúc luận án CHƯƠNG TỔNG QUAN NGHIÊN CỨU SÓNG TRÀN QUA ĐÊ BIỂN CÓ TƯỜNG ĐỈNH THẤP Tổng quan nghiên cứu sóng tràn qua đê biển .4 Tổng quan nghiên cứu sóng tràn giới Tổng quan nghiên cứu sóng tràn Việt Nam .5 Nguyên nhân, chế phá hoại đê biển giải pháp giảm thiểu Nguyên nhân hư hỏng đê biển Cơ chế phá hoại đê biển sóng tràn Giải pháp giảm thiểu sóng tràn cho đê biển Bắc 10 Tổng quan đê biển có tường đỉnh thấp Miền Bắc 11 Khái quát chung 11 Đê biển có tường đỉnh thấp Hà Tĩnh 12 Đê biển có tường đỉnh thấp Thanh Hóa 14 Đê biển có tường đỉnh thấp Nam Định 15 Đê biển có tường đỉnh thấp Hải Phòng 16 Tổng quan nghiên cứu sóng tràn qua đê biển có tường đỉnh thấp 17 Ở giới 17 Ở Việt Nam 19 Kết luận chương 25 iii CHƯƠNG MƠ HÌNH VẬT LÝ MÁNG SÓNG NGHIÊN CỨU ẢNH HƯỞNG CỦA TƯỜNG ĐỈNH THẤP ĐẾN SÓNG TRÀN QUA ĐÊ BIỂN 27 Mục đích nghiên cứu 27 Lý thuyết tương tự .27 Tương tự hình học 27 Tương tự động học .28 Tương tự động lực học 28 Mô tả thí nghiệm sóng .28 Máng sóng 28 Mơ hình đê tham số thí nghiệm .30 Chương trình thí nghiệm 32 Trình tự thí nghiệm tham số đo đạc .33 Phân tích kết thí nghiệm 35 Ảnh hưởng tường đỉnh đến lưu lượng sóng tràn trung bình .35 Ảnh hưởng tường đến chiều cao sóng bắn 39 Kết luận chương 41 CHƯƠNG TƯƠNG TÁC SĨNG – TƯỜNG VÀ DỊNG CHẢY SĨNG TRÀN QUA ĐÊ BIỂN CÓ TƯỜNG ĐỈNH THẤP 42 Đặt vấn đề 42 Mơ hình NLSW (Tuấn Oumeraci, 2010) 45 Hệ phương trình 45 Sóng tràn sóng ngẫu nhiên 46 Mơ hình RANS-VOF (COBRAS-UC, máng sóng số) 51 Giới thiệu máng sóng số 51 Hệ phương trình 53 Sóng tràn sóng ngẫu nhiên 54 Sóng tràn sóng 56 Kết luận chương 71 CHƯƠNG ÁP DỤNG KẾT QUẢ NGHIÊN CỨU TÍNH TỐN SĨNG TRÀN QUA ĐÊ BIỂN GIAO THỦY, TỈNH NAM ĐỊNH 73 Giới thiệu cơng trình 73 Tính tốn sóng tràn 74 iv Các công thức 74 Thiết lập bảng tính tốn sóng tràn 74 Xây dựng phần mềm tính tốn sóng tràn 78 Kết tính tốn sóng tràn đề xuất mặt cắt ngang đê biển 80 Kết tính sóng tràn qua đê biển Giao Thủy, tỉnh Nam Định .80 Đề xuất mặt cắt ngang đê biển 82 Phạm vi áp dụng 82 Kết luận chương 84 KẾT LUẬN VÀ KIẾN NGHỊ .85 I Kết đạt luận án 85 II Những đóng góp luận án 87 III Tồn hướng phát triển 88 IV Kiến nghị .88 DANH MỤC CƠNG TRÌNH ĐÃ CƠNG BỐ 89 TÀI LIỆU THAM KHẢO 90 PHỤ LỤC 98 v DANH MỤC CÁC HÌNH ẢNH Hình 1.1 Đê biển vịnh Isahaya, Nagasaki, Nhật Hình 1.2 Sóng tràn gây phá hoại đê biển Nam Định [1] Hình 1.3 Sóng tràn qua đê biển Nam Định bão số 7/2005[1] Hình 1.4 Thí nghiệm CHLB Đức Hình 1.5 Thí nghiệm Viện KHTL Việt Nam Hình 1.6 Đê biển Hậu Lộc, Thanh Hóa sau bão số 7/2005 10 Hình 1.7 Cây cố hư hỏng đê biển [1] 10 Hình 1.8 Cơng trình giảm sóng trước đê Giao Thủy, Nam Định (3/2014) 11 Hình 1.9 Một số hình dạng tường đỉnh thấp Việt Nam 12 Hình 1.10 Đê biển Hội Thống, Nghi Xuân, Hà Tĩnh [3] 14 Hình 1.11 Đê biển Phúc Long Nhượng, Cẩm Xuyên, Hà Tĩnh [3] 14 Hình 1.12 Đê biển Hậu Lộc, Thanh Hóa [7] 15 Hình 1.13 Đê biển Giao Thủy, Nam Định 16 Hình 1.14 Đê biển Quất Lâm, Nam Định 16 Hình 1.15 Đê biển Cát Hải, Hải Phòng 17 Hình 1.16 Xác định độ dốc mái đê quy đổi có tường đỉnh thấp [9] 18 Hình 1.17 Ảnh hưởng tường đỉnh thấp đê tham số chi phối [56] 20 Hình 1.18 Thí nghiệm sóng tràn qua đê biển nghiên cứu [56] 20 Hình 1.19 Chiết giảm sóng tràn tường đỉnh thấp: sóng vỡ [56] 21 Hình 1.20 Chiết giảm sóng tràn tường đỉnh thấp: sóng khơng vỡ [56] 21 Hình 1.21 Sơ đồ thí nghiệm sóng tràn qua đê biển có tường đỉnh thấp [58][10] 22 Hình 1.22 Các tham số đê tường tính tốn sóng tràn [58][10] 23 Hình 1.23 Hệ số ảnh hưởng chiều cao tường w [58][10] .24 Hình 1.24 Hệ số ảnh hưởng chiều rộng thềm trước tường s [58][10] 24 Hình 2.1 Tồn cảnh máng sóng sử dụng thí nghiệm .29 Hình 2.2 Máy tạo sóng 29 Hình 2.3 Máng sóng 30 Hình 2.4 Khu vực điều khiển máy tạo sóng 30 Hình 2.5 Mơ hình thí nghiệm sóng 31 Hình 2.6 Xử lý chống thấm qua đê thí nghiệm 31 Hình 2.7 Máy tính, thiết bị nhận lưu trữ tín hiệu 32 Hình 2.8 Kiểm tra đầu đo sóng chân đê 34 Hình 2.9 Mơ hình xác định lưu lượng sóng tràn 34 Hình 2.10 Mơ hình xác định chiều cao sóng bắn 35 Hình 2.11 Mơ hình xác định chiều sâu dòng chảy tràn 35 Hình 2.12 Hệ số ảnh hưởng tổng hợp tường đỉnh thấp v (đo đạc - tính tốn) .37 Hình 2.13 Biểu đồ quan hệ (Hb/H) với (S.H/g.W.T2) 39 Hình 3.1 Mơ tả tường thẳng đứng qua mái nghiêng (TAW-2002) – PA1 47 vi Hình 3.2 Mơ tả tường chiều cao lưu không tương đương – PA2 48 Hình 3.3 Kết tính tốn sóng tràn mơ hình NLSW (PA1) 50 Hình 3.4 Kết tính tốn sóng tràn mơ hình NLSW (PA2) 51 Hình 3.5 Sóng tràn qua đê (MH vật lý) 52 Hình 3.6 Sóng tràn qua đê (MH máng sóng số) 52 Hình 3.7 Lưu lượng sóng tràn trung bình (Sóng ngẫu nhiên, COBRAS-UC) 56 Hình 3.8 Lưu lượng sóng tràn trung bình (Sóng đều, COBRAS-UC) 58 Hình 3.9 Sóng bắn sóng va vào tường (MH Vật lý) .60 Hình 3.10 Sóng đổ lên đỉnh tường mặt đê (MH Vật lý) 60 Hình 3.11 Sóng chảy thành dịng (MH Vật lý) 61 Hình 3.12 Sóng rút (MH Vật lý) 61 Hình 3.13 Sóng bắn sóng va vào tường t= 27.1s ( MH vật lý) 62 Hình 3.14 Sóng đổ lên đỉnh tường mặt đê t=27.3s ( MH vật lý) 62 Hình 3.15 Sóng chảy thành dòng t = 27.5s ( MH vật lý) .63 Hình 3.16 Sóng rút t=27.8s ( MH vật lý) .63 Hình 3.17 Chiều cao sóng bắn lớn (đặc MH toán, rỗng MH vật lý) .64 Hình 3.18 Chiều sâu chảy tràn lớn đỉnh tường 66 Hình 3.19 Ảnh hưởng chiều rộng thềm đến chiều cao sóng bắn 69 Hình 3.20 Phân bố áp lực sóng lên tường xung quanh thời điểm t* 70 Hình 3.21 Lực sóng tác dụng lên tường 70 Hình 4.1 Đê biển Giao Thủy tỉnh Nam Định 73 Hình 4.2 Giao diện phầm mềm 78 Hình 4.3 Giao diện nhập tham số thiết kế 79 Hình 4.4 Giao diện tính tốn tham số sóng thiết kế 79 Hình 4.5 Giao diện tính tốn sóng tràn qua đê 80 Hình 4.6 Kết tính tốn sóng tràn cho kịch (W,S) khác 82 Hình 4.7 Mặt cắt ngang đê biển theo dự thảo TCVN 9901: 2013 [4] 83 Hình 4.8 Mặt cắt ngang đê biển có tưởng đỉnh thấp thềm trước 83 vii DANH MỤC CÁC BẢNG BIỂU Bảng 1.1 Tổng hợp đê có tường đỉnh thấp Hà Tĩnh [3] .13 Bảng 1.2 Tổng hợp chương trình thí nghiệm sóng ngẫu nhiên [58][10] .22 Bảng 2.1 Tổng hợp chương trình thí nghiệm sóng 33 Bảng 2.2 Kết thí nghiệm xác định hệ số ảnh hưởng tổng hợp tường 38 Bảng 2.3 Kết thí nghiệm xác định chiều cao sóng bắn 40 Bảng 3.1 Kết đo đạc tính tốn sóng tràn cho trường hợp điển hình sóng ngẫu nhiên 55 Bảng 3.2 Kết đo đạc tính tốn lưu lượng sóng tràn trung bình sóng 57 Bảng 3.3 Kết đo đạc tính tốn chiều cao sóng bắn lớn 65 Bảng 3.4 Kết đo đạc tính tốn chiều sâu dịng chảy tràn lớn 67 Bảng 4.1 Thiết lập thông số đầu vào .74 Bảng 4.2 Tính tốn tham số sóng thiết kế 76 Bảng 4.3 Tính tốn lưu lượng sóng tràn trung bình 76 Bảng 4.4 Lưu lượng sóng tràn trung bình chiều cao sóng bắn cho đê biển Giao Thủy, tỉnh Nam Định với kịch (W,S) khác .81 viii } private void Update_E34() { try { tmpValue = double.Parse(E5.Text) / double.Parse(E31.Text); tmpValue = Math.Round(tmpValue, 6); E34.Text = string.Format("{0}", tmpValue); } catch { E34.Text = string.Format("{0}", 0); } } private void Update_E37() { try { //=$E$6/E36 tmpValue = double.Parse(E6.Text) / double.Parse(E36.Text); tmpValue = Math.Round(tmpValue, 6); E37.Text = string.Format("{0}", tmpValue); } catch { E37.Text = string.Format("{0}", 0); } } private void Update_E35() { try { //=E30/1.1 tmpValue = double.Parse(E30.Text) / 1.1; tmpValue = Math.Round(tmpValue, 6); E35.Text = string.Format("{0}", tmpValue); } catch { E35.Text = string.Format("{0}", 0); } } private void Update_E36() { try { //=(9.81*E35*E35)/(2*3.14) tmpValue = (9.81 * double.Parse(E35.Text) * double.Parse(E35.Text)) / (2 * 3.14); tmpValue = Math.Round(tmpValue, 6); E36.Text = string.Format("{0}", tmpValue); } catch { E36.Text = string.Format("{0}", 0); } } 100 private void Update_J4() { try { J4.Text = string.Format("{0}", double.Parse(E16.Text) double.Parse(E4.Text)); } catch { J4.Text = string.Format("{0}", 0); } } private void Update_J6() { try { if (E18.Text == "-999") return; tmpValue = - 0.0033 * double.Parse(E18.Text); tmpValue = Math.Round(tmpValue, 6); J6.Text = string.Format("{0}", tmpValue); } catch { J6.Text = string.Format("{0}", 0); } } private void Update_J7() { //IF($E$23=0,1-$E$22/J13,1-($E$22*(0.5+0.5*COS(3.14*$E$23/J18))/J13)) try { if (double.Parse(E23.Text) == 0) { tmpValue = - double.Parse(E22.Text) / double.Parse(J13.Text); tmpValue = Math.Round(tmpValue, 6); J7.Text = string.Format("{0}", tmpValue); } else { tmpValue = - (double.Parse(E22.Text) * (0.5 + 0.5 * Math.Cos(3.14 * double.Parse(E23.Text) / double.Parse(J18.Text))) / double.Parse(J13.Text)); tmpValue = Math.Round(tmpValue, 6); J7.Text = string.Format("{0}", tmpValue); } } catch { J7.Text = string.Format("{0}", 0); } } private void Update_J9() { //=1+J8*E13/((J4-E13)*J16) try { 101 tmpValue = + double.Parse(J8.Text) * double.Parse(E13.Text) / ((double.Parse(J4.Text) - double.Parse(E13.Text)) * double.Parse(J16.Text)); tmpValue = Math.Round(tmpValue, 6); J9.Text = string.Format("{0}", tmpValue); } catch { J9.Text = string.Format("{0}", 0); } } private void Update_J11() { //=1+J10*E14/(E6*J16) try { if (J10.Text == "-999" || E14.Text == "-999" || E6.Text == "-999" || J16.Text == "-999") return; tmpValue = + double.Parse(J10.Text) * double.Parse(E14.Text) / (double.Parse(E6.Text)) * double.Parse(J16.Text); tmpValue = Math.Round(tmpValue, 6); J11.Text = string.Format("{0}", tmpValue); } catch { J11.Text = string.Format("{0}", 0); } } private void Update_J12() { //=1/(J9*J11) try { if (J9.Text == "-999" || J11.Text == "-999" ) return; tmpValue = / (double.Parse(J9.Text) * double.Parse(J11.Text)); tmpValue = Math.Round(tmpValue, 6); J12.Text = string.Format("{0}",tmpValue); } catch { J12.Text = string.Format("{0}", 0); } } private void Update_J13() { //=$E$6*$E$20+$E$22+$E$6*$E$21 try { if (E6.Text == "-999" || E20.Text == "-999" || E22.Text == "-999" || E21.Text == "-999") return; tmpValue double.Parse(E22.Text) + tmpValue J13.Text =double.Parse(E6.Text) * double.Parse(E20.Text) + double.Parse(E6.Text) * double.Parse(E21.Text); = Math.Round(tmpValue, 6); = string.Format("{0}", tmpValue); 102 } catch { J13.Text = string.Format("{0}", 0); } } private void Update_J14() { //=(1.5*$E$6-$E$23)*$E$20+$E$22+(J4-$E$13+$E$23)*$E$21+$E$13+E14 try { if (E6.Text == "-999" || E20.Text == "-999" || E21.Text == "-999" || E22.Text == "-999" || E23.Text == "-999" || J4.Text == "-999" || E13.Text == "-999" || E14.Text == "-999") return; tmpValue double.Parse(E20.Text) + double.Parse(E13.Text) + double.Parse(E13.Text) + tmpValue J14.Text } catch { J14.Text } } = (1.5 * double.Parse(E6.Text) - double.Parse(E23.Text)) * double.Parse(E22.Text) + (double.Parse(J4.Text) double.Parse(E23.Text)) * double.Parse(E21.Text) + double.Parse(E14.Text); = Math.Round(tmpValue, 6); = string.Format("{0}", tmpValue); = string.Format("{0}", 0); private void Update_J15() { //=(J4+1.5*$E$6)/(J14-$E$22) try { if (J4.Text == "-999" || E6.Text == "-999" || J14.Text == "-999" || E22.Text == "-999") return; tmpValue = (double.Parse(J4.Text) + 1.5 * double.Parse(E6.Text)) / (double.Parse(J14.Text) - double.Parse(E22.Text)); tmpValue = Math.Round(tmpValue, 6); J15.Text = string.Format("{0}", tmpValue); } catch { J15.Text = string.Format("{0}", 0); } } private void Update_J16() { //=J15/SQRT($E$37) try { //Sai khac cua functions Sqrt???? //C# Math.Sqrt(double.Parse(E37.Text)) 0.18439088914585774 double //Excel =SQRT($E$37) 0.183616279 if (J15.Text == "-999" || E37.Text == "-999") return; tmpValue = double.Parse(J15.Text) / Math.Sqrt(double.Parse(E37.Text)); 103 tmpValue = Math.Round(tmpValue, 6); J16.Text = string.Format("{0}", tmpValue); } catch { J16.Text = string.Format("{0}", 0); } } private void Update_J17() { //=J16*J7 try { tmpValue = double.Parse(J16.Text) * double.Parse(J7.Text); tmpValue = Math.Round(tmpValue, 6); J17.Text = string.Format("{0}", tmpValue); } catch { J17.Text = string.Format("{0}", 0); } } private void Update_J18() { //=IF($E$23>0,2*$E$6,J4) try { if (E6.Text == "-999" || J4.Text == "-999") return; if (double.Parse(E23.Text) > 0) { J18.Text = string.Format("{0}", * double.Parse(E6.Text)); } else { J18.Text = string.Format("{0}", double.Parse(J4.Text)); } } catch { J18.Text = string.Format("{0}", 0); } } private void Update_J20() { //=IF(J17>2,100*SQRT(9.81*E6^3)*0.2*EXP(-2.6*(J4E13)/(E6*J16*J12)),(10*SQRT(9.81*E6^3)*0.067*J16*EXP(-4.75*(J4E13)/(E6*J16*J12)))/SQRT(J15)) try { if (E6.Text == "-999" || E13.Text == "-999") return; if (double.Parse(J17.Text) > 2) { tmpValue = 100 * Math.Sqrt(9.81 * Math.Pow(double.Parse(E6.Text), 3)) * 0.2 * Math.Exp(-2.6 * (double.Parse(J4.Text) - double.Parse(E13.Text)) / (double.Parse(E6.Text) * double.Parse(J16.Text) * double.Parse(J12.Text))); tmpValue = Math.Round(tmpValue, 6); J20.Text = string.Format("{0}", tmpValue); 104 } else { tmpValue = (10 * Math.Sqrt(9.81 * Math.Pow(double.Parse(E6.Text), 3)) * 0.067 * double.Parse(J16.Text) * Math.Exp(-4.75 * (double.Parse(J4.Text) double.Parse(E13.Text)) / (double.Parse(E6.Text) * double.Parse(J16.Text) * double.Parse(J12.Text)))) / Math.Sqrt(double.Parse(J15.Text)); tmpValue = Math.Round(tmpValue, 6); J20.Text = string.Format("{0}", tmpValue); } } catch { J20.Text = string.Format("{0}", 0); } } private void Update_J21() { //==J20*1000 try { J21.Text = string.Format("{0}", double.Parse(J20.Text) * 1000); } catch { J21.Text = string.Format("{0}", 0); } } private void Update_J24() { //=(E14*E6/(9.81*E13*E35^2)) try { if (E6.Text == "-999" || E13.Text == "-999" || E14.Text == "-999" || E35.Text == "-999") return; tmpValue double.Parse(E13.Text) * tmpValue J24.Text } catch { J24.Text } } = (double.Parse(E14.Text) * double.Parse(E6.Text) / (9.81 * Math.Pow(double.Parse(E35.Text), 2))); = Math.Round(tmpValue, 6); = string.Format("{0}", tmpValue); = string.Format("{0}", 0); private void Update_J25() { //=SQRT(1.544*EXP(-23.36*J24)) try { tmpValue = Math.Sqrt(1.544 * Math.Exp(-23.36 * double.Parse(J24.Text))); tmpValue = Math.Round(tmpValue, 6); J25.Text = string.Format("{0}", tmpValue); } catch { J25.Text = string.Format("{0}", 0); 105 } } private void Update_J26() { // =J25*E6 try { if (E6.Text == "-999" ) return; tmpValue =double.Parse(J25.Text) * double.Parse(E6.Text); tmpValue = Math.Round(tmpValue, 6); J26.Text = string.Format("{0}", tmpValue); } catch { J26.Text = string.Format("{0}", 0); } } #endregion private void cmdAdd_Click(object sender, EventArgs e) { AddPoints(); } private void AddPoints() { //(E13/E14) J26 J21 //String.Format("{0}\t{1}", FirstName,Count) if (txtResult.Text == "") { txtResult.Text = String.Format("{0}\t\t", "(W,S)") + String.Format("{0}\t\t", "Hb") + String.Format("{0}\t\t", "q(l/s/m)"); } txtResult.Text = txtResult.Text + System.Environment.NewLine + String.Format("{0}\t\t", "(" + E13.Text + "/" + E14.Text + ")") + String.Format("{0}\t\t", J26.Text) + String.Format("{0}\t\t", J21.Text); } private void btnReset_Click(object sender, EventArgs e) { txtResult.Text = ""; } private void frmDr_Load(object sender, EventArgs e) { LoadToolTip(); InitValue(); InitValue(true); } private void InitValue(bool bDefault=false) { if (bDefault) { E4.Text = "2.29"; E6.Text = "1.51"; E7.Text = "0.3"; E9.Text = "1.03"; E10.Text = "2.3"; 106 E13.Text = "0.9"; E14.Text = "1"; E15.Text = "90"; E18.Text = "0"; E20.Text = "4"; E21.Text = "4"; E22.Text = "0"; E23.Text = "0"; E24.Text = "0.3"; E25.Text = "0.85"; E30.Text = "5.89"; E32.Text = "3.56"; E33.Text = "37.76"; J8.Text = "0.99"; J10.Text = "0.72"; } else { E4.Text = "-999"; E6.Text = "-999"; E7.Text = "-999"; E9.Text = "-999"; E10.Text = "-999"; E13.Text = "-999"; E14.Text = "-999"; E15.Text = "-999"; E18.Text = "-999"; E20.Text = "-999"; E21.Text = "-999"; E22.Text = "-999"; E23.Text = "-999"; E24.Text = "-999"; E25.Text = "-999"; E30.Text = "-999"; E32.Text = "-999"; E33.Text = "-999"; J8.Text = "-999"; J10.Text = "-999"; } } private void LoadToolTip() { string tmp; System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip(); ToolTip1.ShowAlways = true; tmp = @"Cao độ đáy biển vị trí tính sóng thiết kế (thường chân cơng trình)"; ToolTip1.SetToolTip(E7, tmp); tmp = @"at = 900 bề mặt tường phía biển có dạng thẳng đứng"; ToolTip1.SetToolTip(E15, tmp); tmp = @"Giả thiết trường hợp nguy hiểm sóng tiến tới chân cơng trình theo phương vng góc với trục đê, đó: b = 00"; ToolTip1.SetToolTip(E18, tmp); 107 tmp = @"dh < nằm MNTK dh = nằm ngang MNTK dh > nằm MNTK (cơ ngập nước)"; ToolTip1.SetToolTip(E23, tmp); tmp = @"Thông số xác định hệ số chiết giảm đê (x): * x = Rslp dh < * x = 2.Hs dh > 0"; ToolTip1.SetToolTip(J18, tmp); } private void btnReport_Click(object sender, EventArgs e) { frmPlot frm = new frmPlot(); frm.PlotData(txtResult.Text, true); frm.ShowDialog(); } private void E9_TextChanged(object sender, EventArgs e) { Update_E11(); } private void E10_TextChanged(object sender, EventArgs e) { Update_E11(); } private void E13_TextChanged(object sender, EventArgs e) { Update_E16(); Update_J9(); Update_J14(); Update_J20(); Update_J24(); } private void E16_TextChanged(object sender, EventArgs e) { Update_E17(); Update_J4(); Update_J6(); } private void E30_TextChanged(object sender, EventArgs e) { Update_E31(); Update_E35(); } private void E31_TextChanged(object sender, EventArgs e) { Update_E34(); } private void E5_TextChanged(object sender, EventArgs e) { Update_E34(); } private void E4_TextChanged(object sender, EventArgs e) 108 { Update_J4(); } private void E23_TextChanged(object sender, EventArgs e) { Update_J7(); Update_J14(); Update_J18(); } private void E22_TextChanged(object sender, EventArgs e) { Update_J7(); Update_J13(); Update_J14(); Update_J15(); } private void J13_TextChanged(object sender, EventArgs e) { Update_J7(); } private void J18_TextChanged(object sender, EventArgs e) { Update_J7(); } private void J8_TextChanged(object sender, EventArgs e) { Update_J9(); } private void J4_TextChanged(object sender, EventArgs e) { Update_J9(); Update_J14(); Update_J15(); Update_J18(); Update_J20(); } private void J16_TextChanged(object sender, EventArgs e) { Update_J9(); Update_J11(); Update_J17(); Update_J20(); } private void J10_TextChanged(object sender, EventArgs e) { Update_J11(); } private void E14_TextChanged(object sender, EventArgs e) { Update_J11(); Update_J14(); Update_J24(); 109 } private void E6_TextChanged(object sender, EventArgs e) { Update_E37(); Update_J11(); Update_J13(); Update_J14(); Update_J15(); Update_J18(); Update_J20(); Update_J24(); Update_J26(); } private void J9_TextChanged(object sender, EventArgs e) { Update_J12(); } private void J11_TextChanged(object sender, EventArgs e) { Update_J12(); } private void E20_TextChanged(object sender, EventArgs e) { Update_J13(); Update_J14(); } private void E21_TextChanged(object sender, EventArgs e) { Update_J13(); Update_J14(); } private void J14_TextChanged(object sender, EventArgs e) { Update_J15(); } private void J15_TextChanged(object sender, EventArgs e) { Update_J16(); Update_J20(); } private void E37_TextChanged(object sender, EventArgs e) { Update_J16(); } private void J7_TextChanged(object sender, EventArgs e) { Update_J17(); } private void J17_TextChanged(object sender, EventArgs e) { Update_J20(); 110 } private void J12_TextChanged(object sender, EventArgs e) { Update_J20(); } private void J20_TextChanged(object sender, EventArgs e) { Update_J21(); } private void E35_TextChanged(object sender, EventArgs e) { Update_J24(); Update_E36(); } private void J24_TextChanged(object sender, EventArgs e) { Update_J25(); } private void J25_TextChanged(object sender, EventArgs e) { Update_J26(); } private void btnDefaultValue_Click(object sender, EventArgs e) { InitValue(true); } private void E36_TextChanged(object sender, EventArgs e) { Update_E37(); } private void btnAboutUs_Click(object sender, EventArgs e) { frmAbout frm = new frmAbout(); frm.ShowDialog(); } private void btnSave_Click(object sender, EventArgs e) { try { if (txtResult.Text.Trim() == "") { MessageBox.Show("Chưa có liệu","Thơng báo"); return; } SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.InitialDirectory = @"C:\"; saveFileDialog1.Title = "Save text Files"; //saveFileDialog1.CheckFileExists = true; saveFileDialog1.CheckPathExists = true; saveFileDialog1.DefaultExt = "txt"; saveFileDialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; 111 saveFileDialog1.FilterIndex = 2; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { File.WriteAllText(saveFileDialog1.FileName, txtResult.Text); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btnLoad_Click(object sender, EventArgs e) { string fileName = ""; bool bHeader = true; OpenFileDialog theDialog = new OpenFileDialog(); theDialog.Title = "Load file tổ hợp"; theDialog.Filter = "TXT files|*.txt"; theDialog.InitialDirectory = @"C:\"; if (theDialog.ShowDialog() == DialogResult.OK) { fileName= theDialog.FileName.ToString(); System.Collections.Generic.IEnumerable lines = File.ReadLines(fileName); // Read in lines from file foreach (string line in File.ReadLines(fileName)) { try { // skip header file if (bHeader) { bHeader = false; } else { string[] cols = line.Split('\t'); E13.Text = cols[1].Trim(); //W E14.Text = cols[0].Trim(); //S AddPoints(); } } catch { } } } } } } using System; using System.Collections.Generic; 112 using using using using using using using System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; ZedGraph; namespace ImageGPS { public partial class frmPlot : Form { public List mySeries= new List(); public List myLines = new List(); public frmPlot() { InitializeComponent(); } public void PlotData(string strContent, bool skipHeader) { try { this.Cursor = Cursors.WaitCursor; this.Text = "Báo cáo thống kê"; ImportData(strContent, skipHeader); CreateGraph(ZedGraphControl1); this.Cursor = Cursors.Default; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void ImportData(string strContent, bool skipHeader) { int rowIndex=0; double tmpValue=0; string strData; string strTag; DataSeries seriHb = new DataSeries(); DataSeries seriQ = new DataSeries(); if (strContent.Trim() =="") { return; } try { string[] lines = strContent.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None); seriHb.Name = "Hb"; seriHb.LineColor = Color.Blue; seriHb.Symbol.Type = SymbolType.Circle; seriQ.Name = "Q"; seriHb.LineColor = Color.Red; 113 seriHb.Symbol.Type = SymbolType.Circle; for (int i = 0; i < lines.Length; i++) { if (!(skipHeader && i == 0)) { strData = lines[i]; string[] cols = strData.Split(new string[] { "\t\t", "\t\t" }, StringSplitOptions.None); rowIndex++; tmpValue = Double.Parse(cols[1]); strTag = cols[0].Trim() + "\t" + tmpValue.ToString(); seriHb.Data.Add(rowIndex, tmpValue,strTag); tmpValue = Double.Parse(cols[2]); seriQ.Data.Add(rowIndex, tmpValue, strTag); } } mySeries.Add(seriHb); mySeries.Add(seriQ); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void CreateGraph(ZedGraph.ZedGraphControl zgc) { GraphPane grf = zgc.GraphPane; grf.Title.Text = "Kết mô hình"; grf.YAxis.Title.Text = "Giá trị"; grf.XAxis.Title.Text = "Lần thử"; grf.XAxis.Type = AxisType.Ordinal; //grf.XAxis.Scale.MajorUnit = DateUnit.Month; //grf.XAxis.Scale.MinorUnit = DateUnit.Day; grf.Legend.Position = LegendPos.InsideTopRight; grf.Legend.Gap = 20; grf.Legend.IsHStack = false; grf.XAxis.MajorGrid.IsVisible = true; grf.XAxis.MajorGrid.DashOff = 0; grf.XAxis.MajorGrid.Color = Color.Gray; grf.YAxis.MajorGrid.IsVisible = true; grf.YAxis.MajorGrid.DashOff = 0; grf.YAxis.MajorGrid.Color = Color.Gray; grf.CurveList.Clear(); for (int i = 0; i

Ngày đăng: 31/12/2015, 20:01

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan