TRƯỜNG ĐẠI HỌC BÁCH KHOAHỌ TÊN HV PHÙNG QUỐC TÂM ỨNG DỤNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN ĐỂ GIẢI CÁC BÀI TOÁN TRONG XÂY DỰNG Chuyên ngành: Toán ứng dụng Mã số: 604636 LUẬN VĂN THẠC SĨ TP...
Mục tiêu, nội dung và phương pháp nghiên cứu
Mục tiêu và nội dung luận văn
Luận văn "ứng dụng phương pháp phần tử hữu hạn để giải các bài toán trong xây dựng" với mục tiêu là xây dựng các ứng dụng tính toán biến dạng và kết cấu trong xây dựng dựa trên phần mềm Matlab. Để đạt được mục tiêu trên, trong luận văn này sẽ thực hiện các nội dung sau:
• Tổng quan về phương pháp phần tử hữu hạn
• Tổng quan lý thuyết giải cho các bài toán kết cấu trong xây dựng (bài toán lò xo, thanh dầm 2 chiều và 3 chiều )
• Xây dựng thuật toán giải trên Matlab và làm giao diện phần mềm
Phương pháp nghiên cứu
Các phương pháp sau đây được sử dụng để thực hiện đề tài:
• Phương pháp tổng hợp tài liệu: tổng hợp các tài liệu, bài báo, sách , tạp chí về lý thuyết và ứng dụng phương pháp phần tử hữu hạn dùng cho ngành xây dựng.
• Phương pháp mô hình hóa: xây dựng thuật toán giải các vấn đề trong ngành xây dựng bằng phần mềm Matlab.
Ý nghĩa khoa học, kinh tế, xã hội
• Góp phần xây dựng được tính liên kết giữa ngành Toán và ngành Xây dựng thông qua ứng dụng sử dụng phương pháp phần tử hữu hạn bằng Matlab.
• Việc thực hiện đề tài có giá trị tham khảo và hỗ trợ công việc tính toán cho các kỹ sư xây dựng thiết kế các công trình.
• Ứng dụng mở nên mang lại lợi ích về mặt kinh tế cho người sử dụng.
TỔNG QUAN VỀ PHƯƠNGPHÁP PHẦN TỬ HỮU HẠN
Giới thiệu sơ lược
Sự tiến bộ của khoa học, kỹ thuật đòi hỏi người kỹ sư phải thực hiện nhiều dự án ngày càng phức tạp, đắt tiền và đòi hỏi độ chính xác, an toàn cao.
Phương pháp phần tử hữu hạn (PPPTHH) là một phương pháp rất tổng quát và hữu hiệu cho lời giải số nhiều lớp bài toán kỹ thuật khác nhau Từ việc phân tích trạng thái ứng suất biến dạng trong các kết cấu xây dựng, các chi tiết trong ô tô, máy bay, tàu thủy, khung nhà cao tầng, dầm cầu, v.v, đến những bài toán của lý thuyết trường như: lý thuyết truyền nhiệt, cơ học chất lỏng, thủy đàn hồi, khí đàn hồi, điện-từ trường v.v Với sự trợ giúp của ngành Công nghệ thông tin và hệ thống CAD, nhiều kết cấu phức tạp cũng đã được tính toán và thiết kế chi tiết một cách dễ dàng.
Hiện có nhiều phần mềm PTHH nổi tiếng như: ANSYS, ABAQAUS, SAP, v.v phục vụ cho nhu cầu tính toán của kỹ sư ngành xây dựng, cơ khí Nó có thể áp dụng vào bất cứ một hệ nào, từ hệ đơn giản như thanh đến hệ phức tạp như bản, tấm Từ năm 1955, Argyris nêu lên
1 các định lý về năng lượng và phương pháp ma trận, đặt nền tảng cho sự phát triển về sau của PPPTHH Cuốn sách đầu tiên về PPPTHH được Zienkiewicz và Chung xuất bản vào năm 1967 Về sau, phương pháp đã được áp dụng vào các bài toán phi tuyến và bài toán biến dạng Phương pháp phần tử hữu hạn là một phương pháp số đặc biệt có hiệu quả để tìm dạng gần đúng của một hàm chưa biết trong miền xác định V của nó Tuy nhiên PPPTHH không tìm dạng xấp xỉ của hàm cần tìm trên toàn miền V mà chỉ trong từng miền con Ve (phần tử) thuộc miền xác định V Do đó phương pháp này rất thích hợp với hàng loạt bài toán kỹ thuật và vật lý trong đó hàm cần tìm được xác định trên những miền phức tạp gồm nhiều vùng nhỏ có đặc tính hình học, vật lý khác nhau, chịu những điều kiện biên khác nhau Trong PPPTHH miền V được chia thành một số hữu hạn các miền con, gọi là phần tử Các phần tử này được nối kết với nhau tại các điểm định trước trên biên phần tử, gọi là nút Trong phạm vi mỗi phần tử đại lượng cần tìm được lấy xấp xỉ trong dạng một hàm đơn giản được gọi là các hàm xấp xỉ Và các hàm xấp xỉ này được biểu diễn qua các giá trị của hàm tại các điểm nút trên phần tử Các giá trị này được gọi là các bậc tự do của phần tử và được xem là ẩn số cần tìm của bài toán.
Cách thức làm việc của phương pháp phần tử hữu hạn 2
Các kỹ thuật chung và thuật ngữ của PPPTHH được giới thiệu được thể hiện trên hình 1.1 Hình ảnh mô tả hình dạng của một số vật liệu hay nhiều vật liệu có các đặc tính vật lý đã biết Để đơn giản,tại điểm này, chúng ta giả định một trường hợp bài toán hai chiều với trường biến φpx, yq được xác định tại mỗi điểm Ppx, yqnhư là một phương trình đã biết thỏa mãn một cách chính xác tại mỗi điểm Điều này hàm ý một lời giải toán học chính xác thu được; đó là nghiệm là một biểu thức đóng đại số của các biến độc lập Trong vấn đề thực tế,miền có thể là dạng hình học phức tạp nên chỉ thu được các phương trình xấp xỉ và khả năng có được một nghiệm chính xác là rất thấp.
Vì vậy, các nghiệm xấp xỉ dựa trên các kỹ thuật số và tính toán kỹ thuật số là thường được dùng trong việc phân tích các bài toán kỹ thuật phức tạp Phần tử hữu hạn là một kỹ thuật mạnh để đạt được nghiệm gần đúng với độ chính xác tốt [6]
Một phần tử tam giác có chứa một miền con kích thước hữu hạn của vùng được quan tâm được thể hiện ở hình 1.1 Phần tử này không phải là phần tử vi phân kích thước dxdytạo nên một phẩn tử hữu hạn Với ví dụ này là bài toán hai chiều, nó được giả định rằng độ dày theo hướngzlà không đổi và hướngzkhông được chỉ định trong phương trình vi phân Các đỉnh của phần tử tam giác được đánh số để chỉ ra rằng những điểm này là các nút Một nút là một điểm cụ thể trong phần tử hữu hạn mà tại đó giá trị của các trường biến là phải được tính toán một cách rõ ràng Các nút ngoài nằm trên biên của phần tử hữu hạn và có thể được sử dụng để kết nối một phần tử đến phần tử hữu hạn liền kề Các nút mà không nằm trên các biên phần tử là các nút trong và không thể kết nối với bất kỳ phần tử khác Các phần tử của tam giác trên hình 1.1b chỉ có các nút ngoài.
Hình 1.1:(a) Miền 2 chiều của biến trườngφpx, yq; (b) Phần tử gồm 3 nút trong miền; (c) Mô hình lưới phần tử trong miền
Nếu các giá trị của trường biến được tính toán chỉ ở các nút, vậy làm thế nào để thu được các giá trị ở các điểm khác trong một phần tử hữu hạn? Đây là điểm then chốt của phương pháp phần tử hữu hạn Các giá trị của trường biến được tính toán tại các nút được sử dụng để xấp xỉ các giá trị của phần tử bên trong bằng cách nội suy từ các giá trị của nút Ví dụ đối với ba nút, các nút đều ngoài và tại bất kỳ điểm nào trong phần tử, trường biến được mô tả bằng hệ thức xấp xỉ sau: φpx, yq N 1 px, yqφ 1 N 2 px, yqφ 2 N 3 px, yqφ 3 (1.1) Ở đâyφ1, φ2, φ3là các giá trị của trường biến tại các nút vàN1, N2, N3 là các hàm nội suy Trong cách tiếp cận phần tử hữu hạn, các giá trị nút của trường biến được xử lý như là các hằng số chưa biết cần được xác định Hàm nội suy thường là dạng đa thức của các biến độc lập, dẫn suất để đáp ứng các điều kiện cần thiết nhất định tại các nút. Các điểm chính cần thực hiện ở đây là các hàm nội suy được xác định trước, được biết là các hàm của các biến độc lập, và các hàm mô tả biến phân của các trường biến trong phần tử hữu hạn.
Các phần tử tam giác được mô tả bởi phương trình 1.1 được cho là có 3 bậc tự do, theo ba giá trị nút của trường biến được yêu cầu để mô tả trường biến trong phần tử Đây sẽ là trường hợp nếu trường biến đại diện cho một trường vô hướng, chẳng hạn như nhiệt độ trong bài toán truyền nhiệt Nếu miền của hình 1.1 đại diện cho vật thể mỏng, rắn chịu ứng suất phẳng , trường biến trở thành các véc tơ thay thế và các giá trị của hai thành phần phải được tính toán tại mỗi nút. Trong trường hợp này, phần tử tam giác ba nút có 6 bậc tự do Nhìn chung, số bậc tự do gắn liền với một phần tử hữu hạn bằng với tích của số nút với số giá trị của trường biến mà phải được tính toán tại mỗi nút.
Như mô tả trong hình 1.1c, mỗi phần tử được kết nối tại các nút bên ngoài của chính nó đến các phần tử khác Các phương trình phần tử hữu hạn được hình thành theo cách như vậy, tại các kết nối nút, giá trị của trường biến tại kết nối bất kì là tương tự cho mỗi phần tử kết nối với các nút Như vậy, tính liên tục của trường biến tại các nút được đảm bảo Trong thực tế, việc hình thành phần tử hữu hạn là như vậy để tính liên tục của trường biến qua biên cũng được đảm bảo Tính chất này tránh được khả năng vật lý không thể chấp nhận những khoảng trống xuất hiện trong miền Trong vấn đề kết cấu, những khoảng trống đó sẽ đại diện cho đặc tính tách vật lý của vật liệu [6]
Các bước tiến hành khi giải một bài toán bằng phương pháp phần tử hữu hạn
Rời rạc hóa miền khảo sát
Việc đầu tiên cần làm khi giải một bài toán bằng phương pháp phần tử hữu hạn là chia miền khảo sát thành một số hữu hạn các miền con đơn giản, gọi là các phần tử Công việc này thường được gọi là rời rạc hóa miền khảo sát, hay tạo lưới phần tử hữu hạn Với mỗi loại bài toán, chúng ta cần phải chọn loại phần tử thích hợp tương ứng Các loại phần tử cho bài toán 1, 2 hay 3 chiều thường có các dạng như hình 1.2.
Hình 1.2:Các dạng phần tử tiêu biểu
Hình 1.3:Lưới phần tử hữu hạn
Số phần tử sử dụng để rời rạc hóa miền khảo sát bài toán phụ thuộc vào một số các yếu tố sau:
1 Biên vật lý của miền: Số phần tử sử dụng để mô hình miền khảo sát phải đủ để xấp xỉ biên hình học một cách chính xác theo yêu cầu Ví dụ khi miền khảo sát có biên cong được rời rạc bằng cách sử dụng các phần tử tam giác cạnh thẳng, lúc đó chúng ta phải sử dụng một số lượng các phần tử đủ lớn để mô hình miền sao cho sự nhất quán giữa biên thực và biên rời rạc là đủ nhỏ để có thể chấp nhận được.
Việc sử dụng nhiều phần tử dọc theo biên sẽ làm giảm sai số xấp xỉ hình học Tuy nhiên, để tránh sự suy biến xảy ra, biên dạng phần tử phải bảo đảm có tỉ số cạnh (tỉ số giữa kích thước lớn nhất và nhỏ nhất của một phần tử) không được vượt quá 3. Các phần tử có tỉ số cạnh lớn hơn 3, không nhất thiết sẽ tạo ra kết quả có sai số lớn, do còn phụ thuộc vào các điều kiện biên và tải tác dụng, nhưng nó có nguy cơ gây ra sự suy biến trong các ma trận phần tử Vậy đối với các miền có biên cong, tốt hơn hết là sử dụng các phần tử có biên cong nếu chúng có sẵn.
2 Mức độ chính xác cần thiết (mong đợi): Số phần tử yêu cầu càng lớn khi độ chính xác yêu cầu càng cao.
3 Đặc trưng của lời giải: Ở những vùng mà trên đó lời giải có sự thay đổi một cách đột ngột, như những vùng lân cận ở các góc, rãnh, vùng có sự tập trung tải trọng, phản lực, vùng có vết nứt, hay những vùng có sự thay đổi đột ngột về đặc trưng hình học, ở đó thường yêu cầu một số lượng lớn các phần tử để có thể thu được một kết quả diễn tả lời giải một cách thực hơn Tuy nhiên trong thực tế người ta thường bắt đầu bằng một lưới phần tử tương đối thô để nhận được tính chất của lời giải, sau đó mới sử dụng lưới mịn hơn Lời giải của mô hình lưới thô được sử dụng để làm cơ sở định hướng cho quá trình làm mịn lưới.
4 Ngày nay việc giải các bài toán kỹ thuật thường đi đôi với việc ứng dụng thành tựu của khoa học máy tính, do đó số lượng
Hình 1.4:Sai số hình học khi rời rạc hóa miền khảo sát có biên cong
Hình 1.5:Các phần tử có tỉ số cạnh tốt hay xấu phần tử của một mô hình không những phu thuộc vào các yếu tố đã nêu trên mà còn phụ thuộc vào các thiết bị có được của người tính như bộ nhớ, dung lượng đĩa và cả bộ vi xử lý của máy tính.
• Các phần tử trong mô hình rời rạc được liên kết với nhau tại các nút, mặc khác lời giải tại nút là các biến sơ cấp của phương trình vi phân mô tả bài toán Do đó để thỏa tính liên tục trên lời giải, các phần tử lân cận phải được liên kết với nhau chỉ tại các nút mà ở đó có bậc tự do của mô hình định nghĩa.
Hình 1.6:Lưới phần tử hợp lệ, không hợp lệ
Các phương trình phần tử
Sau khi đã rời rạc hóa miền khảo sát, bước kế tiếp là viết các phương trình cho mỗi phần tử Vì số phương trình cho một số phần tử là tương đối lớn nên ở đây thường người ta sử dụng ký hiệu ma trận để viết chúng Quá trình tính toán có thể chia thành hai bước sau:
Bước 1: Các ma trận phần tử được phát triển đối với các dạng phần tử tiêu biểu khi sử dụng mô hình bài toán Các tính toán ở đây đều được thực hiện ở dạng symbolic (dạng chữ) để tìm công thức tổng quát cho từng loại phần tử.
Bước 2: Sử dụng các công thức tổng quát ở trên, viết các ma trận phần tử ở dạng số cho mỗi phần tử.
Ngày nay với sự trợ giúp của máy tính điện tử, công việc này có thể dễ dàng làm được bằng cách viết những chương trình mà ở đó khi đưa vào các thông số hình học, đặc trưng vật liệu, chương trình sẽ trả lại cho chúng ta các ma trận phần tử ở dạng số Bên cạnh đó, các phần mềm phần tử hữu hạn sẵn có trên thị trường đa phần chứa đựng một thư viện lớn các loại phần tử thích hợp cho việc giải đa số các bài toán kỹ thuật, tuy nhiên để ứng dụng một cách chính xác, đòi hỏi người dùng phải hiểu một cách sâu sắc về ý nghĩa lẫn bản chất của mỗi loại phần tử.
Bước then chốt trong việc tìm các phương trình phần tử, là giả định lời giải xấp xỉ của phương trình vi phân mô tả bài toán trên mỗi phần tử Lời giải trên phần tử thường được giả định ở dạng đa thức tuyến tính, và được viết theo các lời giải chưa biết tại các nút (các bậc tự do tại nút).[3]
Lắp ghép các phương trình phần tử
Sau khi rời rạc hóa miền khảo sát, viết các phương trình cho từng phần tử, chúng ta thực hiện quá trình lắp ghép để tìm hệ phương trình toàn cục mô tả ứng xử vật lý của hệ Ý tưởng nền tảng ở đây là, tại một nút chung giữa nhiều phần tử, lời giải chưa biết (các bậc tự do tại nút) sử dụng trong việc định nghĩa các phương trình cho mỗi phần tử riêng rẽ phải trùng nhau Điều này đồng nghĩa với việc chúng ta phải thiết lập một mối quan hệ giữa các bậc tự do toàn cục và các bậc tự do trên phần tử (bậc tự do địa phương) Dựa trên mối quan hệ này chúng ta có thể lắp ghép các phần tử vào phương trình của hệ một cách chính xác mô tả đúng vị trí đóng góp của nó đối với hệ toàn cục Sau khi lắp ghép tất cả các phần tử hệ phương trình toàn cục có dạng: rKs tuu tRu (1.2) nếu số bậc tự do tổng của bài toán làn, lúc đó vectơ bậc tư do toàn cụctuu có kích thướcn1, ma trận hệ sốrKscó kích thước nn và vectơ Rlàn1 Trong bài toán kết cấu,rKsvàtRuđược gọi là ma trận độ cứng và vectơ tải toàn cục tác dụng lên hệ Quá trình lắp ghép được bắt đầu bằng việc cho ma trận hệ sốrKsvà vectơtRubằng r0s pt0uq Các ma trận phần tử được lắp vào ma trận toàn cục theo đúng vị trí đóng góp của mỗi phần tử đối với hệ Để minh họa điều này chúng ta hãy khảo sát một lưới phần tử hữu hạn gồm 8 nút, 6 phần tử của một bài toán có biên dạng như hình dưới Các bậc tự do tại nút mô tả cho tải trọng tại đó Vì mô hình có 8 nút do đó ma trận toàn cục rKs có kích thước 88, vectơ toàn cụctRucó kích thước
81 Quá trình lắp ghép được thực hiện như sau:
Hệ phương trình toàn cục ban đầu:
Lắp ghép phần tử 1 vào hệ toàn cục.
Hình 1.7:Lưới phần tử hữu hạn
Phần tử này được kết nối với miền toàn cục thông qua các bậc tự do (1, 2, 5), thứ tự các bậc tự do phải được lấy theo chiều ngược chiều kim đồng hồ Giả sử các phương trình cho phần tử 1 có dạng:
Phương trình thứ nhất của hệ (1.4) trên có thể viết:
1u1 2u2 3u511 (1.5) viết lại cho tất cả các bậc tự do toàn cục
1u1 2u2 0u3 0u4 3u5 0u6 0u7 0u811 (1.6) vậy sau khi lắp ghép vào hệ toàn cục ta có:
(1.7) tương tự cho hai phương trình còn lại.
Do đó hệ phương trình toàn cục sau khi lắp ghép phần tử 1 có dạng:
Cách lắp ghép phần tử 2 vào hệ toàn cục hoàn toàn tương tự như vậy.Sau khi lắp ghép hai phần tử ta thu được hệ phương trình toàn cục sau
. // // // // // // /- (1.9) hoàn toàn tương tự cho các phần tử còn lại [3]
Khử các điều kiện biên chính
Trong quá trình lắp ghép, giả sử rằng các bậc tự do tại nút là các ẩn chưa biết Tuy nhiên trong các bài toán thực tế, thường một số trong chúng có thể được định nghĩa trước, hoặc bằng không, hoặc khác không Các bậc tự do định nghĩa trước này gọi là các điều kiện biên chính Vậy để thỏa điều kiện tương thích trên biên, chúng ta phải khử chúng trước khi giải hệ phương trình toàn cục.
Việc khử điều kiện biên chính trong hệ phương trình toàn cục bao gồm:
• Thay các giá trị cho trước vào vectơ bậc tự do toàn cụctuu
• Loại bỏ các phương trình phụ, rút gọn hệ phương trình còn lại.
Giải hệ phương trình đại số tuyến tính
Để xác định chuyển vị nút trong phương pháp phần tử hữu hạn ta luôn nhận được hệ phương trình tuyến tính toàn cục sau khi đã khử các điều kiện biên, ta thu được hệmphương trìnhmẩn số. rAs txu tbu (1.10)
Có nhiều phương pháp để giải hệ trên như phương pháp giải trực tiếp(phương pháp tách A=LU, phương pháp khử Gauss), phương pháp giải lặp [3]
Điều kiện số
Trong phương pháp phần tử hữu hạn ma trận thường rất lớn. Nghiệm hệ phương trình đại số có sai số làm tròn có nghĩa thỏa mãn điều kiện yếu Điều kiện số của ma trận hệ số [A] được sử dụng để kiểm soát và bảo đảm điều kiện yếu này Điều kiện số một ma trận được xác định [3]:
}A}: chuẩn ma trận A, A 1 : chuẩn của ma trận nghịch đảo A, λmax, λmin: lần lượt là trị riêng lớn nhất và nhỏ nhất của ma trận A. với}A} Max
• Điều kiện sốλCond|A| lớn hơn hay bằng 1, giá trị càng lớn tính yếu hay suy biến của ma trận càng cao.
• Sai số tương đối của chuẩn của nghiệm tính toán có quan hệ với sai số tương đối của chuẩn của các phần tử ma trận rAs:
So sánh phương pháp phần tử hữu hạn với lời giải chính xác
với lời giải chính xác
Quá trình đại diện cho một miền vật lý với các phần tử hữu hạn được gọi là quá trình chia lưới và kết quả thiết lập các phần tử được gọi là lưới phần tử hữu hạn Như hầu hết các dạng hình học thông thường có các cạnh thẳng, nói chung thật khó để bao gồm toàn bộ miền vật lý trong lưới phần tử nếu miền có dạng biên cong Tình huống như vậy được thể hiện trong hình 1.10a, miền biên cong được chia lưới bằng cách sử dụng các phần tử hình vuông (lưới thô) Một lưới tinh đối với miền trên được thể hiện trong hình 1.10b, dùng nhiều hơn, nhỏ hơn các phần tử hình vuông cùng loại Lưu ý rằng các lưới tinh bao gồm nhiều miền vật lý trong không gian biểu diễn phần tử hữu hạn một cách đáng kể và miền biên cong được xấp xỉ chặt chẽ hơn [6] Nếu hàm nội suy thỏa mãn điều kiện toán học nhất định, một
Hình 1.8:Chia lưới phần tử của miền biên cong lời giải phần tử hữu hạn cho một bài toán cụ thể hội tụ đến lời giải chính xác của bài toán Đó là, khi số lượng các phần tử được tăng lên và kích thước vật lý của phần tử giảm, lời giải của phương pháp phần tử hữu hạn thay đổi từng bước Số gia thay đổi giảm với quá trình sàng lọc lưới và tiếp cận lời giải chính xác tiệm cận Để minh họa quá trình hội tụ, chúng ta xem xét một bài toán tương đối đơn giản mà đã biết lời giải chính xác Hình 1.11a mô tả một hình nón cụt cố định ở một đầu và bị tải trọng kéo ở đầu kia Giả sử sự thay thế tại các điểm tải trọng được quan tâm , một xấp xỉ đầu tiên đạt được bằng cách xem xét hình trụ được chia đều, có diện tích mặt cắt ngang bằng với diện tích trung bình của hình trụ (hình 1.11b) Thanh đều là một bản lề hoặc thanh phần từ hữu hạn, do đó xấp xỉ đầu tiên là mô hình phần tử hữu hạn một phần tử Lời giải đạt được bằng cách sử dụng sức mạnh của lý thuyết vật liệu Tiếp theo, chúng ta mô hình hóa hình trụ côn thành hai thanh đều nối tiếp (hình 1.11c).Trong mô hình hai phần tử, mỗi phần tử có chiều dài bằng một nửa tổng chiều dài của hình trụ và có tiết diện mặt cắt ngang bằng với diện tích trung bình tương ứng của nửa chiều dài hình trụ Sự làm mịn lưới đó được tiếp tục bằng cách sử dụng mô hình 4 phần tử (hình 1.11d) và như vậy Đối với bài toán đơn giản, sự thay thế của đoạn cuối hình trụ cho mỗi mô hình phần tử hữu hạn như thể hiện trong hình 1.12a, nơi các đường đứt thể hiện cho lời giải chính xác Sự hội tụ của lời giải phần tử hữu hạn đến lời giải chính xác được chỉ định rõ ràng Mặt khác, nếu chúng ta vẽ sự thay thế như là một hàm của
Hình 1.9:Ví dụ cách chia lưới của phần tử hình nón cụt vị trí dọc theo chiều dài hình trụ, chúng ta có thể quan sát sự hội tụ cũng như bản chất gần đúng của lời giải phần tử hữu hạn Hình 1.12b mô tả sức mạnh chính xác của giải pháp vật liệu và lời giải thay thế bằng mô hình 4 phần tử Chúng ta lưu ý rằng biến phân thay thế ở mỗi phần tử là một xấp xỉ tuyến tính cho lời giải phi tuyến thật sự.Biến phân tuyến tính liên quan trực tiếp đến hàm nội suy cho một phần tử thanh là tuyến tính Thứ hai, chúng ta lưu ý rằng, khi lưới được mịn hóa, lời giải hội tụ đến lời giải phi tuyến tại mỗi điểm trong miền nghiệm Trong hầu hết bài toán kết cấu, chúng ta quan tâm đến
Hình 1.10:Đồ thị so sánh lời giải chính xác với lời giải PPPTHH ứng suất gây ra bởi các tải trọng chuẩn Ứng suất phải được tính toán thông qua các mối quan hệ ứng suất-biến dạng, và các thành phần biến dạng bắt nguồn từ giải pháp miền thay thế Vì vậy, ứng suất và biến dạng được gọi là các biến được suy ra Ví dụ, nếu chúng ta vẽ các phần tử ứng suất cho hình trụ côn viện dẫn cho nghiệm chính xác cũng như lời giải phần tử hữu hạn cho mô hình 2 và 4 phần tử như mô tả trong hình 1.5, chúng ta nhận thấy rằng các ứng suất là hằng số ở mỗi phần tử và thể hiện một nghiệm không liên tục của bài toán về mặt ứng suất và biến dạng Chúng ta cũng lưu ý rằng, khi số lượng các phần tử tăng lên, các bước nhảy không liên tục trong ứng suất giảm dần độ lớn Hiện tượng này là đặc tính của phương pháp phần tử hữu hạn Việc xây dựng phương pháp phần tử hữu hạn cho một bài toán đặt ra là miền biến cơ sở là liên tục từ phần tử qua phần tử nhưng các biến được suy ra không nhất thiết phải liên tục Trong quá trình hạn chế của việc chia lưới, các biến được suy ra trở nên gần và gần đến sự liên tục Các bài toán cho chúng ta thấy làm thế nào lời giải phần tử hữu hạn hội tụ đến lời giải chính xác (độ chính xác của lời giải trong trường hợp này là sức mạnh của lý thuyết vật liệu) Nếu chúng ta biết nghiệm chính xác, chúng ta sẽ không được áp dụng phương pháp phần tử hữu hạn Vì vậy, làm thế nào để chúng ta đánh giá độ chính xác của nghiệm phần tử hữu hạn cho một bài toán với một nghiệm chưa biết? Câu trả lời là không đơn giản Nếu chúng
Hình 1.11:Đồ thị so sánh lời giải nghiệm khi tăng số phần tử trong lưới ta không có nét đứt trong hình 1.11 thể hiện cho nghiệm chính xác, chúng ta có thể vẫn nhận thấy sự hội tụ đến một nghiệm Sự hội tụ của một phương pháp số (chẳng hạn như phương pháp phần tử hữu hạn) không có nghĩa đảm bảo rằng sự hội tụ đến nghiệm chính xác.
Sử dụng kỹ thuật phân tích phần tử hữu hạn phải xem xét nghiệm phân tích về (1) hội tụ số, (2) hợp lý (3) thỏa mãn các định luật vật lý (là cấu trúc ở trạng thái cân bằng? Cân bằng nhiệt đầu vào với đầu ra?) và (4) tính liên tục trong giá trị của các biến được suy ra dọc theo các biên phần tử là hợp lý Nhiều câu hỏi phải được đặt ra và kiểm tra trước khi chấp nhận kết quả của lời giải phần tử hữu hạn.[6]
So sánh phương pháp phần tử hữu hạn với phương pháp
với phương pháp sai phân
Phương pháp sai phân là một phương pháp số khác thường dùng để đạt được nghiệm gần đúng của phương trình đạo hàm riêng Ở đây,chúng ta trình bày các khái niệm cơ bản của phương pháp sai phân với mục đích là so sánh với phương pháp phần tử hữu hạn Phương pháp sai phân dựa trên định nghĩa đạo hàm của một hàm fpxqsau: [6] dfpxq dx lim
∆x (1.12) trong đó xlà biến độc lập Trong phương pháp sai phân, như ngụ ý theo tên của nó, các đạo hàm được tính toán qua phương trình 1.12 sử dụng các giá trị nhỏ nhưng hữu hạn của δxđể có được dfpxq dx fpx ∆xq fpxq
Ví dụ một phương trình đạo hàm riêng sau: df dx x0 0¤x¤1 (1.14) được thể hiện như: fpx ∆xq fpxq
∆x x0 (1.15) theo phương pháp sai phân, phương trình 1.5 có thể được viết thành: fpx ∆xq fpxq x∆pxq (1.16)
Từ lý thuyết phương trình đạo hàm riêng, chúng ta biết rằng nghiệm của phương trình đạo hàm riêng cấp 1 chứa một hằng số tích phân. Hằng số tích phân phải được xác định như là một trong những điều kiện nhất định (một điều kiện biên hay điều kiện ban đầu) được thỏa mãn Trong ví dụ trên, chúng ta giả định rằng điều kiện cụ thể là xp0q Aconstant Nếu chúng ta chọn bước lấy tích phân xnhỏ, giá trị không đổi (bước lấy tích phân không đòi hỏi là hằng số), sau đó chúng ta có thể viết x i 1 x i ∆x i0, N (1.17) trong đóN là tổng số bước đòi hỏi để che phủ hết miền Phương trình 1.16 trở thành fi 1fixip∆xq f0A i0, N (1.18)
Phương trình 1.18 được biết đến như là một hệ thức truy toán và cung cấp một xấp xỉ các giá trị của hàm fpxqchưa biết tại một số điểm rời rạc trong miền của bài toán Để minh họa, hình 1.14 chỉ ra được lời giải chính xác là fpxq 1x 2 {2 và một lời giải sai phân hữu hạn đạt được với ∆x0.1 Lời giải sai phân hữu hạn được thể hiện ở hàm các điểm rời rạc Tác động của hàm biến phân giữa các điểm được tính toán không được biết trong phương pháp sai phân hữu hạn Tất nhiên có thể nội suy tuyến tính các giá trị để sản sinh một xấp xỉ với lời giải chính xác nhưng phương pháp nội suy không phải là cách xác định ưu tiên trong phương pháp sai phân hữu hạn. Đối chiếu phương pháp sai phân hữu hạn với phương pháp phần tử
Hình 1.12:Đồ thị so sánh lời giải chính xác với phương pháp sai phân hữu hạn của phương trình 1.14 vớif0A1 hữu hạn, chúng ta lưu ý rằng, trong phương pháp phần tử hữu hạn,biến phân của trường biến trong miền vật lý là một phần tích phân của qui trình Đó là, dựa trên hàm nội suy được chọn, biến phân của trường biến thông qua phần tử hữu hạn được quy định như một phần tích phân của việc xây dựng bài toán Trong phương pháp sai phân hữu hạn, điều này không đúng trong trường hợp: Trường biến được tính toán tại chỉ các điểm được chỉ định Sự rẽ nhánh chính của đối lập này là đạo hàm (đến một mức độ nhất định) có thể được tính toán theo phương pháp phần tử hữu hạn, trong khi phương pháp sai phân hữu hạn cung cấp dữ liệu chỉ vào biến đó Trong một bài toán cấu trúc, ví dụ, cả hai phương pháp cung cấp các lời giải thay thế, nhưng lời giải phần tử hữu hạn có thể được sử dụng để tính toán trực tiếp thành phần biến dạng (đạo hàm cấp 1) Để có được dữ liệu biến dạng trong phương pháp sai phân hữu hạn đòi hỏi các xem xét thêm không gắn liền với các mô hình toán học.
Ngoài ra còn có những điểm tương đồng nhất định giữa hai phương pháp Tích phân điểm trong phương pháp sai phân hữu hạn là tương tự với các nút trong mô hình phần tử hữu hạn Biến quan tâm được đánh giá một cách rõ ràng tại các điểm đó Ngoài ra, bước tích phân (kích cỡ bước) trong phương pháp sai phân hữu hạn là giảm, lời giải được cho là sẽ hội tụ về lời giải chính xác Điều này cũng tương tự cho hội tụ kì vọng của lời giải phần tử hữu hạn như lưới các phần tử được mịn hóa Trong cả hai trường hợp, sự làm mịn đại diện cho việc đưa mô hình toán học từ hữu hạn đến vô cùng Và trong cả hai trường hợp, phương trình vi phân được đưa về phương trình đại số.
Có lẽ cách mô tả tốt nhất để đối chiếu hai phương pháp là phương pháp sai phân hữu hạn mô hình hóa các phương trình đạo hàm riêng của bài toán và sử dụng tích phân số để đạt được lời giải tại các điểm rời rạc Phương pháp phần tử hữu hạn mô hình hóa toàn bộ miền của bài toán và sử dụng các định luật vật lý đã biết để phát triển các phương trình đại số mô tả lờii giải nghiệm xấp xỉ Vì vậy, phương pháp sai phân hữu hạn mô hình hóa các phương trình đạo hàm riêng trong khi phương pháp phần tử hữu hạn có thể được nói đến như là cách mô hình chặt chẽ hơn cho các bài toán vật lý [6]
PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN CHO CÁC BÀI
Các nguyên lý biến phân
Nguyên lý thế năng toàn phần dừng hay nguyên lý biến phân về chuyển vị
lý biến phân về chuyển vị
Thế năng toàn phần của một hệ đàn hồi± được xác định là: [1] ạUA (2.1) trong đó:
• U thế năng biến dạng của vật thể đàn hồi tích lũy trong quá trình biến dạng.
• Acông của ngoại lực sinh ra trên các chuyển dời của ngoại lực do vật thể bị biến dạng.
Nội dung nguyên lý: Trong tất cả các trường chuyển vị (trạng thái chuyển vị) thỏa mãn các điều kiện tương thích và điều kiện biên động học thì trường chuyển vị thực (tức trường chuyển vị tương ứng với sự cân bằng của vật thể) sẽ làm cho thế năng toàn phần ± đạt giá trị dừng Hay, khi vật thể cân bằng thì thế năng toàn phần± đạt giá trị dừng.
Tức là: Nếu± được biểu diễn theo chuyển vịtuu tu, v,wu T thì vật thể cân bằng khi δạ ptuuq δUptuuq δAptuuq 0 (2.2)
Cụ thể hơn, thế năng biến dạng đàn hồi U được tính bởi công thức:
Trường hợp có biến dạng ban đầu: U 1 2 ³
Còn côngAcủa ngoại lực (gồm lực khốitgu, lực mặttpu) trên các chuyển dờituulà
Và thế năng toàn phần± viết ở dạng ma trận là: ạptuuq UA1
Theo nguyên lý này trường chuyển vịtuuthỏa mãn các điều kiện biên và làm ± đạt giá trị dừng sẽ chính là trường chuyển vị thực và làm thỏa mãn các phương trình cân bằng Nếu dùng nguyên lý này để xây dựng phương trình phần tử hữu hạn, thì ta giả thiết một dạng đơn giản của chuyển vị trong mỗi phần tử và từ điều kiện dừng của phiếm hàm ± ta sẽ nhận được một hệ phương trình cân bằng trong khi các điều kiện liên tục đã được thỏa mãn. Áp dụng nguyên lý cực tiểu thế năng: Đối với một hệ bảo toàn, trong tất cả các di chuyển khả dĩ, di chuyển thực ứng với trạng thái cân bằng sẽ làm cho thế năng đạt cực trị Khi thế năng đạt giá trị cực tiểu thì vật (hệ) ở trạng thái cân bằng ổn định.
Ví dụ: Ta xét dầm chịu tải trọng phân bố đều Theo sức bền vật liệu và cơ học kết cấu, đã biết thế năngU của dầm chịu uốn là:
Ta có, thế năng toàn phần±
Theo nguyên lý thế năng toàn phần dừng: vpxq sẽ là thực nếu δ± δUδA0
Tuy nhiên theo điều kiện biên bài toán, chuyển vị góc xoay tại x0vàx1 là đã cho trước và bằng 0 nên ta cũng có δv dδv dx 0;x0, x1 (2.14)
EJ d dx 4 v 4 q δv.dx0 Để thỏa mãn với mọiδv0, ta có:EJ d dx 4 v 4 q0 Đây chính là phương trình cân bằng của dầm chịu uốn được viết theo chuyển vị.
Nguyên lý cực tiểu của năng lượng bù toàn phần, (nguyên lý biến phân của ứng suất)
phần, (nguyên lý biến phân của ứng suất)
Năng lượng bù toàn phần của 1 vật thể đàn hồi ± được định nghĩa là [1]: ạ
Trong đó:U là năng lượng bù của biến dạng
Trường hợp đàn hồi tuyến tính U U 1 2 ³
V tσu T tεudv (là phiếm hàm của tσu) hay nếu có biến dạng ban đầu tεou:
A: công bù của ngoại lực
S d tpu T tuudS (2.17) trong đóS d là phần biên đã biết chuyển vịtuuvà ạ pσq 1
Nội dung nguyên lý cực trị của năng lượng bù toàn phần: Trong tất cả các trường ứng suất khả dĩ tĩnh (tức thỏa mãn các điều kiện cân bằng và điều kiện biên tĩnh học trênSt) thì trường ứng suất thực (tương ứng thỏa mãn điều kiện tương thích) sẽ làm năng lượng bù toàn phần ± đạt giá trị dừng. δạ ptσuq σU ptσuq σA ptσuq 0 (2.19)
Ví dụ: Xác định nội lực dầm của bài toán dầm chịu tải trọng phân bố đều.
Gọi phản lực và mômen phản lực tại A là VA vàMA chưa biết. Nhưng rõ ràng hệ nội lực do nó và tải trọng q gây ra trong dầm là cân bằng thì có nghĩa là khả dĩ tĩnh.
Và khi đó ta có biểu thức nội lực:Mpxq VAxMA qx 2 2 Nhưng rõ ràng việc bỏ đi liên kếtA sẽ không bảo đảm điều kiện tương thích Muốn bảo đảm điều kiện này (góc xoay và chuyển vị tại
Nhưng nếu ta tìm được V A và M A sao cho ± cực trị thì đó là nghiệm và thỏa mãn điều kiện tương thích về biến dạng ±
Công bù của ngoại lực trên phần biên đã biết chuyển vị là A
Có thể viết lại 2 phương trình trên:
# l 3 3EJVA EJ l 2 MA 4EJ ql 4 0
Hai phương trình này là điều kiện tương thích của biến dạng cụ thể là điều kiện chuyển vị và góc xoay tạiAphải bằng 0.
Phương pháp Galerkin cho bài toán biến dạng dọc trục 27
Dạng yếu (dạng biến phân)
Trong phương pháp Galerkin, chúng ta giả định trước lời giải xấp xỉ phụ thuộc các tham số chưa biết Giá trị của các tham số này được xác định sao cho sai số giữa lời giải giả định và lời giải chính xác là đủ nhỏ để có thể chấp nhận được tùy theo từng bài toán kỹ thuật. Lời giải giả định có thể chọn ở dạng bất kỳ, tuy nhiên để đơn giản, ta chọn ở dạng đa thức sau. r upxq a0 a1x a2x 2 anx n (2.27)
Trong đóa 0 , a 1 , , a n là các tham số chưa biết.
Ký hiệu dấutrênucho biết nó là lời giải giả định.
Ta có sai số sẽ là epxq d dx
Sai số tổng tìm được bằng cách tích phânepxqtrên toàn miền khảo sát, và được gọi là hàm thặng dư Để tránh sự triệt tiêu trong quá trình tích phân, sai số epxq được nhân bởi một hàm trọng số thích hợp sau đó mới tích phân trên toàn miền khảo sát để tìm sai số tổng.
Từ đó hàm thặng dư có trọng được viết như sau: x l ằ x 0 epxqW i pxqdx0;i0,1, , n (2.29)
Trong đóWipxqlà các hàm trọng số.
Trong phương pháp bình phương tối thiểu, sai số tổng có dạng toàn phương eT x l ằ x 0 e 2 dx (2.30)
Các điều kiện cần để cực tiểu (2.30) cho tanphương trình để giải tìm ntham số chưa biết
Do đó các hàm trọng số
Wipxq trong phương pháp bình phương tối thiểu sẽ là:
Một phương pháp phổ biến hơn trong các ứng dụng phần tử hữu hạn là phương pháp Galerkin Ở đây các hàm trọng số thay vì định nghĩa trên sai số epxq, Galerkin định nghĩa nó trên lời giải giả định
Do đó hệ n phương trình để tìm các tham số chưa biết trong phương pháp Galerkin sẽ là: x l ằ x 0 eBu
Ba i dx0;i0,1,2, , n (2.34) Đến đây trong việc phát triển hàm thặng dư Galerkin, chúng ta khảo sát sai số epxq trong việc thỏa phương trình vi phân gốc Mặt khác lời giải xấp xỉ còn phải thỏa các điều kiện biên Để đưa các điều kiện biên vào hàm thặng dư Galerkin, chúng ta sử dụng phép toán tích phân từng phần. x l ằ x 0
Bx gpxqdxfpx l qgpx l q fpx 0 qgpx 0 q x l ằ x 0
Bx fpxqdx (2.35) Áp dụng vào bài toán biến dạng dọc trục, ta có: x l ằ x 0 d dx
Wipxqdx0;i0,1,2, , n (2.36) Áp dụng công thức tích phân từng phần cho số hạng đầu, phương trình sẽ trở thành
A p x l q E p x l q du p x l q dx W i p x l q A p x 0 q E p x 0 q du p x 0 q dx W i p x 0 q xl ằ x 0
AE du dx dW i dx dx xl ằ x 0 q p x q W i p x q dx (2.37) ô A p x l q E p x l q du p x l q dx W i p x l q A p x 0 q E p x 0 q du p x 0 q dx W i p x 0 q xl ằ x 0
AE du dx dW i dx q p x q W i p x q dx 0 (2.38) Ở đây giả sử diện tích tiết diện ngangApxqmođun đàn hồiEpxq và lực dọc qpxqlà các hàm theo tọa độx
Phương trình (2.38) là dạng yếu (dạng tích phân) của phương trình
(2.25) bởi vì nó thoả (2.25) một cách xấp xỉ theo ý nghĩa tích phân.
(2.35) còn gọi là dạng mạnh bởi vì nó yêu cầu epxq phải triệt tiêu với mọix Hai số hạng đầu tiên trong phương trình (2.38) cho chúng ta cách đưa các điều kiện biên vào hàm thặng dư có trọng Galerkin.
Thật vậy, với các điều kiện biên upx0q ux0
Apx0qEpx0q du dx p x 0 q Fx 0
Trường hợp 1: Nếu lựcF x 0 định nghĩa tại vị trí x 0 lúc đó số hạng thứ hai trong phương trình (2.38) sẽ làFx 0 Wipxq Vì lẽ các hàm trọng sốWipxqlà biết trước nên chúng ta có thể dễ dàng tính được số hạng này
Trường hợp 2: Nếu chuyển vịupx0q ux0 được định nghĩa tại vị tríx 0 Trong trường hợp nàyApx 0 qEpx 0 q du dx p x 0 q về mặt vật lý diễn tả phản lực chưa biết tương ứng tại vị trí đó Vậy các số hạng biên trong phương trinh (2.38) không luôn luôn tính được Để tránh điều này xảy ra, chỉ có một cách là chúng ta phải loại bỏ nó bằng việc chọn hàm trọng sốW i pxqsao cho nó triệt tiêu tại vị tríx 0 Mặc khác các hàm trọng số là đạo hàm của lời giải giả định theo các tham sốai, do đó yêu cầu W i pxq 0 đạt được nếu lời giải giả định thoả điều kiện biên về chuyển vị tạix0 Cũng chính điều kiện này, nên các điều kiện biên về chuyển vị được gọi là các điều kiện biên chính (EBCs) Ngược lại, lời giải xấp xỉ không yêu cầu việc thoả một cách tường minh các điều kiện biên về lực tác dụng, do đó nó được gọi là các điều kiện biên tự nhiên (NBCs).
Lập luận tương tự tại vị tríxi, các điều kiện biên cho bài toán có thể định nghĩa ở các dạng sau :
1 Apx 0 qEpx 0 qu 1 px 0 qcho trước hoặc W i px 0 q 0
2 Apx l qEpx l qu 1 px l qcho trước hoặc W i px l q 0
Giả sử các điều kiện biên về lực tác dụng tại hai đầu thanh được đinh nghĩa lúc (2.38) viết lại
AEdu dx dWi dx qpxqWipxq dx0 (2.39) ô ằx l x 0
Edu dx dWi dx Adx ằx l x 0 qpxqW i pxqdx Fpx l qW i px l q Fpx 0 qW i px 0 q
Thanh có tiết diện đều chịu tải dọc trục thay đổi tuyến tính
Trở lại bài toán tìm chuyển vị dọc trục của thanh Bây giờ chúng ta sử dụng phương pháp Galerkin để tìm lời giải xấp xỉ của bài toán. Phương trình vi phân chính tắc mô tả bài toán viết lại
EA d dx 2 u 2 cx0,0 x L Với các điều kiện biên: up0q 0, EA du dx p L q P Trong đó miền khảo sátxP t0, Lu, EAlà hằng số, lực dọcqpxq cx, điều kiện biờn chớnh up0q 0 ủ Wp0q 0, điều kiện biờn tự nhiênEAu 1 rLs P, vậy dạng yếu cho bài toán được định nghĩa như sau:
Fpx l qW i px l q Fpx 0 qW i px 0 q x l ằ x 0
AEdu dx dW i dx qpxqW i pxq dx0 (2.41) ủP WipLq ằL
AEdu dx dWi dx cxWipxq dx0 (2.42)
Có thể sử dụng dạng yếu ở phương trình trên để tìm các lời giải xấp xỉ cho bài toán.
Sử dụng lời giải giả định ở dạng đa thức tuyến tính, lời giải xấp xỉ của bài toán có thể tìm được như sau:
Lời giải giả định: upxq a0 a1x (2.43) Để thoả các điều kiện biên chính chúng ta phải có: up0q 0ủa0 0a1a00
Vì thế lời giải giả định khả dĩ sẽ là: upxq xa 1 ;du dx a 1 (2.44)
Thay (2.44) vào dạng yếu (2.42) ta có
AE du dx dW 1 dx cxW 1 dx P W 1 p L q ằ L 0
AEa 1 dW 1 dx cxW 1 dx 0 (2.45)
Bx 1 (2.46) thay (2.46) vào dạng yếu (2.42) ta có
AEdu dx dW1 dx cxW1 dxP L ằL
Do đó lời giải xấp xỉ tuyến tính của bài toán có dạng upxq a1x cL 2 3P
Lời giải giả định bậc 2: upxq a 0 a 1 x a 2 x 2 (2.50) Để thoả các điều kiện chính chúng ta phải có: up0q 0ủa00
Vì thế lời giải giả định khả dĩ sẽ là: upxq a2x 2 a1xẹ du dx 2a2x a1 (2.51) Thay (2.51) vào dạng yếu (2.42) ta có
AE du dx dW 1 dx cxW 1 dx P W 1 p L q ằ L 0
AE p 2a 2 x a 1 q dW 1 dx cxW 1 dx 0 (2.52)
Các hàm trọng số Galerkin
Thay (2.52) vào dạng yếu (2.42) ta có
Thay (2.53) vào dạng yếu (2.42) ta có
AE p 2a 2 x a 1 qp 2x q cx 3 dx 0 ủ cL 4
Giải hệ phương trình (2.54), (2.55) ta tìm được các tham số như sau: a 1 7cL 2 12P
Thanh có tiết diện ngang và chịu tải thay đổi tuyến tính
Khảo sát bài toán thanh có tiết diện ngang và tải phân bố dọc trục thay đổi tuyến tính Phương trình vi phân chính tắc mô tả bài toán là d dx
Apxq A0 A 0 L A L p L p 1 L r q x q A 0 Với các điều kiện biên: up0q 0;ErA0 du p L q dx P
Lúc đó dạng yếu của bài toán sau khi khử các điều kiện biên có dạng:
0 rcLxWpxq pL pr1qxqEA 0 u 1 pxqW 1 pxqqsdx
Trong đó A0, AL lần lượt là diện tích tiết diện ngang tại vị trí x0vàxL, vàrA L {A 0
Sử dụng dạng yếu (2.60) một số lời giải xấp xỉ cho bài toán có thể tìm được như sau.
Lời giải giả định tuyến tính upxq a 1 x a 0 (2.61)
Lời giải giả định phải thoả các điều kiện biên chính. up0q 0ủa00
Do đó lời giải giả định khả dĩ có dạng: upxq xa1 (2.62)
Do đó lời giải xấp xỉ tuyến tính của bài toán có dạng: upxq 2pcL 3 3P Lq
Lời giải giả định bậc hai upxq a2x 2 a1x a0 (2.66) Lời giải giả định phải thoả các điều kiện biên chính up0q 0ủa00
Do đó lời giải giả định khả dĩ có dạng: upxq a1x a2x 2 (2.67) Các hàm trọng số:
Thay (2.68), (2.67) vào (2.60) để tìm các tham số chưa biết.
Ta được ủa 1 cL 3 6crL 3 12 PrL
Do đó lời giải xấp xỉ bậc hai của bài toán có dạng: upxq xpcp2Lp6r 1q 7rx xqL 2 12Pp2rLxr xqq
Phương pháp Galerkin cho bài toán trị biên một chiều 36
Các bước tổng quát của phương pháp Galerkin 36
Chuyển tất cả các số hạng trên phương trình vi phân chính tắc mô tả bài toán về một vế. Định nghĩa hàm thặng dư có trọng số Galerkin.
Sử dụng tích phân từng phần để giảm bậc đạo hàm trong hàm trọng số và làm xuất hiện các số hạng biên.
Khử các điều kiện biên chính.
2 Xây dựng lời giải giả định khả dĩ phụ thuộc các tham số [7] Lời giải giả định có thể là một hàm bất kì, tuy nhiên để thuận tiện hay chọn dạng đa thức.
Nếu bài toán không cho trước các điều kiện biên chính, lời giải giả định ở trên là lời giải khả dĩ, đến đây chúng ta có thể đi qua bước kế tiếp.
Ngược lại, dựa trên các điều kiện biên chính đã cho, chúng ta thiết lập các phương trình theo một số tham số, giải tìm giá trị của chúng để có được lời giải giả định khả dĩ.
3 Thiết lập các phương trình để tìm các tham số chưa biết [7] Tìm các hàm trọng số tương ứng với các tham số chưa biết còn lại.
Thay các hàm trọng số vào dạng yếu thiết lập hệ phương trình theo các tham số chưa biết.
Giải hệ phương trình trên tìm các tham số chưa biết.
4 Viết và kiểm tra lời giải xấp xỉ [7]
Thay các giá trị tham số vừa tìm được vào lời giải giả định khả dĩ để có được kết quả xấp xỉ cho bài toán.
Kiểm tra mức độ chính xác của lời giải bằng cách so sánh với lời giải chính xác Nếu không có sẵn lời giải chính xác, chúng ta có thể thay kết quả tìm được vào phương trình vi phân gốc, các điều kiện biên để kiểm tra sự thỏa mãn của nó.
Ví dụ: Tìm lời giải xấp xỉ cho bài toán trị biên mô tả bởi phương trình sau: x 2 u 2 2xu 1 x1; 1 x 2Với các điều kiện biên:up1q 2;u 1 p2q 2up2q 5
Phương trình mô tả bài toán có thể viết ở dạng u 2 pxqx 2 2u 1 pxqx x10 Thiết lập hàm trọng số Galerkin
1 wpxqu 2 pxqx 2 2wpxqu 1 pxqx wpxqxwpxq dx
Thực hiện tích phân từng phần
1 pxu 1 pxqp2wpxq xw 1 pxqqqdx
1 px1qwpxq x 2 u 1 pxqw 1 pxq dx0
4wp2qu 1 p2q wp1qu 1 p1q Để đánh giá được các số hạng này:
TH1: hoặcu 1 p1qcho trước hoặc wp1q 0
TH2: hoặc4u 1 p2qcho trước hoặc wp2q 0
Các điều kiện biên định nghĩa cho bài toán:
Lời giải khả dĩ là lời giải thỏa EBCs, do đówp1q 0
Ta được dạng yếu của bài toán
1 px1qwpxq x 2 u 1 pxqw 1 pxq dx0
Lời giải xấp xỉ bậc hai
Lời giải giả định ban đầu upxq a2x 2 a1x a0
Lời giải giả định khả dĩ phải thỏa các điều kiện biên chính, do đó ta có: up1q 20ẹa0 a1 a220ẹa0 a1a2 2 Các hàm trọng số
Thay các hàm trọng số vào dạng yếu để tìm các tham số chưa biết. Hàm trọng sốx1ta có phương trình
Hàm trọng sốx 2 1ta có phương trình
Do đó lời giải xấp xỉ bậc hai cho bài toán có dạng upxq 1090x 2 2886 4533x 2329
Lời giải xấp xỉ bậc ba
Lời giải giả định ban đầu upxq a3x 3 a2x 2 a1x a0
Lời giải giả định khả dĩ phải thỏa các điều kiện biên chính, do đó ta có: up1q 20ẹa0 a1 a2 a320ẹa0 a1a2a3 2 Các hàm trọng số
Thay các hàm trọng số vào dạng yếu để tìm các tham số chưa biết. Hàm trọng sốx1ta có phương trình
7a 3 1 15a 2 2 93a 5 3 4p52pa 1 3a 2 7a 3 2qq 1 3 0 Hàm trọng sốx 2 1 ta có phương trình
15a 2 1 124a 5 2 63a 3 12p52pa 1 3a 2 7a 3 2qq 11 12 0 Hàm trọng sốx 3 1 ta có phương trình
Do đó lời giải xấp xỉ bậc ba cho bài toán có dạng upxq 22365x 3 144070x 2 322764x 13765
Các bài toán trị biên bậc cao
Với các phương trình vi phân có bậc cao hơn, phương pháp Gar- lerkin cũng có thể được ứng dụng dễ dàng Chúng ta khảo sát phương trình vi phân cấp 4 có dạng sau: d 4 u dx 4 10;x0 x xl Định nghĩa hàm trọng số Galerkin x³ B x 0 u p 4 q pxqwpxq wpxq dx0 Áp dụng công thức tích phân từng phần hai lần cho số hạng wpxqu p 4 q pxq wpx l qu p 3 q px l q wpx 0 qu p 3 q px 0 q x ³ l x 0 w 1 pxqu p 3 q pxq dx w 1 px0qu 2 px0q w 1 pxlqu 2 pxlq wpxlqu p 3 q pxlq wpx0qu p 3 q px0q x³ l x 0 pw 2 pxqu 2 pxqqdx
Hàm trọng số w 1 px0qu 2 px0q w 1 pxlqu 2 pxlq wpxlqu p 3 q pxlq wpx0qu p 3 q px0q x³ l x 0 pwpxq w 2 pxqu 2 pxqqdx0
Các số hạng biên: w 1 px0qu 2 px0q w 1 pxlqu 2 pxlq wpxlqu p 3 q pxlq wpx0qu p 3 q px0q Để đánh giá được các số hạng này ta phải có:
TH1: hoặcu p 3 q px0qcho trước hoặc wpx0q 0
TH2: hoặcu 2 px0qcho trước hoặcw 1 px0q 0
TH3: hoặcu p 3 q pxlqcho trước hoặc wpxlq 0
TH4: hoặcu 2 px l qcho trước hoặcw 1 px l q 0
Khử các điều kiện biên, dạng yếu viết lại xl ³ x 0 w p x q w 2 p x q u 2 p x q dx w 1 p x 0 q u 2 p x 0 q w 1 p x l q u 2 p x l q w p x l q u p3q p x l q w p x 0 q u p3q p x 0 q 0
Vậy đối với bài toán cấp 4, các điều kiện biên kể đếnuvàu 1 là các điều kiện biên chính, trong khi đó kể đến u 2 vàu 3 là các điều kiện biên tự nhiên Ta thấy ở bài toán dầm chịu uốn, các điều kiện biên chính được định nghĩa trên chuyển vị, độ cong còn các điều kiện biên tự nhiên được định nghĩa trên moment và lực cắt.
Phương pháp Rayleigh-Ritz
Hàm thế năng cho bài toán thanh biến dạng dọc trục
Khảo sát thanh đàn hồi tuyến tính liên kết và chịu lực Nếu gọi upxq, σx vàεxlần lượt là chuyển vị, ứng suất và biến dạng dọc trục, lúc đó năng lượng biến dạng của thanh được định nghĩa bởi biểu thức
Nếu giả sử ứng suất, biến dạng là hằng số trên tiết diện ngang, ta có
Sử dụng định luật Hook:σxEεx Edu{dxphương trình trên viết lại
Trong đóupx i qlà chuyển vị dọc tại vị trí đặt lực tập trungP i Vậy phiếm hàm thế năng cho bài toán có dạng: ΠUW 1
Các bước tổng quát khi sử dụng phương pháp
1 Tìm dạng tích phân tương đương a Với bài toán kết cấu, sử dụng trực tiếp phiếm hàm thế năng. b Với bài toán trị biên tổng quát, sử dụng tính toán biến phân để xây dựng dạng tích phân.
2 Xây dựng lời giải giả định khả dĩ phụ thuộc các tham số a Lời giải giả định có thể chọn ở dạng đa thức. b Nếu không có các điều kiện biên chính, lời giải giả định là khả dĩ do đó sang bước kế tiếp c Ngược lại, áp đặt các điều kiện biên chính lên lời giải giả định để tìm lời giải khả dĩ.
3 Thiết lập các phương trình để tìm các tham số chưa biết a Thực hiện tích phân phiếm hàm thế năng với lời giải khả dĩ (hàm phụ thuộc các tham số). b Từ điều kiện cần để cực tiểu phiếm hàm, xây dựng hệ phương trình với các biến là tham số. c Giải hệ phương trình để tìm các tham số chưa biết.
4 Viết và kiểm tra lời giải xấp xỉ a Thay các giá trị tham số vừa tìm được vào lời giải giả định khả dĩ để có được kết quả xấp xỉ cho bải toán. b Kiểm tra mức độ chính xác của lời giải bằng cách so sánh với lời giải chính xác Nếu không có sẵn lời giải chính xác, chúng ta có thể thay kết quả tìm được vào phương trình vi phân gốc, các điều kiện biên để kiểm tra sự thoả mãn của nó.
Phần tử thanh biến dạng dọc trục
Lời giải giả định tuyến tính
Lời giải giả định là phép nội suy tuyến tính qua các chuyển vị nút upxq
+ tNu T tdu (2.79) Các hàm nội suy
L (2.80) Đạo hàm theo x u 1 pxq du dx p x q !
Các phương trình phần tử khi sử dụng phương pháp Galerkin
Tìm dạng yếu của phương trình vi phân chính tắc
Hàm trọng số Galerkin ằx 2 x 1 pqN i pxq EAupxqN i pxqqdx0 (2.82)
Sử dụng tích phân từng phần để giảm bậc đạo hàm cho số hạng
EAupxqN i pxq. ằ x 2 x 1 p EAu p x q N i p x qq dx EAN i p x 2 q u 1 p x 2 q EAN i p x 1 q u 1 p x 1 q ằ x 2 x 1
Các điều kiện biên tự nhiên
P1AEu 1 px1q 0, AEu 1 px2qP20ủu 1 px1q P1
(2.84)AE Vậy dạng yếu của phương trình trên tìm được như sau:
P1Nipx1q P2Nipx2q ằx 2 x 1 qNipxq AEu 1 pxqN 1 1 pxq dx0, i1,2
# ³x 2 x 1pqN 1 pxq AEu 1 pxqN 1 1 pxqqdx P 1 N 1 px 1 q P 2 N 1 px 2 q 0 ³x 2 x 1 pqN2pxq AEu 1 pxqN 1 2 pxqqdx P1N2px1q P2N2px2q 0
Trong đóN1px1q 1, N1px2q 0, N2px1q 0, N2px2q 1Ở dạng ma trận phương trình trên tương đương ằx 2 x 1
(2.88) ô ằx 2 x 1 tNuqdx ằx 2 x 1 tBuAEtBu T tdudx tr p u 0 (2.89) ô ằx 2 x 1 tBuAEtBu T dxtdu ằx 2 x 1 tNuqdx trpu (2.90) ô ằx 2 x 1 tBuAEtBu T dxtdu ằx 2 x 1 tNuqdx tr p u (2.91) ủ rks tdu trqu trpu (2.92)
Trong đó: rks ằx 2 x 1 tBuAEtBu T dxtdu , ằx 2 x 1 tNuqdx,trpu
Với các hàm dạng ta tìm được: r k s ằ x 2 x 1 t B u AE t B u T dx ³ x 2 x 1 AE L 1 2 dx ³ x 2 x 1 AE L 1 2 dx ³ x 2 x 1 AE L 1 2 dx ³ x 2 x 1 AE L 1 2 dx
Thay (2.95), (2.94) vào (2.92) ta tìm được các phương trình cho phần tử thanh biến dạng dọc trục
(2.96) rks tdu trqu trpu (2.97) Trong đó: rks AE
Các phương trình phần tử khi sử dụng phương pháp Rayleigh-Ritz
Phiếm hàm thế năng cho bài toán có dạng ΠUW 1
AEpu 1 pxqq 2 dx ằx 2 x 1 qupxqdxP1u1P2u1
(2.99) Mặt khác ta có: u 1 pxq tBu T tdu (2.100) ủ pu 1 pxqq 2 pu 1 pxqq T u 1 pxq tBu T tdu T tBu T tdu tdu T tBu tBu T tdu
Công thực hiện bởi tải phân bố
Wq ằx 2 x 1 qupxqdx ằx 2 x 1 qtNu T tdudx trqu T tdu tdu T trqu
Công ngoại do tải tập trung
(2.106) Vậy phiếm hàm thế năng (2.99) tìm được như sau: Π U W 1
(2.107) Điều kiện cần cho việc cực tiểu phiếm hàm
2rks tdu t0u (2.108) ô rks tdu trqu trpu (2.109) ủ AE
Chúng ta có thể thấy rằng các phương trình phần tử tìm được vớiGalerkin và Rayleigh - Ritz là hoàn toàn giống nhau Ứng dụng
Cơ sở lý thuyết cho bài toán lò xo (spring element)
Một lò xo hoặc kéo nén tuyến tính là một thiết bị cơ học có khả năng chịu biến dạng dọc trục trong phạm vi hoạt động hợp lý (có nghĩa là giãn hoặc nén vượt quá chiều dài lúc không biến dạng), độ giãn hoặc độ co của lò xo là tỷ lệ thuận với tải trọng hướng trục tác dụng Hằng số tỷ lệ giữa sự biến dạng và sự tải được gọi là hằng số lò xo hay là độ cứng thường ký hiệu làkvà có đơn vị là lực trên đơn vị chiều dài Việc mô hình hóa lò xo tuyến tính như một phần tử hữu hạn được thực hiện như trên hình 3.1 Vì lò xo chỉ chịu biến dạng dọc trục, chúng ta lựa chọn một hệ tọa độ địa phương là trụcxdọc theo chiều dài của lò xo Hệ tọa độ địa phương là đối lập với hệ tọa độ toàn cục Hệ tọa độ toàn cục là hệ mà trong đó trạng thái cấu trúc phải được mô tả hoàn toàn Để có trạng thái cấu trúc hoàn toàn thì phải lắp ráp nhiều phần tử hữu hạn vào hệ toàn cục mà chúng ta muốn để tính toán theo các điều kiện tải trọng [6]
Theo hình 3.1, điểm đầu và điểm cuối của lò xo là các nút và các chuyển vị nút được biểu thị bằngu 1 vàu 2 theo chiều dương Nếu các chuyển vị nút này được biết, ta tính được độ giãn hoặc độ co của lò
Hình 3.1: Mô hình hóa phần tử lò xo xo như là lực tổng hợp trong lò xo Tại điểm này, chúng ta đòi hỏi các lực tác dụng cho phần tử chỉ tại các nút, và chúng được biểu thị bởi f1vàf2 theo chiều dương.
Giả sử rằng cả hai chuyển vị nút đều bằng không khi lò xo không biến dạng, biến dạng lò xo được cho bởi δu 2 u 1 (3.1) và hợp lực dọc trục trong lò xo là f kδkpu2u1q (3.2) Ở trạng thái cân bằng,f1 f20hoặcf1 f2, và chúng ta có thể viết lại phương trình 3.2 trên cơ sở các lực tác dụng tại nút là f1 kpu2u1q (3.3) f 2 kpu 2 u 1 q (3.4) có thể mô tả ở dạng ma trận k k k k
(3.5) hoặc rkes tuu tfu (3.6) với rkes k k k k
(3.7) được định nghĩa là ma trận độ cứng phần tử trong hệ tọa độ,ulà ma trận cột (vectơ) của các chuyển vị nút, và f là ma trận cột (vectơ) của các lực ở nút phần tử.
Phương trình 3.7 cho thấy rằng ma trận độ cứng phần tử cho phần tử lò xo tuyến tính là ma trận 22 Hơn nữa, ma trận là đối xứng pkij kjiq Tính chất đối xứng của ma trận độ cứng phần tử cho thấy một thực tế là hệ đàn hồi tuyến tính và mỗi chuyển vị nút được liên quan với nhau bởi cùng một hiện tượng vật lý Ví dụ, nếu một lựcF (lực kéo theo chiều dương) được áp dụng tại nút 2 trong khi nút 1 được giữ cố định, chuyển vị tương đối của hai nút là tương tự nhau nếu như lực tác dụng có tính chất đối xứng (lực kéo theo chiều âm) ở nút 1 với nút 2 là cố định Một cách tổng quát: một phần tử biểu hiện N bậc tự do tương ứng với ma trận độ cứng phần tửNN. Xem xét việc giải hệ phương trình 3.5 Nói chung, các lực tác dụng nút được chỉ định và mục tiêu là để giải các chuyển vị nút chưa biết.
Cuối cùng, lời giải được đại diện bởi
(3.8) ở đây rkes 1 là nghịch đảo của ma trận độ cứng phần tử Ngoài ra, ma trận nghịch đảo này không tồn tại, khi định thức của ma trận độ cứng phần tử bằng không Vì vậy, ma trận độ cứng phần tử là suy biến Ý nghĩa vật lý của tính chất suy biến của ma trận độ cứng phần tử được tìm thấy bằng cách xem lại hình 3.1, trong đó cho thấy rằng không có chuyển vị ràng buộc bất cứ điều gì đã được áp dụng trên chuyển động của phần tử lò xo; đó là lò xo không được kết nối với bất kỳ đối tượng vật lý có thể ngăn cản hoặc hạn chế chuyển động của một trong hai nút Với việc không ràng buộc, không thể giải quyết cho các chuyển vị nút riêng lẻ Thay vào đó, chỉ có sự khác biệt trong chuyển vị nút có thể được xác định như là sự khác biệt thể hiện ở độ giãn hoặc độ co của phần tử lò xo do tác dụng của lực đàn hồi Đối với phần tử đơn, không ràng buộc, nếu các lực bất kì được áp dụng tại mỗi nút, lò xo không chỉ chịu biến dạng dọc trục mà còn chịu biến dạng gia tốc theo định luật hai Newton Do đó, không chỉ tồn tại biến dạng mà còn cả chuyển động tổng thể Nếu, trong một hệ thống kết nối của các phần tử lò xo, sự đáp ứng của toàn hệ thống là như vậy mà các nút 1 và 2 của một phần tử cụ thể chuyển vị cùng khối lượng, không có biến dạng đàn hồi của lò xo và do đó không có lực đàn hồi trong lò xo.Tình trạng vật lý này phải được bao gồm trong xây dựng phần tử Khả năng được chỉ định bởi hệ phương trình ma trận độ cứng phần tử Là ma trận độ cứng được xây dựng trên cơ sở biến dạng của phần tử, chúng ta không thể mong chờ để tính chuyển vị nút nếu không có biến dạng của phần tử. Đạo hàm của ma trận độ cứng phần tử cho một phần tử lò xo được dựa trên các điều kiện cân bằng Qui trình tương tự có thể được áp dụng cho một hệ kết nối các phần tử lò xo bằng cách viết phương trình cân bằng cho mỗi nút Ngoài ra, thay vì vẽ sơ đồ phân tích lực của mỗi nút và viết các phương trình cân bằng, các phương trình cân bằng nút có thể thu được hiệu quả hơn bằng cách xem xét tác động của mỗi phần tử riêng lẻ và thêm các lực phần tử đóng góp cho mỗi phương trình nút Để minh họa, thông qua một ví dụ đơn giản, sắp xếp các đặc tính phần tử vào các hệ phương trình, chúng ta xem xét hệ gồm 2 phần tử lò xo tuyến tính được kết nối như trong hình 3.2.
Hình 3.2: Mô hình hệ gồm 2 phần tử lò xo kết nối với nhau Để tổng quát, giả định rằng các lò xo có các hằng số lò xo khác nhau là k 1 vàk 2 Các nút được đánh số 1, 2, 3 với các lò xo chung nhau nút 2 như là kết nối vật lý Lưu ý rằng đây là các số thứ tự nút toàn cục Các chuyển vị nút toàn cục được xác định làU 1 ,U 2 , vàU 3 , ký hiệu viết hoa trên được sử dụng để chỉ ra rằng số lượng đại diện là các chuyển vị toàn cục trái ngược với các chuyển vị riêng lẻ của mỗi phần tử Tương tự như vậy, các lực tác dụng là F1, F2, vàF3 Giả sử hệ gồm 2 lò xo ở trạng thái cân bằng, chúng ta xem xét các sơ đồ phân tích lực của các lò xo riêng biệt (hình 3.3) và thể hiện các điều kiện cân bằng cho mỗi lò xo, sử dụng phương trình 3.5, ta có k1 k1 k1 k1
(3.10) Để bắt đầu "lắp ráp" các phương trình cân bằng mô tả hành vi của hệ hai lò xo, các điều kiện chuyển vị tương thích liên quan các chuyển vị phần tử đến chuyển vị trong hệ toàn cục, được viết u p 1 1 q U1 u p 2 1 q U2 u p 1 2 q U2 u p 2 2 q U3 (3.11)
Các điều kiện tương thích nêu thực tế vật lý mà các lò xo được kết nối tại nút 2, duy trì kết nối tại nút 2 sau khi biến dạng, và do đó, phải có cùng sự chuyển vị nút tại nút 2 Vì vậy, sự chuyển vị liên tục từ phần tử này qua phần tử khác được thực thi tại các kết nối nút. Thay phương trình 3.11 vào phương trình 3.10, ta được k 1 k 1 k1 k1
(3.13) ở đây, chúng ta sử dụng ký hiệuf i p j q để đại diện cho lực tác dụng lên phần tử j tại núti.
Phương trình 3.12, 3.13 là các phương trình cân bằng cho mỗi phần tử lò xo mô tả về các chuyển vị toàn cục Trong dạng này, phương trình rõ ràng cho thấy các phần tử được kết nối vật lý tại nút 2 và có cùng chuyển vị U2 tại nút này Chúng ta mở rộng cả hai phương trình ma trận33như sau. k 1 k 1 0 k1 k1 0
Kết hợp phương trình 3.14 và 3.15 ta được k1 k1 0 k1 k1 k2 k2
Tiếp theo, chúng ta tham khảo các sơ đồ phân tích lực của mỗi nút được mô tả trong hình 3.3c, 3.3d, và 3.3e Các điều kiện cân bằng cho các nút 1, 2, 3 cho thấy f 1 p 1 q F1 f 2 p 1 q f 2 p 2 q F2 f 3 p 2 q F3 (3.17)
Thế vào phương trình 3.16, chúng ta có kết quả cuối cùng k 1 k 1 0 k1 k1 k2 k2
Cũng có thể được viết dưới dạng rKs tUu tFu Bằng cách xem xét trực tiếp các điều kiện cân bằng, chúng ta thu được hệ ma trận độ cứng rKs rKs k 1 k 1 0 k1 k1 k2 k2
Hình 3.3: Sơ đồ phân tích lực tại nút của mỗi phần tử
Ứng dụng cho bài toán lò xo (spring element)
Giao diện phần mềm cho bài toán lò xo:
Hình 3.4: Chương trình tính toán cho bài toán lò xo
Cú pháp lệnh tạo ma trận độ cứng phần tử [12]: function GlobalStiffnessMatric_Callback(hObject, eventdata, handles)
% hObject handle to GlobalStiffnessMatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) k=str2num(get(handles.k,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end set(handles.K,’String’,num2str(K))
Cú pháp lệnh tính toán các chuyển vị nút: function Displacements_Callback(hObject, eventdata, handles)
% hObject handle to Displacements (see GCBO)
% eventdata reserved - to be defined in a future version ofMATLAB
% handles structure with handles and user data (see GUIDATA) k=str2num(get(handles.k,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); set(handles.Displacement,’String’,num2str(a))
Cú pháp lệnh tính toán các lực tác dụng: function Reactions_Callback(hObject, eventdata, handles)
% hObject handle to Reactions (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) k=str2num(get(handles.k,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’));P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); set(handles.Reaction,’String’,num2str(K*a))
Cú pháp lệnh tính toán các chuyển vị phần tử: function chuyenviphantu_Callback(hObject, eventdata, handles)
% hObject handle to chuyenviphantu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) k=str2num(get(handles.k,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); ed=zeros(n,2); for i=1:n h=extract(Edof(i,:),a); ed(i,:)=h; end set(handles.DisplacementElement,’String’,num2str(ed))
Cú pháp lệnh tính toán các lực tại mỗi phần tử: function lucmoiphantu_Callback(hObject, eventdata, handles)
% hObject handle to lucmoiphantu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) k=str2num(get(handles.k,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); ed=zeros(n,2); for i=1:n h=extract(Edof(i,:),a); ed(i,:)=h; end es=zeros(n,1); for i=1:n m=spring1s(k(i),ed(i,:)); es(i,:)=m; end set(handles.SpringForce,’String’,num2str(es))
Hình 3.5: Sơ đồ tính hệ 2 lò xo mắc nối tiếp
Ví dụ 1: Xét hệ gồm 2 lò xo như hình 3.5 Chok1100kN{m, k2 200kN{m, P 15kN Hãy xác định:
1 Ma trận độ cứng phần tử của hệ.
2 Chuyển vị nút và lực tác dụng tại mỗi nút.
3 Chuyển vị phần tử và lực tại mỗi phần tử.
Thực hiện: Nhập các hệ số đã biết vào phần nhập dữ liệu của chương trình như hình 3.6.
Hình 3.6: Mô tả cách nhập dữ liệu cho ví dụ 1
Hình 3.7: Mô tả kết quả tính toán cho ví dụ 1
Sau đó xuất kết quả tính toán bằng cách bấm vào các nút tại phần kết quả được thể hiện trên hình 3.7
Bằng cách tương tự áp dụng cho các bài toán lò xo khác.
Cơ sở lý thuyết cho bài toán hệ thanh dàn 1 chiều (linear bar element)
dàn 1 chiều (linear bar element)
Chúng ta xem xét một phần tử thanh biến dạng dọc trục, đặc biệt sử dụng nhiều trong phân tích bài toán giàn phẳng, giàn không gian; khung phẳng, khung không gian [6] Đặc tính phần tử hữu hạn của thanh biến dạng dựa trên các giả định sau:
2 Vật liệu tuân theo định luật Hooke.
3 Các lực tác dụng chỉ tại đầu cuối của thanh.
4 Thanh chỉ chịu biến dạng dọc trục; lực uốn, xoắn và cắt không tác dụng lên phần tử thông qua bản chất kết nối của nó tới các phần tử khác.
Hình 3.8 mô tả một thanh có chiều dàiL được gắn trong hệ tọa độ x với góc tọa độ nằm ở đầu bên trái Mô tả chuyển vị dọc trục tại bất kì vị trí dọc theo chiều dài của thanh làupxq, chúng ta định nghĩa các nút 1 và2 tại mỗi đầu như hình 2.4 và đưa ra chuyển vị nút u1 upx0qvàu2upxLq Để thực hiện việc rời rạc hóa, chúng ta giả sử tồn tại các hàm nội suyN 1 pxqvàN 2 pxqnhư sau: upxq N1pxqu1 N2pxqu2 (3.20)
Hình 3.8: Mô hình hóa phần tử thanh 1 chiều Để xác định các hàm nội suy, chúng ta đòi hỏi các giá trị biên của upxq(chuyển vị nút) được thỏa mãn bởi việc rời rạc hóa sau: upx0q u1 upxLq u2 (3.21)
Các phương trình 3.20, 3.21 đưa đến các điều kiện biên sau:
N1pLq 0 N2pLq 1 (3.23) phải được thỏa mãn bởi các hàm nội suy Dạng đơn giản nhất cho hàm nội suy là dạng đa thức.
N2pxq b0 b1x (3.25) nơi mà các hệ số đa thức được xác định qua việc thỏa mãn các điều kiện biên. Áp dụng các điều kiện vào phương trình 3.24, 3.25 vớia01, b0
0 ta được kết quảa 1 p1{Lqvàb 1 x{L Vì vậy, các hàm nội suy là
N 2 pxq s{L (3.27) và hàm chuyển vị được đại diện bởi sự rời rạc hóa sau: upxq p1x{Lqu1 px{Lqu2 (3.28) Phương trình 3.28 được biểu diễn ở dạng ma trận như sau: upxq
+ rNs tuu (3.29) ở đây rNs là ma trận hàng của hàm nội suy và u là vectơ cột của chuyển vị nút. Để xác định mối liên hệ giữa các chuyển vị nút và các lực tác dụng để có được ma trận độ cứng cho phần tử thanh, gọi δlà độ lệch của thanh biến dạng có chiều dài Lvà tiết diện ngangA khi gắn với tải trọng dọc trục P là: δ P L
AE (3.30) với E là môđun đàn hồi của vật liệu Sử dụng phương trình 2.30, chúng ta có được hệ số của thanh biến dạng như sau: k P δ AE
Và bằng cách tương tự với lò xo đàn hồi tuyến tính, chúng ta có thể viết ngay ma trận độ cứng.
Cuối cùng, chúng ta tính các chuyển vị nút được đưa ra bởi một vài điều kiện tải trọng trên phần tử Để có được các phương trình cân bằng liên quan đến chuyển vị của lực tác dụng, chúng ta tiến hành từ chuyển vị đến biến dạng, biến dạng đến ứng suất, và ứng suất đến tải trọng Trong tải trọng dọc trục, như trong phần tử thanh, chúng ta chỉ cần xem xét thành phần biến dạng sau: ε x du dx (3.32) khi đưa vào phương trình 3.28 sẽ trở thành: ε x u 2 u 1
L (3.33) Điều này phù hợp với lý thuyết sức bền vật liệu: Phần tử có tiết diện ngang không đổi và bị tác dụng bởi lực không đổi tại các điểm cuối, vì thế ứng suất không thay đổi dọc theo chiều dài Ứng suất dọc trục cho bởi định luật Hooke như sau: σ x Eε x Eu2u1
L (3.34) và lục dọc trục là:
Phương trình 3.35 được sử dụng để chỉ mối liên hệ các lực tác dụng ở nút f1 vàf2 với các chuyển vị nútu1 vàu2 Thấy rằng, nếu phương trình trên có dấu dương, phần tử đang bị ép và lực nút f2 phải ở chiều dương tương ứng trong khi lực nút f1 phải bằng và trái dấu ở điều kiện cân bằng, vì vậy: f1
L pu 2 u 1 q (3.37) phương trình 3.36 và 3.37 được viết lại dưới dạng ma trận như sau:
So sánh với phương trình 3.38 với phương trình 3.5 chỉ ra ma trận độ cứng phần tử cho phần tử thanh được cho bởi: rkes AE
Ứng dụng cho bài toán thanh 1 chiều (linear bar element) 67
Giao diện phần mềm cho bài toán thanh 1 chiều Cú pháp lệnh tạo
Hình 3.9: Chương trình tính toán bài toán thanh 1 chiều ma trận độ cứng [12] function GlobalStiffnessMatric_Callback(hObject, eventdata, handles)
% hObject handle to GlobalStiffnessMatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=str2num(get(handles.E,’String’));
A=str2num(get(handles.A,’String’));
L=str2num(get(handles.L,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end set(handles.K,’String’,num2str(K))
Cú pháp lệnh tính toán các chuyển vị nút function Displacements_Callback(hObject, eventdata, handles)
% hObject handle to Displacements (see GCBO)
% eventdata reserved - to be defined in a future version ofMATLAB
% handles structure with handles and user data (see GUIDATA) E=str2num(get(handles.E,’String’));
A=str2num(get(handles.A,’String’));
L=str2num(get(handles.L,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); set(handles.Displacement,’String’,num2str(a))
Cú pháp lệnh tính toán lực tác dụng function Reactions_Callback(hObject, eventdata, handles)
% hObject handle to Reactions (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=str2num(get(handles.E,’String’));
A=str2num(get(handles.A,’String’));
L=str2num(get(handles.L,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); set(handles.Reaction,’String’,num2str(K*a))
Cú pháp lệnh tính toán các chuyển vị phần tử: function chuyenviphantu_Callback(hObject, eventdata, handles)
% hObject handle to chuyenviphantu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=str2num(get(handles.E,’String’));
A=str2num(get(handles.A,’String’));
L=str2num(get(handles.L,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); ed=zeros(n,2); for i=1:n h=extract(Edof(i,:),a); ed(i,:)=h; end set(handles.DisplacementElement,’String’,num2str(ed))
Cú pháp lệnh tính toán lực tại mỗi phần tử function lucphantu_Callback(hObject, eventdata, handles)
% hObject handle to lucphantu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=str2num(get(handles.E,’String’));
A=str2num(get(handles.A,’String’));
L=str2num(get(handles.L,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce,’String’)); P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,r]=solveq(K,f,bc); ed=zeros(n,2); for i=1:n h=extract(Edof(i,:),a); ed(i,:)=h; end es=zeros(n,1); for i=1:n mr1s(A(i)*E(i)/L(i),ed(i,:)); es(i,:)=m; end set(handles.BarForce,’String’,num2str(es))
Ví dụ 2: Cho hệ thanh 1 chiều được mô tả như hình 3.10 Với
E70GP a, A0.005m 2 , P110kN, P215kN Hãy xác định
1 Ma trận độ cứng phần tử của hệ.
2 Chuyển vị và lực tác dụng tại các nút.
Hình 3.10: Sơ đồ tính cho ví dụ 2
3 Chuyển vị phần tử và lực tại mỗi phần tử
Tiến hành nhập dữ liệu cho bài toán như hình 3.11 Sau khi nhập dữ liệu, ta xuất kết quả tính toán thông qua chương trình phần mềm như hình 3.12
Cơ sở lý thuyết cho bài toán giàn phẳng
Phần tử giàn phẳng là phần tử biến dạng dọc trục có phương bất kỳ trong mặt phẳng [3] Hình bên dưới cho ta thấy rằng: trong hệ tọa độ địa phương s, 0¤s¤L(dọc theo trục thanh), phần tử giàn phẳng giống hoàn toàn phần tử biến dạng dọc trục như đã nói ở trên.
Trong hệ tọa độ địa phương chúng ta đã biết: upsq !
Vectơ chuyển vị nút:tulu
Vectơ tải trọng nút:trlu
+ trong đó E, A, L lần lượt là môđun đàn hồi của vật liệu, tiết diện ngang và chiều dài phần tử d1, d2 là các chuyển vị dọc trục, p1, p2
Hình 3.11: Mô tả nhập dữ liệu cho ví dụ 2
Hình 3.12: Mô tả kết quả tính toán cho ví dụ 2
Hình 3.13: Hệ tọa độ địa phương, toàn cục của phần tử giàn phẳng là các lực tập trung tại nút nếu có (giả sử không có tải phân bố dọc trục).
Khi kết cấu là sự kết hợp của nhiều phần tử định hướng bất kì trong mặt phẳng, mỗi phần tử có một hệ tọa độ địa phương riêng do đó chúng ta không thể lắp ghép một cách trực tiếp các phương trình phần tử Thật vậy để có thể lắp ghép được, chúng ta phải quy chiếu tất cả các phần tử đó về cùng một hệ tọa độ gọi là hệ toàn cục Trong hệ toàn cục, mỗi nút có hai bậc tự do (chuyển vị nút) Tải trọng tác dụng tại nút nếu có cũng được phân tích thành hai thành phần tương ứng, hay ta có:
Vectơ chuyển vị nút:tdu
Vectơ tải trọng nút:tru
Mối quan hệ giữa vectơ chuyển vị nút trong hệ toàn cục và địa phương tìm được như sau:
(3.42) vớilxlà cosin của góc tạo bởi trục phần tử và trụcxtoàn cục,mxlà cosin góc tạo bởi trục phần tử và trục y toàn cục Như trên hình ta thấy rằnglxcosα;mxsinα, gócαđược đo từ trụcxvà quy ước dương theo chiều ngược chiều kim đồng hồ Nếu gọipx1, y1q,px2, y2q là tọa độ các nút trong hệ toàn cục ta tìm được.
Sử dụng các hệ thức chuyển trục, ta có: rklsdlrlủ rklsrTsdrlủ rTs T rklsrTsd rTs T rl (3.44) trong đó rTs T r l là sự chuyển trục của vectơ tải trọng nút từ hệ địa phương đến hệ toàn cục Hệ thức trên có thể viết lại trong hệ toàn cục như sau: rksdr (3.45) với: rks rTs T rklsrTs r rTs T rl (3.46)
Thực hiện nhân các ma trận, hệ phương trình phần tử trong hệ tọa độ toàn cục có dạng:
L l x 2 lxmx l 2 x lxmx lxmx m 2 x lxmx m 2 x l x 2 lxmx l 2 x lxmx lxmx m 2 x lxmx m 2 x
Khi tìm được các chuyển vị nút cho mỗi phần tử, sử dụng hệ thức chuyển trục, chúng ta tìm được lời giải trên phần tử trong hệ địa phương như sau: upsq
Biến dạng dọc trục: εdu ds
Lpd1 d2q (3.50) Ứng suất và lực dọc: σEε;pσA (3.51)
Ứng dụng cho bài toán giàn phẳng
Giao diện phần mềm cho bài toán giàn phẳng:
Cú pháp lệnh tạo ma trận độ cứng phần tử [13]: function GlobalStiffnessMatric_Callback(hObject, eventdata, handles)
% hObject handle to GlobalStiffnessMatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
Hình 3.14: Giao diện chương trình tính toán cho bài toán giàn phẳng
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce,’String’)); P=get(handles.f,’String’);
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.K,’String’,num2str(G))
Cú pháp lênh tính toán chuyển vị nút function Displacements_Callback(hObject, eventdata, handles)
% hObject handle to Displacements (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce,’String’)); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.Displacement,’String’,num2str(a))
Cú pháp lệnh tính toán lực tác dụng tại mỗi nút function Reaction_Callback(hObject, eventdata, handles)
% hObject handle to Reaction (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce,’String’)); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
K=assem(Edof(i,:),K,Ke); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.Reactions,’String’,num2str(Q))
Cú pháp lênh vẽ đồ thị (sơ đồ tính, biểu đồ lực dọc, trường chuyển vị của giàn) function vedothi_Callback(hObject, eventdata, handles)
% hObject handle to vedothi (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) luachon=get(handles.luachon,’value’); switch luachon case 1 cla;
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce,’String’));for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));;
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
Ed=extract(Edof,a); for i=1:str2num(get(handles.n,’String’)) es(i)r2s(Ex(i,:),Ey(i,:),[E(i) A(i)],Ed(i,:)); end eldraw2(Ex,Ey,[1 2 1], Edof(:,1)); hold on gocve=str2num(get(handles.gocve,’String’)); toadox=str2num(get(handles.toadox,’String’)); toadoy=str2num(get(handles.toadoy,’String’)); for i=1:length(gocve) goi(gocve(i),toadox(i),toadoy(i),0.1); end arrow2(Ex(1,2),Ey(1,2),.8,pi/3,-1,’r’); title(’SO DO TINH’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); text(Ex(1,2)+.1,Ey(1,2)+.8,strcat(’P=’,num2str(P),’(KN)’),’ FontSize’,12); axis([min(toadox)-0.5 max(toadox)+0.5 min(toadoy)-
0.5 max(toadoy)+0.5]); axis equal;zoom on case 2 cla
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
,’String’)); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));;
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
Ed=extract(Edof,a); for i=1:str2num(get(handles.n,’String’)) es(i)r2s(Ex(i,:),Ey(i,:),[E(i) A(i)],Ed(i,:)); end ne; x0=sum(Ex’)/2;y0=sum(Ey’)/2; for i=1:str2num(get(handles.n,’String’)) b(:,i)=[Ex(i,2)-Ex(i,1);Ey(i,2)-Ey(i,1)];
Le(i)=sqrt(b(:,i)’*b(:,i)); xe(i:i+ne-1,:)=[0:Le(i)/(ne-1):Le(i)]’; magnfac=eldia2(Ex(1,:),Ey(1,:),es(1)*ones(ne,1) ,xe(1:ne,:)); eldia2(Ex(i,:),Ey(i,:),es(i)*ones(ne,1),xe(i:i+ne-1,:)
,magnfac); text(x0(i),y0(i),strcat(num2str(es(i)),’KN’),’FontSize
’,12); end gocve=str2num(get(handles.gocve,’String’)); toadox=str2num(get(handles.toadox,’String’)); toadoy=str2num(get(handles.toadoy,’String’)); title(’BIEU DO LUC DOC’);h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([min(toadox)-0.5 max(toadox)+0.5 min(toadoy)
-0.5 max(toadoy)+0.5]); axis equal;zoom on case 3 cla
K=zeros(str2num(get(handles.ne,’String’)));
Eq=zeros(str2num(get(handles.n,’String’)),2); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
,’String’)); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));;
[Ex, Ey]=coordxtr(Edof,Coord,Dof,2) for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
Ed=extract(Edof,a); for i=1:str2num(get(handles.n,’String’)) es(i)r2s(Ex(i,:),Ey(i,:),[E(i) A(i)],Ed(i,:)); end eldraw2(Ex,Ey,[1 2 1]); hold on gocve=str2num(get(handles.gocve,’String’)); toadox=str2num(get(handles.toadox,’String’)); toadoy=str2num(get(handles.toadoy,’String’)); for i=1:length(gocve) goi(gocve(i),toadox(i),toadoy(i),0.1); end arrow2(Ex(1,2),Ey(1,2),.8,pi/3,-1,’r’);
[magnfac]=eldisp2(Ex,Ey,Ed); eldisp2(Ex,Ey,Ed,[2 4 1],magnfac); title(’TRUONG CHUYEN VI CUA DAM’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([min(toadox)-0.5 max(toadox)+0.5 min(toadoy)
-0.5 max(toadoy)+0.5]); axis equal;zoom on hold off end
Ví dụ 3: Cho kết cấu giàn phẳng như hình Tất cả các phần tử đều có tiết diện mặt cắt ngang giống nhauA0.001m 2 và được làm từ cùng một vật liệu có E 2x10 11 P a Lực P 10000N tác dụng tại nút 2 Hãy xác định:
1 Ma trận độ cứng phần tử của hệ toàn cục.
2 Chuyển vị và lực tác dụng tại các nút.
3 Vẽ các đồ thị thể hiện biểu đồ lực dọc và trường chuyển vị của giàn.
Hình 3.15: Sơ đồ tính cho ví dụ 3
Ta nhập dữ liệu bài toán vào phần mềm như hình 3.16
Sau khi nhập xong phần dữ liệu, ta bấm vào các nút để thể hiện các kết quả cần tìm về ma trận độ cứng phần tử, chuyển vị nút, lực tác dụng
Bấm vào nút vẽ đồ thị để hiển thị kết quả sơ đồ tính, biểu đồ lực dọc, trường chuyển vị của giàn
Cơ sở lý thuyết cho bài toán giàn không gian
Xem xét phần tử chịu tải dọc trục trong không gian như trên hình3.21, chúng ta có thể xây dựng phần tử giàn không gian như sau: [3]
Hình 3.16: Dữ liệu bài toán cho ví dụ 3
Hình 3.17: Kết quả tính toán cho ví dụ 3
Hình 3.19: Biểu đồ lực dọc
Hình 3.20: Trường chuyển vị của giàn
Hình 3.21: Mô hình phần tử giàn không gian
Trong hệ toàn cục ta có vectơ chuyển vị nút tdu
Vectơ tải trọng nút tru
Mối quan hệ giữa vectơ chuyển vị nút trong hệ toàn cục và địa phương dễ dàng tìm được như sau:
Chiều dài phần tử và các cosin chỉ phương
Lb px2x1q 2 py2y1q 2 pz2z1q 2 lxx2x1
Thực hiện nhân các ma trận, hệ phương trình phần tử trong hệ toàn cục có dạng:
L l 2 x lxmx lxnx l 2 x l x m x l x n x l x m x m 2 x m x n x mxlx m 2 x mxnx lxnx mxnx n 2 x nxlx nxmx n 2 x l 2 x mxlx nxlx l 2 x l x m x l x n x l x m x m 2 x n x m x lxmx m 2 x mxnx lxnx mxnx n 2 x l x n x m x n x n 2 x
Kết quả trên phần tử
Chuyển vị dọc trục tại một điểm bất kỳ trên phần tử upsq
Biến dạng dọc trục: εdu ds
Lpd2d1q (3.60) Ứng suất và lực dọc: σEε;pσA (3.61)
Ứng dụng cho bài toán giàn không gian
Giao diện phần mềm cho bài toán giàn không gian:
Cú pháp lệnh tạo ma trận độ cứng phần tử [13]: function GlobalStiffnessMatric_Callback(hObject, eventdata, handles)
% hObject handle to GlobalStiffnessMatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
Hình 3.22: Giao diện phần mềm cho bài toán giàn không gian
K=zeros(str2num(get(handles.ne,’String’))); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex,Ey,Ez]=coordxtr(Edof,Coord,Dof,2); for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.K,’String’,num2str(G))
Cú pháp lệnh tính toán các chuyển vị nút: function Displacements_Callback(hObject, eventdata, handles)
% hObject handle to Displacements (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
K=zeros(str2num(get(handles.ne,’String’))); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex,Ey,Ez]=coordxtr(Edof,Coord,Dof,2); for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.Displacement,’String’,num2str(a))
Cú pháp lệnh tính toán các lực tác dụng: function Reaction_Callback(hObject, eventdata, handles)
% hObject handle to Reaction (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) E=get(handles.E,’String’);
K=zeros(str2num(get(handles.ne,’String’))); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex,Ey,Ez]=coordxtr(Edof,Coord,Dof,2); for i=1:str2num(get(handles.n,’String’))
G=round(K); end bc=str2num(get(handles.bc,’String’));
[a,Q]=solveq(K,f,bc); set(handles.Reactions,’String’,num2str(Q))
Cú pháp lênh vẽ đồ thị (sơ đồ tính, biểu đồ lực dọc, trường chuyển vị của giàn) function vedothi_Callback(hObject, eventdata, handles)
% hObject handle to vedothi (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) luachon=get(handles.luachon,’Value’); switch luachon case 1 cla;
K=zeros(str2num(get(handles.ne,’String’))); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex,Ey,Ez]=coordxtr(Edof,Coord,Dof,2); for i=1:str2num(get(handles.n,’String’))
Ker3e(Ex(i,:),Ey(i,:),Ez(i,:),[E(i) A(i)]); K=assem(Edof(i,:),K,Ke);
G=round(K); end bc=str2num(get(handles.bc,’String’));
Ed=extract(Edof,a); for i=1:str2num(get(handles.n,’String’)) es(i)r3s(Ex(i,:),Ey(i,:),Ez(i,:),[E(i) A(i)],Ed(i,:)); end eldraw3(Ex,Ey,Ez,[1 2 1],Edof(:,1)); hold on gocve=str2num(get(handles.gocve,’String’)); toadox=str2num(get(handles.toadox,’String’)); toadoy=str2num(get(handles.toadoy,’String’)); for i=1:length(gocve) ngam(gocve(i),toadox(i),toadoy(i),0.2); end title(’SO DO TINH’); h=get(gca,’Title’); set(h,’FontSize’,14);set(h,’FontName’,’Tahoma’); axis equal; zoom on case 2 cla;
K=zeros(str2num(get(handles.ne,’String’))); f=zeros(str2num(get(handles.ne,’String’)),1);
PositionForce=str2num(get(handles.PositionForce
P=str2num(P); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
Edof=str2num(get(handles.Edof,’String’));
[Ex,Ey,Ez]=coordxtr(Edof,Coord,Dof,2); for i=1:str2num(get(handles.n,’String’))
Ker3e(Ex(i,:),Ey(i,:),Ez(i,:),[E(i) A(i)]); K=assem(Edof(i,:),K,Ke);
G=round(K); end bc=str2num(get(handles.bc,’String’));
Ed=extract(Edof,a); for i=1:str2num(get(handles.n,’String’)) es(i)r3s(Ex(i,:),Ey(i,:),Ez(i,:),[E(i) A(i)],Ed(i,:)); end eldraw3(Ex,Ey,Ez,[1 2 1],Edof(:,1)); hold on gocve=str2num(get(handles.gocve,’String’)); toadox=str2num(get(handles.toadox,’String’)); toadoy=str2num(get(handles.toadoy,’String’)); for i=1:length(gocve) ngam(gocve(i),toadox(i),toadoy(i),0.2); end
[magnfac]=eldisp3(Ex,Ey,Ez,Ed,[2 4 1]); eldisp3(Ex,Ey,Ez,Ed,[2 4 1],magnfac); title(’TRUONG CHUYEN VI CUA GIAN’); h=get(gca,’Title’); set(h,’FontSize’,14);set(h,’FontName’,’Tahoma’); axis equal; zoom on hold off end
Ví dụ 4: Cho kết cấu giàn không gian chịu lực như hình 3.23 Mặt cắt ngang các thanh là như nhauA0.001m 2 Tất cả các thanh được làm từ cùng một loại vật liệu có môđun đàn hồi E 200GP a Lực tác dụng như trên hình vẽ Hãy xác định:
1 Ma trận độ cứng phần tử của hệ toàn cục.
2 Chuyển vị và lực tác dụng tại các nút.
3 Vẽ các đồ thị thể hiện biểu đồ lực dọc và trường chuyển vị của giàn.
Hình 3.23: Sơ đồ tính cho ví dụ 4
Ta nhập dữ liệu bài toán vào phần mềm như hình 3.24
Sau khi nhập xong phần dữ liệu, ta bấm vào các nút để thể hiện các kết quả cần tìm về ma trận độ cứng phần tử, chuyển vị nút, lực tác dụng
Hình 3.24: Dữ liệu bài toán cho ví dụ 4
Hình 3.25: Kết quả tính toán cho ví dụ 4
Bấm vào nút vẽ đồ thị để hiển thị kết quả sơ đồ trường chuyển vị của giàn
Hình 3.26: Trường chuyển vị của giàn
Cơ sở lý thuyết cho bài toán khung phẳng
Các phần tử trong khung phẳng được thiết kế nhằm chống lại cả biến dạng uốn và biến dạng dọc Thật vậy, sự tổ hợp của phần tử dầm và phần tử biến dạng dọc trục có thể sử dụng để phân tích bài toán khung phẳng mà ở đó người ta giả sử rằng: các ảnh hưởng chống uốn và biến dạng dọc trục là độc lập với nhau, tuy nhiên giả thuyết này chỉ đúng trong khuôn khổ lý thuyết chuyển vị bé [3]
Xét phần tử khung phẳng được mô tả như hình 3.27 Nếu gọi tdu T ! d1 d2 d3 d4 d5 d6
Hình 3.27: Mô hình phần tử khung phẳng tuu T ! u1 v1 θ1 u 2 v 2 θ 2
(3.63) lần lượt là các vectơ chuyển vị nút phần tử trong hệ địa phương và toàn cục Giả sử moment quán tính và tải trọng phân bố là hằng số trên phần tử, các tải tập trung nếu có chỉ tác dụng tại nút, lúc đó trong hệ địa phương các phương trình phần tử sẽ là:
Trong đó, các tải phân bốqs, qtđược quy ước dương khi có cùng chiều với các trục địa phương.
Mối quan hệ giữa các bậc tự do trong hệ địa phương và toàn cục có thể dễ dàng tìm được như sau:
L (3.66) trong đóαlà góc được đo theo chiều ngược chiều kim đồng hồ từ trục x toàn cục đến trụcsđịa phương, px1, y1q,px2, y2q, L lần lượt là các tọa độ nút và chiều dài phần tử trong hệ toàn cục Từ phương trình (3.65) ta có: tdu rTs T tdlu (3.67) Kết hợp các phương trình (3.64), (3.65), (3.67) ta có: rkls rTs tdu trlu ô rTs T rkls rTs tdu rTs T trlu (3.68) trong đórTs T tr l ulà vectơ tải trọng nút chuyển trục từ hệ địa phương đến hệ toàn cục Vậy trong hệ toàn cục phương trình phần tử có thể viết ở dạng: rks tdu tru (3.69) trong đó: rks rTs T rkls rTs;tru rTs T trlu (3.70)
Sau khi thực hiện lắp ghép, khử các điều kiện biên, giải hệ phương trình toàn cục ta tìm được các chuyển vị nút Các chuyển vị nút này được chuyển về hệ địa phương cho mỗi phần tử nhờ quan hệ (3.65), từ đó các kết quả trên phần tử có thể tính toán như sau:
Chuyển vị dọc trục: upsq ! s L L L s ) # d1 d4
Lực dọc: fpsq EAdupsq ds ; 0¤s¤L (3.73)
Cơ sở lý thuyết cho bài toán khung không gian
Phần tử khung phẳng có thể tổng quát hóa để phân tích cho các kết cấu khung không gian Các đặc trưng tải trọng, tiết diện ngang được mô tả trong hệ tọa độ địa phương rst như hình 2.8 Trục địa phương t trùng với trục phần tử, trục r vàs trùng với các trục quán tính chính của tiết diện ngang trong đó rlà trục mạnh và slà trục yếu Phần tử phải kể đến ảnh hưởng của lực dọc, moment cả trong các mặt phẳng rt vàst Mặt khác phần tử cũng phải có khả năng chống xoắn trong các mặt phẳngrt, tsvàsr Trong khuôn khổ lý thuyết chuyển vị bé tất cả các ảnh hưởng này được xem là độc lập vì thế phương trình phần tử chỉ là sự tổ hợp các phương trình ứng xử của các ảnh hưởng riêng rẽ [3]
Hình 3.28: Mô hình phần tử khung không gian Đối với phần tử khung không gian, nếu chỉ biết các tọa độ nút phần tử là chưa đủ để suy ra hệ tọa độ địa phương Thật vậy, chúng ta cần biết thêm một trong số các trục quán tính chính địa phương. Phương pháp đơn giản nhất nhằm xác định trục chính này được gọi là phương pháp ba điểm Các điểm 1, 2 là các điểm nút giống như trong phần tử khung phẳng Điểm thứ 3 phải là điểm định nghĩa mặt phẳngrt trên mỗi phần tử Sử dụng phương pháp này ba trục địa phương có thể xác định như sau:
1 Trục địa phươngtcó được bằng cách tạo vectơ từ nút 1 đến nút 2.
2 Trụcscó được bằng tích hữu hướng của hai vectơ tạo thành từ nút 1 đến nút 2, và từ 1 đến 3.
3 Cuối cùng trụcrcó được bằng tích hữu hướng các vectơ đơn vị trên hai trụcsvàt.
Các kí hiệu thuộc tính vật liệu và đặc trưng mặt cắt ngang:
• A: diện tích tiết diện ngang
• Ip: moment quán tính độc cực
• I s I min : momnet quán tính tiết diện ngang đối với trục yếu (trụcs)
• I r I max : moment quán tính tiết diện đối với trục mạnh (trục r)
Hằng số chống xoắnJ đôi khi còn được kí hiệu làkT Đối với mặt cắt có tiết diện trònJ Imax IminIp là momnet quán tính độc cực Với các tiết diện có hình dạng khácJ phải được tính bằng các công thức cụ thể như nghiên cứu trong lý thuyết đàn hồi Một số mặt cắt thông dụng thường gặp công thức tínhJ cho sẵn như trình bày ở hình 3.29 Các phương trình phần tử trong hệ tọa độ địa phương:
Trong hệ địa phương, phần tử khung không gian có 12 bậc tự do như trình bày ở hình 3.30 Chiều dương quy ước của các chuyển vị tính tiến và các lực tập trung tại nút là giống nhau, các moment tập trung và các chuyển vị xoay tại nút là giống nhau như chiều quy ước trên hình vẽ.
Các bậc tự do trong hệ địa phương được ký hiệu như sau:
Hình 3.29: Một số mặt cắt thông dụng
Hình 3.30: Các bậc tự do trong hệ tọa độ địa phương
Chuyển vị dọc trục liên quan đến các chuyển vị nút bằng mối quan hệ sau: uptq !
(trong đó Llà chiều dài phần tử)
Tải trọng tác dụng trong mặt phẳng rs, sẽ gây ra chuyển vị ngangvptqtheo phương trụcsvà xoay quanh trụcr Ta có: vptq !
;Vsptq dMr dt EIr d 3 v dt 3
Khi tải trọng tác dụng trong mặt phẳngrt, sẽ gây ra chuyển vị ngangwptqtheo phương trụcrvà xoay quanh trụcs Ta có: vptq !
;Vrptq dMs dt EIs d 3 w dt 3
Các phần tử khung không gian còn có thể chịu tác dụng của các moment xoắn Phương trình vi phân chính tắc cho thanh chịu xoắn là phương trình vi phân cấp 2 tương tự như bài toán biến dạng dọc trục Giả sử các moment xoắn chỉ tác dụng tại nút (không có moment phân bố dọc trục), lúc đó phương trình vi phân chính tắc cho bài toán thanh chịu xoắn có thể viết như sau:
GJd 2 ψ dt 2 0 (3.81) trong đó ψptq là hàm góc xoắn quanh trục t Với lời giải tuyến tính ta có: ψptq !
Moment xoắn trên đơn vị dài được tính bởi biểu thức sau:
Năng lượng biến dạng tổng trên phần tử
! du dt d 2 v dt 2 d 2 w dt 2 dψ dt
'' '% du dt d 2 v dt 2 d 2 w dt 2 dψ dt
Từ các phương trình trên ta có:
' % du dt d 2 v dt 2 d2 w dt 2 dψ dt
Phương trình trên có thể viết lại như sau:
2tdu T rKs tdu (3.88) trong đó: rCs
Từ đó ma trận cứng phần tử có dạng: rks
(3.90) Bằng cách tương tự, vectơ tải trọng nút tương đương có thể tìm được bằng cách khảo sát công của các lực tác dụng theo các phương svàrnhư sau:
Biểu thức chuyển vị ở dạng ma trận vptq wptq
Từ đó phương trình (3.90) có thể viết lại:
Nếu giả sử các tải phân bố tác dụng là hằng số trên chiều dài phần tử lúc đó vectơ tải trọng nút tương đương trqu T sẽ có dạng: trqu T !
Phép chuyển trục từ hệ địa phương-toàn cục:
Giống như bài toán giàn không gian, để có thể lắp ghép các phần tử trên hệ toàn cục các ma trận độ cứng, vectơ tải phần tử phải chuyển về hệ tọa độ toàn cục Trong hệ tọa độ Oxyz ta định nghĩa các đại lượng:
• u1, y1, w1:là chuyển vị theo các phương x, yvàz tại nút 1
• θx1, θy1, θz1:là góc xoay quanh trụcx, yvàz tại nút 1
• u2, y2, w2:là chuyển vị theo các phương x, yvàz tại nút 2
• θx2, θy2, θz2:là góc xoay quanh trụcx, yvàz tại nút 2
• Fx1, Fy1, Fz1:là lực tác dụng theo các phươngx, yvàz tại nút 1
• M x1 , M y1 , M z1 : là moment tác dụng quanh trục x, y và z tại nút 1
• Fx2, Fy2, Fz2:là lực tác dụng theo các phươngx, yvàz tại nút 2
• M x2 , M y2 , M z2 : là moment tác dụng quanh trục x, y và z tại nút 2
Mối quan hệ giữa vectơ chuyển vị nút trong hệ địa phương và toàn cục sẽ là:
/. // // - ủ tdlu rTs tdu;tdu rTs T tdlu
(3.95) với rHs lx mx nx l y m y n y lz mz nz
(3.96) rHs được gọi là ma trận chuyển trục Nó chứa cosin chỉ phương của các trục Sử dụng quan hệ chuyển trục này, các phương trình phần tử có thể viết như sau: rkls tdlu trlu ủ rkls rTs tdu rrls (3.97) ủ rTs T rk l s rTs tdu rTs T tr l u (3.98) trong đórTs T trlulà vectơ tải trọng nút chuyển trục từ hệ địa phương đến hệ toàn cục Vậy trong hệ toàn cục phương trình phần tử có thể viết ở dạng: rks tdu tru (3.99) với: rks rTs T rkls rTs;tru rTs T trlu (3.100) Kết quả trên phần tử:
Sau khi giải hệ phương trình toàn cục, các chuyển vị nút toàn cục của mỗi phần tử được chuyển về hệ tọa độ phần tử qua phép chuyển trục Từ đó kết quả trên phần tử có thể tính toán như sau:
Chuyển vị dọc trục: uptq !
Lực dọc: fptq EAduptq dt ; 0¤t¤L (3.102)
Chuyển vị ngang theo phương trụcs: vptq !
L 2 t L 2 ) (3.103) Chuyển vị ngang theo phương trụcr: wptq !
Vrptq dMr dt EIr d 3 v dt 3
V s ptq dMs dt EI s d 3 w dt 3
Ứng dụng cho bài toán khung phẳng và khung không
và khung không gian (plane frame el- ement, space frame element)
Giao diện phần mềm cho bài toán khung phẳng
Hình 3.31: Giao diện chương trình tính toán cho bài toán khung phẳng
Cú pháp lệnh tạo ma trận độ cứng phần tử [13]: function Globalstriffnessmatric_Callback(hObject, eventdata,handles)
% hObject handle to Globalstriffnessmatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)]
[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc); set(handles.K,’String’,num2str(K))
Cú pháp lệnh tính toán các chuyển vị nút function Displacement_Callback(hObject, eventdata, handles)
% hObject handle to Displacement (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Eq(i,:)); [K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc); set(handles.Displacements,’String’,num2str(a))
Cú pháp lệnh tính toán lực tác dụng function Reaction_Callback(hObject, eventdata, handles)
% hObject handle to Reaction (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Eq(i,:)); [K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’));
K*a set(handles.Reactions,’String’,num2str(Q))
Cú pháp lênh vẽ đồ thị (sơ đồ tính, biểu đồ lực dọc, biểu đồ lực cắt, biểu đồ moment uốn, đường đàn hồi của dầm) function vedothi_Callback(hObject, eventdata, handles)
% hObject handle to vedothi (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) luachon=get(handles.luachon,’Value’); switch luachon case 1 cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Eq(i,:)); [K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),[E(2) A(2) I(2)], Ed(2,:),Eq(2,:),10)
H=H(:,2:n+1); eldraw2(Ex,Ey,[1 2 0],Edof(:,1));hold on gocnghienggoiCD=str2num(get(handles.gocnghienggoiCD
,’String’)); toadoxgoiCD=str2num(get(handles.toadoxgoiCD,’String’)); toadoygoiCD=str2num(get(handles.toadoygoiCD,’String’)); for i=1:length(gocnghienggoiCD) goi(gocnghienggoiCD(i),toadoxgoiCD(i),toadoygoiCD(i),0.2); end gocnghienggoilan=str2num(get(handles.gocnghienggoilan
,’String’)); toadoxgoilan=str2num(get(handles.toadoxgoilan,’String’)); toadoygoilan=str2num(get(handles.toadoygoilan,’String’)); for i=1:length(gocnghienggoilan) goi1(gocnghienggoilan(i),toadoxgoilan(i),toadoygoilan(i),0.2); end gocnghiengngam=str2num(get(handles.gocnghiengngam
,’String’)); toadoxngam=str2num(get(handles.toadoxngam,’String’)); toadoyngam=str2num(get(handles.toadoyngam,’String’)); for i=1:length(gocnghiengngam) ngam(gocnghiengngam(i),toadoxngam(i),toadoyngam(i),0.2); end title(’SO DO TINH’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([-2 8 -0.5 6]); zoom on text(-1.4,4.3,strcat(’H=’,num2str(abs(f(4))),’kN’) ,’FontSize’,12); text(0.2,5,strcat(’P=’,num2str(P),’kN’),’FontSize’,12); text(4,5,strcat(’P=’,num2str(P),’kN’),’FontSize’,12); case 2 cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),
[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:),
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),
Q=Q(:,2:n+1); magnfac=eldia2(Ex(1,:),Ey(1,:),M(:,1),Q(:,1)); for i=1:n eldia2(Ex(i,:),Ey(i,:),M(:,i),Q(:,i),magnfac); end title(’BIEU DO LUC DOC’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([-2 8 -0.5 6]); zoom on text(-1,4.2,strcat(’H=’,num2str(max(abs(M(:,1)))),’kN’)); text(3.1,0.1,strcat(’H=’,num2str(max(abs(M(:,2)))),’kN’)); case 3 cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),
[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:)
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),
Q=Q(:,2:n+1); magnfac=eldia2(Ex(3,:),Ey(3,:),M(:,2),Q(:,3)); for i=1:n eldia2(Ex(i,:),Ey(i,:),M(:,i),Q(:,i),magnfac); end title(’BIEU DO LUC CAT’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([-2 8 -0.5 6]); zoom on text(-1,4.2,strcat(num2str(max(abs(M(:,1)))),’kN’)); text(3.2,0,strcat(num2str(max(abs(M(:,2)))),’kN’)); text(2,3,0,strcat(num2str(max(abs(M(:,3)))),’kN’)); case 4 cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce ,’String’));
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),
[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:),
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),
Q=Q(:,2:n+1); magnfac=eldia2(Ex(3,:),Ey(3,:),M(:,3),Q(:,3)); for i=1:n eldia2(Ex(i,:),Ey(i,:),M(:,i),Q(:,i),magnfac); end title(’BIEU DO MOMENT UON’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); axis([-2 8 -0.5 6]); zoom on case 5 cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Ex=str2num(get(handles.Ex,’String’));
Ey=str2num(get(handles.Ey,’String’));
Eq=str2num(get(handles.Ez,’String’));
Edof=str2num(get(handles.Edof,’String’)); for i=1:n
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Eq(i,:));[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Ed(i,:), Eq(i,:),10)
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),[E(2) A(2) I(2)], Ed(2,:),Eq(2,:),10)
Q=Q(:,2:n+1); eldraw2(Ex,Ey,[1 2 0],Edof(:,1)); hold on gocnghienggoiCD=str2num(get(handles.gocnghienggoiCD
,’String’)); toadoxgoiCD=str2num(get(handles.toadoxgoiCD,’String’)); toadoygoiCD=str2num(get(handles.toadoygoiCD,’String’)); for i=1:length(gocnghienggoiCD) goi(gocnghienggoiCD(i),toadoxgoiCD(i),toadoygoiCD(i),0.2); end gocnghienggoilan=str2num(get(handles.gocnghienggoilan
,’String’)); toadoxgoilan=str2num(get(handles.toadoxgoilan,’String’)); toadoygoilan=str2num(get(handles.toadoygoilan,’String’)); for i=1:length(gocnghienggoilan) goi1(gocnghienggoilan(i),toadoxgoilan(i),toadoygoilan(i),0.2); end gocnghiengngam=str2num(get(handles.gocnghiengngam
,’String’)); toadoxngam=str2num(get(handles.toadoxngam,’String’)); toadoyngam=str2num(get(handles.toadoyngam,’String’)); for i=1:length(gocnghiengngam) ngam(gocnghiengngam(i),toadoxngam(i),toadoyngam(i),0.2); end eldisp2(Ex,Ey,Ed,[2 4 0]); axis([-2 8 -0.5 6]); zoom on title(’DUONG DAN HOI CUA DAM’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); end
Ví dụ 5 : Cho kết cấu khung phẳng như hình Tất cả các phần tử đều làm từ cùng một vật liệu cóE 2.1x10 11 P a LựcP 10000N tác dụng tại các nút như trên hình Cho tiết diện mặt cắt ngang của phần tử 1 và 2 đều bằng A1 A2 45.3x10 4 và phần tử 3 bằng
A 3 142.8x10 4 Moment quán trính của phần tử 1, 2 và 3 lần lượt bằng2510x10 8 ,2510x10 8 ,33090x10 8 Hãy xác định:
1 Ma trận độ cứng phần tử của hệ toàn cục.
2 Chuyển vị và lực tác dụng tại các nút.
3 Vẽ các đồ thị thể hiện biểu đồ lực dọc, biểu đồ lực cắt, biểu đồ moment uốn, đường đàn hồi của dầm.
Ta nhập dữ liệu bài toán vào phần mềm như hình 3.33
Sau khi nhập xong phần dữ liệu, ta bấm vào các nút để thể hiện các kết quả cần tìm về ma trận độ cứng phần tử, chuyển vị nút, lực tác dụng
Bấm vào nút vẽ đồ thị để hiển thị kết quả biểu đồ lực dọc, biểu đồ lực cặt, biểu đồ moment uốn, đường đàn hồi của dầm
Ứng dụng cho bài toán dầm (beam element)
Giao diện phần mềm cho bài toán dầmCú pháp lệnh tạo ma
Hình 3.32: Sơ đồ tính cho ví dụ 5
Hình 3.33: Dữ liệu bài toán cho ví dụ 5
Hình 3.34: Kết quả tính toán cho ví dụ 5
Hình 3.35: Biểu đồ lực dọc
Hình 3.36: Biểu đồ lực cắt
Hình 3.37: Biểu đồ moment uốn
Hình 3.38: Đường đàn hồi của dầm
Hình 3.39: Giao diện chương trình tính toán cho bài toán dầm trận độ cứng phần tử [12]: function GlobalStiffnessMatric_Callback(hObject, eventdata, handles)
% hObject handle to GlobalStiffnessMatric (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
[Ex,Ey,Eq]=coordxtr(Edof,Coord,Dof,2)
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)]); [K,f]=assem(Edof(i,:),K,Ke,f,fe); end set(handles.K,’String’,num2str(K))
Cú pháp lệnh tính toán các chuyển vị nút function Displacements_Callback(hObject, eventdata, handles)
% hObject handle to Displacements (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
[Ex,Ey,Eq]=coordxtr(Edof,Coord,Dof,2)
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)]);
[K,f]=assem(Edof(i,:),K,Ke,f,fe); end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc); set(handles.Displacement,’String’,num2str(a))
Cú pháp lênh vẽ đồ thị (sơ đồ tính, biểu đồ lực dọc, biểu đồ lực cắt, biểu đồ moment uốn, đường đàn hồi của dầm) function vedothi_Callback(hObject, eventdata, handles)
% hObject handle to vedothi (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) cla;
A=str2num(get(handles.A,’String’));
E=str2num(get(handles.E,’String’));
I=str2num(get(handles.I,’String’)); ne=str2num(get(handles.ne,’String’)); n=str2num(get(handles.n,’String’));
PositionForce=str2num(get(handles.PositionForce
P=str2num(get(handles.f,’String’));
K=zeros(ne); f=zeros(ne,1); for i=1:length(PositionForce) f(PositionForce(i))=P(i); end
Edof=str2num(get(handles.Edof,’String’));
Coord=str2num(get(handles.Coord,’String’));
Dof=str2num(get(handles.Dof,’String’));
[Ex,Ey,Eq]=coordxtr(Edof,Coord,Dof,2)
[Ke,fe]am2e(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)]);
[K,f]=assem(Edof(i,:),K,Ke,f,fe) end bc=str2num(get(handles.bc,’String’)); a=solveq(K,f,bc);
[es,edi,eci]am2s(Ex(i,:),Ey(i,:),[E(i) A(i) I(i)],Ed(i,:), Eq(i,:),10)
%[es2,edi2,eci2]am2s(Ex(2,:),Ey(2,:),[E(2) A(2) I(2)], Ed(2,:),Eq(2,:),10)
%axis([-1.5 8.5 -1 6]); axis([-0.5 3 -7 2]); axis equal; zoom on; eldraw2(Ex,Ey,[1 2 0],Edof(:,1));hold on gocnghienggoiCD=str2num(get(handles.gocnghienggoiCD
,’String’)); toadoxgoiCD=str2num(get(handles.toadoxgoiCD,’String’)); toadoygoiCD=str2num(get(handles.toadoygoiCD,’String’)); for i=1:length(gocnghienggoiCD) goi(gocnghienggoiCD(i),toadoxgoiCD(i),toadoygoiCD(i),0.2); end gocnghienggoilan=str2num(get(handles.gocnghienggoilan
,’String’)); toadoxgoilan=str2num(get(handles.toadoxgoilan,’String’)); toadoygoilan=str2num(get(handles.toadoygoilan,’String’)); for i=1:length(gocnghienggoilan) goi1(gocnghienggoilan(i),toadoxgoilan(i),toadoygoilan(i),0.2); end gocnghiengngam=str2num(get(handles.gocnghiengngam
,’String’)); toadoxngam=str2num(get(handles.toadoxngam,’String’)); toadoyngam=str2num(get(handles.toadoyngam,’String’)); for i=1:length(gocnghiengngam) truot(gocnghiengngam(i),toadoxngam(i),toadoyngam(i),0.2); end
%text(6.5,1.2,strcat(’F/2=’,num2str(abs(f(8))),’(kN)’),’FontSize
%pause; eldisp2(Ex,Ey,Ed);
%pause; magnfac=eldia2(Ex(2,:),Ey(2,:),M(:,2),Q(:,2)); for i=1:n eldia2(Ex(i,:),Ey(i,:)-2,M(:,i),Q(:,i),magnfac);
%eldia2(Ex(2,:),Ey(2,:)-2,es(2)(:,2),eci(2),magnfac); end
%text(5.5,-2.4,strcat(num2str(Qy_max1),’(kN)’));
%text(5,-1.1,strcat(num2str(Qy_max2),’(kN)’));
%pause; magnfac=eldia2(Ex(2,:),Ey(2,:),H(:,2),Q(:,2)); for i=1:n eldia2(Ex(i,:),Ey(i,:)-4,H(:,i),Q(:,i),magnfac); end
%text(5.8,-3.5,strcat(num2str(Mx_max1),’(kN.m)’));
%text(7.5,-4.8,strcat(num2str(Mx_max2),’(kN.m)’));
%text(9.2,-4,’(Mx)’); title(’DAM CHIU UON’); h=get(gca,’Title’); set(h,’FontSize’,14); set(h,’FontName’,’Tahoma’); function E_Callback(hObject, eventdata, handles)
% hObject handle to E (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of E as text
% str2double(get(hObject,’String’)) returns contents of E as a double
% Executes during object creation, after setting all properties. function E_CreateFcn(hObject, eventdata, handles)
% hObject handle to E (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all
% edit controls usually have a white background on Windows.
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,’BackgroundColor’), get(0 ,’defaultUicontrolBackgroundColor’)) set(hObject,’BackgroundColor’,’white’); end
Ví dụ 6 : Cho kết cấu dầm như hình Tất cả các phần tử đều làm từ cùng một vật liệu có E2.1x10 8 P a LựcP 44.45kN tác dụng tại nút như trên hình Cho tiết diện mặt cắt ngang của phần tử 1 và
2 đều bằngA 1 A 2 11.6235 Moment quán trính của phần tử 1, 2 đều bằng2.5x10 2 Hãy xác định:
1 Ma trận độ cứng phần tử của hệ toàn cục.
2 Chuyển vị và lực tác dụng tại các nút.
3 Vẽ các đồ thị thể hiện biểu đồ lực tác dụng trên dầm.
Hình 3.40: Sơ đồ tính cho ví dụ 6
Ta nhập dữ liệu bài toán vào phần mềm như hình 3.41
Sau khi nhập xong phần dữ liệu, ta bấm vào các nút để thể hiện các kết quả cần tìm về ma trận độ cứng phần tử, chuyển vị nút, lực tác dụng
Bấm vào nút vẽ đồ thị để hiển thị kết quả biểu đồ các lực tác dụng trên dầm
Hình 3.41: Dữ liệu bài toán cho ví dụ 6
Hình 3.42: Kết quả tính toán cho ví dụ 6
Hình 3.43: Biểu đồ các lực tác dụng trên dầm
Ngày nay, nhiều phương pháp tính số đã và đang phát triển mạnh mẽ và trở thành công cụ hữu hiện không thể thiếu được khi giải quyết các bài toán khoa học-kỹ thuật trong đó phương pháp phần tử hữu hạn được xem là mang lại nhiều hiệu quả và phổ biến nhất Việc thực hiện luận văn mới chỉ dừng lại ở việc khái quát hóa phương pháp phần tử hữu hạn và xây dựng phần mềm ứng dụng cơ bản phục vụ cho các kỹ sư tính toán các hệ thanh, giàn, dầm, khung trong lĩnh vực xây dựng Để có được các phần mềm ứng dụng tốt như Sap, Ansys cần nhiều thời gian tìm tòi nghiên cứu và luận văn này mới chỉ là tiền đề cơ bản do hạn chế về mặt thời gian cũng như con người Hy vọng rằng luận văn này sẽ giúp cho các thế hệ sau muốn tìm hiểu về phương pháp phần tử hữu hạn nắm được những vấn đề cơ bản và ứng dụng nó để giải quyết các bài toán cơ học.
[1] Chu Quốc Thắng.Phương pháp phần tử hữu hạn Nhà xuất bản khoa học kỹ thuật, 1997.
[2] Trương Tích Thiện, Nguyễn Mạnh Cường.Phương pháp phần tử hữu hạn lý thuyết và bài tập Nhà xuất bản giáo dục, 2011.
[3] Nguyễn Hoài Sơn, Lê Thanh Phong, Mai Đức Đãi Ứng dụng phần tử hữu hạn trong tính toán kết cấu Nhà xuất bản đại học quốc gia Tp Hồ Chí Minh, 2011.
[4] Vũ P.A.Phương pháp phần tử hữu hạn trong tính toán kết cấu. Nhà xuất bản trẻ, 1994.
[5] Dũng N.L.Giáo trình phương pháp phần tử hữu hạn trong cơ học. Trường đại học Bách Khoa TP Hồ Chí Minh, 1993.
[6] David V.Hutton Fundamentals of finite element analysis The McGraw-Hill Companies, 2004.
[7] Pavel Solin.Partial Differential Equations and the Finite element method The John Wiley & Sons Inc Publication, 2006.
[8] Craig S Lent Learning to program with Matlab: buiding GUI tools The John Wiley & Sons Inc Publication, 2013.
[9] Amos Gilat.Matlab: An introduction with applications fifth edi- tion The John Wiley & Sons Inc Publication, 2013.