Cảm biến dòng sử dụng loại LA100-P do LEM sản xuất, có các thông số sau: IPN – dòng hiệu dụng đầu vào lớn nhất: 100A ISN – dòng hiệu dụng đầu ra lớn nhất: 100mA KN – tỉ số biến đổi: 1:1000 Accuracy: 0,45% Mạch tiền xử lý tín hiệu dòng điện: - + U1 UA741 3 2 6 7 1 4 5 R1 1k D1 5 A1 5 - + U2 UA741 3 2 6 7 1 4 5 offset out1 R2 1.8k R3 3.3k C1 22n C2 47n A1 5 D1 5 - + U10 UA741 3 2 6 7 1 4 5 I R4 33 R5 1k D1 5 A1 5 Hình 4.4. Mạch xử lý tín hiệu dòng điện. 4.2.2. Mạch đo điện áp một chiều
Cảm biến áp một chiều sử dụng cảm biến hiệu ứng Hall LV25 – P, do LEM sản xuất, với các thông số sau: VPN – điện áp sơ cấp: 500V IPN – dòng hiệu dụng đầu vào lớn nhất: 10mA ISN – dòng hiệu dụng đầu ra lớn nhất: 25mA KN – tỉ số biến đổi: 2500:1000 Cấp chính xác : 0,45
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực Hình 4.5. Mạch đo điện áp sử dụng cảm biến LV25 – P. Mạch tiền xử lý điện áp như hình 4.6. - + U18 UA741 3 2 6 7 1 4 5 out5 R29 1.8k R30 3.3k C17 22n C22 47n D1 5 A1 5 - + U19 UA741 3 2 6 7 1 4 5 R31 33 A1 5 D1 5 U Hình 4.6. Mạch tiền xử lý tín hiệu áp một chiều. 4.3. Khối xử lý trung tâm
Khối xử lý trung tâm sử dụng DSP TMS320F28335, với các thông số kĩ thuật quan trọng như:
¾Bộ vi xử lý:
• Tốc độ xử lý lên tới 150MIPs
• Hỗ trợ tính toán dấu phẩy động 32 bits
• Sáu kênh DMA hỗ trợ ADC, ePWM, …
¾Bộ nhớ trong:
• 256K x 16 Flash, 34K x 16 SARAM
• Tất cả các vùng nhớđều được bảo vệ bởi Module Code Security
¾Ngoại vi:
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực • 18 kênh PWM và 6 kênh HRPWM • Hỗ trợđến 88 chân IO • … Cấu trúc bên trong của DSP TMS320F28335: Hình 4.7. Cấu trúc bên trong của TMS320F28335. Lưu đồ thuật toán: START Khởi tạo hệ thống và thiết bị ngoại vi:
-Khai báo biến và các chương trình con
adc_isr()
- Đọc ADC - Tính sin, cos
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực 1 0 0 START Khởi tạo hệ thống, ngoại vi: -InitSysCtrl(); -InitPieCtrl();InitPieVectTable(); CTR = 0? adc isr() Chuyển đổi ADC Xong? Hình 4.8. Cấu trúc chương trình điều khiển.
Các thuật toán như tính dòng điện bù, điều khiển dòng điện đều được thực hiện trong chương trình ngắt adc_isr(), tần số xảy ra ngắt ADC là 10kHz, quy định bởi bộ ePWM. Lưu đồ chương trình: Hình 5.10. Lưu đồ chương trình. Hình 4.9. Lưu đồ chương trình.
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực
Chương trình con adc_isr():
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực
Hình 4.10. Lưu đồ chương trình con adc_isr().
4.4. Kết quả thực nghiệm
Kết quả bước đầu cho thấy, với dòng tải ban đầu khi chưa có bộ lọc, chỉ số THD lên tới hơn 100%, với các sóng hài chủ yếu là các sóng bậc 3, 5 và 7, sau khi đóng bộ
lọc tích cực vào, chỉ số THD giảm xuống dưới 7%. Điều đó cho thấy bộ lọc tích cực là một giải pháp rất tốt để nâng cao chất lượng điện năng.
Sau đây là hình ảnh của dòng điện và điện áp nguồn trước và sau khi có bộ lọc tích cực. START adc isr() Đọc ADC v , offset, i L, i f , v dc Tính sin, cos pll(); Tính toán dòng điện bù tham chiếu tinhdongbu(); Điều khiển dòng điện bám theo dòng điện đặt dk_i(); Xóa cờngắt END
Chương 4 : Chế tạo thử nghiệm bộ lọc tích cực
Hình 4.11. Điện áp và dòng điện trước khi bù.
Hình 4.12. Điện áp và dòng điện sau khi bù.
4.5. Tóm tắt chương 4
Bộ lọc tích cực một pha được chế tạo thử nghiệm với các modul riêng biệt cho kết quả tương đối khả quan làm cơ sở cho việc chế tạo bộ lọc tích cực ba pha bốn dây.
Kết luận
KẾT LUẬN
Sóng hài có những tác hại lớn ảnh hưởng trực tiếp đến chất lượng điện năng vì vậy cần có những biện pháp để hạn chế các tác hại của chúng. Bộ lọc tích cực được
đề xuất như là một giải pháp tương đối toàn điện để khử các sóng hài của các tải phi tuyến và bù công suất phản kháng.
Quá trình tính toán mô phỏng bộ lọc tích cực ba pha bốn dây trên phần mềm Matlab/Simulink thu được kết quả tốt với cấu trúc bộ lọc mà ta đã chọn, dòng điện nguồn cấp tới tải phi tuyến có độ méo giảm hẳn và trở nên cân bằng giữa các pha, công suất phản kháng gần bằng không vì vậy mà hệ số công suất xấp xỉ bằng một. Từ sự khả quan của kết quả mô phỏng, tác giả đã cùng với nhóm nghiên cứu tiến hành chế tạo thử nghiệm thành công bộ lọc tích cực một pha có chất lượng tương
Tài liệu tham khảo
Tài liệu tham khảo
1. H. Akagi, A. Nabae, and S. Atoh (1986), “Control strategy of active power filters using voltage source PWM converters”, IEEE Trans.Ind. Appl., vol. IA-22, no. 3, pp. 460–465.
2. H. Akagi (1999), “The Theory of Instantaneous Power in Three-phase Four- Wire Systems: A Comprehensive Approach”, Conference Record of the 34th IEEE Industry Applications Society Annual Meeting .
3. H. Akagi, E.H. Watanabae, M. Aredes (2006), Instantaneous power theory and applications to power conditioning, IEEE press.
4. Roger C. Dugan (2004), Electrical Power Systems Quality, McGraw-Hill. 5. Timothy L. Skvarenina (2002), The Power Electronics Handbook, CRC press.
6. Hsu, C.Y. and Wu, H.Y. (1996), “A New Single-Phase Active Power Filter with Reduced Energy-Storage Capacity”, Proc. IEE Electric Power Applications, pp 25-30.
7. Sami Petterson (2005), “utilization of a neutral wire filter in a three phase four wire active power filter”, Electrical Power Quality and Utilization, Journal Vol. XI, No. 2.
8. Luu Hong Viet, “Control of Front-end Converter with Shunt Active Filter Using p-q Theory and Deadbeat Technique”, Dresden University of Technology, Institute of Electrical Engineering.
9. Rogel Wallace (1997), “A Simple and Low-Cost Control Strategy for Active Power Filters Connected in Cascade”, IEEE Transactions on Industrial Electronics, Vol. 44, No. 5.
Tài liệu tham khảo
10. N. Belhaouchet, S. Begag, and L. Rahmani (2007), “A Digital Hysteresis current controller for three_digitalfor filter”, 4th International Conference on Computer Integrated Manufacturing CIP.
11. Jintakosonwit, P., Fujita, H., and Akagi, H.(2002), “ Control and Performance of a Fully-Digital-Controlled Shunt Active Filter for Installation on Power Distribution System”, IEEE Trans. on Power Electronics, 17(1): 132-140. 12. Fukuda, S. and Endoh, T (1995), “ Control Method for a Combined Active Filter System Employing a Current Source Converter and a High Pass Filter”, IEEE Trans. on Industry Applications, 31(3): 590-597.
13. Komatsu, Y. and Kawabata, T. (1997), “Characteristics of Three Phase Active Power Filter using Extension pq Theory”, Proceedings of the IEEE
International Symposium on Industrial Electronics (ISIE), Guimaraes, Portugal:
IEEE. 1997. 302-307.
14. Dobrucky, B., Kim, H., Racek, V., Roch, M., and Pokorny, M. (2002), “Single-Phase Power Active Filter and Compensator using Instantaneous Reactive Power Method”, Proceedings of the Power Conversion Conference (PCC), IEEE. 2002. 167-171.
15. Lê Văn Doanh, Nguyễn Thế Công, Trần Văn Thịnh (2007), Điện tử công suất, lý thuyết, thiết kế và ứng dụng, Nhà xuất bản Khoa Học và Kĩ Thuật.
16. Nguyễn Doãn Phước (2007), Lý thuyết điều khiển tuyến tính, Nhà xuất bản Khoa Học và Kĩ Thuật.
Phụ lục Phụ lục Code điều khiển /******************************************************************* *******
TITLE : SINGLE-PHASE ACTIVE POWER FILTER Writer : Power Quality Research Group
Faculty of Electrical Engineering,
Hanoi University of Technology, Viet Nam. Date of Creation : January 2010
Last Update : September 2010 DESCRIPTION :
This program generates the gating signals to the single-phase APF to compensate the reactive and harmonic currents generated by a nonlinear load.
This program is dedicated to run on TMS320F28335 controlCARD.
******************************************************************* *******/
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File #include "math.h"
// ADC start parameters
#define ADC_MODCLK 0x1 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2
#define ADC_CKPS 0x1 // ADC module clock = HSPCLK/(2*?) #define ADC_SHCLK 0x2 // S/H width in ADC module periods = 2 ADC cycle
Phụ lục //PWM #define PRD 7500 #define compare_A 0 #define compare_B 0 #define m 0.9 //---ADC----
//he so quy doi ap, dong ve thang gia tri thuc #define hs_ap 0.05238947
#define hs_dong 0.0333 #define hs_apDC 0.1332 //bien
float32 v_a_ADC, v; // dien ap luoi float32 i_La_ADC, i_L; // dong dien tai float32 i_fa_ADC, i_f; // dong dien bu float32 v_dc_ADC, v_dc; // dien ap tu
float32 offset; // gia tri offset cua mach tien xu li // --PLL--- #define Ki 0.00006 #define Kp 0.042 #define MIN 0 #define MAX 100 #define pi 3.1415926
float32 v_alpha[200], v_beta[200]; float32 p1, p2, e, u, u1, w, wt;
Phụ lục
float32 sinwt = 0, coswt = 0; //-- tinh dong bu --
float32 p, p_dc; // cong suat, cong suat khong doi (ko co y nghia vat li)
//on dinh tu
#define v_ref 450 // dien ap on dinh tren tu float32 dV, h1, h0 = 0, ploss = 0, p_dct;
//dong bu
float32 i_ref; // dong nguon tham chieu float32 i_f_ref // dong bu tham chieu //bu pha dong dien bu
float32 bupha1(float32); float32 w1[200];
//--- dieu khien dong dien ---
float32 dt, dt1; // duty-cycle //--- cau hinh thiet bi ngoai vi ---
void Gpio_setup(void); void Init_EPWM(void); void ConfigureADC(void);
//--- chuong trinh con quan trong --- void pll(void);
void tinhdongchuan(void); void dk_i(void);
//--- cac ham loc --- //LPF 5Hz
Phụ lục float32 w5[3],a5[3],b5[3]; float32 lpf5(float32); //LPF 2kHz 1 float32 w11[3],a11[3],b11[3]; float32 lpf2k_1(float32); //LPF 2kHz 2 float32 w12[3],a12[3],b12[3]; float32 lpf2k_1(float32); //LPF 2kHz 3 float32 w13[3],a13[3],b13[3]; float32 lpf2k_1(float32);
//--- cac bien dem --- Uint16 j = 1,array_index;
//chuong trinh chinh void main(void) {
// Cac chuogn trinh con:
// InitSysCtrl();InitPieCtrl();InitPieVectTable();InitAdc(); // duoc khai bao trong cac chuogn trinh mau cua trinh bien dich // Step 1. Initialize System Control:
InitSysCtrl(); EALLOW;
SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK
Phụ lục
// Step 2. Initalize GPIO: Gpio_setup();
// Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts
DINT;
// Initialize the PIE control registers to their default state. InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt Service Routines (ISR).
InitPieVectTable();
EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.ADCINT = &adc_isr;
EDIS; // This is needed to disable write to EALLOW protected registers // Step 4. Initialize the Device Peripheral.
InitAdc(); // init the ADC Init_EPWM();
// Step 5. User specific code, enable interrupts: // Enable ADCINT in PIE
PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; // Enable CPU Interrupt 1
// Enable global Interrupts and higher priority real-time debug events: EINT; // Enable Global interrupt INTM
Phụ lục
ERTM; // Enable Global realtime interrupt DBGM // Configure ADC
ConfigureADC();
//---- gan gia tri cho cac he so cua bo loc --- //---LPF 5Hz---
a5[0] = 1.0;/* Filter coefficients */ a5[1] = -1.995551847; a5[2] = 0.995561717; b5[0] = 2.467776264e-6; b5[1] = 2 * 2.467776264e-6; b5[2] = 2.467776264e-6; w5[0] = 0; w5[1] = 0; w5[2] = 0; //---LPF 2kHz 1--- a11[0] = 1.0; /* Filter coefficients */ a11[1] = -0.368188532; a11[2] = 0.1956396086; b11[0] = 0.2068627691; b11[1] = 2 * 0.2068627691; b11[2] = 0.2068627691; //---LPF 2kHz 2--- a12[0] = 1.0; /* Filter coefficients */ a12[1] = -0.368188532;
Phụ lục a12[2] = 0.1956396086; b12[0] = 0.2068627691; b12[1] = 2 * 0.2068627691; b12[2] = 0.2068627691; //---LPF 2kHz 3--- a13[0] = 1.0; /* Filter coefficients */ a13[1] = -0.368188532;
a13[2] = 0.1956396086; b13[0] = 0.2068627691; b13[1] = 2 * 0.2068627691; b13[2] = 0.2068627691;
// Step 6. IDLE loop. Just sit and loop forever: for(;;);
}// End main
//---
interrupt void adc_isr(void) // chuong trinh phuc vu ngat ADC { //---doc ADC--- v_a_ADC = AdcRegs.ADCRESULT3 >>4; // B1 offset = AdcRegs.ADCRESULT4 >>4; // A2 i_La_ADC = AdcRegs.ADCRESULT0 >>4; // A0 i_fa_ADC = AdcRegs.ADCRESULT1 >>4; // B0 v_dc_ADC = AdcRegs.ADCRESULT2 >>4; // A1
Phụ lục
//--- xu li offset ---
v = hs_ap * ( v_a_ADC - 2 * offset); i_L = hs_dong * (- i_La_ADC + 2 * offset); i_f = hs_dong * (- i_fa_ADC + 2 * offset); v_dc = hs_apDC * (v_dc_ADC + 40.1); //loc khu sai so lay mau
v = lpf2k_1(v); i_L = lpf2k_2(i_L); i_f = lpf2k_3(i_f); //--tinh sin, cos ---- pll();
// tinh dong bu tham chieu tinhdongchuan();
//dieu khien dong dien dk_i();
//---
// Reinitialize for next ADC sequence
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE return;
}
Phụ lục
void pll(void) // tinh toan sin cos {
//---xac dinh v_alpha va v_beta v_alpha[array_index] = v; //----dich pha 90 do if ((array_index -150) >= 0) { v_beta[array_index] = v_alpha[array_index - 150]; }
else v_beta[array_index] = v_alpha[array_index + 50]; //----PI--- p1 = v_beta[array_index] * coswt1; p2 = v_alpha[array_index] * sinwt1; e = p1 + p2; //sai lech u = u1 + Ki * e; w = Kp * e + u; //chong bao hoa