Nghiên cứu mô phỏng và tính toán trường nhiệt khi hàn Nghiên cứu mô phỏng và tính toán trường nhiệt khi hàn Nghiên cứu mô phỏng và tính toán trường nhiệt khi hàn luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN VĂN CHÂU NGHIÊN CỨU, MÔ PHỎNG VÀ TÍNH TỐN TRƯỜNG NHIỆT KHI HÀN Chun ngành : KỸ THUẬT CƠ KHÍ LUẬN VĂN THẠC SĨ KHOA HỌC KỸ THUẬT CƠ KHÍ NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS Nguyễn Tiến Dương Hà Nội – Năm 2017 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Trần Văn Châu Đề tài luận văn: Nghiên cứu, mơ tính tốn trường nhiệt hàn Chun ngành: Kỹ thuật khí Mã số SV: CA0026 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 27 tháng năm 2017 với nội dung sau: - Sửa lỗi tả luận văn - Đã thêm kết luận sau chương, mục Ngày 18 tháng năm 2017 Giáo viên hướng dẫn Tác giả luận văn PGS TS Nguyễn Tiến Dương Trần Văn Châu CHỦ TỊCH HỘI ĐỒNG PGS TS Bùi Văn Hạnh SĐH.QT9.BM11 Ban hành lần ngày 11/11/2014 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - LỜI CAM ĐOAN Tác giả xin cam kết rằng, luận văn này, ngồi bảng biểu, hình vẽ (đã trích dẫn nguồn), tất nội dung khác tác giả nghiên cứu tiến hành thực nghiệm Các thông tin viện dẫn dẫn đến mục tài liệu tham khảo luận văn Tác giả Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - MỤC LỤC LỜI CAM ĐOAN DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ MỞ ĐẦU 10 Lý chọn đề tài .10 Lịch sử nghiên cứu 11 Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu 13 Tóm tắt đọng luận điểm đóng góp tác giả .13 Phương pháp nghiên cứu 13 CHƯƠNG TRUYỀN NHIỆT TRONG VẬT HÀN 15 1.1 Hàn hình thức trao đổi nhiệt trình hàn 15 1.1.1 Các khái niệm hàn 15 1.1.2 Các vấn đề nhiệt trình hàn 18 1.2 Dẫn nhiệt 20 1.2.1 Nhiệt trường, mặt đẳng nhiệt gradient nhiệt độ 20 1.2.2 Mặt đẳng nhiệt gradient nhiệt độ 20 1.3 Cơ sở phương trình vi phân truyền nhiệt hàn .22 1.4 Giới thiệu nguồn nhiệt hàn 24 1.4.1 Nguồn nhiệt điểm tức thời 24 1.4.2 Nguồn nhiệt đường tức thời vật thể bán vô hạn 26 1.4.3 Nguồn nhiệt phẳng tức thời .27 1.4.4 Nguồn nhiệt phân bố theo Gauss 28 1.4.5 Nguồn nhiệt dạng khối cầu .30 1.4.6 Nguồn nhiệt khối có mật độ ellipsoid đơn 31 1.4.7 Nguồn nhiệt có mật độ dạng ellipsoid kép 32 1.5 Lời giải truyền nhiệt cho mơ hình mỏng 33 1.5.1 Mơ hình 33 1.5.2 Giai đoạn nung nóng ban đầu 36 1.5.3 Sự phân bố nhiệt độ trạng thái giả ổn định 37 CHƯƠNG MƠ PHỎNG Q TRÌNH TRUYỀN NHIỆT TRONG VẬT HÀN 42 2.1 Phương pháp phần tử hữu hạn .42 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - 2.2 Mơ số q trình truyền nhiệt .43 2.3 Các phần mềm mơ số q trình hàn 47 2.4 Mô số trình hàn 50 2.5 SYSWELD – VISUAL-WELD mô số trình hàn 53 CHƯƠNG NGHIÊN CỨU CHẾ TẠO THIẾT BỊ ĐO, GHI NHIỆT ĐỘ THEO THỜI GIAN THỰC 62 3.1 Lý thuyết chung cảm biến nhiệt độ, cặp nhiệt 62 3.1.1 Sơ lược cảm biến .62 3.1.2 Cặp nhiệt (thermocouple) 64 3.2 Mơ hình tốn đo ghi nhiệt độ thời gian thực 66 3.3 Thiết kế, chế tạo, đánh giá thiết bị đo nhiệt độ thời gian thực .66 3.3.1 Cặp nhiệt 67 3.3.2 EM 231 4TC 67 3.3.3 PLC S7-200 .68 3.3.4 Chương trình Thermal Welding 70 3.4 Thử nghiệm hiệu chỉnh đo, ghi nhiệt độ theo thời gian thực 72 CHƯƠNG KẾT QUẢ VÀ ĐÁNH GIÁ 77 4.1 Mẫu nghiên cứu .77 4.1.1 Vật liệu 77 4.1.2 Kích thước phơi .78 4.1.3 Trang thiết bị thông số chế độ hàn .79 4.2 Chu trình nhiệt điểm phôi hàn 80 4.3 Đường đẳng nhiệt nóng chảy 82 4.4 Tốc độ nguội 83 4.5 Ảnh hưởng vị trí theo hướng hàn đến chu trình nhiệt .85 4.6 Ảnh hưởng chiều dày – vị trí tương quan phơi đến chu trình nhiệt .89 KẾT LUẬN 94 TÀI LIỆU THAM KHẢO 96 PHỤ LỤC 98 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Ký hiệu/Viết tắt MAG Q 29 30 31 32 33 34 35 36 37 38 qw v U I Ihd qe qp gradT 0 a c ah, bh, ch K0 K1 d n3 m ', " 8/5 PPPTHH [k]e {Q}e {T}e [KT] {T} {Q} CAD Ý nghĩa Metal Active Gas welding Công nguồn nhiệt hàn Năng lượng đường Vận tốc hàn Điện áp hàn Cường độ dòng điện Cường độ dòng điện hiệu dụng Hiệu suất hồ quang Phần nhiệt truyền vào điện cực Phần nhiệt xạ đối lưu từ cột hồ quang Gradien nhiệt độ Hệ số dẫn nhiệt nhiệt độ T Hệ số dẫn nhiệt °C Hệ số khuếch tán nhiệt độ Khối lượng riêng Nhiệt dung riêng Các thơng số hình học nguồn nhiệt Goldak Hàm Bessel loại Hàm Bessel loại Chiều dày không thứ nguyên Chiều dày có thứ ngun Tham số vận hành khơng thứ ngun Nhiệt độ không thứ nguyên Tọa độ không thứ nguyên – tương đương với x Tọa độ không thứ nguyên – tương đướng với y Véc-tơ bán kính khơng thứ nguyên Chiều rộng vùng đẳng nhiệt không thứ nguyên Khoảng cách khơng thứ ngun tới phía trước sau nguồn nhiệt Thời gian không thứ nguyên Thời gian nguội 800-500 °C Phương pháp phần tử hữu hạn Ma trận truyền nhiệt Véc-tơ tải nhiệt phần tử Véc-tơ nhiệt nút phần tử Ma trận truyền nhiệt tổng thể Véc-tơ nhiệt nút tổng thể Véc-tơ tải nhiệt tổng thể Computer Aided Design Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - STT 39 40 41 42 Ký hiệu/Viết tắt V S T PLC Ý nghĩa Điện áp cặp nhiệt Hằng số Seebeck Độ chênh lệch nhiệt độ Programable Logic Controler Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - DANH MỤC CÁC BẢNG Bảng 2.1 Mối tương đồng giải toán kết cấu toán nhiệt PPPTHH 47 Bảng 3.1 Ký hiệu cặp nhiệt kiểu K theo tiêu chuẩn ANSI IEC 65 Bảng 3.2 Thông số kỹ thuật EM 231 67 Bảng 3.3 Thông số kỹ thuật PLC S7-200 CPU 222 69 Bảng 4.1 Thành phần hóa học thép C20Mn2 77 Bảng 4.2 So sánh tương đương thép S355J2G3 77 Bảng 4.3 Thành phần hóa học S355J2G3 theo sở liệu Visual-Weld 77 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Phân loại trình hàn áp lực 15 Hình Phân loại q trình hàn nóng chảy 16 Hình 1.3 Nguyên lý hàn MIG/MAG 17 Hình 1.4 Sơ đồ cân nhiệt hồ quang hàn điện cực nóng chảy mơi trường khí bảo vệ .20 Hình 1.5 Phương chiều gradT 21 Hình 1.6 Nguồn nhiệt điểm tức thời vật thể bán vơ hạn .25 Hình 1.7 Nguồn nhiệt đường tức thời vật thể bán vô hạn 26 Hình 1.8 Nguồn nhiệt phẳng tức thời vật bán vô hạn .27 Hình 1.9 Nguồn nhiệt phân bố theo chuẩn Gauss 29 Hình 1.10 Nguồn nhiệt ellipsoid 31 Hình 1.11 Nguồn nhiệt đường di chuyển mỏng 34 Hình 1.12 Đồ thị hàm Bessel K0(u) K1(u) 36 Hình 1.13 Tỷ số nhiệt độ thực nhiệt độ trạng thái giả ổn định hàn mỏng 36 Hình 1.14 Đồ thị cho nguồn nhiệt mỏng 37 Hình 1.15 Hình biểu diễn lời giải mỏng Rosenthal .38 Hình 1.16 Khoảng cách 5m , nửa chiều rộng m tiết diện ngang / với n3 / p 38 Hình 1.17 Khoảng cách từ nguồn nhiệt tới phía trước ( ') phía sau ( ") đường bao đẳng nhiệt (hàn mỏng) .39 Hình 2.1 Tính tốn máy tính – q trình ba bước .44 Hình 2.2 Một số dạng phần tử 44 Hình 2.3 Sơ đồ khối chương trình PTHH [30] 46 Hình 2.4 Mơ q trình hàn MAG với Ansys APDL [21] .47 Hình 2.5 Mơ q trình hàn ABAQUS 48 Hình 2.6 Mơ q trình hàn với MSC Marc 49 Hình 2.7 Mơ q trình hàn với SimufactWelding 49 Hình 2.8 Mơ trình hàn nhiều lớp với Sysweld .50 Hình 2.9 Kết kỹ thuật “tái sinh-tiêu diệt” phần tử mô hàn ANSYS 52 Hình 2.10 Kỹ thuật Contour Display of Actived Elements Sysweld 2015 52 Hình 2.11 Kết kỹ thuật “tái sinh-tiêu diệt” phần tử SimufactWelding 53 Hình 2.12 Cấu trúc Sysweld 54 Hình 2.13 Giao diện khởi động Sysweld 54 Hình 2.14 Khởi động vào module Welding Advisor cơng cụ 55 Hình 2.15 Q trình mơ tốn hàn 55 Hình 2.16 Kích thước phơi bao ngồi phơi 56 Hình 2.17 Kích thước mặt cắt (trái) tổng thể (phải) 57 Hình 2.18 Xây dựng mơ hình SolidWorks nhập mơ hình vào Visual-Mesh 57 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - Hình 2.19 Chia lưới xử lý phần tử Visual-Mesh 58 Hình 2.20 Nhập mơ hình chia lưới vào Visual-Weld thiết đặt ban đầu 58 Hình 2.21 Đặt thơng số chung đặc trưng thành phần liên kết hàn 59 Hình 2.22 Cài đặt thơng số chế độ hàn 59 Hình 2.23 Đặt điều kiện biên nhiệt độ gá kẹp 59 Hình 2.24 Tiến hành tính tốn mơ 60 Hình 2.25 Xem xử lý kết Visual-Viewer 60 Hình Phân loại cảm biến 63 Hình Phân loại cảm biến nhiệt độ .63 Hình 3 Cấu tạo cặp nhiệt 64 Hình Đặc tính số loại cặp nhiệt phổ biến 64 Hình Mơ hình thí nghiệm 66 Hình Sơ đồ xử lý tín hiệu hệ thống 66 Hình Cặp nhiệt đơn cặp nhiệt lắp vào hệ thống .67 Hình Sơ đồ đấu nối hiệu chỉnh EM 231 68 Hình S7-200 CPU 222 AC/DC/Relay sơ đồ đấu nối 69 Hình 10 Module EM 231 (trái) PLC S7-200 (phải) kết nối thiết bị 70 Hình 11 Gói chương trình shortcut sau cài đặt Thermal Welding 70 Hình 12 Giao diện chương trình khởi động 71 Hình 13 Nơi lưu liệu hình ảnh chụp chương trình 71 Hình 14 Folder lưu trữ tập tin liệu nhiệt 72 Hình 15 Hệ thống đo trước làm việc .72 Hình 16 Thử nghiệm đo kênh kênh 73 Hình 17 Thử nghiệm đo kênh 73 Hình 18 Thử nghiệm đo kênh (thời gian lấy mẫu 0.05s) 74 Hình 19 Thử nghiệm đo 04 kênh giai đoạn nguội sau hàn 74 Hình 20 Kết hiệu chuẩn với nước sôi 75 Hình 21 Kết hiệu chuẩn với máy hiệu chuẩn nhiệt độ Dry-well Calibrator 9123 nhiệt độ 200 °C 75 Hình 4.1 Nhiệt dung riêng thép S355J2G3 .78 Hình 4.2 Độ dẫn nhiệt thép S355J2G3 78 Hình 4.3 Phơi hàn chuẩn bị xong phôi hàn kẹp chặt lên đồ gá .79 Hình 4.4 Mơ hình liên kết hàn sau hàn xong 79 Hình 4.5 Robot hàn TA-1400 thông số kỹ thuật 80 Hình 4.6 Vị trí điểm P có tọa độ (50;5) để khảo sát chu trình nhiệt 81 Hình 4.7 Chu trình nhiệt điểm P(50;5) qua tính tốn, đo mơ số .81 Hình 4.8 Các mặt đẳng nhiệt mô Visual-Weld 82 Hình 4.9 So sánh vũng hàn nóng chảy mơ (trên) với thực nghiệm (dưới) 83 Hình 4.10 Vị trí S đo tốc độ nguội phơi hàn .84 Hình 4.11 Đồ thị nhiệt độ điểm S thực tế mô 84 Hình 4.12 Sơ đồ lắp cảm biến 3-1 85 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - KẾT LUẬN Những điểm làm luận văn - Luận văn trình bày nghiên cứu kết hợp lý thuyết thực nghiệm truyền nhiệt trình hàn MAG với mỏng Kết thực nghiệm phản ánh tính đắn lý thuyết truyền nhiệt vật hàn Tác giả xây dựng mơ hình toán ghi đo nhiệt độ theo thời gian thực tổng quát, áp dụng cho nhiều trình hàn Bên cạnh tác giả tự thiết kế chế tạo ghi đo nhiệt độ theo thời gian thực đo điểm đồng thời, nhiệt độ lớn đo 1250°C, có độ xác cao ±2 °C, nhằm thu thập thông số nhiệt độ trình hàn, thiết bị kiểm định tính xác ổn định làm việc - Nghiên cứu luận văn đưa so sánh kết chu trình nhiệt hàn, đường đẳng nhiệt, chu trình nhiệt điểm tính tốn giải tích, mơ số máy tính đo đạc thực nghiệm cho tốn hàn mỏng Từ kết khơng khẳng định tính đắn lý thuyết mà cịn cho thấy phù hợp mơ số với thực nghiệm, từ làm tiền đề áp dụng tốt mơ số q trình hàn máy tính khả ứng dụng cao đem lại Các thơng số nhiệt độ theo dõi làm sở để ca-líp lại thơng số mơ hình nguồn nhiệt, đặc trưng nhiệt vật liệu, từ đưa kết mơ xác - Nghiên cứu luận văn ảnh hưởng chiều dày mỏng đến chu trình nhiệt (dù khơng lớn) thơng qua mơ đo đạc thực nghiệm theo lý thuyết hai điểm có tọa độ x-y có chu trình nhiệt bỏ qua ảnh hưởng chiều dày Đồng thời cho thấy để mơ xác q trình hàn, yếu tố đặc trưng vật liệu, điều kiện biên, lựa chọn mơ hình nguồn nhiệt hàn… có ý nghĩa quan trọng - Các kết nghiên cứu tham khảo luận văn viện dẫn từ tài liệu đáng tin cậy, luận văn có chứng minh thực nghiệm cho trường hợp 94 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - hàn mỏng q trình hàn MAG, nên luận văn sử dụng làm tài liệu tham khảo cho nghiên cứu có liên quan Góp ý, kiến nghị - Do thời gian nghiên cứu chưa nhiều, nguồn kinh phí thực cịn nhỏ nên thiết bị ghi đo nhiệt độ phần mềm xử lý cịn thơ sơ Trong nghiên cứu tác giả cố gắng khắc phục nhược điểm để thiết bị phần mềm hoạt động tốt 95 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - TÀI LIỆU THAM KHẢO J Fourier, The Analytical Theory of Heat, Cambridge University Press, 2009 H S Carslaw, J C Jaeger, Conduction of Heat in Solids-Oxford University Press, USA (1959) H S Carslaw, Introduction to the mathematical theory of the conduction of heat in solids, Nabu Press (2010) D Rosenthal, Mathematical Theory of Heat Distribution during Welding and Cutting, Wed J Vol 20 (No 5) 1941 p 220s–234s D Rosenthal, The theory of moving sources of heat and its application to metal treatments, Trans Amer Soc Mech Eng 68 (1946) 849–866 Pavelic V, Tanbakuchi R Uyehar, O A Myers P S 1969, Experimental and computed temperature histories in Gas Tungsten Arc Welding of thin plates, Welding Journalvol 48 n 7pp 29 Goldak, J Bibby M Chakravarti A 1984, A new finite element model for welding heat sources, Metallurgical Transactions B vol 15B pp 299 - 305 J Goldak, M Bibby, J Moore, R House, B Patel, Computer modeling of heat flow in welds, , Metallurgical Transactions B vol 17B pp 587 - 600 Eager T W and Tsai N S 1983, Temperature fields produced by traveling distributed heat sources, Welding Journal 62(12)-346-s to 355-s 10 Jeong S K and Cho H S 1997, An an alytical solution to predict the transient temperature distribution in fillet arc welds, Welding Journal 76(6) 223-s to 232-s 11 E A Bonifaz, Finite Element Analysis of Heat Flow in Single-Pass Arc Welds, Welding Reaserch Supplement 121-s to 125-s 12 M.A Wahab, M.J Painter, M.H Davies, The prediction of the temperature distribution and weld pool geometry in the gas metal arc welding process, Journal of Material Process Technology 77 (1998) 233-239 13 S Murugan, P.V Kumar, B Raj, M.S.C Bose, Temperature distribution during multipass welding of plates, International Journal of Pressure Vessels and Piping 75 (1998) 891-905 14 Jerzy Winczek, Analytical solution to transient temperature field in a half-infinite body caused by moving volumetric heat source, International Journal of Heat and Mass Transfer 53 (2010) 5774-5781 15 Fang Hongyuan, Meng Qinggou, Xu Wenli, Ji Shude, New general double ellipsoid heat source model, Science and Technology of Welding and Joining 2005 Vol 10 No3 361s-368s 96 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - 16 N.T Ninh, A Ohata, K Matsuoka, N Suzuki, Y Maeda, Analytical solution for transient temperature of semi-infinite body subjectec to 3-D moving heat source, Welding Research suppliment to the welding journal, August 1999, 265-s to 274-s 17 N.T Ninh, Y.-W Mai, S Simpson, A Ohta, Analytical approximate solution for double ellipsoidal heat source in finite thick plate, Welding Research Mar 2004, 82s to 93-s 18 Guangming Fu, Parameter determination of double-ellipsoidal heat source model and its application in the multi-pass welding process, Taylor & Francis, Ship and Offshore Structure 10 Jul 2014 19 Aniruddha Ghosh, Critical analysis of moving heat source shape for arc welding process of high deposition rate, Tehnički vjesnik 21, 1(2014), 95-98 20 J Dutta, Narendranah S, Experimental and analytical investigation of thermal parameters developed in high carbon stell joints formed by GTA welding, Journal of Mechanical Enginerring, Vol ME 44, No Dec 2014 21 Vũ Đình Toại, Võ Văn Phong, Mơ trường nhiệt độ, trường ứng suất biến dạng q trình hàn nóng chảy phương pháp phần tử hữu hạn, Tạp chí Khoa học & Cơng nghệ trường Đại học Kỹ thuật, Số 57, Hà Nội 2006 22 Vũ Đình Toại, Nghiên cứu cơng nghệ hàn liên kết nhơm-thép q trình hàn TIG, Luận án tiến sỹ, 2014 23 Nguyễn Hồng Thanh, Nguyễn Tiến Dương, Hà Xuân Hùng, Ảnh hưởng trình tự hàn đến phân bố ứng suất dư liên kết hàn ống chữ K, Hội nghị Khoa học toàn quốc lần thứ Cơ kỹ thuật Tự động hóa, Tháng 10 2016, Đại học Bách Khoa Hà Nội 24 Ngô Lê Thơng, Cơng nghệ hàn điện nóng chảy, Tập 1, NXB Khoa học Kỹ thuật 25 Nguyễn Thế Ninh, Phân tích Truyền nhiệt hàn ứng dụng, NXB Bách KhoaHà Nội, 2008 26 Nguyễn Tiến Dương, Bài giảng Mô trình truyền nhiệt hàn – Lý thuyết, Đại học Bách Khoa Hà Nội – 2008 27 Oystein Grong, Metallurgical Modelling of Welding, The Institute of Materials London SW 1Y 5DB 1997 28 Chu Quốc Thắng, Phương pháp phần tử hữu hạn, NXB Khoa học kỹ thuật, 1997 29 Trần Ích Thịnh, Ngơ Như Khoa, Phương pháp phần tử hữu hạn, NXB Khoa học kỹ thuật, 1997 30 Nam-Ho Kim, Bhavani V Sankar, Introduction to Finite Element Analysis and Design, Hamilton Printing, 2009 97 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - PHỤ LỤC Code chương trình Thermal Welding viết Visual C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.IO.Ports; using System.Xml; using System.Web; using ZedGraph; using ZedGraph.Web; using System.Runtime.InteropServices; using System.Threading; namespace Giao_dien_1 { internal struct ImageType { static ImageType[] fmt; static int fmtIndex; internal static string fmtFilter; // array of image types // image type index // filter for array internal ImageFormat format; // image type format internal string extension; // image type extension internal string filter; // image type filter internal ImageType(ImageFormat fmt, string ext, string description) { format = fmt; extension = ext; filter = description + " (*." + extension + ")|*." + extension; } internal static void InitFormats() { fmt = new ImageType[10]; // create image type formats fmt[0] = new ImageType(ImageFormat.Bmp, "bmp", "Bitmap"); 98 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - fmt[1] = new ImageType(ImageFormat.Emf, "emf", "Enhanced Metafile Format"); fmt[2] = new ImageType(ImageFormat.Exif, "exif", "Exchange Image Format"); fmt[3] = new ImageType(ImageFormat.Gif, "gif", "Graphics Interchange Format"); fmt[4] = new ImageType(ImageFormat.Icon, "ico", "Windows ICON Format"); fmt[5] = new ImageType(ImageFormat.Jpeg, "jpg", "Joint Photographic Experts Group"); fmt[6] = new ImageType(ImageFormat.MemoryBmp, "mbmp", "Memory Bitmap"); fmt[7] = new ImageType(ImageFormat.Png, "png", "Portable Network Graphics"); fmt[8] = new ImageType(ImageFormat.Tiff, "tif", "Tag Image File Format"); fmt[9] = new ImageType(ImageFormat.Wmf, "wmf", "Windows Metafile Format"); // create an overall filter for all image types fmtFilter = fmt[0].filter; for (int i = 1; i < fmt.Length; i++) fmtFilter += "|" + fmt[i].filter; fmtIndex = 0; // set default format } internal static ImageType SetImageType(int i) { if (fmt == null) // if no format array InitFormats(); // create one if (i < 0) i = 0; // make sure new index not too small if (i >= fmt.Length) // make sure new index not too large i = fmt.Length - 1; fmtIndex = i; // set new format index return fmt[fmtIndex]; // return selected format } } public partial class Form1 : System.Windows.Forms.Form//Form { 99 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - private Color oldTKey; // old transparency key private bool viewportOpen = false; // viewport is closed private Bitmap capBM = null; // captured bitmap private bool capBMSaved = false; // capture bitmap not yet saved private Control curCtl = null; // control containing captured image private bool mute = false; // mute flag private string soundDir; // directory of sounds private string imageDir; // directory of images private bool aspect = false; // aspect ratio preservation SerialPort p = new SerialPort("COM1", 115200, Parity.None, 8, StopBits.One); string InputData = string.Empty; delegate void SetTextCallBack(string text); byte[] buffer; int temp1, temp2, temp3,temp4; int tickStart = 0; Int32 k = 0,j=2;//k biến lưu số dòng file text int count = 0; int check1=0,check2=0,check3 = 0,check4=0; public Form1() { InitializeComponent(); soundDir = Environment.CurrentDirectory // initialize sound directory + @"\Sounds\"; imageDir = Environment.GetFolderPath( // set initial image directory Environment.SpecialFolder.MyPictures); //curCtl = this.panPic; // control containing image oldTKey = TransparencyKey; // save old transparency key p.ReadTimeout = 1000; p.DataReceived += new SerialDataReceivedEventHandler(DataReceive); } // Hàm kiện nhận dử liệu gọi đến Mục đích để hiển thị thơi private void DataReceive(object obj, SerialDataReceivedEventArgs e) { j = p.BytesToRead; buffer = new byte[j]; 100 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - p.Read(buffer, 0, j); SetText(InputData); } void tinh_toan() { temp1 = buffer[1] * 256 + buffer[2]; temp2 = buffer[3] * 256 + buffer[4]; temp3 = buffer[5] * 256 + buffer[6]; temp4 = buffer[7] * 256 + buffer[8]; //temp1 = 1000; if(temp1>=4000) temp1 =30; if (temp2 >= 4000) temp2 = 30; if (temp3 >= 4000) temp3 = 30; if (temp4 >= 4000) temp4 = 30; } private void SetText(string text) { if (this.txtkq.InvokeRequired) { try { SetTextCallBack d = new SetTextCallBack(SetText); // khởi tạo delegate gọi đến SetText this.Invoke(d, new object[] { text }); } catch (Exception) { } } else { tinh_toan(); //this.txtkq.Text += text; textBox1.Text = temp1.ToString(); textBox2.Text = temp2.ToString(); textBox3.Text = temp3.ToString(); textBox4.Text = temp4.ToString(); } } private void btn_send_Click(object sender, EventArgs e) { int[] data = { 1, 2, 3, 4, }; 101 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - data[0] = 2; data[1] = 3; data[2] = 16; data[3] = 3; data[4] = 18; byte[] form_xmt; for (int i = 0; i < data.Length; i++) { form_xmt = BitConverter.GetBytes(data[i]); if(btn_connect.Text == "TẠM DỪNG") p.Write(form_xmt, 0, 1); } } private void btn_connect_Click(object sender, EventArgs e) { if (btn_connect.Text == "TẠM DỪNG") { p.Close(); btn_connect.Text="KẾT NỐI"; } else { try { p.Open(); btn_connect.Text = "TẠM DỪNG"; } catch (Exception) { MessageBox.Show("Kiểm tra cổng giao tiếp!"); } } } private void Form1_Load(object sender, EventArgs e) { addItems(); comboBox1.Text = "0.50"; timer1.Interval = 100; timer2.Interval = 100; txtkq.Visible = false; timer1.Start(); Thread.Sleep(25); timer2.Start(); //Giá trị ban đầu kênh nhiệt độ textBox1.Text = temp1.ToString(); 102 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - textBox2.Text = temp2.ToString(); textBox3.Text = temp3.ToString(); textBox4.Text = temp4.ToString(); label5.Visible= false; //ZedGraph.GraphPane myPane = new ZedGraph.GraphPane(); GraphPane myPane = zedGraphControl1.GraphPane; myPane.Title.Text = "CHU TRÌNH NHIỆT HÀN"; myPane.XAxis.Title.Text = "Thời gian (giây)"; myPane.YAxis.Title.Text = "Nhiệt độ (độ C)"; // Định thị cho trục thời gian (Trục X) myPane.XAxis.Scale.Min = 0; // Min = 0; myPane.XAxis.Scale.Max = 30; // Max = 30; myPane.XAxis.Scale.MinorStep = 0.5; // Đơn vị chia nhỏ 1//0.5 myPane.XAxis.Scale.MajorStep = 0.5; // Đơn vị chia lớn 5//0.5 // Định thị cho trục nhiệt độ (Trục Y) myPane.YAxis.Scale.Min = 0; // Min = 0; myPane.YAxis.Scale.Max = 1600; // Max = 30; myPane.YAxis.Scale.MinorStep = 20; // Đơn vị chia nhỏ myPane.YAxis.Scale.MajorStep = 20; // Đơn vị chia lớn // Định nghĩa list để vẽ đồ thị Để bạn hiểu rõ chế làm việc khai báo list điểm đường đồ thị PointPairList list1 = new PointPairList(); //RollingPointPairList list1 = new RollingPointPairList(12000); LineItem curve1 = myPane.AddCurve("Sensor 1", list1, Color.Red, SymbolType.None); // Color màu đỏ, đặc trưng cho đường PointPairList list2 = new PointPairList(); //RollingPointPairList list2 = new RollingPointPairList(1200); LineItem curve2 = myPane.AddCurve("Sensor 2", list2, Color.Blue, SymbolType.None); // Color màu Xanh, đặc trưng cho đường PointPairList list3 = new PointPairList(); //RollingPointPairList list3 = new RollingPointPairList(1200); LineItem curve3 = myPane.AddCurve("Sensor 3", list3, Color.Green, SymbolType.None); // Color màu Xanh, đặc trưng cho đường PointPairList list4 = new PointPairList(); //RollingPointPairList list4 = new RollingPointPairList(1200); LineItem curve4 = myPane.AddCurve("Sensor 4", list4, Color.Black, SymbolType.None); // Khởi động timer vị trí ban đầu tickStart = Environment.TickCount; //Phần xử lý file txt if (!File.Exists("DulieuNhiet.txt")) { FileStream fs; 103 Luận văn Thạc sĩ Chuyên ngành: Kỹ thuật khí - fs = new FileStream("DulieuNhiet.txt", FileMode.Create);//Tạo file tên DulieuNhiet.txt StreamWriter sWriter = new StreamWriter(fs, Encoding.UTF8); sWriter.WriteLine("FILE DU LIEU NHIET DO HAN"); sWriter.Flush(); fs.Close(); } } // Để tiện cho việc sử dụng xây dựng hàm draw phục vụ cho việc vẽ đồ thị public void draw(int setpoint1, int setpoint2,int setpoint3,int setpoint4) { if (zedGraphControl1.GraphPane.CurveList.Count ( xScale.Max - xScale.MajorStep)) { if (button1.Text == "GIỮ GỐC") { xScale.Max = time + xScale.MajorStep; xScale.Min = xScale.MajorStep+time-30.0; //xScale.Min = xScale.Max - 30.0; //Che truot } else { xScale.Max = time + xScale.MajorStep; xScale.Min = 0; } } label10.Text = ((int)xScale.Min).ToString(); // Vẽ đồ thị zedGraphControl1.AxisChange(); // Force a redraw zedGraphControl1.Invalidate(); //Moi them GraphPane myPane = zedGraphControl1.GraphPane; myPane.GraphObjList.Clear(); const double offset = 1.0; //độ rộng chữ for (int i =0; i < count; i++)//i