Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
NGHIÊN CỨU SỬ DỤNG NGÔN NGỮ SLANGTNG TRONG PHÂN TÍCH VÀ TỐI ƯU HÓA KẾT CẤU HỆ THANH CHỊU TẢI TRỌNG TĨNH_10270512052019
1. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC XÂY DỰNG
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2016 - 2017
TÊN ĐỀ TÀI
NGHIÊN CỨU SỬ DỤNG NGÔN NGỮ SLANGTNG TRONG PHÂN TÍCH VÀ
TỐI ƯU HÓA KẾT CẤU HỆ THANH CHỊU TẢI TRỌNG TĨNH
Mã số đề tài: XD-2017-15
Sinh viên thực hiện, mã số sinh viên, lớp:
Vũ Văn Ngọ, 3049859, Lớp 59TH1
Nguyễn Văn Đức, 3052459, Lớp 59TH1
Nguyễn Thị Thảo, 3029589, Lớp 59TH2
Phạm Thị Phương Thảo, 3021359, Lớp 59TH2
Giáo viên hướng dẫn: PGS.TS Phạm Hoàng Anh
Hà Nội, 2017
2. 1
MỤC LỤC
MỞ ĐẦU.....................................................................................................................2
CHƯƠNG 1 PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN................................................6
1.1 GIỚI THIỆU CHUNG....................................................................................6
1.2 TRÌNH TỰ THỰC HIỆN ...............................................................................7
1.3 VÍ DỤ: ...........................................................................................................9
1.3.1 Hệ dàn phẳng:..........................................................................................9
1.3.2 Hệ khung phẳng:....................................................................................12
CHƯƠNG 2 BÀI TOÁN TỐI ƯU HÓA KẾT CẤU ..................................................17
2.1 GIỚI THIỆU CHUNG..................................................................................17
2.1.1 Khái niệm về tối ưu hóa kết cấu .............................................................17
2.1.2 Biến thiết kế...........................................................................................17
2.1.3 Hàm mục tiêu.........................................................................................18
2.1.4 Điều kiện ràng buộc ...............................................................................18
2.2 CÁC DẠNG BÀI TOÁN TỐI ƯU HÓA KẾT CẤU.....................................19
2.2.1 Tối ưu hóa tiết diện ngang......................................................................19
2.2.2 Tối ưu hóa hình dáng .............................................................................20
2.2.3 Tối ưu hóa cấu trúc ................................................................................20
2.3 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN TỐI ƯU HÓA KẾT CẤU ...........21
2.3.1 Các phương pháp quy hoạch toán học....................................................21
2.3.2 Các phương pháp tiêu chuẩn tối ưu ........................................................22
2.3.3 Các phương pháp tìm kiếm ngẫu nhiên ..................................................22
CHƯƠNG 3 GIỚI THIỆU SLANGTNG ...................................................................23
3.1 GIỚI THIỆU ................................................................................................23
3.2 GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH ............................................23
3.3 MỘT SỐ MÔ ĐUN SLANGTNG DÙNG TRONG PHÂN TÍCH VÀ TỐI ƯU
KẾT CẤU ..............................................................................................................25
3.3.1 Mô đun tmath ..........................................................................................25
3.3.2 Mô đun fem ...........................................................................................26
3.3.3 Mô đun optimize....................................................................................26
3.3.4 Mô đun graph.........................................................................................26
3. 2
CHƯƠNG 4 ỨNG DỤNG SLANGTNG TRONG PHÂN TÍCH VÀ TỐI ƯU TRỌNG
LƯỢNG KẾT CẤU HỆ THANH ..............................................................................28
4.1 PHÂN TÍCH KẾT CẤU HỆ THANH ..........................................................28
4.1.1 Khởi tạo mô hình tính toán.....................................................................30
4.1.2 Khai báo nút...........................................................................................30
4.1.3 Khai báo kiện biên .................................................................................31
4.1.4 Khai báo vật liệu....................................................................................31
4.1.5 Khai báo kiểu tiết diện ...........................................................................32
4.1.6 Khai báo phần tử....................................................................................32
4.1.7 Lập ma trận độ cứng tổng thể.................................................................33
4.1.8 Lập véc tơ lực nút tổng thể.....................................................................33
4.1.9 Tính toán chuyển vị nút..........................................................................34
4.1.10 Tính toán nội lực....................................................................................34
4.1.11 Biểu diễn kết quả ...................................................................................35
4.2 TỐI ƯU HÓA TRỌNG LƯỢNG KẾT CẤU................................................36
4.2.1 Lập hàm mục tiêu...................................................................................36
4.2.2 Lập hàm điều kiện ràng buộc .................................................................36
4.2.3 Khởi tạo công cụ tối ưu..........................................................................37
4.2.4 Tính toán tối ưu......................................................................................38
4.2.5 Biểu diễn kết quả ...................................................................................38
4.3 MỘT SỐ VÍ DỤ...........................................................................................39
KẾT LUẬN...............................................................................................................44
TÀI LIỆU THAM KHẢO..........................................................................................44
PHỤ LỤC..................................................................................................................46
DANH MỤC HÌNH VẼ
Hình 1.1: Sợi dây chịu tải trọng………………………..………………………………6
Hình 1.2: Tấm phẳng chịu tải trọng tĩnh.......................................................................7
Hình 1.3: Ví dụ một số loại phần tử.............................................................................7
Hình 1.4: Mô hình thiết lập ma trận độ cứng................................................................8
Hình 1.5: Sơ đồ kết cấu dàn tĩnh định chịu tải trọng.....................................................9
Hình 1.6: Sơ đồ rời rạc hóa và thứ tự chuyển vị các nút...............................................9
4. 3
Hình 1.7: Sơ đồ kết cấu khung tĩnh địnhchịu tải trọng................................................12
Hình 1.8: Sơ đồ rời rạc hoá và thứ tự các chuyển vị nút.............................................12
Hình 1.9: Biểu đồ nội lực...........................................................................................16
Hình 2.1: Ví dụ một số dạng bài toán tối ưu...............................................................21
Hình 3.1: Giao diện chính của chương trình slangTNG..............................................24
Hình 3.2: Cửa số hiển thị giá trị các biến ...................................................................25
Hình 3.3: Đồ họa 2D trong slangTNG .......................................................................26
Hình 3.4: Đồ họa 3D trong slangTNG .......................................................................27
Hình 4.1: Khung phẳng chịu tải trọng........................................................................28
Hình 4.2: Mô hình PTHH của khung .........................................................................28
Hình 4.3: Biểu đồ mô men uốn và biểu đồ lực cắt của hệ khung phẳng......................36
Hình 4.4: Sơ đồ biến dạng của kết cấu khung được tối ưu..........................................39
Hình 4.5: Sơ đồ hệ dàn 10 thanh................................................................................39
Hình 4.6: Sơ đồ hệ dàn 25 thanh................................................................................41
Hình 4.7: Giao diện chương trình tính dàn 10 thanh...................................................42
Hình 4.8: Giao diện chương trình tính dàn 25 thanh...................................................43
DANH MỤC BẢNG BIỂU
Bảng 4.1: Số liệu tọa độ nút.......................................................................................29
Bảng 4.2: Kết nối phần tử..........................................................................................29
Bảng 4.3: Số liệu tiết diện..........................................................................................29
Bảng 4.4: Kết quả tối ưu dàn 10 thanh.......................................................................40
Bảng 4.5: Thông số tải trọng tác dụng lên hệ dàn 25 thanh ........................................41
Bảng 4.6: Kết quả tính toán tối ưu hệ dàn 25 thanh....................................................42
5. 4
MỞ ĐẦU
Đặt vấn đề:
Các môn học về phân tích kết cấu như Sức bền vật liệu, Cơ học kết cấu,… là một
phần kiến thức cơ sở đối với kỹ sư thuộc các ngành xây dựng cơ bản và được bố trí
trong chương trình đào tạo của nhiều trường đại học như xây dựng, giao thông, thủy
lợi,… [1]. Tuy nhiên, hầu hết việc giảng dạy và học tập các môn học này hiện chưa
được tin học hóa. Ngay cả đối với môn Phương pháp phần tử hữu hạn, một trong
những phương pháp số phổ biến nhất trong phân tích kết cấu, cũng rất ít sử dụng đến
máy tính điện tử. Một trong những khó khăn khi áp dụng tin học trong giảng dạy và
học tập về phân tích kết cấu là thiếu các công cụ tin học phù hợp. Các ngôn ngữ lập
trình thường không thực sự tiện lợi cho sinh viên lập trình tính toán kết cấu và đòi hỏi
người dạy và người học phải có kỹ năng lập trình tương đối tốt. Ví dụ, MATLAB là
phần mềm đã được giới thiệu cho sinh viên ở một số lớp học tại Đại học Xây dựng,
tuy nhiên chỉ là giới thiệu qua cho sinh viên, sinh viên chưa được trang bị kĩ về ngôn
ngữ này để tự thực hiện việc phân tích các kết cấu.Sinh viên hầu như đều phải dựa vào
các file mẫu có sẵn để thực hiện việc phân tích kết cấu, giải quyết các bài toán.Các
phần mềm tính toán thì chỉ thích hợp trong ứng dụng thực tế hơn là trong giảng dạy và
học tập. Vấn đề bản quyền của các công cụ tin học cũng là một trở ngại.
slangTNG (Structural Language – The Next Generation) là một ngôn ngữ lập trình
miễn phí, được phát triển bởi Bucher và Wolff [2] dùng cho mục đích học tập và
nghiên cứu về phân tích kết cấu. Bên cạnh hỗ trợ tính toán về ma trận, slangTNG còn
cung cấp nhiều công cụ chuyên cho lập trình phân tích kết cấu và biểu kết quả đồ họa.
Hiện nay, một số trường đại học trên thế giới như Vienna University of Technology,
Bauhaus University Weimar đã ứng dụng ngôn ngữ slangTNG vào giảng dạy và
nghiên cứu các môn: cơ học, phân tích kết cấu, tối ưu hóa kết cấu, động lực học công
trình.Tại Việt Nam chưa nhiều người biết đến và sử dụng ngôn ngữ này. Bên cạnh đó,
tài liệu hướng dẫn về slangTNG chỉ có tài liệu tiếng Anh và còn khá hạn chế, thiếu
diễn giải chi tiết về trình tự, cấu trúc các lệnh, ý nghĩa các tham số khai báo…
6. 5
Nhằm tìm hiểu khả năng áp dụng slangTNG cho học tập và nghiên cứu, nhóm sinh
viên thực hiện đề tài “Nghiên cứu sử dụng ngôn ngữ slangTNG trong phân tích và tối
ưu hóa kết cấu hệ thanh chịu tại trọng tĩnh”.
Mục tiêucủa đề tài:
Tìm hiểu về ngôn ngữ slangTNG và ứng dụng của slangTNG trong các bài toán
phân tích và tối ưu hóa kết cấu hệ thanh chịu tải trọng tĩnh,bao gồm:
- Tìm hiểu về phân tích kết cấu theo phương pháp phần tử hữu hạn (PTHH);
- Tìm hiểu về bài toán tối ưu hóa kết cấu;
- Tìm hiểu về ngôn ngữ slangTNG và ứng dụng trong phân tích, tối ưu kết cấu
- Lập chương trình bằng slangTNG để phân tích, tối ưu hóa một số kết cấu hệ
thanh phẳng và hệ thanh không gian chịu tải trọng tĩnh;
- Biên dịch tài liệu, diễn giải và hướng dẫn sử dụng slangTNG trong phân tích và
tối ưu hóa kết cấu hệ thanh;
Phương pháp nghiên cứu:
- Nghiên cứu thông qua các tài liệu về ngôn ngữ slangTNG, về phương pháp
phần tử hữu hạn và tối ưu hóa kết cấu.
- Thực hành, thử nghiệm và tính toán một số ví dụ trên môi trường slangTNG.
Đối tượng và phạm vi nghiên cứu:
Ngôn ngữ slangTNG và kết cấu hệ thanh chịu tải trọng tĩnh.
Cấu trúc báo cáo:sau phần mở đâu, báo cáo bao gồm các phần sau:
Chương I: Phương pháp phần tử hữu hạn.
Chương II: Bài toán tối ưu hóa kết cấu.
Chương III: Giới thiệu slangTNG
Chương IV: Ứng dụng slangTNG trong phân tích và tối ưu trọng lượng kết cấu hệ
thanh
Kết luận
Tài liệu tham khảo và phụ lục
7. 6
CHƯƠNG 1 PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN
Trong tính toán kết cấu, phương pháp phần tử hữu hạn (PTHH) được sử dụng rất
phổ biến, nhất là với các kết cấu phức tạp. Chương này trình bày giới thiệu chung về
phương pháp PTHH mô hình chuyển vị: các khái niệm, trình tự thực hiện, một số ví dụ
đơn giản. Các nội dung được trình bày dựa trên tài liệu [3,4].
1.1GIỚI THIỆU CHUNG
Ra đời cách đây hơn nửa thế kỷ, ban đầu, phương pháp PTHH là một phương pháp
dùng trong phân tích trạng thái ứng suất. Ngày nay, phương pháp PTHH được phát
triển cho nhiều lĩnh vực kỹ thuật khác nhau, như: bài toán truyền nhiệt, dòng chảy,
điện và từ... [4].
Nội dung căn bản của phương pháp là Rời rạc hoá – Chia vật thể liên tục thành
một số hữu hạn những miền nhỏ gọi là các phần tử hữu hạn (PTHH). Việc phân tích
trạng thái ứng suất-biến dạng do đó được thực hiện trên mô hình mới rời rạc (mô hình
PTHH). Các PTHH trong mô hình này liên kết với nhau bởi các nút. Điều kiện tương
đương của hệ:
- Năng lượng trong mô hình thay thế tương đương năng lượng trong hệ thực;
- Trên các biên của phần tử, điều kiện chập (liên tục về lực và chuyển vị)
phảiđược thoả mãn.
Hình 1.1: minh họa mô hình PTHH của một sợi dây chịu tải trọng
Mô hình hệ thực:
- Vô số bậc tự do
Mô hình PTHH:
- Hữu hạn bậc tự do
Đường biến
dạng trong hệ
thực: - cong
trơn
Đường biến dạng
trong hệ thay thế:
- đường gãy khúc
Hình 1.1: Sợi dây chịu tải trọng tĩnh
8. 7
Hình 1.2: minh họa mô hình PTHH tấm phẳng chịu tải trọng
Hình 1.1: Tấm phẳng chịu tải trọng tĩnh
Sự phát triển mạnh mẽ và sử dụng rộng rãi máy tính điện tử đã thúc đẩy nhanh sự
hoàn thiện và phong phú của phương pháp PTHH. Ở Việt Nam, phương pháp PTHH
đã được tiếp thu và nghiên cứu từ giữa những năm70 của thế kỷ trước [3]. Phương
pháp PTHH đã được đưa vào giảng dạy ở bậc đại học và cao học ở nhiều trường đại
học kỹ thuật trong cả nước, trong đó có Đại học Xây dựng.
1.2TRÌNH TỰ THỰC HIỆN
Khi áp dụng phương pháp PTHH mô hình chuyển vị để phân tích kết cấu, ta cần
thực hiện các bước chính sau:
Bước 1:Chọn loại phần tử và rời rạc hoá kết cấu:
Ví dụ một số loại PTHH cơ bản: phần tử thanh, phần tử tấm (Hình 1.3)
Hình 1.2: Ví dụ một số loại phần tử
Bước 2:Thiết lập ma trận độ cứng của phần tử
Ma trậnđộ cứng, [K], là ma trận biểu thị mối quan hệ giữa ngoại lựcđặt tại nút (đã
quy đổi) và chuyển vị nút (Hình 1.4).
Mô hình PTHH:
- H ữu hạn bậc tự do
PTHH
Mô hình hệ thực:
- V ô số bậc tự do
9. 8
{R}= [K]. {q}
Ma trậnđộ cứng của PTHH
Hình 1.3: Mô hình thiết lập ma trận độ cứng
Ma trận độ cứng của một số loại PTHH một chiều (phần tử thanh) đã được thiết lập
sẵn và cho trong tài liệu [3,4].
Bước 3:Thiết lập véc tơ lực nút tương đương.
Các tải trọng tác dụng phân bố, tập trung trên phần tử sẽ được chuyển về tải trọng
tác dụng tại các nút của phần tử. Việc chuyển đổi dựa trên tương đương về công. Tài
liệu [3,4] cung cấp biểu thức quy đổi một số dạng tải trọng tách dụng trên phần tử
thanh về tải trọng taics dụng tại nút.
Bước 4:Ghép nối các phần tử thành hệ kết cấu
Trong mô hình kết cấu, các PTHH nối với nhau bởi các nút. Việc này được thực
hiện bằng cách ghép các ma trậnđộ cứng của các phần tử, ghép các vec tơ ngoại lực tác
dụng tại nút của các phần tử lại với nhau. Kết quả thu được là một ma trậnđộ cứng và
véc tơ lực nút tổng thể cho toàn hệ.
Bước 5: Đưa vào điều kiện biên:
Đưa vào điều kiện ràng buộc tại một số nút (ví dụ: chuyển vị tại các gối tựa bằng 0)
Bước 6: Giải hệ phương trình cân bằng và xác định các chuyển vị nút
Bước 7: Xác định chuyển vị,biến dạng và ứng suất trong phần tử thông qua chuyển vị
nút của phần tử.
Bước 8: Biểu diễn kết quả (bảng, biểu đồ)
qk
qj
qi
Ri
Rf
Rk
10. 9
Hiện nay đã có nhiều phần mềm phân tích kết cấu sử dụng phương pháp PTHH (ví
dụ SAP2000, ETAB), trong đó hầu hết các đều được tính toán tự động. Người sử dụng
chỉ phải nhập số liệu cho hệ kết cấu cần tính (Bước 1 và Bước 5).
1.3VÍ DỤ:
1.3.1 Hệ dàn phẳng:
Tính chuyển vị tại vị trí đặt lực cho kết cấu dàn tĩnh định như trên hình 1.5.
Hình 1.4: Sơ đồ kết cấu dàn tĩnh định chịu tải trọng
Bài Giải:
`
Hình 1.5:Sơ đồ rời rạc hóa và thứ tự chuyển vị các nút
PTHH 1: Phần tử thanh 2 đầu khớp.
- Trong hệ toạ độ riêng(tra theo [4]):
EA=1
EA=1
2m
2m
2
3
4
5
6
′
′
2
P=50KN
18. 17
CHƯƠNG 2 BÀI TOÁN TỐI ƯU HÓA KẾT CẤU
2.1GIỚI THIỆU CHUNG
2.1.1 Khái niệm về tối ưu hóa kết cấu
Tối ưu hóa kết cấu là một trong các yêu cầu rất quan trọng trong xây dựng.Tối ưu
hóa kết cấu để tiết kiệm vật liệu cũng như tận dụng hết khả năng làm việc của vật liệu
trong khi vẫn đảm bảo được các yêu cầu về thiết kế và chịu lực.Một bài toán tối ưu kết
cấu bao gồm: các biến thiết kế, hàm mục tiêu và hệ ràng buộc [5].
2.1.2 Biến thiết kế
Còn gọi là véctơ biến thiết kế, là những đại lượng đặc trưng của kết cấu, có thể
thay đổi giá trị trong quá trình tối ưu hóa. Các đại lượng đặc trưng này có thể là tham
số hình học mặt cắt, dạng đường bao kết cấu hoặc tính chất cơ lý của vật liệu kết cấu.
Biến thiết kế về tham số hình học mặt cắt có thể là chiều rộng, chiều cao của tiết
diện, diện tích mặt cắt ngang của thanh dàn, mômen quán tính hoặc mômen kháng uốn
của mặt cắt phần tử chịu uốn, chiều dày của tấm.
Biến thiết kế về tính chất cơ lý của vật liệu có thể là môđun đàn hồi, hệ số poisson,
hệ số co dãn do nhiệt… là các tham số về điều kiện khai thác: hệ số quá tải, hệ số an
toàn, hệ số ổn định, chỉ số độ tin cậy.Biến thiết kế cũng có thể là tọa độ nút của các
phần tử trong hệ, được sử dụng trong bài toán tối ưu hóa cấu trúc.
Biến thiết kế được gọi là liên tục nếu nó có thể nhận nhứng giá trị bất kỳ trong một
khoảng, miền liên tục. Ngược lại, nếu biến thiết kế chỉ nhận những giá trị riêng rẽ
trong miền xác định của nó, thì biến thiết kế là rời rạc. Tuy nhiên, trường hợp các giá
trị của biến rời rạc được phân bố gần lấp đầy trên một khoảng, ta có thể áp dụng các
phương pháp như đối với biến liên tục và lựa chọn xấp xỉ gần cận để tối ưu hóa với giá
trị rời rạc có trong thực tế.
Về mặt toán học, tập hợp đầy đủ n biến thiết kế của một kết cấu được biểu diễn
thành một vectơ
x = {x , x , … , x } ∈ R (2.1)
19. 18
gọi là vectơ biến thiết kế trong không gian thiết kế, D. Trường hợp cần tìm hình dáng
phần tử, hay trục của kết cấu dưới dạng giải tích thì biến thiết kế được thể hiện dưới
dạng một hoặc nhiều hàm số trên chiều dài nhịp.
2.1.3 Hàm mục tiêu
Mục đích của thiết kế được thể hiện thông qua đặc trưng nào đó của kết cấu, biểu
diễn dưới dạng một biểu thức toán học, chứa các biến thiết kế.
=F( )=F ( , , … , ) (2.2)
Trong bài toán tối ưu hóa kết cấu, các hàm mục tiêu như bên trên có thể là thể tích
kết cấu, trọng lượng kết cấu hoặc tổng chi phí của kết cấu. Khi đó mục đích của thiết
kế là tìm vectơ biến thiết kế làm cho hàm mục tiêu đạt giá trị nhỏ nhất (min).
Ta dễ dàng chuyển bài toán từ cực đại hóa sang bài toán cực tiểu hóa bằng cách
đổi dấu hàm mục tiêu hoặc thay độ tin cậy max bằng độ không tin cậy min.Trường
hợp biến thiết kế là các hàm thì hàm mục tiêu là một phiếm hàm.
max{F( )}=min{-F( ))} (2.3)
2.1.4 Điều kiện ràng buộc
Là các đẳng thức, bất đẳng thức mô tả mối quan hệ giữa các biến thiết kế và
khoảng xác định của mỗi biến.
( ) ≤ 0 = 1 ÷ (2.4)
( ) = 0 = + 1 ÷ (2.5)
≤ ≤ = 1 ÷ (2.6)
Trong đó:x ,x lần lượt là giới hạn dưới và giới hạn trên của biến x .
Tập hợp D bao gồm tất cả những véc tơ x thỏa mãn các điều kiện ràng buộc tạo
thành một không gian các phương án thiết kế, được gọi là miền nghiệm hay miền thiết
kế. Các ràng buộc (2.4) thể hiện các điều kiện cân bằng, (2.5) liên quan đến các tiêu
chuẩn quy định về độ bền, độ cứng, độ ổn định. Tần số dao động riêng và điều kiện
không phá hoại dẻo của kết cấu cũng có dạng bất đẳng thức kép. Các ràng buộc có thể
20. 19
ở dạng tường minh hoặc dạng hàm ẩn đối với các biến thiết kế. Ràng buộc (2.6) quy
định miền biến thiên của mỗi biến thiết kế.
Có thể nhận thấy, các phương trình ràng buộc về độ bền, độ cứng, ổn định và tần
số dao động riêng đối với kết cấu có dạng phi tuyến, vì yếu tố đặc trưng tiết diện và
vật liệu: EA, EI, có mặt ở mẫu số. Vì vậy bài toán tối ưu hóa kết cấu có dạng phi
tuyến.
2.2CÁC DẠNG BÀI TOÁN TỐI ƯU HÓA KẾT CẤU
2.2.1 Tối ưu hóa tiết diện ngang
Nhóm bài toán tối ưu tiết diện ngang (mặt cắt) có các biến thiêt kế là tham số hình
học mặt cắt, hàm mục tiêu là thể tích hoặc trọng lượng kết cấu với các ràng buộc về
bền, chuyển vị, ổn định và tần số dao động riêng.
Bài toán tối ưu tiết diện ngang được xét trong hai trường hợp: biến liên tục và biến
rời rạc.
a. Tối ưu tiết diện ngang với biến thiết kế liên tục
Đặc điểm của bài toán là biến thiết kế có thể nhận giá trị trong một miền liên
tục.Với bài toán biến liên tục, có thể sử dụng các phương pháp dùng đạo hàm (Tham
khảo tài liệu [5])
b. Tối ưu tiết diện ngang với biến thiết kế rời rạc
Trong thực tế, biến mặt cắt được chọn trong bảng danh mục cho sẵn do nhà sản
xuất cung cấp, vì vậy tập các giá trị có thể nhận của biến thiết kế là một tập rời rạc. So
với bài toán biến liên tục, bài toán tối ưu biến rời rạc có khối lượng tính toán lớn hơn.
Ta có thể giải bài toán với giả thiết biến liên tục, sau đó sử dụng các phương pháp
riêng như phương pháp làm tròn, phương pháp phân nhánh… để xử lý tính chất rời rạc
của nghiệm thực. Mức độ chính xác của kết quả không chỉ phụ thuộc vào phương pháp
làm tròn, mà còn phụ thuộc đáng kể vào khoảng cách giữa các giá trị liên tiếp của tập
biến rời rạc. Nếu khoảng cách này là đủ bé thì việc chuyển từ biến liên tục sang biến
rời rạc là phù hợp, không sai số lớn, ngược lại sẽ không chính xác, thậm chí không
chấp nhận được.
21. 20
Trong thực tế thiết kế cần tránh xu hướng làm tròn tăng với suy nghĩ thiên về an
toàn. Việc làm như vậy sẽ cho kết quả không còn tối ưu nữa.Gần đây, các phương
pháp sử dụng lý thuyết di truyền và tiến hóa với cách tiếp cận ngẫu nhiên và công cụ
máy tính, tỏ rõ rất hiệu quả với bài toán có biến rời rạc.
2.2.2 Tối ưu hóa hình dáng
Trong bài toán này, cấu trúc của kết cấu không thay đổi, vấn đề là xác định kích
thước và hình dáng của kết cấu.Trường hợp sử dụng phương pháp số, biến thiết kế sẽ
là các tọa độ nút trên đường biên của kết cấu. Trường hợp tổng quát, biến thiết kế
trong bài toán tối ưu hình dáng có thể chứa cả biến trong bài toán tối ưu tiết diện
ngang.
2.2.3 Tối ưu hóa cấu trúc
Nội dung của bài toán này là tìm quy luật phân bố tối ưu vật liệu hoặc các phần tử
kết cấu bao gồm cả số lượng phần tử và vị trí các nút kể cả liên kết với đất. Bài toán
tối ưu cấu trúc phức tạp hơn nhiều, nhưng kết quả nhận được là triệt để và do đó rất
tiết kiệm.
Thường người ta chọn kết cấu dàn để tiếp cận với bài toán này nhằm giảm bớt khó
khăn, vì xem dàn như một giải pháp hợp lý về phần tử và cấu trúc ban đầu. Đối với
dàn người ta chọn trước một kết cấu xuất phát, gọi là kết cấu gốc, bao gồm nhiều nút
và thanh liên kết với nhau trong một không gian kiến trúc xác định. Trong quá trình tối
ưu hóa, các thanh dàn có ứng suất nhỏ nhất sẽ được loại bỏ dần, để giữ lại một bộ phận
“chủ lực” trong kết cấu gốc ban đầu.
Trên Hình 2.1 minh họa ba bài toán tối ưu: tiết diện, hình dáng và cấu trúc.
22. 21
Hình 2.1: Ví dụ một số dạng bài toán tối ưu
2.3CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN TỐI ƯU HÓA KẾT CẤU
Cho đến nay, có nhiều phương pháp giải bài toán tối ưu hóa kết cấu, có thể phân
thành hai nhóm phương pháp chính là: (i) nhóm phương pháp sử dụng đạo hàm và (ii)
nhóm phương pháp tìm kiếm ngẫu nhiên. Nhóm thứ nhất áp dụng hiệu quả với bài
toán có biến liên tục, số lượng biến nhỏ hơn 20; trường hợp biến không liên tục phải
giả thiết liên tục để đủ điều kiện đạo hàm, khi đó nghiệm tìm được chưa thực sự tối
ưu; Nhóm thứ hai áp dụng hiệu quả cho trường hợp biến rời rạc và số lượng biến lớn.
Dưới đây điểm qua một số phương pháp thường được sử dụng.
2.3.1 Các phương pháp quy hoạch toán học
Cực tiểu hóa (hoặc cực đại hóa) hàm:
( ) → ( ) (2.7)
Với điều kiện ràng buộc: ( )(≤ = ≥) ; ∈ D ⊂ ; j = 1 ÷ m
Đặc điểm chung của phương pháp quy hoạch toán học là tìm nghiệm tối ưu trong
miền thiết kế D bằng cách xuất phát từ một điểm lựa chọn ban đầu, từ đó tìm
hướng đi đến điểm tốt hơn .Từ tiếp tục đến . Quá trình lặp cho đến khi hàm
mục tiêu F( ) không thể nhỏ hơn được nữa (trong bài toán cực tiểu hóa) hoặc lớn hơn
được nữa (trong bài toán cực đại hóa) mà vẫn thỏa mãn ràng buộc ( ∈ ). Khi đó
là nghiệm tối ưu, tương ứng F( ) là giá trị của phương án tối ưu.Có thể nói phương
23. 22
pháp quy hoạch toán học là công cụ tổng quát để giải các bài toán tối ưu nói chung và
tối ưu hóa kết cấu nói riêng (bài toán qui hoạch phi tuyến được phân tích trong [5])
2.3.2 Các phương pháp tiêu chuẩn tối ưu
Có thể xem đây là các phương pháp gián tiếp, vì theo phương pháp này việc cực
tiểu hóa hàm mục tiêu được thể hiện thông qua việc tìm kết cấu thỏa mãn các tiêu
chuẩn tối ưu. Cơ sở toán học của phương pháp tiêu chuẩn tối ưu là phương pháp nhân
tử Lagrange.
Ưu điểm của phương pháp này là gắn với ý nghĩa vật lý rõ ràng, biểu diễn toán chặt
chẽ, dễ lập trình cho máy tính, hội tụ nhanh ngay cả với các bài toán nhiều biến.
Nhược điểm của phương pháp là việc chứng minh tính chất hội tụ của lời giải đôi khi
gặp khó khăn, phạm vi áp dụng không rộng như các phương pháp quy hoạch toán học.
Thuật toán chung của phương pháp tiêu chuẩn tối ưu là giải lặp, quá trình lặp kết thúc
khi sai khác giữa hai vòng lặp liền nhau đủ nhỏ theo yêu cầu của người tính. Các tiêu
chuẩn tối ưu áp dụng đối với kết cấu mang ý nghĩa vật lý ( thể hiện ở điều kiện ràng
buộc có tính kỹ thuật) nên mặc dù không mang tính tổng quát về qui hoạch toán học
nhưng lại là một hướng xây dựng các bài toán toán tối ưu trong kỹ thuật nói chung và
kết cấu nói riêng.
2.3.3 Các phương pháp tìm kiếm ngẫu nhiên
Bài toán tối ưu là bài toán tìm kiếm lời giải tốt nhất trong không gian các lời giải
khả dĩ. Khi không gian tìm kiếm của bài toán là rất lớn, người ta sử dụng những kỹ
thuật trí tuệ nhân tạo đặc biệt. Có thể kể ra một số kỹ thuật tìm kiếm ngẫu nhiên,
thường sử dụng trong tối ưu hóa kết cấu: di truyền (GA), tiến hóa vi phân (DE) và trí
tuệ bầy đàn (PSO).
Các phương pháp tìm kiếm ngẫu nhiên khắc phục được những hạn chế của các
phương pháp truyền thống dựa trên đạo hàm. Do vậy, các phương pháp tìm kiếm ngẫu
nhiên ngày càng được ứng dụng rộng rãi trong tối ưu hóa kết cấu, nhất là trong trường
hợp bài toán phức tạp, đa cực trị, nhiều biến, biến rời rạc.Tuy nhiên, các phương pháp
này thường yêu cầu khối lượng tính toán lớn.
24. 23
CHƯƠNG 3 GIỚI THIỆU SLANGTNG
3.1GIỚI THIỆU
slangTNG, viết tắt của “Structural Language – The Next Generation”, là ngôn ngữ
lập trình chuyên dụng cho kết cấu, được phát triển bởi GS. Christian Bucher và các
cộng sự.
slangTNG là một ngôn ngữ kịch bản để giải quyết các bài toán liên quan đến toán
học, cơ học và kết cấu dựa trên Lua [13]. Trên thực tế, slangTNG cung cấp chức năng
bổ sung cho Lua bằng các hàm C++ và thư viện FORTRAN.
Ngoài chức năng giống như nhiều ngôn ngữ lập trình khác, sLangTNG là một bộ
ứng dụng cung cấp cho các nhà khoa học, sinh viên và kỹ sư các công cụ để dễ dàng
phân tích và giải các bài toán kết cấu. Một trong số những tính năng chủ yếu của
slangTNG là:
- Đại số tuyến tính
- Tính toán xác suất và thống kê
- Phân tích Độ tin cậy của kết cấu
- Phân tích kết cấu theo phương pháp phần tử hữu hạn
- Phân tích phổ
- Tính toán Động lực học
- Giải phương trình vi phân
- Công cụ đồ họa 2D và 3D
Các tính năng của slangTNG được xây dựng theo các mô đun độc lập.
Hiện nay, ngôn ngữ slangTNG đang được sử dụng trong giảng dạyvà nghiên cứu ở
một số trường đại học trên thế giới như trường Đại học Công nghệ Viên (Vienna
University of Technology), đại học Xây dựng Bauhaus Weimar (Bauhaus-University
Weimar).
3.2GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH
Hình 3.1 thể hiện giao diện của slangTNG.
25. 24
Hình 3.1: Giao diện chính của chương trình slangTNG
Trong đó:
- Vùng số 1: phần viết các câu lệnh chương trình tính toán
- Vùng số 2 và số 3: cửa sổbiểu diễn đồ họa (nếu muốn nhiều biểu đồ thì cần
thiết lập nhiều của sổ)
- Vùng số 4: phần thể hiện kết quả, báo lỗi
Nút “Read+ Run”: dùng để dịch và chạy chương trình
Nút “Show/Hide Variable Inspector” : dùng để hiện tất cả giá trị của các biến tính
toán trong chương trình. Khi nhấn nút này, một cửa sổ khác sẽ xuất hiện như trên
hình 3.2.
26. 25
Hình 3.2: Cửa sốhiển thị giá trị các biến
3.3MỘT SỐ MÔ ĐUN SLANGTNG DÙNG TRONG PHÂN TÍCH VÀ TỐI ƯU
KẾT CẤU
Các công cụ tính toán của slangTNG được thiết lập thành các mô đun. Trong phạm
vi nghiên cứu này chỉ trình bày một số module dùng trong tính toán và tối ưu hóa kết
cấu theo phương pháp PTHH.
3.3.1 Mô đun tmath
Module tmathbao gồm các lệnh trên đối tượng ma trận, ví dụ như khai báo một ma
trận, nghịch đảo ma trận, thực hiện phép nhân ma trận,…Diễn giải chi tiết các lệnh của
tmath được cho trong Phụ lục 1: Module tmath
Ví dụ để khai báo một ma trận A =
0 0
0 0
ta dùng lệnh
A=tmath.ZeroMatrix(2,2)
Hay để khai báo một ma trận với tất cả các phần tử bằng một hằng số c cho trước
(c=1) ta dùng lệnh
27. 26
C=1; A:SetConstant(c)
Ngoài ra tmath cũng là phương tiện giao tiếp giữa các phương pháp trong các mô
đun khác chẳng hạn như fem hoặc stoch.
3.3.2 Mô đun fem
Mô đunfem là mô đun cung cấp các công cụ đơn giản nhằm phân tích tĩnh và động
các kết cấu tuyến tính. Thư viện phần tử gồm các loại phần tử thanh, tấm, khối, tiếp
xúc. Diễn giải chi tiết các lệnh được cho trong Phụ lục 2: Module fem.
3.3.3 Mô đun optimize
Mô đunoptimize cung cấp 2 công cụ cho tính toán tối ưu: tính toán dựa trên
gradient (CONMIN)và tính toán theo tối ưu bày đàn (PSO). Diễn giải chi tiết các lệnh
được cho trong Phụ lục 3: Module optimize.
3.3.4 Mô đun graph
Mô đungraphcung cấp các tiện ích đồ họa2D (hình 3.3) và 3D (hình 3.4). Đặc biệt
đối với phân tích kết cấu, graph có các lệnh để biểu diễn sơ đồ kết cấu, vẽ biểu đồ nội
lực,ứng suất. Diễn giải chi tiết các lệnh được cho trong Phụ lục 4: Module graph
Hình 3.3: Đồ họa 2D trong slangTNG
29. 28
CHƯƠNG 4 ỨNG DỤNG SLANGTNG TRONG PHÂN TÍCH VÀ TỐI ƯU
TRỌNG LƯỢNG KẾT CẤU HỆ THANH
Nội dung chương 4 sẽ trình bày chi tiết cách sử dụng slangTNG để phân tích và
tính toán tối ưu kết cấu hệ thanh. Việc phân tích được thực hiện theo phương pháp
PTHH sử dụng module fem, và tính toán tối ưu sẽ sử dụng module optimize. Để minh
họa cho các diễn giải, ta sẽ thực hiện thông qua các ví dụ cụ thể đơn giản.
4.1PHÂN TÍCH KẾT CẤU HỆ THANH
Ví dụ minh họa là kết cấu khung như cho trên hình 4.1 [6]. Các thanh làm bằng vật
liệu có module đàn hổi E=2.1e+11,tiết diện thanh hình chữ nhật có kích thước là bxh
(với h=b). Tải trọng H=100, V=100.
Hình 4.1: Khung phẳng chịu tải trọng
Mô hình PTHH được thể hiện trên hình 4.2. Các số liệu về tọa độ nút, kết nối phần
tử vật liệu được cho trong bảng 4.1, 4.2, 4.3.
Hình 4.2: Mô hình PTHH của khung
30. 29
Bảng 4.1: Số liệu tọa độ nút
Tên nút Tọa độ X Tọa độ Y Tọa độ Z
11 0 0 0
12 0 4 0
13 4 4 0
14 6 4 0
15 6 0 0
16 4 0 0
Bảng 4.2: Kết nối phần tử
Tên phần tử Nút đầu Nút cuối Nút định vị Tiết diện
1 11 12 16 Hình chữ nhật
2 12 13 16 Hình chữ nhật
3 13 14 16 Hình chữ nhật
4 14 15 16 Hình chữ nhật
Bảng 4.3: Số liệu tiết diện
Tên tiết diện Loại tiết diện b h
1 REC 0.2 0.2
2 REC 0.2 0.2
3 REC 0.2 0.2
4 REC 0.2 0.2
31. 30
Để phân tích nội lực của kết cấu bằng ngôn ngữ slangTNG, ta cần thực hiện các
bước như trình bày dưới đây.
4.1.1 Khởi tạo mô hình tính toán
Để khởi tạo mô hình tính toán hệ kết cấu bằng phương pháp PTHH trong
slangTNG, ta thực hiện lệnh sau:
struct=fem.Structure(“Frame”)
Trong đó:
- struct là một biến cấu trúc dùng để lưu tất cả các dữ liệu khai báo cho kết cấu
do người sử dụng đặt tên.
- fem.Structure(“Frame”) là câu lệnh tạo cấu trúc dữ liệu PTHH với “Frame” là
tên diễn giải của hệ kết cấu đang xét.
4.1.2 Khai báo nút
Số hiệu về nút của kết cấu được đưa vào dưới dạng một ma trận. Với hệ đang xét ta
có thể khai báo số hiệu về nút trực tiếp hoặc thông qua một biết trung gian. Cụ thể như
sau:
- Khai báo trực tiếp:
struct:AddNodes(tmath.Matrix({
{11, 0, 0, 0},
{12, 0, 4, 0},
{13, 4, 4, 0},
{14, 6, 4, 0},
{15, 6, 0, 0},
{16, 4, 0, 0}}))
- Khai báo gián tiếp:
nodes=tmath.Matrix({
{11, 0, 0, 0},
{12, 0, 4, 0},
{13, 4, 4, 0},
{14, 6, 4, 0},
{15, 6, 0, 0},
{16, 4, 0, 0}})
struct:AddNodes(nodes)
Trong đó:
32. 31
- nodes là một biến dạng ma trận dùng để lưu tọa độ các nút của kết cấu.
- tmath.Matrix() là câu lệnh khởi tạo một ma trận.
- struct:AddNodes()là câu lệnh nhậptọa độ nút vào biến struct.
4.1.3 Khai báo điều kiện biên
Điều kiện biên của một nút được khai báo dưới dạng ma trận cho từng nút. Mỗi nút
trong không gian có 6 bậc tự do, 3 bậc tự do chuyển vị thẳng theo các phương X, Y, Z
và 3 bậc tự do chuyển vị xoay quanh các trục X, Y, Z. Giá trị mặc định là 1 – tự do,
giá trị 0 là bị ngăn cản.
Với hệ đang xét (có nút 11 là ngàm và nút 15 là gối tựa cố định), ta có thể khai báo
trực tiếp và gián tiếp như sau:
- Khai báo trực tiếp:
struct:GetNode(11):SetAvailDof(tmath.Matrix({{0,0,0,0,0,0}})
)
struct:GetNode(15):SetAvailDof(tmath.Matrix({{0,0,0,0,0,1}})
)
struct:GetNode(16):SetAvailDof(tmath.Matrix({{0,0,0,0,0,0}})
)
- Khai báo gián tiếp:
A=tmath.Matrix({{0, 0, 0, 0, 0, 0}})
B=tmath.Matrix({{0, 0, 0, 0, 0, 1}})
struct:GetNode(11):SetAvailDof(A)
struct:GetNode(15):SetAvailDof(B)
struct:GetNode(16):SetAvailDof(A)
Trong đó
- SetAvailDof là hàm thiết lập bậc tự do cho nút.
- struct:GetNode Là lệnh nhận một tham chiếu đến nút.
4.1.4 Khai báo vật liệu
Để khai báo vật liệu ta dùng tập câu lệnh sau:
local mm = struct:AddMaterial(8, "LINEAR_ELASTIC")
mm:SetData(tmath.Matrix({{2.1e11, 0.3, 7850}}))
Trong đó:
33. 32
- struct:AddMaterial(8, "LINEAR_ELASTIC")là hàm dùng để thêm loại vật liệu
với tên định danh là 8 và thuộc kiểu vật liệu là "LINEAR_ELASTIC"(đàn hồi
tuyến tính) vào trong biến kết cấu struct.
- SetData(tmath.Matrix({{2.1e11, .3, 7850}}))là hàm dùng để gán cácđặc trưng
vật liệu. Các đặc trưng của vật liệu được thêm vào theo một véc tơ, trong đó là
2.1e11 là module đàn hồi, 0.3 là hệ số Poisson, 7850 là trọng lượng riêng của
vật liệu.
4.1.5 Khai báo kiểu tiết diện
Với hệ đang xét, các thanh có cùng tiết diện là hình chữ nhật bxh nên có thể khai
báo 4 tiết diện có tên 1,2,3,4 như sau:
b=0.2; h=0.2;
for i=0,3 do
ss = struct:AddSection(i+1, "RECT")
ss:SetData(tmath.Matrix({{b, h}}))
end
Trong đó:
- ss = struct:AddSection(i+1, "RECT")là hàm dùng để thêm tiết diện,với định
danhi+1, kiểu tiết diện "RECT" (chữ nhật).
- ss:SetData(tmath.Matrix({{b, h}}))là hàm dùng để gán các đặc trưng hình học
của tiết diện hình chữ nhật bxh.
4.1.6 Khai báo phần tử
Để khai báo phần tử của kết cấu trong slangTNG thì cần chú ý tớinút định vị phần
tử. Với phần tử thanh, cần 3 nút để xác định vị trí phần tử trong không gian 3D: nút
đầu, nút cuối và nút định phương mặt phẳng (1-2).
Với hệ đang xét là hệ khung phẳng, nút 16 cùng nằm trong mặt phẳng khung sẽ
được dùng làm nút định phươngmặt phẳng (1-2). Các phần tử được khai báo như sau:
struct:AddElements("RECT",8,1,tmath.Matrix({{1,11,12,16}}))
struct:AddElements("RECT",8,2,tmath.Matrix({{2,12,13,16}}))
struct:AddElements("RECT",8,3,tmath.Matrix({{3,13,14,16}}))
struct:AddElements("RECT",8,4,tmath.Matrix({{4,14,15,16}}))
Trong đó:
34. 33
- struct:AddElements("RECT",8,1, tmath.Matrix({{1,11,12,16}}))là hàm dùng
để thêm phần tử,với "RECT" là kiểu tiết diện, 8 là định danh vật liệu, 1định
danh tiết diện, tmath.Matrix({{1, 11, 12, 16}}) là ma trận kết nối phần tử tạo
thành thanh 1.
4.1.7 Lập ma trận độ cứng tổng thể
Để lập ma trận độ cứng tổng thể K (đã bao gồm cả xử lý điều kiện biên) ta dùng
lệnh sau:
K=struct:SparseStiffness()
4.1.8 Lập véc tơ lực nút tổng thể
Để lập véc tơ lực tác dụng tại nút của hệ ta thực hiện các bướcnhư sau:
- Thiết lập ma trận lực nút tổng thể rỗng F1 bằng lệnh:
F1=struct:GetAllDisplacements()
Lệnh trên sẽ tạo ra ma trận F1 có kích thước là Nx6 (N là tổng số nút) dùng để lưu
trữ các lực tác dụng tương ứng với 6 bậc tự do tại nút.
- Gán giá trị tải trọng tác dụng theo phương X tại nút 12 (H=100), giá trị tải trọng
tác dụng theo phương Y tại nút 13 (V=-100):
F1[{1,0}]=100
F1[{2,1}]=-100
Saukhi thực hiện các lệnh trên ta thu được ma trận F1 như sau:
0 0 0 0 0 0
100 0 0 0 0 0
0 -100 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Trong trường hợp ta không nhớ số thứ tự của nút 12 và 13, ta sử dụng lệnh
GetNodeIndex()để nhận số thứ tự của nút và dùng cho khai báo tải trọng:
id12=struct:GetNodeIndex(12)
F1[{id12,0}]=100
id13=struct:GetNodeIndex(13)
F1[{id13,1}]=-100
35. 34
- Chuyển từ ma trận lực nút sang véc tơ lực nút tổng thể:
F=struct:ToDofDisplacements(F1)
Lệnh F=struct:ToDofDisplacements(F1) sẽ chuyển ma trận lực nút F1 vừa khai báo
thành một véc tơ (lực nút) chỉ chứa các số hạng tương ứng với các bậc tự do không bị
ngăn cản (nghĩa là đã xử lý điều kiện biên).
4.1.9 Tính toán chuyển vị nút
Để tính toán các chuyển vị nút của hệ kết cấu, ta sử dụng lệnh:
U=K:Solve(F)
Trong đó:
- U là biến véc tơ chứa các chuyển vị nút
- K:Solve(F)là hàm dùng để giải giải hệ KU=F
4.1.10 Tính toán nội lực
Để tính toán nội lực của thanh ta thực hiện các bước như sau:
1. Chuyển véc tơ chuyển vị nút sang ma trận chuyển vị nút:
U1=struct:ToAllDisplacements(U)
Saukhi thực hiện lệnh trên, ta thu được một ma trận U1 có kích thước Nx6. Mỗi
một hàng của U1 chứa 6 thành phần chuyển vị của một nút tương ứng (Ví dụ, hàng thứ
2 của U1 chứa các thành phần chuyển vị của nút 12). Ta có thể hiện các kết quả tính
toán bằng cách nhấn nút ‘Show/Hide viable inspector’.
0 0 0 0 0 0 (nút 11)
0.0030265 -6.9269e-8 000-0.00093988 (nút 12)
0.0030259 -0.0013126 000 0.00050529 (nút 13)
0.0030256 -2.7056e-7 000-0.00018734 (nút 14)
0 0 0 0 0 -0.0010409 (nút 15)
0 0 0 0 0 0(nút 16)
2. Gán các chuyển vị nút về chuyển vị tại đầu thanh (trong hệ tọa độ địa phương):
struct:SetAllDisplacements(U)
3. Tính toán nội lực:
FS = struct:ElementForce()
36. 35
Lệnh trên sẽ thực hiện tính toán nội lực trong tất cả các phần tử và lưu vào một
biến ma trận FS có kích thước NEx12. Mỗi một hàng của FS chứa 12 thành phần nội
lựctại hai đầu thanh (mỗi nút có 6 thành phần nội lực). Ta có thể hiện các kết quả tính
toán bằng cách nhấn nút ‘Show/Hide viable inspector’.
4.1.11 Biểu diễn kết quả
slangTNG cung cấp các tiện ích để có thể biểu diễn nội lực dưới dạng đồ họa 2D
và 3D một cách nhanh chóng.
Trong ví dụ này, để vẽ biểu đồ mô men uốn và lực cắt, ta thực hiện các lệnh như
sau:
- Khởi tạo 2 cửa sổ đồ họa:
g1=graph.Graph3D("Bending Moment")
g2=graph.Graph3D("Shear Force")
- Vẽ sơ đồ kết cấu trên 2 cửa sổ:
g1:Clear()
g1:Triangles(structure:Draw())
g1:Autoscale()
g1:Zoom(0.7)
g2:Clear()
g2:Triangles(structure:Draw())
g2:Autoscale()
g2:Zoom(0.7)
- Vẽ biểu đồ mô men uốn:
g1:Triangles(struct:DrawSectionForces(5,1,0.01))
g1:Render()
- Vẽ biểu đồ lực cắt:
g2:Triangles(struct:DrawSectionForces(1,1,0.01))
g2:Render()
37. 36
Kết quả của chương trình thể hiện trên hình 4.3:
Hình 4.3: Biểu đồ mô men uốn và biểu đồ lực cắt của hệ khung phẳng
4.2TỐI ƯU HÓA TRỌNG LƯỢNG KẾT CẤU
slangTNG cung cấp hai công cụ tính toán tối ưu là CONMIN và PSO. Trong đó,
CONMIN là công cụ tính toán tối ưu dựa trên gradient, PSO là thuật toán tối ưu hóa
kiểu ngẫu nhiên.
Ta sẽ tìm hiểu việc tính toán tối ưu hóa kết cấu thông qua ví dụ tính toán tối ưu thể
tích kết cấu khung ở phần 4.1 bằng công cụ CONMIN. Biến thiết kế là kích thước tiết
diện các thanh b1, b2, b3, b4. Yêu cầu chuyển vị ngang tại nút 12 và chuyển vị đứng tại
nút 13 không được vượt quá 0.05.
4.2.1 Lập hàm mục tiêu
Hàm mục tiêu là thể tích của kết cấu, được lập dưới dạng một function của biến tiết
diện xi (i=0..3):
function v(x)
local obj=4*x[0]^2+4*x[1]^2+2*x[2]^2+4*x[3]^2
return obj
end
4.2.2 Lập hàm điều kiện ràng buộc
Ta thiết lập ràng buộc dưới dạng một véc tơ, trong đó mỗi số hạng tương ứng với
một điều kiện ràng buộc. Lưy ý là CONMIN chỉ xét các ràng buộc ở dạng g ≤ 0.
38. 37
Đầu tiên, cần xây dựng hàm tính chuyển vị tương ứng với mỗi thiết kế x. Hàm này
được đặt tên là frame(x) vàlập giống như chương trình tính toán khung đã đề cập ở
mục 4.1, tuy nhiên tại mục khai báo tiết diện ta thay thế bằng lệnh:
for i=0,3 do
ss = struct:AddSection(i+1, "RECT")
ss:SetData(tmath.Matrix({{x[i],x[i]}}))
end
Ngoài ra ta cần thêm lệnh xác định chuyển vị ngang u tại nút 12 và chuyển vị thẳng
đứng w tại nút 13:
u=U1[{id12,0}]
w=U1[{id13,0}]
return u,w
Hàm xác định ràng buộc lập như sau:
function c(x)
local u, w = frame(x)
local cc=tmath.Matrix({{math.abs(u)-0.05},{math.abs(w)-
0.05}})
return cc
end
4.2.3 Khởi tạo công cụ tối ưu
Để khởi tạo công cụ tối ưu ta dùng lệnh:
n=4
ops=optimize.Conmin(n,2)
bounds = tmath.Matrix(n,2)
bounds:SetLinearCols(1e-2, 10)
ops:SetBounds(bounds)
start = tmath.Matrix(n)
start:SetConstant(0.3)
ops:SetDesign(start)
Trong đó:
- optimize.Conmin(n,2) là hàm dùng để thiết lập công cụ tối ưu kiểu CONMIN
gồm 4 biến thiết kế và 2 ràng buộc bất đẳng thức.
- bounds là ma trận chứa các cận dưới và cận trên của biến. Trong ví dụ này ta
đặt 1e-2≤ x(i) ≤ 10.
39. 38
- start là giá trị khởi tạo (tùy chọn) của véc tơ biến thiết kế. Trong ví dụ này ta đặt
các giá trị ban đầu của cạnh tiết diện là 0.3.
4.2.4 Tính toán tối ưu
Để tính toán tối ưu ta dùng vòng lặp:
done = false
while (not done) do
done=(ops:Compute()==0)
x = ops:GetDesign()
obj = v(x)
ops:SetObjective(obj)
constraints = c(x)
ops:SetConstraints(constraints)
end
Trong đó:
- done=(ops:Compute()==0) là câu lệnh dùng để gán giá trị cho biến done là true
hoặc fale. Trong đó ops:Compute()==0 là thuật toán được hoàn thành nếu câu
trả lời = 0.
- x = ops:GetDesign()là hàm tạo ra một vector x có chứa thiết kế hiện tại như
được tính toán bởi chương trình tối ưu
- ops:SetObjective(obj) gán giá trị làm mục tiêu cho ops
- ops:SetConstraints(constraints)chỉ định các constraints như các giá trị ràng buộc
cho ops. Constr phải là mộtma trận ngay cả khi chỉ có một ràng buộc.
4.2.5 Biểu diễn kết quả
Sau khi quá trình tối ưu kết thúc, để nhận thiết kế tối ưu ta dùng lệnh:
xopt = ops:GetDesign()
Với thiết kế tối ưu này, ta có thể tính toán lại chuyển vị, vẽ sơ đồ kết cấu… Hình
4.4 biểu diễn sơ đồ biến dạng của kết cấu sau khi đã tối ưu.
40. 39
Hình 4.4: Sơ đồ biến dạng của kết cấu khung được tối ưu.
Toàn bộ mã chương trình của ví dụ này có thể tham khảo trong tài liệu [6].
4.3MỘT SỐ VÍ DỤ
4.3.1. Tối ưu trọng lượng hệ dàn 10 thanh
Sơ đồ kết cấu dàn cho trên Hình 4.5. Kết cấu chịu các lực P=100 kips thẳng đứng
hướng xuống dưới tại nút 2 và 4. Diện tích tiết diện thanh (in2
) được chọn trong
khoảng [0,1; 40]. Mô đun đàn hồi và trọng lượng riêng của vật liệu lần lượt là 104
ksi
và 0,1 lb/in3
. Ứng suất cho phép trong mỗi thanh dàn (cả kéo và nén) là 25 ksi.
Chuyễn vị cho phép tại nút theo cả phương x và y là 2,0 in.
Hình 4.5: Sơ đồ hệ dàn 10 thanh
Chương trình tính toán được lập bằng ngôn ngữ slangTNG và cho trong Phụ lục 5:
Mã chương trình tối ưu hệ dàn 10 thanh. Kết quả tính toán được cho trong bảng 4.4, có
so sánh với kết quả của các công bố quốc tế khác.
1
2
3
4
5
6
1 2
3 4
5 6
7 8 9 10
360in 360in
360in