THIẾT KẾ CẤU TRÚC ĐIỀU KHIỂN FOC CHO ĐỘNG CƠ ĐỒNG BỘ KÍCH THÍCH VĨNH CỬU SỬ DỤNG INCREMENT ENCODER Bao cao đồ án tốt nghiệp chuyên ngành tự động hóa BKHN (24)

89 28 0
THIẾT KẾ CẤU TRÚC ĐIỀU KHIỂN FOC CHO ĐỘNG CƠ ĐỒNG BỘ KÍCH THÍCH VĨNH CỬU SỬ DỤNG INCREMENT ENCODER Bao cao đồ án tốt nghiệp chuyên ngành tự động hóa BKHN (24)

Đ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

TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN BỘ MƠN TỰ ĐỘNG HỐ CƠNG NGHIỆP ====o0o==== ĐỒ ÁN TỐT NGHIỆP Hà nội, 6-2018 TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN BỘ MƠN TỰ ĐỘNG HỐ CƠNG NGHIỆP ====o0o==== ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ CẤU TRÚC ĐIỀU KHIỂN FOC CHO ĐỘNG CƠ ĐỒNG BỘ KÍCH THÍCH VĨNH CỬU SỬ DỤNG INCREMENT ENCODER Trưởng mơn : PGS.TS Trần Trọng Minh Giáo viên hướng dẫn : TS Vũ Hoàng Phương Sinh viên thực : Trần Minh Trường Lớp : TĐH04 - K58 MSSV : 20134233 Giáo viên duyệt : Hà Nội, 06/2018 LỜI CAM ĐOAN Em xin cam đoan đồ án tốt nghiệp: Thiết kế cấu trúc điều khiển FOC cho động đồng kích thích vĩnh cửu sử dụng increment encoder em tự thiết kế hướng dẫn thầy giáo TS Vũ Hoàng Phương Các số liệu kết hoàn toàn với thực tế Để hoàn thành đồ án em sử dụng tài liệu ghi danh mục tài liệu tham khảo không chép hay sử dụng tài liệu khác Nếu phát có chép em xin chịu hoàn toàn trách nhiệm Hà Nội, ngày 02 tháng 06 năm 2018 Sinh viên thực Trần Minh Trường MỤC LỤC DANH MỤC HÌNH VẼ i DANH MỤC BẢNG SỐ LIỆU iv DANH MỤC TỪ VIẾT TẮT v LỜI NÓI ĐẦU vi Chƣơng TỔNG QUAN VỀ HỆ TRUYỀN ĐỘNG SERVO VÀ ĐỘNG CƠ PMSM 1.1 Hệ truyền động servo 1.2 Động đồng kích thích vĩnh cửu 1.2.1 Khái niệm chung 1.2.2 Cấu tạo động đồng kích thích vĩnh cửu a) Stato b) Roto 1.2.3 Nguyên lý hoạt động động đồng kích thích vĩnh cửu Chƣơng THIẾT KẾ CẤU TRÚC ĐIỀU KHIỂN VÀ KẾT QUẢ MÔ PHỎNG CHO ĐỘNG CƠ PMSM 2.1 Phương pháp tựa theo từ thông roto (FOC) 2.2 Cấu trúc FOC 2.3 Mơ hình hóa động 2.4 Các khâu chuyển hệ trục tọa độ 10 2.4.1 Khâu chuyển đổi hệ trục abc   10 2.4.2 Khâu chuyển đội hệ trục   dq 10 2.4.3 Khâu chuyển hệ tọa độ dq   11 2.5 Khâu điều chế vector điện áp 12 2.6 Thiết kế điều khiển 18 2.6.1 Thiết kế điều khển dòng điện 18 2.6.2 Thiết kế điều khiển tốc độ quay 21 2.6.3 Thiết kế điều khiển vị trí 24 2.7 Sơ đồ cấu trúc mô 25 2.8 Kết mô 26 2.8.1 Chế độ điều khiển tốc độ 26 2.8.2 Chế độ điều khiển vị trí 28 2.8.3 Nhận xét 31 Chƣơng XÂY DỰNG HỆ THỐNG THỰC NGHIỆM VÀ KẾT QUẢ THỰC NGHIỆM 32 3.1 Xây dựng hệ thống thực nghiệm 32 3.1.1 Thiết kế mạch lực 33 a) Mạch lực 33 b) Mạch driver 35 3.1.2 Mạch đo dòng điện 35 a) Nguyên lý làm việc LEM tranducer 36 3.1.3 Mạch điều khiển 38 a) Vi điều khiển TMS320F2877s 38 b) Khối lập trình logic 41 c) Khối nguồn cấp 42 3.1.4 Động thử nghiệm 43 a) Động 0.4kW L010976 - EMJ-04 43 b) Động 2.1kW 1FK7080-2AF71-1EA0 44 3.1.5 Increment Encoder 45 3.2 Chuẩn hóa tín hiệu 46 3.2.1 Chuẩn hóa mạch vòng điều chỉnh dòng điện 46 3.2.2 Chuẩn hóa mạch vịng điều chỉnh tốc độ 47 3.2.3 Chuẩn hóa mạch vịng điều chỉnh vị trí 48 3.2.4 Chuẩn hóa thuật tốn tính tốn tốc độ 49 3.2.5 Chuẩn hóa tht tốn SVM 49 3.3 Xác định vị trí đỉnh cực ban đầu 50 3.3.1 Vì phải đưa vị trí định cực 50 3.3.2 Phương pháp cấp điện áp đặc biệt 51 3.3.3 Phương pháp sử dụng điều khiển dòng điện Ri 53 3.3.4 Nhận xét 54 3.4 Đo dòng điện stator 55 3.5 Xây dựng chương trình vi điều khiển 56 3.6 Kết thực nghiệm 59 3.6.1 Chế độ điều khiển tốc độ 59 3.6.2 Chế độ điều khiển vị trí 60 3.6.3 Nhận xét 62 3.7 Kết luận 63 3.7.1 Hạn chế hệ thống 63 3.7.2 Phương hướng phát triển 63 KẾT LUẬN 65 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC 67 Danh mục hình vẽ DANH MỤC HÌNH VẼ Hình 1.1 Cấu trúc hệ truyền động điện động xoay chiều pha Hình 1.2 Cấu tạo động PMSM Hình 1.3 Stato động PMSM Hình 1.4 Roto động PMSM Hình 2.1 Cấu trúc FOC cho PMSM sử dụng DSP Hình 2.2 Khối chuyển hệ tọa độ abc   10 Hình 2.3 Khối chuyển đội hệ trục   dq 11 Hình 2.4 Khâu chuyển hệ tọa độ dq   11 Hình 2.5 Giải pháp điều chế độ rộng xung cho nghịch lưu ba pha 12 Hình 2.6 Vị trí vector chuẩn hệ tọa độ tĩnh  12 Hình 2.7 Mối quan hệ sector điện áp tức thời usa , usb , usc 14 Hình 2.8 Thuật tốn xác định vector điện áp sector 15 Hình 2.9 Nguyên tắc điều chế vector điện áp 15 Hình 2.10 Mẫu xung chuẩn Sector 17 Hình 2.11 Cấu trúc đan kênh điều khiển dòng điện 19 Hình 2.12 Cấu trúc điều khiển dịng stato isd 20 Hình 2.13 Cấu trúc điều khiển tốc độ 22 Hình 2.14 Mạch vịng tốc độ xét tới ảnh hưởng moment tải 23 Hình 2.15 Cấu trúc điều khiển vị trí 24 Hình 2.16 Sơ đồ cấu trúc mô FOC cho động PMSM 26 Hình 2.17 Đáp ứng tốc độ lượng đặt (v/p) 26 Hình 2.18 Kết phóng to sai lệch tốc độ chế độ xác lập 27 * Hình 2.19 Đáp ứng thành phần dòng isq lượng đặt isq 27 i Danh mục hình vẽ * Hình 2.20 Đáp ứng thành phần dịng isd lượng đặt isd 27 Hình 2.21 Moment động 28 Hình 2.22 Đáp ứng vị trí tốc độ 28 Hình 2.23 Kết phóng to sai lệch vị trí xác lập 29 * Hình 2.24 Đáp ứng thành phần dòng isq lượng đặt isq 29 * Hình 2.25 Đáp ứng thành phần dòng isd lượng đặt isd 29 Hình 2.26 Hệ số điều chế 30 Hình 2.27 Moment động 30 Hình 2.28 Dịng điện pha U động 30 Hình 3.1 Sơ đồ tổng quan hệ thống thực nghiệm 32 Hình 3.2 Hệ thống thực nghiệm 33 Hình 3.3 Sơ đồ tổng quan mạch lực 33 Hình 3.4 Sơ đồ nguyên lý 7MBP25RA120 34 Hình 3.5 Mạch driver HCPL-4505 35 Hình 3.6 Sơ đồ tổng quan mạch đo dòng 35 Hình 3.7 Sử dụng hiệu ứng Hall đo dịng theo vịng kín 36 Hình 3.8 Sơ đồ kết nối LEM 37 Hình 3.9 Tổng quang mạch điều khiển 38 Hình 3.10 Mạch LaunchPad KIT TMS320F28377S 39 Hình 3.11 Kiến trúc vi điều khiển 40 Hình 3.12 Vi điều khiển CPLD EPM240T100C5N TQFP100 41 Hình 3.13 Động L010976-EMJ-04 43 Hình 3.14 Động 1FK7080-2AF71-1EA0 44 Hình 3.15 Increment Encoder 45 ii Danh mục hình vẽ Hình 3.16 Cách đọc chiều quay Encoder 45 Hình 3.17 Bộ điều chỉnh dòng điện 46 Hình 3.18 Moment đầu trục động bị đập mạch 51 Hình 3.19 Góc offset 51 Hình 3.20 Các vector đặc biệt 52 Hình 3.21 Thuật toán phương pháp cấp điện áp đặc biệt 53 Hình 3.22 Trình tự khởi động 55 Hình 3.23 Thời điểm trích mẫu (M) 55 Hình 3.24 Trình tự điều chế theo lý thuyết 56 Hình 3.25 Trình tự điều chế sau sửa 56 Hình 3.26 Lưu đồ thuật toán hàm main 57 Hình 3.27 Lưu đồ thuật toán đọc encoder 57 Hình 3.28 Lưu đồ thuật tốn tính toán bên CLA 58 Hình 3.29 Hệ số điều chế 59 Hình 3.30 Đáp ứng tốc độ 59 Hình 3.31 Đáp ứng tốc độ phóng to độ 60 Hình 3.32 Đáp ứng tốc độ chụp CCS 60 Hình 3.33 Đáp ứng dòng điện isd 61 Hình 3.34 Đáp ứng dịng điện isq 61 Hình 3.35 Đáp ứng vị trí tốc độ 62 Hình 3.36 Góc điện chuẩn hóa 62 iii Danh mục bảng số liệu DANH MỤC BẢNG SỐ LIỆU Bảng 2.1 Bảng giá trị điện áp vector chuẩn 13 Bảng 2.2 Bảng tổng hợp ma trận sector 16 Bảng 2.3 Trạng thái logic vector chuẩn Sector 17 Bảng 2.4 Hệ số điều chế cho nhóm van mạch nghịch lưu 17 Bảng 3.1 Thông số LEM LA25-P/SP1 37 Bảng 3.2 Sơ đồ cổng kết nối cáp nguồn cho động 44 iv Chương Xây dựng hệ thống thực nghiệm kết thực nghiệm Hình 3.35 Đáp ứng vị trí tốc độ Hình 3.36 Góc điện chuẩn hóa 3.6.3 Nhận xét Sau mơ cấu trúc điều khiển FOC cho ĐC PMSM Matlab, em chạy thực nghiệm ĐC 0.4kW 2.1kW Kết thu ĐC: 62 Chương Xây dựng hệ thống thực nghiệm kết thực nghiệm - Với vòng điều khiển tốc độ, hệ số điều chế đáp ứng tốc độ có dạng giống với kết mơ phỏng, tốc độ bám lượng đặt nhanh, độ điều chỉnh nhỏ - Với vịng điều khiển vị trí, chạy khơng tải nên thành phần dòng isd isq xấp xỉ khơng Các đáp ứng tốc độ vị trí có dạng giống với kết mơ phỏng, đáp ứng vị trí bám lượng đặt với độ điều chỉnh nhỏ sai lệch tĩnh đạt 0.01 vịng Mơ hình thức nghiệm hoạt động với động dải công suất 5kW 3.7 Kết luận 3.7.1 Hạn chế hệ thống Do hạn chế mặt thời gian trang thiết bị nên hệ thống thực nghiệm chạy chế độ không tải Nguồn mạch đo tồn nhiều ripple nên việc đo dòng chưa ổn định dẫn đến điều khiển dòng chưa ổn định 3.7.2 Phƣơng hƣớng phát triển Cải thiện mạch nguồn mạch đo Kết nối thêm Master để điều khiển giám sát máy tính HMI Nhận dạng tự động tham số động Thay đo vị trí (Increment Encoder) Resolver Absolute Encoder để nâng cao độ xác Thêm chỉnh lưu tích cực 63 Chương Xây dựng hệ thống thực nghiệm kết thực nghiệm 64 Kết luận KẾT LUẬN Trong thời gian nghiên cứu đề tài Thiết kế cấu trúc điều khiển FOC cho động đồng kích thích vĩnh cửu sử dụng increment encoder em thu kết quả: mô cấu trúc FOC điều khiển động PMSM, xây dựng thành cơng mơ hình thực nghiệm với mạch vịng: dịng điện, tốc độ vị trí Một lần em xin chân thành cảm ơn hướng dẫn tận tình thầy giáo TS Vũ Hồng Phƣơng giúp đỡ em hoàn thành đồ án Do hạn chế thời gian nghiên cứu trình độ thân nên đồ án thiếu sót Em mong nhận góp ý thầy cô bạn bè để đồ án em hoàn thiện Em xin chân thành cảm ơn! Hà Nội, ngày 02 tháng 06 năm 2018 Sinh viên thực Trần Minh Trường 65 Tài liệu tham khảo TÀI LIỆU THAM KHẢO [1] Nguyễn Phùng Quang, Điều khiển vector truyền động điện xoay chiều ba pha, nhà xuất Bách khoa Hà nội, 2016 [2] Ramesh T Ramamoorthy, Brett Larimore, Manish Bhardwaj, Sensored Field Oriented Control of 3-Phase Permanent Magnet Synchronous Motors using F2837x, Texas Instruments [3] Texas Instruments 2015, DesignDRIVE Development Kit IDDK v2.2.1 - User’s Guide [4] Texas Instruments 2015, DesignDRIVE Development Kit IDDK v2.2.1 Hardware Reference Guide [5] Vector Control for Permanent Magnet Synchronous Motor with Encoder (Algorithm), Renesas Electronics Corporation, 2017 [6] Kristiansen Baricuatro, Sensorless Start-up and Control of Permanent Magnet Synchronous Motor, Department of Electric Power Engineering, Norwegian University of Science and Technology, 2014 [7] Fernando Briz, David Díaz-Reigosa, Michael W Degner†, Pablo García, Juan Manuel Guerrero, Current Sampling and Measurement in PWM Operated AC Drives and Power Converters, the 2010 International Power Electronics Conference [8] Motor Control Solutions Using Freescale Controllers, Freescale Semiconductor, Inc, Embedded Connectivity Summit 2004 66 Phụ lục PHỤ LỤC P1 Chƣơng trình điều khiển CCS P1.1 Vòng điều khiển dòng điện // =============================== LEVEL ========================= // chay bo dk dong // ================================================================= #if (BUILDLEVEL == LEVEL2) IsrTicker++; // -pi_iq.Kp = Kp_i; pi_id.Kp = Kp_i; pi_iq.Ki = Ki_i; pi_id.Ki = Ki_i; // -if(lsw == 0){ cntr++; if (cntr < 10000){ IdStart = 0.05; ram_isd.TargetValue = IdStart; RC_CLA_MACRO(ram_isd) } else { lsw=1; cntr=0; IdRef = 0; PI_NORMAL_INT(pi_iq) PI_NORMAL_INT(pi_id) } } // -if(lsw != 0){ ram_isd.TargetValue = IdRef; RC_CLA_MACRO(ram_isd) ram_isq.TargetValue = IqRef; RC_CLA_MACRO(ram_isq) } // // Connect inputs of the CLARKE module and call the clarke transformation macro // clarke_curr.As = adc_filter.Iinv_u; clarke_curr.Bs = adc_filter.Iinv_v; clarke_curr.Cs = - adc_filter.Iinv_u - adc_filter.Iinv_v; CLARKE_3PHASE_CLA_MARCO(clarke_curr) // // Position encoder suite module 67 Phụ lục // MotorPosCalc(qep1) // if needed reverse the sense of position in this module // // Connect inputs of the PARK module and call the park trans macro // if (lsw == 0||lsw==2) Park_curr.theta = 0; else Park_curr.theta = qep1.ElecTheta; Park_curr.alpha = clarke_curr.Alpha; Park_curr.beta = clarke_curr.Beta; Park_curr.sine = CLAsinPU(Park_curr.theta); Park_curr.cos = CLAcosPU(Park_curr.theta); PARK_CLA_MACRO(Park_curr) // // Connect inputs of the SPEED_FR module and call the speed calculation macro // speed1.ElecTheta = qep1.ElecTheta; SPEED_FR_MACRO(speed1) // ==========================Current controller===================== // PI_Id Controller -pi_id.REF = ram_isd.SetpointValue; pi_id.FBK = Park_curr.d; pi_id.ERROR = pi_id.REF - pi_id.FBK; PI_CURRENT_MACRO(pi_id); // PI_Iq Controller -if (lsw == 0) pi_iq.REF = 0.0; else if(lsw == 1) pi_iq.REF = ram_isq.SetpointValue; pi_iq.FBK = Park_curr.q; pi_iq.ERROR = pi_iq.REF - pi_iq.FBK; PI_CURRENT_MACRO(pi_iq); // // Connect inputs of the INV_PARK module and call the inverse park trans macro // iPark_volt.d = pi_id.OUT1; iPark_volt.q = pi_iq.OUT1; iPark_volt.sine = Park_curr.sine; iPark_volt.cos = Park_curr.cos; iPARK_CLA_MACRO(iPark_volt) // // Connect inputs of the SVGEN module and call the space-vector gen macro // svm1.Ualpha = iPark_volt.alpha; svm1.Ubeta = iPark_volt.beta; svm1.Udc = UdcTesting; SVGEN_CLA_MACRO(svm1) // - 68 Phụ lục // Connect inputs of the PWM_DRV module and call the PWM signal generation macro // pwm.MfuncC1 = svm1.Ta; pwm.MfuncC2 = svm1.Tb; pwm.MfuncC3 = svm1.Tc; PWM_3PHASE_MACRO(pwm); // // Connect inputs of the PWMDAC module // PWMDAC_MACRO(svm1.Ta,svm1.Tb,tmp,tmp,250) #endif // end LEVEL2 P1.1 Vòng điều khiển dòng điện //================================================================== //chay bo dieu khien toc //================================================================== #if (BUILDLEVEL == LEVEL3) IsrTicker++; //============================================================ pi_iq.Kp = Kp_i; pi_id.Kp = Kp_i; pi_iq.Ki = Ki_i; pi_id.Ki = Ki_i; pi_spd.Kp = Kp_w; pi_spd.Ki = Ki_w; //================================================= if(lsw == 0){ cntr++; if (cntr < 10000){ IdStart = 0.01; ram_isd.TargetValue = IdStart; RC_CLA_MACRO(ram_isd) } else { lsw=1; cntr=0; IdRef = 0; PI_NORMAL_INT(pi_iq) PI_NORMAL_INT(pi_id) } } // -if(lsw != 0){ ram_isd.TargetValue = IdRef; RC_CLA_MACRO(ram_isd) ram_isq.TargetValue = IqRef; RC_CLA_MACRO(ram_isq) 69 Phụ lục } // // Connect inputs of the CLARKE module and call the clarke transformation macro // clarke_curr.As = AdcVaule.Iinv_u; // Phase A curr clarke_curr.Bs = AdcVaule.Iinv_v; // Phase B curr clarke_curr.Cs = - AdcVaule.Iinv_u - AdcVaule.Iinv_v;//adc_filter.Iinv_a - adc_filter.Iinv_b CLARKE_3PHASE_CLA_MARCO(clarke_curr) // // Position encoder suite module // MotorPosCalc(qep1) if (lsw == 0) ram_speed.TargetValue = 0; else ram_speed.TargetValue = SpeedRef/4500.0; RC_CLA_MACRO(ram_speed) // // Connect inputs of the PARK module and call the park trans macro // if (lsw == 0||lsw==2) Park_curr.theta = 0; else Park_curr.theta = qep1.ElecTheta; Park_curr.alpha = clarke_curr.Alpha; Park_curr.beta = clarke_curr.Beta; Park_curr.sine = CLAsinPU(Park_curr.theta); Park_curr.cos = CLAcosPU(Park_curr.theta); PARK_CLA_MACRO(Park_curr) // // Connect inputs of the SPEED_FR module and call the speed calculation macro // speed1.ElecTheta = qep1.ElecTheta; SPEED_FR_MACRO(speed1) filter_Spd.Vin = speed1.Speed; LOWPASSFILTER_MACRO(filter_Spd) speed1_filter.Speed = filter_Spd.Vout; // // Connect inputs of the PI position module and call the PI speed controller macro // if (SpeedLoopCount == 5) { pi_spd.REF = ram_speed.SetpointValue; pi_spd.FBK = speed1_filter.Speed; pi_spd.ERROR = pi_spd.REF - pi_spd.FBK; //SpeedRef; PI_SPEED_MACRO(pi_spd); SpeedLoopCount = 1; } else SpeedLoopCount++; 70 Phụ lục if(lsw == 0) { pi_spd.OUT = 0; pi_spd.ERROR = 0; pi_spd.OUT_I = 0; pi_spd.OUT_P = 0; } // ==========================Current controller===================== // PI_Id Controller -pi_id.REF = ram_isd.SetpointValue;//ram_isd.SetpointValue pi_id.FBK = Park_curr.d; pi_id.ERROR = pi_id.REF - pi_id.FBK; if ((pi_id.ERROR >= -0.005)&&(pi_id.ERROR = -0.005)&&(pi_iq.ERROR -0.00001)){ lsw = 2; pi_pos.OUT_I=0;pi_pos.OUT_P=0;pi_pos.OUT_I1=0; } if((pi_pos.ERROR>0.0001)||(pi_pos.ERROR= -0.005)&&(pi_id.ERROR = -0.005)&&(pi_iq.ERROR

Ngày đăng: 26/08/2021, 08:39

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan