1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế chế tạo bộ điều khiển xe e rev (extended range electric vehicle)

149 4 0

Đ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

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT Ô TÔ THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN XE E - REV (EXTENDED RANGE ELECTRIC VEHICLE) GVHD: ThS HUỲNH QUỐC VIỆT SVTH: NGUYỄN GIA BẢO ĐINH NHẬT CƯỜNG NGUYỄN THANH TÂN S K L01 0 8 Tp Hồ Chí Minh, tháng 8/2022 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN XE E - REV (EXTENDED RANGE ELECTRIC VEHICLE) SVTH: GVHD: Nguyễn Gia Bảo MSSV: 18145088 Đinh Nhật Cường MSSV: 18145092 Nguyễn Thanh Tân MSSV: 18145229 ThS Huỳnh Quốc Việt Tp Hồ Chí Minh, tháng 08 năm 2022 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc TP Hồ Chí Minh, ngày 23 tháng 02 năm 2022 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: NGUYỄN GIA BẢO MSSV: 18145088 ĐINH NHẬT CƯỜNG MSSV: 18145092 NGUYỄN THANH TÂN MSSV: 18145229 Ngành: Cơng Nghệ Kỹ Thuật Ơ Tơ Khóa: 2018 Lớp: 18145CL1A Tên đề tài: THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN XE E - REV (EXTENDED RANGE ELECTRIC VEHICLE) Nhiệm vụ đề tài - Nghiên cứu, ứng dụng lập trình Arduino MATLAB - Nghiên cứu, chế tạo điều khiển động - Thiết kế thu thập, xử lí tín hiệu điều khiển hệ thống - Hiển thị thông tin xe E - REV tương tác người dùng hình cảm ứng Sản phẩm đề tài - Mơ hình xe E – REV bao gồm điều khiển động hình hiển thị - File lập trình Arduino, file mô Matlab, file thiết kế giao diện hiển thị - File thuyết minh, video thực nghiệm Ngày giao nhiệm vụ đề tài: 23/02/2022 Ngày hoàn thành nhiệm vụ: 10/08/2022 TRƯỞNG BỘ MÔN CÁN BỘ HƯỚNG DẪN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc PHIẾU NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP (Dành cho giảng viên hướng dẫn) Họ tên sinh viên: NGUYỄN GIA BẢO MSSV: 18145088 ĐINH NHẬT CƯỜNG MSSV: 18145092 NGUYỄN THANH TÂN MSSV: 18145229 Hội đồng: Tên đề tài: THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN XE E - REV (EXTENDED RANGE ELECTRIC VEHICLE) Ngành đào tạo: Cơng Nghệ Kỹ Thuật Ơ Tơ Khóa: 2018 Họ tên GV hướng dẫn: GV.ThS HUỲNH QUỐC VIỆT Ý KIẾN NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Bằng chữ: Tp.Hồ Chí Minh, ngày….tháng 08 năm 2022 Giảng viên hướng dẫn (Ký, ghi rõ họ tên) CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc PHIẾU NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP (Dành cho giảng viên phản biện) Họ tên sinh viên: NGUYỄN GIA BẢO MSSV: 18145088 ĐINH NHẬT CƯỜNG MSSV: 18145092 NGUYỄN THANH TÂN MSSV: 18145229 Hội đồng: Tên đề tài: THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN XE E - REV (EXTENDED RANGE ELECTRIC VEHICLE) Ngành đào tạo: Cơng Nghệ Kỹ Thuật Ơ Tơ Khóa: 2018 Họ tên GV hướng dẫn: GV.ThS HUỲNH QUỐC VIỆT Ý KIẾN NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Bằng chữ: Tp.Hồ Chí Minh, ngày….tháng 08 năm 2022 Giảng viên phản biện (Ký, ghi rõ họ tên) LỜI CẢM ƠN Đề tài “Thiết kế chế tạo điều khiển xe E_REV (Extended Range Electric Vehicle)” đề tài có tính ứng dụng cao thời điểm chuyển đổi từ xe động đốt truyền thống sang xe điện Nhóm thực nổ lực tìm hiểu, học hỏi để áp dụng vào mơ hình thực tế với trợ giúp đắc lực đến từ giáo viên hướng dẫn, nhóm thực xin gửi lời cảm ơn chân thành tới thầy Huỳnh Quốc Việt, người tận tình hướng dẫn, chia sẻ tài liệu đưa góp ý để đề tài nhóm hồn thiện tốt Trong q trình thực đề tài nhóm gặp khơng khó khăn phần cứng lẫn phần mềm nhờ hướng dẫn góp ý quý báu thầy mà nhóm giải đượ vấn đề Chúng em xin gửi lời cảm ơn đến thầy phản biện nhận xét cụ thể đóng góp ý kiến quý báu để đồ án hồn thiện Để thực đề tài kinh nghiệm tích lũy từ năm đại học quan trọng, qua nhóm xin gửi lời cảm ơn đến thầy cô trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh đặc biệt thầy cô Khoa Đào Tạo Chất Lượng Cao giúp nhóm thực có kiến thức việc học áp dụng vào việc làm sau Nhóm xin gửi lời cảm ơn đến nhóm thực đồ án khác anh chị khóa trước hỗ trợ góp ý chân thành Xin chúc quý thầy cô dồi sức khỏe, tràn đầy lượng có thật nhiều niềm vui sống Nhóm thực xin chân thành cảm ơn Tp.Hồ Chí Minh, ngày….tháng 08 năm 2022 Nhóm Sinh viên thực i TÓM TẮT Vấn đề nghiên cứu - Chiến thuật điều khiển xe E - REV - Hệ thống điều khiển động Honda Wave RSX FI_AT - Mô trạng thái nạp xe E - REV phần mềm MATLAB - Điều khiển bật tắt động tự động theo SOC Arduino - Điều khiển bướm động nhiệt mô tơ DC servo Faulhaber - Ứng dụng hệ thống quản lí ắc quy - Hiển thị thông tin tương tác người dùng hình cảm ứng Nextion Các hướng tiếp cận - Thông qua phát triển công nghệ điều khiển qua máy tính ứng dụng cơng nghệ học tập nghiên cứu trường Đại học Sư phạm Kỹ thuật TP.HCM - Dựa vào tài liệu tham khảo khóa học trước với hỗ trợ, hướng dẫn cung cấp tài liệu thầy Huỳnh Quốc Việt Cách giải vấn đề - Mô trạng thái nạp theo SOC MATLAB - Lấy tín hiệu cảm biến từ động nhiệt - Lập trình thu thập tính hiệu cảm biến thông qua board Arduino Mega 2560, Arduino Uno theo mô MATLAB ii - Ứng dụng điều khiển PID để điều khiển bướm ga động nhiệt động DC servo Faulhaber - Chế tạo mạch thu thập điện áp mạch cân cho ắc quy cao áp - Thiết kế giao diện cho hình cảm ứng Nextion phần mềm Nextion Editor, hiển thị thông tin tương tác với Arduino - Tham khảo tài liệu có sẵn Internet, ý kiến bạn bè, anh chị khóa trước đặc biệt thầy hướng dẫn Một số kết đạt - Thiết kế mạch tự động khởi động tắt động theo SOC - Điều khiển bướm ga theo thuật toán PID - Mạch chuyển xung để đo tốc độ động - Mạch thu thập tín hiệu điện áp khối pin ắc quy cao áp - Mạch cân khối pin ắc quy cao áp - Hiển thị thơng tin xe hình cảm ứng, tương tác người dùng với hệ thống xe qua việc bật tắt động điện, đèn trần iii else if (cellMax==2) { digitalWrite(28,LOW); digitalWrite(30,HIGH);digitalWrite(32,LOW);timexa2++;} else if (cellMax==3) { digitalWrite(28,LOW); digitalWrite(30,LOW);digitalWrite(32,HIGH);timexa3++;} } else { digitalWrite(28,LOW);digitalWrite(30,LOW);digitalWrite(32,LOW);} } //Chương trình hiển thị giá trị cảm biến///////////////////////////////////////////// void hienthiGiatri() { Serial.print(docPOT); Serial.print(","); Serial.print(cell2); Serial.print(","); Serial.print(soc1); Serial.print("%"); Serial.print(","); Serial.print(cell3); Serial.print(","); Serial.print(soc2); Serial.print("%"); Serial.print(","); Serial.print(cell4); Serial.print(","); Serial.print(soc3); Serial.print("%"); Serial.print(","); Serial.print(voltage); Serial.print(","); Serial.print(soctong); Serial.print("%"); Serial.print(","); Serial.print(Max(cellArray)); Serial.print(","); Serial.print(Min(cellArray)); Serial.print(","); Serial.println(Asac); Serial.print(","); Serial.print(xang); Serial.print(","); Serial.print(toc); Serial.print(","); Serial.print(nhietdo); Serial.print(","); Serial.print(demxun); Serial.print(","); Serial.print(v); Serial.print(","); Serial.print(check); Serial.print(","); byte value = 0xff; while (Serial2.available()) { value = Serial2.read(); switch (value) { case 0x10: digitalWrite(24, HIGH); break; case 0x11: digitalWrite(24, LOW); break; case 0x12: digitalWrite(22, HIGH); break; case 0x13: digitalWrite(22, LOW); break; } } // code gui tocdochuc=map((int)v/10,0,9,4,13); tocdochuc=constrain(tocdochuc,4,13); tocdodonvi=map((int)v%10,0,9,14,23); tocdodonvi=constrain(tocdodonvi,14,23); if (tocdochuc > tocdochucSMOOTH) {tocdochucSMOOTH++;} else if (tocdochuc < tocdochucSMOOTH) {tocdochucSMOOTH ;} else {} if (tocdodonvi > tocdodonviSMOOTH) {tocdodonviSMOOTH++;} else if (tocdodonvi < tocdodonviSMOOTH) {tocdodonviSMOOTH ;} else {} RPM=map(toc,0,12000,330,570); if (RPM>359) { RPM=RPM-360; } Serial2.print("RPM.val="); Serial2.print(RPM); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("va2.val="); Serial2.print(check); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); RPMMOTO=map(vmotor,0,4000,330,570); if (RPMMOTO>359) { RPMMOTO=RPMMOTO-360; } Serial2.print("RPMMOTO.val="); Serial2.print(RPMMOTO); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("chuc.pic="); Serial2.print(tocdochuc); // goi bien x0 // gui gia tri vao x0 Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("donvi.pic="); Serial2.print(tocdodonvi); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("speed.val="); Serial2.print(toc); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("Pin1.val="); Serial2.print(soc1); // goi bien x0 // gui gia tri vao x0 Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("Pin2.val="); Serial2.print(soc2); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("Pin3.val="); Serial2.print(soc3); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("SOC.val="); Serial2.print(soctong); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("SOC2.val="); Serial2.print(soctong); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Pin1=cell2*100; Serial2.print("P1.val="); Serial2.print(Pin1); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Pin2=cell3*100; Serial2.print("P2.val="); Serial2.print(Pin2); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Pin3=cell4*100; Serial2.print("P3.val="); Serial2.print(Pin3); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Total=voltage*100; Serial2.print("P0.val="); Serial2.print(Total); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Fuel=map(xang*100,0,400,0,100); Serial2.print("Fuel.val="); Serial2.print(Fuel); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Temp=map(nhietdo,0,200,0,100); Serial2.print("Temp.val="); Serial2.print(Temp); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); int Ampe=Asac*100; Serial2.print("Ampe.val="); Serial2.print(Ampe); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("va3.val="); Serial2.print(Ampe); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); } //Chương trình chính// void loop() { a=0; tinhtoanCambien(); byte cellMax = Max(cellArray); byte cellMin = Min(cellArray); //khởi động máy tự động theo tín hiệu điện áp(voltage)////// /* while(analogRead(POT)2000 && toc100) { c=1; hienthiGiatri();} } } tatDongco(); digitalWrite(28,LOW);digitalWrite(30,LOW);digitalWrite(32,LOW); digitalWrite(sac,LOW); Asac=0; mobuom=0; digitalWrite(bga,HIGH); d++; if (d>100) { d=1; hienthiGiatri();} ////////// wait=0; settime=curtimew; settimew=curtimew; toc=0; revD=1300; dem=1; STtime=0; mobuom=0; } Code Arduino Uno #include #define M1 11 #define M2 10 #define ENA #define buomga A3 int vitri=0, dc=0, cambien1=0; int e,e1,e2,setpoint=0; float T,alpha,beta,gama,Kp,Ki,Kd,output,output1,c; int a = 1; void myPID() { if (a==0) { setpoint = 25; e = setpoint - vitri; alpha = 2*T*Kp + Ki*T*T + 2*Kd; beta = T*T*Ki - 4*Kd - 2*T*Kp; gama = 2*Kd; output = (alpha*e + beta*e1 + gama*e2 + 2*T*output1)/(2*T); output1 = output; e2 = e1; e1 = e; if (output>=0.3 ) { dc = map(output,0,6,15,25); chaythuan(dc); } else if (output800) { c=1; Serial.print(cambien1); Serial.print(","); Serial.print(vitri); Serial.print(","); Serial.print(output); Serial.print(","); Serial.print(dc); Serial.print(","); Serial.println(a);}}

Ngày đăng: 11/11/2023, 10:52