Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 199 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
199
Dung lượng
9,89 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG DƯƠNG DIỆP THÚY MỘT MƠ HÌNH TÍNH LÚN CỦA MÓNG CỌC CÓ XÉT ĐẾN PHÂN BỐ CỦA MA SÁT DỌC THÂN CỌC CHUYÊN NGÀNH: ĐỊA KỸ THUẬT XÂY DỰNG MÃ SỐ: 62580211 LUẬN ÁN TIẾN SỸ HÀ NỘI, NĂM 2018 I BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG DƯƠNG DIỆP THÚY Mã số: 62131106 MỘT MƠ HÌNH TÍNH LÚN CỦA MĨNG CỌC CĨ XÉT ĐẾN PHÂN BỐ CỦA MA SÁT DỌC THÂN CỌC CHUYÊN NGÀNH: ĐỊA KỸ THUẬT XÂY DỰNG MÃ SỐ: 62580211 LUẬN ÁN TIẾN SỸ Người hướng dẫn khoa học PGS TS PHẠM QUANG HƯNG TS LÊ THIẾT TRUNG Hà Nội, năm 2018 II LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi Các số liệu kết luận án trung thực chưa công bố cơng trình khác Tác giả NCS DƯƠNG DIỆP THÚY i LỜI CẢM ƠN Để có kết nghiên cứu luận án này, tác giả nhận nhiều giúp đỡ tận tình thầy giáo hướng dẫn, nhà khoa học, đồng nghiệp, quan hữu quan, doanh nghiệp gia đình Tác giả xin bày tỏ lịng biết ơn đến Ban Giám hiệu, Khoa sau đại học, Khoa Xây dựng Cầu Đường, Viện Địa kỹ thuật Cơng trình, Khoa Công nghệ thông tin, Bộ môn Cơ học đất Nền móng, Bộ mơn Tin học Xây dựng trường Đại học Xây dựng Hà Nội tạo điều kiện thuận lợi cho tác giả suốt trình nghiên cứu Tác giả xin bày tỏ lòng biết ơn đến doanh nghiệp: Cơng ty Cổ phần Phân bón Dầu khí Cà Mau (PVCFC), Cơng ty CP An Lạc… hỗ trợ số liệu thí nghiệm Tác giả xin bày tỏ lòng biết ơn đến thầy giáo, nhà khoa học công tác Khoa xây dựng Cầu Đường, Hội học đất Địa kỹ thuật cơng trình Việt Nam có ý kiến quý báu thiết thực Đặc biệt tác giả xin bày tỏ lòng biết ơn chân thành sâu sắc đến GS.TS Vũ Công Ngữ, PGS.TS Phạm Quang Hưng, TS Lê Thiết Trung, TS Phùng Đức Long, TS Bùi Minh Đức người thầy ln tận tình giúp đỡ tác giả chuyên môn phương pháp nghiên cứu khoa học, từ ngày đầu tác giả bắt tay vào nghiên cứu thực luận án tiến sỹ Bản luận án chắn không tránh thiếu sót, tác giả xin tiếp thu ý kiến đóng góp nhà khoa học bạn đồng nghiệp để hoàn thiện kết nghiên cứu Tác giả ii MỤC LỤC MỤC LỤC iii CÁC KÝ HIỆU VÀ CHỈ SỐ xv DANH MỤC CÁC CHỮ VIẾT TẮT xviii MỞ ĐẦU 1 LÝ DO CHỌN ĐỀ TÀI MỤC ĐÍCH CỦA ĐỀ TÀI ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu PHƯƠNG PHÁP NGHIÊN CỨU NỘI DUNG NGHIÊN CỨU NHỮNG ĐÓNG GÓP MỚI CỦA LUẬN ÁN CẤU TRÚC LUẬN ÁN CHƯƠNG 1: TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP TÍNH LÚN, MƠ HÌNH TƯƠNG TÁC CỌC – ĐẤT 1.1 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP TÍNH LÚN 1.1.1 Phương pháp thực nghiệm nửa thực nghiệm 1.1.2 Phương pháp móng quy ước 11 1.1.3 Phương pháp sử dụng hệ số tương tác 13 1.1.4 Phương pháp số 17 1.1.5 Nhận xét 18 1.2 MƠ HÌNH TƯƠNG TÁC CỌC – ĐẤT 20 1.2.1 Tương tác cọc – đất đường cong τ-z q-z (f-w q-w) 21 1.2.2 Các đường cong τ-z cho cọc đất cát tác dụng tải trọng nén 23 1.2.3 Các đường cong τ-z cho cọc đất sét 25 1.2.4 Phản lực mũi cọc 27 1.2.5 Nhận xét 30 1.3 TÓM LƯỢC CHƯƠNG 30 iii CHƯƠNG 2: PHÂN TÍCH VÀ SO SÁNH ĐƯỜNG CONG τ-z VÀ q-z VỚI MỘT SỐ LOẠI ĐẤT 32 2.1 MỘT SỐ ĐỊA ĐIỂM THÍ NGHIỆM 32 2.1.1 Công trình Vietinbank Tower (Bắc Thăng Long – Hà Nội) 32 2.1.2 Cơng trình Khách Sạn Dầu Khí (Hà Nội) 34 2.1.3 Cơng trình Pearl Phương Nam Towers – Trường Chinh – Thanh Xuân – Hà Nội 35 2.1.4 Cơng trình U Silk city – Khu đô thị Văn Khê – Hà Đông – Hà Nội 35 2.1.5 Cơng trình Indochina – Xuân Thủy – Cầu Giấy 36 2.1.6 Cơng trình Pacific Plaza 37 2.1.7 Tham khảo kết từ đề tài “Xác định sức kháng ma sát đơn vị thành cọc khoan nhồi cọc Barette cho số loại đất điển hình Hà Nội” 37 2.2 SO SÁNH MƠ HÌNH τ-z VỚI MỘT SỐ LOẠI ĐẤT Ở HÀ NỘI 37 2.2.1 Đối với số loại đất sét Hà Nội 37 2.2.2 Đối với số loại đất rời Hà Nội 47 2.3 SO SÁNH ĐƯỜNG CONG q-z VỚI MỘT SỐ LOẠI ĐẤT Ở HÀ NỘI 53 2.4 TÓM LƯỢC CHƯƠNG 55 CHƯƠNG 3: PHƯƠNG PHÁP TÍNH LÚN CĨ XÉT ĐẾN SỰ PHÂN BỐ CỦA MA SÁT DỌC THÂN CỌC (SDF) 56 3.1 PHƯƠNG PHÁP TÍNH LÚN CÓ XÉT ĐẾN SỰ PHÂN BỐ CỦA MA SÁT DỌC THÂN CỌC (SDF) 56 3.1.1 Nguyên lý phương pháp tính lún SDF 57 3.1.2 Phân tích ảnh hưởng tham số đầu vào 69 3.2 XÂY DỰNG CHƯƠNG TRÌNH TÍNH LÚN THEO PHƯƠNG PHÁP SDF 74 3.2.1 Cơ sở khoa học, mục đích lựa chọn ngơn ngữ lập trình 74 3.2.2 Thuật tốn chương trình 74 3.2.3 Sơ đồ hệ thống chương trình SeDiF 1.0 78 3.2.4 Chức giao diện chương trình SeDiF 1.0 79 iv 3.3 TÓM LƯỢC CHƯƠNG 85 CHƯƠNG PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ TÍNH LÚN CỦA PHƯƠNG PHÁP SDF 86 4.1 TÍNH TỐN CÁC TRƯỜNG HỢP GIẢ ĐỊNH NỀN ĐẤT 86 4.1.1 Mơ hình đài cọc bố trí cọc 86 4.1.2 Các thông số đất 86 4.1.3 Đường cong τ-z q-z 87 4.1.4 Kết tính tốn 88 4.2 KIỂM NGHIỆM PHƯƠNG PHÁP SDF SO VỚI CÁC MƠ HÌNH THÍ NGHIỆM THỰC 90 4.2.1 Kết thí nghiệm Yasunori Koizumi 90 4.2.2 Kết từ mơ hình thí nghiệm O’Neill, M.W (1982) 97 4.2.3 Kết từ mơ hình thí nghiệm Phùng Đức Long (1993) 103 4.2.4 Kết từ mô hình thí nghiệm O’Neill (1981) 109 4.2.5 Kết từ mơ hình thí nghiệm Vesic (1967) 111 4.3 SO SÁNH KẾT QUẢ TÍNH THEO PHƯƠNG PHÁP SDF VỚI SỐ LIỆU QUAN TRẮC LÚN CỦA MỘT SỐ DỰ ÁN TẠI VIỆT NAM 113 4.3.1 Dự án Cà Mau 113 4.3.2 Hạng mục Bồn chứa Amonia (Amonia Storage Tank – S3) 114 4.3.3 Tháp chưng cất – Distillation tower S1 117 4.3.4 Máy nén tuần hoàn –Amonia Compressor 119 4.3.5 Hạng mục nhà loại bỏ CO2 121 4.4 DỰ ÁN CHUNG CƯ TẠI KHU ĐÔ THỊ MỚI VĂN GIANG, HƯNG YÊN 125 4.4.1 Giới thiệu dự án điều kiện địa chất 125 4.4.2 Hiệu chỉnh giá trị mô đun biến dạng lớp đất 127 4.4.3 Tính lún với Tháp 129 4.4.4 Tính lún với Tháp 133 4.5 TÓM LƯỢC CHƯƠNG 138 KẾT LUẬN 140 DANH MỤC CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ 142 TÀI LIỆU THAM KHẢO 144 v PHỤ LỤC TÍNH TỐN 151 PHỤ LỤC 1: MÃ NGUỒN CHƯƠNG TRÌNH SDF 152 PHỤ LỤC 2: KẾT QUẢ TÍNH TỐN 178 vi DANH MỤC HÌNH VẼ Chương Hình 1-1 Phân bố ứng suất cọc đơn nhóm cọc [38] Hình 1-2 Xác định ranh giới móng khối quy ước theo SP 24.13330.201 12 Hình 1-3 Xác định ranh giới móng khối quy ước theo Terzaghi (1948) [82] 13 Hình 1-4 Một số tương tác tính tốn theo Hain & Lee (1978) [56] 13 Hình 1-5 Tương tác cọc nhóm cọc 19 Hình 1-6 Cọc chịu tải trọng dọc trục 22 Hình 1-7 Mơ hình phương cọc chịu tải trọng dọc trục 23 Hình 1-8 Đường cong Coyle Sulaiman (1967) [46] đề xuất 24 Hình 1-9 Đường cong τ-z đất dính (Coyle Reese 1966) 26 Hình 1-10 Biểu đồ xác định sức kháng cực hạn theo su 26 Hình 1-11 Đường cong q-z theo API (1993) [36] 28 Hình 1-12 Đường cong q-z theo Zhang & He (2010) 30 Chương Hình 2-1 Các đầu đo biến dạng cọc thử [16], [21], [22] 33 Hình 2-2 Ma sát đơn vị huy động cho số loại đất Bắc Thăng Long – HN 34 Hình 2-3 Sức kháng mũi đơn vị huy động Bắc Thăng Long – Hà Nội 34 Hình 2-4 Các đầu đo biến dạng thân cọc thử (Loadtest, 2008) [17], [18] 35 Hình 2-5 Các đầu đo biến dạng thân cọc thử (Loadtest, 2009) [19], [20] 36 Hình 2-6 So sánh đường cong τ-z theo Coley & Reese kết thí nghiệm với đất sét trạng thái dẻo mềm đến dẻo cứng 39 Hình 2-7 So sánh đường cong τ-z theo Aschenbrener & Olson (1984) kết thí nghiệm với đất sét trạng thái dẻo mềm đến dẻo cứng 40 Hình 2-8 So sánh đường cong τ-z theo Heydinger & O’Neill (1986) kết thí nghiệm với đất sét trạng thái dẻo mềm đến dẻo cứng 41 Hình 2-9 So sánh đường cong τ-z theo Vijayvergiya (1977) kết thí nghiệm với đất sét trạng thái dẻo mềm đến dẻo cứng (chuyển vị lớn 5mm) 41 vii Hình 2-10 So sánh đường cong τ-z theo Vijayvergiya (1977) kết thí nghiệm với đất sét trạng thái dẻo mềm đến dẻo cứng (chuyển vị lớn 7mm) 42 Hình 2-11 Mối quan hệ chuyển vị/đường kính cọc ma sát bên/ma sát lớn cho đất sét trạng thái dẻo mềm đến dẻo cứng [14] 43 Hình 2-12 So sánh đường cong τ-z theo Coley & Reese (1966) kết thí nghiệm với đất sét trạng thái dẻo chảy đến dẻo mềm 44 Hình 2-13 So sánh đường cong τ-z theo Aschenbrener & Olson (1984) kết thí nghiệm với đất sét trạng thái dẻo chảy đến dẻo mềm 44 Hình 2-14 So sánh đường cong τ-z theo Heydinger & O’Neill (1986) kết thí nghiệm với đất sét trạng thái dẻo chảy đến dẻo mềm 45 Hình 2-15 So sánh đường cong τ-z theo Vijayvergiya (1977) kết thí nghiệm với đất sét trạng thái dẻo chảy đến dẻo mềm 45 Hình 2-16 Mối quan hệ chuyển vị/đường kính cọc ma sát bên/ma sát lớn cho đất sét trạng thái dẻo chảy đến dẻo mềm [14] 46 Hình 2-17 Mối quan hệ chuyển vị/đường kính cọc ma sát bên/ma sát lớn cho đất cát mịn, cát thô lẫn cuội sỏi [14] 47 Hình 2-18 Mối quan hệ chuyển vị/đường kính cọc ma sát bên/ma sát lớn cho cuội sỏi lẫn cát [14] 48 Hình 2-19 So sánh đường cong τ-z theo API kết thí nghiệm với đất cát 49 Hình 2-20 So sánh đường cong τ-z theo Vijayvergiya kết thí nghiệm với đất cát 50 Hình 2-21 So sánh đường cong τ-z theo Mosher kết thí nghiệm với đất cát 50 Hình 2-22 So sánh đường cong τ-z theo API (1993) kết thí nghiệm với đất cát lẫn cuội sỏi 51 Hình 2-23 So sánh đường cong τ-z theo Vijayvergiya [88] kết thí nghiệm với đất cát lẫn cuội sỏi 52 Hình 2-24 So sánh đường cong τ-z theo API kết thí nghiệm với cuội sỏi 52 viii txt_Ld.Text = Ld.ToString txt_Bd.Text = Bd.ToString Xo=Convert.ToDouble(dgv_toadodiem.Rows(index_cbo_diemtinhUS).Cells(0).Value) Yo = Convert.ToDouble(dgv_toadodiem.Rows(index_cbo_diemtinhUS).Cells(1).Value Dim ToaDoX(n_coc - 1) As Double Dim ToaDoY(n_coc - 1) As Double For i = To ny_coc - For j = To nx_coc - ToaDoX(i * nx_coc + j) = Math.Round((-Ld / + Xo + Dcoc + kc_coc * j), 2) ToaDoY(i * nx_coc + j) = Math.Round((Bd / + Yo - Dcoc - kc_coc * i), 2) Next Next ThemCot() dgv_ToaDoCoc.Rows.Clear() cbo_LstCoc.Items.Clear() For i = To n_coc - cbo_LstCoc.Items.Add((i + 1).ToString) dgv_ToaDoCoc.Rows.Add() dgv_ToaDoCoc.Rows(i).Cells(0).Value = (i + 1).ToString dgv_ToaDoCoc.Rows(i).Cells(1).Value = ToaDoX(i).ToString dgv_ToaDoCoc.Rows(i).Cells(2).Value = ToaDoY(i).ToString dgv_ToaDoCoc.Rows(i).Cells(3).Value = Math.Round((Nc / n_coc), 2).ToString Next ' -Gán giá trị cho biến kiểm tra kt_cbo_diemtinhUS(index_cbo_diemtinhUS) = True kt_cbo_diemtinhUS_Sap(index_cbo_diemtinhUS) = False 'Lưu liệu vào biến If cbo_Coc.SelectedIndex -1 Then Dim _index As Integer = _index = cbo_Coc.SelectedIndex Dulieu_Coc(_index).Luc_doc = Convert.ToDouble(txt_Nc.Text) Dulieu_Coc(_index).M_x = Convert.ToDouble(txt_Mx.Text) Dulieu_Coc(_index).M_y = Convert.ToDouble(txt_My.Text) Dulieu_Coc(_index).SodiemUS = Convert.ToInt16(txt_sdUS.Text) ReDim Dulieu_Coc(_index).Phuong_X(100) ReDim Dulieu_Coc(_index).Phuong_Y(100) For i = To Dulieu_Coc(_index).SodiemUS - Dulieu_Coc(_index).Phuong_X(i) = Convert.ToDouble(dgv_toadodiem.Rows(i).Cells(0).Value) Dulieu_Coc(_index).Phuong_Y(i) = Convert.ToDouble(dgv_toadodiem.Rows(i).Cells(1).Value) Next Dulieu_Coc(_index).SL_Coc = Convert.ToDouble(txt_SoCoc.Text) Dulieu_Coc(_index).SL_L = Convert.ToDouble(txt_cocL.Text) Dulieu_Coc(_index).SL_B = Convert.ToDouble(txt_cocB.Text) Dulieu_Coc(_index).Khoang_cach = Convert.ToDouble(txt_KC.Text) Dulieu_Coc(_index).Chieu_cao = Convert.ToDouble(txt_Hd.Text) Dulieu_Coc(_index).kt = True End If Else MsgBox("Chọn điểm") End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Lỗi!!!") End Try End Sub ' tính phản lực cọc theo cơng thức Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles pic_PLcoc.Click 165 Try If cbo_diemtinhUS.SelectedIndex -1 Then ' Khai bao mang de gan toa cua coc Dim ToaDoX(n_coc - 1) As Double Dim ToaDoY(n_coc - 1) As Double Dim ToaDoXo(n_coc - 1) As Double Dim ToaDoYo(n_coc - 1) As Double For i = To ny_coc - For j = To nx_coc - ToaDoX(i * nx_coc + j) = Math.Round((-Ld / + Xo + Dcoc + kc_coc * j), 2) ToaDoY(i * nx_coc + j) = Math.Round((Bd / + Yo - Dcoc - kc_coc * i), 2) Next Next 'Tính tọa độ cọc theo điểm (0,0) Xo = Yo = For i = To ny_coc - For j = To nx_coc - ToaDoXo(i * nx_coc + j) = Math.Round((-Ld / + Xo + Dcoc + kc_coc * j), 2) ToaDoYo(i * nx_coc + j) = Math.Round((Bd / + Yo - Dcoc - kc_coc * i), 2) Next Next ' Tính phản lực đầu cọc Dim PLcoc(n_coc - 1) As Double ' bảng phản lực cọc Dim TG1, TG2 As Double TG1 = TG2 = For i = To n_coc - TG1 = Math.Round(ToaDoXo(i) * ToaDoXo(i) + TG1, 4) TG2 = Math.Round(ToaDoYo(i) * ToaDoYo(i) + TG2, 4) Next For i = To n_coc - PLcoc(i) = Nc / n_coc + Mx * ToaDoYo(i) / TG2 + My * ToaDoXo(i)/ TG1 Next ' Private Sub txt_Lc_TextChanged(sender As Object, e As EventArgs) Handles txt_Lc.TextChanged Dim Lcoc, MinCoc, nDiemTai As Double Dim tg1, tg2 As String tg1 = txt_Lc.Text tg2 = frm_ThongsoCT.txt_CocMin.Text If tg1 "" And tg2 "" Then Lcoc = Convert.ToDouble(tg1) MinCoc = Convert.ToDouble(tg2) nDiemTai = Lcoc / MinCoc frm_ThongsoCT.txt_nDiemTai.Text = nDiemTai.ToString End If End Sub Private Sub btn_FsMotCoc_Click(sender As Object, e As EventArgs) Handles btn_FsMotCoc.Click Try Dim i, j, k, count1, count2 As Integer Dim So_Lieu(count1), So_Doan(count1) As Integer Dim h_dat(count1) As Double bNhayCV = Convert.ToDouble(frm_ThongsoCT.txt_bNhayCV.Text) nKQ = Convert.ToInt32(frm_ThongsoCT.txt_nKQ.Text) nLopDat = dgv_DatNen.Rows.Count - count1 = dgv_DatNen.RowCount - ReDim h_dat(nLopDat - 1) 166 ReDim So_Lieu(nLopDat - 1) ReDim So_Doan(nLopDat - 1) For i = To count1 h_dat(i) = Convert.ToDouble(dgv_DatNen.Rows(i).Cells(1).Value) So_Lieu(i) = Convert.ToInt16(dgv_DatNen.Rows(i).Cells(2).Value) So_Doan(i) = Convert.ToInt32(dgv_DatNen.Rows(i).Cells(3).Value) Next ' Thông số cọc EA = Convert.ToDouble(txt_EAc.Text) ' Độ cứng cọc CV = Convert.ToDouble(txt_Uc.Text) ' Chu vi cọc A = Convert.ToDouble(txt_Ac.Text) ' Diện tích cọc L = Convert.ToDouble(txt_Lc.Text) ' Chiều dài cọc D = Convert.ToDouble(txt_Dcoc.Text) ' Đường kính cọc ' Tim phan luc cua coc can tinh ma sat ben Dim coc As String = cbo_LstCoc.Text count2 = dgv_ToaDoCoc.RowCount - For i = To count2 - If coc = dgv_ToaDoCoc.Rows(i).Cells(0).Value Then P_coc = Convert.ToDouble(dgv_ToaDoCoc.Rows(i).Cells(3).Value) End If Next Dim SCT As Double = Convert.ToDouble(dgv_ToaDoCoc.Rows(Convert.ToInt32(cbo_LstCoc.Text)).Cells(3).Value) Dim ds As Double ' Chuyển vị đầu mũi ReDim P0(nKQ - 1), S0(nKQ - 1), P1(nKQ - 1) For i = To nKQ - ds = (i + 1) * bNhayCV ' Bước chuyển vị đầu mũi j = Do Until Convert.ToDouble(dgv_Qz_frmStress.Rows(j).Cells(2).Value) > ds j = j + Loop z1 = Convert.ToDouble(dgv_Qz_frmStress.Rows(j - 1).Cells(2).Value) z2 = Convert.ToDouble(dgv_Qz_frmStress.Rows(j).Cells(2).Value) dP1 = Convert.ToDouble(dgv_Qz_frmStress.Rows(j - 1).Cells(1).Value) dP2 = Convert.ToDouble(dgv_Qz_frmStress.Rows(j).Cells(1).Value) dP = (ds - z1) / (z2 - z1) * (dP2 - dP1) + dP1 dP = dP / 10 ' Chuyển đơn vị T/m2 dP = dP * A S0(i) = ds P0(i) = dP CocMin = Convert.ToDouble(frm_ThongsoCT.txt_CocMin.Text) For k = To nLopDat - hTong = Do Until hTong >= h_dat(k) hTong = hTong + CocMin hTong = Math.Round(hTong, 1) j = Do Until j = So_Lieu(k) Or Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) > S0(i) j = j + Loop z1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(2 + * k).Value) z2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) dP1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(1 + * k).Value) dP2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(1 + * k).Value) masat1(z) = (Zbs - z1) / (z2 - z1) * (dP2 - dP1) + dP1 masat1(z) = masat1(z) / 10 masat1(z) = masat1(z) * CocMin * CV dgv_MSBs.Rows(z).Cells(k).Value = Math.Round(masat1(z), 8).ToString 167 tg1 = tg1 + masat1(z) Q1bs = Qbs + masat1(z) Zbs = Zbs + ((Qbs + Q1bs) / 2) * (CocMin / (EA) * 1000) Qbs = Q1bs Next Next tg2 = For k = To nLopDat - ReDim masat0(So_Doan(k) - 1) For z As Integer = To So_Doan(k) - j = Do Until Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) > Zbt j = j + Loop z1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(2 + * k).Value) z2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) dP1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(1 + * k).Value) dP2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(1 + * k).Value) masat0(z) = (Zbt - z1) / (z2 - z1) * (dP2 - dP1) + dP1 masat0(z) = masat0(z) / 10 masat0(z) = masat0(z) * CocMin * CV dgv_MSBt.Rows(z).Cells(k).Value = Math.Round(masat0(z), 8).ToString tg2 = tg2 + masat0(z) Q1bt = Qbt + masat0(z) Zbt = Zbt + ((Qbt + Q1bt) / 2) * (CocMin / (EA) * 1000) Qbt = Q1bt Next Next Dim zz As Integer For k = To nLopDat - ReDim masat(So_Doan(k) - 1) For zz = To So_Doan(k) - z1 = dgv_MSBt.Rows(zz).Cells(k).Value z2 = dgv_MSBs.Rows(zz).Cells(k).Value masat(zz) = z2 - (z2 - z1) / (Qbs - Qbt) * (Qbs - SCT) dgv_Masatben.Rows(zz).Cells(k).Value = Math.Round(masat(zz), 8).ToString Next Next Exit For End If Next Catch ex As Exception dgv_Masatben.Columns.Clear() dgv_Masatben.Rows.Clear() dgv_MSBt.Columns.Clear() dgv_MSBt.Rows.Clear() dgv_MSBs.Columns.Clear() dgv_MSBs.Rows.Clear() MsgBox(ex.Message, 16, "Lỗi!!!") End Try End Sub Private Sub btn_FsTatCoc_Click(sender As Object, e As EventArgs) Handles btn_FsTatCoc.Click Try Dim i, j, k, count1, count2 As Integer Dim So_Lieu(count1), So_Doan(count1) As Integer Dim h_dat(count1), PLmui() As Double bNhayCV = Convert.ToDouble(frm_ThongsoCT.txt_bNhayCV.Text) 168 nKQ = Convert.ToInt32(frm_ThongsoCT.txt_nKQ.Text) nLopDat = dgv_DatNen.Rows.Count - count1 = dgv_DatNen.RowCount - count2 = dgv_ToaDoCoc.RowCount - ReDim h_dat(nLopDat - 1) ReDim So_Lieu(nLopDat - 1) ReDim So_Doan(nLopDat - 1) ReDim PLmui(count2 - 1) For i = To count1 h_dat(i) = Convert.ToDouble(dgv_DatNen.Rows(i).Cells(1).Value) So_Lieu(i) = Convert.ToInt16(dgv_DatNen.Rows(i).Cells(2).Value) So_Doan(i) = Convert.ToInt32(dgv_DatNen.Rows(i).Cells(3).Value) Next EA = Convert.ToDouble(txt_EAc.Text) ' Độ cứng cọc CV = Convert.ToDouble(txt_Uc.Text) ' Chu vi cọc A = Convert.ToDouble(txt_Ac.Text) ' Diện tích cọc L = Convert.ToDouble(txt_Lc.Text) ' Chiều dài cọc D = Convert.ToDouble(txt_Dcoc.Text) ' Đường kính cọc dgv_Masatben.Columns.Clear() dgv_Masatben.Rows.Clear() dgv_MSBt.Columns.Clear() dgv_MSBt.Rows.Clear() dgv_MSBs.Columns.Clear() dgv_MSBs.Rows.Clear() dgv_PLmui.Rows.Clear() Dim ds As Double ' Chuyển vị đầu mũi Dim Ptr_mui, Ps_mui, Pmui As Double ReDim P0(nKQ - 1), S0(nKQ - 1), P1(nKQ - 1) Dim coc As Integer ReDim P(count2 - 1) ReDim mui(count2 - 1) For coc = To count2 - P(coc) = Convert.ToDouble(dgv_ToaDoCoc.Rows(coc).Cells(3).Value) P_coc = Convert.ToDouble(dgv_ToaDoCoc.Rows(coc).Cells(3).Value) For i = To nKQ - ds = (i + 1) * bNhayCV ' Bước chuyển vị đầu mũi j = Do Until Convert.ToDouble(dgv_Qz_frmStress.Rows(j).Cells(2).Value) > ds j = j + Loop z1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(2 + * k).Value) z2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) dP1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(1 + * k).Value) dP2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(1 + * k).Value) masat1(z) = (Zbs - z1) / (z2 - z1) * (dP2 - dP1) + dP1 masat1(z) = masat1(z) / 10 masat1(z) = masat1(z) * CocMin * CV dgv_MSBs.Rows(z).Cells(k + coc * nLopDat).Value = masat1(z) tg1 = tg1 + masat1(z) Q1bs = Qbs + masat1(z) Zbs = Zbs + ((Qbs + Q1bs) / 2) * (CocMin / (EA) * 1000) Qbs = Q1bs Next Next tg2 = For k = To nLopDat - ReDim masat0(So_Doan(k) - 1) For z As Integer = To So_Doan(k) - 169 j = Do Until Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) > Zbt j = j + Loop z1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(2 + * k).Value) z2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(2 + * k).Value) dP1 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j - 1).Cells(1 + * k).Value) dP2 = Convert.ToDouble(dgv_Tz_frmStress.Rows(j).Cells(1 + * k).Value) masat0(z) = (Zbt - z1) / (z2 - z1) * (dP2 - dP1) + dP1 ) masat0(z) = masat0(z) / 10 masat0(z) = masat0(z) * CocMin * CV dgv_MSBt.Rows(z).Cells(k + coc * nLopDat).Value = masat0(z) tg2 = tg2 + masat0(z) Q1bt = Qbt + masat0(z) Zbt = Zbt + ((Qbt + Q1bt) / 2) * (CocMin / (EA) * 1000) Qbt = Q1bt Next Next For k = To nLopDat - ReDim masat(So_Doan(k) - 1) For tt123 As Integer = To So_Doan(k) - z1 = dgv_MSBt.Rows(tt123).Cells(k + coc * nLopDat).Value z2 = dgv_MSBs.Rows(tt123).Cells(k + coc * nLopDat).Value masat(tt123) = z2 - (z2 - z1) / (Qbs - Qbt) * (Qbs - P_coc) dgv_Masatben.Rows(tt123).Cells(k + coc * nLopDat).Value = masat(tt123) Next Next Pmui = Ps_mui - (Ps_mui - Ptr_mui) * (P0(_index) - P(coc)) / (P0(_index) - P0(_index - 1)) Exit For End If Next dgv_PLmui.Rows(coc).Cells(0).Value = dgv_ToaDoCoc.Rows(coc).Cells(0).Value dgv_PLmui.Rows(coc).Cells(1).Value = Pmui Next End Sub Dim X_coc() As Double ' Tọa độ X cọc Dim Y_coc() As Double ' Tọa độ Y cọc Dim So_Doan() As Integer Dim _Ncoc As Integer Dim US() As Double Dim Tong_USmui() As Double Dim Tong_USmasat() As Double Dim USmui() As Double Dim USmasat() As Double Dim US_doan() As Double Dim Zi() As Double 'Tọa độ điểm tính ứng suất Dim F1(), F2(), F3(), F4(), F5(), R1(), R2() As Double ' Tính cho mũi Dim F11(), F22(), F33(), F44(), F55(), R11(), R22() As Double ' Tính cho ma sát ' Tính ứng suất Private Sub btn_US_Click(sender As Object, e As EventArgs) Handles btn_US.Click Try Dim Tong As Double = Dim S_usbt As Double = For i As Integer = To Convert.ToInt16(mm - 1) Tong = Tong + Convert.ToDouble(_DoDay(i)) Next 170 Dim L As Double = Convert.ToDouble(txt_L.Text) If L < Tong Then If cbo_diemtinhUS2.SelectedIndex -1 Then Dim i, j, k As Integer _Ncoc = Convert.ToInt32(txt_SoCoc.Text) L = Convert.ToDouble(txt_L.Text) nLopDat = dgv_DatNen.Rows.Count - Dim _dh As Double = Convert.ToDouble(frm_ThongsoCT.txt_CocMin.Text) ' Đoạn chia cọc nhỏ ReDim So_Doan(nLopDat - 1) For i = To nLopDat - So_Doan(i) = Convert.ToInt32(dgv_DatNen.Rows(i).Cells(3).Value) Next Dim _poison As Double = Convert.ToDouble(txt_Poison.Text) Dim _diemUS As Integer = Convert.ToInt16(txt_NpointUS.Text) Dim _KCdiemUS As Double = Convert.ToDouble(txt_KCpointUS.Text) ReDim Tong_USmui(_diemUS), Tong_USmasat(_diemUS) Tong_USmui(0) = Tong_USmasat(0) = Dim _dosau = Convert.ToDouble(txt_Lc.Text) ReDim X_coc(_Ncoc - 1), Y_coc(_Ncoc - 1) For i = To _Ncoc - X_coc(i) = Math.Abs(Convert.ToDouble(dgv_ToaDoCoc.Rows(i).Cells(1).Value)) Y_coc(i) = Math.Abs(Convert.ToDouble(dgv_ToaDoCoc.Rows(i).Cells(2).Value)) If X_coc(i) = And Y_coc(i) = Then X_coc(i) = 0.0000000001 End If Next ReDim Zi(_diemUS) dgv_US.Rows.Clear() Dim _kiemtra As Integer = For i = To dgv_DatNen.RowCount - If L >= kkk(i) And L < kkk(i + 1) Then _kiemtra = i End If Next tg(_kiemtra + 1) = kkk(_kiemtra + 1) - L Dim _sl(100) As Double Dim _pth(100) As Double For i = To 100 _pth(i) = Next For i = _kiemtra + To dgv_DatNen.RowCount - Dim sobuoc As Integer = Convert.ToInt16((Math.Ceiling(tg(i) / _KCdiemUS))) Dim buoccuoi As Double = tg(i) - (sobuoc * _KCdiemUS) If (buoccuoi = 0) = True Then _sl(i) = tg(i) / _KCdiemUS Else _sl(i) = sobuoc - _pth(i) = tg(i) Mod _KCdiemUS End If Next Dim _tg As Double = Dim _tg1 As Double = _tg1 = L dgv_US.Rows.Add() 171 dgv_US.Rows(0).Cells(1).Value = L dgv_US.Rows(0).Cells(0).Value = For i = _kiemtra + To dgv_DatNen.RowCount - For j = Convert.ToInt32(_tg) To Convert.ToInt32((_sl(i))) dgv_US.Rows.Add() dgv_US.Rows(j).Cells(0).Value = j + _tg1 = _tg1 + _KCdiemUS _tg1 = Math.Round(_tg1, 6) dgv_US.Rows(j).Cells(1).Value = _tg1 Next If (_pth(i) = 0) = False Then dgv_US.Rows.Add() dgv_US.Rows(j).Cells(0).Value = j + dgv_US.Rows(j).Cells(1).Value = _tg1 + _pth(i) _tg = j + _sl(i + 1) = _sl(i + 1) + j Else _tg = j _sl(i + 1) = _sl(i + 1) + j - End If _tg1 = _tg1 + _pth(i) Next For i = To dgv_US.RowCount - For jj As Integer = To dgv_DatNen.RowCount - If ((dgv_US.Rows(i).Cells(1).Value) > kkk(jj) Or (dgv_US.Rows(i).Cells(1).Value) = kkk(jj)) And (dgv_US.Rows(i).Cells(1).Value) = h_nuocngam Then S_usbt = If i > Then S_usbt = S_usbt + Convert.ToDouble(dgv_US.Rows(i - 1).Cells(2).Value) End If dgv_US.Rows(i).Cells(2).Value = (Convert.ToDouble(dgv_US.Rows(i).Cells(1).Value) * (Convert.ToDouble(ND_tg(jj).c(5) - 1))) + S_usbt ' Ứng suất thân Else S_usbt = If i > Then S_usbt = S_usbt + dgv_US.Rows(i - 1).Cells(2).Value End If dgv_US.Rows(i).Cells(2).Value = (Convert.ToDouble(dgv_US.Rows(i).Cells(1).Value) * Convert.ToDouble(ND_tg(jj).c(5))) + S_usbt ' Ứng suất thân End If End If Next Next ReDim USmui(_Ncoc - 1), F1(_Ncoc - 1), F2(_Ncoc - 1), F3(_Ncoc 1), F4(_Ncoc - 1), F5(_Ncoc - 1), R1(_Ncoc - 1), R2(_Ncoc - 1) Dim mui As Double ReDim Zi(dgv_US.RowCount - 2) For i = To dgv_US.RowCount - Zi(i) = dgv_US.Rows(i).Cells(1).Value For j = To _Ncoc - mui = Convert.ToDouble(dgv_PLmui.Rows(j).Cells(1).Value) R1(j) = ((Zi(i) - L) ^ + (X_coc(j)) ^ + (Y_coc(j)) ^ 2) ^ 0.5 R2(j) = ((Zi(i) + L) ^ + (X_coc(j)) ^ + (Y_coc(j)) ^ 2) ^ 0.5 USmui(j) = F1(j) = (1 - * _poison) * (Zi(i) - L) / R1(j) ^ F2(j) = (1 - * _poison) * (Zi(i) - L) / R2(j) ^ F3(j) = * (Zi(i) - L) ^ / R1(j) ^ 172 F4(j) = (3 * (3 - * _poison) * Zi(i) * (Zi(i) + L) ^ - * L * (Zi(i) - L) * (5 * Zi(i) - L)) / R2(j) ^ F5(j) = 30 * L * Zi(i) * (Zi(i) + L) ^ / R2(j) ^ USmui(j) = mui * (F1(j) - F2(j) + F3(j) + F4(j) + F5(j)) / (8 * 3.14 * (1 -_poison)) Tong_USmui(i) = Tong_USmui(i) + USmui(j) Next dgv_US.Rows(i).Cells(3).Value = Tong_USmui(i) Next Dim toado() As Double ' Tính tọa độ điểm đặt lực ReDim USmasat(_Ncoc - 1) Dim htong As Double Dim Lop(nLopDat) As Double ' Chiều dày lớp đất Lop(0) = For i = To nLopDat Lop(i) = Convert.ToDouble(dgv_DatNen.Rows(i - 1).Cells(1).Value) Next For i = To dgv_US.RowCount - Tong_USmasat(i) = For j = To _Ncoc - USmasat(j) = htong = For k = To nLopDat - htong = Lop(k) + htong ReDim F11(So_Doan(k) - 1), F22(So_Doan(k) - 1), F33(So_Doan(k) - 1), F44(So_Doan(k) - 1), F55(So_Doan(k) - 1), R11(So_Doan(k) - 1), R22(So_Doan(k) - 1) ReDim masat(So_Doan(k) - 1), US_doan(So_Doan(k) - 1) ReDim toado(So_Doan(k) - 1) For m As Integer = To So_Doan(k) - toado(m) = L - htong - (2 * (m + 1) - 1) / * _dh masat(m) = Convert.ToDouble(dgv_Masatben.Rows(m).Cells(k + j * nLopDat).Value) R11(m) = ((Zi(i) - toado(m)) ^ + (X_coc(j)) ^ + (Y_coc(j)) ^ 2) ^ 0.5 R22(m) = ((Zi(i) + toado(m)) ^ + (X_coc(j)) ^ + (Y_coc(j)) ^ 2) ^ 0.5 F11(m) = (1 - * _poison) * (Zi(i) - toado(m)) / R11(m) ^ F22(m) = (1 - * _poison) * (Zi(i) - toado(m)) / R22(m) ^ F33(m) = * (Zi(i) - toado(m)) ^ / R11(m) ^ F44(m) = (3 * (3 - * _poison) * Zi(i) * (Zi(i) + toado(m)) ^ - * toado(m) * (Zi(i) - toado(m)) * (5 * Zi(i) - toado(m))) / R22(m) ^ F55(m) = 30 * toado(m) * Zi(i) * (Zi(i) + toado(m)) ^ / R22(m) ^ US_doan(m) = masat(m) * (F11(m) - F22(m) + F33(m) + F44(m) + F55(m)) / (8 * 3.14 * (1 - _poison)) USmasat(j) = USmasat(j) + US_doan(m) Next Next Tong_USmasat(i) = Tong_USmasat(i) + USmasat(j) Next dgv_US.Rows(i).Cells(4).Value = Tong_USmasat(i) dgv_US.Rows(i).Cells(5).Value = Tong_USmasat(i) + Tong_USmui(i) Next Sub ThemCot() dgv_ToaDoCoc.Columns.Clear() dgv_ToaDoCoc.Columns.Add(0, "Cọc") dgv_ToaDoCoc.Columns.Add(1, "X") dgv_ToaDoCoc.Columns.Add(2, "Y") dgv_ToaDoCoc.Columns.Add(3, "PL cọc") End Sub Sub ThemCot_KhiTinhSap() dgv_ToaDoCoc.Columns.Clear() dgv_ToaDoCoc.Columns.Add(0, "Cọc") dgv_ToaDoCoc.Columns.Add(1, "X") 173 dgv_ToaDoCoc.Columns.Add(2, "Y") dgv_ToaDoCoc.Columns.Add(3, "PL cọc") dgv_ToaDoCoc.Columns.Add(4, "Hệ số K") End Sub ' Tính phản lực chân cột SAP Private Sub btn_Sap_Click(sender As Object, e As EventArgs) Handles btn_Sap.Click Try If cbo_diemtinhUS.SelectedIndex -1 Then Me.prc.Value = Sap_Call() Me.prc.Value = 10 Sap_Build() ' Lấy liệu từ combobox -Dim index_cbo_diemtinhUS As Integer = index_cbo_diemtinhUS = cbo_diemtinhUS.SelectedIndex Dim n_coc As Integer n_coc = Convert.ToInt32(txt_SoCoc.Text) ' Hàm gọi sap Sub Sap_Call() SapObject = New Sap2000.SapObject SapObject.ApplicationStart() SapModel = SapObject.SapModel ret = SapModel.InitializeNewModel(eUnits.Ton_m_C) End Sub ' Lấy liệu từ combobox -Dim index_cbo_diemtinhUS As Integer = index_cbo_diemtinhUS = cbo_diemtinhUS.SelectedIndex btn_Sap.Enabled = True Dim n_coc, nx_coc, ny_coc As Integer Dim kc_coc, Ld, Bd, Dcoc, Xo, Yo As Double Dim i, j As Integer nx_coc = Convert.ToInt32(txt_cocL.Text) ny_coc = Convert.ToInt32(txt_cocB.Text) kc_coc = Convert.ToDouble(txt_KC.Text) Dcoc = Convert.ToDouble(txt_Dcoc.Text) txt_SoCoc.Text = nx_coc * ny_coc n_coc = Convert.ToInt32(txt_SoCoc.Text) Xo = Convert.ToDouble(dgv_toadodiem.Rows(index_cbo_diemtinhUS).Cells(0).Value) Yo = Convert.ToDouble(dgv_toadodiem.Rows(index_cbo_diemtinhUS).Cells(1).Value) Ld = (nx_coc - 1) * kc_coc + * Dcoc Bd = (ny_coc - 1) * kc_coc + * Dcoc txt_Ld.Text = Ld.ToString txt_Bd.Text = Bd.ToString Dim ToaDoX(n_coc - 1) As Double Dim ToaDoY(n_coc - 1) As Double For i = To ny_coc - For j = To nx_coc - ToaDoX(i * nx_coc + j) = Math.Round((-Ld / + Xo + Dcoc + kc_coc * j), 2) ToaDoY(i * nx_coc + j) = Math.Round((Bd / + Yo - Dcoc - kc_coc * i), 2) Next Next ThemCot_KhiTinhSap() dgv_ToaDoCoc.Rows.Clear() cbo_LstCoc.Items.Clear() For i = To n_coc - dgv_ToaDoCoc.Rows.Add() dgv_ToaDoCoc.Rows(i).Cells(0).Value = (i + 1).ToString dgv_ToaDoCoc.Rows(i).Cells(1).Value = ToaDoX(i).ToString 174 dgv_ToaDoCoc.Rows(i).Cells(2).Value = ToaDoY(i).ToString dgv_ToaDoCoc.Rows(i).Cells(4).Value = txt_HSnen.Text Next If cbo_Coc.SelectedIndex -1 Then Dim _index As Integer = _index = cbo_Coc.SelectedIndex Dulieu_Coc(_index).Luc_doc = txt_Nc.Text Dulieu_Coc(_index).M_x = txt_Mx.Text Dulieu_Coc(_index).M_y = txt_My.Text Dulieu_Coc(_index).SodiemUS = Convert.ToDouble(txt_sdUS.Text) ReDim Dulieu_Coc(_index).Phuong_X(100) ReDim Dulieu_Coc(_index).Phuong_Y(100) For i = To Dulieu_Coc(_index).SodiemUS - Dulieu_Coc(_index).Phuong_X(i) = Convert.ToDouble(dgv_toadodiem.Rows(i).Cells(0).Value) Dulieu_Coc(_index).Phuong_Y(i) = Convert.ToDouble(dgv_toadodiem.Rows(i).Cells(1).Value) Next Dulieu_Coc(_index).SL_Coc = Convert.ToDouble(txt_SoCoc.Text) Dulieu_Coc(_index).SL_L = Convert.ToDouble(txt_cocL.Text) Dulieu_Coc(_index).SL_B = Convert.ToDouble(txt_cocB.Text) Dulieu_Coc(_index).Khoang_cach = Convert.ToDouble(txt_KC.Text) Dulieu_Coc(_index).Chieu_cao = Convert.ToDouble(txt_Hd.Text) Dulieu_Coc(_index).kt = True End If End If Catch ex As Exception MsgBox(ex.Message, 16, "Lỗi!!!") End Try End Sub ' Hàm chạy sap Sub Sap_Build() If cbo_diemtinhUS.SelectedIndex -1 Then ' Tiết diện đài B = Val(txt_Bd.Text) L = Val(txt_Ld.Text) H = Val(txt_Hd.Text) n = Convert.ToInt32(txt_SoCoc.Text) Dim n_coc, nx_coc, ny_coc As Integer Dim kc_coc, Ld, Bd, Dcoc, Xo, Yo As Double n_coc = Convert.ToInt32(txt_SoCoc.Text) nx_coc = Convert.ToInt32(txt_cocL.Text) ny_coc = Convert.ToInt32(txt_cocB.Text) kc_coc = Convert.ToDouble(txt_KC.Text) Dcoc = Convert.ToDouble(txt_Dcoc.Text) Ld = (nx_coc - 1) * kc_coc + * Dcoc Bd = (ny_coc - 1) * kc_coc + * Dcoc Xo = Yo = Dim ToaDoXo(n_coc) As Double Dim ToaDoYo(n_coc) As Double For i = To ny_coc - For j = To nx_coc - ToaDoXo(i * nx_coc + j) = Math.Round((-Ld / + Xo + Dcoc + kc_coc * j), 2) ToaDoYo(i * nx_coc + j) = Math.Round((Bd / + Yo - Dcoc - kc_coc * i), 2) Next Next cot(0) = cot(1) = 175 ret = SapModel.PointObj.AddCartesian(cot(0), cot(1), 0, Name, NamePointColumn) Me.prc.Value = 20 ret = SapModel.LoadPatterns.Add("DEAD", Sap2000.eLoadPatternType.LTYPE_DEAD, 0) Dim value(5) As Double value(2) = -Val(txt_Nc.Text) value(3) = Val(txt_Mx.Text) value(4) = Val(txt_My.Text) ret = SapModel.PointObj.SetLoadForce(NamePointColumn, "DEAD", value, True) ret = SapModel.View.RefreshView(0, False) Dim NamePile(n) As String Dim xx(n) As Double Dim yy(n) As Double Dim zz(n) As Double Dim kk(n) As Double For i = To n NamePile(i) = "Pile" & dgv_ToaDoCoc.Rows(i).Cells(0).Value xx(i) = ToaDoXo(i) yy(i) = ToaDoYo(i) kk(i) = dgv_ToaDoCoc.Rows(i).Cells(4).Value zz(i) = Next Me.prc.Value = 30 x(0) = -B / y(0) = -L / z(0) = x(1) = B / y(1) = -L / z(1) = x(2) = B / y(2) = L / z(2) = x(3) = -B / y(3) = L / z(3) = ret = SapModel.PropArea.SetShell("Dai", 1, "BT", 0, H, 12) ret = SapModel.AreaObj.AddByCoord(4, x, y, z, Name, , NameAreaFountain) Me.prc.Value = 40 Dim listcanh1(n) As String Dim listcanh2(n) As String Dim listdiem(n) As String ReDim NamePointPile(n) For i = To n If (xx(i) = cot(0)) And (yy(i) = cot(1)) Then NamePointColumn = listdiem(i) ret = SapModel.PointObj.AddCartesian(xx(i), yy(i), zz(i), NamePointPile(i), NamePile(i)) Next Me.prc.Value = 50 For i = To n listcanh1(i) = "canh1" & i listcanh2(i) = "canh2" & i ret = SapModel.FrameObj.AddByCoord(0, yy(i), 0, B, yy(i), 0, listcanh1(i)) ret = SapModel.FrameObj.AddByCoord(xx(i), 0, 0, xx(i), L, 0, listcanh2(i)) Next For i = To n Dim k(5) As Double k(2) = kk(i) ret = SapModel.PointObj.SetSpring(NamePile(i), k) Next Me.prc.Value = 60 176 ReDim DOF(5) For i = To DOF(i) = True Next ret = SapModel.SelectObj.All ret = SapModel.EditArea.Divide("1", 4, NumberAreas, AreaName, , , , , , , , True) For i = To n ret = SapModel.FrameObj.Delete(listcanh1(i)) ret = SapModel.FrameObj.Delete(listcanh2(i)) Next Me.prc.Value = 70 'Luu file ret = SapModel.File.Save("Test") 'Run analysis ret = SapModel.Analyze.SetActiveDOF(DOF.ToArray) ret = SapModel.Analyze.SetRunCaseFlag("DEAD", True) ret = SapModel.Analyze.SetRunCaseFlag("MODAL", False) ret = SapModel.Analyze.RunAnalysis Me.prc.Value = 80 ret = SapModel.Results.Setup.SetCaseSelectedForOutput("DEAD") ret = SapModel.SelectObj.All For i As Integer = To n - ret = SapModel.Results.JointReact(NamePile(i), eItemTypeElm.Element, NumberResults, Obj, Elm, LoadCase, StepType, StepNum, F1, F2, F3, M1, M2, M3) dgv_ToaDoCoc.Rows(i).Cells(3).Value = Format(F3(0), "0.00") Next Me.prc.Value = 100 Sap_Exit() End If End Sub ' Hàm thoát sap Sub Sap_Exit() ret = SapObject.ApplicationExit(False) SapModel = Nothing SapObject = Nothing End Sub 177 PHỤ LỤC 2: KẾT QUẢ TÍNH TOÁN 178 I ... lên cọc, tính độ lún cọc đơn Trong trường hợp này, thường có độ lún khác cọc đài; 2) Đài cọc tuyệt đối cứng (không xoay), tất cọc có độ lún Trường hợp này, có độ lún phân bố cọc tải trọng cọc phân. .. nhóm cọc có xét đến phân bố ma sát dọc thân cọc (SDF); Chương 4: Phân tích đánh giá kết tính lún mơ hình SDF; Kết luận kiến nghị; Danh mục cơng trình cơng bố; Tài liệu tham khảo; Phụ lục tính. .. TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG DƯƠNG DIỆP THÚY Mã số: 62131106 MỘT MƠ HÌNH TÍNH LÚN CỦA MĨNG CỌC CĨ XÉT ĐẾN PHÂN BỐ CỦA MA SÁT DỌC THÂN CỌC CHUYÊN NGÀNH: ĐỊA KỸ THUẬT XÂY DỰNG MÃ SỐ: 62580211 LUẬN