Đồ án Tính toán nội lực và cốt thép cấu kiện của khung bê tông cốt thép

1. Nhận xét: a. Ưu điểm: Tính toán được nội lực của khung từ đó đưa ra được các tổ hợp nội lực mà người dùng định nghĩa và nếu người dùng muốn chương trình còn đưa ra được diện tích cốt thép dọc trong các cấu kiện dầm cột của khung và thể hiện chúng một cách trực quan lên khung tiện theo dõi. b. Nhược điểm: Chương trình chưa hoàn chỉnh, trong quá trình giải quyết bài toán vấn đề phân biệt dầm và cột còn đơn giản, chỉ dựa vào tọa độ nút đầu nút cuối để phân biệt trong khi thực tế dầm là cấu kiện chịu uốn chính còn cột là cấu kiện vừa chịu nén vừa chịu uốn. Giao diện còn thiếu thân thiện. Chưa bẫy lỗi hoàn chỉnh 2. Hướng pháp triển: Khắc phục những nhược điểm của chương trình hiện thời: Phát triển xây dựng chương trình tính toán hoàn chỉnh kết cấu khung và tính toán cốt thép theo tiêu chuẩn Việt Nam. Hỗ trợ đầy đủ việc kết xuất dữ liệu. Xây dựng thêm một số tiện ích khác giúp người dùng tiếp cận chương trình một cách dễ dàng hơn.

doc77 trang | Chia sẻ: oanh_nt | Lượt xem: 1394 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Tính toán nội lực và cốt thép cấu kiện của khung bê tông cốt thép, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tử (đốt). +Chọn hàm xấp xỉ thích hợp: Do đại lượng cần tìm chưa biết nên ta giả thiết dạng xấp xỉ của nó sao cho đơn giản với tính toán bằng máy tính nhưng phải thoả mãn các tiêu chuẩn hội tụ. Sau đó biểu diễn dạng xấp xỉ theo tập hợp giá trị và có thể cả đạo hàm của nó tại các nút của phần tử. +Xây dựng ma trận độ cứng [K]i cho các phần tử: Dựa vào đặc trưng hình học của các tiết diện ta tính được F, J, Yc của từng phần tử. Sau đó dựa vào điều kiện liên kết xác định được kiểu phần tử từ đó xây dựng được [K]i. +Lập ma trận [P]i cho từng phần tử trong hệ toạ độ địa phương: Xác định [Pg]i, [Pp]i Xác địhh [P]i = [Pg]i + [Pp]i +Lập phương trình cân bằng các phần tử trong hệ toạ độ địa phương: [P]i = [K]i * [q]i +Lập phương trình cân bằng các phần tử trong hệ toạ độ chung: - Lập [T]i ® [T]iT - Tìm [P’ ]i = [T]iT * [P] i - Tìm [K’]i = [T]iT * [K]i * [T]i - Tìm [q’]i = [T]Ti * [q]i - Lập [P’]i = [K’]i * [q’]i +Lập ma trận cân bằng của toàn hệ trong hệ toạ độ chung: Gộp các ma trận [K]i được ma trận [K] toàn hệ. - Khử trùng lặp: [P’] ® [P’’] [K’] ® [K’’] [q’] ® [q’’] - Đưa vào điều kiện biên: [P’’] ® [P*] [K’’] ® [K*] [q’’] ® [q*] - Lập [P*] = [K*] * [q*] + Giải hệ phương trình tìm q* toàn hệ: [q*] = [K*] -1 * [P*] + Dựa vào q* xác định nội của các phần tử trong toàn hệ. 3.Các bước thực hiện Bước 1: Rời rạc hoá kết cấu chia thành các thanh, các nút phần tử, đánh số nút, phần tử sao cho nút đầu nhỏ hơn nút cuối. Bước 2: Lập hệ toạ độ riêng chung cho các phần tử. Bước 3: Đây là bài toán phẳng, hàm chuyển vị có dạng: [u] = { ux (x,y) + uy (x,y)} Bước 4: Lập ma trận độ cứng phần tử trong hệ toạ độ địa phương.Việc lập ma trận này phụ thuộc vào dạng phần tử. Phần tử có thể là thanh hai đầu ngàm, đầu ngàm đầu khớp hay đầu khớp đầu ngàm. + Thanh 2đầu ngàm EF/l 0 0 EF/l 0 0 0 12EF/l3 6EF/l2 0 -12EF/l3 6EF/l2 [K]i = 0 6EF/l2 4EF/l 0 -6EF/l2 2EF/l EF/l 0 0 EF/l 0 0 0 -12EF/l3 -6EF/l2 0 12EF/l3 -6EF/l2 0 6EF/l2 2EF/l 0 -6EF/l2 4EF/l + Thanh đầu ngàm - đầu khớp EF/l 0 0 -EF/l 0 0 0 3EF/l3 3EF/l2 0 -3EF/l3 0 [K]i = 0 3EF/l2 3EF/l 0 -3EF/l3 0 -EF/l 0 0 EF/l 0 0 0 -3EF/l3 -3EF/l2 0 3EF/l3 0 0 0 0 0 0 0 + Thanh đầu khớp - đầu ngàm EF/l 0 0 -EF/l 0 0 0 3EF/l3 0 0 -3EF/l3 3EF/l3 [K]i = 0 0 0 0 0 0 -EF/l 0 0 EF/l 0 0 0 -3EF/l3 0 0 3EF/l3 -3EF/l3 0 3EF/l3 0 0 -3EF/l3 3EF/l3 Bước 5: Lập ma trận tải trọng nút [P]i trong hệ toạ độ địa phương + Thanh 2đầu ngàm - Tải trọng phân bố đều [Pg]i = { Pxl/2 Pyl/2 Py l2/12 Px l/2 Py l/2 - Py l2/12 } - Tải tập trung trên thanh H1 (hl) T H2 (xl) P + H’2 (gl) M [Pp]i = H3 (xl) P + H’3 (gl) M H4 (hl) T H5 (xl) P + H’5 (gl) M H6 (xl) P + H’6 (gl) M + Thanh đầu ngàm - đầu khớp - Tải trọng phân bố đều [Pg]i = { Pxl/2 5/8Pyl Py l2/8 Px l/2 3/8Py l 0 } - Tải tập trung trên thanh H1 (hl) T H*2 (xl) P + H*’2 (gl) M [Pp]i = H*3 (xl) P + H*’3 (gl) M H4 (hl) T H*5 (xl) P + H*’5 (gl) M H*6 (xl) P + H*’6 (gl) M + Thanh đầu khớp - đầu ngàm - Tải trọng phân bố đều [Pg]i = { Pxl/2 3/8Pyl 0 Px l/2 5/8Py l Py l2/8 } - Tải tập trung trên thanh H1 (hl) T H*5 (xl) P + H*’5 (gl) M [Pp]i = H*6 (xl) P + H*’6 (gl) M H4 (hl) T H*2 (xl) P + H*’2 (gl) M H*3 (xl) P + H*’3 (gl) M Trong đó: l là chiều dài thanh Px là lực phân bố dọc theo trục thanh. Py là lực phân bố vuông góc với trục thanh. T là lực tập trung dọc theo trục thanh đặt cách nút trái một khoảng hl. P là lực tập trung vuông góc trục thanh đặt cách nút trái một khoảng xl. M là mô men tập trung đặt cách nút trái một khoảng gl. Hi là các hàm Hermite có tính trực giao. Bước 6: Lập phương trình cân bằng của các phần tử trong hệ toạ độ địa phương [P]i = [K]i * [q]i Bước 7: Lập phương trình cân bằng của các phần tử trong hệ toạ độ chung - Lập [T]i ® [T]iT - Tìm [P’ ]i = [T]iT * [P]i - Tìm [K’]i = [T]iT * [K]i * [T]i - Tìm [q’]i = [T]Ti * [q]i - Lập [P’]i = [K’]i * [q’]i Ma trận chuyển trục toạ độ [T]i Cosa Sina 0 0 0 0 -Sina Cosa 0 0 0 0 0 0 1 0 0 0 0 0 0 Cosa Sina 0 0 0 0 -Sina Cosa 0 0 0 0 0 0 1 Từ ma trận [T] ta suy ra được ma trận [T]T. Bước 8: Gộp các phần tử hữu hạn được phương trình cân bằng của toàn hệ trong hệ toạ độ chung. [P]i = [K]i * [q]i Bước 9: Khử suy biến. Lúc này đưa điều kiện biên vào để khử suy biến ma trận [K] bằng cách bỏ hàng, bỏ cột tương ứng với số bậc tự do mà ở đó chuyển vị bằng 0. Phương trình cân băng của toàn hệ sau khi khử suy biến: [P*] = [K*] * [q*] Bước 10: Giải hệ phương trình [P*] = [K*] * [q*] Xác định ma trận chuyển vị nút của toàn hệ : [q*] = [K*] -1 * [P*] Bước 11: Đưa kết quả chuyển vị về lại các phần tử, lúc này bài toán đã biết chuyển vị của các nút của các phần tử. Dựa vào độ cứng của phần tử sẽ xác định được nội lực của các phần tử. III. PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH: A. TỔNG QUAN VỀ UML: Bước đầu tiên trong quá trình xây dựng một phần mềm nào đó là quá trình thiết kế chương trình hay còn gọi là quá trình phân tích bài toán và hệ thống. Quá trình phân tích nhìn chung là hệ quả của việc trả lời câu hỏi: “ Hệ thống cần phải làm gì?”. Quá trình phân tích bao gồm việc nghiên cứu lý thuyết có liên quan, tìm ra được chức năng của hệ thống và mối quan hệ giữa các phần tử trong và ngoài hệ thống. UML là một ngôn ngữ mô hình hóa thống nhất có phần chính bao gồm các ký hiệu hình học được các phương pháp hướng đối tượng sử dụng và miêu tả các thiết kế của hệ thống. Nó là một ngôn ngữ để đặc tả trực quan hóa, xây dựng và làm tư liệu cho nhiều khía cạnh khác nhau của một hệ thống có nồng độ phần mềm cao. Giai đoạn phân tích quan tâm đến quá trình trừu tượng hoa đầu tiên ( các lớp và các đối tượng) cũng như có chế hiện hữu trong phạm vi vấn đề. Sau khi nhà phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ giữa chúng với nhau, các lớp cùng với các mối quan hệ đó sẽ được miêu tả bằng công cụ biểu đồ lớp ( class diagram) của UML. Sự cộng tác giữa các lớp nhằm thực hiện các Use case cũng sẽ được miêu tả nhờ vào các mô hình động ( dynamic models) của UML. Do mô hình nhận được khi sử dụng UML để thiết kế hệ thống là hình thức hóa nên ta có thể sử dụng các công cụ phần mềm để chuyển nó sang ngôn ngữ lập trình tương ứng như Visual Basic, Visual C++, Java…Quá trình này còn có thể tiến hành theo chiều ngược lại theo nghĩa: từ mã nguồn tương ứng với ngôn ngữ lập trình cụ thể nào đó, ta có thể chuyển ngược lại thành các phần tử của mô hình. Việc chuyển từ mô hình sang mã nguồn các ngôn ngữ lập trình tương ứng gọi là kỹ thuật Forward, ngược lại việc chuyển từ mã nguồn thành các phần tử trong mô hình gọi là kỹ thuật Reserver. UML tạo cơ sở để tự động hóa toàn bộ tiến trình phần mềm, rút ngắn thời gian xây dựng phần mềm đồng thời tăng chất lượng phần mềm. Để có thể xây dựng nên những mô hình – những bản thiết kế phần mềm, người phát triển phần mềm ngoài việc nắm vững UML còn phải có kiến thức xây dựng mô hình đối tượng và kỹ năng về phân tích và thiết kế một hệ thống phần mềm. UML gồm các thành phần sau đây: 1. Các biểu đồ trong UML: Biểu đồ trong UML là một tập các ký hiệu hình học được tổ chức theo một trật tự nhất định nhằm biểu diễn hệ thống theo khía cạnh cụ thể. Biểu đồ dùng làm trực quan một hệ thống theo một quan điểm nào đó. Vậy tên biểu đồ là một thể hiện cho một hệ thống. Biểu đồ biểu diễn một cách nhìn thu gọn các phần tử làm nên hệ thống. Cùng một phần tử có thể xuất hiện trong một biểu đồ hay một số biểu đồ. Một mô hình hệ thống đặc trưng thường được biểu diễn bởi nhiều loại biểu đồ khác nhau, trong đó mỗi biểu đồ thường được tương ứng với một cách nhìn cụ thể về hệ thống. Trong UML có các loại biểu đồ sau: Biểu đô lớp ( Class diagram): Chứa các lớp, các giao diện, các cộng tác, các quan hệ phụ thuộc tổng quát hóa và liên kết. Biểu đồ Use Case: gồm các actor và các use case cùng với những mối quan hệ tương tác giữa chúng để tạo nên mô hình hành vi hệ thống. Mỗi một use case ứng với một chức năng mà hệ thống cần cung cấp. Biểu đồ trạng thái ( Statechart diagram): gồm một tập các trạng thái có thể đạt tới và các quá trình chuyển trạng thái của những đối tượng thuộc lớp khi có một sự kiện xảy ra. Biểu đồ tuần tự ( sequence diagram): biểu diễn sự tác động qua lại giữa các đối tượng theo trình tự thời gian ta sử dụng biểu đồ tuần tự. Biểu đồ cộng tác ( Collaboration diagram): cũng thể hiện sự tác động qua lại giữa các lớp, các đối tượng có liên quan trong kịch cảnh của hệ thống. Biểu đồ hoạt động ( Active diagram): chỉ ra một trình tự lần lượt của các hoạt động. Biểu đồ thành phần ( Component diagram ): chỉ ra cấu trúc vật lý của các dòng lệnh (code) theo khái niệm thành phần code. Biểu đồ triển khai ( Deployment diagram ): chỉ ra kiến trúc vật lý của phần cứng cũng như phần mềm trong hệ thống. 2. Các phần tử trong mô hình: Gồm: Lớp ( class): là sự mô tả một tập các đối tượng có cùng thuộc tính, tác vụ, mối quan hệ và ngữ nghĩa, đồng thời chỉ ra cấu trúc dữ liệu và các hành vi ứng xử của một tập các đối tượng. Đối tượng (Object): là khái niệm dùng để trừu tượng hóa một sự vật hay cái gì đó trong Thế giới thực, bao gồm cả trạng thái, các hành vi và định danh của một thực thể. Trạng thái (State): Chỉ tình huống khi đối tượng thỏa mãn một số điều kiện, thực hiện một hành động hay chờ đợi một sự kiện nào đó xảy ra. Tác nhân ( Actor): chỉ một người, một sự vật có tương tác với hệ thống. Tình huống sử dụng ( use case ): là một chuỗi hành động bao gồm tất cả các biến thể của nó mà một hệ thống thực hiện sẽ đem lại kết quả có thể quan sát được là giá trị của một tác nhân. Kịch bản: chỉ ra luồng các sự kiện trong trường hợp use case cụ thể. Node: chỉ các đối tượng vật lý hay thiết bị có khả năng tính toán hoặc sử dụng các tài nguyên của hệ thống vào thời điểm thực thi. Gói: dùng để nhóm một tập hợp các use case thông dụng chung lại với nhau. Chú giải: là ký hiệu dùng để biểu diễn những chú thích hoặc những lời bình phẩm nhằm làm sáng tỏ các thông tin, ý nghĩa và vai trò của một phần tử trong mô hình. 3. Các mối quan hệ giữa các phần tử trong UML: - Quan hệ phụ thuộc: trường hợp một lớp hoặc một thành phần có sự thay đổi thì ảnh hưởng tới lớp hoặc thành phần kia khi sử dụng nó. Ký hiệu là: ---------------> - Tổng quát hóa: mối quan hệ giữa một sự vật tổng quát và các thành phần chuyên biệt của chúng, nghĩa là các đối tượng của lớp con được sử dụng ở bất cứ nơi nào mà lớp cha xuất hiện, nhưng ngược lại thì không đúng. Ký hiệu là: - Quan hệ liên kết ( Association): các đối tượng của sự vật này được kết nối với các đối tượng của sự vật khác. Một lớp có quan hệ liên kết với một lớp khác thì có thể truyền thông điệp hoặc truy cập tới mọi thành phần dùng chung của lớp đó. - Quan hệ tập hợp ( Aggregation): là một liên kết đơn giản giữa hai lớp biểu diễn mối quan hệ có cấu trúc tương đương, nghĩa là cả hai lớp về mặt khái niệm đều cùng một mức, không lớp nào quan trọng hơn lớp nào. Ký hiệu là: B, PHÂN TÍCH THIẾT KẾ: Trên cơ sở một vài kiến thức nho nhỏ về UML, tiến hành phân tích các yêu cầu của bài toán đặt ra sau đây: Hệ thống ( hay còn gọi là Chương trình) tính toán nội lực và cốt thép khung BTCT là hệ thống đáp ứng được mọi nhu cầu của người làm kết cấu xung quanh vấn đề tính toán nội lực, cốt thép từ việc nhập dữ liệu, phân tích dữ liệu cũng như nội lực và đưa ra kết quả mong muốn về nội lực và cốt thép…. Ngoài ra, chương trình còn có chức năng trợ giúp (help) cho những người lần đầu tiếp xúc với hệ thống. Ta xem xét các yêu cầu của hệ thống xung thông qua các biểu đồ UML sau đây: 1. Biểu đồ ngữ cảnh: Hệ thống mà ta cần xây dựng tác động không ngừng với môi trường của nó. Trong giai đoạn đấu tiên của sự phân tích, có thể cho rằng hệ thống được xem xét như một hộp đen phản ứng lại các yêu cầu và những thông điệp từ môi trường. Môi trường gồm vài tác nhân. Mỗi tác nhân tương tác với hệ thống với mục đích khác nhau để trao đổi một tập hợp các thông điệp khác nhau. Biểu đồ mức ngữ cảnh được thể hiện dưới đây cho thấy tất cả các nhân tố có tương tác với hệ thống. Hệ thống tính toán khung BTCT nói riêng cũng như một hệ thống phân tích kết cấu nói chung nhận dạng duy nhất một tác nhân: đó là người dùng hệ thống. Người dùng là tác nhân duy nhất làm việc trực tiếp với hệ thống thông qua giao diện người dùng để đạt tới mục đích của mình. Hệ thống tính toán khung BTCT là một hệ thống trợ giúp người làm kết cấu trong quá trình tính toán. Đây là bài toán đặc thù của chuyên ngành sản xuất Xây dựng cho nên, để tương tác được với hệ thống này thì chỉ có duy nhất người sử dụng hệ thống, là người làm kết cấu hoặc kiểm tra, thẩm định kết cấu – là người phải hiểu rõ thấu đáo chuyên ngành của mình, biết được rõ bản chất của vấn đề cũng như lý thuyết có liên quan đến kết cấu nói chung và khung BTCT. Khi công việc của người làm kết cấu đòi hỏi việc tính toán khung BTCT thì việc tiếp xúc, làm việc với hệ thống là một điều thuận lợi, giúp cho quá trình tính toán kết cấu nhanh hơn. Người làm kết cấu với tư cách là người tiếp xúc trực tiếp với hệ thống cần có những dữ liệu liên quan cần thiết cho việc giải quyết bài toán. Hệ thống yêu cầu nhập dữ liệu để thực hiện quá trình tính toán buộc người dùng phải nhập đầy đủ dữ liệu. Công việc tính toán sẽ được thực hiện nếu người dùng có yêu cầu phân tích kết quả (phân tích nội lực). Sau khi nhận lệnh, hệ thống sẽ làm nhiệm vụ tính toán theo thuật toán đã được lập trình sẵn trong hệ thống và hiển thị kết quả tìm được theo yêu cầu cụ thể của người dùng, ví dụ như hiển thị chuyển vị, nội lực và kết quả tính thép… Một thực tế là thông thường người làm kết cấu lại không phải là người viết lên chương trình tính toán này nên nếu những người dùng lần đầu tiên tiếp xúc với chương trình hoặc sử dụng chương trình chưa thành thạo thì người dùng cần có hướng dẫn sử dụng chương trình để tránh khỏi những thao tác dẫn đến sai kết quả. Việc tính toán kết cấu mà cho kết quả sai thì dẫn đến hậu quả rất lớn. Do vậy, người dùng sẽ có yêu cầu trợ giúp đòi hỏi hệ thống đáp ứng yêu cầu của mình. Căn cứ vào vấn đề mà người dùng đòi hỏi trợ giúp, hệ thống sẽ hiển thị sự trợ giúp tới người dùng. 2. Những tình huống sử dụng (Biểu đồ Use Case ): Tình huống sử dụng miêu tả những hoạt động từ quan điểm của người sử dụng. Mỗi tình huống sử dụng là một cách khác nhau để sử dụng hệ thống, và mỗi tình huống sử dụng khác nhau có kết quả khác nhau khi hoàn thành. Hình vẽ dưới đây là biểu đồ Use Case cho thấy các chức năng chính của hệ thống cần xây dựng. Hình 2.2: Biểu đồ Use Case của hệ thống. Nhập dữ liệu vào cơ sở dữ liệu: Gồm có thao tác với tệp, định nghĩa vật liệu, tiết diện, vẽ sơ đồ kết cấu, sửa chữa... Người dùng nhập tất cả những dữ liệu có liên quan đến việc tính toán nội lực và thép, ví dụ: dữ liệu về khung, dữ liệu về vật liệu, tiết diện... trong quá trình nhập dữ liệu, toàn bộ dữ liệu sẽ được hiển thị trực quan giúp người sủ dụng kiểm soát được quá trình làm việc. Chương trình sẽ hiển thị dữ liệu ở 2 dạng: PictureBox (thể hiện sơ đồ kết cấu, ngoại lực... ) và các FORM (thể hiện các thông tin khác) Tính toán: Hệ thống gồm các modun tính toán làm nhiệm vụ tính toán các đại lượng cần thiết như nội lực, chuyển vị, tính thép…khi người dùng có yêu cầu. Đưa ra kết quả: Hệ thống phải hiển thị được dữ liệu đúng như người dùng yêu cầu. Hiển thị trợ giúp: Hệ thống phải hiển thị được phần có liên quan đến những thắc mắc của người dùng trong phần trợ giúp của hệ thống. Hiển thị dữ liệu đưa vào: Hệ thống phải hiển thị dữ liệu mà người dùng đã nhập vào trước đó, việc này cần thiết khi người dùng kiểm tra lại dữ liệu đã nhập. 3. Biểu đồ lớp (Class Diagram ): Biểu đồ lớp nói lên quan hệ giữa các lớp. Quan hệ giữa các lớp có thể là quan hệ nối kết hoặc quan hệ phụ thuộc,chuyên biệt hóa hay đóng gói. Các mối quan hệ đó đều được thể hiện đi kèm với cấu trúc bên trong của các lớp theo khái niệm thuộc tính và thủ tục. a. FORM: b. Kết qủa: c. Module: 4. Biểu đồ tuần tự: Biểu đồ tuần tự mô tả những gì sẽ xảy ra khi người làm kết cấu làm việc với hệ thống. Biểu đồ này miêu tả đầy đủ các khả năng sẽ xảy ra trong quá trình làm việc của người dùng. Trên thực tế, có thể sẽ không diễn ra hết các quá trình như dưới đây. Người dùng nhập vào dữ liệu khi làm việc với hệ thống. Hệ thống sẽ lưu trữ những thông tin này vào các biến của hệ thống. Người dùng có thể chạy chương trình ngay khi đã nhập xong dữ liệu của bài toán hoặc có thể chạy chương trình sau đó bằng cách lựa chọn chức năng lưu tệp của chương trình. Nếu người dùng chạy chương trình ngay thì một yêu cầu đặt ra là phải lưu tệp. Do vậy, sau khi lưu tệp, các chức năng tính toán phân tích cũng như hiển thị kết quả mới được kích hoạt. Người dùng có thể lưu tệp rồi thoát khỏi ứng dụng nếu cần. Sau khi chạy chương trình, người dùng yêu cầu hiển thị kết quả, hệ thống sẽ hiển thị kết quả theo đúng mong muốn của người dùng thông qua menu yêu cầu. Biểu đồ tuần tự khi người dùng thao tác với tệp. Biểu đồ tuần tự khi người dùng thao tac hiển thị. Biểu đồ tuần tự khi người dùng thao tac định nghĩa vật liệu.. Biểu đồ tuần tự khi người dùng thao tac định nghĩa tiết diện.. Biểu đồ tuần tự khi người dùng thao tac định nghĩa tải trọng. Biểu đồ tuần tự khi người dùng thao tac gán tiết diện.. Biểu đồ tuần tự khi người dùng thao tac xem kết quả. 5. Biểu đồ cộng tác: Như đã trình bày ở trên, biểu đồ cộng tác cũng giống như biểu đồ tuần tự, thể hiện sự tác động qua lại giữa các lớp, các đối tượng có liên qua trong kịch cảnh hệ thống. Tuy nhiên, biểu đồ cộng tác không thể hiện sự cộng tác giữa các đối tượng theo trình tự thời gian mà tập trung thể hiện sự tương tác và mối quan hệ của từng cặp đối tượng trong kịch bản và ưu điểm của nó là có thể chỉ ra các chi tiết về các lệnh gọi hàm, thủ tục. Với công cụ hỗ trợ cho ngôn ngữ UML, phần mềm Rational Rose cung cấp cho người dùng một biểu đồ cộng tác từ biểu đồ tuần tự với phím F5. Do vậy mà ta có biểu đồ cộng tác sau đây: Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu về tệp. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu hiển thị. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu định nghĩa vật liêu. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu định nghĩa tiết diện. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu định nghĩa tải trọng. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu gán tiết diện. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu xem kết quả. Biểu đồ cộng tác của hệ thống khi người dùng có yêu cầu trợ giúp. 6. Biểu đồ trạng thái: Biểu đồ trạng thái mô tả trạng thái của các đối tượng trong hệ thống trong quá trình hoạt động. Như đã nêu ở trên, hệ thống gồm 19 đối tượng trong đó gồm có 9 đối tượng form dùng để nhập dữ liệu và hiển thị kêt quả, 4 đối tượng dùng để chứa dữ liệu vào ra chương trình và 6 đối tượng Modun chứa các mô đun tính toán nội lực, thép và vẽ. Xét đối tượng khung, đại diện cho các đối tượng lưu dữ liệu do người dùng nhập vào. Hình 2.6: Biểu đồ trạng thái của đối tượng Khung. Ban đầu khi ứng dụng được khởi động, đối tượng ở trạng thái rỗng vì người dùng chưa nhập dữ liệu liên quan. Sau khi người dùng nhập dữ liệu hoặc gọi tệp đã có sẵn trên đĩa, đối tượng chuyển sạng trạng thái chứa dữ liệu. Lúc này các trường của đối tượng đã mang các giá trị cụ thể và phục vụ cho quá trình chạy chương trình. Và trạng thái này sẽ duy trì cho đến khi người dùng kết thúc ứng dụng. Trong quá trình thao tác với hệ thống, người dùng có thể tạo mới một tệp khác ứng với một trường hợp khác thì đối tượng lại quay trở về trạng thái rỗng như lúc ứng dụng được khởi động và lặp lại những trạng thái tất yếu của nó. Ta lại xét đối tượng kết quả của chương trình. Từ khi ứng dụng được khởi động cho đến khi người dùng nhập dữ liệu cần thiết cho bài toán thì Nội lực và cốt thép vẫn ở trạng thái rỗng. Trạng thái của đối tượng này chỉ thay đổi, nghĩa là sang trạng thái Chứa dữ liệu khi người dùng có yêu cầu hệ thống phân tích nội lực và tính thép. Khi ứng dụng kết thúc hoặc người dùng tạo tệp mới thì đối tượng này cũng trở về trạng thái rỗng. 7. Biểu đồ hoạt động: Biểu đồ hoạt động mô tả các hoạt động của hệ thống khi người dùng làm việc với hệ thống. Khi ứng dụng được khởi động thì form chính của chương trình sẽ được hiển thị tới người dùng. Đây là giao diện chính mà hệ thống sẽ làm việc với người dùng trong suốt quá trình hệ thống làm việc. Người dùng sẽ thực hiện các thao tác cũng như yêu cầu của mình thông qua các menu thuộc form chính này. Khi form chính được khởi động, người dùng có thể tiến hành các thao tác sau đây: - Nhập dữ liệu: khi người dùng muốn nhập dữ liệu vào cho bài toán tính thì người dùng kích hoạt menu. Đối với bài toán tính toán nội lực và cốt thép trong khung BTCT thì phần nhập dữ liệu dưới dạng hình vẽ như trong SAP hay ETABS rất quan trọng vì nó thể hiện trực quan cho người dùng thấy được phần lớn công việc, người dùng có thể vẽ thanh, nút... Sau khi nhập xong hình vẽ hay còn gọi là sơ đồ hình học của khung người sử dụng có thể tiến hành khai váo các dữ liệu khác của khung. Căn cứ vào loại dữ liệu (Tải trọng tập trung, tải trọng vào nút, tiết diện....) mà hệ thống sẽ hiển thị form nhập dữ liệu tương ứng. Trong quá trình nhập dữ liệu này, hệ thống luôn kiểm tra sự hợp lệ của dữ liệu và sẽ có thông báo tới người dùng trong trường hợp họ nhập sai kiểu dữ liệu. Sau khi form nhập dữ liệu được hiển thị, người dùng có hai lựa chọn: nhập dữ liệu và huỷ bỏ. Khi dữ liệu được nhập đầy đủ và đúng kiểu dữ liệu thì người dùng mới có thể lựa chọn nhập dữ liệu, nhưng lựa chọn Huỷ bỏ có thể lựa chọn bất kỳ lúc nào và việc nhập cũng như việc lưu dữ liệu kết thúc. Khi đó, người dùng lại quay trở về với form chính của chương trình. -Mở tệp có sẵn: Người dùng có thể không nhập dữ liệu thông qua chức năng nhập dữ liệu của chương trình mà gọi một tệp có sẵn, trong đó đã lưu đầy đủ các thông tin cần thiết. Khi đó, chương trình sẽ hiển thị hộp thoại mở tệp để người dùng có thể lựa chọn 1 tệp có sẵn trên đĩa.Với hộp thoại này, người dùng có thể chọn để mở một tệp có sẵn hoặc cũng có thể huỷ bỏ việc mở tệp. Nếu công việc bị huỷ bỏ thì người dùng sẽ quay trở về với form chính của chương trình mà chưa có dữ liệu nào được nhập. Nếu người dùng mở 1 tệp có sẵn thì biến của chương trình sẽ được gán bởi các giá trị lưu trong tệp đó. -Gọi mới: Người dùng muốn tạo một tệp mới cho từng bài toán riêng biệt thì được hệ thống hỗ trợ bởi chức năng gọi mới. Khi chức năng này được kích hoạt thì hệ thống sẽ kiểm tra xem trước đó người dùng đã nhập vào dữ liệu chưa. Nếu trước đó, người dùng chưa nhập dữ liệu vào thì chương trình sẽ hiển thị form chính như lúc người dùng khởi động chương trình, nghĩa là chưa có biến nào được gán giá trị. Nếu trước đó, người dùng đã nhập dữ liệu( hệ thống kiểm tra biến mang giá trị) thì một thông báo sẽ được hiển thị hỏi người dùng có muốn ghi lại dữ liệu không. Nếu lựa chọn là không thì form chính được gọi và các biến của hệ thống được giải phóng. Nếu lựa chọn là có thì hộp thoại ghi tệp xuất hiện và người dùng có thể ghi dữ liệu hiện hành vào một tệp trên đĩa. Khi dữ liệu của chương trình chưa được nhập thì các chức năng như phân tích nội lực và hiển thị kết quả chưa được kích hoạt. Các chức năng này chỉ được hiển thị khi người dùng đã nhập đầy đủ dữ liệu vào chương trình. Khi người dùng nhập dữ liệu vào và kích hoạt chức năng phân tích nội lực. Hệ thống sẽ kiểm tra xem các biến đã được lưu ra tệp chưa, nếu đã được lưu thì hệ thống thực hiện chức năng tính toán theo thuật toán đã được lập trình sẵn. Nếu không, hệ thống yêu cầu người dùng phải lưu lại tệp chương trình rồi mới thực hiện quá trình tính toán. Khi quá trình tính toán hoàn thành thì các chức năng xem kết quả mới được hiển thị. Khi người dùng gọi chức năng xem kết quả, tuỳ vào kết quả hiển thị mà hệ thống sẽ đưa ra form hiển thị. Người dùng có thể đóng form xem kết quả để trở về chương trình. Cuối cùng là kết thúc ứng dụng. Người dùng muốn kết thúc ứng dụng sẽ được hộp thoại xác nhận có muốn kết thúc ứng dụng hay không. Nếu lựa chọn là có thì ứng dụng được đóng lại, nếu không thì trở về form chính của chương trình ở trạng thái trước đó. IV. TỔ CHỨC DỮ LIỆU: Với yêu cầu bài toán đặt ra ở trên và phương hướng giải quyết bài toán, cách thiết kế chương trình đã nêu chọn ngôn ngữ lập trình Visual Basic 6.0 (VB6.0) – phiên bản hiệu quả nhất trong bộ các ngôn ngữ lập trình Visual Studio, dùng để phát triển những ứng dụng trên nền Windows 32bits làm công cụ thể hiện chương trình. Trong khi các ngôn ngữ lập trình khác như Visual C++ và Visual J++ là ngôn ngữ lập trình hướng đối tượng thì VB6.0 là ngôn ngữ lập trình có cấu trúc. Với ngôn ngữ VB6.0 ta sẽ dễ dàng pháp triển ứng dụng quản lý, hầu hết các giao diện đều trực quan, dễ thiết kế, chúng cho phép thiết kế các Form hay các Control một các tiện lợi. Ngoài ra, VB6.0 được Microsoft hỗ trợ mạnh trong các sản phẩm của họ như Micrsoft Excel, Microsoft Access… Trong chương trình sử dụng các kiểu dữ liệu phức tạp đã nêu ở trên nên sử dụng kiểu bản ghi Record để mô tả các số liệu. 1. Dữ liệu vào: Là tất cả những dữ liệu cần thiết mà người dùng cần định nghĩa và nhập vào cho chương trình hiểu phục vụ cho việc tính toán nội lực và cốt thép trong từng cấu kiện Bê tông cốt thép như: vật liệu sẽ sử dụng, laọi thép, loại bê tông, tiết diện dầm cột... Mỗi dữ liệu nhập vào là một bản ghi gồm nhiều trường như: Vật liệu bao gồm có tên, môdun đàn hồi, trọng lương riêng, cường độ... Những kiểu bản ghi đó được thể hiện bên dưới với đầy đủ các trường kèm theo dạng dữ liệu( kiểu số nguyên, kiểu số thực, kiểu xâu ký tự hay là một bản ghi khác. Các kiểu dữ liệu được trình bày bằng ngôn ngữ sẽ dùng để thiết kế chương trình là: VB 6.0 Public Type Vatlieu Ten As String 'Ten vat lieu e As Double 'Modudan hoi cua vat lieu M As Double 'Trong luong rieng cua vat lieu Rn As Double 'Cuong do chiu nen cua vat lieu Rk As Double 'Cuong do chiu keo cua vat lieu End Type Public Type Thep Ran As Double 'Cuong do chiu nen cua thep Rak As Double 'Cuong do chiu keo cua thep Et As Double 'Modul dan hoi cua thep End Type Public Type Tietdien Ten As String 'Ten tiet dien Hinhdang As String 'Hinh dang tiet dien Vatlieu As String 'vat lieu lam tiet dien EF As Double 'Do cung keo nen EJ As Double 'Do cung chon uon H As Double 'Kich thuoc tiet dien L As Double 'Kich thuoc tiet dien DB As Double 'Kich thuoc tiet dien HB As Double 'Kich thuoc tiet dien End Type Public Type TD 'Tiet dien dung de tinh thep Ten As String 'Ten Rn As Double 'Cuong do chiu nen cua BT Rk As Double 'Cuong do chiu keo cu BT Eb As Double 'Modu dan hoi cua BT Ran As Double 'Cuong do chiu nen cua Thep Rak As Double 'Cuong do chiu keo cua Thep Et As Double 'Modun dan hoi cua Thep B As Double 'Be rong tiet dien H As Double 'Chieu cao tiet dien abv As Double 'Lop bao ve End Type Public Type TaiHT TS As Double 'Ty so b/l GT As Double 'Gia tri tai End Type Public Type TaiTT XF As Double 'Tai theo phuong X YF As Double 'Tai theo phuong Y ZM As Double 'Moment theo truc Z End Type Public Type TaiPB VG As Double 'Tai vuong goc DT As Double 'Tai doc thanh End Type Public Type TAI Ten As String 'Ten tai Ktai As String 'Kieu tai hs As Double 'He so cua tai TTT() As TaiTT 'Mang tai tap trung TPBD() As TaiPB 'Mang tai phan bo deu THT() As TaiHT 'Mang tai phan bo hinh thang End Type Public Type TH 'To hop (Dang to hop) Ten As String 'Ten cua to hop KieuTH As String 'Kieu cua to hop Stth As Long 'So tai trong to hop sht() As String 'Mang ten cac tai trong to hop hs() As Double 'Mang he so cac tai to hop End Type 2. Dữ liệu trung gian và dữ liệu ra: a. Dữ liệu trung gian: Là những bản ghi chứa các biến dữ liệu trung gian được sử dụng trong quá trình tính toán để đưa ra kết quả cuối cùng của bài toán. Người sử dụng chương trình hoàn toàn không quan tâm đến những dữ liệu này vì nó không phải là kết quả mà người sử dụng cần đến. Những biến này được sinh ra, thay đổi, xóa đi trong quá trình chương trình thi hành tùy theo dữ liệu về khung, về vật liệu, tiết diện... mà người sử dụng đưa vào chương trình. Ví dụ: Ma trận (6,6) hay ma trận (6,1) là những ma trận chứa thông tin về khung để giải các hệ phương trình nhằm mục đích cuối cùng là tìm ra nội lực trong khung. Sau đây là các kiểu dữ liệu trung gian chính sẽ sử dụng trong chương trình. Public Type MT66 'Ma tran (6,6) MT(1 To 6, 1 To 6) As Double End Type Public Type MT61 'Ma tran(6,1) MT(1 To 6) As Double End Type b. Dữ liệu ra: Là các bản ghi lưu dữ biến kết quả mà người dùng cần đến, là mục đích mà chương trình tạo ra. Dữ liệu ra là nội lực trong các dầm hay cột của khung, là kết quả tổ hợp nội lực từ các trường hợp tải mà người sử sụng đưa vào và là diện tích cốt thép trong từng cấu kiện. Người sử dụng sẽ nhận được những dữ liệu này thông qua giao diện của chương trình và dùng nó trong việc thiết kế, vẽ bản vẽ kết cấu. Public Type Tohop 'Ket qua to hop M As Double 'Momem N As Double 'Luc doc Q As Double 'Luc cat End Type Public Type DTThep Ft As Double 'Dien tich thep tren Fd As Double 'Dien tich thep duoi End Type Public Type NLUC 'Mang noi luc N() As Double 'Luc doc Q() As Double 'Luc cat M() As Double 'Momem End Type 2. Các biến dùng trong chương trinh: Biến là các giá trị có thể là dữ liệu vào, dữ liệu trung gian, dữ liệu kết quả của chương trình. Các biến có kiểu dữ liệu đơn giản được định nghĩa sẵn trong VB như kiểu nguyên, kiểu thực, kiểu xâu, kiểu mảng... hoặc là các kiểu dữ liệu bản ghi phức tạp do người lập trình tự định nghĩa như ở trên. Chương trình có các hệ thống biến chính phục vụ cho các mục đích cụ thể như sau: + Các biến dùng cho vẽ lưới: + Các biến dùng vẽ Window và Viewport (Window là vung không gian với toạ độ thực,Viewport là vùng nhìn ) + Các biến dùng vẽ các Nút trong Windows và Viewport + Các hệ số dùng chuyển đổi toạ độ từ W sang V và ngược lại + Các biến làm việc với chuột + Các biến dùng trong tính toán Sau đây trình bày các biến đó được thiết kế với ngôn ngữ lập trình VB với ý nghĩa cụ thể của từng biến: + Các biến dùng cho vẽ lưới: Public SoluoiphuongX As Long 'So luoi phuong X Public SoluoiphuongY As Long 'So luoi phuong Y Public KCluoiphuongX As Double 'Khoang cach luoi phuong X Public KCluoiphuongY As Double 'Khoang cach luoi phuong Y Public MangTDoXluoi() As Double 'Mang chua cac toa do X cua luoi Public MangTDoYluoi() As Double 'Mang chua cac toa do Y cua luoi + Các biến dùng vẽ Window và Viewport (Window là vung không gian với toạ độ thực,Viewport là vùng nhìn ) Public W As Rect 'Window Public PW As Rect 'Previous Window dung de luu gia tri W su dung khi Zoom Previous Public FW As Rect 'First Window dung de luu gia tri W dau tien su dung khi Restore Full View Public V As Rect 'Viewport 'Cac bien ve cac Nut trong Window va Viewport Public WP1 As Nut 'Window Nut 1 la diem NutI cua Thanh trong Window Public WP2 As Nut 'Window Nut 2 la diem NutJ cua Thanh trong Window Public WP3 As Nut 'Window Nut 3 la diem luu lai WP1 khi thay doi hien thi trong luc ve Public WP5 As Nut 'Window Nut 5 la diem hieu chinh cua WP1 khi co Snap Public VP1 As Nut 'Viewport Nut 1 la diem NutI cua Thanh trong Viewport Public VP2 As Nut 'Viewport Nut 2 la diem NutJ cua Thanh trong Viewport Public VP3 As Nut 'Viewport Nut 3 dung trong lenh Pan Public VP4 As Nut 'Viewport Nut 4 dung trong lenh Pan Public VP5 As Nut 'Viewport Nut 5 la diem hieu chinh cua VP1 khi co Snap + Các hệ số dùng chuyển đổi toạ độ từ W sang V và ngược lại Public A As Double Public B As Double Public D As Double + Các biến làm việc với chuột Public Flag As Long Public OldFlag As Long + Các biến dùng trong tính toán Public SoNut As Long 'So nut Public MangTDoNut() As Nut 'Mang toa do nut Public SoThanh As Long 'So phan tu thanh Public MangThanh() As Thanh 'Mang phan tu thanh Public SoNutchon As Long 'So nut duoc chon Public MangNutchon() As Long 'Mang nut duoc chon Public SoThanhchon As Long 'So thanh duoc chon Public MangThanhchon() As Long 'Mang thanh duoc chon Public PNSelectedJoint As Long 'Save So nut duoc chon Public PSelectedJoints() As Long 'Save Mang nut duoc chon Public PNSelectedFrame As Long 'Save So thanh duoc chon Public PSelectedFrames() As Long 'Save Mang thanh duoc chon Public MangChon() As LuuThanh 'Mang luu toa do dung voi Cut-Copy-Paste Public SoPtuchon As Long 'va day la so phan tu cua mang do Public SoLKnoidat 'So noi dat (hay la so dieu kien bien) Public MangLKnoidat() As DKBien 'Mang dieu kien bien Public SoKhop 'So khop Public MangKhop() As Long 'Mang khop Public SoVl As Long 'So loai vat lieu Public MangVL() As Vatlieu 'Mang vat lieu Public MangThep() As Thep 'Mang cac loai thep Public MangBTong() As Thep 'Mang cac loai thep Public SoTD As Long 'So loai tiet dien (khong xac dinh hinh dang) Public MangTD() As Tietdien 'Mang tiet dien (khong xac dinh hinh dang) Public SoTDien As Long 'So loai tiet dien Public MangTDien() As Tietdien 'Mang tiet dien Public TDienhienthoi As String 'Tiet dien hien hanh Public MangKTai(1 To 4) As String 'Mang kieu tai Public SoTai As Long 'So tai trong Public MangTai() As TAI 'Mang cac tai Public SoPAT As Long 'So phuong an tai (dung cho to hop) Public MangNL() As NLUC 'Mang noi luc Public SoTH As Long 'So to hop Public MangTH() As TH 'Mang to hop Public MKQTH() As Tohop 'Mang ket qua to hop Public MDTThep() As DTThep 'Mang ket qua tinh thep Public Trlg As Double 'Don vi luc Public Chd As Double 'Don vi dai Public TTTD() As TD 'Mang tiet dien dung de tinh thep Public KTH() As Double 'Ma tran do cung toan he Public P() As Double 'Ma tran tai trong toan he Public q() As Double 'Ma tran chuyen vi toan he Public r() As Double 'Ma tran luc nut Public PL() As Double 'Ma tran phan luc Public Tyle As Double 'He so phong to, thu nho bieu do noi luc hoac tai trong phan bo Public MinLoad As Double 'Tai be nhat Public TG As Long 'Bien trung gian Public Kn As Long 'Dung dieu khien ve bieu do NLuc Public chon As Long 'Tai hien thoi Public sh As Long Public sc As Long Public smc As Long 'So mat cat V. SƠ ĐỒ THUẬT TOÁN: 1. Thuật toán tổng quát của chương trình: 2. Thuật toán nhập dữ liệu: 3. Thuật toán xác định cột dầm để tính thép: 4. Thuật toán tính cốt thep đối xứng cho cột chịu nén lệch tâm: 5. Thuật toán tìm eng và s cho cột: 6. Thuật toán tính cốt thép cho dầm chữ nhật chịu uốn: VI GIỚI THIỆU VỀ CHƯƠNG TRÌNH: I.Giới thiệu. Tên của chương trình: Tính toán kết cấu – Tổ hợp nội lực – Tính thép cho kết cấu phẳng. Do còn nhiều hạn chế về kiến thức tin học, lại viết trong thời gian ngắn nên chương trình còn nhiều thiếu sót, tuy nhiên chương trình đã có khả năng giải quyết được nhưng yêu cầu nhất định trong phạm vi nào đó.Nếu có điều kiện phát triển và hoàn thiện, chương trình sẽ có ý nghĩa thực tế hơn.Em rất mong được sự góp ý của các thầy cô và các bạn để chương trình được hoàn thiện hơn. Chương trình được viết bằng ngôn ngữ Visual Basic chạy trên nền Windows nên khá thuận tiện trong việc sử dụng. Với khả năng về đồ hoạ khá tốt người sử dụng có thể nhập dữ liệu một cách đơn giản và nhanh chóng. Giao diện chính của chương trình. Các thanh công cụ cho phép người dùng sử dụng một cách thuận tiện và dễ dàng Tạo File mới ile mớiạo File mới Đọc File Ghi File Vẽ Thanh Gán tải phân bố Gán tải tập trung Gán tiết diện didiệndiệndiệnung Gán Đ.K.B didiệndiệndiệnung Chạy chương trình didiệndiệndiệnung Chọn đối tượng didiệndiệndiệnung Thanh menu của chương trình chứa các điều khiển để người dùng làm việc với chương trình Có các chức năng: -Tạo File mới -Đọc File -Ghi File -Xuất dữ liệu -Thoát chương trình Có các chức năng hiển thị về: - Lưới Số hiệu nút Số hiệu thanh Tiết diện thanh Liên kết nối đất Các chức năng về zoom,pan Có các chức năng: -Gán điều kiện biên -Gán tiết diện thanh -Gán tải trọng Có các chức năng: -Tính toán nội lực -Tổ hợp nôik lực -Tinh toán cốt thép II.Hướng dẫn sử dụng chương trình. 1. Cài đặt chương trình. Việc cài đặt chương trình khá đơn giản giống như các phần mềm thông dụng khác trong Windows. Chỉ cần kích đúp vào file DATN.setup trong thư muc Setup của đồ án. 2. Các bước sử dụng chương trình. Ngay sau khi cài đặt xong ta có thể sử dụng chương trình được ngay mà không cần khởi động lai máy tính. Để thực hiện với chương trình cần có các dữ liệu để nhập vào.Người dùng có thể thấy ngay các vai trò chức năng của các menu và các thanh công cụ ngay trên giao diện chính của chương trình. 2.1.Chạy chương trình. Sau khi đã được cài đặt, ta có thể gọi chương trình bằng cách vào thanh Start\programs\Đoantotnghiep hoặc kích hoạt vào shortcut của chương trình. 2.2.Nhập thông tin về lưới. Nhập đầy đủ các thông tin về lưới: - Số lưới phương X Số lưới phương Y Khoảng cách lưói phương X Khoảng cách lưới phương Y Sau đó nhấn nút “Nhan” để tiếp tục, nếu nhấn nút “Bo” thì chương trình tự mặc định các thông tin về lưới 2.3.Định nghĩa về vật liệu, tiết diện, tải trọng và tổ hợp. a.Định nghĩa vật liêu. Người sử dụng có thể định nghĩa loại vật liệu mà mình sử dụng với các đặc trưng như: Cường độ chịu nén, cường độ chịu kéo,Modul đàn hồi. Sau khi định nghĩa người dùng có thể thay đổi các đặc trưng này. Nếu đã chạy chương trình tính ra nội lực thì phải chạy lại,còn chưa chạy để tính nội lực thì chương trình sẽ tự động cập nhật. Số loại vật liệu không hạn chế, người sử dụng cũng có thể không cần định nghĩa vật liệu, khi đó chương trình sẽ tự mặc định với 2 loại vật liệu là bê tông và thép. b.Định nghĩa tiết diện. Chương trình có 2 kiểu định nghĩa tiết diện,một kiểu chỉ cần định nghĩa tiết diện với các đặc trưng EF,EJ mà không cần đến các đặc trưng về hình dạng,vật liêu… Kiểu này dùng để tính nhanh ra nội lực,nhưng nó sẽ không kể đến tải trọng bản thân.Sau khi định nghĩa ta cũng có thể thay đổi các thuộc tính như đối với vật liệu Kiểu định nghĩa thứ 2 là tiết diện được định nghĩa chỉ cần các thông tin về hình dạng, vật liêu,chương trình sẽ tự động tính các đặc trưng EF, EJ. Z Số tiết diện không hạn chế, người dùng cũng có thể không cần định nghĩa cả hai dạng tiết diện, khi đó chương trình sẽ tự động mặc định với 2 loại tiết diện là tiết diện “1” chỉ với các đặc trưng EF, EJ và tiêt diện”TD1” với các thông tin về hình học, vật liệu. c.Định nghĩa tải trọng. Tải trọng được định nghĩa với các thông tin như: tên tải, kiểu tải, hệ số trọng lượng bản thân. Người sử dụng cũng không nhất thiết phải định nghĩa tải trọng, nếu như kết cấu cần tính chỉ có 1 loại tải trọng.Chương trình sẽ mặc định với 1 loại tải trọng là “Tai1” với kiểu tải là “tĩnh tải”,hệ số trọng lượng bản thân là 1. Người dùng có thể thay đổi hay xoá bỏ tải trọng nào đi, chương trình sẽ tự đọng cập nhật nhưng phải chạy lai kêt quả. d.Định nghĩa tổ hợp. Định nghĩa tổ hợp dùng để người sử dụng tự định nghĩa kiểu tổ hợp do mình tự đặt ra. Nếu chỉ tính toán đơn thuần và chỉ cần ttổ hợp cơ bản 1 và tổ hợp cơ bản 2 thì không nhât thiêt phải định nghĩa tổ hợp 2.4.Vẽ sơ đồ kết cấu. Khi nhập các thông tin về lưới la lưu ý chọn số lưới, khoảng cách lưới sao cho khi vẽ sơ đồ kết cấu được thuận tiện, vì vậy ta phải căn cứ vào kích thước kết cấu để lựa chọn số lưới cũng như khoảng cách các lưới. Để vẽ sơ đồ kết cấu ta chỉ cần kích vào nút “vẽ thanh “trên thanh công cụ hay vào menu vẽ thanh. Khi vẽ ta có thể lựa chọn các phương thức bắt điểm để có thể vẽ một cách chính xác.Ta có thể xoá, cut,copy, paste và chuyển dời các thanh tuỳ ý. Trong chương trình cách vẽ gần giống như trong các phần mềm SAP hay AUTOCAD. 2.5.Gán điều kiện biên. Chọn nút có liên kết nối đất, sau đó nhấn chuột phải sẽ hiện ra menu để lựa chọn Ta kích vào menu Điều kiện biên, chương trình sẽ hiện ra bảng các kiểu liên kết cho ta lựa chọn.Ta cũng có thể gọi bảng lựa chọn này ra bằng cách kích vào nút “Gán điều kiên biên ” trên thanh công cụ. Ta lựa chọn kiểu liên kết nào chương trình sẽ vẽ và gán kiểu liên kết đó cho nút bạn chọn.Sau khi gán ta có thể thay đổi kiểu liên kết cũng giống như gán liên kết cho chúng vậy.Ta có thể gán đồng thời cho các nút có kiểu liên kết giống nhau. 2.6.Gán tiết diện thanh. Nếu ta đã định nghĩa tiết diện thanh thì mới cần gán loại tiết diện cho thanh, còn không chương trình se tự động gán tiết diện hiện thời là “1” cho các thanh. Khi gán tiết diên cho thanh, ta chọn thanh sau đó nhấn chuột phải sẽ hiện ra menu để lựa chọn Ta kích vào menu Tiết diên thanh, chương trình sẽ hiện ra formGán tiết diên để ta lựa chọn. Ta cũng có thể gọi form này kích vào nút “Gán tiết diện thanh ”trên thanh công cụ. Sau đó kích vào combo Tiết diện hiên thời để lựa chọn loại tiết diện tương ứng. 2.7.Gán tải trọng. Khi gán tải trọng lên kết cấu lưu ý có: tải trọng tại nút (đó là các lực tập trung theo phương X, phương Y, mômem MZ) và tải trọng trên thanh(đó là các tải phân bố đều và tải phân bố hình thang) a.Gán tải trọng tại nút. Chọn nút cần gán tải trọng, sau đó nhấn chuột phải sẽ hiện ra menu để lựa chọn Ta kích vào menu Gán tải tập trung, chương trình sẽ hiện ra formGán tải tập trung để ta lựa chọn. Ta cũng có thể gọi form này kích vào nút “Gán tải tập trung ”trên thanh công cụ. Nhập giá trị tải trọng tương ứng vào và nhấn nút ”Nhận” b.Gán tải trọng tại thanh. Chọn thanh cần gán tải trọng, sau đó nhấn chuột phải sẽ hiện ra menu để lựa chọn Ta kích vào menu Gán tải phan bố, chương trình sẽ hiện ra formGán tải phân bố để ta lựa chọn. Ta cũng có thể gọi form này kích vào nút “Gán tải phân bố ”trên thanh công cụ. Nhập giá trị tải trọng tương ứng vào và nhấn nút”Nhân” Ta có thể gán tải đồng thời cho các nút và các thanh có tải trọng giống nhau.Các choc năng “Thêm vào tải hiện thời”,”Thay tải hiện thời”,”Xoá tải hiện thời ” cho phép thêm, thay thế, và bỏ tải trọng đã gán. 2.8.Kiểm tra lại dữ liệu đã nhập. Sau khi tiến hành các bước trên ta cần kiểm tra lại các dữ liệu đã nhập bằng cách vào menu Hiển thị dữ liệu đầu vào để gọi bảng ghi các dữ liệu đã nhập, dồng thời ta cung có thể vào các menu Vùng nhìn, menu hiển thị tải trọng để kiểm tra dữ liệu đã nhập được hiển thị trên màn hình đồ hoạ. 2.9.Ghi lại file. Sau khi đã nhập đày dủ các dữ liệu ta nên ghi lại file đẻ thuận tiện cho việc kiểm tra lại và sửa đổi khi cần thiết.Khi ghi file chi cần vào thư mục Ghi file hay nhấn nút “Ghi file” trên thanh công cụ hoặc ấn đồng thời Ctrl+S. - 2.9.Chạy kết quả. Có 3 giai đoạn tính toán: Chạy ra kết quả nội lực Tổ hợp nội lực Tính toán cốt thép a.Chạy ra kết quả nội lực. Vào menu tính nội lực trong menu tính toán hoặc ấn F5 chương trình sẽ tính ra kết quả nội lực. Kết quả được ghi vào bảng xuất dữ liệu, xuất ra Exel và cả được kết xuất ra đồ hoạ. b.Tổ hợp nội lực. Vào menu Tổ hợp nội lực trong menu tính toán chương trình sẽ tính ra kết quả tổ hợp nội lực. Kết quả được ghi vào bảng xuất dữ liệu và xuất ra Exel c.Tính toán cốt thép. Vào menu tính thép trong menu Tính toán chương trình sẽ tính ra thép cho tong mặt cặt của tong phần tử.Kết quả tính toán được ghi ra trong bảng và xuất ra Exel. d. Hiển thị kết quả tính thép trên sơ đồ khung: Chương trình hỗ trợ tính năng hiển thị cốt thép dọc tính toán được trực tiếp lên sơ đồ khung để người sử dụng thuận tiện trong việc sử dụng để thể hiện bản vẽ kết cấu. VII. MÃ NGUỒN CHƯƠNG TRÌNH: 1. Chương trình con tính thép dầm chữ nhật chịu uốn: Private Function MuyDamMin(rn As Double) As Double 'Ham luong cot thep nho nhat MuyDamMin = 0.1 If rn = 110 Then MuyDamMin = 0.15 If 110 < rn <= 170 Then MuyDamMin = 0.15 If rn > 170 Then MuyDamMin = 0.2 End Function Private Function alpha0(rak As Double, rn As Double) As Double ' Tim he so alpha0 If rak <= 3000 Then alpha0 = 0.62 If 110 <= rn And rn <= 130 Then alpha0 = 0.58 If 155 <= rn And rn <= 170 Then alpha0 = 0.55 If 170 < rn And rn <= 215 Then alpha0 = 0.5 If 215 < rn And rn <= 250 Then alpha0 = 0.48 Else alpha0 = 0.58 If 110 <= rn And rn <= 130 Then alpha0 = 0.55 If 155 <= rn And rn <= 170 Then alpha0 = 0.55 If 170 < rn And rn <= 215 Then alpha0 = 0.5 If 215 < rn And rn <= 250 Then alpha0 = 0.45 End If End Function Function tinhthepdam(B, h, m, rak, ran, rn, rk, ebt, eth, ABV As Double) As ketquathep Dim rak1 As Double rak1 = rak Dim rn1 As Double Dim m1 As Double rn1 = rn Dim alfa0, A0 As Double alfa0 = alpha0(rak1, rn1) A0 = alfa0 * (1 - 0.5 * alfa0) Dim H0 As Double H0 = h - ABV Dim FanDamCN As Double, FakDamCN As Double MuyMax = alfa0 * rn * 100 / rak MuyMin = MuyDamMin(rn1) Dim HsA As Double, Gama As Double m1 = Abs(m) HsA = m1 / (rn * B * H0 * H0) If HsA < A0 Then Gama = 0.5 * (1 + (1 - 2 * HsA) ^ (1 / 2)) FakDamCN = m1 / (rak * Gama * H0) FakDamCN = Round(FakDamCN, 2) FanDamCN = 0 Else If HsA <= 0.5 Then FanDamCN = (m1 - A0 * rn * B * H0 * H0) / (ran * (H0 - ABV)) FakDamCN = (alfa0 * rn * B * H0) / rak + FanDamCN * ran / rak FanDamCN = Abs(Round(FanDamCN, 2)) FakDamCN = Abs(Round(FakDamCN, 2)) Else FakDamCN = 0 FanDamCN = 0 End If End If If FakDamCN < MuyMin * B * H0 / 100 Then FakDamCN = MuyMin * B * H0 / 100 tinhthepdam.ghichu = " Cau tao" Else If FakDamCN > MuyMax * B * H0 / 100 Then tinhthepdam.ghichu = " Nhieu thep" Else tinhthepdam.ghichu = " Thep hop ly" End If End If If m < 0 Then tinhthepdam.thepduoi = FanDamCN tinhthepdam.theptren = FakDamCN Else tinhthepdam.thepduoi = FakDamCN tinhthepdam.theptren = FanDamCN End If End Function 1. Chương trình con tính thép đối xứng cho cột chịu nén uốn: Function tinhthepcot(L, B, h, m, n, muy_lv, rak, ran, rn, rk, ebt, eth, ABV As Double) As ketquathep Dim L0, H0 As Double 'L COT Dim eng As Double 'DO LECH TAM NGAU NHIEN Dim e0 As Double 'LECH TAM TINH TOAN Dim e0gh As Double 'LECH TAMA GIOI HAN Dim e As Double 'KHOANG CACH TU DIEM DAT LUC DEN TRONG TAM COT THEP CHIU KEO FA Dim ep As Double 'KHOANG CACH TU DIEM DAT LUC DEN TRONG TAM COT THEP CHIU NEN FA' Dim Jb As Double 'MOMEN QUNA TINH BE TONG Dim Ja As Double 'MO MEN QUAN TINH THEP Dim MuyGt As Double 'MUY COT THEP GIA THIET Dim s As Double 'HE SO KE DEN ANH DUONG CUA DO LECH TAM EO Dim Kdh As Double 'HE SO KE DEN TINH DAI HAN CUA TAI TRONG Dim Nth As Double 'LUC DOC TOI HAN Dim neta As Double 'HE SO XET DEN ANH HUONG CUA UON DOC Dim X As Double 'CHIEU CAO VUNG CHIU NEN Dim FA As Double 'DIEN TICH COT THEP CHIU KEO Dim Fap As Double 'FA THEP CHIU NEN Dim MuyCotCnMin As Double Dim MuyCotCn As Double Dim rak1 As Double rak1 = rak Dim rn1 As Double rn1 = rn Dim alfa0, A0 As Double L0 = L * muy_lv alfa0 = alpha0(rak1, rn1) A0 = alfa0 * (1 - 0.5 * alfa0) H0 = h - ABV Dim Lamda As Double ' Ban kinh quan tinh If B > 25 Then eng = Max(h / 25, 2, 0) Else If (15 <= B) And (B <= 25) Then eng = Max(h / 25, 1.5, 0) ElseIf B < 15 Then eng = Max(h / 25, 1, 0) End If End If 'Tim MuyCotCnMin Lamda = L0 / B ' Ban kinh quan tinh If Lamda <= 5 Then MuyCotCnMin = 0.05 If (Lamda >= 5) And (Lamda <= 10) Then MuyCotCnMin = 0.1 If (Lamda > 10) And (Lamda <= 24) Then MuyCotCnMin = 0.2 If Lamda > 24 Then MuyCotCnMin = 0.25 e0 = m / n + eng e0gh = 0.4 * (1.25 * h - alfa0 * (h - ABV)) Jb = (B * h ^ 3) / 12 'TINH S If e0 < 0.05 * h Then s = 0.84 Else If e0 < 5 * h Then s = 0.11 / (0.1 + e0 / h) + 0.1 Else s = 0.122 End If End If MuyGt = 2 * MuyCotCnMin 'Muy thep gia thiet tinh cho ca tiet dien MuyCotCn = MuyGt Do MuyGt = (MuyGt + MuyCotCn) / 2 Ja = MuyGt / 100 * B * H0 * (0.5 * h - ABV) ^ 2 'Tinh Kdh Kdh = 2 '1 + (Mdh + Ndh * h / 2) / (M + N * h / 2) (v× M=Mdh,N=Ndh) Nth = 6.4 * ((s * Jb * ebt / Kdh) + eth * Ja) / L0 ^ 2 neta = 1 / (1 - (n / Nth)) e = neta * e0 + 0.5 * h - ABV X = n / rn / B If X <= 2 * ABV Then tinhthepcot.ghichu = " Lech tam lon" ep = Abs(e - H0 + ABV) FA = Abs(n * ep / (rak * (H0 - ABV))) Fap = FA End If If (2 * ABV <= X) And (X <= alfa0 * H0) Then tinhthepcot.ghichu = " Lech tam lon" FA = n * (e - H0 + 0.5 * X) / (rak * (H0 - ABV)) 'CHECK FA = Abs(FA) Fap = FA End If If X > alfa0 * H0 Then tinhthepcot.ghichu = " Lech tam be" If neta * e0 >= e0gh Then Fap = Abs(n * e - A0 * rn * B * h ^ 2 / (rak * (H0 - ABV))) FA = Fap Else If neta * e0 <= 0.2 * H0 Then X = h - (1.8 + 0.5 * h / H0 - 1.4 * alfa0) * neta * e0 Else X = 1.8 * (e0gh - neta * e0) + alfa0 * H0 End If End If X = Max(X, alfa0 * H0, 0) Fap = Abs((n * e - rn * B * X * (H0 - 0.5 * X)) / (rak * (H0 - ABV))) FA = Fap End If MuyCotCn = 2 * Fap / (B * H0) * 100 Loop Until Abs(MuyCotCn - MuyGt) < 0.0001 tinhthepcot.thepduoi = Round(FA, 2) tinhthepcot.theptren = Round(FA, 2) tinhthepcot.caukien = " Cot" End Function VIII. ĐÁNH GIÁ CHƯƠNG TRÌNH: 1. Nhận xét: a. Ưu điểm: Tính toán được nội lực của khung từ đó đưa ra được các tổ hợp nội lực mà người dùng định nghĩa và nếu người dùng muốn chương trình còn đưa ra được diện tích cốt thép dọc trong các cấu kiện dầm cột của khung và thể hiện chúng một cách trực quan lên khung tiện theo dõi. b. Nhược điểm: Chương trình chưa hoàn chỉnh, trong quá trình giải quyết bài toán vấn đề phân biệt dầm và cột còn đơn giản, chỉ dựa vào tọa độ nút đầu nút cuối để phân biệt trong khi thực tế dầm là cấu kiện chịu uốn chính còn cột là cấu kiện vừa chịu nén vừa chịu uốn. Giao diện còn thiếu thân thiện. Chưa bẫy lỗi hoàn chỉnh 2. Hướng pháp triển: Khắc phục những nhược điểm của chương trình hiện thời: Phát triển xây dựng chương trình tính toán hoàn chỉnh kết cấu khung và tính toán cốt thép theo tiêu chuẩn Việt Nam. Hỗ trợ đầy đủ việc kết xuất dữ liệu. Xây dựng thêm một số tiện ích khác giúp người dùng tiếp cận chương trình một cách dễ dàng hơn.

Các file đính kèm theo tài liệu này:

  • docDAN088.doc
Tài liệu liên quan