Luận án Nghiên cứu tối ưu hóa thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực xe hybrid
Vấn đề tiết kiệm nhiên liệu hóa thạch và giảm ô nhiễm môi trường do khí
thải của động cơ đốt trong (ICE) đã và đang là áp lực rất lớn đối với các nhà thiết
kế và chế tạo xe cơ giới. Với trình độ công nghệ hiện có và nếu chỉ xét từ góc độ
bảo vệ môi trường thì xe chạy bằng động cơ điện (EM) là giải pháp triệt để nhất
cho tình trạng ô nhiễm bởi khí thải của xe cơ giới hiện nay. Thực tế đã có hàng loạt
mẫu xe cơ giới chạy bằng điện được sinh ra từ các tấm pin mặt trời gắn trực tiếp
trên xe hoặc chạy bằng điện từ ắcqui đã được thiết kế và chế tạo. Tuy nhiên, nếu xét
một cách toàn diện, trong đó có cả khả năng phải huỷ bỏ hàng ngàn dây chuyền chế
tạo và lắp ráp xe cơ giới hiện nay thì xe chạy bằng ICE vẫn là loại phương tiện giao
thông cơ giới có vị trí độc tôn và hàng triệu chiếc xe chạy bằng ICE ở khắp nơi trên
thế giới vẫn sẽ là những hình ảnh quen thuộc cho nhiều thế hệ mai sau.
Phát triển xe hybrid được xem là một trong những giải pháp quá độ nhằm tiết
kiệm nhiên liệu hóa thạch và giảm mức độ gây ô nhiễm môi trường bởi khí thải của
ICE trang bị trên xe cơ giới.
Trong tiếng Anh, từ "hybrid" có nghĩa là "lai/ ghép/ kết hợp", thuật ngữ
"hybrid vehicle" được định nghĩa là phương tiện di động có hệ thống động lực được
cấu thành từ hai hoặc nhiều nguồn động lực khác biệt nhau. Các loại phương tiện di
động như: xe đạp điện chạy bằng cách đạp pedal và bằng EM, ô tô được trang bị cả
động cơ xăng và EM để dẫn động bánh xe chủ động, xe lửa được trang bị cả EM để
chạy bằng điện lưới và động cơ diesel để chạy ở những khu vực không có lưới điện,
máy bay được trang bị động cơ phản lực để bay và EM để di chuyển trên đường
băng, tàu ngầm điện-diesel được trang bị EM để chạy khi tàu lặn và động cơ diesel
để chạy khi tàu nổi trên mặt nước, v.v. đều được xếp vào đối tượng "hybrid
vehicle".
Tóm tắt nội dung tài liệu: Luận án Nghiên cứu tối ưu hóa thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực xe hybrid
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG VŨ THĂNG LONG NGHIÊN CỨU TỐI ƯU HÓA THIẾT KẾ ĐỘ LỚN VÀ THAM SỐ ĐIỀU KHIỂN NGUỒN NĂNG LƯỢNG HỆ ĐỘNG LỰC XE HYBRID Ngành đào tạo: Kỹ thuật cơ khí động lực Mã số: 62520116 LUẬN ÁN TIẾN SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS. TS. Nguyễn Văn Nhận Khánh Hòa, 2015 1 MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI Vấn đề tiết kiệm nhiên liệu hóa thạch và giảm ô nhiễm môi trường do khí thải của động cơ đốt trong (ICE) đã và đang là áp lực rất lớn đối với các nhà thiết kế và chế tạo xe cơ giới. Với trình độ công nghệ hiện có và nếu chỉ xét từ góc độ bảo vệ môi trường thì xe chạy bằng động cơ điện (EM) là giải pháp triệt để nhất cho tình trạng ô nhiễm bởi khí thải của xe cơ giới hiện nay. Thực tế đã có hàng loạt mẫu xe cơ giới chạy bằng điện được sinh ra từ các tấm pin mặt trời gắn trực tiếp trên xe hoặc chạy bằng điện từ ắcqui đã được thiết kế và chế tạo. Tuy nhiên, nếu xét một cách toàn diện, trong đó có cả khả năng phải huỷ bỏ hàng ngàn dây chuyền chế tạo và lắp ráp xe cơ giới hiện nay thì xe chạy bằng ICE vẫn là loại phương tiện giao thông cơ giới có vị trí độc tôn và hàng triệu chiếc xe chạy bằng ICE ở khắp nơi trên thế giới vẫn sẽ là những hình ảnh quen thuộc cho nhiều thế hệ mai sau. Phát triển xe hybrid được xem là một trong những giải pháp quá độ nhằm tiết kiệm nhiên liệu hóa thạch và giảm mức độ gây ô nhiễm môi trường bởi khí thải của ICE trang bị trên xe cơ giới. Trong tiếng Anh, từ "hybrid" có nghĩa là "lai/ ghép/ kết hợp", thuật ngữ "hybrid vehicle" được định nghĩa là phương tiện di động có hệ thống động lực được cấu thành từ hai hoặc nhiều nguồn động lực khác biệt nhau. Các loại phương tiện di động như: xe đạp điện chạy bằng cách đạp pedal và bằng EM, ô tô được trang bị cả động cơ xăng và EM để dẫn động bánh xe chủ động, xe lửa được trang bị cả EM để chạy bằng điện lưới và động cơ diesel để chạy ở những khu vực không có lưới điện, máy bay được trang bị động cơ phản lực để bay và EM để di chuyển trên đường băng, tàu ngầm điện-diesel được trang bị EM để chạy khi tàu lặn và động cơ diesel để chạy khi tàu nổi trên mặt nước, v.v. đều được xếp vào đối tượng "hybrid vehicle". Ô tô hybrid có hệ động lực được cấu thành từ động cơ xăng và EM đã được chế tạo từ những năm cuối thế kỷ XVIII và đã tạo được ấn tượng mạnh đối với 2 khách hàng và giới kỹ nghệ gia ở giai đoạn đầu mới phát triển do đạt được các tính năng vượt trội so với ô tô truyền thống (ô tô chỉ được trang bị một loại nguồn động lực, hoặc là ICE hoặc là động cơ đốt ngoài hoặc là EM). Tuy nhiên, do vận hành và sửa chữa đơn giản hơn, giá thành động cơ xăng và diesel ngày càng giảm do được sản xuất hàng loạt, nguồn cung xăng dầu ngày càng dồi dào với giá rẻ, v.v., ô tô truyền thống đã chiếm lĩnh gần như toàn bộ thị trường của ô tô hybrid trong giai đoạn trước 1990. Dưới áp lực ngày càng tăng của yêu cầu tiết kiệm nhiên liệu hóa thạch và các tiêu chuẩn về khí thải ngày càng khắt khe, ô tô hybrid lại được quan tâm trở lại từ đầu những năm 1990 và đã phát triển nhảy vọt cho đến nay. Bên cạnh những ưu điểm vốn có của phương án hybrid, những tiến bộ vượt bậc của công nghệ chế tạo, điện-điện tử, thông tin, v.v. cũng được xem là yếu tố quan trọng góp phần làm nên thành công của ô tô hybrid hiện đại. Toyota được xem là hãng chế tạo ô tô tiên phong và thành công nhất trong lĩnh vực phát triển ô tô hybrid hiện đại. Dòng ô tô hybrid thương mại hiện đại đầu tiên có tên Toyota Prius được bán ở thị trường Nhật Bản vào năm 1997. Đến tháng 6 năm 2013, khoảng 3 triệu Toyota Prius đã được bán ở 80 quốc gia và khu vực. Hiện nay, hầu hết các hãng chế tạo ô tô hàng đầu trên thế giới đều đã cho ra đời các các mẫu ô tô hybrid của mình và ô tô hybrid đã được khẳng định là một phần của thị trường ô tô hiện nay và trong tương lai. Trong quá trình thiết kế ô tô truyền thống, công suất cực đại của động cơ được xác định trên cơ sở một số tính năng kỹ thuật của ô tô, ví dụ: tính năng động lực học, tính năng việt dã, v.v. được đặt ra khi thiết kế. Đối với ô tô hybrid, các nguồn động lực khác nhau không những phải có độ lớn sao cho tổng công suất do chúng đồng thời cung cấp cho bánh xe chủ động phải bằng công suất cực đại của động cơ ở ô tô truyền thống có tính năng kỹ thuật tương đương, mà công suất của mỗi nguồn động lực còn phải được lựa chọn sao cho cả hệ thống làm việc với các chỉ tiêu kinh tế - kỹ thuật - môi trường cao nhất có thể. Trong quá trình khai thác kỹ thuật, giải pháp hybrid hóa ô tô chỉ có thể đạt được mục tiêu khi tối ưu hóa được các chế độ làm việc của các nguồn năng lượng, 3 ví dụ: thời điểm mà một hoặc một số nguồn năng lượng sẽ ngừng hoạt động hoặc hoạt động ở chế độ nào để phát huy ưu điểm và hạn chế nhược điểm của chúng, tỷ lệ đóng góp công suất của các nguồn động lực cùng tham gia dẫn động các bánh xe chủ động tại một thời điểm, chiến lược tái sử dụng năng lượng mà các nguồn động lực đã cung cấp cho bánh xe chủ động, v.v. Các vấn đề kể trên thuộc nội hàm của khái niệm tối ưu hóa tham số điều khiển nguồn năng lượng của hệ động lực ô tô hybrid. Làm chủ kỹ thuật tối ưu hóa độ lớn và tham số điều khiển nguồn năng lượng của hệ động lực ô tô hybrid là điều kiện tiên quyết để có thể thiết kế và khai thác ô tô hybrid với những lợi ích mà phương án hybrid có thể mang lại. Qua tìm hiểu tài liệu cho thấy đến thời điểm hiện nay, ở Việt Nam chưa có công trình khoa học chuyên sâu nào đã công bố về tối ưu hóa hệ động lực ô tô hybrid. Hầu hết ấn phẩm tiếng Việt về ô tô hybrid mới chỉ đề cập đến những khái niệm cơ bản hoặc giới thiệu những thành tựu mới của các hãng chế tạo ô tô hybrid hoặc thiết kế chế tạo cụm thiết bị, mô hình ô tô hybrid trong phạm vi các đồ án tốt nghiệp đại học hoặc luận văn thạc sĩ, ... Kỹ thuật và công nghệ tối ưu hóa hệ động lực hybrid được áp dụng cho các mẫu ô tô hybrid hiện đại vẫn còn là bí quyết của một số hãng chế tạo ô tô hybrid hàng đầu trên thế giới. Với mục đích nghiên cứu lý thuyết và thực tiễn của giải pháp hybrid hóa để làm cơ sở cho việc thiết kế và chế tạo xe hybrid, đồng thời cho phép đánh giá mức độ phù hợp của các mẫu xe hybrid được khai thác trong điều kiện ở Việt Nam, nghiên cứu sinh (NCS) chọn đề tài luận án: “Nghiên cứu tối ưu hóa thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực xe hybrid ". 2. MỤC TIÊU NGHIÊN CỨU Xây dựng mô hình tối ưu hóa và phát triển giải thuật để tối ưu hóa độ lớn của các nguồn năng lượng và tối ưu hóa các tham số điều khiển nguồn năng lượng của hệ động lực ô tô hybrid, nhằm nâng cao tính kinh tế nhiên liệu, giảm phát thải các chất độc hại có trong khí thải của ICE. 4 3. ĐỐI TƯỢNG NGHIÊN CỨU Ô tô hybrid có hệ thống động lực được cấu thành từ hai loại nguồn động lực là ICE và EM. 4. PHẠM VI NGHIÊN CỨU (1) Các nguồn năng lượng trong cấu trúc tổng thể của hệ động lực của ô tô hybrid kiểu song song và kiểu hỗn hợp, bao gồm: ICE, EM, máy phát điện (EG) và ắcqui điện (AQ). (2) Tối ưu hóa thiết kế độ lớn của các nguồn năng lượng thuộc hệ động lực của ô tô hybrid kiểu song song và kiểu hỗn hợp. Độ lớn của ICE, EM và EG trong luận án này được hiểu là công suất có ích lớn nhất. Độ lớn của AQ được hiểu là dung lượng tổng cộng của các AQ. Tối ưu hóa thiết kế độ lớn các nguồn năng lượng trong luận án này được hiểu là việc xác định công suất có ích lớn nhất của ICE, EM, EG và dung lượng AQ nhằm thỏa mãn các mục tiêu đặt ra. (3) Tối ưu hóa tham số điều khiển nguồn năng lượng của hệ động lực ô tô hybrid kiểu song song và kiểu hỗn hợp. Tối ưu hóa tham số điều khiển được hiểu là việc xác định và kiểm soát chế độ làm việc của các nguồn năng lượng sao cho đạt được các mục tiêu mà phương án hybrid có thể mang lại. Ô tô truyền thống không có yêu cầu tối ưu hóa tham số điều khiển nguồn năng lượng của hệ động lực. Ở loại ô tô này, người lái quyết định vận tốc tức thời của ô tô và công suất tức thời của động cơ thông qua việc tác động lên cần gạt hộp số, bàn đạp ga hoặc bàn đạp phanh. Đối với một số loại ô tô được trang bị động cơ phun nhiên liệu điều khiển điện tử và hộp số tự động, mong muốn của người lái được hiện thực hóa bằng chiến lược điều khiển cấp thành tố (component- level control strategies), ví dụ: bộ điều khiển trung tâm của động cơ quyết định lượng nhiên liệu phun vào xylanh tương ứng với vị trí của bàn đạp ga và bộ điều khiển hộp số quyết định chuyển số, phù hợp với vận tốc của ô tô. Trong trường hợp ô tô hybrid, cần có thêm các quyết định khác nữa, ví dụ: mỗi nguồn năng lượng phải cung cấp bao nhiêu năng lượng để có tổng năng lượng cần thiết cung cấp cho bánh 5 xe chủ động, mỗi nguồn năng lượng phải hoạt động ở chế độ nào để cả hệ thống làm việc với các chỉ tiêu kinh tế - kỹ thuật - môi trường tối ưu, v.v. 5. PHƯƠNG PHÁP NGHIÊN CỨU Nghiên cứu lý thuyết và thực nghiệm với mô hình đối tượng trên máy tính là hai phương pháp nghiên cứu chủ yếu được sử dụng trong luận án. Nội dung nghiên cứu lý thuyết bao gồm: Tìm hiểu các công trình khoa học ở trong và ngoài nước về đề tài ô tô hybrid nói chung và tối ưu hóa hệ động lực hybrid nói riêng. Trên cơ sở đó xác định một số vấn đề cần tiếp tục nghiên cứu theo định hướng đã đặt ra, bao gồm: tối ưu hóa đồng thời độ lớn và các tham số điều khiển các nguồn năng lượng của hệ động lực nhằm nâng cao tính kinh tế nhiên liệu và giảm mức độ phát thải các chất độc hại của ICE nằm trong cấu trúc tổng thể của hệ động lực ô tô hybrid; Xây dựng và phát triển mô hình tối ưu hóa hệ động lực của ô tô hybrid, trong đó có tính đến các điều kiện thực tế ở Việt Nam; Nghiên cứu cải tiến giải thuật đàn ong (Bees Algorithm) và ứng dụng nó trong bài toán tối ưu hóa hệ động lực ô tô hybrid. Bài toán tối ưu hóa đồng thời độ lớn của các nguồn năng lượng và tham số điều khiển hệ động lực ô tô hybrid được giải và đánh giá kết quả bằng mô phỏng thực nghiệm trên máy tính. 6. NỘI DUNG VÀ BỐ CỤC CỦA LUẬN ÁN Nội dung luận án được bố cục thành 4 chương, không kể phần Mở đầu và Phụ lục, bao gồm : Chương 1 : Tổng quan về ô tô hybrid và nghiên cứu tối ưu hóa hệ động lực của ô tô hybrid Chương 2 : Tối ưu hóa thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực ô tô hybrid bằng giải thuật đàn ong Chương 3 : Mô phỏng thực nghiệm tối ưu hóa độ lớn và tham số điều khiển nguồn năng lượng hệ động lực ô tô hybrid Chương 4 : Kết luận và khuyến nghị 6 7. NHỮNG ĐÓNG GÓP CỦA LUẬN ÁN (1) Phát triển mô hình tối ưu hóa đồng thời độ lớn của các nguồn năng lượng và các tham số điều khiển nguồn năng lượng hệ động lực của ô tô hybrid được cấu thành từ ICE và EM, trong đó cho phép xét đến các điều kiện khai thác kỹ thuật thực tế ở Việt Nam; (2) Cải tiến giải thuật đàn ong và ứng dụng nó trong bài toán tối ưu hóa hệ động lực ô tô hybrid; (3) Phát triển mô đun giải thuật đàn ong và tích hợp nó với phần mềm ADVISOR do NREL (National Renewable Energy Laboratory - Hoa Kỳ) xây dựng phục vụ mô phỏng thực nghiệm tối ưu hóa độ lớn và các tham số điều khiển nguồn năng lượng hệ động lực ô tô hybrid. 8. HẠN CHẾ CỦA LUẬN ÁN Luận án mới chỉ đề cập vấn đề tối ưu hóa độ lớn của các nguồn năng lượng và tham số điều khiển nguồn năng lượng thuộc hệ động lực của ô tô hybrid với mục tiêu là giảm tiêu hao nhiên liệu và mức độ phát thải của ICE trong điều kiện vẫn đảm bảo các yêu cầu về tính năng động lực học. Phương pháp tối ưu hóa thiết kế độ lớn và tham số điều khiển nguồn năng lượng của hệ động lực ô tô hybrid bằng giải thuật đàn ong chưa được khảo nghiệm trên các mẫu ô tô hybrid thực trong phòng thí nghiệm hoặc vận hành trong điều kiện thực tế. 7 Chương 1 TỔNG QUAN VỀ Ô TÔ HYBRID VÀ NGHIÊN CỨU TỐI ƯU HÓA HỆ ĐỘNG LỰC CỦA Ô TÔ HYBRID Phần Tổng quan về ô tô hybrid đề cập đặc điểm cấu tạo của các loại ô tô hybrid đã và đang được sử dụng phổ biến, so sánh giữa các loại ô tô hybrid với nhau cũng như giữa chúng và ô tô truyền thống về phương diện cấu trúc, tính kinh tế nhiên liệu, mức độ phát thải gây ô nhiễm môi trường, v.v. Phần Tổng quan về nghiên cứu tối ưu hóa hệ động lực hybrid giới thiệu một số công trình nghiên cứu ở trong nước và trên thế giới về đề tài ô tô hybrid nói chung và tối ưu hóa hệ động lực ô tô hybrid nói riêng, trên cơ sở đó xác định vấn đề cần nghiên cứu là phát triển, hoàn thiện mô hình tổng quát và sử dụng giải thuật mới có ưu điểm hơn để giải bài toán tối ưu hóa đồng thời độ lớn của các nguồn năng lượng và các tham số điều khiển nguồn năng lượng hệ động lực của ô tô hybrid. 8 1.1. TỔNG QUAN VỀ Ô TÔ HYBRID 1.1.1. ĐẶC ĐIỂM CẤU TẠO CỦA Ô TÔ HYBRID Về phương diện cấu tạo, ô tô truyền thống và ô tô hybrid chỉ khác nhau cơ bản ở hệ thống động lực. Hệ thống động lực của ô tô hybrid (sau đây gọi tắt là hệ động lực hybrid) phổ biến hiện nay được cấu thành từ một ICE và một hoặc nhiều EM. Trong các ấn phẩm chuyên ngành bằng tiếng Anh, các thuật ngữ: "hybrid car", "hybrid vehicle", "hybrid road vehicle" và "hybrid electric vehicle" thường được sử dụng để chỉ loại ô tô hybrid có hệ thống động lực như vậy. Trong luận án này, thuật ngữ "xe hybrid" và "ô tô hybrid" được hiểu là có nội hàm tương đương. Căn cứ vào cách thức liên kết giữa ICE và EM, tỷ lệ công suất của ICE và của EM được sử dụng để dẫn động bánh xe chủ động, sự phân công về thời gian làm việc của ICE và của EM trong quá trình vận hành; ô tô hybrid hiện đại được phân thành 3 nhóm: ô tô hybrid kiểu nối tiếp, ô tô hybrid kiểu song song và ô tô hybrid kiểu hỗn hợp. 1.1.1.1. Ô TÔ HYBRID KIỂU NỐI TIẾP Ô tô hybrid kiểu nối tiếp, trong tiếng Anh được gọi là Series Hybrid Electric Vehicle, sau đây viết tắt là S-HEV. Các thành tố cơ bản của hệ động lực của S-HEV bao gồm: một ICE, một hoặc một số EM, một EG, bộ AQ, bộ chuyển đổi điện và cặp bánh răng giảm tốc (xem Hình 1-1). Về cơ bản, hệ động lực của S-HEV chỉ khác hệ động lực của ô tô điện ở chỗ có thêm một ICE và EG. Ở S-HEV, ICE chỉ có chức năng lai EG để cung cấp điện cho EM hoặc nạp điện cho AQ, EM đảm bảo 100% công suất yêu cầu để dẫn động các bánh xe chủ động thông qua một cặp bánh răng giảm tốc. EM chạy bằng điện từ AQ hoặc trực tiếp từ EG. Trong hệ truyền động của S-HEV chỉ cần một cặp bánh răng giảm tốc bố trí giữa EM và vi sai, thay cho hộp số nhiều cấp ở ô tô truyền thống. Trong trường hợp EM được bố trí trực tiếp trong các moayơ của bánh xe chủ động, S- HEV thực tế không có hệ truyền động cơ khí, thay vào đó là hệ truyền động điện gọn nhẹ hơn và tiêu hao ít năng lượng hơn. 9 Hình 1-1. Sơ đồ hệ thống động lực của ô tô hybrid kiểu nối tiếp EM trên S-HEV nói riêng và trên các loại ô tô hybrid khác nói chung, thường được thiết kế để có thể hoạt động như một máy phát điện (sau đây gọi là môtơ-máy phát điện liên hợp, viết tắt là MG) để có thể tận dụng động năng của ô tô trong quá trình phanh hoặc xuống dốc. M ... mass1 global gc_mass1 global ex_mass1 global total_vehicle_mass clc; close all; clear all; input.init.saved_veh_file='PRIUS_JPN_defaults_in'; [a,b]=adv_no_gui('initialize',input); i1_min=0.388; %Giá trị nhỏ nhất của'fc_trq_scale' i1_max=0.699; %Giá trị lớn nhất của'fc_trq_scale' i2_min=0.107; %Giá trị nhỏ nhất của'mc_trq_scale' i2_max=0.535; %Giá trị lớn nhất của'mc_trq_scale' i3_min=0.59; %Giá trị nhỏ nhất của'ess_cap_scale' i3_max=2.95; %Giá trị lớn nhất của'ess_cap_scale' i4_min=0.221; %Giá trị nhỏ nhất của'gc_trq_scale' i4_max=1.106; %Giá trị lớn nhất của'gc_trq_scale' i5_min=5; %Giá trị nhỏ nhất của'cs_electric_launch_spd' i5_max=20;% Giá trị lớn nhất của'cs_electric_launch_spd' i6_min=4000; %Giá trị nhỏ nhất của'cs_min_pwr' i6_max=8000; % Giá trị lớn nhất của'cs_min_pwr' i7_min=0.41; %Giá trị nhỏ nhất của'cs_eng_on_soc' i7_max=0.60;% Giá trị lớn nhất của'cs_eng_on_soc' i8_min=100; %Giá trị nhỏ nhất của'cs_eng_min_spd' i8_max=150; %Giá trị lớn nhất của'cs_eng_min_spd' i9_min=0.15; %Giá trị nhỏ nhất của'cs_lo_soc' i9_max=0.40;% Giá trị lớn nhất của'cs_lo_soc' i10_min=0.61; %Giá trị nhỏ nhất của'cs_hi_soc' i10_max=0.95;% Giá trị lớn nhất của'cs_hi_soc' 155 n= 22; % Số lượng ong trinh sát itr=50; % Số vòng lặp e=7; % Số lượng vùng được chọn m=5; % Số ong trung bình tìm kiếm ở vùng được chọn rho = 0.01; % Tốc độ suy giảm Pheromone alfa=0.5; % Mũ beta=1; % Mũ ngh1=(i1_max-i1_min)/40; % Bán kính vùng tìm kiếm cục bộ ngh2=(i2_max-i2_min)/40; ngh3=(i3_max-i3_min)/40; ngh4=(i4_max-i4_min)/40; ngh5=(i5_max-i5_min)/40; ngh6=(i6_max-i6_min)/40; ngh7=(i7_max-i7_min)/40; ngh8=(i8_max-i8_min)/40; ngh9=(i9_max-i9_min)/40; ngh10=(i10_max-i10_min)/40; load count; disp(count) if count==0 % Kiểm tra xem có phải lần đầu chạy chương trình hay không disp(' '); disp('This is THE FIRST time to run the optimization program'); disp(' '); ph = ones(120,e) % Khởi tạo pheromone fitscore = zeros(120,e) % Khởi tạo fitscore selpatch=zeros(120,e); % Khởi tạo selpatch for i=1:e selpatch(1,i)=m; end selpatch(1,i)=m element=0;% Khởi tạo số ong bắt đầu U=X_random(n,i1_max, i2_max,i3_max, i4_max, i5_max, i6_max,i7_max, i8_max,i9_max,i10_max, i1_min, i2_min,i3_min, i4_min, i5_min,i6_min, i7_min,i8_min,i9_min,i10_min) for i=1:n Par_Q(i,1)=U(i,1); Par_Q(i,2)=U(i,2); Par_Q(i,3)=U(i,3); Par_Q(i,4)=U(i,4); Par_Q(i,5)=U(i,5); Par_Q(i,6)=U(i,6); Par_Q(i,7)=U(i,7); Par_Q(i,8)=U(i,8); Par_Q(i,9)=U(i,9); Par_Q(i,10)=U(i,10); temp=fn(U(i,1),U(i,2),U(i,3),U(i,4),U(i,5),U(i,6),U(i,7),U(i,8),U(i,9),U(i,10)); while temp==-1 % Nếu không tính được fn U(i,:)=X_random(1,i1_max,i2_max,i3_max,i4_max,i5_max,i6_max,i7_max,i8_max,i9_max, i10_max,i1_min,i2_min,i3_min,i4_min,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min) Par_Q(i,1)=U(i,1); Par_Q(i,2)=U(i,2); Par_Q(i,3)=U(i,3); Par_Q(i,4)=U(i,4); Par_Q(i,5)=U(i,5); Par_Q(i,6)=U(i,6); Par_Q(i,7)=U(i,7); Par_Q(i,8)=U(i,8); Par_Q(i,9)=U(i,9); Par_Q(i,10)=U(i,10); temp=fn(U(i,1),U(i,2),U(i,3),U(i,4),U(i,5),U(i,6),U(i,7),U(i,8),U(i,9),U(i,10)); end 156 Par_Q(i,11)=temp; Par_Q(i,12)=FC; Par_Q(i,13)=HC; Par_Q(i,14)=CO; Par_Q(i,15)=NOx; Par_Q(i,16)=PM; Par_Q(i,17)=accel1; Par_Q(i,18)=accel2; Par_Q(i,19)=accel3; Par_Q(i,20)=dist; Par_Q(i,21)=maxAcc; Par_Q(i,22)=maxSpeed; Par_Q(i,23)=gra; Par_Q(i,24)=time; element=element+1; all_bees(element,:)=[element,U(i,1),U(i,2),U(i,3),U(i,4),U(i,5),U(i,6),U(i,7),U(i ,8),U(i,9),U(i,10),temp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxSpeed ,gra,time]; disp(' '); disp(sprintf('The number of evaluated fitness functions: %02.0f',element)); disp(' '); end Par_Q=sortrows(Par_Q,11) all_inter_val(1,:)=[0,Par_Q(1,:)]; first=Par_Q; last=first; save all_bees all_bees; % Lưu vào bộ nhớ save first first; save element element; save all_inter_val all_inter_val; save ph ph; save fitscore fitscore; save selpatch selpatch; U clear U; clear i; h=0; else %% Đây không phải lần đầu chạy chương trình hay không disp(' '); disp('This is NOT the first time to run the optimization program'); disp(' '); load all_bees; % Load dữ liệu từ bộ nhớ load last; Par_Q=last load all_inter_val load ph load fitscore load selpatch load element; end Par_Q1=Par_Q(:,11)' for k=count+1:count+itr % Bắt đầu vòng lặp disp(' '); disp(sprintf('Interation Number: %02.0f',k)); disp(' '); if k> 1 for h=1:e fitscore(k,h)=(Par_Q1(1,h) - Par_Q1(1,e+1)) / (sum(Par_Q1(1,1:e) - Par_Q1(1,e+1))); % Tính Fitness score selpatch(k,h)=round(((ph(k- 1,h))^alfa*((fitscore(k,h))^beta))/(sum((ph(k- 1,1:e).^alfa.*(fitscore(k,h).^beta))))*m*e); % Tính số ong tìm kiếm cục bộ 157 if selpatch(k,h) > 0 ph(k,h) = ph(k-1,h)* rho + (fitscore(k,h)*selpatch(k,h)); % Cập nhật Pheromone else ph(k,h) = ph(k-1,h)* rho; end end end for j=1:e % Số lượng vùng được chọn for i=1:selpatch(k,j) % Số lượng ong tìm kiếm vùng được chọn U=bee_dance(ngh1,ngh2,ngh3,ngh4,ngh5,ngh6,ngh7,ngh8,ngh9,ngh10, Par_Q(j,1), Par_Q(j,2),Par_Q(j,3),Par_Q(j,4),Par_Q(j,5), Par_Q(j,6),Par_Q(j,7),Par_Q(j,8),Par_Q(j,9),Par_Q(j,10),i1_min,i2_min,i3_min,i4_m in,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min,i1_max,i2_max,i3_max,i4_max,i5_max, i6_max,i7_max,i8_max,i9_max,i10_max); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10)); while temp==-1 U=bee_dance(ngh1,ngh2,ngh3,ngh4,ngh5,ngh6,ngh7,ngh8,ngh9,ngh10, Par_Q(j,1), Par_Q(j,2),Par_Q(j,3),Par_Q(j,4),Par_Q(j,5), Par_Q(j,6),Par_Q(j,7),Par_Q(j,8),Par_Q(j,9),Par_Q(j,10),i1_min,i2_min,i3_min,i4_m in,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min,i1_max,i2_max,i3_max,i4_max,i5_max, i6_max,i7_max,i8_max,i9_max,i10_max); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10)); end if temp< Par_Q(j,11) Par_Q(j,:)=[U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),temp,FC,HC,CO,NOx, PM,accel1,accel2,accel3,dist,maxAcc,maxSpeed,gra,time]; end element=element+1; all_bees(element,:)=[element,U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),t emp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxSpeed,gra,time]; disp(' '); disp(sprintf('The number of evaluated fitness functions: %02.0f',element)); disp(' '); end end % ____________________________________________________________________ for i=e+1:n U=X_random(1,i1_max, i2_max,i3_max, i4_max, i5_max, i6_max,i7_max, i8_max,i9_max,i10_max, i1_min, i2_min,i3_min, i4_min, i5_min,i6_min, i7_min,i8_min,i9_min,i10_min); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10)); while temp==-1 U=X_random(1,i1_max, i2_max,i3_max, i4_max, i5_max, i6_max,i7_max, i8_max,i9_max,i10_max, i1_min, i2_min,i3_min, i4_min, i5_min,i6_min, i7_min,i8_min,i9_min,i10_min); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10)); end Par_Q(i,:)=[U(1), U(2),U(3),U(4),U(5), U(6),U(7),U(8),U(9),U(10),temp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,m axSpeed,gra,time]; element=element+1; all_bees(element,:)=[element,U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),t emp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxSpeed,gra,time]; disp(' '); disp(sprintf('The number of evaluated fitness functions: %02.0f',element)); disp(' '); 158 end Par_Q=sortrows(Par_Q,11) Par_Q1=Par_Q(:,11)' all_inter_val(k+1,:)=[k,Par_Q(1,:)]; xlswrite('R_all_inter_val',all_inter_val) xlswrite('R_all_bees',all_bees) end % Kết thúc vòng lặp count=count+itr; first=last last=Par_Q; xlswrite('R_last',last) a=['fc_trq_scale' 'mc_trq_scale' 'ess_module_num' 'gc_trq_scale' 'cs_electric_launch_spd' 'cs_min_pwr' 'cs_eng_on_soc' 'cs_eng_min_spd' 'cs_lo_soc' 'cs_hi_soc']; disp(' '); disp(a); last a=['order ' 'fc_trq_scale' 'mc_trq_scale' 'ess_module_num' 'gc_trq_scale' 'cs_electric_launch_spd' 'cs_min_pwr' 'cs_eng_on_soc' 'cs_eng_min_spd' 'cs_lo_soc' 'cs_hi_soc' 'FC']; disp(' '); disp(a); all_inter_val save count count; save last last; save all_inter_val all_inter_val; save ph ph; save fitscore fitscore; save selpatch selpatch; save element element; save all_bees all_bees; plot(all_inter_val(:,1),all_inter_val(:,12)); grid on; function U=bee_dance(ngh1,ngh2,ngh3,ngh4,ngh5,ngh6,ngh7,ngh8,ngh9,ngh10,x1,x2,x3,x4,x5,x6, x7,x8,x9,x10,x1_min,x2_min,x3_min,x4_min,x5_min,x6_min,x7_min,x8_min,x9_min,x10_m in,x1_max,x2_max,x3_max,x4_max,x5_max,x6_max,x7_max,x8_max,x9_max,x10_max) U(:,1)=(x1-ngh1)+(2*ngh1.*rand(size(x1,1),1)); U(:,2)=(x2-ngh2)+(2*ngh2.*rand(size(x2,1),1)); U(:,3)=(x3-ngh3)+(2*ngh3.*rand(size(x3,1),1)); U(:,4)=(x4-ngh4)+(2*ngh4.*rand(size(x4,1),1)); U(:,5)=(x5-ngh5)+(2*ngh5.*rand(size(x5,1),1)); U(:,6)=(x6-ngh6)+(2*ngh6.*rand(size(x6,1),1)); U(:,7)=(x7-ngh7)+(2*ngh7.*rand(size(x7,1),1)); U(:,8)=(x8-ngh8)+(2*ngh8.*rand(size(x8,1),1)); U(:,9)=(x9-ngh9)+(2*ngh9.*rand(size(x9,1),1)); U(:,10)=(x10-ngh10)+(2*ngh10.*rand(size(x10,1),1)); if U(:,1)<x1_min U(:,1)=x1_min; end if U(:,1)>x1_max U(:,1)=x1_max; end if U(:,2)<x2_min U(:,2)=x2_min; end if U(:,2)>x2_max U(:,2)=x2_max; end if U(:,3)<x3_min U(:,3)=x3_min; end if U(:,3)>x3_max U(:,3)=x3_max; 159 end if U(:,4)<x4_min U(:,4)=x4_min; end if U(:,4)>x4_max U(:,4)=x4_max; end if U(:,5)<x5_min U(:,5)=x5_min; end if U(:,5)>x5_max U(:,5)=x5_max; end if U(:,6)<x6_min U(:,6)=x6_min; end if U(:,6)>x6_max U(:,6)=x6_max; end if U(:,7)<x7_min U(:,7)=x7_min; end if U(:,7)>x7_max U(:,7)=x7_max; end if U(:,8)<x8_min U(:,8)=x8_min; end if U(:,8)>x8_max U(:,8)=x8_max; end if U(:,9)<x9_min U(:,9)=x9_min; end if U(:,9)>x9_max U(:,9)=x9_max; end if U(:,10)<x10_min U(:,10)=x10_min; end if U(:,10)>x10_max U(:,10)=x10_max; end end function X=X_random(n, i1_max, i2_max,i3_max, i4_max, i5_max, i6_max,i7_max, i8_max,i9_max,i10_max, i1_min, i2_min,i3_min, i4_min, i5_min,i6_min, i7_min,i8_min,i9_min,i10_min) X=[i1_min+((rand(n,1)).*(i1_max-i1_min)), i2_min+((rand(n,1)).*(i2_max- i2_min)),i3_min+((rand(n,1)).*(i3_max-i3_min)),i4_min+((rand(n,1)).*(i4_max- i4_min)),i5_min+((rand(n,1)).*(i5_max-i5_min)), i6_min+((rand(n,1)).*(i6_max- i6_min)),i7_min+((rand(n,1)).*(i7_max-i7_min)),i8_min+((rand(n,1)).*(i8_max- i8_min)),i9_min+((rand(n,1)).*(i9_max-i9_min)),i10_min+((rand(n,1)).*(i10_max- i10_min))]; end function result=fn(i1_val,i2_val,i3_val,i4_val,i5_val,i6_val,i7_val,i8_val,i9_val,i10_val) input.modify.param={'fc_trq_scale','ess_cap_scale'}; input.modify.value={i1_val,i3_val}; [a,b]=adv_no_gui('modify',input); 160 % Tính khối lượng các bộ phận fc_mass1=round(evalin('base','fc_mass_scale_fun(fc_mass_scale_coef,fc_spd_scale,f c_trq_scale,fc_base_mass,fc_acc_mass,fc_fuel_mass)')); mc_mass1=round(i2_val*56.75); ess_mass1=evalin('base','round(ess_mass_scale_fun(ess_mass_scale_coef,ess_ module_num,ess_cap_scale,ess_module_mass))'); gc_mass1=round(i4_val*32.7); ex_mass1=round(evalin('base','ex_mass_scale_fun(ex_mass_scale_coef,fc_pwr_ scale,ex_mass)')); total_vehicle_mass=round(fc_mass1+mc_mass1+ess_mass1+gc_mass1+918+ex_mass1 +136); input.modify.param={'fc_trq_scale','mc_trq_scale','ess_cap_scale','gc_trq_ scale','cs_electric_launch_spd','cs_min_pwr','cs_eng_on_soc','cs_eng_min_spd','cs _lo_soc','cs_hi_soc','veh_mass','wh_1st_rrc'}; input.modify.value={i1_val,i2_val,i3_val,i4_val,i5_val,i6_val,i7_val,i8_va l,i9_val,i10_val,total_vehicle_mass,0.015}; [a,b]=adv_no_gui('modify',input); input.cycle.param={'test.name'} ; input.cycle.value={'CYC_CECDC'}; [a,b]=adv_no_gui('drive_cycle',input); % (1) if a==0 FC=(100*3.78541178)/(b.cycle.mpgge*1.609344); % liter/100km HC=b.cycle.hc_gpm/1.609344; %g/km CO=b.cycle.co_gpm/1.609344; %g/km NOx=b.cycle.nox_gpm/1.609344; %g/km PM=b.cycle.pm_gpm/1.609344; %g/km fail=0; else result=-1; fail=-1; end input.accel.param={'spds','dist_in_time', ' time _in_ dist ','max_rate_bool','max_speed_bool'}; input.accel.value={[0 60; 40 60;0 85],5,0.2/1.609344,1,1}; [a,b]=adv_no_gui('accel_test',input); if a==0 if fail==0 % Nếu không có lỗi xuất hiện accel1=b.accel.times(1); accel2=b.accel.times(2); accel3=b.accel.times(3); if accel1==-1 % Nếu không tính được accel1 accel1=15; % Nhằm tăng fitness function a1=-1; else a1=0; end if accel2==-1 accel2=8; a2=-1; else a2=0; end if accel3==-1 accel3=26; a3=-1; else a3=0; end dist=b.accel.dist*0.3048; % Quãng đường 5s dist=b.accel.time; % Thời gian tăng tốc maxAcc=b.accel.max_rate*0.3048; % Gia tốc cực đại 161 maxSpeed=b.accel.max_speed*1.60934; % Tốc độ cực đại input.grade.param={'speed','duration','add_mass '}; input.grade.value={12.427,1200,0}; [a,b]=adv_no_gui('grade_test',input); gr=b.grade.grade; c=length(gr); if c==0 gra=0; else gra=gr end re=0.85*FC/6.8829+0.05*HC/1.0039+0.05*CO/1.1315+0.05*NOx/0.21099+3.5*max(0,120- maxSpeed)/120+3.5*max(0,11-gra)/11+3.5*max(0,time-20.5)/20.5; % Giá trị hàm mục tiêu result=re; disp(' '); disp(['FC (liter/100km) is: ', num2str(FC)]); disp(['HC (g/km) is: ', num2str(HC)]); disp(['CO (g/km) is: ', num2str(CO)]); disp(['NOx (g/km) is: ', num2str(NOx)]); disp(['PM (g/km) is: ', num2str(PM)]); if a1~=-1 disp(['The time to accelerate from (0 - 97)km/h is (Standard <=12s): ', num2str(accel1)]); else disp('The car CAN NOT get the speed range from (0-97)km/h'); end if a2~=-1 disp(['The time to accelerate from (64 - 97)km/h is (Standard <=5.3s): ', num2str(accel2)]); else disp('The car CAN NOT get the speed range from (64-97)km/h'); end if a3~=-1 disp(['The time to accelerate from (0 - 137)km/h is (Standard <=23.4s): ', num2str(accel3)]); else disp('The car can not get the speed range from (0-137)km/h'); end clear a1; clear a2; clear a3; disp(['The distance when running in 5s is (Standard >=42.7m) : ', num2str(dist)]); disp(['The max acceleration is (Standard >=5m/s^2 ): ', num2str(maxAcc)]); disp(['The max speed is (Standard >=100km/h ): ', num2str(maxSpeed)]); if c==0 disp('ADVISOR CAN NOT calculate the grade: '); else disp(['The max grade is (Standard >=12%): ', num2str(gra)]); end disp(['The value of fitness function is: ', num2str(result)]); disp(' '); clear gr; clear re; end else result=-1; end end end
File đính kèm:
- luan_an_nghien_cuu_toi_uu_hoa_thiet_ke_do_lon_va_tham_so_die.pdf