Luận văn Điều khiển động cơ không đồng bộ ba pha theo phương pháp Sinpwm, sử dụng vi điều khiển dsPIC30F6010
MỤC ĐÍCH LUẬN VĂN:
• Tìm hiểu và thiết kế bộ biến tần truyền thống ( 6 khóa) ba pha điều khiển ĐCKĐB
theo phương pháp V/f và điều chế SINPWM .
• Khảo sát nguyên tắc đóng cắt các khóa bán dẩn trong bộ nghịch lưu .
• Kiểm tra, đánh giá dạng sóng điện áp ngõ ra.
• Nguyên cứu giải thuật và viết chương trình điều khiển.
PHƯƠNG PHÁP NGHIÊN CỨU
• Tham khảo và tổng hợp tài liệu trong và ngoài nước.
• Tiến hành thực nghiệm trên mô hình thực tế.
• Theo dõi, đánh giá, nhận xét các thông số thực nghiệm.
• Xử lý số liệu, tính toán, và viết báo cáo.
THỜI GIAN THỰC HIỆN
Thời gian thực hiện luận văn: 3/9/2006 – 30/12/2006.
ĐỊA ĐIỂM THỰC HIỆN
Nghiên cứu này được thực hiện bằng các mô hình ở qui mô phòng thí nghiệm Điện tử
công suất đặt tại trường Đại học Bách Khoa TP Hồ Chí Minh.
Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA NGHIÊN CỨU
• Đề xuất mô hình biến tần điều khiển động cơ không đồng bộ ba pha dùng trong các hệ
thống truyền động với giá thành thấp, đáp ứng được các yêu cầu cơ bản của thực tế.
• Do hạn chế về mặt thời gian, điều kiện kinh tế nên trong phạm vi luận văn tốt nghiệp
này chỉ dừng lại ở điều khiển vòng hở động cơ không đồng bộ ba pha và hi vọng đề
tài sẽ được tiếp tục phát triển trong tương lai .
Tóm tắt nội dung tài liệu: Luận văn Điều khiển động cơ không đồng bộ ba pha theo phương pháp Sinpwm, sử dụng vi điều khiển dsPIC30F6010
i ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂN ĐỘNG CƠ KHÔNG ĐỒNG BỘ BA PHA THEO PHƯƠNG PHÁP SINPWM, SỬ DỤNG VI ĐIỀU KHIỂN dsPIC30F6010 SVTH : LÊ TRUNG NAM CBHD : TS. LÊ MINH PHƯƠNG MSSV : 40201632 BỘ MÔN : ĐIỆN - ĐIỆN TỬ TP Hồ Chí Minh, 01/2007 ii NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tp Hồ Chí Minh, tháng 1 năm 2007 Giáo viên hướng dẫn iii NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tp Hồ Chí Minh, tháng 1 năm 2007 Giáo viên phản biện iv LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành nhất đến quý Thầy Cô trường Đại Học Bách Khoa Tp. Hồ Chí Minh, những người đã dìu dắt tôi tận tình, đã truyền đạt cho tôi những kiến thức và kinh nghiệm quý báu trong suốt thời gian tôi học tập tại trường. Tôi xin trân trọng gửi lời cảm ơn đến tất cả các Thầy, Cô Khoa Điện-Điện Tử đặc biệt là thầy Lê Minh Phương, thầy Phan Quốc Dũng ,thầy Trần Thanh Vũ đã tận tình hướng dẫn, giúp đỡ, tạo mọi điều kiện thuận lợi để tôi hoàn thành tốt luận văn tốt nghiệp này. Tôi xin cảm ơn gia đình tôi, những người thân đã cho tôi những điều kiện tốt nhất để học tập trong suốt thời gian dài. Ngoài ra tôi xin gửi lời cảm ơn đến bạn gái tôi(H.T.T), đến tất cả những người bạn của tôi, những người đã cùng gắn bó, cùng học tập và giúp đỡ tôi trong những năm qua cũng như trong suốt quá trình thực hiện luận văn tốt nghiệp. Tp. Hồ Chí Minh, tháng 1 năm 2007 v MỤC LỤC CHƯƠNG 1: GIỚI THIỆU VỀ ĐỘNG CƠ KHÔNG ĐỒNG BỘ ................ 1 1.1.Tổng quan về máy điện không đồng bộ ........................................................................ 2 1.1.1 Nguyên lý làm việc:............................................................................................... 2 1.1.2 Cấu tạo .................................................................................................................. 3 1.2 Ứng dụng của động cơ không đồng bộ.......................................................................... 4 1.3 Khả năng dùng động cơ xoay chiều thay thế máy điện một chiều: ................................ 5 1.4 Kết luận: ...................................................................................................................... 6 CHƯƠNG 2: LÝ THUYẾT VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN................ 7 2.1 Giới thiệu về biến tần nguồn áp điều khiển theo phương pháp V/f ................................ 8 2.2.1 Phương pháp E/f.................................................................................................... 8 2.2.2 Phương pháp V/f ................................................................................................... 8 2.3 Các phương pháp thông dụng trong điều khiển động cơ không đồng bô ̣:..................... 10 2.3.1 Phương pháp điều rộng xung SINPWM............................................................... 10 2.3.1.1 Các công thức tính toán................................................................................. 12 2.3.1.2 Cách thức điều khiển..................................................................................... 13 2.3.1.3 Quy trình tính toán:....................................................................................... 14 2.3.1.4 Hiệu quả của phương pháp điều khiển :......................................................... 15 2.3.2 Phương pháp điều chế vector không gian ( Space Vector):.................................. 17 2.3.2.1 Thành lập vector không gian: ........................................................................ 17 2.3.2.2 Tính toán thời gian đóng ngắt: ...................................................................... 20 2.3.2.3 Phân bố các trạng thái đóng ngắt:.................................................................. 22 2.3.2.4 Kỹ thuật thực hiện điều chế vector không gian: ............................................. 22 2.3.2.5 Giản đồ đóng ngắt các khóa để tạo ra Vector Vs trong từng sector: .............. 22 CHƯƠNG 3 : CẤU TẠO VÀ CÁC THÔNG SỐ PHẦN CỨNG................. 25 3.1 Sơ đồ khối của mạch điều khiển động cơ: ................................................................... 27 3.2 Giới thiệu chi tiết các khối điều khiển:........................................................................ 27 3.2.1 Mạch lái .............................................................................................................. 27 3.2.2 Mạch cách ly ....................................................................................................... 31 3.2.3 Mạch MOSFETs.................................................................................................. 31 3.2.4 Mạch chỉnh lưu.................................................................................................... 33 3.2.4.1 Bộ chỉnh lưu: ................................................................................................ 33 3.2.4.2 Phương pháp chỉnh lưu : ............................................................................... 33 CHƯƠNG 4 : SƠ ĐỒ CẤU TẠO MẠCH ĐIỀU KHIỂN ............................ 34 4.1 Sơ đồ mạch cách ly .................................................................................................... 35 4.2 Sơ đồ mạch lái............................................................................................................ 37 4.3 Sơ đồ mạch động lực .................................................................................................. 38 4.4 Sơ đồ mạch điều khiển ............................................................................................... 39 4.4.1 Khối điều khiển ................................................................................................... 39 4.4.2 Khối giao tiếp máy tính ....................................................................................... 40 4.4.3 Khối hiển thị........................................................................................................ 40 4.4.4 Khối nút bấm....................................................................................................... 41 CHƯƠNG 5: GIỚI THIỆU VỀ DSPIC 6010................................................ 42 5.1 Tồng quan về vi điều khiển dsPIC30F6010 ................................................................ 43 5.2 Các đặc điểm đặc biệt ở họ MCU dsPic-6010: ............................................................ 44 5.3 Giới thiệu khái quát về cấu trúc phần cứng: ................................................................ 45 vi 5.4 Khái quát về các thanh ghi làm việc ........................................................................... 50 5.4.1 Các thanh ghi điều khiển : ................................................................................... 50 5.4.2 Thanh ghi TRIS: .................................................................................................. 50 5.4.3Thanh ghi PORT: ................................................................................................. 51 5.4.4Thanh ghi LAT:.................................................................................................... 51 5.5 Giới thiệu về các module cơ bản................................................................................. 52 5.5.1 Module Timer :.................................................................................................... 52 5.5.1.1 Module Timer 1 ............................................................................................ 52 5.5.1.2 Timer2/3 module: ......................................................................................... 54 5.5.1.3 Timer4/5 module : ........................................................................................ 57 5.5.2 Module AD: ........................................................................................................ 59 5.5.2.1Giải thích hoạt động......................................... ... learLCD(); XlcdCursor(1,1); printf(" MANUAL "); XlcdCursor(2,14); printf("RUN"); XlcdCursor(2,1); printf("AD:"); while(!Run) { AD=ReadADC10(0); ADC=AD*0.05859375; XlcdCursor(2,4); printf("%2.0d",ADC); //Print Value from Variable Resistor if(BACK==0) { Delay_Cycle(800000); goto MODE_STATUS; } } ClearLCD(); XlcdCursor(1,1); printf("M1 RUNNING..."); XlcdCursor(2,1); printf("F:"); goto loop1; }//end if mode 1 if(Mode==2) { ClearLCD(); //Temp_Mode_1=0; XlcdCursor(1,1); printf(" AUTO_1 "); XlcdCursor(2,1); printf("F_Ref:"); Mode2_Loop: Temp_Mode_1=Temp_Value; //Restore Temp_Mode_1 Value while(ENTER) { if(BACK==0) { Delay_Cycle(800000); goto MODE_STATUS; } if(UP==0) PHỤ LỤC { Delay_Cycle(150000); if(UP==0) { Temp_Mode_1=Temp_Mode_1+1; if(Temp_Mode_1>60) { Temp_Mode_1=0; } Delay_Cycle(100000); } } if(DOWN==0) { Delay_Cycle(150000); if(DOWN==0) { Temp_Mode_1=Temp_Mode_1-0.5; if(Temp_Mode_1<0) { Temp_Mode_1=60; } Delay_Cycle(100000); } } //Temp_Value=Temp_Mode_1; XlcdCursor(2,7); printf("%2.0lf ", Temp_Mode_1); }//end while Temp_Value=Temp_Mode_1; //Save Temp_Mode_1 Value ClearLCD_2(); XlcdCursor(2,1); printf("Loading"); Delay_Cycle(300000); XlcdCursor(2,8); printf(".."); Delay_Cycle(300000); XlcdCursor(2,10); printf(".."); Delay_Cycle(300000); XlcdCursor(2,12); printf(".."); Delay_Cycle(300000); XlcdCursor(2,14); printf("..."); Delay_Cycle(300000); ClearLCD_2(); XlcdCursor(2,1); printf("F:%2.0lf",Temp_Mode_1); XlcdCursor(2,14); printf("RUN"); Temp_Mode_1=Temp_Mode_1/0.05859375; while(!Run) { XlcdCursor(2,14); //Blink "RUN" character till it is pressed printf("RUN"); PHỤ LỤC Delay_Cycle(200000); XlcdCursor(2,14); printf(" "); Delay_Cycle(200000); if(BACK==0) { Delay_Cycle(500000); ClearLCD_2(); XlcdCursor(2,1); printf("F_Ref:"); XlcdCursor(2,7); printf("%2.0lf",Temp_Mode_1); goto Mode2_Loop; } } XlcdCursor(2,14); printf(" "); XlcdCursor(1,1); printf("M2 RUNNING..."); XlcdCursor(2,9); printf("F_Req:%2.0lf",Temp_Value); goto loop1; }//end if mode 2 if(Mode==4) { ClearLCD(); XlcdCursor(1,1); printf(" PC_CONTROL "); XlcdCursor(2,14); printf("RUN"); while(!Run) { if(BACK==0) { Delay_Cycle(700000); goto MODE_STATUS; } } ClearLCD_2(); XlcdCursor(2,1); printf("M2 RUNNING"); PC_Value=0; Uart_Setup(); goto loop1; }//end if mode 4 loop1: PWMSetup(); while(1) { switch(Run) //Waitting for Run Button Is Pressed { case 1: //Run Button is not pressed switch(Mode) { case 1: ADC_Result=ReadADC10(0); XlcdCursor(2,3); PHỤ LỤC ADC_Result=ReadADC10(0); printf("%2.0lf", F_req); break; case 2: ADC_Result=Temp_Mode_1; XlcdCursor(2,3); printf("%2.0lf", F_req); break; case 3: if(CHANGE==0) { Delay_Cycle(70000); if(CHANGE==0); { Change_Speed=!Change_Speed; Delay_Cycle(70000); } } if(Change_Speed==1) { ADC_Result=Temp_2; } else { ADC_Result=Temp_1; } XlcdCursor(2,3); printf("%2.0lf", F_req); break; case 4: ADC_Result=PC_Value/0.05859375; int_F_req=F_req; delta=F_req-int_F_req; if(delta>0.5) { int_F_req=int_F_req+1; } XlcdCursor(2,1); printf("F:%2.0lf", F_req); WriteUART1(int_F_req); break; } break; case 0: //Run Button is not pressed ADC_Result=0; XlcdCursor(2,3); printf("%2.0lf", F_req); if(F_req==0 && Stop==1) { CloseMCPWM(); // Disable PWM module Stop=0; Change_Speed=0; Delay_Cycle(800000); goto LOAD_PARAMETER; } if(F_req==0 && Menu_Flag==1) { CloseMCPWM(); // Disable PWM module Menu_Flag=0; // Clear Menu_Flag PHỤ LỤC Change_Speed=0; Delay_Cycle(1000000); PC_Value=0; PC_Value_Temp=0; Direction=1; goto LCD_Loop; //Return to main menu } if(F_req==0 && Reset==1) { CloseMCPWM(); // Disable PWM module Reset=0; // Clear Menu_Flag Change_Speed=0; ClearLCD(); XlcdCursor(1,1); printf("RESET ."); Delay_Cycle(400000); XlcdCursor(1,8); printf(".."); Delay_Cycle(400000); printf(".."); Delay_Cycle(400000); XlcdCursor(1,12); printf(".."); Delay_Cycle(400000); XlcdCursor(1,14); printf("..."); Delay_Cycle(1000000); goto Main; //Return to main menu } break; } } } CODE TRONG CHƯƠNG TRÌNH GIAO TIẾP MÁY TÍNH Dim Y As Double 'varible in chart drawing Public Running As Integer Public dir As Integer Public StsRun As Byte Dim chuoichay As String Dim Voltage_Temp As Integer Dim strtemp As String 'varible ONCOMM event Dim strdata As String Dim datavu As String Dim intdigvu As Integer Dim digdata As Integer ================================================================================ Private Sub Change_Button_Click() MSComm1.Output = Chr(70) txt_f_request.SetFocus If dir = 0 Then dir = 1 Else dir = 0 End If End Sub ============================================================================== Private Sub Exit_Button_Click() PHỤ LỤC MSComm1.Output = Chr(0) 'send stop signal for PIC to stop motor MSComm1.PortOpen = False 'Dong cong End End Sub =============================================================================== Private Sub Form_Load() chuoichay = "LUAN VAN TOT NGHIEP 2006 - 2007 " 'Close Serial Port if it have been already opened If frmMain.MSComm1.PortOpen = True Then frmMain.MSComm1.PortOpen = False End If frmMain.MSComm1.PortOpen = True MSComm1.Output = Chr(0) frmMain.MSComm1.PortOpen = False 'Cau hinh lai Serial Port frmMain.MSComm1.RThreshold = 1 'Khi nhan 1 ki tu don se phat sinh su kien CommEvent frmMain.MSComm1.CommPort = 1 'Dung PORT1 frmMain.MSComm1.InputLen = 0 'Doc toan bo buffer frmMain.MSComm1.Settings = "9600,n,8,1" frmMain.MSComm1.PortOpen = True 'Mo cong 'Form hien giua man hinh frmMain.Move (Screen.Width - frmMain.Width) / 2, (Screen.Height - frmMain.Height) / 2 Timer2.Enabled = True Timer2.Interval = 1000 Label8.Caption = Date ============================================================================== ' Chart SETTING Strip1.CursorColor = RGB(255, 0, 0) 'Left = (Main.Width - Width) / 2 'Top = (Main.Height - Height) / 2 Xx = Now For i = 0 To Strip1.Variables - 1 Strip1.VariableID = i '.1 seconds Strip1.VariableDeltaX = 1 / 24 / 60 / 60 / 10 '.1 seconds interval Strip1.VariableLastX = Xx 'Set LastX to current time Next Strip1.XTicMode = 1 'Set X Mode to Date/Time Display '60 seconds Strip1.XSpan = 1 / 24 / 60 / 60 * 60 '60 seconds of display on plot End Sub =============================================================================== Private Sub MSComm1_OnComm() With frmMain.MSComm1 Select Case .CommEvent Case comEvReceive 'Nhan du lieu tu vi dieu khien strtemp = .Input strdata = Left(strtemp, 1) datavu = Right(strtemp, 1) digdata = Asc(strdata) intdigvu = Asc(datavu) txt_f_out = digdata PHỤ LỤC Voltage_Temp = digdata * 3.667 Voltage = Voltage_Temp End Select End With End Sub ========================================================================= Private Sub ProgressBar1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub ========================================================================= Private Sub Timer1_Timer() Strip1.AddXY 0, Now, Y Y = digdata End Sub ============================================================================= Private Sub cmdStart_Click() j = txt_f_request.Text If (j > 60) Then MsgBox ("Frequency must be in range from 0 to 60 Hz") txt_f_request = "" txt_f_request.SetFocus Else 'Status = "Motor Is Running ........" StsRun = 1 MSComm1.Output = Chr(j) txt_f_request.SetFocus End If End Sub ============================================================================== Private Sub Cmd_STOP_Click() MSComm1.Output = Chr(0) Status = "Stopping" StsRun = 0 txt_f_request.SetFocus End Sub =============================================================================== Private Sub Form_Unload(Cancel As Integer) MSComm1.Output = Chr(0) 'send stop signal for PIC to stop motor MSComm1.PortOpen = False 'Dong cong End Sub =============================================================================== Private Sub Timer2_Timer() Label7.Caption = Time End Sub =============================================================================== Private Sub Timer3_Timer() If StsRun = 1 Then Running = Running + 5 If (Running > 100) Then Running = RunProgressBar.Min End If RunProgressBar.Value = Running + RunProgressBar.Min Else If txt_f_out = 0 Then RunProgressBar.Value = 0 Else Running = Running + 5 If (Running > 100) Then Running = RunProgressBar.Min PHỤ LỤC End If RunProgressBar.Value = Running + RunProgressBar.Min End If End If End Sub =============================================================================== Private Sub Timer4_Timer() If (StsRun = 1) Then Status = "Running" End If If (txt_f_out = 0) Then Status = "Stopped!!" End If If dir = 0 Then Direction = "Forward" Else Direction = "Reverse" End If End Sub =============================================================================== Private Sub Timer5_Timer() Dim chuoi1, chuoi2 As String chuoi1 = Left(chuoichay, 1) chuoi2 = Right(chuoichay, Len(chuoichay) - 1) frmMain.Caption = chuoi2 + chuoi1 chuoichay = chuoi2 + chuoi1 End Sub PHỤ LỤC TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO TRONG NƯỚC [1] TS. Phan Quốc Dũng Tô Hữu Phước (2003). Truyền Động Điện. Nhà xuất bản Đại học Quốc gia TP.Hồ Chí Minh [2] TS. Nguyễn Văn Nhờ (2003). Cơ Sở Truyền Động Điện. Nhà xuất bản Đại học Quốc gia TP.Hồ Chí Minh [3] TS. Nguyễn Văn Nhờ (2003). Điện Tử Công Suất 1. Nhà xuất bản Đại học Quốc gia TP.Hồ Chí Minh TÀI LIỆU THAM KHẢO NƯỚC NGOÀI [4] 16bit_Language_Tools_Libraries. Microchip Techology Inc [5] Prof. Ali Keyhani, Pulse-Width Modulation (PWM) Techniques lecture 25, Department of Electrical and Computer EngineeringThe Ohio State University [6] dsPic® Language Tools Getting Started. Microchip Techology Inc [7] MPLAB® C30 _ C Compiler Users Guide . Microchip Techology Inc [8] dsPIC30F6010 Data Sheet High-Performance Digital Signal Controllers . Microchip Techology Inc [9] dsPIC30F Family Reference Manual. Microchip Techology Inc [10] An Introduction To AC Induction Motor Control Using The dsPIC30F MCU. Microchip Techology Inc WEBSITE THAM KHẢO
File đính kèm:
- luan_van_dieu_khien_dong_co_khong_dong_bo_ba_pha_theo_phuong.pdf