Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 115 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
115
Dung lượng
3,03 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP VŨ HOÀI SƠN NGHIÊN CỨU ỨNG DỤNG ĐẠI SỐ GIA TỬ TRONG CHẨN ĐOÁN SỰ CỐ TIỀM ẨN CỦA MÁY BIẾN ÁP LỰC LUẬN VĂN THẠC SỸ KHOA HỌC KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA THÁI NGUYÊN – NĂM 2019 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CƠNG NGHIỆP VŨ HỒI SƠN NGHIÊN CỨU ỨNG DỤNG ĐẠI SỐ GIA TỬ TRONG CHẨN ĐOÁN SỰ CỐ TIỀM ẨN CỦA MÁY BIẾN ÁP LỰC Chuyên ngành: Kỹ thuật điều khiển tự động hóa LUẬN VĂN THẠC SỸ KHOA HỌC KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA NGƯỜI HƯỚNG DẪN KHOA HỌC TS ĐỖ TRUNG HẢI TS NGUYỄN TIẾN DUY Thái Nguyên - Năm 2019 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: Vũ Hoài Sơn Đề tài luận văn: Nghiên cứu ứng dụng đại số gia tử chẩn đoán cố tiềm ẩn máy biến áp lực Chuyên ngành: Kỹ thuật điều khiển tự động hóa Mã số: Tác giả, Cán 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 16/6/2019 với nội dung sau: - Bỏ bớt tài liệu tham khảo không liên quan - Sửa lại trang bìa - Các ký hiệu trang 35 - Việt hóa số bảng trang 23, 24, 43, 45 - Ý nghĩa khoa học đưa lên phần đầu luận văn Thái Nguyên, ngày… tháng ….năm 2019 Cán hướng dẫn Tác giả luận văn TS Đỗ Trung Hải Vũ Hoài Sơn Nguyễn Tiến Duy CHỦ TỊCH HỘI ĐỒNG PGS.TS Nguyễn Như Hiển LỜI CAM ĐOAN Tên tơi là: Vũ Hồi Sơn Sinh ngày 31 tháng 07 năm 1986 Học viên lớp cao học khoá 20 chuyên ngành Kỹ thuật điều khiển tự động hóa Trường đại học kỹ thuật Công nghiệp Thái Nguyên Hiện cơng tác : Tập đồn Điện lực Việt Nam Tôi xin cam đoan luận văn “Nghiên cứu ứng dụng đại số gia tử chẩn đoán cố tiềm ẩn máy biến áp lực” thầy giáo TS Đỗ Trung Hải TS Nguyễn Tiến Duy hướng dẫn nghiên cứu với tất tài liệu tham khảo có nguồn gốc, xuất xứ rõ ràng Thái Nguyên, ngày…….tháng … năm 2019 Học viên Vũ Hoài Sơn LỜI CẢM ƠN Sau thời gian nghiên cứu, làm việc khẩn trương hướng dẫn tận tình giúp đỡ thầy giáo TS Đỗ Trung Hải TS Nguyễn Tiến Duy, luận văn với đề tài “Nghiên cứu ứng dụng đại số gia tử chẩn đoán cố tiềm ẩn máy biến áp lực” hồn thành Tác giả xin bày tỏ lòng biết ơn sâu sắc tới: Thầy giáo hướng dẫn TS Đỗ Trung Hải TS Nguyễn Tiến Duy tận tình dẫn, giúp đỡ tác giả hồn thành luận văn Các thầy cô giáo Trường Đại học kỹ thuật công nghiệp Thái Nguyên, số đồng nghiệp, quan tâm động viên, giúp đỡ tác giả suốt q trình học tập để hồn thành luận văn Mặc dù cố gắng hết sức, nhiên điều kiện thời gian kinh nghiệm thực tế thân ít, đề tài khơng thể tránh khỏi thiếu sót Vì vậy, tác giả mong nhận đóng góp ý kiến thầy giáo, cô giáo bạn bè đồng nghiệp cho luận văn tơi hồn thiện Tơi xin chân thành cảm ơn! Thái Nguyên, ngày……tháng……năm 2019 Tác giả luận văn Vũ Hoài Sơn MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN i i MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH, ĐỒ THỊ .vii MỞ ĐẦU Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI CHƯƠNG TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP CHẨN ĐOÁN SỰ SỐ TIỀM ẨN CỦA MÁY BIẾN ÁP LỰC Tổng quan máy biến áp lực 1.1.1 Các thông số máy biến áp 1.1.2 Thí nghiệm máy biến áp Các phương pháp chẩn đoán lỗi tiềm ẩn 10 1.2.1 Kiểm tra đánh giá điều kiện cách điện 10 1.2.2 Giám sát trực tuyến phóng điện phần – PD 11 1.2.3 Phân tích độ khí hồ tan dầu (DGA) 12 Chẩn đoán lỗi tiềm ẩn MBA sở DGA 14 1.3.1 Đặc tính sinh khí 14 1.3.2 Các lỗi tiềm ẩn MBA 15 1.3.3 Chẩn đoán lỗi dựa phương pháp tỉ lệ 18 Đánh giá ưu nhược điểm phương pháp dựa DGA 23 Kết luận chương 23 CHƯƠNG THIẾT KẾ HỆ CHẨN ĐOÁN LỖI THEO ĐẠI SỐ GIA TỬ 24 Tổng quan đại số gia tử suy luận xấp xỉ 24 2.1.1 Cấu trúc đại số gia tử 24 2.1.2 Một số tính chất đại số gia tử 25 2.1.3 Các hàm đo đại số gia tử 28 2.1.4 Biến ngôn ngữ 30 2.1.5 Suy luận xấp xỉ 31 Thiết kế hệ chẩn đoán lỗi 35 2.2.1 Xây dựng mơ hình chẩn đốn theo đại số gia tử 36 2.2.2 Thiết kế thuật toán cho mơ hình chẩn đốn 43 Kết luận chương 45 CHƯƠNG MÔ PHỎNG 46 Giới thiệu cơng cụ, mơi trường lập trình 46 Kết mô 47 3.2.1 Giao diện chương trình 48 3.2.2 Chức chẩn đoán 49 3.2.3 Chức tra cứu 51 3.2.4 Chức in báo cáo 53 Kết luận chương 53 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC: MỘT SỐ MODUL CHÍNH CỦA CHƯƠNG TRÌNH 57 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DGA Dissolved Gas Analysis HFCT High Frequency Current Transformer IEC International Electrotechnical Commission LRBS Linguistic Rule Base System MBA Máy biến áp PD Partial Discharge TOGAS Transformer Oil Gas Analysis System SQL Structured Query Language Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn DANH MỤC CÁC BẢNG Bảng 1 Bảng tiêu chuẩn dầu MBA 10 Bảng Các lỗi MBA nguyên nhân gây .15 Bảng Định nghĩa tỉ lệ phương pháp tỉ lệ 18 Bảng Phương pháp hệ số tỉ lệ Dornenburg 18 Bảng Giá trị giới hạn L1 Dornenburg .19 Bảng Bảng chẩn đoán gốc phương pháp tỉ lệ Rogers 19 Bảng Mã định nghĩa phương pháp tỉ lệ Rogers cải tiến .20 Bảng Chẩn đoán theo phương pháp tỉ lệ Rogers cải tiến 20 Bảng Tỉ lệ thành phần khí lỗi tương ứng theo IEC-60599 (2015) 21 Bảng 10 Mã tỉ số theo khoảng giá trị .22 Bảng 11 Bảng luật chuẩn đoán lỗi theo mã quy ước 22 Bảng Bảng luật chẩn đoán cho lỗi viết lại theo nhãn ngôn ngữ 42 Bảng 2 Ngưỡng L1 theo IEC-599 43 Bảng Tính tốn độ tin cậy kết luận luật chẩn đoán mờ .44 Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn DANH MỤC CÁC HÌNH, ĐỒ THỊ Hình 1 Các cuộn dây phía 110 kV 16 Hình Phóng điện đánh thủng cách điện chưa biến dạng vòng dây 16 Hình Phóng điện đánh thủng cách điện biến dạng vòng dây 17 Hình Sơ đồ suy luận xấp xỉ theo tiếp cận fuzzy logic 34 Hình 2 Xây dựng hàm thuộc giá trị ngữ nghĩa có điểm “đặc trưng” 37 Hình Tập mờ cho tỉ số 40 Hình Visual Studio 2013 Ultimate 46 Hình Bảng sở liệu 47 Hình 3 Giao diện chương trình 49 Hình Nhập số liệu để thực chức chẩn đốn .50 Hình Kết chẩn đoán sau nhập số liệu 50 Hình Tra cứu lịch sử chẩn đoán .51 Hình Danh sách lịch sử chẩn đoán 52 Hình Chi tiết kết tra cứu 53 Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn } public string isOK_TKC() { if (checkOK_TKC()) return "Trong ngưỡng cho phép"; else return "Vượt ngưỡng cho phép"; } public bool isNAN(double d) { return (Double.IsNaN(d) || Double.IsInfinity(d)); } public bool isNAN() { return isNAN(x) || isNAN(y) || isNAN(z); } public void toString(out string s, out string d, bool show_debug = false) { MBAFuzzyAlgorithm MBA = this; int nRule = 9; s = ""; s += "Kết chẩn đoán"; if (MBA.id > 0) s += string.Format("ID: {0}", MBA.id); s += string.Format("Thời gian: {0}", MBA.ngay.ToString("dd/MM/yyyy HH:mm:ss")); s += ""; s += "Tổng hàm lượng khí hồ tan (Total Gas)"; s += ""; s += string.Format("Total Gas = {0} ppm ≈ {1:0.##}%", MBA.TotalGas(), MBA.TotalGas() / 10000.0); s += string.Format("Ngưỡng = 10,000 ppm ≈ 1%"); s += string.Format("{0}", MBA.isOK_Gas(), MBA.checkOK_GAS() ? "table-success" : "table- danger"); s += ""; s += ""; s += ""; s += "Tổng hàm lượng khí dễ cháy (TKC)"; s += ""; s += string.Format("TKC = {0} ppm ≈ {1:0.##}%", MBA.TKC(), MBA.TKC() / 720.0 * 100); s += string.Format("Ngưỡng = 720 ppm"); //s += string.Format("{0}", MBA.isOK_TKC(), MBA.checkOK_TKC() ? "ok" : "red"); if (this.isNomal()) { s += string.Format("Tất thành phần khí cháy ngưỡng"); } else { s += string.Format("{0}", MBA.isOK_TKC(), MBA.checkOK_TKC() ? "table-success" : "table-danger"); } s += ""; s += ""; string st = ""; string[] pp = { "", "Fuzzy", "Fuzzy Based on HA" }; st += string.Format("{0}", pp[MBA.Algorithm]); //if (MBA.Algorithm == 1) //{ // st += "Phương pháp Chẩn đoán mờ"; //} //else if (MBA.Algorithm == 2) //{ // st += "Phương pháp Chẩn đoán mờ"; //} st += ""; st += "LỗiChẩn đoánĐộ tin cậy"; st += ""; double sum = 0; for (int i = 0; i < nRule; i++) { sum += MBA.Reliability[i]; if (MBA.Reliability[i] > 0.0) st += string.Format("{0}{2}{1:0.#}%", i + 1, 100 * MBA.Reliability[i], MBA.Diagnose[i], MBA.Reliability[i] >= 0.5 ? (i > ? "tabledanger" : "") : ""); } st += ""; st += ""; if (isNAN() || sum < 1e-9) { s += ""; s += ""; s += string.Format("Kết luận: Không xác định"); s += ""; s += ""; } else s += st; d = ""; d += string.Format("Thông tin chung"); if (MBA.id > 0) d += string.Format("ID: {0}", MBA.id); d += string.Format("Thời gian: {0}", MBA.ngay.ToString("dd/MM/yyyy HH:mm:ss")); d += ""; d += ""; d += string.Format("Công tySố hiệu"); d += ""; d += ""; d += string.Format("{0}{1}", MBA.cty, MBA.mba_id); d += ""; d += ""; d += ""; d += "Số liệu thí nghiệm"; d += ""; d += ""; d += string.Format("H₂O₂N₂"); d += string.Format("{0}{1}{2}", MBA.H2, MBA.O2, MBA.N2); d += string.Format("CH₄COCO₂"); d += string.Format("{0}{1}{2}", MBA.CH4, MBA.CO, MBA.CO2); d += string.Format("C₂H₄C₂H₆C₂H₂"); d += string.Format("{0}{1}{2}", MBA.C2H4, MBA.C2H6, MBA.C2H2); d += ""; d += ""; d += ""; d += "Các tỉ số"; d += ""; d += ""; d += string.Format("R₁R₂R₃"); d += string.Format("C₂H₂/C₂H₄CH₄/H₂C₂H₄/C₂H₆"); d += ""; d += ""; d += string.Format("{0:0.##}{1:0.##}{2:0.##}", MBA.x, MBA.y, MBA.z); d += ""; d += ""; d += ""; if (show_debug) { d += "Debug"; d += ""; d += ""; d += string.Format("\\LMH"); d += ""; d += ""; d += string.Format("R₁{0:0.###}{1:0.###}{2:0.###}", MBA.R1.VL, MBA.R1.VM, MBA.R1.VH); d += string.Format("R₂{0:0.###}{1:0.###}{2:0.###}", MBA.R2.VL, MBA.R2.VM, MBA.R2.VH); d += string.Format("R₃{0:0.###}{1:0.###}{2:0.###}", MBA.R3.VL, MBA.R3.VM, MBA.R3.VH); d += ""; d += ""; d += ""; } } } } Lưu kết chẩn đoán vào CLDS using using using using using using using System; System.Collections.Generic; System.Text; LibMBA; System.Data; System.Data.SqlClient; System.Configuration; namespace MBA_DB { public class MBA_Store { public bool LuuTru(MBAFuzzyAlgorithm MBA) { bool ok = true; //lệnh lưu trữ here //lưu trữ thông tin MBA //gọi sp_MBA_Backup //2 tạo đối tượng để chạy SQL dbLib db = new dbLib(); SqlCommand cm = new SqlCommand("sp_MBA_Backup"); cm.CommandType = CommandType.StoredProcedure; //truyền tham số cm.Parameters.Add("@Cty", SqlDbType.NVarChar, 500).Value = MBA.cty; cm.Parameters.Add("@Ngay", SqlDbType.DateTime).Value = MBA.ngay; cm.Parameters.Add("@MBA_ID", SqlDbType.NVarChar, 50).Value = MBA.mba_id; cm.Parameters.Add("@h2", SqlDbType.Float).Value = MBA.H2; MBA.CH4; MBA.C2H2; MBA.C2H4; MBA.C2H6; MBA.O2; MBA.N2; MBA.CO; cm.Parameters.Add("@ch4", SqlDbType.Float).Value = cm.Parameters.Add("@c2h2", SqlDbType.Float).Value = cm.Parameters.Add("@c2h4", SqlDbType.Float).Value = cm.Parameters.Add("@c2h6", SqlDbType.Float).Value = cm.Parameters.Add("@o2", SqlDbType.Float).Value = cm.Parameters.Add("@n2", SqlDbType.Float).Value = cm.Parameters.Add("@co", SqlDbType.Float).Value = cm.Parameters.Add("@co2", SqlDbType.Float).Value = SqlDbType.Int).Value = MBA.CO2; cm.Parameters.Add("@pp", MBA.Algorithm; SqlParameter out_id = cm.Parameters.Add("@id", SqlDbType.Int); out_id.Direction = ParameterDirection.Output; //thực thi SP_ int n = db.Excute(cm); MBA.id = (int)out_id.Value; //n==1: insert thành công ok = (n == 1); } return ok; public bool check_login(string uid, string pw, ref string fullname, ref int role) { string sql = "select fullname,role from [users] where (uid=@uid)and(pw=@pw)"; SqlCommand cm = new SqlCommand(sql); cm.Parameters.Add("@uid", SqlDbType.VarChar, 50).Value = uid; pw; cm.Parameters.Add("@pw", SqlDbType.VarChar, 50).Value = dbLib db = new dbLib(); DataTable dt = db.GetTable(cm); if (dt != null && dt.Rows.Count == 1) { DataRow r = dt.Rows[0]; fullname = (string)r["fullname"]; role = (int)r["role"]; } return true; } return false; public List TraCuu(string key) { //lệnh lấy liệu từ DB //gán cho thuộc tính MBA //2 tạo đối tượng để chạy SQL SqlCommand cm = new SqlCommand("sp_MBA_Restore"); cm.CommandType = CommandType.StoredProcedure; cm.Parameters.Add("@key", SqlDbType.NVarChar, 500).Value = key; dbLib db = new dbLib(); //thực thi SP_ liệu trả đặt đối tượng dr //tạo dt để chứa liệu, DataTable dt = db.GetTable(cm); //dữ liệu load từ dr List ListMBA List(); foreach (DataRow row in dt.Rows) { MBAFuzzyAlgorithm MBA = getMBA(row); ListMBA.Add(MBA); } return ListMBA; } = new public MBAFuzzyAlgorithm ChiTiet(int id) { //lệnh lấy liệu từ DB //gán cho thuộc tính MBA //2 tạo đối tượng để chạy SQL SqlCommand cm = new SqlCommand("sp_MBA_RestoreByID"); cm.CommandType = CommandType.StoredProcedure; cm.Parameters.Add("@id", SqlDbType.Int).Value = id; //thực thi SP_ liệu trả đặt đối tượng dr dbLib db = new dbLib(); //tạo dt để chứa liệu, DataTable dt = db.GetTable(cm); DataRow row = dt.Rows[0]; MBAFuzzyAlgorithm MBA = getMBA(row); } return MBA; private MBAFuzzyAlgorithm getMBA(DataRow row) { MBAFuzzyAlgorithm MBA = new MBAFuzzyAlgorithm(); //ok MBA.id = (int)row["id"]; MBA.cty = (string)row["cty"]; MBA.mba_id = (string)row["mba_id"]; MBA.ngay = (DateTime)row["ngay"]; MBA.H2 = (double)row["H2"]; MBA.CH4 = (double)row["CH4"]; MBA.C2H2 = (double)row["C2H2"]; MBA.C2H4 = (double)row["C2H4"]; MBA.C2H6 = (double)row["C2H6"]; MBA.O2 = (double)row["O2"]; MBA.N2 = (double)row["N2"]; MBA.CO = (double)row["CO"]; MBA.CO2 = (double)row["CO2"]; int Algorithm = (int)row["pp"]; MBA.setAlgorithm(Algorithm); return MBA; } } } Xử lý sở liệu using using using using using using System; System.Collections.Generic; System.Configuration; System.Data; System.Data.SqlClient; System.Web; namespace MBA_DB { public class dbLib { private static readonly string conStr = ConfigurationManager.ConnectionStrings["MBA_connect_DB"].Connectio nString; public SqlConnection con;//= new SqlConnection(conStr); public SqlConnection Connect() { = new SqlConnection(conStr); return con; } public DataTable GetTable(string sql) { SqlCommand cm = new SqlCommand(sql); return GetTable(cm); } public DataTable GetTable(SqlCommand cm) { DataTable tbl = new DataTable(); try { OpenCon(); cm.Connection = con; SqlDataAdapter da = new SqlDataAdapter(cm); da.Fill(tbl); } catch (Exception ex) { throw (ex); } finally { CloseCon(); DisposeCon(); } return tbl; } public string GetValue(DataTable dt) { string value = ""; if (dt != null && dt.Rows.Count > 0) value = dt.Rows[0].ItemArray[0].ToString(); return value; } public string GetValue(string sql) { DataTable dt = GetTable(sql); return GetValue(dt); } public string GetValue(SqlCommand cm) { DataTable dt = GetTable(cm); return GetValue(dt); } private void OpenCon() { = new SqlConnection(conStr); con.Open(); } private void CloseCon() { con.Close(); } private void DisposeCon() { con.Dispose(); } public int Excute(string sql) { SqlCommand cm = new SqlCommand(sql); return Excute(cm); } public int Excute(SqlCommand cm) { try { OpenCon(); cm.Connection = con; return cm.ExecuteNonQuery(); } catch (Exception ex) { throw (ex); //return -1; } finally { CloseCon(); DisposeCon(); } } public string table_html(string sql ,string css="") { string html = ""; DataTable dt = this.GetTable(sql); html += ""; html += ""; foreach (DataColumn c in dt.Columns) { html += string.Format("{0}", c.ColumnName); } html += ""; foreach (DataRow r in dt.Rows) { html += ""; foreach (DataColumn c in dt.Columns) { html+=string.Format("{0}",r[c.ColumnName]); } html += ""; } html += ""; return html; } } } ...ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP VŨ HOÀI SƠN NGHIÊN CỨU ỨNG DỤNG ĐẠI SỐ GIA TỬ TRONG CHẨN ĐOÁN SỰ CỐ TIỀM ẨN CỦA MÁY BIẾN ÁP LỰC Chuyên ngành: Kỹ thuật... lựa chọn đề tài “ Nghiên cứu ứng dụng đại số gia tử chẩn đoán cố tiềm ẩn máy biến áp lực làm đề tài nghiên cứu luận văn thạc sĩ kỹ thuật Mục tiêu, đối tượng phạm vi nghiên cứu - Mục tiêu: Phân... PHÁP CHẨN ĐOÁN SỰ SỐ TIỀM ẨN CỦA MÁY BIẾN ÁP LỰC Nội dung trọng tâm chương nghiên cứu về: Các lỗi thường xảy MBA lực vận hành hệ thống điện; Q trình chẩn đốn, sở lý thuyết phương pháp chẩn đoán;