NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MÔ HÌNH CÁNH TAY ROBOT

68 222 0
NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MÔ HÌNH CÁNH TAY ROBOT

Đ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

Mục đích điều khiển vị trí và vận tốc của động cơ Servo ứng dụng thuật toán PID. Động cơ Servo được điều khiển vị trí và vận tốc thông qua mạch điều khiển sử dụng vi điều khiển PIC và giao diện giám sát được viết bằng Visual C++. Một mô hình khảo nghiệm độ chính xác của việc điều khiển vị trí và tốc độ của động cơ Servo được thiết kế và chế tạo để kiểm tra kết quả của chương trình sử dụng thuật toán PID và giao diện hiển thị. Kết quả này được ứng dụng điều khiển cho mô hình cánh tay Robot có được vị trí và vận tốc của 3 khớp cánh tay Robot.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHỐ LUẬN TỐT NGHIỆP NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MƠ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MƠ HÌNH CÁNH TAY ROBOT Họ tên sinh viên: Phan Thiên Hồng Ngành: CƠ ĐIỆN TỬ Niên khố: 2007 – 2011 Tháng năm 2011 NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MƠ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MƠ HÌNH CÁNH TAY ROBOT Sinh viên thực PHAN THIÊN HỒNG Khóa luận đệ trình đề để đáp ứng yêu cầu cấp kỹ sư ngành Cơ Điện Tử Giáo viên hướng dẫn Th.S TRẦN THỊ KIM NGÀ Ks Huỳnh Xuân Dũng Tháng năm 2011 i LỜI CẢM TẠ Em xin trân trọng cảm ơn tất Quý Thầy / Cô trường Đại học Nơng Lâm TP.Hồ Chí Minh q thầy / Cơ khoa Cơ Khí- Cơng Nghệ trang bị cho em kiến thức quý báu giúp đỡ em suốt trình học tập trường Em xin chân thành cảm ơn Thầy / Cô môn Cơ Điện Tử giúp đỡ em nhiệt tình thời gian thực đề tài Em xin tỏ biết ơn chân thành Cô Th.s Nguyễn Lê Tường, giảng viên hướng dẫn, tận tình hướng dẫn, giúp đỡ tạo điều kiện thuận lợi để đề tài hoàn thành Anh Ks Huỳnh Xuân Dũng, kĩ sư ngành Điều Khiển Tự Động, có bảo, giúp đỡ cho em mặt kinh nghiệm để hoàn thành tốt đề tài Đặc biệt, em xin cảm ơn quý Thầy / Cô hội đồng dành thời gian nhận xét góp ý để luận văn em hoàn thiện Cuối cùng, em xin gởi lời cảm ơn đến người thân bạn bè động viên, ủng hộ tạo cho em điều kiện thuận lợi suốt trình hồn thành đề tài Thành Phố Hồ Chí Minh, ngày tháng năm 2011 Sinh viên thực Phan Thiên Hồng ii TĨM TẮT Đề tài: “Nghiên cứu thiết kế chế tạo mơ hình điều khiển vị trí vận tốc ứng dụng mơ hình cánh tay robot có sẵn” Được tiến hành môn điện tử trường Đại Nơng Lâm TP.HCM, năm 2011 Mục đích điều khiển vị trí vận tốc động Servo ứng dụng thuật toán PID Động Servo điều khiển vị trí vận tốc thơng qua mạch điều khiển sử dụng vi điều khiển PIC giao diện giám sát viết Visual C++ Một mơ hình khảo nghiệm độ xác việc điều khiển vị trí tốc độ động Servo thiết kế chế tạo để kiểm tra kết chương trình sử dụng thuật tốn PID giao diện hiển thị Kết ứng dụng điều khiển cho mơ hình cánh tay Robot có vị trí vận tốc khớp cánh tay Robot iii MỤC LỤC TRANG Trang tựa Lời cảm ơn ii Tóm tắt iii Mục lục iv Danh sách chử viết tắt vi Danh sác hình vii Danh sách bảng viii Chương .1 MỞ ĐẦU .1 1.1 Đặt vấn đề 1.2 Mục đích đề tài 1.3 Giới hạn đề tài .2 Chương .3 TỔNG QUAN .3 2.1Tổng quan điều khiển động 2.2Tổng quan 16F877A 2.2.1Giới thiệu PIC 16F877A Hình 2.1 Sơ đồ chân PIC16FxxxA .4 Hình 2.2 Sơ đồ khối PIC16F877A 2.2.2Tổ chức nhớ 2.2.3Các cổng xuất nhập PIC16F877A Hình 2.3 Sơ đồ khối Timer0 Hình 2.4 Sơ đồ khối Timer1 Hình 2.5 Sơ đồ khối Timer2 10 2.2.4CCP 10 Bảng 2.1 Các trường hợp hoạt động Timer1 Timer2 .11 Hình 2.6 Sơ đồ khối CCP (PWM mode) 12 Hình 2.7 Các tham số PWM .12 Hình 2.8 Sơ đồ khối CCP (Compare mode) 13 2.3Tổng quan động 13 Hình 2.9 Cấu tạo bên động DC 14 2.4Tổng quan encoder 15 Hình 2.10 Cấu tạo thành phần bên Encoder 16 2.5Tổng quan phần mềm Visual C++ .17 2.5.1Giới thiệu phần mềm 17 2.5.2Các bước tạo để tạo dự án Visual C++ 17 iv 2.6Phần mềm trình biên dịch PCWH sử dụng ngơn ngữ lập trình C (CCSC) .18 2.6.1Giới thiệu 18 2.6.2Các bước tạo dự án CCSC 18 2.7Tổng quan phần mềm nạp PIC Burn-E Programmer 19 2.8Giới thiệu TeeChart 19 2.8.1Giới thiệu 19 2.8.2Các bước tạo dự án 20 Chương 22 NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 22 3.1Nội dung nghiên cứu 22 3.2Linh kiện thiết bị sử dụng thiết kế điều khiển 22 3.3Phương pháp nghiên cứu 23 3.3.1Phương pháp nghiên cứu sử dụng bao gồm: 23 3.3.2Phương tiện nghiên cứu .23 3.4Phương pháp nghiên cứu điều khiển ảnh hưởng điều khiển PID: 23 3.4.1Phương pháp nghiên cứu điều khiển 23 Hình 3.1 Mơ hình điều khiển với Kgh .25 Hình 3.2 Xác định hệ số khuếch đại tới hạn 25 Bảng 3.1 Thông số điều khiển theo thực nghiệm 25 3.4.2Ảnh hưởng điều khiển PID 27 Bảng 3.2 Một số ảnh hưởng hệ số đáp ứng hệ kín 27 3.4.3Điều khiển động servo ngôn ngữ Visual C++ 27 3.4.4Điều khiển động phương pháp điều chế độ rộng xung (PWM) .27 Hình 3.3 Dạng xung PWM 28 Hình 3.4 Phương pháp PWM không thay đổi tần số 29 Hình 3.5 Phương pháp thay đổi tần số 29 Chương 29 KẾT QUẢ VÀ THẢO LUẬN 29 Hình 4.1 Sơ đồ khối điều khiển 30 Bảng 4.2 Chọn thông số PID theo Ziegler-Nichols 30 Hình 4.2 Lưu đồ giải thuật PID 31 Hình 4.3 Biểu đồ vị trí theo PID 31 Hình 4.4 Giao diện giám sát 32 Hình 4.5 Lưu đồ giải thuật PID 33 Hình 4.6 Mơ hình điều khiển .34 Hình 4.9 Mơ hình robot .35 Hình 4.10 Sơ đồ nguyên lý PIC 36 Hình 4.11 Khối nguồn điều khiển .36 Hình 4.12 Mơdun điều khiển PIC 37 Hình 4.13 Khối cách ly mạch điều khiển 38 v Bảng 4.3 Trạng thái hoạt động 74HC74 .38 Hình 4.4 Biểu đồ trạng thái 74HC74 39 Hình 4.14 Sơ đồ nguyên lý mạch cầu H 39 Hình 4.15 Mơ hình thi cơng 40 Hình 4.16 Lưu đồ giải thuật VĐK .41 Chương 45 KẾT LUẬN VÀ ĐỀ NGHỊ .45 5.1Kết luận 45 5.2Đề nghị .45 TÀI LIỆU THAM KHẢO 46 PHỤC LỤC .47 Phục lục 1: Chương trình vi điều khiển PIC .47 Phục lục 2: chương trình giám sát hệ thống 53 DANH SÁCH CÁC CHỮ VIẾT TẮT PID: Proportional–Integral–Derivative controller PIC: Programable intelligent Computer OTP: One Time Programable RISC: Reduced Intruction Set Computer EEPROM: Electrically Erasable Programmable Read-Only Memory RAM: Random Access Memory ICSPTM : In-Circuit Serial Programing CMOS: Complementary Metal-Oxide-Semiconducto SFRs: Special Function Registers GPR: General Purpose RAM PWM: Pulse-width modulation vi PSP: Parallel Slave Port MSSP Master Synchronous Serial Port ROM: Read-Only Memory VĐK: Vi điều khiển DANH SÁCH CÁC HÌNH Chương .1 MỞ ĐẦU .1 1.1 Đặt vấn đề 1.2 Mục đích đề tài 1.3 Giới hạn đề tài .2 Chương .3 TỔNG QUAN .3 2.1Tổng quan điều khiển động 2.2Tổng quan 16F877A 2.2.1Giới thiệu PIC 16F877A Hình 2.1 Sơ đồ chân PIC16FxxxA .4 Hình 2.2 Sơ đồ khối PIC16F877A 2.2.2Tổ chức nhớ 2.2.3Các cổng xuất nhập PIC16F877A Hình 2.3 Sơ đồ khối Timer0 Hình 2.4 Sơ đồ khối Timer1 vii Hình 2.5 Sơ đồ khối Timer2 10 2.2.4CCP 10 Bảng 2.1 Các trường hợp hoạt động Timer1 Timer2 .11 Hình 2.6 Sơ đồ khối CCP (PWM mode) 12 Hình 2.7 Các tham số PWM .12 Hình 2.8 Sơ đồ khối CCP (Compare mode) 13 2.3Tổng quan động 13 Hình 2.9 Cấu tạo bên động DC 14 2.4Tổng quan encoder 15 Hình 2.10 Cấu tạo thành phần bên Encoder 16 2.5Tổng quan phần mềm Visual C++ .17 2.5.1Giới thiệu phần mềm 17 2.5.2Các bước tạo để tạo dự án Visual C++ 17 2.6Phần mềm trình biên dịch PCWH sử dụng ngơn ngữ lập trình C (CCSC) .18 2.6.1Giới thiệu 18 2.6.2Các bước tạo dự án CCSC 18 2.7Tổng quan phần mềm nạp PIC Burn-E Programmer 19 2.8Giới thiệu TeeChart 19 2.8.1Giới thiệu 19 2.8.2Các bước tạo dự án 20 Chương 22 NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 22 3.1Nội dung nghiên cứu 22 3.2Linh kiện thiết bị sử dụng thiết kế điều khiển 22 3.3Phương pháp nghiên cứu 23 3.3.1Phương pháp nghiên cứu sử dụng bao gồm: 23 3.3.2Phương tiện nghiên cứu .23 3.4Phương pháp nghiên cứu điều khiển ảnh hưởng điều khiển PID: 23 3.4.1Phương pháp nghiên cứu điều khiển 23 Hình 3.1 Mơ hình điều khiển với Kgh .25 Hình 3.2 Xác định hệ số khuếch đại tới hạn 25 Bảng 3.1 Thông số điều khiển theo thực nghiệm 25 3.4.2Ảnh hưởng điều khiển PID 27 Bảng 3.2 Một số ảnh hưởng hệ số đáp ứng hệ kín 27 3.4.3Điều khiển động servo ngôn ngữ Visual C++ 27 3.4.4Điều khiển động phương pháp điều chế độ rộng xung (PWM) .27 Hình 3.3 Dạng xung PWM 28 Hình 3.4 Phương pháp PWM không thay đổi tần số 29 Hình 3.5 Phương pháp thay đổi tần số 29 Chương 29 viii KẾT QUẢ VÀ THẢO LUẬN 29 Hình 4.1 Sơ đồ khối điều khiển 30 Bảng 4.2 Chọn thông số PID theo Ziegler-Nichols 30 Hình 4.2 Lưu đồ giải thuật PID 31 Hình 4.3 Biểu đồ vị trí theo PID 31 Hình 4.4 Giao diện giám sát 32 Hình 4.5 Lưu đồ giải thuật PID 33 Hình 4.6 Mơ hình điều khiển .34 Hình 4.9 Mơ hình robot .35 Hình 4.10 Sơ đồ nguyên lý PIC 36 Hình 4.11 Khối nguồn điều khiển .36 Hình 4.12 Mơdun điều khiển PIC 37 Hình 4.13 Khối cách ly mạch điều khiển 38 Bảng 4.3 Trạng thái hoạt động 74HC74 .38 Hình 4.4 Biểu đồ trạng thái 74HC74 39 Hình 4.14 Sơ đồ nguyên lý mạch cầu H 39 Hình 4.15 Mơ hình thi cơng 40 Hình 4.16 Lưu đồ giải thuật VĐK .41 Chương 45 KẾT LUẬN VÀ ĐỀ NGHỊ .45 5.1Kết luận 45 5.2Đề nghị .45 TÀI LIỆU THAM KHẢO 46 PHỤC LỤC .47 Phục lục 1: Chương trình vi điều khiển PIC .47 Phục lục 2: chương trình giám sát hệ thống 53 DANH SÁCH CÁC BẢNG Bảng 2.1 Các trường hợp hoạt động Timer1 Timer2 11 Bảng 3.1 Thông số điều khiển theo thực nghiệm 24 Bảng 3.2 Một số ảnh hưởng hệ số đáp ứng hệ kín 26 Bảng 4.2 Chọn thông số PID theo Ziegler-Nichols 29 Bảng 4.3 Trạng thái hoạt động 74HC74 37 ix Kp=0.2 Ki=0.002 Kd=2 Kp=0.1 Ki=0.02 Kd=1  BẢNG KHẢO NGHIỆM VỊ TRÍ: Số lần khảo nghiệm 10 Thời gian Số xung Vị trí tính Số xung dò Vị trí % POT xác tính tốn tốn (độ) thực tế lập (ms) 234 234 209,7 209 11,4 1200 234 234 209,7 210 10,95 600 234 234 209,7 211 11,42 600 234 234 209,7 210 11,9 1500 234 234 209,7 210 10,95 500 234 234 209,7 209 14,28 1000 234 234 209,7 211 11,42 700 234 234 209,7 210 10,95 600 234 234 209,7 211 17,4 1200 234 234 209,7 210 12,38 900 PID 3.4 0.2 30 3.4 0.2 29 3.4 0.2 30 0,2 30 3,01 0,2 30 0,2 30 3,01 0,2 30 0,2 30 0,2 30 0,2 30  BẢNG THÍ NGHIỆM VẬN TỐC STT Số xung đặt Giá trị vận Giá trị vận Số xung dò Vận tốc tốc lý tính tốn thực tế thuyết (vòng\phút) (xung\giây) (vòng\phút) (xung\giây) 43 Bộ PID 10 30 30 30 30 30 30 30 30 30 30 450 450 450 450 450 450 450 450 450 450 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 44 32.4 24.3 23.4 33.3 31.5 29.7 31.5 32.4 32.4 30.6 2160 1620 1560 2220 2100 1980 2100 2160 2160 2040 Kp=0,5 Ki=0.0001 Kd=18 Chương KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết luận Sau thời gian 12 tuần thực hiện, đề tài hoàn tất với kết sau: - Phần cứng: o Hoàn thành mạch điện điều khiển cho toàn hệ thống - Phần mềm: o Hoàn thành chương trình điều khiển vi điều khiển PIC16F877A o Hồn thành chương trình điều khiển giám sát máy tính Tuy nhiên đề tài số hạn chế: - Việc điều khiển chưa hồn tồn xác, tồn sai số Chương trình giám sát dạng thử nghiệm, chưa hồn thiện chức cần có 5.2 Đề nghị  Nâng cấp phần cứng:  Thay vi điều khiển dòng PIC cao để có đạt độ xác cao chức xử lý hiệu  Sử dụng IC cầu H chuyên dụng để giảm kích thước mạch điện có tốc độ đáp ứng cao  Sử dụng encoder thẳng để điều khiển vị trí xác  Nâng cấp phần mềm:  Phát triển thêm phần điều khiển vị trí độ lên điều khiển bàn máy  Hoàn thiện chương trình điều khiển máy tính 45 TÀI LIỆU THAM KHẢO [1] Ngô Diên Tập Vi Điều Khiển với Lập Trình C Nhà xuất Khoa Học Kỹ Thuật 2006 [2] Nguyễn Đức Thành Điều Khiển đo lường máy tính Nhà xuất đại học quốc gia TPHCM Một số website: [1] http://www.picvietnam.com/forum/showthread.php?t=612 [2] http://vi.wikipedia.org.com [3] http://www.pduytech.com/ProductsBurnerBurn-E.html [4] www.msdn.com [5] Các diễn đàn điện tử, google+datasheet 46 PHỤC LỤC Phục lục 1: Chương trình vi điều khiển PIC bit chieu =0,kt_t,tx,mode; //chay thuan char IN,k=0,str_count=0,re_char,nhan,count_send; char RxBuf[32], RdPtr=0, RwPtr = 0; unsigned long send; int count,sp, pos,vel,v,s_vel,pos_old,vel_old,TMR_temp,b = 0; int old_xung,err,err_vel,sum_err,sum_err_vel,old_err,d_err,old_err_vel,d_err_vel,pid_int, pid_int_vel,h,m,n; float kp,ki,kd,pid_out,pid_out_vel; char str[7]; void init (); char uart_getc(); void uart_putc(char c); void delay_ms(unsigned int x); void pid(); void pid_vel(); void get_str(); void reset_counter(); void pid(); void xoa_mang(); interrupt ngat(); //#define sp 300 void main(){ char d; init(); while(1){ if(RdPtr != RwPtr) //tao kho chua du lieu nhan { d = RxBuf[RdPtr]; RdPtr++; RdPtr &= 0x1F; } } } interrupt ngat(){ if (T0IF&&T0IE){ T0IF= 0; k++; if(k==9)TMR0 = 60;// DINH 2ms if(mode==0){ if(k==10){ k =0; TMR_temp = TMR1; if(chieu==0) pos = (TMR_temp+old_xung); else pos = (old_xung-TMR_temp); pos_old = pos; if((count_send++)==5){ count_send = 0; IN= 0; if(tx==1)printf("\f%d\n",pos); TMR_temp = TMR1; // cap nhat lai position if(chieu==0) pos_old = (TMR_temp+old_xung); else pos_old = (old_xung-TMR_temp); } pid(); } } else {//mode==1:velocity if(k==10){ k =0; TMR_temp = TMR1; TMR1=0; vel=TMR_temp; vel_old = vel; pid_vel(); if((count_send++)==5){ count_send = 0; IN= 0; if(tx==1)printf("\f%d\n",vel); TMR_temp = TMR1; // cap nhat lai velocity } } } } if(RCIF&&RCIE){ get_str(); } //ngat onchange if (INTF&&INTE){ INTF = 0; TMR_temp = TMR1; if(chieu==0){old_xung +=TMR_temp;RA3=1;} else {old_xung-=TMR_temp; RA3=0;} INTEDG =~INTEDG; chieu =~chieu; reset_counter(); } } void pid(){ err = sp - pos; sum_err +=err; if(sum_err>32000) sum_err=32000; if(sum_err0){RA1 =0;RA2 = 1;} //QUAY THUAN if(pid_out(sp*0.9)&&posEnabled=true; s=0; } else { sp->Write("s"+"k"); axTChart2->Series(0)->AddXY(0,Convert::ToDouble(tbps>Text),"",2000);// vi tri set axTChart2->Series(1)->AddXY(0,0,"",2000); axTChart2->Series(2)->AddXY(0,0,"",2000); axTChart2->Series(0)>AddXY(time+2000,Convert::ToDouble(tbps->Text),"",2000); run->Text="Pause"; s=1; } } private: System::Void stop_Click(System::Object^ sender, System::EventArgs^ e) { sp->Write("x"); tran1=" "; tran2=" "; tran3=" "; tran4=" "; tran5=" "; tran6=" "; } private: System::Void quit_Click(System::Object^ sender, System::EventArgs^ e) { this->Close(); } private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { run->Enabled=false; stop->Enabled=false; lbcom->Enabled=true; array ^ a1= System::IO::Ports::SerialPort::GetPortNames(); for(int i =0;iLength;i++) { lbcom->Items->Add(a1[i]); } } private: System::Void connect_Click(System::Object^ sender, System::EventArgs^ e) { sp->PortName=Convert::ToString(lbcom->SelectedItem); if(kt) { kt=false; connect->Text="Disconnect"; sp->Open(); run->Enabled=true; stop->Enabled=true; lbcom->Enabled=false; } else { kt=true; connect->Text="Connect"; sp->Close(); } } private: System::Void left_Click(System::Object^ sender, System::EventArgs^ e) { tran2="2"+"q"+"a"; sp->Write(tran2); } private: System::Void right_Click(System::Object^ sender, System::EventArgs^ e) { tran2="2"+"w"+"b"; sp->Write(tran2); } private: System::Void down_Click(System::Object^ sender, System::EventArgs^ e) { tran3="3"+"e"; sp->Write(tran3); } private: System::Void up_Click(System::Object^ sender, System::EventArgs^ e) { tran3="3"+"y"; sp->Write(tran3); } private: System::Void near_Click(System::Object^ sender, System::EventArgs^ e) { tran5="5"+"u"; sp->Write(tran5); } private: System::Void far_Click(System::Object^ sender, System::EventArgs^ e) { tran5="5"+"i"; sp->Write(tran5); } private: System::Void big_Click(System::Object^ sender, System::EventArgs^ e) { tran6= "6"+"o"; sp->Write(tran6); } private: System::Void small_Click(System::Object^ sender, System::EventArgs^ e) { tran6= "6"+"p"; sp->Write(tran6); } private: System::Void sp_DataReceived_2(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e) { Control::CheckForIllegalCrossThreadCalls=false; pos=Convert::ToString(sp->ReadLine()); current_v = Convert::ToDouble(pos);//vi tri hien tai tbpc->Text=Convert::ToString(current_v*0.9); //tbpc->Text=pos; pos_v =Convert::ToInt32(tbps->Text);//vi tri set //current_v=current_v*0.9; time+=1; axTChart2->Series(1)->AddXY(time,current_v*0.9,"",200000); angle = Convert::ToInt32(current_v - pre_angle); axTChart2->Series(2)->AddXY(time,angle*1.5,"",200000); pre_angle = current_v; if(time>10) { axTChart2->Axis->Bottom->Maximum=time+5; } } private: System::Void set_Click(System::Object^ sender, System::EventArgs^ e) { sp->Write(tbkp->Text+"p"); for(int i =0;iWrite(tbki->Text+"i"); for(int i =0;iWrite(tbkd->Text+"d"); if(vitri->Checked) sp->Write(((Convert::ToInt32(tbps>Text)*10)/9)+"o"+"n"); if(vantoc->Checked) sp->Write(((Convert::ToInt32(tbps>Text)*10)/9)+"v"+"m"); } private: System::Void reset_Click(System::Object^ sender, System::EventArgs^ e) { time1=0;//bien van toc time=0;// bien vi tri pot=0; ts=0; current_v=0; pre_angle=0; kqmax2=0; angle=0; kqmax1=0; dem=0; pos="0"; pos_v=0; axTChart2->Series(0)->Clear ();// char2:vi tri axTChart2->Series(1)->Clear (); axTChart2->Series(2)->Clear (); } private: System::Void len_Click(System::Object^ sender, System::EventArgs^ e) { tran1="1"+"t"+"f"; sp->Write(tran1); } private: System::Void xuong_Click(System::Object^ sender, System::EventArgs^ e) { tran1="1"+"n"+"r"; sp->Write(tran1); } private: System::Void trai_Click(System::Object^ sender, System::EventArgs^ e) { tran1="1"+"n"+"f"; sp->Write(tran1); } private: System::Void phai_Click(System::Object^ sender, System::EventArgs^ e) { tran1="1"+"t"+"r"; sp->Write(tran1); } private: System::Void vantoc_CheckedChanged(System::Object^ sender, System::EventArgs^ e) { lbps->Text="Vel Set"; lbpc->Text="Vel Cur"; } private: System::Void vitri_CheckedChanged(System::Object^ sender, System::EventArgs^ e) { lbps->Text="Pos Set"; lbpc->Text="Pos Cur"; } }; ... 37 ix x Chương MỞ ĐẦU 1.1 Đặt vấn đề Điều khiển học ngành khoa học có từ lâu đời Trải qua thời kỳ dài lịch sử, ngành khoa học có bước tiến mạnh mẽ, từ mơ hình điều khiển đơn giản đến... TẠ Em xin trân trọng cảm ơn tất Quý Thầy / Cô trường Đại học Nông Lâm TP.Hồ Chí Minh q thầy / Cơ khoa Cơ Khí- Cơng Nghệ trang bị cho em kiến thức quý báu giúp đỡ em suốt trình học tập trường Em... nói riêng xã hội lồi người nói chung Trong điều khiển học, phương pháp điều khiển cốt lõi ngành khoa học Từ điều khiển ON – OFF, điều khiển tỉ lệ, điều khiển PID, điều khiển mờ, điều khiển thích

Ngày đăng: 19/09/2019, 13:22

Từ khóa liên quan

Mục lục

  • Chương 1

  • MỞ ĐẦU

    • 1.1 Đặt vấn đề

    • 1.2 Mục đích của đề tài

    • 1.3 Giới hạn của đề tài

    • Chương 2

    • TỔNG QUAN

      • 2.1 Tổng quan điều khiển động cơ

      • 2.2 Tổng quan về 16F877A

        • 2.2.1 Giới thiệu về PIC 16F877A

        • Hình 2.1 Sơ đồ chân của PIC16FxxxA

        • Hình 2.2 Sơ đồ khối của PIC16F877A

        • 2.2.2 Tổ chức bộ nhớ

        • 2.2.3 Các cổng xuất nhập của PIC16F877A

        • Hình 2.3 Sơ đồ khối của Timer0

        • Hình 2.4 Sơ đồ khối của Timer1

        • Hình 2.5 Sơ đồ khối của Timer2

        • 2.2.4 CCP

        • Bảng 2.1 Các trường hợp hoạt động của Timer1 và Timer2

          • Hình 2.6 Sơ đồ khối CCP (PWM mode).

          • Hình 2.7 Các tham số của PWM

          • Hình 2.8 Sơ đồ khối CCP (Compare mode).

          • 2.3 Tổng quan về động cơ

            • Hình 2.9 Cấu tạo bên trong động cơ DC

            • 2.4 Tổng quan về encoder

              • Hình 2.10 Cấu tạo các thành phần bên trong của Encoder

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

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

Tài liệu liên quan