Kết quả thử nghiệm

Một phần của tài liệu Thiết kế chế tạo biến tần một pha thuần sin để khai thác năng lượng tái tạo (Trang 67 - 84)

2. 3.1

3.2. Kết quả thử nghiệm

Hỡnh 3.17. Kết nối mạch lực * Hỡnh ảnh về dạng súng đƣợc đo thực tế trờn BBĐ. - Dạng súng điện ỏp ra khi khụng tải.

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

- Dạng súng điện ỏp ra, khi tải là búng đốn sợi đốt 100W

Hỡnh 3.19: Dạng súng điện ỏp ra khi tải là búng sợi đốt 100W

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

- Dạng súng ra trờn tải khi tải là quạt điện 45W

Hỡnh 3.21: Dạng súng ra trờn tải khi tải là quạt điện 45W

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

- Dạng súng ra trờn tải khi tải là 30W

3.23 30W

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ - 30W 3.25 30W Hỡnh 3.26: Hỡnh chụp riờng dạng súng của hỡnh 3.25

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

* Nhận xột:

- Điện ỏp ra là 220V, tần số là 55Hz và dạng súng ra dạng sin (cú độ mộo nhỏ), hoàn toàn cú thể đỏp ứng đƣợc với tải là cỏc thiết bị điện dõn dụng.

- Vận hành thử nghiệm BBĐ, với tải là 02 quạt điện, hoạt động liờn tục trong thời gian là 5h, kết quả là: Quạt chạy ờm khụng gõy tiếng ồn và khụng phỏt núng

- Điện ỏp ra trờn tải luụn ổn định do cú phản hồi điện ỏp.

- Bảo vệ quỏ tải bằng mạch vũng phản hồi dũng điện, nếu cú hiện tƣợng quỏ tải xảy ra thỡ ngắt xung PWM. Bảo vệ ngắn mạch ở đầu ra dựng cầu chỡ.

- Bảo vệ điện ỏp vào quỏ cao hay quỏ thấp bằng mạch đo điện ỏp. - Tần số ra trờn tải 55 Hz phự hợp với thiết bị điện tại Việt Nam.

* Kết luận:

Từ kết quả thực nghiệm trờn, cú thể núi rằng em đó hoàn thành

việc thiết kế phần cứng BBĐ DC-AC. Với điện ỏp ra ổn định 220v, tần số 55Hz và súng sin (cú độ mộo nhỏ), hoàn toàn cú thể đỏp ứng đƣợc với cỏc thiết bị dõn dụng. Tuy nhiờn nếu cung cấp điện ỏp cho cỏc thiết bị chuyờn dụng, hoặc cỏc thiết bị yờu cầu chất lƣợng điện ỏp cao hơn, thỡ cần phải thiết kế thờm mạch lọc.

* riển.

- Phỏt triển thành bộ inverter dựng trong gia đỡnh.

- Cú thể phỏt triển thành bộ thớ nghiệm dựng giảng dạy và học tập cỏc mụn;

Điện tử cụng suất, Vi điều khiển.

- Nếu tớch hợp mạch nạp cho IC VĐK trờn cựng bo mạch chớnh, để thay đổi nội dung chƣơng trỡnh phần mềm, mục đớch là để thay đổi tần số điện ỏp ra trờn tải thỡ cú thể sử dụng nhƣ biến tần 1 pha.

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

TÀI LIỆU THAM KHẢO

- Trần Xuõn Minh và Nguyễn Nhƣ Hiển: Tổng hợp hệ điện cơ - NXB Giỏo - Vũ Gia Hanh, Phan Tử Thụ (1992- Biờn dịch), Mỏy điện, Nhà xuất bản Khoa

học kỹ thuật Hà Nội.

- Huỳnh Văn Kiểm. Bài giảng túm tắt mụn điện tử cụng suất 1. Dục Việt Nam (2011)

- Nguyễn Văn Nhờ (2008). Điện tử cụng suất 1. NXB Đại học quốc gia TPHCM.

- Trần Khỏnh Hà (1997), Mỏy điện tập 1, Nhà xuất bản Khoa học kỹ thuật Hà Nội.

- Tiờu chuẩn ắc quy, TCVN 4472 – 1993.

- www.vft.com.vn trờn mục “Bộ nghịch lƣu thuần sin sử dụng điều chế độ rộng xung PWM” gửi ngày 12/10/2010.

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

PHỤ LỤC 1: CHƢƠNG TRèNH ĐIỀU KHIỂN

#include <mega8.h> #include <delay.h> #include <stdio.h> #include <math.h>

/*---cac chan dieu khien relay---*/

#define POW_ON() {DDRC.5 = 1;PORTC.5 = 1;} //bat nguon #define POW_OFF() {PORTC.5 = 0;} //tat nguon

#define BUTTON_DIR DDRC.5 //huong dieu khien #define BUTTON_OUT PORTC.5

#define BUTTON_IN PINC.5 #define RELAY2 PORTC.2 #define RELAY3 PORTC.3 #define RELAY4 PORTC.4

#define BELL PORTC.0 //Coi bao

/*---Cac trang thai he thong---*/ #define IDLE 1 //trang thai he thong dang nhan roi #define INVERTER 2 //trang thai inverter

#define CHANGER 3 //trang thai nap acquy #define OVERLOAD 4 //trang thai qua tai

#define LOW_LEVEL_BAT 5 //trang thai acquy dien ap thap #define HIGHT_LEVEL_BAT 6 //trang thai acquy dien ap cao #define AC_MAIN_ERR 7 //dien ap AC vao bi loi

#define AC_OUT_ERR 8 //dien ap AC loi ra khong co

#define CHANEL_1 PORTD.6 //kenh dieu khien 50Hz cau H #define CHANEL_2 PORTD.7 //kenh dieu khien 50Hz cau H #define PWM_1 PORTD.5 //kenh dieu khien PWM1 #define PWM_2 PORTD.4 //kenh dieu khien PWM2

#define FAN PORTC.1 //quat lam mat #define yes 1

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

/* vi tri chan doc adc */

#define ADC_VREF_TYPE 0x00

/*---*/ //#define FAN PORTC.1 //quat lam mat //#define BELL PORTC.0 //Coi bao

#define LED_CHANGER PORTB.0 //led bao dang nap acquy #define LED_INVERTER PORTB.1 //led bao dang che do inverter #define LED_OVERLOAD PORTB.3 //bao hieu qua tai

#define SYS_CHECK_ON_START 7//trang thai kiem tra truoc khi cho chay he thong /*---dinh nghia su dung loai acquy---*/

#define BAT_12V 1 //#define BAT_24V 2

/*---neu la che do DEBUG thi bat code nay len---*/ #ifndef DEBUG

#define DEBUG 1 #endif

#define yes 1 #define no 0

/*---cac kenh do ADC---*/

#define CHANEL_1 PORTD.6 //kenh dieu khien 50Hz cau H #define CHANEL_2 PORTD.7 //kenh dieu khien 50Hz cau H #define CH_V_IN 0 //kenh adc Vinput 220V

#define CH_V_OUT 1 //kenh adc do tai dau ra #define CH_V_BAT 2 //kenh adc do dien ap acquy #define CH_I_OUT 3 //kenh adc do dong dien ra /*---cac chan dieu khien relay---*/

#define POW_ON() {DDRC.5 = 1;PORTC.5 = 1;} //bat nguon #define POW_OFF() {PORTC.5 = 0;} //tat nguon

#define BUTTON_DIR DDRC.5 //huong dieu khien #define RELAY2 PORTC.2

#define RELAY3 PORTC.3 #define RELAY4 PORTC.4

/*---*/ #define FAN PORTC.1 //quat lam mat #define BELL PORTC.0 //Coi bao

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

#define LED_CHANGER PORTB.0 //led bao dang nap acquy #define LED_INVERTER PORTB.1 //led bao dang che do inverter #define LED_OVERLOAD PORTB.2 //bao hieu qua tai

/*---Cac trang thai he thong---*/ #define SOFT_START 1 //che do khoi dong mem #define INVERTER 2 //trang thai inverter #define CHANGER 3 //trang thai nap acquy #define OVERLOAD 4 //trang thai qua tai

#define LOW_LEVEL_BAT 5 //trang thai acquy dien ap thap #define HIGHT_LEVEL_BAT 6 //trang thai acquy dien ap cao

#define SYS_CHECK_ON_START 7//trang thai kiem tra truoc khi cho chay he thong #define TEST 8

/* gia tri max de xac dinh overload cua tai */ #define I_MAX 300//250 //dong dien max

#define I_MAX_110 400//300 //dong dien max vuot qua 110 tai /* Gia tri dien ap binh acquy */

#ifdef BAT_12V #define BATT_LOW_LEVEL 380 //10,4V #define BATT_MAX_LEVEL 502 //13,9V #define BATT_HIGHT_LEVEL 452 //12,5V #define BATT_VERY_HIGHT 533 //15V #define BATT_LEVEL_1 424 //11,5V #define BATT_LEVEL_2 443 //12V #define BATT_LEVEL_3 452 //12,5V #elif BAT_24V #define BATT_LOW_LEVEL 768 //20,8V #define BATT_MAX_LEVEL 1022 //27,6V #define BATT_HIGHT_LEVEL 922 //25V #define BATT_VERY_HIGHT 1023 //15V #define BATT_LEVEL_1 849 //23V #define BATT_LEVEL_2 885 //25V #define BATT_LEVEL_3 1022 //27V #endif

/* gia tri dien ap thap nhat o dau ra khi co tai */ #define V_OUT_MIN -200

#define AC_MAIN_VOLT_DETECT 150 #define VOLT_OUT_MIN 150

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

int volt_out = 0; char pt_vol = 0; unsigned char index=0; /* kiem tra dien ap luoi dien*/

unsigned int adc_volt_in_temp =0; //dien ap AC int ac_volt_in = 0; //dien ap loi vao

unsigned int bat_volt = 0; //dien ap qcquy

char system_status = INVERTER; //trang thai cua he thong

unsigned char count_time_delay_temp1 = 0; //bien dung de dem su kien delay unsigned long adc_i_temp=0;//luu gia tri adc tam thoi cua dong dien

unsigned int i_out_H = 0; unsigned int i_out_L = 0; int i_out = 0;

unsigned int count_time = 0; unsigned long ac_out_h = 0; unsigned long ac_out_l = 0; unsigned long ac_out_temp = 0; char check_button(void)

{

char button = no; POW_OFF();

BUTTON_DIR = 0; //huong input delay_us(10);

if(BUTTON_IN)//bam nut {

//inverter_off();

LED_CHANGER = 1;

//power_on = no; //bao hieu la tat nguon button = yes; //POW_ON(); //delay_ms(1000); } if(power_on == yes) { POW_ON(); } delay_ms(100); return button; } void main(void) {

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

unsigned long v_bat_temp=0; init_sys(); off_h_bridge(); #ifdef DEBUG { printf("\r\n---Start---"); } #endif

POW_ON(); //bat nguon

power_on = yes; //co bao bat nguon //#asm("sei");

BELL = 0;

FAN = 0; //off FAN delay_ms(500); BELL = 1; delay_ms(2000); delay_ms(2000); system_status = INVERTER; #asm("sei"); while (1) { if(check_button()==yes) { if(power_on==yes) { BELL = 0;

power_on = no; //tat nguon inverter_off();

} else

{

BELL = 0;

power_on = yes; //bat nguon system_status = INVERTER; POW_ON(); FAN = 1; #asm("sei"); delay_ms(200); } delay_ms(500); BELL = 1; delay_ms(5000); }

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

} }

void init_sys(void) {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out // State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0

PORTB=0x00; DDRB=0x07;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=T State6=T State5=T State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00;

DDRC=0x1F;

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In // State7=0 State6=0 State5=0 State4=0 State3=T State2=T State1=T State0=T

PORTD=0x00; DDRD=0xF0; TCCR0=0x03; TCNT0=0xE7; OCR0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00;

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x40;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 625,000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; }

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(1);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; } void off_h_bridge(void) { CHANEL_1 = 1; CHANEL_2 = 1; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; PWM_1 = 0;//off H PWM_2 = 0; //off h } void inverter_off(void) {

#asm("cli"); //cam toan bo ngat BELL = 0; FAN = 0; RELAY2 = 0; RELAY3 = 0; RELAY4 = 0; off_h_bridge(); POW_OFF(); LED_CHANGER = 0; LED_OVERLOAD = 0; LED_INVERTER = 0; power_on = no; delay_ms(500);

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

BELL = 1;

//while(1) #asm("WDR"); //tat he thong }

// Timer 0 overflow interrupt service routine

//timer 0 interupt every 0.15625 ms tuong duong 64 mau cho mot ban ky sine interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

TCNT0=0xE8;

if(power_on == no) return; index++;

/* doc dien ap dau ra inverter */

ac_out_temp += read_adc(CH_V_OUT); //doc dien ap ra

adc_volt_in_temp = read_adc(CH_V_IN); //doc dien ap AC vao adc_i_temp += read_adc(CH_I_OUT); //doc dong dien ra

if(index==64) {

index=0;

CHANEL_1 = ~CHANEL_1; CHANEL_2 = ~CHANEL_1;

/* tinh gia tri trung binh cua dong dien qua 32 mau trong mot nua chu ky */ if(CHANEL_2)

{

i_out_H = adc_i_temp >> 5;

ac_out_h = ac_out_temp >> 6; //lay trung binh 64 mau } else { i_out_L = adc_i_temp >> 5; ac_out_l = ac_out_temp >> 6; } if(i_out_H > i_out_L) {

i_out = i_out_H - i_out_L + 1; //i_out }

else {

i_out = i_out_L - i_out_H + 1; //i_out }

adc_i_temp = 0; //reset gia tri do adc /*---do gia tri dien ap trung binh----*/

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

if(ac_out_h > ac_out_l) {

volt_out = ac_out_h - ac_out_l; }

else {

volt_out = ac_out_l - ac_out_h; }

ac_out_temp = 0; volt_out -= 452;

/*---doc dien ap acquy---*/ bat_volt = read_adc(CH_V_BAT); if(bat_volt < BATT_LOW_LEVEL) {

system_status = LOW_LEVEL_BAT; //dien ap acquy thap }

else if(bat_volt > BATT_VERY_HIGHT) {

inverter_off(); //tat inverter }

if((volt_out < V_OUT_MIN)||(i_out>I_MAX_110)) {

system_status = OVERLOAD; //qua tai off_h_bridge();

}

if(ac_volt_in > AC_MAIN_VOLT_DETECT) //phat hien co dien luoi {

count_time_delay_temp1++;

if(count_time_delay_temp1 >99) //qua 1 giay se chuyen sang che do changer { count_time_delay_temp1 = 0; #ifdef DEBUG { printf("\r\nCHANGER"); } #endif FAN = 0; //FAN

system_status = CHANGER; //chuyen sang trang thai nhan roi LED_INVERTER = 0;

count_time = 0; index = 0;

Số húa bởi Trung tõm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ pt_vol = 0; off_h_bridge(); RELAY4 = 0; } } else count_time_delay_temp1 = 0; } pwm = (unsigned long)volt_out*sin((float)index*2.53*100/180); pwm = pwm<<1;

OCR1AH = OCR1BH = (unsigned char)(pwm>>8); OCR1AL = OCR1BL= (unsigned char)pwm;

Một phần của tài liệu Thiết kế chế tạo biến tần một pha thuần sin để khai thác năng lượng tái tạo (Trang 67 - 84)

Tải bản đầy đủ (PDF)

(84 trang)