Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
3,24 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT ĐÀO HIẾU ỨNG DỤNG VI ĐIỀU KHIỂN VÀO BÀI TOÁN ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ BA PHA KHÔNG ĐỒNG BỘ THEO MỐI QUAN HỆ GIỮA TẦN SỐ LƯỚI ĐIỆN VÀ ĐIỆN ÁP (U/F) LUẬN VĂN THẠC SỸ KỸ THUẬT Hà nội, 2009 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT ĐÀO HIẾU ỨNG DỤNG VI ĐIỀU KHIỂN VÀO BÀI TOÁN ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ BA PHA KHÔNG ĐỒNG BỘ THEO MỐI QUAN HỆ GIỮA TẦN SỐ LƯỚI ĐIỆN VÀ ĐIỆN ÁP (U/F) Chuyên ngành : Tự Động Hóa Mã số : 60.52.60 LUẬN VĂN THẠC SỸ KỸ THUẬT Người hướng dẫn khoa học TS NGUYỄN ĐỨC KHOÁT Hà nội, 2009 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình riêng tơi Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn Đào Hiếu MỤC LỤC MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU MỞ ĐẦU 10 Chương ĐỘNG CƠ KHÔNG ĐỒNG BỘ VÀ CÁC PHƯƠNG PHÁP THAY ĐỔI TỐC ĐỘ 13 1.1 Giới thiệu động không đồng (ĐCKĐB) 13 1.2 Các phương pháp thay đổi tốc độ động 17 1.2.1 Điều chỉnh điện áp cấp vào stato 18 1.2.2 Điều chỉnh điện trở mạch stato (R1) 19 1.2.3 Điều chỉnh điện trở mạch roto (R2) 20 1.2.4 Điều chỉnh tần số nguồn cấp cho động 21 Chương NGUYÊN LÝ ĐIỀU KHIỂN V/f 28 2.1 Nguyên lý điều khiển V/f 28 2.2 Các phương pháp thông dụng để thay đổi tần số điều khiển động không đồng 30 2.2.1 Phương pháp điều chế độ rộng xung SINPWM 31 2.2.2 Phương pháp điều chế vectơ không gian 34 Chương ỨNG DỤNG MATLAB – SIMULINK VÀ VI ĐIỀU KHIỂN TRONG BÀI TOÁN ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ 43 3.1 Thuật toán phát xung điều khiển theo phương pháp PWM 43 3.2 Mô Matlab hệ thống điều khiển nghịch lưu theo phương pháp PWM 44 3.3 Ứng dụng vi điều khiển toán điều khiển tốc độ động 47 3.3.1 Nguyên lý điều khiển điều khiển tốc độ ĐCKĐB 47 3.3.2 Lựa chọn vi điều khiển 48 3.2.3 Thực thuật toán phát xung điều khiển 49 3.3.4 Lưu đồ thuật toán chương trình điều khiển 51 3.3.5 Sơ đồ mạch điều khiển phát xung 57 KẾT LUẬN 60 TÀI LIỆU THAM KHẢO 61 PHỤ LỤC 62 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Nguyên lý hoạt động động không đồng 13 Hình 1.2 Sơ đồ thay động không đồng 14 Hình 1.3 Đặc tính - điện động không đồng 15 Hình 1.4 Đặc tính động khơng đồng 16 Hình 1.5 Đặc tính ĐCKĐB thay đổi điện áp cấp vào stato 18 Hình 1.6 Mơ hình cấu trúc hệ điều khiển ĐCKĐB cách thay đổi điện áp stato 18 Hình 1.7 Sơ đồ mạch đấu điện trở phụ stato 19 Hình 1.8 Đặc tính ĐCKĐB đấu thêm điện trở phụ stato 20 Hình 1.9 Sơ đồ mạch đấu thêm điện trở phụ roto 20 Hình 1.10 Đặc tính ĐCKĐB đấu thêm điện trở phụ roto 20 Hình 1.11 Đặc tính ĐCKĐB thay đổi tần số trường hợp Mc=const 22 Hình 1.12 Đặc tính ĐCKĐB thay đổi tần số trường hợp Mc có dạng hypebol 23 Hình 1.13 Đặc tính ĐCKĐB thay đổi tần số trường hợp Mc tỉ lệ với bình phương tốc độ (Mc= k. 2) 23 Hình 1.14 Sơ đồ ba pha biến tần trực tiếp 25 Hình 1.15 Sơ đồ khối biến tần gián tiếp 25 Hình 1.16 Sơ đồ nguyên lý nghịch lưu nguồn áp 26 Hình 1.17 Sơ đồ nguyên lý nghịch lưu nguồn dòng 26 Hình 1.18 Sơ đồ cấu trúc nghịch lưu cầu ba pha 26 Hình 2.1 Quan hệ mômen điện áp theo tần số điều khiển V/f 30 Hình 2.2 Nguyên lý điều chế độ rộng xung đơn cực 32 Hình 2.3 Góc chuyển trạng thái van bán dẫn 33 Hình 2.4 Nguyên lý điều chế độ rộng xung lưỡng cực 34 Hình 2.5 Mơ hình đơn giản ĐCKĐBBP rotor lồng sóc 35 Hình 2.6 Thiết lập vector khơng gian từ đại lượng ba pha 36 Hình 2.7 Biểu diễn dịng stator dạng vector khơng gian với phần tử isα isβ thuộc hệ toạ độ stator (TĐST) cố định 36 Hình 2.8 Sơ đồ biến tần nghịch lưu áp khóa (MOSFETs IGBTs) 37 Hình 2.9 Tám vector ba cặp van bán dẫn biến tầntạo nên; Q1 Q2 :các góc phần tư ; S1 S6 : góc phần sáu 38 Hình 2.10 Thực vector u s hai vector điện áp chuẩn 39 Hình 2.11 Biểu đồ xung vector điện áp thuộc góc phần sáu thứ S1 40 Hình 2.12a Biểu đồ xung kích thích thuộc S2 41 Hình 2.12b Biểu đồ xung kích thích thuộc S3 41 Hình 2.12c Biểu đồ xung kích thích thuộc S4 41 Hình 2.12d Biểu đồ xung kích thích thuộc S5 41 Hình 2.12e Biểu đồ xung kích thích thuộc S6 42 Hình 3.1 Nguyên lý phát xung điều khiển 43 Hình 3.2 Mơ hình mơ nghịch lưu cầu ba pha nguồn áp 45 Hình 3.3 Tốc độ góc dịng phần ứng động f = fđm = 50Hz 46 Hình 3.4 Tốc độ góc dịng phần ứng động f = fđm = 25Hz 46 Hình 3.5 Tốc độ góc dịng phần ứng động f = fđm = 16,67Hz 46 Hình 3.6 Lưu đồ thuật tốn tổng qt chương trình điều khiển 52 Hình 3.7 Lưu đồ thuật tốn chương trình phát xung điều khiển pha A 53 Hình 3.8 Lưu đồ thuật tốn chương trình điều khiển hệ trạng thái chờ 54 Hình 3.9 Lưu đồ thuật tốn chương trình ngắt Timer 16 bit 56 Hình 3.10 Cấu tạo mạch điều khiển 59 Hình A.1 Sơ đồ khối cấu trúc PSoC………………………………………61 Hình A.2 Cấu trúc liên kết CPU với nhớ (cấu trúc Harvard) 67 Hình A.3 Sơ đồ nguyên lý định thời 67 Hình A.4 Sơ đồ nguyên lý đếm 68 Hình A.5 Sơ đồ nguyên lý điều chế độ rộng xung 68 Hình A.6 Sơ đồ nguyên lý tạo dãy CRC 69 Hình A.7 Sơ đồ nguyên lý truyền thông UART 70 Hình A.9 Sơ đồ nguyên lý khuếch đại đảo 70 Hình A.10 Sơ đồ nguyên lý khuếch đại khơng đảo PGA 71 Hình A.11 Sơ đồ nguyên lý so sánh ngưỡng 71 Hình A.12 Sơ đồ nguyên lý chuyển đổi ADC 12-bit Incremental 72 Hình A.13 Sơ đồ nguyên lý chuyển đổi DAC 72 Hình A.14 Sơ đồ nguyên lý lọc thông thấp 73 Hình A.15 Sơ đồ nguyên lý lọc thông giải 73 Hình A.16 Sơ đồ nguyên lý chọn đầu vào 74 Hình A.17 Sơ đồ nguyên lý chọn điện áp tham chiếu 74 DANH MỤC CÁC BẢNG BIỂU Bảng 2.1 Các khả nối pha động với UMC 38 Bảng 2.2 Trạng thái vector u1 , u u 40 Bảng 3.1 Độ rộng xung điều khiển khoảng thời gian T tương ứng (đơn vị %) 49 Bảng A.1 Các ghi CPU 66 10 MỞ ĐẦU Tính cấp thiết đề tài Ngày vấn đề tiết kiệm lượng mối quan tâm hàng đầu tất lĩnh vực, ngành nghề yêu cầu điều khiển lại ngày phức tạp Đây hai mối quan tâm hàng đầu lĩnh vực điều khiển truyền động điện Nói cách cụ thể hơn, vấn đề tiết kiệm lượng điều khiển tốc độ động Đây lý đời áp dụng phổ biến công nghiệp biến tần Tuy nhiên nay, giá thành biến tần cao so với nhiều tốn ứng dụng Do cần thiết phải có thiết bị vừa đảm bảo ưu điều khiển biến tần lại vừa phải có giá thành hợp lý Đó lý đời khái niệm biến đổi tần số điều khiển tốc độ động Mục tiêu nghiên cứu Tìm hiểu đặc tính làm việc động điện xoay chiều ba pha Tìm hiểu phương pháp điều khiển tốc độ động mơ hình tốn học chúng Thiết kế mạch điều khiển Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu thiết kế mạch điều khiển cho điều khiển tốc độ động điện xoay chiều ba pha Phạm vi nghiên cứu nghiên cứu ứng dụng cho động khơng đồng ba pha roto lồng sóc Nội dung nghiên cứu Xây dựng mối quan hệ đại lượng vật lý : momen tải, tốc độ động cơ, điện áp tần số làm việc Xây dựng thuật tốn điều khiển phù hợp Mơ thuật toán Lựa chọn vi điều khiển thực thuật toán 86 /////////////////////// void _Set_para(void){ LCD_1_Control(LCD_1_DISP_CLEAR_HOME); while(m_Stop){ // dat thong so , nhap ma m_Ready=FALSE; while(1){ LCD_1_Position(0,0); LCD_1_PrCString("Nhap ma "); LCD_1_Position(1,2); LCD_1_PrCString("0000"); while(1){ // nhap a m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,5); LCD_1_PrCString(" "); _Display(5); if(m_Start) break; if(m_Stop)goto _Out; } a1=m_num; LCD_1_Position(1,2); LCD_1_PrCString("000*"); m_num = 0; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,4); LCD_1_PrCString(" "); _Display(4); // nhap b 87 if(m_Start) break; if(m_Stop)goto _Out; } b1=m_num; LCD_1_Position(1,2); LCD_1_PrCString("00**"); m_num = 0; while(1){ // nhap c m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,3); LCD_1_PrCString(" "); _Display(3); if(m_Start) break; if(m_Stop)goto _Out; } c1=m_num; LCD_1_Position(1,2); LCD_1_PrCString("0***"); m_num = 0; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,2); LCD_1_PrCString(" "); _Display(2); if(m_Start) break; if(m_Stop) goto _Out; } // nhap d 88 d1=m_num; m_Start=FALSE; m_num = 0; LCD_1_Position(1,0); LCD_1_PrCString(" **** "); if(a1==a && b1==b && c1==c && d1==d){ m_Para=TRUE; break; } else { LCD_1_Control(LCD_1_DISP_CLEAR_HOME); while(1){ LCD_1_Position(0,0); LCD_1_PrCString(" sai ma "); if(m_Stop) break; } } } LCD_1_Control(LCD_1_DISP_CLEAR_HOME); while(m_Para) { LCD_1_Position(0,0); LCD_1_PrCString(" Umax "); m_num=u3; _Display(3); m_num=u2; _Display(4); // Dat dien ap max 89 _Back1: m_num=u1; while(1){ m_Start=FALSE; LCD_1_Position(1,5); LCD_1_PrCString(" "); _Display(5); u1=m_num; if(m_Start) break; } config[4]=u1; m_num=u3; _Display(3); _Back2: m_num=u2; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,4); LCD_1_PrCString(" "); _Display(4); u2=m_num; if(m_Start) break; if(m_Stop)goto _Back1; } config[5]=u2; m_num = u3; while(1){ m_Start=FALSE; 90 m_Stop=FALSE; LCD_1_Position(1,3); LCD_1_PrCString(" "); _Display(3); u3=m_num; if(m_Start) break; if(m_Stop)goto _Back2; } config[6]=u3; LCD_1_Control(LCD_1_DISP_CLEAR_HOME); LCD_1_Position(0,0); LCD_1_PrCString(" Fdm "); m_num = f2; _Display(3); _Back3: m_num = f1; while(1){ m_Start=FALSE; LCD_1_Position(1,4); LCD_1_PrCString(" "); _Display(4); f1=m_num; if(m_Start) break; } config[7]=f1; m_num = f2; while(1){ m_Start=FALSE; m_Stop=FALSE; // Dat tan so dinh muc 91 LCD_1_Position(1,3); LCD_1_PrCString(" "); _Display(3); f2=m_num; if(m_Start) break; if(m_Stop)goto _Back3; } config[8]=f2; LCD_1_Control(LCD_1_DISP_CLEAR_HOME); LCD_1_Position(0,0); LCD_1_PrCString(" ndm "); // Nhap toc dinh muc // vong/phut m_num = n4; _Display(2); m_num = n3; _Display(3); m_num = n2; _Display(4); m_num = n1; _Back4: while(1){ m_Start=FALSE; LCD_1_Position(1,5); LCD_1_PrCString(" "); _Display(5); n1=m_num; if(m_Start) break; } config[9]=n1; 92 m_num = n4; _Display(2); m_num = n3; _Display(3); m_num = n2; _Back5: while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,4); LCD_1_PrCString(" "); _Display(4); n2=m_num; if(m_Start) break; if(m_Stop)goto _Back4; } config[10]=n2; m_num = n4; _Display(2); m_num = n3; _Back6: while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,3); LCD_1_PrCString(" "); _Display(3); n3=m_num; if(m_Start) break; 93 if(m_Stop)goto _Back5; } config[11]=n3; m_num = n4; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,2); LCD_1_PrCString(" "); _Display(2); n2=m_num; if(m_Start) break; if(m_Stop)goto _Back6; } config[12]=n4; LCD_1_Control(LCD_1_DISP_CLEAR_HOME); LCD_1_Position(0,0); LCD_1_PrCString(" che "); m_num = 0; while(1){ if((m_num==0)||(m_num>1)){ m_num = 0; LCD_1_Position(1,0); LCD_1_PrCString(" nut an "); m_Mode = FALSE; } if(m_num==1){ LCD_1_Position(1,0); LCD_1_PrCString("bien tro"); 94 m_Mode = TRUE; } } LCD_1_Control(LCD_1_DISP_CLEAR_HOME); LCD_1_Position(0,0); LCD_1_PrCString(" dat ma "); m_num = 0; LCD_1_Position(1,2); LCD_1_PrCString("0000"); _Back7: while(1){ // nhap a m_Start=FALSE; LCD_1_Position(1,5); LCD_1_PrCString(" "); _Display(5); if(m_Start) break; } a=m_num; config[0]=a; LCD_1_Position(1,2); LCD_1_PrCString("000*"); _Back8: m_num = 0; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,4); LCD_1_PrCString(" "); _Display(4); // nhap b 95 if(m_Start) break; if(m_Stop)goto _Back7; } b=m_num; config[1]=b; LCD_1_Position(1,2); LCD_1_PrCString("00**"); _Back9: m_num = 0; while(1){ // nhap c m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,3); LCD_1_PrCString(" "); _Display(3); if(m_Start) break; if(m_Stop)goto _Back8; } c=m_num; config[2]=c; LCD_1_Position(1,2); LCD_1_PrCString("0***"); m_num = 0; while(1){ m_Start=FALSE; m_Stop=FALSE; LCD_1_Position(1,2); LCD_1_PrCString(" "); _Display(2); // nhap d 96 if(m_Start) break; if(m_Stop)goto _Back9; } d=m_num; config[3]=d; LCD_1_Control(LCD_1_DISP_CLEAR_HOME); LCD_1_Position(0,0); LCD_1_PrCString("luu lai?"); m_Start=FALSE; m_Stop=FALSE; while(1){ if (m_Start){ E2PROM_1_bE2Write(0,config,13,30); // luu //vao EEPROM m_Para = FALSE; m_Stop=TRUE; m_num=0; LCD_1_Position(0,0); LCD_1_PrCString(" da luu "); _Delay(20000); break; } if (m_Stop)break; } } } _Out: LCD_1_Control(LCD_1_DISP_CLEAR_HOME); } 97 ///////// NUT START ////////// void Counter8_1_ISR(void){ m_Start=TRUE; } ///////// NUT STOP ///////// void Counter8_2_ISR(void){ m_Stop=TRUE; } ///////// NUT UP /////////// void Counter8_3_ISR(void){ if(!m_Ready){ if(m_num50)m_Source=m_Source-3; Timer16_1_Stop(); PWM8_7_Stop(); m_Time = ((400000/m_F)-1)/24; Timer16_1_WritePeriod(m_Time); PWM8_7_WritePulseWidth(m_Source); Timer16_1_Start(); PWM8_7_Start(); } } } } ////////////////////////////// ///////// Hien thi so //////// ////////////////////////////// void _Display(BYTE _thutu){ 99 LCD_1_Position(1,_thutu); switch (m_num){ case 0: LCD_1_PrCString("0"); break; case 1: LCD_1_PrCString("1"); break; case 2: LCD_1_PrCString("2"); break; case 3: LCD_1_PrCString("3"); break; case 4: LCD_1_PrCString("4"); break; case 5: LCD_1_PrCString("5"); break; case 6: LCD_1_PrCString("6"); break; case 7: LCD_1_PrCString("7"); break; case 8: LCD_1_PrCString("8"); break; case 9: LCD_1_PrCString("9"); break; } } //////////////////// // CAC HAM BO TRO // //////////////////// // Set m_byte.m_bit void _Set(BYTE m_byte, BYTE m_bit){ 100 BYTE temp=1