Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
4,06 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ TRẦN DUY TRUNG NGHİÊN CỨU THAY THẾ HỆ THỐNG ĐÁNH LỬA TRÊN XE WAVE RSX 110 BẰNG HỆ THỐNG ĐÁNH LỬA THEO CHƯƠNG TRÌNH LUẬN VĂN THẠC SĨ KỸ THUẬT CƠ KHÍ ĐỘNG LỰC Đà Nẵng - Năm 2019 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ TRẦN DUY TRUNG NGHIÊN CỨU THAY THẾ HỆ THỐNG ĐÁNH LỬA TRÊN XE WAVE RSX 110 BẰNG HỆ THỐNG ĐÁNH LỬA THEO CHƯƠNG TRÌNH CHUN NGÀNH: KỸ THUẬT CƠ KHÍ ĐỘNG LỰC Mã số: 60.52.01.16 LUẬN VĂN THẠC SĨ KỸ THUẬT CƠ KHÍ ĐỘNG LỰC NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS.TRẦN THANH HẢI TÙNG Đà Nẵng - Năm 2019 LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn Trần Duy Trung LỜI NÓI ĐẦU Ngày nay, nguồn nguyên liệu cung cấp cho người ngày có xu hướng cạn kiệt Vì vậy, vấn đề tiết kiệm nhiên liệu quốc gia giới quan tâm nghiên cứu Bên cạnh vấn đề tiết kiệm nhiên liệu vấn đề ô nhiễm môi trường quan tâm Do vậy, xu hướng nhiều xe máy thay hệ thống đánh lửa thường hệ thống đánh lửa điều khiển theo chương trình kỷ thuật số mà lợi ích lớn đến từ khả tạo hịa khí xác, nhờ tiết kiệm nhiên liệu, giảm thiểu nhiểm mơi trường Qua q trình học tập nghiên cứu thấy việc thay hệ thống đánh lửa thường xe máy hệ thống đánh lửa điều khiển theo chương trình kỷ thuật số cần thiết Với điều khiển ECU cho phép điều chỉnh xác lượng nhiên liệu, thời điểm đánh lửa theo chế độ tải trọng động cơ, nhờ cải thiện đặc tính mơ men tăng tính kinh tế động giảm lượng khí thải độc hại mơi trường Với lý chọn đề tài “Nghiên cứu thay hệ thống đánh lửa xe WAVE RSX 110 hệ thống đánh lửa theo chương trình” Với đề tài tơi hy vọng góp phần nâng cao chất lượng dòng sản phẩm động xe máy Việt Nam thời gian tới Tôi xin chân thành cám ơn giúp đỡ bảo tận tình PGS.TS.Trần Thanh Hải Tùng giúp đỡ tạo điều kiện thầy cô giáo mơn Cơ Khí Ơtơ giúp tơi hồn thành đề tài Nhưng chưa có nhiều kinh nghiệm trình độ thân cịn hạn chế nên khơng tránh khỏi sai xót Tơi mong nhận ý kiến đóng góp, bảo thầy để tơi ứng dụng đề tài tốt thực tế Đà nẵng, Ngày 24 tháng 04 năm 2019 Học viên thực Trần Duy Trung TÓM TẮT Tên đề tài: “Nghiên cứu thay hệ thống đánh lửa xe WAVE RSX 110 hệ thống đánh lửa theo chương trình” Học viên: Trần Duy Trung Chuyên ngành: Kỹ thuật khí động lực Mã số: 60.52.01.16 Trường Đại học Bách khoa - Đại học Đà Nẵng Khóa: K32 Tóm tắt: Nghiên cứu thay hệ thống đánh lửa xe WAVE RSX 110 hệ thống đánh lửa điện tử điều khiển, gọi hệ thống đánh lửa theo chương trình Việc điều khiển góc đánh lửa sớm góc ngậm điện (dwell angle) máy tính đảm nhận Các thơng số tốc độ động cơ, tải, nhiệt độ cảm biến mã hóa tín hiệu đưa vào ECU xử lý tính tốn để đưa góc đánh lửa sớm tối ưu theo chế độ hoạt động động Sau nhận tín hiệu từ cảm biến ECU động tính tốn thời điểm đánh lửa tối ưu lưu nhớ để phù hợp với chế độ hoạt động động cơ, sau gửi tín hiệu đánh lửa thích hợp đến IC đánh lửa góc đánh lửa sớm hiệu chỉnh gần sát với đặc tính lí tưởng, lượng nhiệt biến thành động lực có hiệu cao động tạo áp lực nổ cực đại vào thời điểm đánh lửa, phát áp suất cực đại chậm chút, sau đánh lửa làm giảm mức độ phát thải khí CO2, NOx, HC, CO … ABSTRACT Title of the project : “Study to replace the ignition system on the WAVE RSX 110 by the ignition system according to the program” Abstract: The study replaced the ignition system on the WAVE RSX 110 by an electronically controlled ignition system, called a program ignition system The control of the early ignition angle and the dwell angle (dwell angle) will be taken care of by the computer Parameters such as engine speed, load, and temperature are encoded by signal sensors to be processed and calculated by ECU to provide an optimal early ignition angle according to each mode of operation of the engine After receiving signals from the engine ECU sensors calculate the optimal ignition time stored in memory to match each engine operating mode, then send the appropriate ignition signal to the IC hit The fire and early ignition angle are adjusted close to the ideal characteristic, the thermal energy is turned into the most efficient driving force and the engine generates the maximum explosive pressure at the time of ignition, it emits pressure Maximum yield is a bit slow, after ignition and will reduce the level of CO2, NOx, HC, CO emissions MỤC LỤC LỜI CAM ĐOAN LỜI NÓI ĐẦU TÓM TẮT MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC CÁC BẢNG DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT MỞ ĐẦU 1.Lý chọn đề tài 2.Đối tượng phạm vi nghiên cứu 3.Phương pháp nghiên cứu 4.Ý nghĩa khoa học thực tiễn đề tài Chương - TỔNG QUAN VỀ TÌNH HÌNH NGUYÊN CỨU 1.1 Tổng quan hệ thống đánh lửa động đốt 1.1.1.Công dụng, phân loại, yêu cầu 1.1.1.1 Công dụng 1.1.1.2.Phân loại 1.1.1.3.Yêu cầu 1.1.2 Nguyên lý hoạt đông HTĐL 1.1.2.1 Nguyên lý tạo dòng điện cao áp 1.2 Lịch sử phát triển Hệ thống đánh lửa 1.2.1 Kiểu điều khiển má vít 1.2.2.Kiểu bán dẫn 1.2.3 Kiểu bán dẫn có ESA (Đánh lửa Sớm điện tử) 1.2.4 Hệ thống đánh lửa trực tiếp (DIS) 1.2.5.Hệ thống đánh lửa điều khiển kỹ thuật số 1.3.Khái quát đánh lửa sớm điện tử (ESA) 1.3.1.Mô tả hoạt động hệ thống ESA 1.3.2 Khái quát việc điều khiển đánh lửa sớm 10 1.3.3 Các giai đoạn cháy hịa khí 10 1.3.4 Điều khiển thời điểm đánh lửa 11 1.4 Kết luận: 12 Chương - GIỚI THIỆU HỆ THỐNG ĐÁNH LỬA ĐIỆN TỬ TRÊN XE MÁY 14 2.1 Cơ sở lý thuyết đánh lửa động đốt 14 2.1.1.1 Hiệu điện thứ cấp cực đại U2m 14 2.1.1.2 Hiệu điện đánh lửa Uđl 14 2.1.1.3 Hệ số dự trữ Kdt 15 2.1.1.4 Năng lượng dự trữ Wdt 15 2.1.1.5 Tốc độ biến thiên hiệu điện thứ cấp S 15 2.1.1.5 Tần số chu kỳ đánh lửa 16 2.1.1.6 Góc đánh lửa sớm 16 2.1.2.Quá trình tăng trưởng dòng sơ cấp 17 2.1.3 Q trình ngắt dịng sơ cấp 18 2.1.4 Q trình phóng điện điện cực bougie 20 2.2 Lý thuyết mạch điện tử 21 2.2.1.Giới thiệu board Arduino Uno 22 2.2.2.Giới thiệu board Arduino Nano 23 2.2.3.Giới thiệu board Arduino Mega 2560 24 2.2.4.Quá trình xử lý tín hiệu vào Arduino 24 2.2.4.1.Chuyển đổi tương tự – số (A/D) 25 2.2.4.2 Chuyển đổi xung – số 27 2.2.4.3.Chuyển đổi từ tín hiệu on/off sang tín hiệu số 27 2.3.Các loại cảm biến, bougie, bobine xe máy 27 2.3.1.Cảm biến vị trí bướm ga 27 2.3.1.1.Chức nhiệm vụ 27 2.3.1.2 Phân loại 27 2.3.1.3 Cấu tạo 29 2.3.2.Cảm biến oxy 29 2.3.2.1.Chức nhiệm vụ 29 2.3.2.2.Nguyên lý hoạt động 29 2.3.2.3.Cấu tạo 29 2.3.3.Cảm biến áp suất đường ống nạp 30 2.3.3.1.Chức nhiệm vụ 30 2.3.3.2.Nguyên lý làm việc 31 2.3.3.3.Cấu tạo 31 2.3.4.Cảm biến nhiệt độ nước làm mát 31 2.3.4.1.Chức nhiệm vụ 31 2.3.4.2.Nguyên lý hoạt động 31 2.3.4.3.Cấu tạo 32 2.3.5.Cảm biến vị trí trục cam, cảm biến vị trí trục khuỷu 32 2.3.5.1.Chức nhiệm vụ 32 2.3.5.2 Nguyên lý hoạt động 33 2.3.5.3.Cấu tạo 33 2.3.6 Bougie 34 2.3.7.Bobine 35 2.4.Thiết bị phần mềm thu nhận tín hiệu 35 2.4.1.Module LCD I2C 35 2.4.2.Màn hình LCD 20x4B 37 2.5.Mơ hình nội suy phần mềm lập trình điều chỉnh góc đánh lửa sớm 39 2.5.1 Mơ hình nội suy theo hàm biến 39 2.5.2 Mơ hình nội suy theo hàm nhiều biến 41 2.6.Kết luận 43 Chương - THIẾT KẾ THỰC NGHIỆM 44 3.1.Đặc điểm xe Honda Wave 110 44 3.2.Thiết kế lắp đặt hệ thống đánh lửa điện tử lên xe máy 45 3.2.1.Phương án lắp đặt hệ thống đánh lửa điện tử lên xe máy 45 3.2.1.1 Chọn phương án 45 3.2.2.Phân tích lựa chọn cảm biến gắn động 46 3.2.2.1.Cảm biến vị trí bướm ga 46 3.2.2.2.Cảm biến áp suất đường ống nạp 47 3.2.2.3.Cảm biến vị trí trục cam, cảm biến vị trí trục khuỷu 47 3.3.Thiết kế lắp đặt cảm biến lên động 47 3.3.1.Lắp đặt cảm biến vị trí bướm ga 47 3.3.2.Lắp đặt cảm biến áp suất khí nạp 48 3.3.3.Lắp đặt cảm biến vị trí trục cam, cảm biến vị trí trục khuỷu 48 3.4.Mô chế tạo mạch điều khiển đánh lửa điện tử 49 3.4.1.Cơ sở điều khiển đánh lửa 49 3.4.2 Phương pháp điều khiển đánh lửa 50 3.4.3.Tính góc đánh lửa sớm 51 3.4.4 Hiệu chỉnh góc đánh lửa theo chế độ làm việc động 52 3.4.5.Thuật toán điều khiển đánh lửa 52 3.5.Mô chế tạo mạch điều khiển 53 3.5.1 Bộ điều khiển trung tâm 53 3.5.2.Thiết kế mạch điều khiển hệ thống đánh lửa 53 3.5.3.Chế tạo mạch điều khiển đánh lửa 53 3.6.Chương trình điều khiển đánh lửa arduino 54 Chương KẾT QUẢ THỬ NGHIỆM VÀ BÀN LUẬN 55 4.1.Kiểm tra chạy thử 55 4.1.1.Quy trình kiểm tra 55 4.1.2.Các bước tiến hành kiểm tra 55 1.1.Chạy thử 56 4.2.Kết đo 57 4.2.1.Kết đo phịng thí nghiệm 57 KẾT LUẬN-KIẾN NGHỊ 60 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC DANH MỤC HÌNH ẢNH Hinh 1.1 Hệ thống đánh lửa má vít Hinh 1.2 Hệ thống đánh lửa bán dẫn .5 Hinh 1.3 Hệ thống ESA Hinh 1.4 Hệ thống DIS Hinh 1.5 : So sánh đặc tuyến điều chỉnh góc đánh lửa sớm điện tử khí .7 Hinh 1.6 Sơ đồ ESA với cấu đánh lửa sớm điện tử Hinh 1.7 Sơ đồ mạch điện mô tả hoạt động ESA Hinh 1.8: Góc đánh lửa sớm Hinh 1.10 Quá trình cháy 10 Hình 1.9 Điều khiển góc đánh lửa sớm 12 Hinh 1.10: Bản đồ góc đánh lửa sớm lý tưởng theo tốc độ tải động 12 Hình 2.1: Sơ đồ nguyên lý hệ thống đánh lửa 17 Hình 2.2: Sơ đồ tương đương mạch sơ cấp hệ thống đánh lửa .17 Hình 2.3: Quá trình tăng trưởng dòng sơ cấp i1 .18 Hình 2.4: Sơ đồ tương đương hệ thống đánh lửa 19 Hình 2.5: Qui luật biến đổi dịng điện sơ cấp i1 hiệu điện thứ cấp u2m .19 Hình 2.6: Qui luật biến đổi hiệu điện thứ cấp U2m cường độ dòng điện thứ cấp i2 transistor công suất ngắt 20 Hình 2.7 Board Arduino Uno .22 Hình 2.9: Board Arduino Mega 2560 24 Hình 2.10 Dạng tín hiệu tương tự 25 Hình 2.11 Sai số số bit hạn chế 26 Hình 2.12 : Cảm biến vị trí bướm ga loại tiếp điểm .28 Hình 2.13 : Cảm biến vị trí bướm ga loại tuyến tính 28 Hình 2.14 : Cảm biến vị trí bướm ga loại Hall 28 Hình 2.15: Cảm biến oxy loại nung nóng 30 Hình 2.16: Cảm biến oxy loại nung nóng 30 Hình 2.17: Cảm biến áp suất đường ống nạp 31 Hình 2.18: Cảm biến nhiệt độ nước 32 Hình 2.19: Cảm biến vị trí trục cam loại cảm biến hiệu ứng điện từ 33 Hình 2.20: Cảm biến vị trí trục cảm loại Hall 34 Hình 2.21: Cấu tạo buji đánh lửa 34 Hình 2.22: Cấu tạo bơ-bin đánh lửa .35 Hình 2.23 Mạch điều khiển hình LCD giao tiếp I2C 36 Hình 2.24 Màn hình LCD 20x4B 37 temp = 0; } } void readMAP() { unsigned int tempReading; tempReading = analogRead(pinMAP); //temp = fastMap1023toX(tempReading,100); } void readO2() { unsigned int tempReading; tempReading = analogRead(pinO2); aveO2.push(fastMap1023toX(tempReading,5000)); } void readIAT() { unsigned int tempReading; tempReading = analogRead(pinIAT); //aveIAT.push(fastMap1023toX(tempReading,5000)); aveIAT.push(tempReading); } void readCLT() { unsigned int tempReading; tempReading = analogRead(pinCLT); //aveIAT.push(fastMap1023toX(tempReading,5000)); aveCLT.push(tempReading); } void readA6() { int tempReading; tempReading = analogRead(pinA6); temp2 = tempReading-511; } void loop100ms() { if (loopTime>=next100ms) { next100ms=loopTime+1e5; //readTPS(); } } void loop250ms() { if (loopTime>=next250ms) { 10 next250ms=loopTime+25e4; if ((micros() - lastTrigTime) > 1e5) { lastTrigTime = micros(); bRUN = false; rpm = 0; trigCount = 0; trigCount = 0; counts = 0; } else { rpm = 5e6/aveGapTimeMean; } } } void loop500ms() { if (loopTime>=next500ms) { next500ms=loopTime+5e5; // if (rpm>0){ digitalWrite(pinPUMP,HIGH); } else { digitalWrite(pinPUMP,LOW); } } } void loop1000ms() { loop1000msCount++; if (loopTime>=next1000ms) { next1000ms=loopTime+1e6; //LCD if (!bRUN) { readSensor(); } advDegree = 30*(1.0-(double)advTime/aveGapTimeMean); // lcdWrite(2,0,4," ",String(rpm)); lcdWrite(2,1,4," ",String(aveTPS.mean(),0)); lcdWrite(2,2,4," ",String(injectionTime)); 11 lcdWrite(2,3,4," ",String(advDegree,1)); lcdWrite(9,0,4," ",String(aveO2.mean(),0)); lcdWrite(9,1,4," ",String(aveIAT.mean(),0)); lcdWrite(9,2,4," ",String(aveCLT.mean(),0)); lcdWrite(16,0,4," ",String(temp3)); lcdWrite(16,1,4," ",String(temp2)); lcdWrite(16,2,4," ",String(counts)); lcdWrite(14,3,6," ",String(loop1000msCount)); loop1000msCount = 0; } } void serialCommand() { if (bStringComplete) { // clear the string: Serial.println(inputString); int i = inputString.indexOf('='); if (i > 0) { String subString = inputString.substring(0,i); String subString2 = inputString.substring(i+1,inputString.length()); //Serial.println(subString); float tempx = subString2.toFloat(); //Serial.println(temp); if (subString == "a") { temp=tempx; } else { } } else { if (inputString == "save") { writeAllConfig(); } else if (inputString == "load") { LoadPreTable(); Serial.println("Load done!"); } else if (inputString == "print") { 12 printTable(); } else if (inputString == "test") { Serial.println(map(6,0,10,30,20)); } else { Serial.println("Nothing to do!"); } } inputString = ""; bStringComplete = false; } } void loop() { // put your main code here, to run repeatedly: loopTime=micros(); serialCommand(); loop100ms(); loop250ms(); loop500ms(); loop1000ms(); } void serialEvent() { while (Serial.available()) { // get the new byte: char inChar = (char)Serial.read(); // if the incoming character is a newline, set a flag // so the main loop can something about it: if (inChar == '\n') { bStringComplete = true; } else { // add it to the inputString: inputString += inChar; } } } void lcdWrite(byte x, byte y, String text) { lcd.setCursor(x,y); 13 lcd.print(text); } void lcdWrite(byte x, byte y, unsigned long number) { lcd.setCursor(x,y); lcd.print(number); } void lcdWrite(byte x, byte y, byte z, double number) { lcd.setCursor(x,y); lcd.print(number,z); } void lcdWrite(byte x, byte y, byte l, String text1, String text2) { lcd.setCursor(x,y); byte l2 = text2.length(); if (l>l2) { for (byte i=0; i