Luận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời

183 45 0
Luận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời

Đ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

Luận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trờiLuận án tiến sĩ Kỹ thuật: Nghiên cứu một số phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC THÁI NGUYÊN LÊ TIÊN PHONG NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP NÂNG CAO HIỆU QUẢ KHAI THÁC NGUỒN PIN MẶT TRỜI LUẬN ÁN TIẾN SĨ KỸ THUẬT THÁI NGUYÊN – NĂM 2017 i LỜI CAM ĐOAN Tôi xin cam đoan luận án thành nghiên cứu thân hướng dẫn PGS.TS Nguyễn Văn Liễn – Viện Điện, Trường Đại học Bách Khoa Hà Nội, PGS.TS Ngô Đức Minh – Khoa Điện, trường Đại học Kỹ thuật Công Nghiệp, Đại học Thái Nguyên tập thể nhà khoa học khoa Điện trường Đại học Kỹ thuật Công nghiệp, Đại học Thái Nguyên Kết nghiên cứu luận án trung thực chưa cơng bố cơng trình khác Thái Nguyên, ngày tháng Tác giả luận án Lê Tiên Phong năm 2017 -ii- LỜI CẢM ƠN Đầu tiên, xin bày tỏ lời cảm ơn sâu sắc đến hai thầy hướng dẫn khoa học trực tiếp, PGS.TS Nguyễn Văn Liễn PGS.TS Ngô Đức Minh trực tiếp hướng dẫn, định hướng khoa học trình nghiên cứu Tôi xin gửi lời cảm ơn chân thành kính trọng đến tập thể nhà khoa học khoa Điện, trường Đại học Kỹ thuật Công nghiệp, Đại học Thái Nguyên, bạn bè đồng nghiệp đóng góp ý kiến quý báu chuyên môn suốt thời gian thực luận án Tác giả luận án xin trân trọng cảm ơn Ban giám hiệu, Phòng Đào tạo, Ban chủ nhiệm khoa Điện, Trường Đại học Kỹ thuật Công nghiệp, Đại học Thái Nguyên tạo điều kiện thuận lợi cho nghiên cứu sinh suốt trình học tập nghiên cứu Cuối cùng, tơi muốn nói lời cảm ơn sâu sắc đến bố mẹ, anh chị, vợ ln bên tơi, hết lịng quan tâm, sẻ chia, ủng hộ, động viên tinh thần, tạo điều kiện giúp tơi có nghị lực vượt qua giai đoạn khó khăn nhất, vất vả để hoàn thành luận án Tác giả luận án Lê Tiên Phong -iii- MỤC LỤC KÝ HIỆU VIẾT TẮT vii KÝ HIỆU ix DANH MỤC CÁC HÌNH VẼ .xii DANH MỤC CÁC BẢNG xv MỞ ĐẦU .1 CHƯƠNG TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU 1.1 Khái quát nguồn pin mặt trời 1.2 Cấu trúc chung hệ thống khai thác nguồn pin mặt trời 1.3 Tình hình nghiên cứu giới nước pin mặt trời .7 1.3.1 Tình hình nghiên cứu giới 1.3.2 Tình hình nghiên cứu nước 11 1.4 Một số vấn đề tồn đề xuất hướng giải 12 1.4.1 Một số vấn đề tồn .12 1.4.2 Tiếp cận vấn đề 15 1.4.3 Đề xuất hướng giải .16 1.5 Kết luận chương 17 CHƯƠNG 19 MƠ HÌNH HĨA ĐẦY ĐỦ VÀ NHẬN DẠNG CHÍNH XÁC ĐIỂM CƠNG SUẤT CỰC ĐẠI CHO NGUỒN PIN MẶT TRỜI 19 2.1 Mơ hình tốn học nguồn pin mặt trời 19 2.2 Xây dựng giải pháp nhận dạng thông số ẩn cho nguồn pin mặt trời điều kiện vận hành tiêu chuẩn 23 2.2.1 Nêu vấn đề 23 2.2.2 Thiết lập phương trình điểm đặc biệt điều kiện tiêu chuẩn .24 2.2.3 Phương pháp xác định thông số ẩn 26 2.2.4 Xây dựng thuật tốn xác định thơng số ẩn 27 -iv- 2.2.5 Áp dụng xác định thông số ẩn cho số loại pin quang điện 29 2.3 Giải pháp nhận dạng xác điểm cơng suất cực đại cho nguồn pin mặt trời 31 2.3.1 Nội dung giải pháp đề xuất 31 2.3.2 Đánh giá tính xác giải pháp đề xuất 34 2.4 Mơ hình hóa đầy đủ cho nguồn pin mặt trời 35 2.4.1 Quy đổi giá trị thông số từ điều kiện vận hành tiêu chuẩn điều kiện vận hành 35 2.4.2 Xây dựng hàm số n(T) 38 2.4.3 Mơ hình hóa đầy đủ cho nguồn pin mặt trời 43 2.5 Kết luận chương 44 CHƯƠNG 45 THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NGUỒN PIN MẶT TRỜI THEO MÔ HÌNH ĐẦY ĐỦ 45 3.1 Cấu trúc điều khiển hệ thống 45 3.2 Cơ sở lý thuyết điều khiển mơ tả tốn học biến đổi 47 3.2.1 Cơ sở lý thuyết điều khiển 47 3.2.1.1 Kỹ thuật điều khiển trượt biến đổi DC/DC .47 3.2.1.2 Kỹ thuật điều khiển điện áp trung bình 50 3.2.2 Mơ tả tốn học biến đổi DC/DC buck .51 3.2.2.1 Bộ biến đổi DC/DC buck .51 3.2.2.2 Bộ biến đổi DC/DC boost 52 3.3 Điều khiển khai thác điểm công suất cực đại nguồn pin mặt trời theo mơ hình đầy đủ điều kiện vận hành 54 3.3.1 Phương pháp IB-SMC 54 3.3.1.1 Nguyên lý chung phương pháp IB-SMC 54 3.3.1.2 Phương pháp IB-SMC cho BBĐ DC/DC buck .55 3.3.1.3 Phương pháp IB-SMC cho BBĐ DC/DC boost 58 3.3.1.4 Chiến lược điều khiển BBĐ DC/DC theo phương pháp IB-SMC .60 -v- 3.3.1.5 Mô đánh giá phương pháp IB-SMC 62 3.3.2 Phương pháp IB-AVC 69 3.3.2.1 Nguyên lý chung phương pháp IB-AVC 69 3.3.2.2 Phương pháp IB-AVC cho BBĐ DC/DC buck .71 3.3.2.3 Phương pháp IB-AVC cho BBĐ DC/DC boost 73 3.3.2.4 Chiến lược điều khiển BBĐ DC/DC theo phương pháp IB-AVC .75 3.3.2.5 Kết mô phương pháp IB-AVC .77 3.3.3 So sánh hiệu lượng khả ứng dụng 81 3.4 Điều khiển ghép nối lưới cho nguồn pin mặt trời 86 3.4.1 Cấu trúc điều khiển ghép nối lưới 86 3.4.2 Mô hệ thống điều khiển ghép nối lưới cho nguồn pin mặt trời 87 3.5 Kết luận chương 97 CHƯƠNG 99 KIỂM CHỨNG KẾT QUẢ NGHIÊN CỨU TRÊN MÔ HÌNH THIẾT BỊ THỰC 99 4.1 Xây dựng mơ hình cấu trúc thiết bị thực 99 4.2 Các thiết bị 101 4.2.1 Cảm biến đo công suất xạ mặt trời .101 4.2.2 Cảm biến đo nhiệt độ 102 4.2.3 Ắc quy 102 4.2.4 Sơ đồ đấu nối mạch lực điều khiển .102 4.2.5 Lắp đặt thiết bị cài đặt .105 4.3 Phương thức vận hành mô hình thiết bị thực 106 4.4 Kết thực nghiệm .109 4.4.1 Kiểm chứng tính xác giải pháp đề xuất 109 4.4.2 Đánh giá hiệu lượng giải pháp đề xuất 110 4.5 Kết luận chương 115 KẾT LUẬN VÀ KIẾN NGHỊ 117 -vi- DANH MỤC CƠNG TRÌNH KHOA HỌC CĨ LIÊN QUAN ĐẾN LUẬN ÁN ĐÃ CÔNG BỐ 119 TÀI LIỆU THAM KHẢO 120 PHỤ LỤC 132 -vii- KÝ HIỆU VIẾT TẮT Ký hiệu Cụm từ viết tắt tiếng Việt Cụm từ viết tắt từ tiếng Anh tương đương tương đương AC Dòng điện xoay chiều Alternative Current AI Trí thơng minh nhân tạo Artificial Intelligence ANN Mạng nơron nhân tạo Artificial Neural Network AVC Điều khiển điện áp trung bình Average Voltage Control BBĐ Bộ biến đổi điện tử cơng suất Power Converter CS Tín hiệu điều khiển Control Signal CV Điện áp không đổi Constant Voltage DC Dòng điện chiều Direct Current DCbus Thanh điện áp chiều Điều khiển dị tìm cực trị Extremum seeking control FL Logic mờ Fuzzy Logic IB Kỹ thuật dị chia đơi Iterative and Bisectional technique ESC IB-AVC Phương pháp dị chia đơi - Điều Iterative and Bisectional - Average khiển điện áp trung bình Voltage Control method IB-SMC Phương pháp dị chia đôi - Điều Iterative and Bisectional - Sliding khiển trượt Mode Control method INC Điện dẫn gia tăng Incermental Conductance MBA Máy biến áp Transformer MPP Điểm công suất cực đại Maximum Power Point Bộ bám điểm công suất cực đại Maximum Power Point Tracking OG Độ dốc tối ưu Optimal Gradient OV Điện áp hở mạch Open-Circuit Voltage P&O Dao động quan sát Perturb and Observe PSO Tối ưu bầy đàn Particle Swarm Optimization PVg Nguồn pin mặt trời, hệ thống pin mặt Photovoltaic power generation, trời, cell/module/panel/array pin mặt Photovoltaic system, trời, pin mặt trời Photovoltaic module/panel/array, MPPT solar cell/module/panel/array PYR Cảm biến đo công suất xạ mặt Pyranometer -viii- trời Dòng điện ngắn mạch Short-Circuit Current SMC Điều khiển trượt Sliding Mode Control STC Điều kiện vận hành tiêu chuẩn Standard Test Condition SW Khóa chuyển mạch Switch TempS Cảm biến đo nhiệt độ Temperature sensor THD Tổng độ méo sóng hài Total Harmonic Distorsion SC -152- enum charger_state {off,startup,mppt_track} charger_state; modbusDevice regBank; modbusSlave slave; void setup() { regBank.setId(10); regBank.add(10003); regBank.add(10004); regBank.add(30001); regBank.add(30002); regBank.add(30003); regBank.add(30004); regBank.add(30005); regBank.add(30006); regBank.add(30007); regBank.add(30008); regBank.add(30009); regBank.add(30010); regBank.add(30011); regBank.add(30012); regBank.add(30013); regBank.add(30015); regBank.add(30016); regBank.add(40010); regBank.add(40011); regBank.add(40012); regBank.add(40013); regBank.add(40014); regBank.add(40015); regBank.add(40016); regBank.add(40017); regBank.add(40018); regBank.add(40019); slave._device = ®Bank; slave.setBaud(9600); track_direction = 1; TCCR1B = (TCCR1B & 0b11111000) | B00000001; } void loop() { read_sensors(); modbus_232(); run_charger(); run_load(); tinh_cong_suat(); full_load_en(); } void read_sensors() { int sample1=0; int sample2=0; int sample3=0; int sample4=0; int sample5=0; int sample7=0; int sample8=0; int sample9=0; for(int i=0;i 14000)){ -153- pwm1_setpoint =0; digitalWrite(9,LOW); } if ((mode_run == 1) && (bat_volt < 13800) && (solar_volt > bat_volt + 1000)){ if ((solar_volt > 18400) && (pwm1_setpoint < 250) && (solar_current 15)){ pwm1_setpoint = pwm1_setpoint - 1; } analogWrite(9, pwm1_setpoint); delayMicroseconds(10); } if ((mode_run == 2) && (bat_volt < 13800) && (solar_volt > bat_volt + 1000)){ if ((solar_volt > Vmax*100) && (pwm1_setpoint < 250) && (solar_current 15)){ pwm1_setpoint = pwm1_setpoint - 1; } analogWrite(9, pwm1_setpoint); delayMicroseconds(10); } old_solar_watts = solar_watts; } if((mode_run == 3) && (bat_volt < 13800) && (solar_volt > bat_volt + 2000)) { if ((solar_watts > old_solar_watts) && (pwm1_setpoint < 250) && (solar_current old_solar_volt) {pwm1_setpoint = pwm1_setpoint + step_value; } if (solar_volt < old_solar_volt) {pwm1_setpoint = pwm1_setpoint step_value; }} if ((solar_watts < old_solar_watts) && (pwm1_setpoint >15)){ if (solar_volt > old_solar_volt) {pwm1_setpoint = pwm1_setpoint + step_value; } if (solar_volt < old_solar_volt) {pwm1_setpoint = pwm1_setpoint - step_value; } pwm1_setpoint = pwm1_setpoint - step_value; } analogWrite(9, pwm1_setpoint); delayMicroseconds(10); old_solar_watts = solar_watts; } if((mode_run == 4) && (bat_volt bat_volt + 2000)) { if ((solar_watts >= old_solar_watts) && (pwm1_setpoint < 250) && (solar_current 15)){ pwm1_setpoint = pwm1_setpoint - step_value; } analogWrite(9, pwm1_setpoint); old_solar_watts = solar_watts; } if((mode_run == 4) && (bat_volt >= 13600) && (bat_volt bat_volt + 2000)) { if ((solar_watts >= old_solar_watts) && (pwm1_setpoint < 250) && (solar_current < 186800-13.5*solar_volt ) && (solar_volt >= old_solar_volt)){ pwm1_setpoint = pwm1_setpoint + step_value; } if ((solar_watts < old_solar_watts) && (pwm1_setpoint >15) && (solar_current > 186800-13.5*solar_volt) && (solar_volt set_load_volt) && (pwm2_setpoint < 250) && (load_current < 5000)){ pwm2_setpoint = pwm2_setpoint + 1; } if (((bat_volt < set_load_volt) && (pwm2_setpoint >10)) || (load_current >= 5000)){ pwm2_setpoint = pwm2_setpoint - 1; } analogWrite(6, pwm2_setpoint); } } void tinh_cong_suat() { Times = millis(); if (start_tinh_cong_suat ==1) { -154- Old_energy = Old_energy + solar_watts*(Times - Old_times)/60000; W_ph= Old_energy/100; } Old_times = Times; if (reset_Wph ==1) { Old_energy = 0; } } void full_load_en() { if (load_en == 1) { if (full_load ==1 ){analogWrite(6, 250); }} } Mạch #include #include #include #include #include #include #define IN_pin #define CS_PIN 10 #define CLOCK_PIN 13 #define MOSI_PIN 11 #define MISO_PIN 12 MCP3008 adc(CLOCK_PIN, MOSI_PIN, MISO_PIN, CS_PIN); MCP3008 long solar_volt; long solar_current; long bat_volt ; long bat_current; long load_current; long pwm1_current; long pwm1_setpoint; long pwm2_setpoint; long light_sense; long air_temp; long solar_temp; long solar_watts, W_ph, Buck_watts; long old_solar_watts; long old_solar_ current; int track_direction; word mode_run, start_tinh_cong_suat, full_load; word load_en; word set_load_volt; word step_value; word wide_set; word wide2_set; long Pmax, Vmax, Times, Old_energy, solanlaymau, Old_times, Buck_Wph, Old_energy2; word reset_Wph; const int Solar[] PROGMEM = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000}; const int Pmax20[] PROGMEM = {485, 1030, 1590, 2162, 2740, 3321, 3905, 4491, 5079, 5665}; const int Pmax21[] PROGMEM = {480, 1003, 1580, 2152, 2726, 3304, 3886, 4467, 5053, 5636}; const int Pmax22[] PROGMEM = {480, 1020, 1574, 2142, 2713, 3287, 3864, 4445, 5025, 5600}; const int Pmax23[] PROGMEM = {480, 1018, 1565, 2132, 2700, 3271, 3845, 4421, 5000, 5575}; const int Pmax24[] PROGMEM = {480, 1013, 1557, 2124, 2680, 3255, 3825, 4398, 4970, 5537}; const int Pmax25[] PROGMEM = {479, 1015, 1559, 2114, 2674, 3237, 3800, 4370, 4940, 5500}; const int Pmax26[] PROGMEM = {480, 1009, 1551, 2101, 2656, 3217, 3777, 4340, 4908, 5472}; const int Pmax27[] PROGMEM = {473, 1007, 1545, 2091, 2645, 3200, 3758, 4321, 4882, 5444}; const int Pmax28[] PROGMEM = {476, 1004, 1539, 2084, 2632, 3185, 3742, 4298, 4858, 5417}; const int Pmax29[] PROGMEM = {470, 1000, 1535, 2075, 2622, 3174, 3727, 4280, 4835, 5390}; const int Pmax30[] PROGMEM = {473, 999, 1528, 2068, 2612, 3159, 3709, 4261, 4815, 5368}; const int Pmax31[] PROGMEM = {472, 994, 1523, 2057, 2598, 3145, 3693, 4242, 4792, 5343}; const int Pmax32[] PROGMEM = {478, 993, 1517, 2049, 2587, 3130, 3674, 4221, 4769, 5317}; const int Pmax33[] PROGMEM = {478, 989, 1510, 2041, 2576, 3116, 3658, 4200, 4745, 5288}; const int Pmax34[] PROGMEM = {477, 983, 1503, 2031, 2565, 3100, 3638, 4181, 4721, 5264}; const int Pmax35[] PROGMEM = {478, 979, 1499, 2023, 2552, 3086, 3622, 4158, 4696, 5234}; const int Pmax36[] PROGMEM = {479, 978, 1494, 2014, 2541, 3070, 3603, 4137, 4673, 5209}; const int Pmax37[] PROGMEM = {479, 975, 1487, 2010, 2443, 2950, 3450, 4140, 4670, 5210}; const int Pmax38[] PROGMEM = {480, 980, 1490, 2030, 2530, 3050, 3580, 4120, 4650, 5180}; const int Pmax39[] PROGMEM = {478, 969, 1475, 1987, 2506, 3028, 3570, 4100, 4630, 5160}; const int Pmax40[] PROGMEM = {476, 968, 1370, 1980, 2494, 3013, 3533, 4056, 4579, 5130}; const int Pmax41[] PROGMEM = {478, 963, 1461, 1969, 2483, 2999, 3517, 4036, 4556, 5100}; const int Pmax42[] PROGMEM = {478, 963, 1458, 1963, 2472, 2984, 3499, 4017, 4533, 5080}; const int Pmax43[] PROGMEM = {473, 959, 1451, 1955, 2461, 2971, 3483, 3996, 4510, 5050}; const int Pmax44[] PROGMEM = {470, 960, 1450, 1950, 2460, 2970, 3480, 4000, 4510, 5030}; -155- const int Pmax45[] PROGMEM = {470, 960, 1450, 1950, 2450, 2960, 3470, 3980, 4490, 5000}; const int Pmax46[] PROGMEM = {470, 950, 1440, 1940, 2440, 2940, 3450, 3960, 4470, 4980}; const int Pmax47[] PROGMEM = {470, 950, 1430, 1930, 2430, 2930, 3430, 3940, 4450, 4950}; const int Pmax48[] PROGMEM = {470, 950, 1430, 1920, 2420, 2920, 3420, 3920, 4420, 4930}; const int Pmax49[] PROGMEM = {470, 940, 1430, 1910, 2410, 2900, 3400, 3900, 4400, 4910}; const int Pmax50[] PROGMEM = {470, 940, 1420, 1910, 2400, 2896, 3390, 3890, 4380, 4880}; const int Pmax51[] PROGMEM = {470, 940, 1410, 1890, 2380, 2880, 3370, 3860, 4360, 4860}; const int Pmax52[] PROGMEM = {450, 940, 1390, 1880, 2370, 2860, 3360, 3850, 4340, 4840}; const int Pmax53[] PROGMEM = {460, 930, 1390, 1880, 2370, 2850, 3340, 3830, 4320, 4810}; const int Pmax54[] PROGMEM = {450, 930, 1390, 1870, 2350, 2840, 3320, 3830, 4320, 4790}; const int Pmax55[] PROGMEM = {450, 920, 1380, 1850, 2330, 2820, 3310, 3800, 4280, 4770}; const int Pmax56[] PROGMEM = {440, 920, 1380, 1850, 2330, 2820, 3300, 3780, 4270, 4750}; const int Pmax57[] PROGMEM = {430, 910, 1370, 1852, 2330, 2810, 3290, 3770, 4250, 4720}; const int Pmax58[] PROGMEM = {430, 910, 2370, 1830, 2310, 2790, 3270, 3750, 4230, 4700}; const int Pmax59[] PROGMEM = {430, 900, 1370, 1830, 2310, 2790, 3260, 3740, 4210, 4690}; const int Pmax60[] PROGMEM = {420, 890, 1370, 1830, 2300, 2775, 3240, 3720, 4200, 4630}; const int Pmax61[] PROGMEM = {420, 890, 1370, 1830, 2292, 2767, 3230, 3710, 4184, 4610}; const int Pmax62[] PROGMEM = {410, 880, 1360, 1810, 2288, 2750, 3220, 3690, 4160, 4590}; const int Pmax63[] PROGMEM = {400, 870, 1360, 1700, 2280, 2740, 3210, 3680, 4150, 4570}; const int Pmax64[] PROGMEM = {390, 860, 1350, 1800, 2270, 2730, 3200, 3660, 4130, 4550}; const int Pmax65[] PROGMEM = {380, 850, 1350, 1800, 2260, 2720, 3190, 3650, 4110, 4530}; const int Pmax66[] PROGMEM = {370, 840, 1350, 1790, 2250, 2710, 3180, 3640, 4100, 4500}; const int Pmax67[] PROGMEM = {360, 830, 1350, 1790, 2250, 2710, 3160, 3620, 4090, 4480}; const int Pmax68[] PROGMEM = {350, 800, 1340, 1780, 2240, 2700, 3150, 3610, 4070, 4460}; const int Pmax69[] PROGMEM = {340, 790, 1340, 1780, 2230, 2690, 3150, 3600, 1060, 4430}; const int Pmax70[] PROGMEM = {330, 780, 1340, 1780, 2230, 2680, 3140, 3590, 4000, 4410}; const int Pmax71[] PROGMEM = {380, 770, 1340, 1770, 2220, 2670, 3130, 3580, 4030, 4390}; const int Pmax72[] PROGMEM = {760, 1330, 1330, 1770, 2220, 2660, 3120, 3570, 4020, 4370}; const int Pmax73[] PROGMEM = {750, 1320, 1330, 1750, 2200, 2660, 3100, 3560, 4010, 4350}; const int Pmax74[] PROGMEM = {740, 1310, 1330, 1760, 2210, 2650, 3100, 3550, 4000, 4330}; const int Pmax75[] PROGMEM = {730, 1300, 1330, 1750, 2190, 2650, 3090, 3540, 3980, 4300}; const int Vmax20[] PROGMEM={1673, 1694, 1745, 1717, 1819, 1838, 1853, 1866, 1873,1887}; const int Vmax21[] PROGMEM={1662, 1688, 1729, 1761, 1783, 1825, 1840, 1853, 1863, 1877}; const int Vmax22[] PROGMEM={1659, 1671, 1700, 1756, 1777, 1817, 1832, 1841, 1853, 1867}; const int Vmax23[] PROGMEM={1626, 1659, 1688, 1742, 1763, 1807, 1822, 1835, 1843, 1856}; const int Vmax24[] PROGMEM={1600, 1638, 1671, 1739, 1760, 1797, 1812, 1825, 1836, 1853}; const int Vmax25[] PROGMEM={1658, 1675, 1696, 1723, 1744, 1796, 1811, 1824, 1835, 1845}; const int Vmax26[] PROGMEM={1623, 1691, 1730, 1757, 1778, 1795, 1810, 1819, 1830, 1840}; const int Vmax27[] PROGMEM={1662, 1681, 1719, 1746, 1767, 1784, 1798, 1807, 1818, 1828}; const int Vmax28[] PROGMEM={1642, 1671, 1708, 1735, 1756, 1772, 1787, 1800, 1806, 1816}; const int Vmax29[] PROGMEM={1640, 1656, 1693, 1720, 1740, 1756, 1770, 1782, 1793, 1803}; const int Vmax30[] PROGMEM={1628, 1643, 1679, 1705, 1725, 1742, 1755, 1767, 1778, 1787}; const int Vmax31[] PROGMEM={1625, 1636, 1672, 1697, 1717, 1726, 1740, 1751, 1762, 1771}; const int Vmax32[] PROGMEM={1595, 1620, 1656, 1681, 1701, 1717, 1730, 1740, 1750, 1759}; const int Vmax33[] PROGMEM={1584, 1599, 1621, 1654, 1685, 1700, 1714, 1728, 1738, 1750}; const int Vmax34[] PROGMEM={1563, 1624, 1652, 1665, 1675, 1689, 1702, 1714, 1724, 1733}; const int Vmax35[] PROGMEM={1559, 1619, 1631, 1655, 1674, 1682, 1695, 1707, 1717, 1725}; const int Vmax36[] PROGMEM={1542, 1600, 1620, 1644, 1663, 1672, 1685, 1696, 1706, 1715}; const int Vmax37[] PROGMEM={1531, 1589, 1618, 1640, 1650, 1766, 1780, 1691, 1700, 1709}; const int Vmax38[] PROGMEM={1590, 1561, 1612, 1636, 1645, 1660, 1673, 1684, 1694, 1703}; const int Vmax39[] PROGMEM={1514, 1560, 1598, 1622, 1630, 1644, 1657, 1668, 1677, 1686}; const int Vmax40[] PROGMEM={1502, 1549, 1692, 1611, 1621, 1635, 1648, 1658, 1668, 1676}; const int Vmax41[] PROGMEM={1500, 1559, 1592, 1610, 1617, 1626, 1638, 1648, 1658, 1675}; const int Vmax42[] PROGMEM={1520, 1536, 1568, 1590, 1598, 1617, 1630, 1640, 1649, 1658}; const int Vmax43[] PROGMEM={1500, 1514, 1550, 1579, 1597, 1611, 1623, 1633, 1643, 1651}; -156- const int Vmax44[] PROGMEM={1491, 1512, 1543, 1566, 1587, 1601, 1613, 1623, 1633, 1641}; const int Vmax45[] PROGMEM={1490, 1511, 1543, 1565, 1580, 1595, 1606, 1617, 1626, 1634}; const int Vmax46[] PROGMEM={1473, 1495, 1522, 1559, 1576, 1585, 1597, 1607, 1616, 1624}; const int Vmax47[] PROGMEM={1464, 1473, 1503, 1550, 1566, 1578, 1590, 1600, 1609, 1617}; const int Vmax48[] PROGMEM={1460, 1476, 1500, 1545, 1558, 1572, 1583, 1593, 1600, 1610}; const int Vmax49[] PROGMEM={1460, 1483, 1513, 1535, 1549, 1563, 1574, 1584, 1593, 1600}; const int Vmax50[] PROGMEM={1460, 1483, 1513, 1534, 1550, 1551, 1562, 1572, 1580, 1588}; const int Vmax51[] PROGMEM={1456, 1468, 1456, 1485, 1520, 1533, 1544, 1554, 1560, 1574}; const int Vmax52[] PROGMEM={1380, 1400, 1420, 1470, 1500, 1514, 1539, 1549, 1557, 1565}; const int Vmax53[] PROGMEM={1360, 1398, 1417, 1471, 1504, 1517, 1528, 1538, 1449, 1555}; const int Vmax54[] PROGMEM={1350, 1394, 1420, 1455, 1486, 1505, 1516, 1530, 1537, 1543}; const int Vmax55[] PROGMEM={1340, 1390, 1414, 1433, 1462, 1488, 1513, 1522, 1530, 1534}; const int Vmax56[] PROGMEM={1330, 1380, 1416, 1436, 1466, 1495, 1506, 1515, 1523, 1530}; const int Vmax57[] PROGMEM={1320, 1370, 1400, 1435, 1466, 1494, 1505, 1514, 1522, 1629}; const int Vmax58[] PROGMEM={1320, 1360, 1400, 1418, 1449, 1477, 1487, 1513, 1521, 1528}; const int Vmax59[] PROGMEM={1310, 1350, 1398, 1417, 1448, 1476, 1486, 1495, 1503, 1510}; const int Vmax60[] PROGMEM={1310, 1350, 1397, 1416, 1447, 1459, 1469, 1494, 1502, 1509}; const int Vmax61[] PROGMEM={1300, 1340, 1396, 1415, 1430, 1458, 1468, 1493, 1501, 1508}; const int Vmax62[] PROGMEM={1290, 1340, 1390, 1398, 1429, 1457, 1467, 1476, 1484, 1490}; const int Vmax63[] PROGMEM={1290, 1340, 1379, 1382, 1428, 1440, 1466, 1474, 1482, 1485}; const int Vmax64[] PROGMEM={1290, 1330, 1378, 1381, 1427, 1439, 1465, 1474, 1481, 1483}; const int Vmax65[] PROGMEM={1280, 1320, 1370, 1380, 1410, 1422, 1448, 1456, 1463, 1470}; const int Vmax66[] PROGMEM={1280, 1320, 1377, 1379, 1409, 1420, 1447, 1455, 1462, 1468}; const int Vmax67[] PROGMEM={1280, 1310, 1376, 1378, 1408, 1419, 1429, 1437, 1461, 1465}; const int Vmax68[] PROGMEM={1270, 1310, 1375, 1362, 1391, 1419, 1428, 1436, 1444, 1450}; const int Vmax69[] PROGMEM={1260, 1300, 1359, 1361, 1390, 1417, 1427, 1435, 1443, 1449}; const int Vmax70[] PROGMEM={1250, 1290, 1350, 1360, 1389, 1400, 1426, 1434, 1440, 1445}; const int Vmax71[] PROGMEM={1250, 1280, 1350, 1354, 1383, 1394, 1419, 1428, 1435, 1441}; const int Vmax72[] PROGMEM={1270, 1340, 1341, 1348, 1377, 1388, 1413, 1421, 1428, 1435}; const int Vmax73[] PROGMEM={1260, 1330, 1325, 1332, 1360, 1387, 1396, 1420, 1427, 1433}; const int Vmax74[] PROGMEM={1250, 1320, 1320, 1342, 1370, 1381, 1405, 1414, 1420, 1427}; const int Vmax75[] PROGMEM={1240, 1310, 1310, 1336, 1349, 1390, 1399, 1407, 1414, 1420}; int j,n; enum charger_state {off,startup,mppt_track} charger_state; modbusDevice regBank;modbusSlave slave; void setup() { regBank.setId(12); regBank.add(10003); regBank.add(10004); regBank.add(30001); regBank.add(30002); regBank.add(30003); regBank.add(30004); regBank.add(30005); regBank.add(30006); regBank.add(30007); regBank.add(30008); regBank.add(30009); regBank.add(30010); regBank.add(30011); regBank.add(30012); regBank.add(30013); regBank.add(30014); regBank.add(30015); regBank.add(30016); regBank.add(40010); regBank.add(40011); regBank.add(40012); regBank.add(40013); regBank.add(40014); regBank.add(40015); regBank.add(40017); regBank.add(40018); regBank.add(40019); Serial.begin(9600); slave._device = ®Bank; slave.setBaud(9600); track_direction = 1; TCCR1B = (TCCR1B & 0b11111000) | B00000001; } void loop() { read_sensors(); modbus_232(); pmax_vmax(); run_charger(); run_load(); tinh_cong_suat(); full_load_en(); } void read_sensors() { int sample1=0; int sample2=0; int sample3=0; int sample4=0; int sample5=0; int sample7=0; long sample8=0; long sample9=0; for(int i=0;i 14000)){ pwm1_setpoint =0; digitalWrite(9,LOW); } if ((mode_run == 1) && (bat_volt < 13800) && (solar_volt > bat_volt +1000) && (light_sense>=100)) { if ((solar_volt > Vmax*10) && (pwm1_setpoint < 250) && (solar_current 15)){ pwm1_setpoint = pwm1_setpoint - 1; } analogWrite(9, pwm1_setpoint); delayMicroseconds(10); } old_solar_watts = solar_watts; } void run_load(){ if (load_en == 0) { pwm2_setpoint =0; digitalWrite(6,LOW); } if (load_en == 1) { if ((bat_volt >= set_load_volt) && (pwm2_setpoint < 250) && (load_current < 5000)){ pwm2_setpoint = pwm2_setpoint + 1; } if (((bat_volt < set_load_volt) && (pwm2_setpoint >10)) || (load_current >= 5000)){ pwm2_setpoint = pwm2_setpoint - 1; } analogWrite(6, pwm2_setpoint); } } -165- void tinh_cong_suat() { Times = millis(); if (start_tinh_cong_suat ==1) { Old_energy = Old_energy + solar_watts*(Times - Old_times)/60000; W_ph= Old_energy } Old_times = Times; if (reset_Wph ==1) { Old_energy = 0; } } void full_load_en() { if (load_en == 1) { if (full_load ==1 ){ analogWrite(6, 250); } } } 10 Sơ đồ dây mạch lực mạch điều khiển mô hình thiết bị thực ... nghiên cứu giới nước pin mặt trời 1.3.1 Tình hình nghiên cứu giới Các nghiên cứu PVg tập trung vào toán nâng cao hiệu khai thác PVg, quản lý/điều tiết lượng, áp dụng biện pháp điều khiển để nâng. .. QUAN VẤN ĐỀ NGHIÊN CỨU 1.1 Khái quát nguồn pin mặt trời 1.2 Cấu trúc chung hệ thống khai thác nguồn pin mặt trời 1.3 Tình hình nghiên cứu giới nước pin mặt trời .7 1.3.1... toán khai thác tối ưu nguồn lượng phát từ PVg đối tượng nghiên cứu luận án Trong đó, tập trung vào vấn đề xác định xác thông số MPP để làm thông số đặt cho điều khiển, qua nâng cao hiệu khai thác

Ngày đăng: 07/10/2020, 11:26

Từ khóa liên quan

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

Tài liệu liên quan