Thiết kế bộ điều khiển sạc cho ắc quy 12V bằng pin mặt trời 25W, dùng nguyênn lý mạch Buck hạ áp. Đồ án tốt nghiệp đạt A+ bộ môn điều khiển tự động hoá đại học Bách Khoa Đà Nẵng bao gồm 1 file thuyết minh, các hình ảnh và đồ thị thu được, hình ảnh và video test mạch thực tế, các thiết kế mạch nguyên lý, code arduino và bản vẽ CAD.
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP Chuyên ngành: KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA Đề tài Capstone: ĐIỀU KHIỂN NGUỒN MỘT CHIỀU KỸ THUẬT SỐ TRONG HẸ THỐNG LAI NGUỒN MẶT TRỜI NỐI LƯỚI Giảng viên hướng dẫn : TS NGUYỄN HOÀNG MAI : KS PHAN HUỲNH UYÊN TRINH Sinh viên thực : NGUYỄN TIẾN MINH Số thẻ sinh viên : 105170448 Lớp : 17TDHCLC2 Đà Nẵng, tháng 03 năm 2022 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc ĐÁNH GIÁ CỦA GIÁNG VIÊN HƯỚNG DẪN ………… …,ngày…… , tháng ……., năm…… Giảng viên hướng dẫn (Ký, ghi rõ họ tên) ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc ĐÁNH GIÁ CỦA GIÁNG VIÊN PHẢN BIỆN ………… …,ngày…… , tháng ……., năm…… Giảng viên phản biện (Ký, ghi rõ họ tên) ii TÓM TẮT Tên đề tài: “Điều khiển nguồn kỹ thuật số hệ thống lai nguồn mặt trời nối lưới” Sinh viên thực hiện: NGUYỄN TIẾN MINH Số thẻ sinh viên: 105170448 Lớp: 17TDHCLC2 Nội dung đồ án bao gồm chương: Chương 1: Tổng quan lượng mặt trời Chương 2: Cơ sở lý thuyết Chương 3: Tính chọn linh kiện thiết kế sạc Chương 4: Mơ lắp đặt mơ hình thực tế Chương 5: Kết luận hướng phát triển đề tài Đồ án trình bày hệ thống điện lượng mặt trời làm việc độc lập, bước tính tốn thiết kế mơ hình điện dạng sạc cho nguồn chiều hệ thống điện lượng mặt trời cách đầy đủ Phương pháp nghiên cứu xây dựng lưu đồ thuật tốn, tính tốn thiết kế mạch, mơ thuật tốn lựa chọn Thi cơng lắp ráp để kiểm chứng tính đắn phần thiết kế lưu đồ thuật toán vừa xây dựng iii ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP TT Họ tên sinh viên Số thẻ SV Lớp Ngành Nguyễn Tiến Minh 105170448 17TDHCLC2 Kỹ thuật điều khiển tự động hóa Nguyễn Xuân Trang 105170458 17TDHCLC2 Kỹ thuật điều khiển tự động hóa Tên đề tài đồ án: Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới Đề tài thuộc diện: ☐Có ký kết thỏa thuận sở hữu trí tuệ kết thực Các số liệu liệu ban đầu: Công suất pin mặt trời 25W, điện áp acquy 12V Nội dung phần thuyết minh tính tốn: a Phần chung: TT Họ tên sinh viên Nội dung Nguyễn Tiến Minh Nguyễn Xuân Trang Tra cứu tài liệu, thống giới hạn đề tài Tìm hiểu chức năng, thiết bị cần thiết cho hệ lai nguồn mặt trời nối lưới Thực nghiệm phân tích kết b Phần riêng: TT Họ tên sinh viên Nội dung Nguyễn Tiến Minh Tìm hiểu linh kiện sử dụng đồ án Lập trình cho vi điều khiển Thiết kế slide thuyết trình Nguyễn Xuân Trang Thực tính tốn thơng số đồ án Thi cơng mạch PCB mơ hình hệ thống Hoàn thành word Các vẽ, đồ thị ( ghi rõ loại kích thước vẽ ): a Phần chung: TT Họ tên sinh viên Nội dung Nguyễn Tiến Minh Nguyễn Xuân Trang Lên ý tưởng thiết kế sơ Tiến hành ghép nối ý tưởng hoàn thành vẽ iv b Phần riêng: TT Họ tên sinh viên Nội dung Nguyễn Tiến Minh Vẽ mạch nguyên lý mạch PCB sử dụng Proteus Mô hệ thống Matlab/Simulink Nguyễn Xuân Trang Vẽ mạch nguyên lý lưu đồ thuật toán sử dụng Autocad (kích thước chuẩn A1) Họ tên người hướng dẫn: Phần/ Nội dung: TS Nguyễn Hoàng Mai Tất nội dung Ngày giao nhiệm vụ đồ án: Ngày hoàn thành đồ án: 25/10/2021 17/03/2022 Đà Nẵng, ngày 25 tháng 10 năm 2021 Trưởng Bộ môn Tự động hóa Người hướng dẫn TS Giáp Quang Huy TS Nguyễn Hoàng Mai v ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc PHIẾU KIỂM SOÁT TIẾN ĐỘ LÀM ĐỒ ÁN TỐT NGHIỆP (Phiếu dành cho người hướng dẫn/sinh viên) Họ tên sinh viên: NGUYỄN TIẾN MINH Số thẻ SV : 105170448 Tên đề tài ĐATN: Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới Họ tên người HD: TS NGUYỄN HOÀNG MAI Đơn vị: Bộ mơn Tự Động Hố – Khoa Điện đại học Bách Khoa, đại học Đà Nẵng Tuầ n Khối lượng GVHD thực (%) tiếp tục thực (%) ký tên Liên hệ nhận đề tài từ Nghiên cứu lý thuyết liên 26/10/202 giảng viên hướng dẫn quan đến đề tài ĐATN Tìm hiểu ứng dụng 01/11/202 Tìm hiểu đề tài thức tế đề tài 14/11/202 Khoanh vùng giới hạn Viết báo cáo chương đề tài Ngày 23/11/202 Duyệt lần 1: Đánh giá khối lượng hoàn thành _ % : Được tiếp tục làm ĐATN Không tiếp tục thực ĐATN Hoàn thành báo cáo Tổng hợp sở lý thuyết 29/11/202 chương 1, định hướng cụ áp dụng cho đề tài, chọn thể nội dung đề tài thuật toán phù hợp Hoàn thành khung sở Lựa chọn linh kiện 20/12/202 lý thuyết, chọn thuật toán thiết bị cần thiết cho P&O để dị tìm MPPT mạch điều khiển động lực Hồn thành tính chọn linh Viết chương trình điều 17/01/202 kiện khiển Viết báo cáo chương 2, Duyệt lần 2: Đánh giá khối lượng hoàn thành _ % : 09/02/202 Được tiếp tục làm ĐATN Không tiếp tục thực ĐATN Chương 2: Cơ sở lý thuyết Thực mô 14/02/202 Chương 3: Tính chọn linh matlab/Simulink kiện thiết kế hệ thống Hồn thành phần mơ Xây dựng mơ hình thực 28/02/202 10 tế vi 10/03/202 11 Duyệt lần 3: Đánh giá khối lượng hoàn thành _ % : Được tiếp tục làm ĐATN Khơng tiếp tục thực ĐATN Hồn thành chạy Kiểm tra lỗi hành 14/03/202 12 chương trình mơ hình mơ hình Viết báo cáo chương 16/03/202 Hoàn thiện thuyết minh Nộp thuyết minh 13 ĐATN Chuẩn bị slide báo cáo vii LỜI CẢM ƠN Em xin chân thành cảm ơn đến quý thầy cô giáo khoa Điện trường Đại học Bách Khoa - Đại học Đà Nẵng tạo điều kiện cho em thực đồ án này, với kiến thức mà quý thầy cô truyền cho em năm học qua Em xin gửi lời cảm ơn chân thành đến TS Nguyễn Hồng Mai, giảng viên Bộ mơn Tự Động Hóa, trường Đại Học Bách Khoa – Đại Học Đà Nẵng, người tận tình hướng dẫn, bảo em suốt trình làm đồ án Cuối cùng, em xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt q trình học tập hồn thành tốt khoá luận tốt nghiệp Đà Nẵng, ngày 27 tháng 01 năm 2022 Sinh viên thực Nguyễn Tiến Minh viii LỜI CAM ĐOAN Tôi xin cam đoan đề tài nghiên cứu “Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới” kết cơng trình nghiên cứu nhóm em Các số liệu kết nghiên cứu trung thực, xác chưa cơng bố cơng trình khác Tơi xin cam đoan giúp đỡ q trình nghiên cứu hồn thành đồ án cảm ơn trích dẫn đồ án ghi rõ nguồn gốc Đà Nẵng, ngày 27 tháng 01 năm 2022 Sinh viên thực Nguyễn Tiến Minh ix Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới 4.2.1.3 Hộp đựng Hình 17: Hộp đựng mạch điều khiển sạc pin lượng mặt trời 4.2.1.4 Dàn pin mặt trời Hình 18: Dàn pin mặt trời SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 54 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới 4.2.2 Kết mơ hình Hình 19: Kết nhận từ monitor Arduino IDE Hình 20: Quan sát LCD Đánh giá: Mạch hoạt động chương trình thiết lập, PWM thay đổi để bán theo điểm công suất cực đại giá trị Vmp chưa ổn định Một hạn chế hệ cảm biến dòng chưa đo giá trị thật, dẫn đến giá trị công suất pin chưa xác SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hồng Mai 55 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Kết luận: – Ưu điểm đề tài: Dễ lắp ráp sử dụng Bố trí nhiều vị trí lý khác Phần mềm thiết kế đơn giản, tận dụng tính Aruino Bộ điều khiển nạp hoạt động dựa vào thuật tốn MPPT nên khai thác cơng suất pin mặt trời hiệu LCD hiển thị cho người vận hành dễ quan sát – Nhược điểm đề tài: Sử dụng nguồn adapter 12V cấp cho mạch điều khiển nên tính di động chưa cao Khi mặt trời nắng chiếu khơng thẳng góc lượng thu bị giảm Giá trị hiệu chỉnh điện áp dịng điện khơng q xác Điều kiện thời gian hạn hẹp nên mô hình hướng đến quy mơ nhỏ Hướng phát triển đề tài: – Đối với quy mơ lớn ta xây dựng pin NLMT cấp riêng điện áp cho điều khiển sạc − Với thực qua đồ án Trong thời gian tới chúng rôi phát triển đề tài với công suất lớn nhằm đủ cung cấp cho nhiều thiết bị sinh hoạt sinh hoạt gia đình SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 56 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới TÀI LIỆU THAM KHẢO [1] TS Lưu Ngọc An, TS Phan Đình Chung, TS Đồn Anh Tuấn “HỆ THỐNG ĐIỆN GIĨ VÀ MẶT TRỜI vấn đề - giải pháp”, Đại học Bách Khoa Đà Nẵng [2] TS Nguyễn Hồng Mai “giáo trình MẠCH ĐIỆN TỬ TƯƠNG TỰ VÀ SỐ” Đại học Bách Khoa Đà Nẵng [3] TS Nguyễn Hồng Mai “Giáo trình KỸ THUẬT ĐO LƯỜNG” Đại học Bách Khoa Đà Nẵng [4] Phạm Quốc Hải “ ĐIỆN TỬ CƠNG SUẤT” [5] TS Hồng Dương Hùng “NĂNG LƯỢNG MẶT TRỜI LÝ THUYẾT VÀ ỨNG DỤNG” [6] Ned Mohan “POWER ELECTRONICS – CONVERTERS APPLICATIONS AND DESIGN” [7] Website: https://www.alldatasheet.com/ [8] Website: https://www.digikey.com/ SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 57 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới PHỤ LỤC (Chương trình lập trình vi điểu khiển Arduino) STT CODE #include #include #include #include #define LOAD_ALGORITHM #define SOL_VOLTS_CHAN #define BAT_VOLTS_CHAN #define SOL_AMPS_CHAN #define AVG_NUM #define SOL_VOLTS_SCALE 0.024900275 #define BAT_VOLTS_SCALE 0.024926075 #define SOL_AMPS_SCALE 0.024506081 #define PWM_PIN #define PWM_ENABLE_PIN #define PWM_FULL 1023 #define PWM_MAX 100 #define PWM_MIN 60 #define PWM_START 90 #define PWM_INC #define TRUE #define FALSE #define ON TRUE #define OFF FALSE #defineTURN_ON_MOSFETS digitalWrite(PWM_ENABLE_PIN, HIGH) #defineTURN_OFF_MOSFETS digitalWrite(PWM_ENABLE_PIN, LOW) #define ONE_SECOND 50000 #define LOW_SOL_WATTS 5.00 // #define MIN_SOL_WATTS 1.00 #define MIN_BAT_VOLTS 11.00 #define MAX_BAT_VOLTS 14.10 #define BATT_FLOAT 13.60 #define LVD 11.5 #define OFF_NUM #define LOAD_PIN byte battery_icons[6][8]= {{ 0b01110, 0b11011, 0b10001, SVTH: Nguyễn Tiến Minh COMMENT Khai báo thư viện thiết bị cho Arduino LINK Khai báo chân tải pin mặt trời, acquy nối với chân Arduino Khai báo giá trị tỷ lệ cho việc đọc adc thơ để có điện áp từ pin mặt trời Kênh điều khiển chức ngắt mosfet driver IR2104 Khai báo duty cycle giới hạn PWM cấp xung cho Mosfet Đếm số lượng ngắt giây chu kỳ ngắt 20 micro giây Điện áp acquy ta muốn ngừng cấp sạc GVHD: TS Nguyễn Hoàng Mai 58 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới 0b10001, 0b10001, 0b10001, 0b11111, 0b00000, }, { 0b01110, 0b11011, 0b10001, 0b10001, 0b10001, 0b11111, 0b11111, 0b00000, }, { 0b01110, 0b11011, 0b10001, 0b10001, 0b11111, 0b11111, 0b11111, 0b00000, }, { 0b01110, 0b11011, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b00000, }, { 0b01110, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b00000, }, { SVTH: Nguyễn Tiến Minh Khởi tạo biểu tượng hình LCD GVHD: TS Nguyễn Hoàng Mai 59 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới 0b01110, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b00000, }}; #define SOLAR_ICON byte solar_icon[8] = { 0b11111, 0b10101, 0b11111, 0b10101, 0b11111, 0b10101, 0b11111, 0b00000 }; #define PWM_ICON byte _PWM_icon[8]= { 0b11101, 0b10101, 0b10101, 0b10101, 0b10101, 0b10101, 0b10111, 0b00000, }; byte backslash_char[8]= { 0b10000, 0b10000, 0b01000, 0b01000, 0b00100, 0b00100, 0b00010, 0b00000, }; float sol_amps; float sol_volts; float bat_volts; SVTH: Nguyễn Tiến Minh Khởi tạo hàm cho thuật toán LCD GVHD: TS Nguyễn Hoàng Mai 60 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới float sol_watts; float old_sol_watts = 0; unsigned int seconds = 0; unsigned int prev_seconds = 0; unsigned int interrupt_counter = 0; unsigned long time = 0; int delta = PWM_INC; int pwm = 0; int back_light_pin_State = 0; boolean load_status = false; enum charger_mode {off, on, bulk, bat_float} charger_state; LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { Serial.begin(115200); Arduino_SoftSerial.begin(9600); pinMode(PWM_ENABLE_PIN, OUTPUT); TURN_OFF_MOSFETS; charger_state = off; lcd.begin(20,4); lcd.backlight(); for (int batchar = 0; batchar < 6; ++batchar) { lcd.createChar(batchar, battery_icons[batchar]); } lcd.createChar(PWM_ICON,_PWM_icon); lcd.createChar(SOLAR_ICON,solar_icon); lcd.createChar('\\',backslash_char); Timer1.initialize(20); Timer1.pwm(PWM_PIN, 0); Timer1.attachInterrupt(callback); Serial.begin(9600); pwm = PWM_START; pinMode(LOAD_PIN,OUTPUT); digitalWrite(LOAD_PIN,LOW); lcd.setCursor(0, 0); lcd.print("SOL"); lcd.setCursor(4, 0); lcd.write(SOLAR_ICON); lcd.setCursor(8, 0); lcd.print("BAT"); } void loop() { read_data(); SVTH: Nguyễn Tiến Minh Biến sử dụng để sửa đổi duty cycle cho thuật toán MPPT Các biến liệt kê thông báo trạng thái sạc Đặt chân digital làm đầu Bắt đầu sạc với trang thái tắt Khởi tạo thông tin LCD chạy chương trình Khởi tạo timer1 Thiết lập chân pwm chân 9, duty cycle 0% Ngắt tràn định thời GVHD: TS Nguyễn Hoàng Mai 61 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới run_charger(); print_data(); load_control(); led_output(); lcd_display(); Đọc giá trị đầu vào } int read_adc(int channel) { float sum = 0; int temp; int i; for (i=0; i ONE_SECOND) { interrupt_counter = 0; seconds++; } } void set_pwm_duty(void) { if (pwm > PWM_MAX) { pwm = PWM_MAX; } else if (pwm < PWM_MIN) { pwm = PWM_MIN; } SVTH: Nguyễn Tiến Minh Lặp lại đọc giá trị i 100 lần Lưu giá trị trung bình, tạm dừng 50us Tính tốn công suất solar Tăng interrupt_counter 1s trôi qua Sau đếm giây tăng dần Kiểm tra giới hạn duty cycle PWM đặt thành PWM_MAX GVHD: TS Nguyễn Hoàng Mai 62 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới if (pwm < PWM_MAX) { Timer1.pwm(PWM_PIN,(PWM_FULL * (long)pwm / 100), 20); } else if (pwm == PWM_MAX) { Timer1.pwm(PWM_PIN,(PWM_FULL - 1), 20); } } void run_charger(void) { static int off_count = OFF_NUM; switch (charger_state) { case on: if (sol_watts < MIN_SOL_WATTS) { charger_state = off; off_count = OFF_NUM; TURN_OFF_MOSFETS; } else if (bat_volts > (BATT_FLOAT - 0.1)) { charger_state = bat_float; } else if (sol_watts < LOW_SOL_WATTS) { pwm = PWM_MAX; set_pwm_duty(); } else { LOW -> pwm = % ? pwm = ((bat_volts * 10) / (sol_volts / 10)) + 5; charger_state = bulk; } break; Sử dụng quy trình Timer1 để đặt chu kỳ nhiệm vụ pwm chu kỳ 20uS Nếu pwm đặt thành 100%, chế độ đầy đủ Tiếp tục chuyển đổi để đặt chu kỳ nhiệm vụ mức 99,9% Trường hợp P solar nhỏ giá trị (trời nhiều mây or ban đêm)-> tắt sạc Biến U acquy chuyển sang trang thái sạc Giá trị pwm thay đổi thông trạng trái sạc bulk case bulk: if (sol_watts < MIN_SOL_WATTS) { charger_state = off; off_count = OFF_NUM; TURN_OFF_MOSFETS; } //Tương tự SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 63 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới else if (bat_volts > BATT_FLOAT) / { charger_state = bat_float; } else if (sol_watts < LOW_SOL_WATTS) { charger_state = on; TURN_ON_MOSFETS; } else { if (old_sol_watts >= sol_watts) { delta = -delta; } pwm += delta; old_sol_watts = sol_watts; set_pwm_duty(); } break; case bat_float: if (sol_watts < MIN_SOL_WATTS) { charger_state = off; off_count = OFF_NUM; TURN_OFF_MOSFETS; set_pwm_duty(); } else if (bat_volts > BATT_FLOAT) { TURN_OFF_MOSFETS; pwm = PWM_MAX; set_pwm_duty(); } else if (bat_volts < BATT_FLOAT) { pwm = PWM_MAX; set_pwm_duty(); //Đặt lại pwm TURN_ON_MOSFETS; if (bat_volts < (BATT_FLOAT - 0.1)) { charger_state = bulk; } } break; case off: TURN_OFF_MOSFETS; if (off_count > 0) { off_count ; } else if ((bat_volts > BATT_FLOAT) && (sol_volts > bat_volts)) { charger_state = bat_float; TURN_ON_MOSFETS; } else if ((bat_volts > MIN_BAT_VOLTS) && (bat_volts < BATT_FLOAT) && (sol_volts > bat_volts)) { charger_state=bulk; TURN_ON_MOSFETS; } break; SVTH: Nguyễn Tiến Minh Nếu U acquy vượt U acquy ta muốn ngừng cấp sạc Nếu P solar đầu vào nhỏ P solar LOW, khơng có nhiều lượng tạo từ solar Vì ta trang thái U acquy > U acquy ta muốn ngưng cấp sạc Còn U acquy < U acquy ta muốn ngưng cấp sạc Điều phép điện áp acquy ổn định để xem liệu acquy ngắt kết nối chưa Nếu U acquy không cao U solar > U acquy, -> ánh sáng ban ngày chuyển sang trang thái sạc GVHD: TS Nguyễn Hoàng Mai 64 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới default: TURN_OFF_MOSFETS; break; } } void load_control() { #if LOAD_ALGORITHM == load_on(sol_watts < MIN_SOL_WATTS && bat_volts > LVD); #else load_on(sol_watts > MIN_SOL_WATTS && bat_volts > BATT_FLOAT); #endif } void load_on(boolean new_status) { if (load_status != new_status) { load_status = new_status; digitalWrite(LOAD_PIN, new_status ? HIGH : LOW); } } void print_data(void) { Serial.print(seconds,DEC); Serial.print(" "); Serial.print("Charging = "); if (charger_state == on) Serial.print("on "); else if (charger_state == off) Serial.print("off "); else if (charger_state == bulk) Serial.print("bulk "); else if (charger_state == bat_float) Serial.print("float"); Serial.print(" "); Thông báo trạng thái lên hình LCD tiến hành sạc cho tải pin Theo đơn vị bên Serial.print("pwm = "); if(charger_state == off) Serial.print(0,DEC); else Serial.print(pwm,DEC); Serial.print(" "); Serial.print("Current (panel) = "); Serial.print(sol_amps); SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 65 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới Serial.print(" "); Serial.print("Voltage (panel) = "); Serial.print(sol_volts); Serial.print(" "); Serial.print("Power (panel) = "); Serial.print(sol_volts); Serial.print(" "); Serial.print("Battery Voltage = "); Serial.print(bat_volts); Serial.print(" "); Serial.print("\n\r"); delay(100 lcd.setCursor(0, 0); lcd.print("SOL"); lcd.setCursor(4, 0); lcd.write(1); lcd.setCursor(0, 1); lcd.print(sol_volts); lcd.print("V"); lcd.setCursor(0, 2); lcd.print(sol_amps); lcd.print("A"); lcd.setCursor(0, 3); lcd.print(sol_watts); lcd.print("W "); lcd.setCursor(8, 0); lcd.print("BAT"); lcd.setCursor(12, 0); lcd.write(2); lcd.setCursor(8, 1); lcd.print(bat_volts); lcd.print("V"); lcd.setCursor(8,2); if (charger_state == on) lcd.print("on"); else if (charger_state == off) lcd.print("off"); else if (charger_state == bulk) lcd.print("bulk"); else if (charger_state == bat_float) lcd.print("float"); lcd.setCursor(8,3); if ( bat_volts >= 13) lcd.print( "100%"); else if (bat_volts >= 12.5 && bat_volts < 13) lcd.print( "90%"); SVTH: Nguyễn Tiến Minh In thông số sạc lên hình LCD đồng thời đằng sau ký hiệu điện áp, dịng điện, cơng suất sạc GVHD: TS Nguyễn Hoàng Mai 66 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới else if (bat_volts >= 12.42 && bat_volts < 12.5) lcd.print( "80%"); else if (bat_volts >= 12.32 && bat_volts < 12.42) lcd.print( "70%"); else if (bat_volts >= 12.2 && bat_volts < 12.32) lcd.print( "60%"); else if (bat_volts >= 12.06 && bat_volts < 12.2) lcd.print( "50%"); else if (bat_volts >= 11.90 && bat_volts < 12.06) lcd.print( "40%"); else if (bat_volts >= 11.75 && bat_volts < 11.90) lcd.print( "30%"); else if (bat_volts >= 11.58 && bat_volts < 11.75) lcd.print( "20%"); else if (bat_volts >= 11.31 && bat_volts < 11.58) lcd.print( "10%"); else if (bat_volts < 11.3) lcd.print( "0%"); lcd.setCursor(15,0); lcd.print("PWM"); lcd.setCursor(19,0); lcd.write(3); lcd.setCursor(15,1); lcd.print(pwm); lcd.print("%"); lcd.setCursor(15,2); lcd.print("Load"); lcd.setCursor(15,3); if (load_status == 1) { lcd.print("On"); } else { lcd.print("Off");} lcd.backlight(); } SVTH: Nguyễn Tiến Minh GVHD: TS Nguyễn Hoàng Mai 67 Điều khiển nguồn chiều kỹ thuật số hệ thống lai nguồn mặt trời nối lưới PHỤ LỤC (Chương trình lập trình điều khiển mơ matlab theo thuật toán P&O) STT CODE Function D = Dutyratio(V,I) Dmax = 0.95; Dmin = 0; Dinit = 0.95; DeltaD = 0.0001; Persitent Vold Pold Dold; datatype = ‘double’; isempty(Vold) Vold = 0; Pold = 0; Dold = Dinit; End P = V*I; dV = V – Vold; dP = P-Pold; if dP ~= if dP