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 4 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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGUYỄN THANH BÌNH a lu n n va tn to p ie gh NGHIÊN CỨU THIẾT KẾ HỆ THỐNG QUẢN LÝ VÀ GIÁM SÁT ĐIỆN NĂNG THÔNG MINH d oa nl w a nv a lu ll u nf LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN m tz n oi 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 a lu n n va tn to p ie gh NGHIÊN CỨU THIẾT KẾ HỆ THỐNG QUẢN LÝ VÀ GIÁM SÁT ĐIỆN NĂNG THÔNG MINH d oa nl w a nv a lu Chuyên ngành: u nf Mã số: Kỹ thuật điện 60520202 ll m tz n oi 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 hoàn toàn chịu trách nhiệm lời cam đoan Học viên a lu n n va p ie gh tn to Nguyễn Thanh Bình d oa nl w a nv a lu ll u nf m tz n oi 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 a lu n 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 p ie gh tn to 3.1 Đối tượng nghiên cứu 4 Phương pháp nghiên cứu oa nl w 4.1 Nghiên cứu lý thuyết 4.2 Nghiên cứu thực nghiệm d Ý nghĩa khoa học thực tiễn đề tài a lu a nv 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 tz n oi 1.1 Mở đầu 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 co l 1.2.3 Ảnh hưởng CLĐN khách hàng sử dụng điện 13 m 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 a lu 1.5 Kết luận chương 22 n CHƯƠNG 24 va n THIẾT KẾ PHẦN CỨNG CỦA HỆ THỐNG 24 p ie gh tn to 2.1 Mở đầu 24 2.2 Các phần tử mạch lực 25 2.2.1 Sơ đồ mạch lực 25 oa nl w 2.2.2 Nguồn 26 2.2.3 Tải 27 d a nv a lu 2.3 Các phần tử mạch đo lường điều khiển 27 2.3.1 Cảm biến dòng điện 27 u nf 2.3.2 Cảm biến điện áp 30 ll m 2.3.3 Bo mạch Arduino Wemos D1 R32 32 n oi tz 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 co 2.4.2 Tổng thể phần cứng 36 m 2.5 Kết luận chương 36 Lu an 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 a lu 3.3.3 Lựa chọn phương pháp 43 n 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 p ie gh tn to 3.4.2 Đo dòng điện trị hiệu dụng (Irms) 47 3.4.3 Đo lường công suất tác dụng (P) 48 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 a nv a lu 3.5 Thiết kế giao diện quản lý, giám sát điều khiển từ xa 54 3.5.1 Thiết lập biến ảo cho đối tượng 54 u nf 3.5.2 Thiết kế giao diện điều khiển giám sát 55 ll m 3.5.3 Lập trình đối tượng Blynk 59 n oi tz 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 co 4.2 Kịch 1: Chế độ làm việc bình thường 62 m 4.3 Kịch 2: Chế độ quản lý nhu cầu phụ tải (DSM) 71 Lu an 4.4 Kịch 3: Chế độ bảo vệ quá/thấp áp 72 n va ac th si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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 a lu n n va p ie gh tn to d oa nl w a nv a lu ll u nf m tz n oi z m co l gm @ an Lu n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an vi DANH MỤC CÁC TỪ VIẾT TẮT a lu n 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 CSPK Công suất phản kháng ĐNTT Điện tiêu thụ d oa nl w CSTD a nv a lu ll u nf m tz n oi z m co l gm @ an Lu n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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 qt 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 a lu n 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 p ie gh Hình 2.7 Đặc tuyến đầu ZMPT101B [9] 31 Hình 2.8 Bo mạch Arduino Wemos D1 R32 32 oa nl w Hình 2.9 Adapter cấp nguồn cho Arduino Wemos D1 R32 34 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 a lu a nv 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 tz n oi Hình 3.3 Giao diện thiết kế project Blynk 41 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 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 m 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 Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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 a 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 n Excel báo cáo phương thức One-time 64 n va Hình 4.4 Điện áp U ghi từ 15h17 đến 15h33 ngày 6/6/2019 65 tn to Hình 4.5 Dịng điện I1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 65 p ie gh Hình 4.6 CSTD P1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 Hình 4.7 Điện A1 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 oa nl w Hình 4.8 Dịng điện I2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 66 Hình 4.9 CSTD P2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 d a nv a lu Hình 4.10 Điện A2 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 Hình 4.11 Dòng điện I3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 67 u nf Hình 4.12 CSTD P3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 68 ll m Hình 4.13 Điện A3 ghi từ 15h17 đến 15h33 ngày 6/6/2019 68 n oi tz 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 Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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 a lu #include n LiquidCrystal_I2C lcd(0x3F,20,4); n va const int sensor_voltage = 39; // Chân cảm biến điện áp 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 p ie gh const int sensor_current_3 = 34; // Chân cảm biến dòng mạch int DSM = 0; int Pmin = 0; // Gán biến điều khiển DSM // Gán công suất cực tiểu oa nl w int Pmax = 2000; // Gán công suất cực đại // Gán biến bảo vệ điện áp int Umin = 0; // Gán điện áp cực tiểu // Gán điện áp cực đại a lu int Umax = 250; d int Protect = 0; a nv byte relay1 = 16; // Chân đóng cắt rơle 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) m float voltage = 0; tz n oi // 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 Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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; a lu const int current_adc_zero = 3050; n n va BlynkTimer timer; void setup() tn to { Serial.begin(115200); p ie gh Blynk.begin(auth, ssid, pass); // setup pin - pinMode(relay1, OUTPUT); oa nl w pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); d pinMode(sensor_voltage, INPUT); a lu pinMode(sensor_current_1, INPUT); a nv pinMode(sensor_current_2, INPUT); u nf pinMode(sensor_current_3, INPUT); ll // -setup lcd m lcd.backlight(); lcd.clear(); lcd.setCursor(11,0); lcd.print("A1:"); tz lcd.setCursor(0,0); lcd.print("U1:"); n oi lcd.begin(); an Lu } m lcd.setCursor(11,3); lcd.print("P3:"); 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:"); n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 82 void loop() { Measurement(); Blynk.run(); timer.run(); } BLYNK_WRITE(V10) { //int pinValue = param.asInt(); if(param.asInt() == 0) { digitalWrite(relay1, HIGH); a lu } n { n va if(param.asInt() == 1) } p ie gh tn to digitalWrite(relay1, LOW); } BLYNK_WRITE(V11) { oa nl w int pinValue = param.asInt(); if(pinValue == 0) d { a lu digitalWrite(relay2, HIGH); a nv } u nf if(pinValue == 1) ll { tz n oi } m digitalWrite(relay2, LOW); } co l if(pinValue == 0) gm int pinValue = param.asInt(); @ { z BLYNK_WRITE(V12) m { an } Lu digitalWrite(relay3, HIGH); n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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) a lu { n n va Pmin = param; } tn to // Cập nhật Pmax từ Blynk void updatePmax(int param); p ie gh BLYNK_WRITE(V15) { updatePmax(param.asInt()); oa nl w } void updatePmax(int param) d { } } tz updateDSM(param.asInt()); n oi { m BLYNK_WRITE(V13) ll void updateDSM(int param); u nf // Cập nhật DSM từ Blynk a nv a lu Pmax = param; gm @ { z void updateDSM(int param) } an BLYNK_WRITE(V17) Lu void updateUmin(int param); m // Cập nhật Umin Blynk co l DSM = param; n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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()); a lu } n n va void updateUmax(int param) { tn to Umax = param; } p ie gh // Cập nhật biến bảo vệ điện áp từ Blynk void updateProtect(int param); BLYNK_WRITE(V16) oa nl w { updateProtect(param.asInt()); d } a lu void updateProtect(int param) a nv { u nf Protect = param; ll } m { tz n oi void Measurement() unsigned long prevMicros = micros() - sampleInterval; while (count < numSamples) z l { gm if (micros() - prevMicros >= sampleInterval) @ { co int voltage_adc_raw = (analogRead(sensor_voltage) - voltage_adc_zero); m int current_adc_raw_1 = (analogRead(sensor_current_1) - current_adc_zero); an int current_adc_raw_3 = (analogRead(sensor_current_3) - current_adc_zero); Lu int current_adc_raw_2 = (analogRead(sensor_current_2) - current_adc_zero); n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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); a lu float Irms1 = sqrt((float)currentAcc1/(float)numSamples) * (current_factor); n n va float Irms2 = sqrt((float)currentAcc2/(float)numSamples) * (current_factor); 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); p ie gh float P3 = ((float)powerAcc3/(float)numSamples) * (voltage_factor * current_factor); voltage = Vrms; current1 = Irms1; oa nl w power1 = P1*real_factor; apparent1 = Vrms*Irms1; d repower1 = sqrt(sq(apparent1)-sq(power1)); a lu energy1 += power1*1/3600; a nv current2 = Irms2; ll apparent2 = Vrms*Irms2; u nf power2 = P2*real_factor; m energy2 += power2*1/3600; power3 = P3*real_factor; tz current3 = Irms3; n oi repower2 = sqrt(sq(apparent2)-sq(power2)); an Serial.print(", I3: "); Serial.print(current3); Lu Serial.print(", I2: "); Serial.print(current2); m Serial.print(", I1: "); Serial.print(current1); co Serial.print(voltage); l Serial.print("U: "); gm energy3 += power3*1/3600; @ repower3 = sqrt(sq(apparent3)-sq(power3)); z apparent3 = Vrms*Irms3; n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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); a lu Blynk.virtualWrite(V6,power3); n n va Blynk.virtualWrite(V7,energy1); Blynk.virtualWrite(V8,energy2); tn to Blynk.virtualWrite(V9,energy3); Blynk.virtualWrite(V21,repower1); p ie gh Blynk.virtualWrite(V22,repower2); Blynk.virtualWrite(V23,repower3); lcd.setCursor(3,0); lcd.print(" "); lcd.setCursor(3,0); lcd.print(voltage, 1); oa nl w lcd.setCursor(14,0); lcd.print(" "); lcd.setCursor(14,0); lcd.print(energy1, 1); lcd.setCursor(3,1); lcd.print(" "); lcd.setCursor(3,1); lcd.print(current1, 1); d lcd.setCursor(14,1); lcd.print(" "); lcd.setCursor(14,1); lcd.print(power1, 1); a lu "); lcd.setCursor(3,2); lcd.print(current2, 1); lcd.setCursor(14,2); lcd.print(" "); lcd.setCursor(14,2); lcd.print(power2, 1); lcd.setCursor(3,3); lcd.print(" u nf lcd.setCursor(3,2); lcd.print(" a nv "); lcd.setCursor(14,3); lcd.print(power3, 1); digitalWrite(relay3, HIGH); tz delay(3000); n oi { m if ((power1 > Pmax) && (DSM == 1)) ll lcd.setCursor(14,3); lcd.print(" "); lcd.setCursor(3,3); lcd.print(current3, 1); co l { gm if ((power1 < Pmin) && (DSM == 1)) @ } z Blynk.virtualWrite(V12,0); m delay(3000); an Blynk.virtualWrite(V12,1); Lu digitalWrite(relay3, LOW); n va ac th Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn si C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 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); a lu digitalWrite(relay1, HIGH); n va Blynk.virtualWrite(V10,0); n Blynk.virtualWrite(V20,255); tn to Blynk.notify("Undervoltage"); } p ie gh if ((voltage >= Umin) && (voltage

Ngày đăng: 24/07/2023, 03:07

Xem thêm: