Tiểu luận nghiên cứu tối ưu thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực cửa xe hybrid

155 195 0
Tiểu luận nghiên cứu tối ưu thiết kế độ lớn và tham số điều khiển nguồn năng lượng hệ động lực cửa xe hybrid

Đ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

7 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 10  ICE MG liên kết nối tiếp trục: ICE MG phải có tốc độ quay Nếu MG nằm ICE hộp số MG có momen quay dương âm, tùy thuộc vào chế độ vận hành Honda Insight mẫu P-HEV điển hình áp dụng phương án Hình 1-2 Sơ đồ hệ thống động lực ô tô hybrid kiểu song song  ICE MG liên kết qua mặt đường: ICE truyền momen quay đến bánh xe chủ động qua hệ truyền động khí truyền thống, MG liên kết với bánh xe chủ động qua trục khác AQ MG nạp điện nhờ tận dụng động xe phanh động xe chế độ hành trình Trong trường hợp này, công suất ICE truyền đến MG thông qua mặt đường Phương án có ưu điểm đặc biệt trường hợp ô tô nhiều cầu chủ động, ICE MG liên kết khí với cầu khác Xe đạp máy có EM tích hợp moayơ bánh xe trước pedal quay bánh sau ví dụ kiểu hybrid song song có nguồn động lực liên kết qua mặt đường Hầu hết mẫu P-HEV trang bị ICE với vai trò nguồn động lực chính, MG đóng vai trò trợ giúp tăng tốc leo dốc Với cấu hình 11 vậy, ICE MG hoạt động với khoảng 50 % công suất cực đại ô tô chạy với tốc độ trung bình, ICE phát công suất gần tối đa MG phát khoảng 50 % công suất nhỏ tốc độ lớn Trên thị trường nay, P-HEV có thị phần lớn so với S-HEV Honda Insight, Honda Civic and Honda Accord mẫu P-HEV điển hình chiếm thị phần đáng kể thời gian gần General Motors Parallel Hybrid Truck (PHT), Saturn VUE Hybrid, Aura Greenline Hybrid, Chevrolet Malibu Hybrid ô tô hybrid xếp vào nhóm P-HEV 1.1.1.3 Ô TÔ HYBRID KIỂU HỖN HỢP Ô tô hybrid kiểu hỗn hợp (SP-HEV), gọi ô tô hybrid chia công suất (power-split hybrid vehicle) ô tô hybrid kiểu nối tiếp-song song (seriesparallel hybrid vehicle) Hệ động lực Toyota Prius xem điển hình SP-HEV trình bày để minh họa đặc điểm cấu tạo nguyên lý hoạt động hệ động lực SP-HEV Hệ động lực hybrid Toyota Prius, thường viết tắt THS (Toyota Hybrid System), cấu thành từ thành tố với chức sau [60], [61]:  Động xăng kỳ hoạt động theo chu trình Atkinson (ICE) có chức dẫn động bánh xe chủ động lai môtơ-máy phát điện liên hợp MG1;  Môtơ-máy phát điện liên hợp MG2 có chức phối hợp với ICE dẫn động bánh xe chủ động chức phụ phát điện nạp cho AQ trình phanh MG2 có tính động lực học cao để đảm bảo ô tô rời chỗ nhẹ nhàng tăng tốc tốt;  Môtơ-máy phát điện liên hợp MG1 có chức phát điện cung cấp cho MG2 nạp cho ắcqui, chức phụ khởi động động xăng;  Bộ chia công suất (PSD); 12  AQ cao áp AQ phụ: AQ phụ 12 V có chức trì hoạt động hệ thống điều khiển AQ cao áp có chức cung cấp điện cho MG2 AQ cao áp thường xuyên nạp điện từ máy phát MG1 trình ô tô chạy từ MG2 trình phanh Bộ chia công suất (Power Split Device - PSD) có cấu trúc hoạt động tương tự hộp số bánh hành tinh Giá đỡ bánh hành tinh liên kết với ICE xem đầu vào hộp số, bánh mặt trời liên kết với MG1, vành liên kết với MG2 (Hình 1-3b) Toyota Prius chế tạo năm gần trang bị hệ động lực có cấu trúc nguyên lý hoạt động tương tự Toyota Prius hệ trước thành tố ICE, MG1, MG2 AQ cao áp nâng cấp chất lượng điều chỉnh số thông số tính Chiến lược điều khiển THS thực điều khiển điện tử trung tâm suốt trình hoạt động ô tô Có thể phân biệt chế độ hoạt động đặc trưng sau đây: (1) Chế độ điện: Chế độ điện bao gồm chế độ ô tô bắt đầu chuyển động, chạy từ từ, xuống dốc đoạn đường có độ dốc nhỏ Ở chế độ điện, ICE không hoạt động, MG2 chạy điện từ AQ Toyota Prius trang bị ắcqui cao áp có dung lượng vừa phải (6,5 Ah) nên cho phép hoạt động chế độ điện thời gian tương đối ngắn; (2) Chế độ hành trình (còn gọi chế độ chạy bình thường) chế độ ô tô chạy đường dài Công suất ICE chia cho bánh xe chủ động máy phát điện MG1 với tỷ lệ cho ICE làm việc vùng có hiệu suất tối ưu MG2 chạy điện từ máy phát Nếu dung lượng AQ thấp, phần công suất máy phát dùng để nạp điện cho AQ; (3) Chế độ trợ lực (còn gọi chế độ gia tốc tối đa): Trong điều kiện mà ICE không đáp ứng (tăng tốc để vượt xe phía trước, leo dốc, v.v.), MG2 chạy điện từ AQ cao áp để trợ lực cho ICE; 13 a) b) Hình 1-3 Sơ đồ cấu tạo hệ động lực (a) chia công suất (b) ô tô hybrid kiểu hỗn hợp - Toyota Prius (4) Chế độ nạp AQ (còn gọi chế độ giảm tốc phanh): AQ nạp điện trình phanh xuống dốc điện từ MG2 điện từ MG1 chế độ hành trình Đối với Toyota Prius, điều khiển trung tâm đảm bảo AQ phải nạp đầy, tức không yêu cầu nạp điện thủ công; 14 (5) Chế độ chia công suất ngược: Ô tô chạy chế độ hành trình AQ đầy điện AQ cung cấp điện cho MG2 để dẫn động bánh xe cho MG1 MG1 chạy làm ICE quay chậm với mục đích giảm tiêu hao nhiên liệu momen quay không đổi Có thể liệt kê số đặc điểm THS sau:  THS cho phép ô tô hoạt động theo kiểu hybrid song song, tức bánh xe chủ động dẫn động ICE EM ICE EM đồng thời;  Mặc dù ICE, MG1 MG2 liên kết với thông qua hộp số khí, PSD hoạt động hộp số vô cấp, cho phép ICE thường xuyên làm việc vùng có suất tiêu thụ nhiên liệu tối ưu;  PSD có nhược điểm hiệu suất phụ thuộc nhiều vào lượng công suất chia cho đường điện (MG1) lượng biến đổi qua lại nhiều lần (động  điện  động năng) Ở chế độ vậy, hiệu suất đạt khoảng 70 % so với 98 % chế độ khí túy 1.1.2 SO SÁNH ÔTÔ HYBRID VỚI Ô TÔ TRUYỀN THỐNG Ô tô hybrid đại có đặc điểm sau đây:  Được trang bị hệ động lực hybrid với ICE nhiều EM;  Các nguồn lượng điều khiển theo chiến lược xác định để đảm bảo đạt tiêu mong muốn mà phương án hybrid mang lại;  Có hệ thống thu hồi động ô tô phanh So với ô tô truyền thống, ô tô hybrid có ưu điểm nhược điểm sau đây: (1) Ô tô hybrid tiết kiệm nhiên liệu phát thải hơn: Ô tô hybrid phát triển chủ yếu áp lực vấn đề tiết kiệm nhiên liệu giảm mức độ phát thải Mục tiêu đạt nhờ đặc điểm sau :  ICE ô tô hybrid nhỏ nên tổn thất lượng hơn; 15  Ở S-HEV SP-HEV, tốc độ quay ICE độc lập hoàn toàn vận tốc ô tô nên ICE cho làm việc chế độ tối ưu phương diện tiết kiệm nhiên liệu phát thải;  Tái sử dụng động ô tô trình phanh xuống dốc;  Cho phép ICE không hoạt động chế độ đặc biệt như: chờ trước đèn đỏ, chạy không tải, xuống dốc, v.v (2) Hầu hết mẫu ô tô hybrid có giá bán cao ô tô truyền thống: Để đảm bảo tính kỹ thuật cần thiết, kích thước nhỏ gọn tuổi thọ hợp lý, thiết bị điện (EM, EG, AQ, v.v.) trang bị cho ô tô hybrid thường loại cao cấp với giá thành cao Một số vấn đề khác liên quan đến ô tô hybrid đề cập đến sau: (1) Vật liệu chế tạo: Công nghiệp chế tạo loại thiết bị điện cao cấp trang bị cho ô tô hybrid tiêu thụ lượng lớn vật liệu đặc biệt chế biến từ đất Cho đến nay, 90 % lượng đất sử dụng toàn giới Trung Quốc cung cấp; (2) Vấn đề tuổi thọ hệ động lực: Hầu hết ô tô hybrid thiết kế để ICE không hoạt động số chế độ đặc biệt như: chờ trước đèn đỏ, phanh, xuống dốc chạy tốc độ thấp Như vậy, trình vận hành, ICE ô tô hybrid tắt khởi động lại nhiều lần so với ô tô truyền thống Đặc điểm làm giảm tuổi thọ ICE chất lượng bôi trơn thường thấp chế độ nhiệt thường không tối ưu giai đoạn sau khởi động; (3) Vấn đề ô nhiễm môi trường AQ: Hầu hết ô tô hybrid trang bị AQ loại Nickel - Metal Hydride Lithium Ion Cả hai loại đánh giá thân thiện với môi trường so với AQ loại axit - chì Nickel Cadmium Mặc dù vậy, tồn hoài nghi tác hại nguồn rác thải AQ môi trường sức khỏe người; (4) Vấn đề an toàn giao thông: Trong báo cáo năm 2009 National Highway Traffic Safety Administration (USA) có nhận định rằng: số 16 hoàn cảnh, ô tô hybrid có xu hướng gây tai nạn giao thông cho người xe đạp nhiều so với ô tô truyền thống Ô tô hybrid va chạm với người xe đạp nhiều rẽ góc phố Báo cáo khác tai nạn giao thông ô tô chạy đường lớn 1.1.3 SO SÁNH CÁC KIỂU Ô TÔ HYBRID (1) Hiệu suất ICE :  Do có chức lai máy phát điện nên ICE S-HEV làm việc tốc độ quay không đổi với suất tiêu thụ nhiên liệu thấp nhất, không phụ thuộc vào vận tốc ô tô Hiệu suất động xăng S-HEV đạt đến trị số gần giới hạn lý thuyết (khoảng 37 %), hiệu suất trung bình động xăng ô tô truyền thống P-HEV đạt 30 % [61];  Khi hoạt động đường cao tốc, P-HEV có mức tiêu thụ nhiên liệu thấp S-HEV không cần biến đổi ICE thành điện để cung cấp cho EM;  ICE SP-HEV có hiệu suất trung bình thấp so với ICE SHEV cao so với ICE P-HEV; (2) Công suất EM dung lượng AQ: EM S-HEV phải có công suất lớn, đảm bảo ô tô đạt thông số tính động lực học tối đa theo thiết kế (tốc độ cực đại, gia tốc cực đại, khả leo dốc, v.v.), phần lớn chế độ vận hành yêu cầu công suất thấp Với P-HEV S-HEV có tính động lực học tương đương, P-HEV trang bị AQ EM nhỏ có ICE làm việc yêu cầu công suất lớn; (3) Hệ thống truyền động: S-HEV có hệ thống truyền động đơn giản so với kiểu ô tô hybrid khác Do có EM có liên hệ khí với bánh xe chủ động nên không cần trang bị hộp số nhiều cấp cho S-HEV, thay vào cần cặp bánh giảm tốc bố trí EM vi sai Do có truyền động điện EM với tổ hợp ICE-máy phát điện nên có nhiều lựa chọn vị trí bố trí tổ hợp Những đặc điểm cho phép dễ dàng bố trí thành tố hệ động lực để tăng không gian cabin tối ưu hóa phân bố trọng lượng ô tô 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 [...]... 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 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. .. 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 lượng và các tham số điều khiển nguồn năng. .. 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. .. 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. .. toá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 hệ động lực hybrid hầu như chưa được đề cập đến hoặc nếu có thì có thể đã được giải bằng phương pháp "thử và sai" hoặc bằng kinh nghiệm của người nghiên cứ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. .. 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 các tham số điều khiển cho ô tô hybrid kiểu song song có AQ dung lượng lớn bằng giải thuật đám đông phần tử (Particle Swarm Optimization - PSO) Khi trạng thái năng lượng của ắcqui (SOC) ở mức cao, toàn bộ công suất để dẫn động. .. cách tiếp cận hợp lý và toàn diện, vì độ lớn của 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... 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ơ 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... 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 khiển hệ động lực ô tô hybrid được... 2.2 và 2.3 được xem là cơ sở lý thuyết của phần mô phỏng thực nghiệm sẽ được trình bày trong Chương 3 34 2.1 MÔ HÌNH TỐI ƯU HÓA ĐỘ LỚN NGUỒN NĂNG LƯỢNG VÀ THAM SỐ ĐIỀU KHIỂN HỆ ĐỘNG LỰC Ô TÔ HYBRID 2.1.1 SƠ ĐỒ MÔ HÌNH TỔNG QUÁT NCS sử dụng phương pháp Tối ưu hóa thiết kế đa ngành (Multidisciplinary Design Optimization - MDO) để giải bài toán tối ưu hóa đồng thời nhiều tham số của hệ động lực hybrid

Ngày đăng: 11/05/2016, 10:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan