1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Luận văn) kiểm soát hoàn thuế giá trị gia tăng đối với hàng hóa, dịch vụ xuất khẩu tại cục thuế tỉnh bình định

105 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 3,87 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGUYỄN THANH BÌNH lu an n va tn to ie gh NGHIÊN CỨU THIẾT KẾ HỆ THỐNG p QUẢN LÝ VÀ GIÁM SÁT ĐIỆN NĂNG THÔNG MINH d oa nl w va an lu ll u nf LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN oi m z at nh z m co l gm @ an Lu Bình Định - Năm 2019 n va ac th si BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGUYỄN THANH BÌNH lu an n va tn to ie gh NGHIÊN CỨU THIẾT KẾ HỆ THỐNG p QUẢN LÝ VÀ GIÁM SÁT ĐIỆN NĂNG THÔNG MINH d oa nl w an lu Kỹ thuật điện Mã số: u nf va Chuyên ngành: 8520201 60520202 ll oi m z at nh z Người hướng dẫn: TS Ngô Minh Khoa m co l gm @ an Lu n va ac th si i LỜI CAM ĐOAN Luận văn cơng trình nghiên cứu cá nhân tơi, thực hướng dẫn khoa học TS Ngô Minh Khoa – Khoa Kỹ thuật & Công nghệ, Trường Đại học Quy Nhơn Các số liệu, kết luận nghiên cứu trình bày luận văn hồn tồn trung thực Tơi xin hồn tồn chịu trách nhiệm lời cam đoan Học viên lu an n va p ie gh tn to Nguyễn Thanh Bình d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si ii MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC ii DANH MỤC CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC HÌNH vii DANH MỤC CÁC BẢNG BIỂU ix MỞ ĐẦU 1 Tính cấp thiết đề tài lu an Mục tiêu nghiên cứu n va Đối tượng phạm vi nghiên cứu 3.2 Phạm vi nghiên cứu ie gh tn to 3.1 Đối tượng nghiên cứu p Phương pháp nghiên cứu nl w 4.1 Nghiên cứu lý thuyết oa 4.2 Nghiên cứu thực nghiệm d Ý nghĩa khoa học thực tiễn đề tài lu va an Tởng quan tình hình nghiên cứu đề tài u nf CHƯƠNG ll TỔNG QUAN VỀ QUẢN LÝ VÀ GIÁM SÁT ĐIỆN NĂNG m oi 1.1 Mở đầu z at nh 1.2 Chất lượng điện z 1.2.1 Tiêu chuẩn CLĐN 10 @ gm 1.2.2 Nguyên nhân làm giảm CLĐN 13 m co l 1.2.3 Ảnh hưởng CLĐN khách hàng sử dụng điện 13 1.3 Đo lường đại lượng điện 15 an Lu 1.3.1 Yêu cầu chung 15 n va ac th si iii 1.3.2 Sơ đồ đo 16 1.3.3 Đo trị hiệu dụng 17 1.3.4 Đo trình độ 17 1.3.5 Thuật toán tổ hợp đo lường 18 1.4 Quản lý giám sát điện 19 1.4.1 Quản lý nhu cầu phụ tải (DSM) 19 1.4.2 Giám sát điện 20 1.4.3 Lợi ích doanh nghiệp quản lý giám sát điện 22 lu 1.5 Kết luận chương 22 an CHƯƠNG 24 va n THIẾT KẾ PHẦN CỨNG CỦA HỆ THỐNG 24 gh tn to 2.1 Mở đầu 24 ie 2.2 Các phần tử mạch lực 25 p 2.2.1 Sơ đồ mạch lực 25 nl w 2.2.2 Nguồn 26 d oa 2.2.3 Tải 27 an lu 2.3 Các phần tử mạch đo lường điều khiển 27 u nf va 2.3.1 Cảm biến dòng điện 27 2.3.2 Cảm biến điện áp 30 ll oi m 2.3.3 Bo mạch Arduino Wemos D1 R32 32 z at nh 2.3.4 Môđun rơle 34 2.3.5 Màn hình LCD 35 z 2.4 Cấu trúc phần cứng hệ thống 35 @ l gm 2.4.1 Sơ đồ lắp ráp chi tiết 35 m co 2.4.2 Tổng thể phần cứng 36 2.5 Kết luận chương 36 an Lu CHƯƠNG 38 n va ac th si iv THIẾT KẾ PHẦN MỀM CỦA HỆ THỐNG 38 3.1 Mở đầu 38 3.2 Giới thiệu phần mềm áp dụng 38 3.2.1 Phần mềm Arduino IDE 38 3.2.2 Phần mềm Blynk 39 3.3 Phương pháp xác định trị hiệu dụng 41 3.3.1 Phương pháp đỉnh – đỉnh 42 3.3.2 Phương pháp trị hiệu dụng RMS 43 lu 3.3.3 Lựa chọn phương pháp 43 an 3.4 Đo lường đại lượng điện 46 va n 3.4.1 Đo điện áp trị hiệu dụng (Urms ) 46 to 3.4.3 Đo lường công suất tác dụng (P) 48 ie gh tn 3.4.2 Đo dòng điện trị hiệu dụng (Irms) 47 p 3.4.4 Đo lường đại lượng khác (S, Q, A, cos) 49 oa nl w 3.4.5 Giải thuật đo lường đại lượng điện 50 d 3.4.6 Giải thuật DSM bảo vệ quá/thấp áp 53 an lu 3.5 Thiết kế giao diện quản lý, giám sát điều khiển từ xa 54 u nf va 3.5.1 Thiết lập biến ảo cho đối tượng 54 3.5.2 Thiết kế giao diện điều khiển giám sát 55 ll oi m 3.5.3 Lập trình đối tượng Blynk 59 z at nh 3.6 Kết luận chương 60 CHƯƠNG 61 z gm @ CÁC KẾT QUẢ THỰC NGHIỆM 61 4.1 Mở đầu 61 l m co 4.2 Kịch 1: Chế độ làm việc bình thường 62 4.3 Kịch 2: Chế độ quản lý nhu cầu phụ tải (DSM) 71 an Lu 4.4 Kịch 3: Chế độ bảo vệ quá/thấp áp 72 n va ac th si v 4.5 Kết luận chương 73 KẾT LUẬN VÀ KIẾN NGHỊ 74 DANH MỤC CƠNG TRÌNH CƠNG BỐ 76 TÀI LIỆU THAM KHẢO 77 PHỤ LỤC 79 lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si vi DANH MỤC CÁC TỪ VIẾT TẮT lu an Hệ thống điện LĐPP Lưới điện phân phối CLĐN Chất lượng điện DSM Quản lý nhu cầu phụ tải RMS Trị hiệu dụng LCD Màn hình hiển thị FFT Biến đởi Fourier nhanh DFT Biến đởi Fourier rời rạc ACS712 Cảm biến dịng điện ZMPT101B Cảm biến điện áp CLĐA Chất lượng điện áp IEEE Viện kỹ nghệ Điện Điện tử n va HTĐ p ie gh tn to Công suất tác dụng nl w CSTD Công suất phản kháng ĐNTT Điện tiêu thụ d oa CSPK ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si vii DANH MỤC CÁC HÌNH Hình 1.1 Sóng điện áp dòng điện ba pha 10 Hình 1.2 Sơ đồ đo theo IEC 6100-3-40 [1] 16 Hình 1.3 Các kỹ thuật quản lý nhu cầu phụ tải (DSM) [11] 19 Hình 1.4 Dạng tổng quát hệ thống quản lý lượng 21 Hình 2.1 Sơ đồ khối hệ thống quản lý giám sát điện 25 Hình 2.2 Sơ đồ mạch lực 26 Hình 2.3 (a) Cảm biến dịng điện ACS712; (b) Sơ đồ kết nối với Arduino 28 lu an Hình 2.4 (a) Sơ đồ mạch ACS712; (b) Đặc tuyến vào 29 n va Hình 2.5 Tín hiệu đầu cảm biến dịng điện xoay chiều ACS712 30 tn to Hình 2.6 (a) Cảm biến điện áp ZMPT101B; (b) Mạch cảm biến điện áp 30 ie gh Hình 2.7 Đặc tuyến đầu ZMPT101B [9] 31 p Hình 2.8 Bo mạch Arduino Wemos D1 R32 32 nl w Hình 2.9 Adapter cấp nguồn cho Arduino Wemos D1 R32 34 oa Hình 2.10 Relay 5V 10A (a) Hình tởng thể; (b) Sơ đồ chân 34 d Hình 2.11 Sơ đồ lắp ráp chi tiết hệ thống 35 lu va an Hình 2.12 Tổng thể phần cứng hệ thống 36 u nf Hình 3.1 Giao diện chương trình Arduino IDE 39 ll Hình 3.2 Chức Blynk 40 m oi Hình 3.3 Giao diện thiết kế project Blynk 41 z at nh Hình 3.4 (a) Tín hiệu tương tự; (b) Tín hiệu số hóa 42 z Hình 3.5 Đo điện áp trị hiệu dụng tín hiệu điện áp hình sin lý tưởng 44 @ gm Hình 3.6 Đo điện áp trị hiệu dụng tín hiệu điện áp có thành phần hài 45 m co l Hình 3.7 Đo điện áp trị hiệu dụng tín hiệu điện áp có mẫu lạ 46 Hình 3.8 Mối tương quan u(t), i(t), p(t) P 49 an Lu Hình 3.9 Giải thuật đo lường đại lượng điện 50 n va ac th si viii Hình 3.10 Kỹ thuật giảm đỉnh, nâng đáy vấn đề DSM 53 Hình 3.11 Giao diện nhóm 56 Hình 3.12 (a) Giao diện lựa chọn phương thức báo cáo; (b) Dạng file *.csv Excel báo cáo phương thức One-time 57 Hình 3.13 Giao diện nhóm 58 Hình 3.14 Giao diện nhóm 59 Hình 4.1 Hệ thống thực nghiệm 61 Hình 4.2 Kết chế độ bình thường 63 lu Hình 4.3 (a) Giao diện lựa chọn phương thức báo cáo; (b) Dạng file *.csv an Excel báo cáo phương thức One-time 64 va n Hình 4.4 Điện áp U ghi từ 15h17 đến 15h33 ngày 6/6/2019 65 gh tn to Hình 4.5 Dịng điện I1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 65 ie Hình 4.6 CSTD P1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 p Hình 4.7 Điện A1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 nl w Hình 4.8 Dịng điện I2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 d oa Hình 4.9 CSTD P2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 an lu Hình 4.10 Điện A2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 u nf va Hình 4.11 Dịng điện I3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 Hình 4.12 CSTD P3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 68 ll oi m Hình 4.13 Điện A3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 68 z at nh Hình 4.14 Kết thực nghiệm chức DSM 72 z m co l gm @ an Lu n va ac th si 80 Phụ lục 2: Đoạn code chương trình Arduino IDE #include #include #include #define BLYNK_PRINT Serial // Declare Sensors -char auth[] = "XXXXXXX"; char ssid[] = "XXXXXXX"; char pass[] = "XXXXXXX"; // -Declare LCD #include lu #include an LiquidCrystal_I2C lcd(0x3F,20,4); va const int sensor_voltage = 39; // Chân cảm biến điện áp n const int sensor_current_1 = 36; // Chân cảm biến dòng mạch tn to const int sensor_current_2 = 35; // Chân cảm biến dòng mạch gh const int sensor_current_3 = 34; // Chân cảm biến dòng mạch // Gán biến điều khiển DSM p ie int DSM = 0; int Pmin = 0; // Gán công suất cực tiểu int Protect = 0; // Gán biến bảo vệ điện áp // Gán điện áp cực tiểu // Gán điện áp cực đại an lu int Umax = 250; d int Umin = 0; oa nl w int Pmax = 2000; // Gán công suất cực đại byte relay1 = 16; // Chân đóng cắt rơle va byte relay2 = 17; // Chân đóng cắt rơle u nf byte relay3 = 25; // Chân đóng cắt rơle ll // Biến điện áp float current1 = 0; // Biến dòng điện nhánh (nhánh tổng) float current2 = 0; // Biến dòng điện nhánh (nhánh quan trọng) float current3 = 0; // Biến dịng điện nhánh (nhánh khơng quan trọng) oi m float voltage = 0; z at nh // Biến công suất biểu kiến nhánh (nhánh tổng) float apparent2 = 0; // Biến công suất biểu kiến nhánh (nhánh quan trọng) float apparent3 = 0; // Biến công suất biểu kiến nhánh (nhánh không quan trọng) float power1 = 0; // Biến công suất tác dụng nhánh (nhánh tổng) float power2 = 0; // Biến công suất tác dụng nhánh (nhánh quan trọng) float power3 = 0; // Biến công suất tác dụng nhánh (nhánh không quan trọng) float repower1 = 0; // Biến công suất phản kháng nhánh (nhánh tổng) float repower2 = 0; // Biến công suất phản kháng nhánh (nhánh quan trọng) z float apparent1 = 0; m co l gm @ an Lu n va ac th si 81 float repower3 = 0; // Biến công suất phản kháng nhánh (nhánh không quan trọng) float energy1 = 0; // Biến điện tiêu thụ nhánh (nhánh tổng) float energy2 = 0; // Biến điện tiêu thụ nhánh (nhánh quan trọng) float energy3 = 0; // Biến điện tiêu thụ nhánh (nhánh không quan trọng) float voltage_factor = 0.45; // Hệ số hiệu chỉnh điện áp float current_factor = 0.0047; // Hệ số hiệu chỉnh dòng điện float real_factor = 1.22; // Hệ số hiệu chỉnh công suất tác dụng float Accuracy = 0.24; // Biến độ xác const unsigned long sampleTime = 100000UL; // sample over 100ms const unsigned long numSamples = 250UL; // choose the number of samples to divide sampleTime exactly const unsigned long sampleInterval = sampleTime/numSamples; // the sampling interval const int voltage_adc_zero = 3050; lu an const int current_adc_zero = 3050; va BlynkTimer timer; n void setup() tn to { Serial.begin(115200); gh ie Blynk.begin(auth, ssid, pass); p // setup pin - pinMode(relay1, OUTPUT); w oa nl pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); d pinMode(sensor_voltage, INPUT); lu an pinMode(sensor_current_1, INPUT); u nf va pinMode(sensor_current_2, INPUT); pinMode(sensor_current_3, INPUT); ll // -setup lcd lcd.clear(); lcd.setCursor(0,0); lcd.print("U1:"); lcd.setCursor(11,0); lcd.print("A1:"); } an Lu lcd.setCursor(11,3); lcd.print("P3:"); m co lcd.setCursor(0,3); lcd.print("I3:"); l lcd.setCursor(11,2); lcd.print("P2:"); gm lcd.setCursor(0,2); lcd.print("I2:"); @ lcd.setCursor(11,1); lcd.print("P1:"); z lcd.setCursor(0,1); lcd.print("I1:"); z at nh lcd.backlight(); oi m lcd.begin(); n va ac th si 82 void loop() { Measurement(); Blynk.run(); timer.run(); } BLYNK_WRITE(V10) { //int pinValue = param.asInt(); if(param.asInt() == 0) { digitalWrite(relay1, HIGH); lu an } va if(param.asInt() == 1) n { to digitalWrite(relay1, LOW); gh tn } ie } p BLYNK_WRITE(V11) { w oa nl int pinValue = param.asInt(); if(pinValue == 0) d { lu an digitalWrite(relay2, HIGH); if(pinValue == 1) ll { oi z at nh } m digitalWrite(relay2, LOW); } an Lu digitalWrite(relay3, HIGH); m co { l if(pinValue == 0) gm int pinValue = param.asInt(); @ { z BLYNK_WRITE(V12) } u nf va } n va ac th si 83 if(pinValue == 1) { digitalWrite(relay3, LOW); } } // Cập nhật Pmin từ Blynk void updatePmin(int param); BLYNK_WRITE(V14) { updatePmin(param.asInt()); } void updatePmin(int param) lu an { va Pmin = param; n } tn to // Cập nhật Pmax từ Blynk void updatePmax(int param); gh p { ie BLYNK_WRITE(V15) updatePmax(param.asInt()); oa nl w } void updatePmax(int param) d { } BLYNK_WRITE(V17) an Lu void updateUmin(int param); m co // Cập nhật Umin Blynk l } gm DSM = param; @ { z void updateDSM(int param) z at nh updateDSM(param.asInt()); oi { m BLYNK_WRITE(V13) ll void updateDSM(int param); u nf // Cập nhật DSM từ Blynk va } an lu Pmax = param; n va ac th si 84 { updateUmin(param.asInt()); } void updateUmin(int param) { Umin = param; } // Cập nhật Pmax từ Blynk void updateUmax(int param); BLYNK_WRITE(V18) { updateUmax(param.asInt()); lu an } va void updateUmax(int param) n { to Umax = param; tn } gh ie // Cập nhật biến bảo vệ điện áp từ Blynk p void updateProtect(int param); BLYNK_WRITE(V16) w oa nl { updateProtect(param.asInt()); d } lu an void updateProtect(int param) Protect = param; ll } u nf va { oi z at nh { m void Measurement() unsigned long prevMicros = micros() - sampleInterval; while (count < numSamples) z l { gm if (micros() - prevMicros >= sampleInterval) @ { m co int voltage_adc_raw = (analogRead(sensor_voltage) - voltage_adc_zero); int current_adc_raw_1 = (analogRead(sensor_current_1) - current_adc_zero); int current_adc_raw_3 = (analogRead(sensor_current_3) - current_adc_zero); an Lu int current_adc_raw_2 = (analogRead(sensor_current_2) - current_adc_zero); n va ac th si 85 voltageAcc += (unsigned long)(voltage_adc_raw * voltage_adc_raw); currentAcc1 += (unsigned long)(current_adc_raw_1 * current_adc_raw_1); currentAcc2 += (unsigned long)(current_adc_raw_2 * current_adc_raw_2); currentAcc3 += (unsigned long)(current_adc_raw_3 * current_adc_raw_3); powerAcc1 += (unsigned long)(voltage_adc_raw * current_adc_raw_1); powerAcc2 += (unsigned long)(voltage_adc_raw * current_adc_raw_2); powerAcc3 += (unsigned long)(voltage_adc_raw * current_adc_raw_3); ++count; prevMicros += sampleInterval; } } float Vrms = sqrt((float)voltageAcc/(float)numSamples) * (voltage_factor); lu an float Irms1 = sqrt((float)currentAcc1/(float)numSamples) * (current_factor); va float Irms2 = sqrt((float)currentAcc2/(float)numSamples) * (current_factor); n float Irms3 = sqrt((float)currentAcc3/(float)numSamples) * (current_factor); tn to float P1 = ((float)powerAcc1/(float)numSamples) * (voltage_factor * current_factor); float P2 = ((float)powerAcc2/(float)numSamples) * (voltage_factor * current_factor); gh ie float P3 = ((float)powerAcc3/(float)numSamples) * (voltage_factor * current_factor); p voltage = Vrms; current1 = Irms1; w oa nl power1 = P1*real_factor; apparent1 = Vrms*Irms1; d repower1 = sqrt(sq(apparent1)-sq(power1)); lu an energy1 += power1*1/3600; power2 = P2*real_factor; ll apparent2 = Vrms*Irms2; u nf va current2 = Irms2; current3 = Irms3; power3 = P3*real_factor; Serial.print(", I1: "); Serial.print(current1); Serial.print(", I3: "); Serial.print(current3); an Lu Serial.print(", I2: "); Serial.print(current2); m co Serial.print(voltage); l Serial.print("U: "); gm energy3 += power3*1/3600; @ repower3 = sqrt(sq(apparent3)-sq(power3)); z apparent3 = Vrms*Irms3; z at nh energy2 += power2*1/3600; oi m repower2 = sqrt(sq(apparent2)-sq(power2)); n va ac th si 86 Serial.print(", P1: "); Serial.print(power1); Serial.print(", P2: "); Serial.print(power2); Serial.print(", P3: "); Serial.print(power3); Serial.print(", A1: "); Serial.print(energy1); Serial.print(", A2: "); Serial.print(energy2); Serial.print(", A3: "); Serial.println(energy3); Blynk.virtualWrite(V0,voltage); Blynk.virtualWrite(V1,current1); Blynk.virtualWrite(V2,current2); Blynk.virtualWrite(V3,current3); Blynk.virtualWrite(V4,power1); Blynk.virtualWrite(V5,power2); lu an Blynk.virtualWrite(V6,power3); va Blynk.virtualWrite(V7,energy1); n Blynk.virtualWrite(V8,energy2); tn to Blynk.virtualWrite(V9,energy3); Blynk.virtualWrite(V21,repower1); gh ie Blynk.virtualWrite(V22,repower2); p Blynk.virtualWrite(V23,repower3); lcd.setCursor(3,0); lcd.print(" w oa nl lcd.setCursor(14,0); lcd.print(" lcd.setCursor(3,1); lcd.print(" d lcd.setCursor(14,1); lcd.print(" "); lcd.setCursor(3,0); lcd.print(voltage, 1); "); lcd.setCursor(14,0); lcd.print(energy1, 1); "); lcd.setCursor(3,1); lcd.print(current1, 1); "); lcd.setCursor(14,1); lcd.print(power1, 1); lcd.setCursor(14,2); lcd.print(" "); lcd.setCursor(14,2); lcd.print(power2, 1); lcd.setCursor(3,3); lcd.print(" va an "); lcd.setCursor(3,2); lcd.print(current2, 1); u nf lu lcd.setCursor(3,2); lcd.print(" "); lcd.setCursor(14,3); lcd.print(power3, 1); digitalWrite(relay3, HIGH); Blynk.virtualWrite(V12,1); an Lu digitalWrite(relay3, LOW); m co delay(3000); l { gm if ((power1 < Pmin) && (DSM == 1)) @ } z Blynk.virtualWrite(V12,0); z at nh delay(3000); oi { m if ((power1 > Pmax) && (DSM == 1)) ll lcd.setCursor(14,3); lcd.print(" "); lcd.setCursor(3,3); lcd.print(current3, 1); n va ac th si 87 } if ((voltage > Umax) && (Protect == 1)) { delay(3000); digitalWrite(relay1, HIGH); Blynk.virtualWrite(V10,0); Blynk.virtualWrite(V19,255); Blynk.notify("Overvoltage"); } if ((voltage < Umin) && (Protect == 1)) { delay(3000); lu an digitalWrite(relay1, HIGH); va Blynk.virtualWrite(V10,0); n Blynk.virtualWrite(V20,255); to Blynk.notify("Undervoltage"); tn } gh p { ie if ((voltage >= Umin) && (voltage

Ngày đăng: 18/07/2023, 14:41