(LUẬN văn THẠC sĩ) nghiên cứu, cải thiện kỹ thuật mô hình vỉa nứt nẻ liên tục (CFM), áp dụng cho mỏ của việt nam

94 4 0
(LUẬN văn THẠC sĩ) nghiên cứu, cải thiện kỹ thuật mô hình vỉa nứt  nẻ liên tục (CFM), áp dụng cho mỏ của  việt nam

Đ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 HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THANG VĂN ĐẠT NGHIÊN CỨU, CẢI THIỆN KỸ THUẬT MƠ HÌNH VỈA NỨT NẺ LIÊN TỤC (CFM), ÁP DỤNG CHO MỎ CỦA VIỆT NAM LUẬN VĂN THẠC SĨ CƠ HỌC KỸ THUẬT HÀ NỘI, NĂM 2014 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THANG VĂN ĐẠT NGHIÊN CỨU, CẢI THIỆN KỸ THUẬT MƠ HÌNH VỈA NỨT NẺ LIÊN TỤC (CFM), ÁP DỤNG CHO MỎ CỦA VIỆT NAM Ngành Chuyên ngành Mã số : Cơ học kỹ thuật : Cơ học kỹ thuật : 60 52 01 01 LUẬN VĂN THẠC SĨ CƠ HỌC KỸ THUẬT NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS ĐẶNG THẾ BA HÀ NỘI, NĂM 2014 TIEU LUAN MOI download : skknchat@gmail.com LỜI CẢM ƠN Lời khóa luận em xin gửi lời cảm ơn đến thầy giáo PGS TS Đặng Thế Ba Thầy giao đề tài tận tình hƣớng dẫn em q trình hồn thành khóa luận Nhân dịp em xin gửi lời cám ơn tời tồn thầy giáo khoa Cơ Học Kỹ Thuật Tự Động Hóa giảng dạy giúp đỡ chúng em suốt trình học tập khoa Đồng thời, tơi xin cảm ơn gia đình ngƣời thân chia sẻ, giúp đỡ, động viên, tạo điều kiện thuận lợi để hoàn thành nhiệm vụ học tập luận văn Hà nội, ngày 10 tháng 10 năm 2014 Học viên Thang Văn Đạt TIEU LUAN MOI download : skknchat@gmail.com LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi Các kết nêu luận văn trung thực chƣa đƣợc cơng bố cơng trình khác Tác giả luận văn Học viên Thang Văn Đạt TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN DANH SÁCH HÌNH VẼ .7 DANH SÁCH BẢNG MỞ ĐẦU Chƣơng KỸ THUẬT MƠ HÌNH VỈA NỨT NẺ LIÊN TỤC .3 1.1 Vỉa nứt nẻ tự nhiên 1.1.1 Mô hình vỉa .3 1.2 Kỹ thuật mơ hình nứt nẻ liên tục - CFM .5 1.2.1 Xếp hạng yếu tố ảnh hƣởng tới nứt nẻ .6 1.2.2 Huấn luyện kiểm tra mơ hình 1.2.3 Mô xây số nứt nẻ hệ lƣới địa chất Chƣơng CÁC CƠNG CỤ TRÍ TUỆ NHÂN TẠO DÙNG TRONG MƠ HÌNH NỨT NẺ LIÊN TỤC – CFM 10 2.1 Logic mờ xếp hạng thông số đầu vào cƣờng độ nứt nẻ 10 2.2 Mạng thần kinh nhân tạo xây dựng cƣờng độ nứt nẻ 17 2.2.1 Cấu trúc mơ hình neuron sinh học 18 2.2.2 Cấu trúc mơ hình neuron nhân tạo 19 2.2.3 Cấu tạo phƣơng thức làm việc mạng neural nhân tạo – ANN 21 2.2.4 Các luật học 23 2.2.4.5 Mạng neural nhân tạo nhiều lớp truyền thằng 25 2.2.6 Thiết kế cấu trúc mạng neural nhân tạo nhiều lớp truyền thẳng 26 2.2.7 Thuật toán lan truyền ngƣợc 28 Chƣơng XÂY DỰNG CHƢƠNG TRÌNH MÁY TÍNH 37 3.1 Modul IMPORTS.F90 38 3.1.1 SUBROUTINE GET_UNIT 38 3.1.2 SUBROUTINE REMOVE_TRAILING_BLANK 38 3.1.3 SUBROUTINE SKIP_COMMENT_AND_NUMBER .39 3.1.4 SUBROUTINE SKIP_COMMENT(STR, GTL) 39 TIEU LUAN MOI download : skknchat@gmail.com 3.1.5 SUBROUTINE READ_SUPPORT_PROPERTIES 39 3.1.6 SUBROUTINE READ_FILE_ECLIPSE .39 3.1.7 SUBROUTINE READ_FILE_CMG 40 3.2 Modul RANKS.F90 41 3.2.21 SUBROUTINE READ_IO_FOR_RANKING 42 3.2.2 SUBROUTINE RANKS .43 3.2.3 SUBROUTINE WRITE_COMMAND_FILE .44 3.2.4 SUBROUTINE RUN_GNUPLOT .45 3.3 Modul NEURALNETWORK.F90 45 3.4 Modul EXPORT.F90 45 Chƣơng ÁP DỤNG THỬ NGHIỆM 47 4.1 Mỏ Teapot Dome 47 4.1.1 Dữ liệu đầu vào .48 KẾT LUẬN 62 DANH MỤC CÁC CƠNG TRÌNH CỦA TÁC GIẢ 64 LIÊN QUAN ĐẾN TÀI LIỆU 64 TÀI LIỆU THAM KHẢO .65 PHỤ LỤC 68 TIEU LUAN MOI download : skknchat@gmail.com DANH SÁCH HÌNH VẼ   x  Hình 2.1: Mặt y  a  x1  2   Hình 2.2: Mặt cắt y x1 , x2 * k   (*) (a), mặt cắt y  f x1 , x2 điểm x1(*) (b) 11  (a), hình chiếu điểm mặt cắt (a) lên mặt x1  y (b) 12 Hình 2.3: Mặt cắt điểm x1  .13 * Hình 2.4: Đƣờng cong fuzzy trung bình thu đƣợc thay lần lƣợt x1   x1  , k  1, m 14 * k Hình2.5: Mặt cắt điểm x2  14 k Hình 2.6: Đƣờng fuzzy trung bình thu đƣợc x2  thay đổi lần lƣợt * x2  , k  1, m 15 k Hình 2.7: Hàm liên thuộc tập mờ lân cận xi  16 * Hình 2.8: Ảnh neuron sinh học 18 Hình 2.9: Mơ hình neuron nhân tạo .19 Hình 2.10: Hàm truyền nhị phân 20 Hình 2.11: Hàm truyền phân cực 20 Hình 2.12: Hàm truyền sigmoid 21 Hình 2.13: Mạng thần kinh nhân tạo nhiều lớp truyền thẳng 22 Hình 2.14: Mang thần kinh nhân tạo quy hồi 23 Hình 2.15: Sơ đồ luật học có giám sát 24 Hình 2.16: Sơ đồ luật học không giám sát .24 Hình 2.17: Mạng thần kinh nhân tạo lớp truyền thẳng .25 Hình 2.18: Mạng neural nhân tạo lớp truyền thẳng 33 Hình 3.1: Sơ đồ hoạt động chƣơng trình .38 Hình 3.2: Sơ đồ đọc file định dạng Eclipse 40 Hình 3.3: Sơ đồ đọc file định dạng CMG 41 Hình 3.4: Lƣợc đồ hoạt đột chƣơng trình đọc file chứa tên tính chất .43 Hình 3.5: Lƣợc đồ chƣơng trình RANKS 44 Hình 3.6: Lƣợc đồ hoạt động modul NEURALNETWORK.F90 45 TIEU LUAN MOI download : skknchat@gmail.com Hình 4.1: Khoảng cách tới đứt gãy 48 Hình 4.2: Zones .49 Hình 4.3: Góc cắm (Dipangle) 49 Hình 4.4: Phƣơng vị (Dipazimuth) 50 Hình 4.5: Độ cong gauss .50 Hình 4.8: so sánh kết 53 Hình 4.8: Đồ thị tỷ lệ ô lƣới tƣơng ứng với khoảng nứt nẻ ban đầu .54 Hình 4.9: Đồ thị phân trăm số ô lƣới tƣơng ứng với khoảng nứt nẻ xây dựng modul “train estimation model” phần mềm Petrel 54 Hình 4.10: Đồ thị phân trăm số ô lƣới tƣơng ứng với khoảng nứt nẻ xây dựng chƣơng trình tự viết 55 Hình 4.11: So sánh kết tập liệu luyện tập, 56 kiểm tra, xác nhận; y cƣờng độ nứt nẻ tính từ ANN, 56 d liệu thực tế 56 Hình 4.13: Độ rỗng mỏ Bạch hổ 59 Hình 4.14: Khoảng cách tới đứt gãy mỏ Bạch Hổ 60 Hình 4.15: Độ thấm theo phƣơng x giếng .61 TIEU LUAN MOI download : skknchat@gmail.com DANH SÁCH BẢNG Bảng 1.1: Các thông số đầu vào cho mơ hình CFM Bảng 3.1: File vào cho chƣơng trình máy tính 37 Bảng 4.1: Xếp hạng ảnh hƣởng thông số đầu vào 51 Hình 4.6: Sai số tập huấn luyện phần mềm tự viết .52 Hình 4.7: Sai số tập kiểm tra phần mềm tự viết 52 Bảng 4.2: Kết xếp hạng ảnh hƣởng thông số đầu vào độ thấm theo phƣơng x 61 TIEU LUAN MOI download : skknchat@gmail.com MỞ ĐẦU Ngành cơng nghiệp dầu khí Việt Nam hình thành phát triển vào năm 80 kỷ trƣớc, với thời gian chƣa nhiều so với nƣớc có cơng nghiệp dầu khí phát triển, nhƣng đạt đƣợc nhiều thành tích đáng trân trọng Ngồi thuận lợi phát triển sau nên tiếp thu đƣợc nhiều thành tựu tiên tiến giới, cịn có khó khăn nhƣ phần lớn vỉa có trữ lƣợng lớn Việt Nam thƣờng nằm tầng đá móng granite chứa nứt nẻ tự nhiên, gặp giới, có thuộc tính vỉa phức tạp, độ bất đồng cao gây nhiều khó khăn cho cơng tác quy hoạch phát triển nâng cao hiệu suất khai thác Với nỗ lực nhà khoa học Việt Nam, đặc biệt ngành dầu khí, nghiên cứu khoa học công nghệ trực tiếp phục vụ cho phát triển vỉa tầng móng thu đƣợc nhiều thành tựu góp phần khai thác hiệu vỉa tầng móng phức tạp, đóng góp phần lớn vào sản lƣợng khai thác hàng năm Việt Nam, đƣa ngành cơng nghiệp dầu khí trở thành ngành có đóng góp quan trọng phát triển kinh tế xã hội nƣớc nhà Tuy nhiên, trƣớc yêu cầu ngày cao nâng cao hiệu suất khai thác cho vỉa nứt nẻ này, nghiên cứu đặc trƣng kỹ thuật mơ hình mơ kinh tế kỹ thuật khai thác vỉa cần phải đƣợc phát triển để kết đặc trƣng vỉa đảm bảo tính khoa học, độ xác đặc biệt phải xây dựng đƣợc quy trình, cơng nghệ rõ ràng để áp dụng hiệu cho vỉa khác Khi giải toán xác định đặc trƣng thấm chứa vỉa nứt nẻ tự nhiên (NFR), phƣơng pháp địa thống kê truyền thống thƣờng tỏ xác [6] Trong năm gần phƣơng pháp mơ hình hóa đƣợc phát triển mơ hình vỉa nứt nẻ liên tục (CFM) để xác định đặc trƣng nứt nẻ Trong vỉa có kể đến hiệu ứng nứt nẻ nhiều quy mơ, đồng thời, mơ hình tích hợp tất thơng tin từ nhiều nguồn, bao gồm mẫu lõi, logs giếng, ảnh địa chấn, liệu kiểm tra giếng [1] [7] [8] Luận văn tập trung nghiên cứu, khảo sát kỹ thuật mô hình vỉa nứt nẻ liên tục (CFM) Trong gồm có: kỹ thuật xếp hạng sử dụng đƣờng cong fuzzy trung bình (mean fuzzy curve); phƣơng pháp học máy mạng neural nhân tạo Nâng cao chất lƣợng kỹ thuật mơ hình nứt nẻ liên tục (CFM), áp dụng vào toán xác định đặc trƣng nứt nẻ vỉa nứt nẻ tự nhiên Luận văn tập trung khảo sát số cơng trình TIEU LUAN MOI download : skknchat@gmail.com 71 DO K = 1, NUMBER_GLOBAL_P IF (PO(J).EQ.GLOBAL_PROPERTIES(K)) THEN GOTO 30 END IF END DO PRINT*, 'TU KHOA '//PO(J)//' KHONG HO TRO' STOP 30 CONTINUE END DO END IF 21 CONTINUE CLOSE(UNIT = 5) ELSE WRITE(IWR, 20) END IF RETURN 20 FORMAT('SAI TEN FILE, HOAC SAI DUONG DAN') 22 FORMAT('CHUONG TRINH HIEN KHONG HO TRO TU KHOA NAY') END SUBROUTINE READ_IO_P_FOR_ANN SUBROUTINE NORMALIZATION(ARRAY, NI, NJ, NK, NPI, MAXI, MINI, MAXO, MINO) INTEGER, INTENT(IN) :: NI, NJ, NK, NPI REAL(8), DIMENSION(NPI), INTENT(IN) :: MAXI, MINI, MAXO, MINO REAL(8), DIMENSION(NI, NJ, NK, NPI), INTENT(INOUT) :: ARRAY INTEGER :: I, J, K, L DO L = 1, NPI DO K = 1, NK DO J = 1, NJ DO I = 1, NI IF (ARRAY(I, J, K, L) NE - 9999) THEN ARRAY(I, J, K, L) = (ARRAY(I, J, K, L) MINI(L))*(MAXO(L) - MINO(L))/(MAXI(L) - MINI(L)) + MINO(L) END IF END DO END DO END DO END DO RETURN END SUBROUTINE NORMALIZATION SUBROUTINE NEURAL_NETWORK(PROPERTIES, GLOBAL_PROPERTIES, NI, NJ, NK) IMPLICIT NONE INTEGER, INTENT(IN) :: NI, NJ, NK REAL(8), DIMENSION(NI, NJ, NK, NUMBER_GLOBAL_P), INTENT(INOUT) :: PROPERTIES TIEU LUAN MOI download : skknchat@gmail.com 72 CHARACTER(LEN = 50), DIMENSION(NUMBER_GLOBAL_P), INTENT(IN) :: GLOBAL_PROPERTIES REAL(8), ALLOCATABLE :: INPUT(:,:,:,:), & OUTPUT(:,:,:,:) REAL(8), ALLOCATABLE :: BUFF(:,:,:), & MAXI(:), MINI(:), MAXO(:), MINO(:), MAX_T(:), MIN_T(:) INTEGER :: I, J, K, L, M, NS, N INTEGER, ALLOCATABLE :: SAMPLE(:,:), RVEC(:) REAL(8), ALLOCATABLE :: W1(:,:), W2(:,:), W3(:,:), SW1(:,:), SW2(:,:), SW3(:,:), & GA1(:,:), GA2(:,:), GA3(:,:), GR1(:,:), GR2(:,:), GR3(:,:) REAL(8) :: R INTEGER :: NTR_MIN, NTR_MAX, NTE_MIN, NTE_MAX, & NVA_MIN, NVA_MAX CHARACTER(LEN = 200) :: COMMAND INTEGER(KIND = 4) :: STATUS INTEGER(KIND = 4) :: SYSTEM REAL(8), ALLOCATABLE :: X(:), Y(:), Z1(:), Z2(:), Z3(:) REAL(8) :: ERROR1, ERR, ERROR, ERROR2 INTEGER :: ITER FNS = 'NETWORK_STRUCTURE.TXT' FPI = 'PROPERTIES_INPUT_FOR_ANN.TXT' FPO = 'PROPERTIES_OUTPUT_FOR_ANN.TXT' CALL READ_NETWORK_STRUCT(FNS, NHU, EPS, PERCENT) CALL READ_IO_P_FOR_ANN(FPI, FPO, NPI, NPO, NUMBER_GLOBAL_P, GLOBAL_PROPERTIES, PI, PO) ALLOCATE (INPUT(NI, NJ, NK, NPI)) ALLOCATE (OUTPUT(NI, NJ, NK, NPO)) DO I = 1, NUMBER_GLOBAL_P DO J = 1, NPI IF (PI(J) EQ (GLOBAL_PROPERTIES(I))) THEN INPUT(:,:,:, J) = PROPERTIES(:,:,:, I) ELSE END IF END DO DO K = 1, NPO IF (PO(K) EQ (GLOBAL_PROPERTIES(I))) THEN OUTPUT(:,:,:, K) = PROPERTIES(:,:,:, I) ELSE END IF END DO END DO M=0 DO K = 1, NK DO J = 1, NJ DO I = 1, NI DO L = 1, NPO IF (OUTPUT(I, J, K, L) EQ - 9999) THEN TIEU LUAN MOI download : skknchat@gmail.com 73 GOTO 100 END IF END DO DO L = 1, NPI IF (INPUT(I, J, K, L) EQ - 9999) THEN GOTO 100 END IF END DO M=M+1 ! WRITE(IWR,*) 'DEM MAU: ',M 100 CONTINUE END DO END DO END DO NS = M ALLOCATE(SAMPLE(3, NS)) M=0 DO K = 1, NK DO J = 1, NJ DO I = 1, NI DO L = 1, NPO IF (OUTPUT(I, J, K, L) EQ - 9999) THEN GOTO 101 END IF END DO DO L = 1, NPI IF (INPUT(I, J, K, L) EQ - 9999) THEN GOTO 101 END IF END DO M=M+1 SAMPLE(1, M) = I SAMPLE(2, M) = J SAMPLE(3, M) = K 101 CONTINUE END DO END DO END DO PRINT*, 'TONG SO ', NS ! CHON MAU N=0 CONTINUE CALL RANDOM_NUMBER(R) L = INT(R*(NS))+1 CONTINUE CALL RANDOM_NUMBER(R) M = INT(R*(NS))+1 PRINT*, M, L TIEU LUAN MOI download : skknchat@gmail.com 74 I = SAMPLE(1,L) J = SAMPLE(2,L) K = SAMPLE(3,L) SAMPLE(1,L) = SAMPLE(1,M) SAMPLE(2,L) = SAMPLE(2,M) SAMPLE(3,L) = SAMPLE(3,M) SAMPLE(1,M) = I SAMPLE(2,M) = J SAMPLE(3,M) = K N = N+1 IF (N.GE.(NS)) GOTO GOTO CONTINUE ALLOCATE (RVEC(NS)) CALL RANDOM_IVEC(1, NS, NS, RVEC) WRITE(IWR, *) 'KHOI TAO TRONG SO' ! KHAI BAO CAC MA TRAN TRONG SO ALLOCATE (W1(NHU, 0:NPI)) ALLOCATE (W2(NHU, 0:NHU)) ALLOCATE (W3(NPO, 0:NHU)) ALLOCATE (SW1(NHU, 0:NPI)) ALLOCATE (SW2(NHU, 0:NHU)) ALLOCATE (SW3(NPO, 0:NHU)) ALLOCATE (GR1(NHU, 0:NPI)) ALLOCATE (GR2(NHU, 0:NHU)) ALLOCATE (GR3(NPO, 0:NHU)) ALLOCATE (GA1(NHU, 0:NPI)) ALLOCATE (GA2(NHU, 0:NHU)) ALLOCATE (GA3(NPO, 0:NHU)) ! KHOI TAO GIA TRI NGAU NHIEN BAN DAU CHO CAC MA TRAN TRONG SO CALL RANDOM_NUMBER(W1) CALL RANDOM_NUMBER(W2) CALL RANDOM_NUMBER(W3) ! W1 = 0.5 ! W2 = 0.5 ! W3 = 0.5 ! DONG BANG DO K=1,NHU DO J=0,NHU IF (J.EQ.0 OR J.EQ.K) THEN ELSE W2(K,J)=0 END IF END DO END DO SW1 = W1 SW2 = W2 TIEU LUAN MOI download : skknchat@gmail.com 75 SW3 = W3 NTR_MIN = NTR_MAX = INT(NS * PERCENT/100) NTE_MIN = NTR_MAX + NTE_MAX = NTR_MAX + INT((NS - NTR_MAX)/2) NVA_MIN = NTE_MAX + NVA_MAX = NS ALLOCATE (X(0:NPI)) ALLOCATE (Z3(NPO)) ALLOCATE (Z1(0:NHU)) ALLOCATE (Z2(0:NHU)) ALLOCATE (Y(NPO)) ALLOCATE(BUFF(NI, NJ, NK)) ALLOCATE(MAXI(NPI)) ALLOCATE(MINI(NPI)) ALLOCATE(MAXO(NPO)) ALLOCATE(MINO(NPO)) ALLOCATE(MAX_T(NPI)) ALLOCATE(MIN_T(NPI)) DO I = 1, NPI BUFF(:,:,:) = INPUT(:,:,:, I) MAXI(I) = MAXVAL(BUFF) CALL MINIMUM_MATRIX(NI, NJ, NK, BUFF, MINI(I)) END DO MAX_T = MIN_T = -1 CALL NORMALIZATION(INPUT, NI, NJ, NK, NPI, MAXI, MINI, MAX_T, MIN_T) DEALLOCATE(MAX_T) DEALLOCATE(MIN_T) ALLOCATE(MAX_T(NPO)) ALLOCATE(MIN_T(NPO)) DO I = 1, NPO BUFF(:,:,:) = OUTPUT(:,:,:, I) MAXO(I) = MAXVAL(BUFF) CALL MINIMUM_MATRIX(NI, NJ, NK, BUFF, MINO(I)) END DO PRINT *, 'MAX ', MAXO(1) MAX_T = MIN_T = CALL NORMALIZATION(OUTPUT, NI, NJ, NK, NPO, MAXO, MINO, MAX_T, MIN_T) ITER = ERROR1 = 10 GA1 = 0.5 GA2 = GA1 GA3 = GA2 GR1 = TIEU LUAN MOI download : skknchat@gmail.com 76 GR2 = GR1 GR3 = GR2 OPEN (UNIT = 20, FILE = 'ERROR.TXT') OPEN (UNIT = 22, FILE = 'VALIDATION.TXT') 500 X(0) = -1 ERROR2 = DO I = NTE_MIN, NTE_MAX DO J = 1, NPI X(J) = INPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO DO J = 1, NPO Y(J) = OUTPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO CALL FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) CALL EFUNCTION(Z3, Y, ERR) ERROR2 = ERROR2 + ERR END DO ERROR2 = ERROR2 /(NTE_MAX - NTE_MIN) WRITE(IWR,*) 'TESTING ', ERROR2 IF ((ERROR2 GE EPS).AND.(ERROR2.LE.ERROR1)) THEN ITER = ITER + ERROR1 = ERROR2 ERROR = DO I = NTR_MIN, NTR_MAX X(0) = -1 DO J = 1, NPI X(J) = INPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO DO J = 1, NPO Y(J) = OUTPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO SW1 = W1 SW2 = W2 SW3 = W3 CALL FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) CALL BACKWARD_RPROPAGATION(NPI, NPO, NHU, W1, W2, W3, GR3, GR2, GR1,& GA1, GA2, GA3, X, Z1, Z2, Z3, Y) CALL FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) CALL EFUNCTION(Z3, Y, ERR) ERROR = ERROR + ERR END DO ERROR = ERROR/(NTR_MAX-NTR_MIN) WRITE(IWR,*) 'TRAINING ', ERROR TIEU LUAN MOI download : skknchat@gmail.com 77 WRITE(20,*) ERROR, ERROR2 GOTO 500 ELSE W1 = SW1 W2 = SW2 W3 = SW3 PRINT *, 'SO LAN LAP', ITER OPEN (3, FILE = 'MOPHONG', STATUS = 'UNKNOWN', ACTION = 'WRITE') ERROR = DO I = 1, NVA_MAX X(0) = DO J = 1, NPI X(J) = INPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO DO J = 1, NPO Y(J) = OUTPUT(SAMPLE(1, RVEC(I)), SAMPLE(2, RVEC(I)), SAMPLE(3, RVEC(I)), J) END DO CALL FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) WRITE(3, *) Z3, Y WRITE(22,*) Y, Z3 CALL EFUNCTION(Z3, Y, ERR) ERROR = ERROR + ERR END DO CLOSE (3) WRITE(IWR, *) 'XAC NHAN ERROR = ', ERROR/NVA_MAX !(NVA_MAX - NVA_MIN) ! TIEN HANH TINH TOAN MO PHONG DO K = 1, NK DO J = 1, NJ DO I = 1, NI DO L = 1, NPI IF (INPUT(I, J, K, L) EQ - 9999) THEN GOTO 700 END IF END DO X(0) = -1 DO L = 1, NPI X(L) = INPUT(I, J, K, L) END DO CALL FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) DO L = 1, NPO OUTPUT(I, J, K, L) = Z3(L) END DO 700 CONTINUE TIEU LUAN MOI download : skknchat@gmail.com 78 END DO END DO END DO end if CALL NORMALIZATION(OUTPUT, NI, NJ, NK, NPO, MAX_T, MIN_T, MAXO, MINO) 800 continue DO I = 1, NPO DO J = 1, NUMBER_GLOBAL_P IF (PO(I) EQ GLOBAL_PROPERTIES(J)) THEN PROPERTIES(:,:,:, J) = OUTPUT(:,:,:, I) END IF END DO END DO CLOSE (UNIT = 20) CLOSE(UNIT =22) OPEN (UNIT = 23, FILE = 'COMMAND_PLOT_SAMPLE.TXT') WRITE(23,*) 'set autoscale' WRITE(23,*) 'plot ''ERROR.TXT'' u w l title ''error in train group''' WRITE(23,*) 'set terminal png ' WRITE(23,*) 'set output ''errortrain.png'' ' WRITE(23,*) 'replot' WRITE(23,*) 'reset' WRITE(23,*) 'set autoscale' WRITE(23,*) 'plot ''ERROR.TXT'' u w l title ''error in test group'' ' WRITE(23,*) 'set terminal png' WRITE(23,*) 'set output ''errortest.png'' ' WRITE(23,*) 'replot' WRITE(23,*) 'reset' WRITE(23,*) 'set autoscale' WRITE(23,*) 'plot ''VALIDATION.TXT'' u w l title ''d'',\' WRITE(23,*) ' ''VALIDATION.TXT'' u w l title ''y''' WRITE(23,*) 'set terminal png ' WRITE(23,*) 'set output ''validation.png'' ' WRITE(23,*) 'replot' WRITE(23,*) 'reset' CLOSE (UNIT = 23) WRITE(COMMAND, *) 'gnuplot -persist COMMAND_PLOT_SAMPLE.TXT ' STATUS = SYSTEM(TRIM(COMMAND)) RETURN !200 FORMAT(I2,2X,I2,2X,I2) END SUBROUTINE NEURAL_NETWORK SUBROUTINE EFUNCTION(Y, D, ERR) REAL(8), INTENT(IN) :: Y(:), D(:) REAL(8), INTENT(OUT) :: ERR INTEGER :: I, NPO TIEU LUAN MOI download : skknchat@gmail.com 79 REAL(8) :: SUM NPO = SIZE(Y) IF (NPO NE SIZE(D)) THEN PRINT *, 'ERROR, ' STOP END IF SUM = DO I = 1, NPO SUM = SUM + (D(I) - Y(I))**2 END DO ERR = 0.5*SQRT(SUM) RETURN END SUBROUTINE EFUNCTION SUBROUTINE FORWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3) INTEGER, INTENT(IN) :: NPI, NPO, NHU REAL(8), INTENT(IN) :: X(0:NPI) REAL(8), INTENT(OUT) :: Z3(NPO), Z1(0:NHU), Z2(0:NHU) REAL(8), INTENT(IN) :: W1(NHU, 0:NPI), W2(NHU, 0:NHU), W3(NPO, 0:NHU) INTEGER :: I, J, K REAL(8) :: SUM Z1(0) = -1 Z2(0) = -1 ! TIN HIEU LAN TRUYEN QUA LOP THU NHAT DO I = 1, NHU SUM = DO J = 0, NPI SUM = SUM + W1(I, J) * X(J) END DO Z1(I) = 1/(1 + EXP(-SUM)) END DO ! TIN HIEU LAN TRUYEN QUA LOP THU DO I = 1, NHU SUM = DO J = 0, NHU SUM = SUM + W2(I, J) * Z1(J) END DO Z2(I) = 1/(1 + EXP(-SUM)) END DO ! TIN HIEU LAN TRUYEN QUA LOP THU DO I = 1, NPO SUM = DO J = 0, NHU SUM = SUM + W3(I, J) * Z2(J) END DO Z3(I) = 1/(1 + EXP(-SUM)) END DO RETURN TIEU LUAN MOI download : skknchat@gmail.com 80 END SUBROUTINE FORWARD SUBROUTINE BACKWARD(NPI, NPO, NHU, W1, W2, W3, X, Z1, Z2, Z3, Y) INTEGER, INTENT(IN) :: NPI, NPO, NHU REAL(8), INTENT(IN) :: X(0:NPI), Z1(0:NHU), Z2(0:NHU), Z3(NPO), Y(NPO) REAL(8), INTENT(INOUT) :: W1(NHU, 0:NPI), W2(NHU, 0:NHU), W3(NPO, 0:NHU) INTEGER :: I, J, K, L, M, N, R REAL(8) :: SU, SU1 REAL(8), DIMENSION(NHU, 0:NPI) :: GRAD1, DELTA1 REAL(8), DIMENSION(NHU, 0:NHU) :: GRAD2, DELTA2, FROZEN REAL(8), DIMENSION(NPO, 0:NHU) :: GRAD3, DELTA3 ! BACKWAR AND UPDATE WEIGHT3 MATRIX DO M = 1, NPO DO N = 0, NHU ! GRADIEN OF ERROR FUNCTION GRAD3(M, N) = -(Y(M) - Z3(M)) * Z3(M)*(1 - Z3(M)) * Z2(N) ! LEARNING COEFFICIENT: ALPHA=0.5 DELTA3(M, N) = -0.5 * GRAD3(M, N) END DO END DO ! BACKWAR AND UPDATE WEIGHT2 MATRIX DO L = 1, NHU DO K = 0, NHU SU = DO R = 1, NPO SU = SU + (Y(R) - Z3(R)) * Z3(R)*(1 - Z3(R)) * W3(R, L) END DO ! GRADIENT OF ERROR FUNCTION AT (L,K) GRAD2(L, K) = -SU * Z2(L)*(1 - Z2(L)) * Z1(K) DELTA2(L, K) = -0.5 * GRAD2(L, K) END DO END DO DO J = 1, NHU DO I = 0, NPI SU = DO R = 1, NPO SU1 = DO K = 1, NHU SU1 = SU1 + W3(R, K) * Z2(K)*(1 - Z2(K)) * W2(K, J) END DO SU = SU + (Y(R) - Z3(R)) * Z3(R)*(1 - Z3(R)) * SU1 END DO GRAD1(J, I) = -SU * Z1(J)*(1 - Z1(J)) * X(I) ! LEARNING COEFFICIENT: ALPHA=0.5 DELTA1(J, I) = -0.5 * GRAD1(J, I) END DO TIEU LUAN MOI download : skknchat@gmail.com 81 END DO W3 = W3 + DELTA3 W2 = W2 + DELTA2 DO K=1,NHU DO J=0,NHU IF (J.EQ.0 OR J.EQ.K) THEN ELSE W2(K,J)=0 END IF END DO END DO W1 = W1 + DELTA1 RETURN END SUBROUTINE BACKWARD SUBROUTINE FREEZE_MATRIX(N, M, MATRIX) INTEGER, INTENT(IN) :: N, M REAL(8), INTENT(INOUT) :: MATRIX(N, 0:M) INTEGER :: I, J DO I = 1, N DO J = 0, M IF ((J EQ 0).OR.(J EQ I).OR.(J EQ (1 + MOD(I + N - 4, N)))) THEN ELSE MATRIX(I, J) = END IF END DO END DO RETURN END SUBROUTINE FREEZE_MATRIX SUBROUTINE RANDOM_IVEC(MIN, MAX, N, IVEC) INTEGER, INTENT(IN) :: N, MIN, MAX INTEGER, DIMENSION(N), INTENT(OUT) :: IVEC INTEGER :: I, J, K REAL(8) :: R DO K = 1, N 102 CALL RANDOM_NUMBER(R) J = INT(R * (MAX + - MIN)) + MIN DO I = 1, K IF (J EQ IVEC(I)) THEN GOTO 102 ELSE END IF END DO IVEC(K) = J END DO RETURN END SUBROUTINE RANDOM_IVEC SUBROUTINE MINIMUM_MATRIX(NI, NJ, NK, MATRIX, MINIMUM) TIEU LUAN MOI download : skknchat@gmail.com 82 INTEGER, INTENT(IN) :: NI, NJ, NK REAL(8), DIMENSION(NI, NJ, NK), INTENT(IN) :: MATRIX INTEGER :: I, J, K REAL(8), INTENT(OUT) :: MINIMUM MINIMUM = 1000000 DO K = 1, NK DO J = 1, NJ DO I = 1, NI IF ((MINIMUM GT MATRIX(I, J, K)).AND.(MATRIX(I, J, K) NE - 9999)) THEN MINIMUM = MATRIX(I, J, K) END IF END DO END DO END DO RETURN END SUBROUTINE MINIMUM_MATRIX SUBROUTINE BACKWARD_RPROPAGATION(NPI, NPO, NHU, W1, W2, W3, GR3, GR2, GR1,& GA1, GA2, GA3, X, Z1, Z2, Z3, Y) INTEGER, INTENT(IN) :: NPI, NPO, NHU REAL(8), INTENT(IN) :: X(0:NPI), Z1(0:NHU), Z2(0:NHU), Z3(NPO), Y(NPO) REAL(8), INTENT(INOUT) :: W1(NHU, 0:NPI), W2(NHU, 0:NHU), W3(NPO, 0:NHU) REAL(8), INTENT(INOUT) :: GR1(NHU, 0:NPI), GR2(NHU, 0:NHU), GR3(NPO, 0:NHU) REAL(8), INTENT(INOUT) :: GA1(NHU, 0:NPI), GA2(NHU, 0:NHU), GA3(NPO, 0:NHU) INTEGER :: I, J, K, L, M, N, R REAL(8) :: SU, SU1 REAL(8), DIMENSION(NHU, 0:NPI) :: DELTA1, GRAD1, GAMA1 REAL(8), DIMENSION(NHU, 0:NHU) :: FROZEN, DELTA2, GRAD2, GAMA2 REAL(8), DIMENSION(NPO, 0:NHU) :: DELTA3, GRAD3, GAMA3 REAL(8) :: UP, DOWN, DMAX, DMIN UP = 1.1 DOWN = 1/UP DMAX = 50 DMIN = 0.0001 ! BACKWAR AND UPDATE WEIGHT3 MATRIX DO M = 1, NPO DO N = 0, NHU ! GRADIEN OF ERROR FUNCTION GRAD3(M, N) = -(Y(M) - Z3(M)) * Z3(M)*(1 - Z3(M)) * Z2(N) END DO END DO ! BACKWAR AND UPDATE WEIGHT2 MATRIX TIEU LUAN MOI download : skknchat@gmail.com 83 ! ! ! ! DO L = 1, NHU DO K = 0, NHU SU = DO R = 1, NPO SU = SU + (Y(R) - Z3(R)) * Z3(R)*(1 - Z3(R)) * W3(R, L) END DO GRAD2(L, K) = -SU * Z2(L)*(1 - Z2(L)) * Z1(K) END DO END DO DO J = 1, NHU DO I = 0, NPI SU = DO R = 1, NPO SU1 = DO K = 1, NHU SU1 = SU1 + W3(R, K) * Z2(K)*(1 - Z2(K)) * W2(K, J) END DO SU = SU + (Y(R) - Z3(R)) * Z3(R)*(1 - Z3(R)) * SU1 END DO GRAD1(J, I) = -SU * Z1(J)*(1 - Z1(J)) * X(I) END DO END DO TINH VOI LOP NGOAI CUNG CAP NHAT HE SO HOC: GAMA3 DO M = 1, NPO DO N = 0, NHU IF (GRAD3(M,N)*GR3(M,N) GT 0) THEN GAMA3(M,N) = DMIN1(GA3(M,N)*UP,DMAX) ELSE IF (GRAD3(M,N)*GR3(M,N) LT 0) THEN GAMA3(M,N) = DMAX1(GA3(M,N)*DOWN,DMIN) ELSE GAMA3(M,N) = GA3(M,N) END IF END DO END DO CAP NHAT PHAN UPDATE: DELTA3 DO M = 1, NPO DO N = 0, NHU IF (GRAD3(M,N)*GR3(M,N) GE 0) THEN DELTA3(M,N) = -SIGN(GA3(M,N),GR3(M,N)) IF (GRAD3(M,N) EQ ) DELTA3(M,N) = ELSE DELTA3(M,N) = GRAD3(M,N) = END IF END DO END DO CAP NHAT W3 TIEU LUAN MOI download : skknchat@gmail.com 84 W3 = W3 + DELTA3 ! SAO LUU GR3 = GRAD3 GA3 = GAMA3 ! TINH VOI LOP AN THU HAI ! CAP NHAT HE SO HOC: GAMA2 DO M = 1, NHU DO N = 0, NHU IF (GRAD2(M,N)*GR2(M,N) GT 0) THEN GAMA2(M,N) = DMIN1(GA2(M,N)*UP,DMAX) ELSE IF (GRAD2(M,N)*GR2(M,N) LT 0) THEN GAMA2(M,N) = DMAX1(GA2(M,N)*DOWN,DMIN) ELSE GAMA2(M,N) = GA2(M,N) END IF END DO END DO ! CAP NHAT PHAN UPDATE: DELTA2 DO M = 1, NHU DO N = 0, NHU IF (GRAD2(M,N)*GR2(M,N) GE 0) THEN DELTA2(M,N) = -SIGN(GA2(M,N),GR2(M,N)) IF (GRAD2(M,N) EQ ) DELTA2(M,N) = ELSE DELTA2(M,N) = GRAD2(M,N) = END IF END DO END DO ! CAP NHAT W2 W2 = W2 + DELTA2 ! CALL FREEZE_MATRIX(NHU, NHU, W2) DO K=1,NHU DO J=0,NHU ! IF (J.EQ.0) THEN ! ELSE IF (J.EQ.K) THEN ! ELSE IF (J.EQ.(MOD(K+NHU-4,NHU)+1)) THEN ! ELSE IF (J.EQ.0 OR J.EQ.K) THEN ELSE W2(K,J)=0 END IF ! END IF END DO END DO ! SAO LUU GR2 = GRAD2 GA2 = GAMA2 TIEU LUAN MOI download : skknchat@gmail.com 85 ! TINH VOI LOP AN THU NHAT ! CAP NHAT HE SO HOC: GAMA1 DO M = 1, NHU DO N = 0, NPI IF (GRAD1(M,N)*GR1(M,N) GT 0) THEN GAMA1(M,N) = DMIN1(GA1(M,N)*UP,DMAX) ELSE IF (GRAD1(M,N)*GR1(M,N) LT 0) THEN GAMA1(M,N) = DMAX1(GA1(M,N)*DOWN,DMIN) ELSE GAMA1(M,N) = GA1(M,N) END IF END DO END DO ! CAP NHAT PHAN UPDATE: DELTA1 DO M = 1, NHU DO N = 0, NPI IF (GRAD1(M,N)*GR1(M,N) GE 0) THEN DELTA1(M,N) = -SIGN(GA1(M,N),GR1(M,N)) IF (GRAD1(M,N) EQ ) DELTA1(M,N) = ELSE DELTA1(M,N) = GRAD1(M,N) = END IF END DO END DO ! CAP NHAT W1 W1 = W1 + DELTA1 ! SAO LUU GR1 = GRAD1 GA1 = GAMA1 RETURN END SUBROUTINE BACKWARD_RPROPAGATION END MODULE NEURALNETWORK TIEU LUAN MOI download : skknchat@gmail.com ... THANG VĂN ĐẠT NGHIÊN CỨU, CẢI THIỆN KỸ THUẬT MƠ HÌNH VỈA NỨT NẺ LIÊN TỤC (CFM), ÁP DỤNG CHO MỎ CỦA VIỆT NAM Ngành Chuyên ngành Mã số : Cơ học kỹ thuật : Cơ học kỹ thuật : 60 52 01 01 LUẬN VĂN THẠC... Chƣơng KỸ THUẬT MƠ HÌNH VỈA NỨT NẺ LIÊN TỤC .3 1.1 Vỉa nứt nẻ tự nhiên 1.1.1 Mơ hình vỉa .3 1.2 Kỹ thuật mơ hình nứt nẻ liên tục - CFM .5 1.2.1... hình địa chất đƣợc áp dụng phổ biến nhƣ mơ hình địa học, mơ hình mạng nứt nẻ rời rạc (DFN), mơ hình nứt nẻ liên tục, … làm việc với vỉa nứt nẻ tự nhiên (NFR) mô hình nứt nẻ liên tục – CFM tỏ có hiểu

Ngày đăng: 27/06/2022, 15:41

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

  • Đang cập nhật ...

Tài liệu liên quan