Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp véc tơ định vị DLV và giải thuật tiến hóa khác biệt DE

114 125 0
Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp véc tơ định vị DLV và giải thuật tiến hóa khác biệt DE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i LỜI CAM ĐOAN Tôi cam đoan rằng, Luận văn "Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp véc-tơ định vị DLV giải thuật tiến hóa khác biệt DE" nghiên cứu tơi Ngoại trừ tài liệu tham khảo trích dẫn luận văn này, tơi cam đoan tồn phần hay phần nhỏ luận văn chưa công bố sử dụng để nhận cấp nơi khác Khơng có sản phẩm/nghiên cứu người khác sử dụng luận văn mà khơng trích dẫn theo quy định Luận văn chưa nộp để nhận cấp trường đại học sở đào tạo khác TP Hồ Chí Minh, năm 2016 NGUYỄN THANH TIỀN Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE ii LỜI CẢM ƠN Trong thời gian thực luận văn, nhận nhiều hướng dẫn, giúp đỡ góp ý nhiệt tình thầy cô trường Đại học Mở Tp HCM bạn lớp Xây dựng gia đình Trước tiên, xin gửi lời cảm ơn chân thành đến thầy PGS TS Nguyễn Thời Trung, người trực tiếp giúp đỡ hướng dẫn cho tận tình suốt thời gian thực đề cương luận văn này; đồng thời cảm ơn sâu sắc đến anh Võ Duy Trung – nghiên cứu viên Viện khoa học tính tốn INCOS, trường Đại học Tơn Đức Thắng Sau đó, tơi xin cảm ơn bạn học chung lớp Xây dựng hết lòng hỗ trợ, trao đổi, giúp đỡ tơi việc hồn thành luận văn Xin chân thành cảm ơn gia đình bạn bè nhiệt tình giúp đỡ, tạo điều kiện thuận lợi cho tơi hồn thành luận văn TP Hồ Chí Minh, năm 2016 NGUYỄN THANH TIỀN Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE iii TRANG TÓM TẮT Vật liệu composite ngày sử dụng phổ biến sống tính ưu việt chúng Nên việc đánh giá khả làm việc an toàn, hiệu cơng trình có sử dụng kết cấu composite quan trọng cần thiết Luận văn trình bày chẩn đốn hư hại dầm composite nhiều lớp phương pháp kết hợp véc-tơ định vị DLV giải thuật tiến hóa khác biệt DE Q trình chẩn đốn hư hại trải qua hai giai đoạn Giai đoạn thứ xác định vị trí hư hại kết cấu dầm composite nhiều lớp phương pháp DLV; giai đoạn thứ hai sử dụng phương pháp DE để xác định mức độ hư hại vị trí xác định giai đoạn Để chứng minh tin cậy hiệu phương pháp đề xuất ví dụ số cho kết cấu dầm cơng xơn với góc hướng sợi thay đổi toán cụ thể, với vị trí hư hại giả định trước thực Trong ví dụ đó, ảnh hưởng nhiễu xét đến Kết số cho thấy rằng, phương pháp sử dụng hiệu việc xác định vị trí hư hại mức độ hư hại dầm composite nhiều lớp Đồng thời, kết cho thấy phương pháp bị ảnh hưởng số lượng dạng dao động, số lượng vị trí hư hại mức độ hư hại xét nhiễu Từ khóa: Dầm composite nhiều lớp, chẩn đoán hư hại, phương pháp DLV, giải thuật DE Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE iv MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii TRANG TÓM TẮT iii MỤC LỤC iv DANH MỤC HÌNH VẼ vii DANH MỤC BẢNG BIỂU ix DANH MỤC TỪ VIẾT TẮT xi CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề 1.2 Tình hình nghiên cứu ngồi nước 1.3 Tình hình nghiên cứu nước 12 1.4 Mục tiêu nghiên cứu 14 1.5 Đối tượng phạm vi nghiên cứu 15 1.6 Ý nghĩa đề tài 15 1.7 Phương pháp nghiên cứu cấu trúc luận văn 16 1.7.1 Phương pháp nghiên cứu 16 1.7.2 Cấu trúc luận văn 16 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 18 2.1 Giới thiệu vật liệu composite 18 2.2 Bài toán chẩn đoán hư hại cho kết cấu 21 2.2.1 Phần tử hữu hạn cho dầm composite 22 2.2.1.1 Chuyển vị, biến dạng, ứng suất dầm nhiều lớp 22 2.2.1.2 Dạng yếu mơ hình dầm composite nhiều lớp 26 2.2.1.3 Công thức phần tử hữu hạn dầm composite nhiều lớp dựa lý thuyết dầm bậc Timoshenko 31 2.2.2 Định nghĩa khái niệm hư hại luận văn 38 2.2.3 Xác định vị trí hư hại phương pháp Véc-tơ định vị hư hại (DLV) 38 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE v 2.2.4 Đánh giá mức độ hư hại sử dụng giải thuật tiến hóa khác biệt DE 41 2.2.4.1 Hàm mục tiêu 42 2.2.4.2 Giải thuật tiến hóa khác biệt (DE) 43 2.3 Lưu đồ tính tốn 46 CHƯƠNG 3: VÍ DỤ SỐ 48 3.1 Giới thiệu 48 3.2 Phần kiểm chứng 49 3.2.1 Kiểm chứng tần số riêng dầm composite cho toán số 49 3.2.2 Kiểm chứng Tần số riêng dầm composite cho toán số 50 3.2.2.1 Dầm công xôn 51 3.2.2.2 Dầm nhịp tựa hai gối giản đơn 52 3.2.2.3 Dầm nhịp hai đầu ngàm 52 3.2.2.4 Dầm nhịp đầu tựa đơn – đầu ngàm 53 3.2.2.5 Kiểm chứng tần số riêng với góc hướng sợi thay đổi khác 53 3.2.3 Nhận xét 54 3.3 Chẩn đoán hư hại kết cấu 54 3.3.1 Khảo sát toán với điều kiện biên khác 55 3.3.1.1 Trường hợp không xét đến nhiễu 55 3.3.1.2 Trường hợp có xét đến nhiễu 57 3.3.2 Khảo sát ảnh hưởng góc hướng sợi 59 3.3.2.1 Trường hợp không xét đến nhiễu 59 3.3.2.2 Trường hợp có xét đến nhiễu 61 3.3.3 Khảo sát ảnh hưởng số lớp 62 3.3.3.1 Trường hợp không xét đến nhiễu 62 3.3.3.2 Trường hợp có xét đến nhiễu 64 3.3.4 Khảo sát ảnh hưởng số lượng dạng dao động 66 3.3.4.1 Trường hợp không xét đến nhiễu 66 3.3.4.2 Trường hợp có xét đến nhiễu 67 3.3.5 Khảo sát ảnh hưởng số lượng phần tử hư hại 69 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE vi 3.3.5.1 Trường hợp không xét đến nhiễu 69 3.3.5.2 Trường hợp có xét đến nhiễu 71 3.3.6 Khảo sát ảnh hưởng mức độ hư hại 72 3.3.6.1 Trường hợp không xét đến nhiễu 72 3.3.6.2 Trường hợp có xét đến nhiễu 74 3.4 Kết luận 75 CHƯƠNG 4: KẾT LUẬN 78 4.1 Đóng góp luận văn 78 4.2 Hạn chế luận văn 79 4.3 Hướng phát triển 79 TÀI LIỆU THAM KHẢO 80 PHỤ LỤC 88 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE vii DANH MỤC HÌNH VẼ Hình 1.1 Những cố đáng tiếc xảy giới Hình 2.1 Phân loại vật liệu composite 19 Hình 2.2 Composite gia cường hạt 19 Hình 2.3 Composite gia cường 20 Hình 2.4 Composite gia cường sợi 20 Hình 2.5 Vật liệu composite nhiều lớp (Kaw, 2005) 20 Hình 2.6 Vật liệu sợi gia cường liên tục (Kaw, 2005) 21 Hình 2.7 Dầm composite nhiều lớp tổng quát 22 Hình 2.8 Góc hướng sợi vật liệu composite 22 Hình 2.9 Chuyển vị phần tử dầm composite nhiều lớp (Wang cộng sự, 2000) 23 Hình 2.10 Các thành phần ứng suất (Reddy, 2004) 24 Hình 2.11 Hệ tọa độ lớp hệ tọa độ chung dầm (Reddy, 2004) 29 Hình 2.12 Các hàm dạng phần tử nút (Fish Belytschko, 2007) 31 Hình 2.13 Phần tử dầm Timoshenko nút (Oñate, 2013) 32 Hình 2.14 Sơ đồ giải thuật DE 43 Hình 2.15 Quá trình đột biến giải thuật DE, sử dụng rand/1 45 Hình 2.16 Lưu đồ tính tốn luận văn 46 Hình 3.1 Dầm cơng xôn C-F 49 Hình 3.2 Dầm cơng xơn C-F 51 Hình 3.3 Dầm tựa đơn S-S 52 Hình 3.4 Dầm hai đầu ngàm C-C 52 Hình 3.5 Dầm đầu ngàm, đầu tựa đơn C-S 53 Hình 3.6 Khảo sát với điều kiện biên khác không xét nhiễu 56 Hình 3.7 Khảo sát với điều kiện biên khác xét ảnh hưởng nhiễu 57 Hình 3.8 Kết khảo sát ảnh hưởng góc hướng sợi đến DLV khơng xét nhiễu 60 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE viii Hình 3.9 Kết khảo sát ảnh hưởng góc hướng sợi đến DLV xét ảnh hưởng nhiễu 61 Hình 3.10 Kết khảo sát ảnh hưởng số lớp composite đến DLV không xét nhiễu 63 Hình 3.11 Kết khảo sát ảnh hưởng số lớp composite đến DLV xét ảnh hưởng nhiễu 65 Hình 3.12 Kết khảo sát ảnh hưởng dạng dao động đến DLV không xét nhiễu 66 Hình 3.13 Kết khảo sát ảnh hưởng số lượng dạng dao động đến nce xét ảnh hưởng nhiễu 68 Hình 3.14 Sự ảnh hưởng việc xét nhiễu khơng xét nhiễu đến lượng biến dạng tích lũy nce 69 Hình 3.15 Kết khảo sát ảnh hưởng vị trí hư hại đến DLV không xét nhiễu 70 Hình 3.16 Kết khảo sát ảnh hưởng vị trí hư hại đến DLV xét ảnh hưởng nhiễu 71 Hình 3.17 Kết khảo sát ảnh hưởng mức độ hư hại đến DLV không xét nhiễu 73 Hình 3.18 Kết khảo sát ảnh hưởng mức độ hư hại đến DLV xét ảnh hưởng nhiễu 74 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE ix DANH MỤC BẢNG BIỂU Bảng 3.1 Số liệu đặc trưng vật liệu cho toán 48 Bảng 3.2 Các đặc trưng vật liệu toán 49 Bảng 3.3 Tần số không thứ nguyên dầm dạng dao động 50 Bảng 3.4 Tần số không thứ nguyên dầm dạng dao động 51 Bảng 3.5 Tần số không thứ nguyên dầm dạng dao động 52 Bảng 3.6 Tần số không thứ nguyên dầm dạng dao động 52 Bảng 3.7 Tần số không thứ nguyên dầm dạng dao động 53 Bảng 3.8 Bảng so sánh tần số với điều kiện biên khác 53 Bảng 3.9 Thơng số thuật tốn DE 55 Bảng 3.10 Kết khảo sát điều kiện biên khác DE không xét nhiễu 56 Bảng 3.11 Kết khảo sát điều kiện biên khác DE xét ảnh hưởng nhiễu 58 Bảng 3.12 Kết khảo sát ảnh hưởng góc hướng sợi đến phương pháp DE không xét nhiễu 60 Bảng 3.13 Kết khảo sát ảnh hưởng góc hướng sợi đến phương pháp DE xét ảnh hưởng nhiễu 61 Bảng 3.14 Kết khảo sát ảnh hưởng số lớp đến phương pháp DE không xét nhiễu 63 Bảng 3.15 Kết khảo sát ảnh hưởng số lớp đến phương pháp DE xét ảnh hưởng nhiễu 65 Bảng 3.16 Kết khảo sát ảnh hưởng dạng dao động đến phương pháp DE không xét nhiễu 67 Bảng 3.17 Kết khảo sát ảnh hưởng dạng dao động đến phương pháp DE xét ảnh hưởng nhiễu 68 Bảng 3.18 Kết khảo sát ảnh hưởng số lượng vị trí hư hại đến phương pháp DE khơng xét nhiễu 70 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE x Bảng 3.19 Kết khảo sát ảnh hưởng số lượng vị trí hư hại đến phương pháp DE xét ảnh hưởng nhiễu 72 Bảng 3.20 Kết khảo sát ảnh hưởng mức độ hư hại đến phương pháp DE không xét nhiễu 73 Bảng 3.21 Kết khảo sát ảnh hưởng mức độ hư hại đến phương pháp DE xét ảnh hưởng nhiễu 75 Bảng 3.22 Bảng tổng hợp kết khảo sát 76 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 88 PHỤ LỤC I Code Matlab DLV I.1 Khảo sát điều kiện biên khác close,clear all; clc %Noise errf = 0.15/100; errm = 1/100; %No Noise % errf = 0; % errm = 0; %***************************************************************** ** nmod = 7; for nop=1:4 if nop==1 option = 'C-F'; elseif nop==2 option = 'S-S'; elseif nop==3 option = 'C-S'; elseif nop==4 option = 'C-C'; end main_composite_damage; main_composite_intact; angfreqdamg=angfreqdamg_noise; eigvaldamg=eigvaldamg_noise; eigvecdamg=eigvecdamg_noise; flexdamg = flex(eigvaldamg,eigvecdamg,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); end I.2 Khảo sát số mode khác close,clear all; clc %Noise errf = 0.15/100; errm = 1/100; %No Noise % errf = 0; % errm = 0; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 89 %***************************************************************** ** AB=zeros(32,8); for i=1:10 for nop=1:8 if nop==1 nmod = 1; elseif nop==2 nmod = 2; elseif nop==3 nmod = 3; elseif nop==4 nmod = 4; elseif nop==5 nmod = 5; elseif nop==6 nmod = 6; elseif nop==7 nmod = 7; elseif nop==8 nmod = 8; end main_composite_damage; %reduce E main_composite_intact; flexdamg = flex(eigvaldamg_noise,eigvecdamg_noise,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); % % dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); %****************************************************** ** end AB=AB+ncee2; end AB=AB./10; I.3 Khảo sát số vị trí hư hại close,clear all; clc %Noise errf = 0.15/100; errm = 1/100; % errf = 0; % errm = 0; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 90 %***************************************************************** ** nmod = 7; for nop=1:4 if nop==1 damgele = [16]; damglev_K = [30]; elseif nop==2 damgele = [15 16]; damglev_K = [30 30]; elseif nop==3 damgele = [1 16 25]; damglev_K = [30 30 30]; elseif nop==4 damgele = [1 15 16 25]; damglev_K = [30 30 30 30]; end main_composite_damage; main_composite_intact; angfreqdamg=angfreqdamg_noise; eigvaldamg=eigvaldamg_noise; eigvecdamg=eigvecdamg_noise; flexdamg = flex(eigvaldamg,eigvecdamg,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); % % dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); end I.4 Khảo sát mức độ hư hại close,clear all; clc %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; %***************************************************************** ** nmod = 7; for nop=1:7 if nop==1 damglev_K = [5 5]; elseif nop==2 damglev_K = [10 10 10]; elseif nop==3 damglev_K = [15 15 15]; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 91 elseif nop==4 damglev_K elseif nop==5 damglev_K elseif nop==6 damglev_K elseif nop==7 damglev_K end = [20 20 20]; = [25 25 25]; = [30 30 30]; = [35 35 35]; main_composite_damage; main_composite_intact; flexdamg = flex(eigvaldamg_noise,eigvecdamg_noise,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); % % dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); end I.5 Khảo sát góc hướng sợi close,clear all; clc %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; %***************************************************************** ** nmod = 7; AB=zeros(32,7); for i=1:10 for nop=1:7 if nop==1 teta=0; elseif nop==2 teta=15; elseif nop==3 teta=30; elseif nop==4 teta=45; elseif nop==5 teta=60; elseif nop==6 teta=75; elseif nop==7 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 92 teta=90; end main_composite_damage; main_composite_intact; flexdamg = flex(eigvaldamg_noise,eigvecdamg_noise,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); % % dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); exportnce{i}=ncee2; end AB=AB+exportnce{i}; end AB=AB./10; I.6 Khảo sát số lơp close,clear all; clc %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; %***************************************************************** ** nmod = 7; AB=zeros(32,7); teta=75; for i=1:20 for nop=1:7 if nop==1 fiber = [teta]; elseif nop==2 fiber = [teta -teta]; elseif nop==3 fiber = [teta -teta teta]; elseif nop==4 fiber = [teta -teta -teta teta]; elseif nop==5 fiber = [teta -teta teta -teta teta]; elseif nop==6 fiber = [teta -teta teta teta -teta teta]; elseif nop==7 fiber = [teta -teta teta -teta teta -teta teta]; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 93 end main_composite_damage; main_composite_intact; flexdamg = flex(eigvaldamg_noise,eigvecdamg_noise,nmod); flexintct = flex(eigval,eigvec,nmod); dlv = dlvs(flexintct, flexdamg); flexchange = flexintct-flexdamg; disp('check dlvsensor') max(abs(flexchange*dlv)); % % dsplm = solstatic(KG,dlv,bcdof); ncee = nce(nele,size(dlv,2),dsplm(:,:),Ke); ncee2(:,nop)= abs(ncee); exportnce{i}=ncee2; end AB=AB+exportnce{i}; end AB=AB./20; II Code Matlab DE II.1 Khảo sát điều kiện biên khác close,clear all; %clc %Noise errf = 0.15/100; errm = 1/100; %No Noise % errf = 0; % errm = 0; for nop=1:4 if nop==1 option = 'C-F'; elseif nop==2 option = 'S-S'; elseif nop==3 option = 'C-S'; elseif nop==4 option = 'C-C'; end main_composite_damage; %reduce E main_composite_intact; angfreqdamg=angfreqdamg_noise; eigvaldamg=eigvaldamg_noise; eigvecdamg=eigvecdamg_noise; %************************************************************ **************** export=[]; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 94 damgele_op=[1 16 25]; for i=1:10 %% OBJECTIVE FUNCTION nda=3; %length(damgele_op)=3; objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg,eigvecdamg,bc,damgele_op,nop); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nop}=export; i end end II.2 Khảo sát số mode khác close,clear all; %clc %Noise errf = 0.15/100; errm = 1/100; %No Noise % errf = 0; % errm = 0; option = 'C-F'; for nmod=7:8 main_composite_damage; main_composite_intact; export=[]; damgele_op=[1 16 25]; for i=1:20 %% OBJECTIVE FUNCTION nda=3; %length(damgele_op)=3; objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg,eigvecdamg,bc,damgele_op,nmod); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nmod}=export; i end end II.3 Khảo sát vị trí hư hại close,clear all; %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 95 errm = 0; nmod=7; for nop=1:4 if nop==1 damgele = [16]; damglev_K = [30]; nda=2; damgele_op=[16]; elseif nop==2 damgele = [15 16]; damglev_K = [30 30]; nda=2; damgele_op=[15 16]; elseif nop==3 damgele = [1 16 25]; damglev_K = [30 30 30]; nda=3; damgele_op=[1 15 16]; elseif nop==4 damgele = [1 15 16 25]; damglev_K = [30 30 30 30]; nda=4; damgele_op=[1 15 16 25]; end main_composite_damage; main_composite_intact; export=[]; for i=1:10 %% OBJECTIVE FUNCTION objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg_noise,eigvecdamg_noise,eigvaldamg_noise,bc, damgele_op,nmod); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nop}=export; i end clear damgele damglev_K nda damgele_op end II.4 Khảo sát mức độ hư hại close,clear all; %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 96 nmod=7; for nop=1:7 if nop==1 damglev_K = [5 5]; elseif nop==2 damglev_K = [10 10 10]; elseif nop==3 damglev_K = [15 15 15]; elseif nop==4 damglev_K = [20 20 20]; elseif nop==5 damglev_K = [25 25 25]; elseif nop==6 damglev_K = [30 30 30]; elseif nop==7 damglev_K = [35 35 35]; end nda=3; damgele_op=[1 16 25]; main_composite_damage; main_composite_intact; export=[]; for i=1:10 %% OBJECTIVE FUNCTION objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg_noise,eigvecdamg_noise,eigvaldamg_noise,bc, damgele_op,nmod); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nop}=export; i end clear damgele damglev_K nda damgele_op end II.5 Khảo sát góc hướng sợi close,clear all; %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; nmod=7; for nop=1:7 Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 97 if nop==1 teta=0; elseif nop==2 teta=15; elseif nop==3 teta=30; elseif nop==4 teta=45; elseif nop==5 teta=60; elseif nop==6 teta=75; elseif nop==7 teta=90; end nda=3; damgele_op=[1 16 25]; main_composite_damage; main_composite_intact; export=[]; for i=1:10 objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg_noise,eigvecdamg_noise,eigvaldamg_noise,bc, damgele_op,nmod,teta); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nop}=export; i end clear damgele damglev_K nda damgele_op end II.6 Khảo sát số lớp close,clear all; %Noise % errf = 0.15/100; % errm = 1/100; errf = 0; errm = 0; teta=75; nmod=7; nda=3; damgele_op=[1 16 25]; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 98 for nop=6:7 if nop==1 fiber = [teta]; elseif nop==2 fiber = [teta -teta]; elseif nop==3 fiber = [teta -teta teta]; elseif nop==4 fiber = [teta -teta -teta teta]; elseif nop==5 fiber = [teta -teta teta -teta teta]; elseif nop==6 fiber = [teta -teta teta teta -teta teta]; elseif nop==7 fiber = [teta -teta teta -teta teta -teta teta]; end main_composite_damage; main_composite_intact; %************************************************************ ************** export=[]; for i=1:10 %% OBJECTIVE FUNCTION objectfunc = @(extent) minusmdlac_mshape(extent,angfreq, angfreqdamg_noise,eigvecdamg_noise,eigvaldamg_noise,bc, damgele_op,nmod,fiber); [extentoptde,fvalde,iter]= DE_edit2(objectfunc,22,nda, zeros(1,nda),100*ones(1,nda),900,1e-6); export(i,:)=[extentoptde,fvalde,iter]; export2{nop}=export; i end end III Một số code chương trình III.1 Tính tần số dạng dao động kết cấu hư hại close all; format long INPUT; nele = gcoord= nodes = ndof = nnode = nx; 0:l/nx:l; [1:nx;2:nx+1]'; 3; 2; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục sdof 99 = (length(gcoord))*ndof; KG = sparse(sdof,sdof); MG = sparse(sdof,sdof); count=0; for e = 1:nx [ index ] = connect( ndof,e,nodes ); XG = gcoord(nodes(e,:)); [Qm, Qmb, Qb, Qs] = material(Q, fiber, h, z, b); if(ismember(e,damgele)) count=count+1; [ Ke ] = stiffened_beam( XG, Qm, Qb, Qmb, Qs )*(1damglev_K(count)/100); else [ Ke ] = stiffened_beam( XG, Qm, Qb, Qmb, Qs ); end [ Me ] = mass_beam( fiber,XG,rho,b,z ); KG(index,index)=KG(index,index)+Ke; MG(index,index)=MG(index,index)+Me; end [ bcdof, bcval ] = boundary_condition( nx,ndof,option); bc=unique(sort(bcdof)); [eigvaldamg,eigvecdamg]=eigens(KG,MG,bc); angfreqdamg = sqrt(eigvaldamg); angfreqdamgnorm = angfreqdamg*l^2*sqrt(rho/(E1*t^2)); disp('Frequency of damage beam') angfreqdamgnorm(1:6) %Noise angfreqdamg_noise = angfreqdamg + errf*(2*rand(size(angfreqdamg),1) -1).*angfreqdamg; eigvaldamg_noise = angfreqdamg_noise.^2; eigvecdamg_noise = eigvecdamg + errm*(2*rand(size(eigvecdamg)) 1).*eigvecdamg; III.2 Tính tần số dạng dao động kết cấu không bị hư hại close all; format long INPUT; nele = gcoord= nodes = ndof = nnode = sdof = nx; 0:l/nx:l; [1:nx;2:nx+1]'; 3; 2; (length(gcoord))*ndof; KG = sparse(sdof,sdof); MG = sparse(sdof,sdof); for e = 1:nx [ index ] = connect( ndof,e,nodes ); Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 100 XG = gcoord(nodes(e,:)); [Qm, Qmb, Qb, Qs] = material(Q, fiber, h, z, b); [ Ke ] = stiffened_beam( XG, Qm, Qb, Qmb, Qs ); [ Me ] = mass_beam( fiber,XG,rho,b,z ); KG(index,index)=KG(index,index)+Ke; MG(index,index)=MG(index,index)+Me; end [ bcdof, bcval ] = boundary_condition( nx,ndof,option); bc=unique(sort(bcdof)); [eigval,eigvec]=eigens(KG,MG,bc); angfreq = sqrt(eigval); angfreqnorm = angfreq*l^2*sqrt(rho/(E1*t^2)); disp('Frequency of intact beam') angfreqnorm(1:6) III.3 Hàm mục tiêu function res = minusmdlac_mshape(extent,angfreq,angfreqdamg,eigvecdamg,eigvaldamg ,bc,damgele_op,nmod,fiber) main_composite_damage_Optimization delf = (angfreq(1:nmod) - angfreqdamg(1:nmod))./angfreq(1:nmod); df = (angfreq(1:nmod) - angfreqdamgopt(1:nmod))./angfreq(1:nmod); mdlac = (delf'*df)^2/((delf'*delf)*(df'*df)); weig = 1*ones(1,nmod); res = 1-mdlac + mshape_error( eigvecdamg, eigvecdamgopt, nmod, weig ); end function [ xbest,fbest,iter] = DE_edit2( fitness,Popsize,dim,Lb,Ub,epoch,tol ) Pop = cell(Popsize,1); Fx = zeros(Popsize,1); parfor j = 1:Popsize Pop{j,1} = Lb + (Ub-Lb).*rand(1,dim); Fx(j) = feval(fitness,Pop{j,1}); end [fbest0,idb0] = min(Fx); xbest0 = Pop{idb0,1}; Display = 'y'; if strcmp(Display,'y') fprintf('\n Best\t\t fprintf('Generation\tf-count\t\t f(x)\n') end CR = 1; F Mean\n') = 0.8; dir=[pwd,'/output/']; filename = [dir,'fbest_fmean_F_',num2str(F),'_CR',num2str(CR),'.dat']; Chẩn đoán hư hại dầm composite nhiều lớp sử dụng phương pháp DLV DE Phụ lục 101 fid = fopen(filename,'w'); fprintf(fid,'%g %12.20f %12.20f\n',0,fbest0,mean(Fx)); for iter = 0:epoch if(iter==0) save2file(cell2mat(Pop),iter,F,dir,xbest0); elseif (mod(iter,1)==0) save2file(cell2mat(Pop),iter,F,dir,xbest); end if iter == epoch disp(' _') fprintf('Optimal solution is found at generation at the end (DE): %i, xval = %s \n', iter,mat2str(xbest,dim) ); break; end Popnew = Pop; parfor j=1:Popsize [r1,r2,r3] = selection(Popsize,j); v=mutation(r1,r2,r3,F,Pop,Lb,Ub); u = crossover(Pop,j,v,CR,dim); Fnew = feval(fitness,u); if(Fnew

Ngày đăng: 03/01/2019, 21:44

Từ khóa liên quan

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

Tài liệu liên quan