là cấu hình một bộ biến đổi sử dụng chung cho cả cánh đồng pin , Với cấu hình này, Bộ chuyển đổi có nhiệm vụ lấy công cuất cực đại tại đỉnh lớn nhất trong 2 điểm cực trị của đường đặc tuyến , tác giả sử dụng matlab mô phỏng và làm thực nghiệm
Chương Chương KẾT QUẢ THỰC NGHIỆM 5.1 Mô hình thực nghiệm Hình 5.1 Mơ hình thực nghiệm Pin mặt trời: 56 Chương Hình 5.2 Pin mặt trời 15W thông số nhà sản xuất 57 Chương Hình 5.3 Pin mặt trời 80W thơng số nhà sản xuất Mạch công suất phận đo lường dòng điện: Hình 5.4 Sơ đồ mạch cơng suất phận đo lường dòng điện 58 Chương Mạch điều khiển: Hình 5.5.Sơ đồ nguyên lý mạch điều khiển Sơ đồ mạch in: Hình 5.6 Sơ đồ mạch in mạch điều khiển 59 Chương Hình 5.7 Sơ đồ mạch in mạch cơng suất Hình 5.8 Mạch điều khiển mạch công suất thi công 60 Chương Lưu đồ chương trình chính: Hình 5.9 Lưu đồ chương trình Chương trình vi xử lý PIC16F887 while(1) 61 Chương { write_command(0x80); write_data('U');//1 write_data('(');//2 write_data('V');//3 write_data(')');//4 write_data(' ');//5 write_data(' ');//6 write_data('I');//7 write_data('(');//8 write_data('m');//9 write_data('A');//10 write_data(')');//11 write_data(' '); write_data('P');//13 write_data('(');//14 write_data('W');//15 write_data(')');//16 write_command(0xc0); ADC_volt(); ADC_volt_out(); ADC_amper(); congsuat (); giai_thuat (); } } void ADC_volt(void) { setup_adc(ADC_CLOCK_DIV_2); 62 Chương setup_adc_ports(sAN0); set_adc_channel(0); for (a=0;a < chongnhieu_ap;a++) { tmp_v = read_adc(); volt=(5000*tmp_v)/256; b = volt; c = c + b; } c = c/chongnhieu_ap; c = c*10; c = c/100; volt = c; V1=c; } void ADC_amper(void) { setup_adc(ADC_CLOCK_DIV_2); setup_adc_ports(sAN2); set_adc_channel(2); for (e=0;e < chongnhieu_dong;e++) { tmp_i = read_adc(); amper =(5000*tmp_i)/256; f = amper; g = g + f; } g = g/chongnhieu_dong; 63 Chương g = g*100; g = g/15; amper = g; } void congsuat(void) { c_s = V1*g; c_s = c_s/100; c_s = c_s/10; P1 = c_s; } void giai_thuat(void) { timer = timer + 1; duty = duty + 1; if (timer Pmpp) { Pmpp = P2; Vmpp = V1; Dmpp = duty; } } if (timer > 220) { duty = Dmpp; } 64 Chương trunggian_tren = Pmpp*12; trunggian_tren = trunggian_tren/10; can_tren = trunggian_tren; trunggian_duoi = Pmpp*8; trunggian_duoi = trunggian_duoi/10; can_duoi = trunggian_duoi; if (timer > 300) { if (P1>=can_tren) { timer = 30; duty = 30; Dmpp = 0; Pmpp = 0; Vmpp = 0; } if (P1