Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 162 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
162
Dung lượng
2,72 MB
Nội dung
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: Mã số: Kỹ thuật khí động lực 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 MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Vấn đề tiết kiệm nhiên liệu hóa thạch giảm ô nhiễm môi trường khí thải động đốt (ICE) áp lực lớn nhà thiết kế chế tạo xe giới Với trình độ công nghệ có xét từ góc độ bảo vệ môi trường xe chạy động điện (EM) giải pháp triệt để cho tình trạng ô nhiễm khí thải xe giới Thực tế có hàng loạt mẫu xe giới chạy điện sinh từ pin mặt trời gắn trực tiếp xe chạy điện từ ắcqui thiết kế chế tạo Tuy nhiên, xét cách toàn diện, có khả phải huỷ bỏ hàng ngàn dây chuyền chế tạo lắp ráp xe giới xe chạy ICE loại phương tiện giao thông giới có vị trí độc tôn hàng triệu xe chạy ICE khắp nơi giới hình ảnh quen thuộc cho nhiều hệ mai sau Phát triển xe hybrid xem giải pháp độ nhằm tiết kiệm nhiên liệu hóa thạch giảm mức độ gây ô nhiễm môi trường khí thải ICE trang bị xe giới Trong tiếng Anh, từ "hybrid" có nghĩa "lai/ ghép/ kết hợp", thuật ngữ "hybrid vehicle" định nghĩa phương tiện di động có hệ thống động lực cấu thành từ hai nhiều nguồn động lực khác biệt Các loại phương tiện di động như: xe đạp điện chạy cách đạp pedal EM, ô tô trang bị động xăng EM để dẫn động bánh xe chủ động, xe lửa trang bị EM để chạy điện lưới động diesel để chạy khu vực lưới điện, máy bay trang bị động phản lực để bay EM để di chuyển đường băng, tàu ngầm điện-diesel trang bị EM để chạy tàu lặn động diesel để chạy tàu mặt nước, v.v xếp vào đối tượng "hybrid vehicle" Ô tô hybrid có hệ động lực cấu thành từ động xăng EM chế tạo từ năm cuối kỷ XVIII tạo ấn tượng mạnh khách hàng giới kỹ nghệ gia giai đoạn đầu phát triển đạt tính vượt trội so với ô tô truyền thống (ô tô trang bị loại nguồn động lực, ICE động đốt EM) Tuy nhiên, vận hành sửa chữa đơn giản hơn, giá thành động xăng diesel ngày giảm sản xuất hàng loạt, nguồn cung xăng dầu ngày dồi với giá rẻ, v.v., ô tô truyền thống chiếm lĩnh gần toàn thị trường ô tô hybrid giai đoạn trước 1990 Dưới áp lực ngày tăng yêu cầu tiết kiệm nhiên liệu hóa thạch tiêu chuẩn khí thải ngày khắt khe, ô tô hybrid lại quan tâm trở lại từ đầu năm 1990 phát triển nhảy vọt Bên cạnh ưu điểm vốn có phương án hybrid, tiến vượt bậc công nghệ chế tạo, điện-điện tử, thông tin, v.v xem yếu tố quan trọng góp phần làm nên thành công ô tô hybrid đại Toyota xem hãng chế tạo ô tô tiên phong thành công lĩnh vực phát triển ô tô hybrid đại Dòng ô tô hybrid thương mại đại có tên Toyota Prius bán thị trường Nhật Bản vào năm 1997 Đến tháng năm 2013, khoảng triệu Toyota Prius bán 80 quốc gia khu vực Hiện nay, hầu hết hãng chế tạo ô tô hàng đầu giới cho đời các mẫu ô tô hybrid ô tô hybrid khẳng định phần thị trường ô tô tương lai Trong trình thiết kế ô tô truyền thống, công suất cực đại động xác định sở số tính kỹ thuật ô tô, ví dụ: tính động lực học, tính việt dã, v.v đặt thiết kế Đối với ô tô hybrid, nguồn động lực khác phải có độ lớn cho tổng công suất chúng đồng thời cung cấp cho bánh xe chủ động phải công suất cực đại động ô tô truyền thống có tính kỹ thuật tương đương, mà công suất nguồn động lực phải lựa chọn cho hệ thống làm việc với tiêu kinh tế - kỹ thuật - môi trường cao Trong trình khai thác kỹ thuật, giải pháp hybrid hóa ô tô đạt mục tiêu tối ưu hóa chế độ làm việc nguồn lượng, ví dụ: thời điểm mà nguồn lượng ngừng hoạt động hoạt động chế độ để phát huy ưu điểm hạn chế nhược điểm chúng, tỷ lệ đóng góp công suất nguồn động lực tham gia dẫn động bánh xe chủ động thời điểm, chiến lược tái sử dụng lượng mà nguồn động lực cung cấp cho bánh xe chủ động, v.v Các vấn đề kể thuộc nội hàm khái niệm tối ưu hóa tham số điều khiển nguồn lượng hệ động lực ô tô hybrid Làm chủ kỹ thuật tối ưu hóa độ lớn tham số điều khiển nguồn lượng hệ động lực ô tô hybrid điều kiện tiên để thiết kế khai thác ô tô hybrid với lợi ích mà phương án hybrid mang lại Qua tìm hiểu tài liệu cho thấy đến thời điểm nay, Việt Nam chưa có công trình khoa học chuyên sâu công bố tối ưu hóa hệ động lực ô tô hybrid Hầu hết ấn phẩm tiếng Việt ô tô hybrid đề cập đến khái niệm giới thiệu thành tựu hãng chế tạo ô tô hybrid thiết kế chế tạo cụm thiết bị, mô hình ô tô hybrid phạm vi đồ án tốt nghiệp đại học luận văn thạc sĩ, Kỹ thuật công nghệ tối ưu hóa hệ động lực hybrid áp dụng cho mẫu ô tô hybrid đại bí số hãng chế tạo ô tô hybrid hàng đầu giới Với mục đích nghiên cứu lý thuyết thực tiễn giải pháp hybrid hóa để làm sở cho việc thiết kế chế tạo xe hybrid, đồng thời cho phép đánh giá mức độ phù hợp mẫu xe hybrid khai thác đ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 tham số điều khiển nguồn lượng hệ động lực xe hybrid " MỤC TIÊU NGHIÊN CỨU Xây dựng mô hình tối ưu hóa phát triển giải thuật để tối ưu hóa độ lớn nguồn lượng tối ưu hóa tham số điều khiển nguồn lượng 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 chất độc hại có khí thải ICE ĐỐI TƯỢNG NGHIÊN CỨU Ô tô hybrid có hệ thống động lực cấu thành từ hai loại nguồn động lực ICE EM PHẠM VI NGHIÊN CỨU (1) Các nguồn lượng cấu trúc tổng thể hệ động lực ô tô hybrid kiểu song song kiểu hỗn hợp, bao gồm: ICE, EM, máy phát điện (EG) ắcqui điện (AQ) (2) Tối ưu hóa thiết kế độ lớn nguồn lượng thuộc hệ động lực ô tô hybrid kiểu song song kiểu hỗn hợp Độ lớn ICE, EM EG luận án hiểu công suất có ích lớn Độ lớn AQ hiểu dung lượng tổng cộng AQ Tối ưu hóa thiết kế độ lớn nguồn lượng luận án hiểu việc xác định công suất có ích lớn ICE, EM, EG dung lượng AQ nhằm thỏa mãn mục tiêu đặt (3) Tối ưu hóa tham số điều khiển nguồn lượng hệ động lực ô tô hybrid kiểu song song kiểu hỗn hợp Tối ưu hóa tham số điều khiển hiểu việc xác định kiểm soát chế độ làm việc nguồn lượng cho đạt mục tiêu mà phương án hybrid mang lại Ô tô truyền thống yêu cầu tối ưu hóa tham số điều khiển nguồn lượng hệ động lực Ở loại ô tô này, người lái định vận tốc tức thời ô tô công suất tức thời động thông qua việc tác động lên cần gạt hộp số, bàn đạp ga bàn đạp phanh Đối với số loại ô tô trang bị động phun nhiên liệu điều khiển điện tử hộp số tự động, mong muốn người lái thực hóa chiến lược điều khiển cấp thành tố (componentlevel control strategies), ví dụ: điều khiển trung tâm động định lượng nhiên liệu phun vào xylanh tương ứng với vị trí bàn đạp ga điều khiển hộp số định chuyển số, phù hợp với vận tốc ô tô Trong trường hợp ô tô hybrid, cần có thêm định khác nữa, ví dụ: nguồn lượng phải cung cấp lượng để có tổng lượng cần thiết cung cấp cho bánh xe chủ động, nguồn lượng phải hoạt động chế độ để hệ thống làm việc với tiêu kinh tế - kỹ thuật - môi trường tối ưu, v.v PHƯƠNG PHÁP NGHIÊN CỨU Nghiên cứu lý thuyết thực nghiệm với mô hình đối tượng máy tính hai phương pháp nghiên cứu chủ yếu sử dụng luận án Nội dung nghiên cứu lý thuyết bao gồm: Tìm hiểu công trình khoa học nước đề tài ô tô hybrid nói chung tối ưu hóa hệ động lực hybrid nói riêng Trên sở xác định 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 tham số điều khiển nguồn lượng hệ động lực nhằm nâng cao tính kinh tế nhiên liệu giảm mức độ phát thải chất độc hại ICE nằm cấu trúc tổng thể hệ động lực ô tô hybrid; Xây dựng phát triển mô hình tối ưu hóa hệ động lực ô tô hybrid, có tính đến đ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) ứng dụng 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 nguồn lượng tham số điều khiển hệ động lực ô tô hybrid giải đánh giá kết mô thực nghiệm máy tính NỘI DUNG VÀ BỐ CỤC CỦA LUẬN ÁN Nội dung luận án bố cục thành chương, không kể phần Mở đầu Phụ lục, bao gồm : Chương : Tổng quan ô tô hybrid nghiên cứu tối ưu hóa hệ động lực ô tô hybrid Chương : Tối ưu hóa thiết kế độ lớn tham số điều khiển nguồn lượng hệ động lực ô tô hybrid giải thuật đàn ong Chương : Mô thực nghiệm tối ưu hóa độ lớn tham số điều khiển nguồn lượng hệ động lực ô tô hybrid Chương : Kết luận khuyến nghị 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 nguồn lượng tham số điều khiển nguồn lượng hệ động lực ô tô hybrid cấu thành từ ICE EM, cho phép xét đến đ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 ứng dụng 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 tích hợp với phần mềm ADVISOR NREL (National Renewable Energy Laboratory - Hoa Kỳ) xây dựng phục vụ mô thực nghiệm tối ưu hóa độ lớn tham số điều khiển nguồn lượng hệ động lực ô tô hybrid HẠN CHẾ CỦA LUẬN ÁN Luận án đề cập vấn đề tối ưu hóa độ lớn nguồn lượng tham số điều khiển nguồn lượng thuộc hệ động lực ô tô hybrid với mục tiêu giảm tiêu hao nhiên liệu mức độ phát thải ICE điều kiện đảm bảo yêu cầu tính động lực học Phương pháp tối ưu hóa thiết kế độ lớn tham số điều khiển nguồn lượng hệ động lực ô tô hybrid giải thuật đàn ong chưa khảo nghiệm mẫu ô tô hybrid thực phòng thí nghiệm vận hành điều kiện thực tế Chương 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 ô tô hybrid đề cập đặc điểm cấu tạo loại ô tô hybrid sử dụng phổ biến, so sánh loại ô tô hybrid với chúng ô tô truyền thống 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 nghiên cứu tối ưu hóa hệ động lực hybrid giới thiệu số công trình nghiên cứu nước giới đề tài ô tô hybrid nói chung tối ưu hóa hệ động lực ô tô hybrid nói riêng, sở xác định vấn đề cần nghiên cứu phát triển, hoàn thiện mô hình tổng quát sử dụng giải thuật có ưu điểm để giải toán tối ưu hóa đồng thời độ lớn nguồn lượng tham số điều khiển nguồn lượng hệ động lực ô tô hybrid 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 ô tô hybrid khác hệ thống động lực Hệ thống động lực ô tô hybrid (sau gọi tắt hệ động lực hybrid) phổ biến cấu thành từ ICE nhiều EM Trong ấn phẩm chuyên ngành tiếng Anh, thuật ngữ: "hybrid car", "hybrid vehicle", "hybrid road vehicle" "hybrid electric vehicle" thường sử dụng để loại ô tô hybrid có hệ thống động lực Trong luận án này, thuật ngữ "xe hybrid" "ô tô hybrid" hiểu có nội hàm tương đương Căn vào cách thức liên kết ICE EM, tỷ lệ công suất ICE EM sử dụng để dẫn động bánh xe chủ động, phân công thời gian làm việc ICE EM trình vận hành; ô tô hybrid đại phân thành nhóm: ô tô hybrid kiểu nối tiếp, ô tô hybrid kiểu song song ô 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, tiếng Anh gọi Series Hybrid Electric Vehicle, sau viết tắt S-HEV Các thành tố hệ động lực S-HEV bao gồm: ICE, EM, EG, AQ, chuyển đổi điện cặp bánh giảm tốc (xem Hình 1-1) Về bản, hệ động lực S-HEV khác hệ động lực ô tô điện chỗ có thêm ICE EG Ở S-HEV, ICE có chức lai EG để cung cấp điện cho EM nạp điện cho AQ, EM đảm bảo 100% công suất yêu cầu để dẫn động bánh xe chủ động thông qua cặp bánh giảm tốc EM chạy điện từ AQ trực tiếp từ EG Trong hệ truyền động S-HEV cần cặp bánh giảm tốc bố trí EM vi sai, thay cho hộp số nhiều cấp ô tô truyền thống Trong trường hợp EM bố trí trực tiếp moayơ bánh xe chủ động, SHEV thực tế hệ truyền động khí, thay vào hệ truyền động điện gọn nhẹ tiêu hao lượng Hình 1-1 Sơ đồ hệ thống động lực ô tô hybrid kiểu nối tiếp EM S-HEV nói riêng loại ô tô hybrid khác nói chung, thường thiết kế để hoạt động máy phát điện (sau gọi môtơ-máy phát điện liên hợp, viết tắt MG) để tận dụng động ô tô trình phanh xuống dốc Một số mẫu S-HEV cho phép nạp điện AQ điện lưới thời gian ô tô không hoạt động nhằm mục đích giảm chi phí vận hành giá điện lưới thường thấp giá điện sản xuất ICE xe 1.1.1.2 Ô TÔ HYBRID KIỂU SONG SONG Ô tô hybrid kiểu song song (P-HEV) có nguồn động lực tương tự S-HEV, tức bao gồm ICE MG ICE MG P-HEV liên kết với bánh xe chủ động thông qua ly hợp cho bánh xe chủ động dẫn động ICE MG hai đồng thời ICE MG liên kết với theo phương án sau: ICE MG liên kết song song trục (xem Hình 1-2): Ở phương án này, tốc độ quay ICE MG phải đồng hóa, momen quay truyền đến bánh xe chủ động tổng momen quay ICE MG Khi nguồn động lực làm việc, nguồn động lực lại phải hoạt động chế độ không tải không hoạt động trang bị ly hợp chiều 147 re=FC/4.9892+3.5*max(0,120-maxSpeed)/120+3.5*max(0,11gra)/11+3.5*max(0,time-20.4)/20.4; 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 =137km/h ): ', num2str(maxSpeed)]); if c==0 disp('ADVISOR CAN NOT calculate the grade: '); else disp(['The max grade is: ', num2str(gra)]); end disp(['The value of fitness function is: ', num2str(result)]); disp(' '); clear gr; clear re; end else result=-1; end end end 148 4.1.2 GIẢI THUẬT PBA % PHẦN MỀM TỐI ƯU HÓA CHO XE HONDA INSIGHT 2000 SỬ DỤNG GIẢI THUẬT PBA % TÁC GIẢ : VŨ THĂNG LONG – KHOA CƠ KHÍ – ĐẠI HỌC NHA TRANG % SẢN PHẨM CỦA LUẬN ÁN TIẾN SỸ : “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” function main_opt global Par_Q global i1_min global i2_min global i3_min global i4_min global i5_min global i6_min global i7_min global i8_min global i9_min global i10_min global i11_min global i12_min global i13_min global i14_min % % % % % % % % % % % % % % Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn dưới dưới dưới dưới dưới dưới dưới của của của của của của của 'fc_trq_scale' 'mc_trq_scale' 'ess_cap_scale' 'cs_dl_assist_trq_threshold' 'cs_mc_assist_min_frac' 'cs_mc_assist_slope' 'cs_mc_assist_max_frac' 'cs_dl_regen_trq_threshold' 'cs_mc_regen_min_frac' 'cs_mc_regen_slope' 'cs_mc_regen_max_frac' 'cs_decel_regen_threshold' 'cs_lo_soc' 'cs_hi_soc' hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn hạn trên trên trên trên trên trên trên của của của của của của của 'fc_trq_scale' 'mc_trq_scale' 'ess_cap_scale' 'cs_dl_assist_trq_threshold' 'cs_mc_assist_min_frac' 'cs_mc_assist_slope' 'cs_mc_assist_max_frac' 'cs_dl_regen_trq_threshold' 'cs_mc_regen_min_frac' 'cs_mc_regen_slope' 'cs_mc_regen_max_frac' 'cs_decel_regen_threshold' 'cs_lo_soc' 'cs_hi_soc' global global global global global global global global global global global global global global i1_max i2_max i3_max i4_max i5_max i6_max i7_max i8_max i9_max i10_max i11_max i12_max i13_max i14_max % % % % % % % % % % % % % % Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới Giới global global global global global global global global global global global global FC HC CO Nox accel1 accel2 accel3 dist maxAcc maxSpeed gra time; % % % % Tiêu thụ nhiên liệu Hàm lượng HC Hàm lượng CO Hàm lượng NOx % Gia tốc cực đại % Khả leo dốc % Thời gian tăng tốc clc; close all; clear all; % Xóa hình, xóa trị số biến input.init.saved_veh_file='INSIGHT_defaults_in'; [a,b]=adv_no_gui('initialize',input); i1_min=0.271; % Giá trị nhỏ 'fc_trq_scale' i1_max=0.49; % Giá trị lớn 'fc_trq_scale' i2_min=0.271; % Giá trị nhỏ i2_max=1.355; % Giá trị lớn 'mc_trq_scale' 'mc_trq_scale' i3_min=0.97; % Giá trị nhỏ i3_max=4.84; % Giá trị lớn 'ess_cap_scale' 'ess_cap_scale' 149 i4_min=0; % Giá trị nhỏ 'cs_dl_assist_trq_threshold' i4_max=60; % Giá trị lớn 'cs_dl_assist_trq_threshold' (N.m) i5_min=0; % Giá trị nhỏ 'cs_mc_assist_min_frac' i5_max=0.2; % Giá trị lớn 'cs_mc_assist_min_frac' i6_min=0; % Giá trị nhỏ i6_max=1; % Giá trị lớn 'cs_mc_assist_slope' 'cs_mc_assist_slope' i7_min=0.21; % Giá trị nhỏ 'cs_mc_assist_max_frac' i7_max=1;% Giá trị lớn 'cs_mc_assist_max_frac' i8_min=-40; % Giá trị nhỏ 'cs_dl_regen_trq_threshold', i8_max=0;% Giá trị lớn 'cs_dl_regen_trq_threshold', i9_min=0; % Giá trị nhỏ 'cs_mc_regen_min_frac' i9_max=0.2;% Giá trị lớn 'cs_mc_regen_min_frac' i10_min=0; % Giá trị nhỏ 'cs_mc_regen_slope' i10_max=1;% Giá trị lớn 'cs_mc_regen_slope' i11_min=0.21; % Giá trị nhỏ 'cs_mc_regen_max_frac' i11_max=1;% Giá trị lớn 'cs_mc_regen_max_frac' i12_min=0; % Giá trị nhỏ i12_max=30;% Giá trị lớn 'cs_decel_regen_threshold' 'cs_decel_regen_threshold' i13_min=0.15; %Giá trị nhỏ i13_max=0.57;% Giá trị lớn 'cs_lo_soc' 'cs_lo_soc' i14_min=0.58; % Giá trị nhỏ 'cs_hi_soc' i14_max=0.95;% Giá trị lớn 'cs_hi_soc' n= 22; % Số lượng ong trinh sát ban đầu itr= 30; % Số vòng lặp e=7; % Số vị trí tìm kiếm chọn m=5; % Số ong trung bình tìm kiếm vùng 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 tìm kiếm cục 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; ngh11=(i11_max-i11_min)/40; ngh12=(i12_max-i12_min)/40; ngh13=(i13_max-i13_min)/40; ngh14=(i14_max-i14_min)/40; load count; % Biến count nhớ số lần lặp disp(count) if count==0 % Kiểm tra xem có phải lần đầu chạy chương trình không ? disp(' '); disp('This is THE FIRST time to run the optimization program'); disp(' '); ph = ones(100,e) % Khởi tạo pheromone cho vùng 150 fitscore = zeros(100,e) selpatch=zeros(100,e); for i=1:e selpatch(1,i)=m; end selpatch(1,i)=m element=0; % Đếm số ong tìm kiếm U=X_random(n,i1_max,i2_max,i3_max,i4_max,i5_max,i6_max,i7_max,i8_max,i9_max,i10_m ax,i11_max,i12_max,i13_max,i14_max,i1_min,i2_min,i3_min,i4_min,i5_min,i6_min,i7_m in,i8_min,i9_min,i10_min,i11_min,i12_min,i13_min,i14_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); Par_Q(i,11)=U(i,11); Par_Q(i,12)=U(i,12); Par_Q(i,13)=U(i,13); Par_Q(i,14)=U(i,14); 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),U( i,11),U(i,12),U(i,13),U(i,14)); while temp==-1 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,i11_max,i12_max,i13_max,i14_max,i1_min,i2_min,i3_min,i4_min,i5_min,i6_min ,i7_min,i8_min,i9_min,i10_min,i11_min,i12_min,i13_min,i14_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); Par_Q(i,11)=U(i,11); Par_Q(i,12)=U(i,12); Par_Q(i,13)=U(i,13); Par_Q(i,14)=U(i,14); 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),U( i,11),U(i,12),U(i,13),U(i,14)); end Par_Q(i,15)=temp; Par_Q(i,16)=FC; Par_Q(i,17)=HC; Par_Q(i,18)=CO; Par_Q(i,19)=NOx; Par_Q(i,20)=PM; Par_Q(i,21)=accel1; Par_Q(i,22)=accel2; Par_Q(i,23)=accel3; Par_Q(i,24)=dist; Par_Q(i,25)=maxAcc; Par_Q(i,26)=maxSpeed; 151 Par_Q(i,27)=gra; Par_Q(i,28)=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),U(i,11),U(i,12),U(i,13),U(i,14),temp,FC,HC,CO,NOx,PM,accel1,ac cel2,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,15) all_inter_val(1,:)=[0,Par_Q(1,:)]; first=Par_Q; last=first; save all_bees all_bees; 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 % Thực lần đầu chạy chương trình disp(' '); disp('This is NOT the first time to run the optimization program'); disp(' '); load all_bees; load last; Par_Q=last load all_inter_val load ph load fitscore load selpatch load element end Par_Q1=Par_Q(:,15)' for k=count+1:count+itr % Bắt đầu vòng lặp disp(' '); disp(sprintf('Interation Number: %02.0f',k)); disp(' '); if k> 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))); % Fitness score selpatch(k,h)=round(((ph(k1,h))^alfa*((fitscore(k,h))^beta))/(sum((ph(k1,1:e).^alfa.*(fitscore(k,h).^beta))))*m*e); % Tính số ong tìm kiếm if selpatch(k,h) > 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 tìm kiếm chọn for i=1:selpatch(k,j) % Số lượng ong tìm kiếm vùng chọn % Tìm kiếm lân cận vùng chọn 152 U=bee_dance(ngh1,ngh2,ngh3,ngh4,ngh5,ngh6,ngh7,ngh8,ngh9,ngh10,ngh11,ngh12,ngh13, ngh14,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),Par_Q(j,11),Par_Q(j,12),Par_Q(j,13),Par_Q(j,1 4),i1_min,i2_min,i3_min,i4_min,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min,i11_min ,i12_min,i13_min,i14_min,i1_max,i2_max,i3_max,i4_max,i5_max,i6_max,i7_max,i8_max, i9_max,i10_max,i11_max,i12_max,i13_max,i14_max); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14 )); while temp==-1 U=bee_dance(ngh1,ngh2,ngh3,ngh4,ngh5,ngh6,ngh7,ngh8,ngh9,ngh10,ngh11,ngh12,ngh13, ngh14,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),Par_Q(j,11),Par_Q(j,12),Par_Q(j,13),Par_Q(j,1 4),i1_min,i2_min,i3_min,i4_min,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min,i11_min ,i12_min,i13_min,i14_min,i1_max,i2_max,i3_max,i4_max,i5_max,i6_max,i7_max,i8_max, i9_max,i10_max,i11_max,i12_max,i13_max,i14_max); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14 )); end if temp< Par_Q(j,15) Par_Q(j,:)=[U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13), U(14),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),U (11),U(12),U(13),U(14),temp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxS peed,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_m ax,i11_max,i12_max,i13_max,i14_max,i1_min,i2_min,i3_min,i4_min,i5_min,i6_min,i7_m in,i8_min,i9_min,i10_min,i11_min,i12_min,i13_min,i14_min); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14 )); 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,i11_max, i12_max,i13_max,i14_max, i1_min, i2_min,i3_min, i4_min,i5_min,i6_min,i7_min,i8_min,i9_min,i10_min,i11_min,i12_min,i13_min,i14_min ); temp=fn(U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14 )); end Par_Q(i,:)=[U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13), U(14),temp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxSpeed,gra]; 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),U (11),U(12),U(13),U(14),temp,FC,HC,CO,NOx,PM,accel1,accel2,accel3,dist,maxAcc,maxS peed,gra,time]; disp(' '); 153 disp(sprintf('The number of evaluated fitness functions: %02.0f',element)); disp(' '); end Par_Q=sortrows(Par_Q,15) Par_Q1=Par_Q(:,15)' all_inter_val(k+1,:)=[k,Par_Q(1,:)]; % Giá trị ong tốt vòng lặp k' xlswrite('R_all_inter_val',all_inter_val) % Xuất sang excel xlswrite('R_all_bees',all_bees) % Xuất sang excel end count=count+itr; first=last last=Par_Q; xlswrite('R_last',last) a=['fc_trq_scale','mc_trq_scale','ess_cap_scale','cs_dl_assist_trq_threshold','cs _mc_assist_min_frac','cs_mc_assist_slope','cs_mc_assist_max_frac','cs_dl_regen_tr q_threshold','cs_mc_regen_min_frac','cs_mc_regen_slope','cs_mc_regen_max_frac','c s_decel_regen_threshold','cs_lo_soc','cs_hi_soc','FC']; disp(' '); disp(a); last a=['order ','fc_trq_scale','mc_trq_scale','ess_cap_scale','cs_dl_assist_trq_threshold','cs_ mc_assist_min_frac','cs_mc_assist_slope','cs_mc_assist_max_frac','cs_dl_regen_trq _threshold','cs_mc_regen_min_frac','cs_mc_regen_slope','cs_mc_regen_max_frac','cs _decel_regen_threshold','cs_lo_soc','cs_hi_soc','FC']; disp(' '); disp(a); all_inter_val save count count; % Lưu biến vào nhớ để lần chạy sau 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(:,16)); % Vẽ đồ thị hội tụ grid on; % Các hàm “bee_dance”; “X_random”; “fn” tương tự BBA nên không trình bày end 4.2 TỐI ƯU CHO Ô TÔ TOYOTA PRIUS 1998 % PHẦN MỀM TỐI ƯU HÓA CHO XE TOYOTA PRIUS 1998 SỬ DỤNG GIẢI THUẬT PBA % TÁC GIẢ : VŨ THĂNG LONG – KHOA CƠ KHÍ – ĐẠI HỌC NHA TRANG % SẢN PHẨM CỦA LUẬN ÁN TIẾN SỸ : “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” function main_opt global Par_Q global i1_min % Giới hạn 'fc_trq_scale' global i2_min % Giới hạn 'mc_trq_scale' global i3_min % Giới hạn 'ess_cap_scale' global i4_min % Giới hạn 'gc_trq_scale' global i5_min % Giới hạn 'cs_electric_launch_spd' global i6_min % Giới hạn 'cs_min_pwr' global i7_min % Giới hạn 'cs_eng_on_soc' global i8_min % Giới hạn 'cs_eng_min_spd' global i9_min % Giới hạn 'cs_lo_soc' 154 global global global global global global global global global global global global global global global global global global global global global global global global global global global global global i10_min % Giới hạn 'cs_hi_soc' i1_max % Giới hạn 'fc_trq_scale' i2_max % Giới hạn 'mc_trq_scale' i3_max % Giới hạn 'ess_cap_scale' i4_max % Giới hạn 'gc_trq_scale' i5_max % Giới hạn 'cs_electric_launch_spd' i6_max % Giới hạn 'cs_min_pwr' i7_max % Giới hạn 'cs_eng_on_soc' i8_max % Giới hạn 'cs_eng_min_spd' i9_max % Giới hạn 'cs_lo_soc' i10_max % Giới hạn 'cs_hi_soc' FC % Tiêu thụ nhiên liệu HC % Hàm lượng ô nhiễm CO NOx accel1 % Tính động lực học accel2 accel3 dist maxAcc maxSpeed gra % Khả leo dốc gra % Thời gian tăng tốc fc_mass1 % Khối lượng phận hệ động lực mc_mass1 ess_mass1 gc_mass1 ex_mass1 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ỏ của'fc_trq_scale' i1_max=0.699; %Giá trị lớn của'fc_trq_scale' i2_min=0.107; %Giá trị nhỏ của'mc_trq_scale' i2_max=0.535; %Giá trị lớn của'mc_trq_scale' i3_min=0.59; %Giá trị nhỏ của'ess_cap_scale' i3_max=2.95; %Giá trị lớn của'ess_cap_scale' i4_min=0.221; %Giá trị nhỏ của'gc_trq_scale' i4_max=1.106; %Giá trị lớn của'gc_trq_scale' i5_min=5; %Giá trị nhỏ của'cs_electric_launch_spd' i5_max=20;% Giá trị lớn của'cs_electric_launch_spd' i6_min=4000; %Giá trị nhỏ của'cs_min_pwr' i6_max=8000; % Giá trị lớn của'cs_min_pwr' i7_min=0.41; %Giá trị nhỏ của'cs_eng_on_soc' i7_max=0.60;% Giá trị lớn của'cs_eng_on_soc' i8_min=100; %Giá trị nhỏ của'cs_eng_min_spd' i8_max=150; %Giá trị lớn của'cs_eng_min_spd' i9_min=0.15; %Giá trị nhỏ của'cs_lo_soc' i9_max=0.40;% Giá trị lớn của'cs_lo_soc' i10_min=0.61; %Giá trị nhỏ của'cs_hi_soc' i10_max=0.95;% Giá trị lớn 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 chọn m=5; % Số ong trung bình tìm kiếm vùng 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 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 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 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 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 liệu từ 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> 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(k1,h))^alfa*((fitscore(k,h))^beta))/(sum((ph(k1,1:e).^alfa.*(fitscore(k,h).^beta))))*m*e); % Tính số ong tìm kiếm cục 157 if selpatch(k,h) > 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 chọn for i=1:selpatch(k,j) % Số lượng ong tìm kiếm vùng 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_max U(:,1)=x1_max; end if U(:,2)x2_max U(:,2)=x2_max; end if U(:,3)x3_max U(:,3)=x3_max; 159 end if U(:,4)x4_max U(:,4)=x4_max; end if U(:,5)x5_max U(:,5)=x5_max; end if U(:,6)x6_max U(:,6)=x6_max; end if U(:,7)x7_max U(:,7)=x7_max; end if U(:,8)x8_max U(:,8)=x8_max; end if U(:,9)x9_max U(:,9)=x9_max; 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_maxi2_min)),i3_min+((rand(n,1)).*(i3_max-i3_min)),i4_min+((rand(n,1)).*(i4_maxi4_min)),i5_min+((rand(n,1)).*(i5_max-i5_min)), i6_min+((rand(n,1)).*(i6_maxi6_min)),i7_min+((rand(n,1)).*(i7_max-i7_min)),i8_min+((rand(n,1)).*(i8_maxi8_min)),i9_min+((rand(n,1)).*(i9_max-i9_min)),i10_min+((rand(n,1)).*(i10_maxi10_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 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 lỗi xuất accel1=b.accel.times(1); accel2=b.accel.times(2); accel3=b.accel.times(3); if accel1==-1 % Nếu không tính 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,120maxSpeed)/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 =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 [...]... 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 là điều kiện tiên quyết để có thể thiết kế và khai thác ô tô hybrid với các chỉ tiêu kinh tế - kỹ thuật - môi trường cao nhất có thể 33 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 2 trình bày mô hình tối ưu hóa độ lớn của các nguồn năng. .. Thông số 28 1.2.2.3 MỘT SỐ NGHIÊN CỨU TỐI ƯU HÓA ĐỒNG THỜI ĐỘ LỚN NGUỒN NĂNG LƯỢNG VÀ THAM SỐ ĐIỀU KHIỂN HỆ ĐỘNG LỰC (1) Tối ưu hóa bằng giải thuật tiến hóa đối với ô tô hybrid kiểu nối tiếp Zhang B và cộng sự đã nghiên cứu tối ưu hóa đồng thời độ lớn các nguồn năng lượng và tham số chiến lược điều khiển cho ô tô hybrid kiểu nối tiếp bằng giải thuật tiến hóa (Evolution Algorithm - EA) Mục tiêu tối ưu. .. 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 các nguồn năng lượng của hệ động lực được cấu thành từ ICE và EM là hai vấn đề thuộc phạm vi nghiên cứu trong luận án này 1.2.2.1 MỘT SỐ NGHIÊN CỨU VỀ TỐI ƯU HÓA ĐỘ LỚN NGUỒN NĂNG LƯỢNG CỦA HỆ ĐỘNG LỰC Ô TÔ HYBRID Liu X và các cộng sự [14], [36] đã nghiên cứu tối ưu hóa thiết kế xe buýt hybrid kiểu nối tiếp phục vụ Olimpic... Atkinson, động cơ Wankel, động cơ Stirling, v.v.; Tái sử dụng động năng của xe trong quá trình phanh hoặc xuống dốc bằng máy phát điện nạp cho ắcqui, bằng bánh đà tích trữ động năng, v.v.; Tối ưu hóa cấu trúc của hệ thống động lực; Tối ưu hóa độ lớn của các nguồn năng lượng; Tối ưu hóa chiến lược điều khiển và tự động hóa quá trình kiểm soát các tham số điều khiển, v.v Tối ưu hóa độ lớn của các nguồn. .. chọn nguồn năng lượng cụ thể và lắp đặt trên ô tô phụ thuộc chủ yếu vào khả năng tài chính và điều kiện thực tế của tác giả Cho đến nay, đa số các nghiên cứu ở nước ngoài được công bố về đề tài tối ưu hóa hệ động lực ô tô hybrid tập trung vào 2 vấn đề: 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 hệ động lực ô tô hybrid kiểu nối tiếp và kiểu song song Một số nghiên cứu. .. 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 Những thông tin cơ bản về giải thuật đàn ong, một số nội dung cải tiến giải thuật đàn ong cơ sở do NCS thực hiện và phương pháp sử dụng giải thuật đàn ong trong bài toán tối ưu hóa riêng lẻ các tham số điều khiển và 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. .. 22 1.2.2 NGHIÊN CỨU CỦA NƯỚC NGOÀI VỀ TỐI ƯU HÓA HỆ ĐỘNG LỰC CỦA Ô TÔ HYBRID Nếu xét về phương diện cấu trúc, ô tô truyền thống và ô tô hybrid chỉ khác nhau ở hệ thống động lực Nếu hiểu theo nghĩa rộng, khái niệm tối ưu hóa hệ động lực của ô tô hybrid có thể bao gồm : Thay thế nguồn động lực truyền thống (động cơ xăng hoặc động cơ diesel) bằng các loại nguồn động lực khác như turbine khí, động cơ... các nguồn năng lượng, các tham số điều khiển và các tham số cần tối ưu khác luôn có ảnh hưởng chi phối lẫn nhau ở các mức độ khác nhau Một số nghiên cứu được công bố gần đây [15], [55] đã giới thiệu một số phương pháp tối ưu hóa đồng thời độ lớn các nguồn năng lượng và tham số điều khiển hệ động lực ô tô hybrid bằng các giải thuật cổ điển như giải thuật di truyền (Genetic Algorithm - GA), giải thuật tiến. .. đồng thời độ lớn của các nguồn năng lượng và các tham số điều khiển các nguồn năng lượng của hệ động lực ô tô hybrid nói chung (sau đây gọi tắt là tối ưu hóa hệ động lực hybrid) Bài toán tối ưu hóa có dạng như sau : Min G ( X ) Min w1.FC w2 HC w3 CO w4 NO w1 w2 w3 w4 1 hi ( X ) 0 k j ( X ) 0 (1.6) trong đó : G(X) - hàm mục tiêu; X - tập hợp các biến đầu vào; FC... Tỉ số truyền lực cuối MPGtotal Tham số Kết quả theo giải thuật được sử dụng gốc GA SAA DIRECT 86 53,8 82,4 83,1 65,9 65,4 21,9 20,2 240 220 311 245 0 21 22 25 100 83 78 84 3,63 3,49 4,0 3,9 35,1 36,6 40,37 39,64 1.2.2.2 MỘT SỐ NGHIÊN CỨU TỐI ƯU HÓA THAM SỐ ĐIỀU KHIỂN NGUỒN NĂNG LƯỢNG (1) Tối ưu hóa tham số điều khiển bằng giải thuật PSO Wu X và các cộng sự [53] đã nghiên cứu phương pháp tối ưu hóa