(Luận văn thạc sĩ) thiết kế hệ thống cảm biến mềm đo tốc độ động cơ DC

107 9 0
(Luận văn thạc sĩ) thiết kế hệ thống cảm biến mềm đo tốc độ động cơ DC

Đ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 SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN ĐỨC TÀI THIẾT KẾ HỆ THỐNG CẢM BIẾN MỀM ĐO TỐC ĐỘ ĐỘNG CƠ DC NGÀNH: KỸ THUẬT ĐIỆN TỬ- 60520203 SKC006591 Tp Hồ Chí Minh, tháng 04/2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN ĐỨC TÀI THIẾT KẾ HỆ THỐNG CẢM BIẾN MỀM ĐO TỐC ĐỘ ĐỘNG CƠ DC NGÀNH: KỸ THUẬT ĐIỆN TỬ - 60520203 Tp Hồ Chí Minh Tháng Năm 2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ LUẬN VĂN THẠC SĨ ĐẶ NGUYTHÀNHỄĐỨCNHÂNTÀI THIẾĐIỀTKUẾKHIỆỂNTHỐĐỘNGNGCẢCƠM KHÔNGBIẾMỀMĐỒĐONG TỐCBỘ ĐỘ KHÔNG DÙNG CẢM BIẾN TỐC ĐỘ ĐỘNG CƠ DC NGÀNH: KỸ THUẬT ĐIỆN TỬ - 60520203 NGÀNH: KỸ THUẬT ĐIỆN - 60520202 Hướng dẫn khoa học: Hướng dẫn khoa học: PGS.TS NGÔ VĂN THUYÊN PGS.TS NGÔ VĂN THUYÊN Tp Hồ Chí Minh Tháng Năm 2020 Tp Hồ Chí Minh Tháng 10 Năm 2018 Trang i Trang ii Trang iii Trang iv Trang v Trang vi Trang vii uint16_t counter_array = 0; double Vol[Element]; double Amp[Element]; double Speed[Element], motor_speed, Speed_Pervious[Element]={0}; PIDControl pid; Kalmanfilter Kalman; Kalmanfilter Kalman_V; Kalmanfilter Kalman_S; uint32_t duty; float setpoint = Setpoint; double error_speed=0.0; double filter_Amp, filter_Vol , Per_Speed = , filter_Speed; const double data1[66] = { 0, 95, 1083, 1317, 1362, 1366, 1369, 1375, 1373, 1372, 1374, 1374, 1269, 1081, 904, 712, 554, 406, 0, 430, 1077, 1111, 1141, 1321, 1354, 1374, 1371, 1367, 1369, 1372, 1369, 1331, 1318, 1329, 1355, 1368, 1372, 1352, 1327, 1292, 1236, 1238, 1223, 1219, 1215, Trang 66 1210, 1215, 1228, 1242, 1239, 1269, 1276, 1254, 1241, 1236, 1225, 1222, 1217, 1214, 1207, 1197, 1201, 1194, 1187, 1178, 664, }; const double data2[66] = { 0.19221379, 0.717188581, 0.738233494, 0.661720249, 0.602156965, 0.548851118, 0.524804281, 0.486845301, 0.450351415, 0.445177711, 0.430916248, 0.325641566, 0.210449332, 0.128082807, 0.070648722, 0.035007669, 0.010328594, 0.002035274, 0.536346007, 0.897780512, 0.960254276, 1.001699379, 0.907543175, 0.745564437, 0.647264132, 0.587646181, 0.530668408, 0.501014991, 0.493419528, 0.467792022, 0.494448286, 0.543563572, 0.56830673, 0.560106498, 0.515361968, 0.484996154, Trang 67 0.495791331, 0.464538427, 0.51816683, 0.570401251, 0.749989443, 0.772131655, 0.822229934, 0.830579724, 0.811352635, 0.838768083, 0.863133956, 0.817564983, 0.839137948, 0.802092717, 0.765124808, 0.763711606, 0.760828205, 0.77195481, 0.805047542, 0.836689797, 0.82991497, 0.865422048, 0.892854328, 0.919350436, 0.933038293, 0.954896856, 0.972769844, 0.915981506, 0.62942822, 0.406329459, }; const double data3[66] = {8.863999, 11.36219, 11.61771, 11.966499, 11.72481, 11.98675, 11.777209, 11.72324, 12.02636, 11.71871, 11.88694, 10.13197, 6.89323, 6.20036, 5.08705, 2.87429, 1.93643, 1.38622, 9.64725, 11.03047, 11.03349, 11.21736, 11.60164, 11.556789, 11.82927, 11.6079, Trang 68 11.59341, 11.851569, 11.6621, 11.85703, 11.880111, 11.489671, 11.48086, 11.619209, 11.631579, 11.67652, 11.65456, 11.49665, 11.44629, 11.76247, 11.6079, 11.3806, 11.62584, 11.42228, 11.27991, 11.30475, 11.29653, 11.30674, 11.490891, 11.61531, 11.718929, 11.28936, 11.43126, 11.391199, 11.31785, 11.54297, 11.35405, 11.26458, 11.260671, 11.272921, 11.20649, 11.13343, 11.218699, 8.27599, 5.67596, 2.31198, }; const double data4[66] = { 95, 1083, 1317, 1362, 1366, 1369, 1375, 1373, 1372, 1374, 1374, 1269, 1081, 904, 712, 554, 406, Trang 69 275, 430, 1077, 1111, 1141, 1321, 1354, 1374, 1371, 1367, 1369, 1372, 1369, 1331, 1318, 1329, 1355, 1368, 1372, 1352, 1327, 1292, 1282, 1238, 1223, 1219, 1215, 1210, 1215, 1228, 1242, 1239, 1269, 1276, 1254, 1241, 1236, 1225, 1222, 1217, 1214, 1207, 1197, 1201, 1194, 1187, 1178, 664, 238, }; double A[1] = { 0.0 }; int estimate_speed = 0; double B[3] = {0.0,0.0,0.0 }; /************************************************************************ *************** Declare function Trang 70 ************************************************************************* ***************/ void USART_puts(char* s); void set_duty(uint16_t duty, uint8_t flag); void PID(void); /************************************************************************ *************** Interrupt function ************************************************************************* ***************/ int flag =0; double filter_Vol,filter_S ; /* interrput for encoder*/ void TIM4_IRQHandler(void) { if((TIM_GetITStatus (TIM4, TIM_IT_Update ))) { TIM_ClearITPendingBit (TIM4, TIM_IT_Update ); motor_speed = TIM_GetCounter(TIM5); TIM_SetCounter(TIM5,0); Amp_Value = ina219_getCurrent_mA()/1000; filter_Amp = getFilteredValue(&Kalman, Amp_Value); Vol_Value = ina219_getBusVoltage_V()+ ina219_getShuntVoltage_mV()/1000.0f; estimate_speed = Per_Speed*0.23 - 177*filter_Amp + 98*Vol_Value; filter_S = getFilteredValue(&Kalman_S, estimate_speed); } error_speed = fabs(motor_speedestimate_speed); Per_Speed = estimate_speed; } /************************************************************************ **************** Main function ************************************************************************* ***************/ int main() { SystemInit(); TM_HD44780_Init(16, 2); ina219_init(); Configure_peripheral(); PIDInit(&pid,Kp,Ki,Kd,TS,10,1049,AUTOMATIC,DIRECT); set_duty(1000,1); PIDTuningKpSet (&pid,Kp); PIDTuningKiSet (&pid,Ki); PIDTuningKdSet (&pid,Kd); PIDSetpointSet(&pid,setpoint); duty = 0.0f; Kalman_Init(&Kalman,0.125,32,1023,0); Kalman_Init(&Kalman_V,0.125,32,1023,0); Kalman_Init(&Kalman_S,0.125,32,1023,0); ARX_MODEL(data1, data2, data3, data4, A, B); Trang 71 memset(Speed,0,sizeof(Speed)); memset(Amp,0,sizeof(Speed)); memset(Vol,0,sizeof(Speed)); memset(Speed_Pervious,0,sizeof(Speed_Pervious)); ftoa(B[0], LCD_Buffer, 3); TM_HD44780_Puts(0,0,LCD_Buffer); while(1) { } } /************************************************************************ ***************** Sub Funtion ************************************************************************* ****************/ void set_duty(uint16_t duty, uint8_t flag) { if (flag) { TIM2->CCR4 = duty; TIM2->CCR3 = 0; } else { } } void PID(void) { PIDInputSet(&pid,motor_speed); PIDCompute(&pid); duty = PIDOutputGet(&pid); set_duty(duty,1); } Trang 72 NỘI DUNG BÀI BÁO THIẾT KẾ HỆ THỐNG CẢM BIẾN MỀM ĐO TỐC ĐỘ ĐỘNG CƠ DC SPEED ESTIMATION FOR DC MOTORS USING ARX MODEL Nguyễn Đức Tài Trường Đại học Sư phạm Kỹ thuật TP.HCM TĨM TẮT Trong báo này, mơ hình ARX sử dụng cho hệ thống ước lượng tốc độ động DC có chổi than Sơ đồ của hệ thống bao gồm ba ngõ đầu Ngõ vào bao gồm ba tham số là: dịng điện, điện áp tốc độ trước Đầu hệ thống tốc độ ước lượng động DC Mơ hình ARX mô đánh giá hiệu suất so với mơ hình ARMAX Matlab 2017b Sau đó, mơ hình ARX nhúng vào vi điều khiển STM32F407 để thực thi việc ước lượng thực tế động DC Kết tốc độ ước lượng so sánh đánh giá với kết đo từ Encoder Từ khóa: mơ hình ARX; ước lượng tốc độ; động DC; STM32F407 ABSTRACT In this paper, ARX model will be use in speed estimation system for DC motors The system is the MISO (multiple input, single output) system The input system include current, voltage and previous speed And, estimation speed is output of system ARX model will be simulate and evaluate to ARMAX model on Matlab version 2017b After that, we will implement this model on MCU STM32F407 The estimate speed will be compare to speed which measure by Encoder Key word: ARX model; speed estimation; DC motors; STM32F407 I Giới thiệu Động DC vẫ n chưa thể đươ c thay thể sộng ngày có cẫ u tẫ o đơn giẫ n, điể u khiể n không phư c tẫ p không yêu cẫ u cao vể viểc bẫ o trì hay sưa chưa [1] Trong hệ thống sử dụng động (AC-DC) cần biết xác tốc độ, vị trí trục quay chúng hoạt động để điều khiển kiểm sốt chúng Thơng thường, người ta sử dụng Encoder gắn vào trục động để đo tốc độ Việc lắp đặt Encoder để đo tốc độ làm tăng diện tích hệ thống, yêu cầu bảo trì, thời gian chi phí lắp đặt [2] Trong báo này, tác giả sử dụng ARX model để thiết kế thực nghiệm ước lượng tốc độ cho động DC Bộ ước lượng sử dụng tham số điện áp, dòng điện tốc độ thời điểm − để làm thông số đầu vào II Mơ hình hệ thống Trang 73 A Mơ hình tốn học động DC Động DC mơ tả phương trình (1) (2) [3]: ư( )+ ( )= ( )+ ( )+ Trong đó, ( ) – tốc độ rotor( rad/s) ư(t) ư– – Suất điện động phần ứng ư(t) – Dòng điện phần ứng – Điện trở phần ứng Điện áp phần ứng – Điện cảm phần ứng – Hệ số ma sát – Momen quán tính ( ) – Momen tải ( ) – Momen quay Từ biểu thức (1) (2) ta có sơ đồ khối động DC Hình Hình 18 Sơ đồ khối động DC B Xây dựng mơ hình ước lượng ARX Cấu trúc hệ thống thể Hình [4]: Hình 19 Cấu trúc mơ hình hệ thống Mơ hình tốn học hệ thống tuyến tính thể phương trình (3): (2) C Xây dựng mơ hình hệ thống Theo phương trình (1), thơng số đầu vào ảnh hưởng trực tiếp đến hệ thống: Điện áp dịng điện Ngồi ra, tốc độ thời điểm − 1(với thời điểm ta đo tốc độ động cơ) có mối tương quan đến tốc độ Các liệu hệ thống thu thập sơ đồ khối Hình Hình 20 Sơ đồ khối thu thập liệu Phân tích mối tương quan thơng số đầu vào: Dịng điện, điện áp tốc độ thời điểm − với tốc độ ta có kết Hình 4, Hình Hình (Rpm) (V) Hình 21 Đồ thị mối quan hệ điện áp tốc độ ( )= ( −1 ) ( )+ ( −1 ) ( ) Trang (Rpm) (A) Hình 22 Đồ thị mối quan hệ dòng điện tốc độ Hình 24 Kết mơ hình ARX Thực kiểm tra mơ hình với tập liệu kiểm tra ta kết Hình Kết ước lượng tập liệu kiểm tra cho thấy mơ hình ước lượng cho kết gần xác tuyệt đối (Rpm) (Rpm) (Rpm)(t-1) Hình 23 Mối quan hệ tốc độ trước tốc độ III Kết mô Với tham số đầu vào = 0, = [1 1], = [1 0] Thực ước lượng với mơ hình ARX ta có kết Hình Thời gian lấy mẫu mơ hình 0.5 giây Độ xác mơ hình tập mẫu kiểm tra 99.52% (tập mẫu kiểm tra hoàn toàn độc lập với tập mẫu dùng để ước lượng) Sai số ước lượng cuối mơ hình tập liệu kiểm tra ( ) 15.76 Bình phương sai số mơ hình ( ) 13.96 (t) Hình 25 Kết mơ hình ARX với tham số na=0,nb=[1 1],nk=[1 0] IV Thi công thực nghiệm Sơ đồ khối hệ thống gồm khối thể Hình Trang Hình 26 Sơ đồ hệ thống Các giá trị dịng điện động chạy khơng tải thể Hình 10 Hình 29 Các giá trị điện áp động Hình 13 14 thể giá trị tốc độ động hoạt động khơng tải động hoạt động có tải Hình 27 Các giá trị dịng điện động khơng tải Hình 30 Các giá trị tốc độ động Hình 11 thể giá trị dịng điện động hoạt động có tải hoạt động khơng tải Hình 28 Các giá trị điện áp động có tải Các giá trị điện áp động thể Hình 12 Hình 31 Các giá trị tốc độ động hoạt động có tải Trong q trình thực đo lường, yếu tố tác động bên tác động vào làm cho kết thu bị sai số Ta thấy rõ ràng vấn đề từ Hình 10 Hình 11 Các giá trị ta thu có biên độ dao động cao Nếu giá trị không xử lý mà đưa trực tiếp vào mơ hình dẫn đến sai số cho mơ hình Tran g4 thực trình ước lượng Trong báo này, lọc Kalman phương pháp áp dụng để xử lý vấn đề nhiễu thực trình thu thập liệu cho mơ hình Kết sử dụng lọc Kalman thể Hình 15 Hình 16 Hình 34 Tốc độ động khơng tải Hình 32 Các giá trị dịng điện có lọc trường hợp động hoạt động không tải Hình 35 Tốc độ động hoạt động có tải Hình 19 thể sai số kết ước lượng so với kết đo từ Encoder Hình 33 Các giá trị dịng điện có lọc trường hợp động hoạt động có tải Sau thu thập xử lý liệu từ động cơ, chúng đưa vào vi điều khiển thực việc tính tốn hệ số mơ hình ARX Hình 17 Hình 18 thể kết ước lượng hệ thống so với kết đo sử dụng Encoder Hình 36 Sai số tốc độ Encoder mơ hình ARX có tải V Kết luận hướng phát triển Từ kết Hình 17 Hình 18 ta thấy mơ hình ước lượng ARX ước lượng tốc độ xấp xỉ gần với tốc độ từ Encoder Vì thế, kết luận mơ hình ARX thay Encoder Trong tương lai, đề tài sử dụng phương pháp ước lượng khác mạng Neural để hệ thống tự thích nghi có thay đổi xảy hệ thống Ngồi Tran g5 ra, hệ thống phát triển lên để ước lượng tốc độ điều khiển cho động không chổi than Bên cạnh đó, đề tài tích hợp chức cảnh báo cố, ghi nhận thay đổi bất thường xảy hệ thống truyền liệu máy chủ thơng qua giao thức không dây WIFI, Lora,… industrial Processes, Springer 2006, page 18-96 Tác giả chịu trách nhiệm viết: Họ tên: Nguyễn Đức Tài Đơn vị: Công ty TNHH Hella Việt Nam Điện thoại:0343974517 Email: tainguyen189@gmail.com TÀI LIỆU THAM KHẢO [1] R Krishnan, Permanent magnet synchronous and brushless DC motor drives Boca Raton: CRC Press, 2010 [2] Joachim Holtz, Sensorless Control of Induction Motor Drives IEEE Proc., 90 (8) (2002), pp 1359-1394 [3] Yon-Ping Chen, Dynamic System Simulation and Implementationon, Spring 2015, page 2-1 to 2-7 [4] Luigi Fortuna, Salvatore Graziani, Alessandro Rizzo, Maria G.Xibilia, Soft Sensors for Monitoring and Control of XÁC NHẬN CỦA GVHD PGS.TS NGÔ VĂN THUYÊN Tran g6 ... phương pháp đo tốc độ động gián tiếp nêu ra, người viết định chọn đề tài ? ?Thiết kế cảm biến mềm đo tốc độ động DC? ?? Mục tiêu giới hạn đề tài Mục tiêu đề tài thiết kế bô ước lượng tốc độ sử dụng... lượng tốc độ động DC Hệ thống sử dụng mơ hình ARX với đại lượng dịng điện, điện áp tốc độ trước để ước lượng tốc độ động DC Trong trình thực nghiệm động DC thực tế với nhiều trạng thái tải khác động. .. THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ LUẬN VĂN THẠC SĨ ĐẶ NGUYTHÀNHỄĐỨCNHÂNTÀI THIẾĐIỀTKUẾKHIỆỂNTHỐĐỘNGNGCẢCƠM KHÔNGBIẾMỀMĐỒĐONG TỐCBỘ ĐỘ KHÔNG DÙNG CẢM BIẾN TỐC ĐỘ ĐỘNG CƠ DC NGÀNH: KỸ THUẬT ĐIỆN

Ngày đăng: 30/12/2021, 16:38

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

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

Tài liệu liên quan