Thiết kế bộ điều khiển phi tuyến cho xe hai bánh tự cân bằng Thiết kế bộ điều khiển phi tuyến cho xe hai bánh tự cân bằng Thiết kế bộ điều khiển phi tuyến cho xe hai bánh tự cân bằng luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM NGÔ TRƯỜNG CỬU THIẾT KẾ BỘ ĐIỀU KHIỂN PHI TUYẾN CHO XE HAI BÁNH TỰ CÂN BẰNG LUẬN VĂN THẠC SỸ Chuyên ngành : Kỹ thuật Cơ – điện tử Mã số ngành : 60520114 TP HỒ CHÍ MINH, tháng 02 năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM NGÔ TRƯỜNG CỬU THIẾT KẾ BỘ ĐIỀU KHIỂN PHI TUYẾN CHO XE HAI BÁNH TỰ CÂN BẰNG LUẬN VĂN THẠC SỸ Chuyên ngành : Kỹ thuật Cơ – điện tử Mã số ngành : 60520114 HƯỚNG DẪN KHOA HỌC: TS NGUYỄN THANH PHƯƠNG TP HỒ CHÍ MINH, tháng 02 năm 2015 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TP HCM Cán hướng dẫn khoa học : TS NGUYỄN THANH PHƯƠNG Luận văn Thạc sĩ bảo vệ Trường Đại học Công nghệ TP HCM ngày 28 tháng 03 năm 2015 Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ Luận văn Thạc sĩ) TT Họ tên PGS Nguyễn Tấn Tiến TS Võ Đình Tùng TS Nguyễn Hùng TS Võ Tường Quân TS Võ Hoàng Duy Chức danh hội đồng Chủ tịch Phản biện Phản biện Ủy viên Ủy viên, thư ký Xác nhận Chủ tịch Hội đồng đánh giá Luận sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV TRƯỜNG ĐH CÔNG NGHỆ TP HCM PHÒNG QLKH – ĐTSĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc TP HCM , ngày tháng năm 20 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: NGƠ TRƯỜNG CỬU Giới tính: Nam Ngày, tháng, năm sinh: 16/01/1976 Nơi sinh: Bắc Thái Chuyên ngành: Kỹ thuật Cơ điện tử MSHV: 1341840003 I- TÊN ĐỀ TÀI: THIẾT KẾ BỘ ĐIỀU KHIỂN PHI TUYẾN CHO XE HAI BÁNH TỰ CÂN BẰNG II- NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu, mơ hình hóa hệ thống, thiết kế điều khiển trượt cho xe hai bánh tự cân Chương 1: Mở đầu Chương 2: Tổng quan xe hai bánh tự cân Chương 3: Mơ hình tốn học xe hai bánh tự cân Chương 4: Thiết kế điều khiển Chương 5: Mô Matlab Chương 6: Cơ cấu chấp hành cảm biến Chương 7: Triển khai mơ hình III- NGÀY GIAO NHIỆM VỤ: IV- NGÀY HOÀN THÀNH NHIỆM VỤ: V- CÁN BỘ HƯỚNG DẪN: TS NGUYỄN THANH PHƯƠNG CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) (Họ tên chữ ký) i LỜI CAM ĐOAN Tôi xin cam đoan rằng, luận văn với nội dung: “Thiết kế điều khiển phi tuyến cho xe hai bánh tự cân bằng” cơng trình nghiên cứu riêng tơi, hướng dẫn TS NGUYỄN THANH PHƯƠNG Các số liệu, kết mô nêu luận văn trung thực, có nguồn trích dẫn rõ nguồn gốc chưa cơng bố cơng trình nghiên cứu khác Học viên thực Luận văn (Ký ghi rõ họ tên) NGÔ TRƯỜNG CỬU ii LỜI CÁM ƠN Sau thời gian học tập nghiên cứu trường, tơi hồn thành đề tài tốt nghiệp cao học Để có thành này, nhận nhiều hỗ trợ giúp đỡ tận tình từ thầy cơ, gia đình bạn bè Tôi xin chân thành cảm ơn quý Thầy cô khoa Quản Lý Khoa Học - Đào Tạo Sau Đại Học, quý Thầy cô khoa Cơ - Điện - Điện Tử Trường Đại Học Công Nghệ TP.HCM tận tình giúp đỡ, hỗ trợ tơi suốt q trình thực luận văn Với lòng tri ân sâu sắc, tơi muốn nói lời cám ơn đến Thầy TS Nguyễn Thanh Phương, người nhiệt tình hướng dẫn bảo cho suốt thời gian thực nghiên cứu Tp Hồ Chí Minh, tháng 02 năm 2015 Người thực luận văn NGƠ TRƯỜNG CỬU iii TĨM TẮT LUẬN VĂN Trong luận văn này, điều khiển trượt ổn định hóa đề xuất để điều khiển giữ thăng điều khiển gán cực điểm sử để điều khiển góc chuyển hướng cho xe hai bánh Luận văn trình bày ba vấn đề Đầu tiên, điều khiển trượt ổn định hóa thiết kế để vector sai số tiệm cận zezo Thứ hai, điều khiển gán cực điểm thiết kế, điều khiển làm cho xe bám theo góc chuyển hướng mong muốn Sau cùng, mơ kết thực nghiệm trình bày để chứng minh tính hiệu điều khiển đề xuất iv ABSTRACT In this paper, a stabilization-sliding mode controller is proposed to control balance and pole-placement controller is used to control angle-navigation for twowheelers.This thesis presents three issues • First, the stabilization-sliding mode controller is designed to make the error vector go to zero asymptotically • Second, the pole-placement controller is designed, this controller driver follows angle-navigation desired • Finally, the simulations and experimental results are shown to prove the effectiveness of the proposed controller v MỤC LỤC Tên đề mục Trang Lời cam đoan i Lời cảm ơn ii Tóm tắt luận văn iii Abstract iv Mục lục v Danh mục bảng biểu vii Danh mục hình ảnh viii Chương Mở đầu 1.1 Đặt vấn đề 1.2 Tính cấp thiết đề tài 1.3 Mục tiêu đề tài 1.4 Nội dung nghiên cứu 1.5 Phương pháp luận 1.6 Phương pháp nghiên cứu 1.7 Nội dung luận văn Chương Tổng quan xe hai bánh tự cân 2.1 Sơ lược xe hai bánh tự cân 2.2 Tổng quan tình hình nghiên cứu 2.2.1 Tình hình nghiên cứu giới: 2.2.2 Tình hình nghiên cứu nước 13 2.3 Nhận xét hướng tiếp cận 13 Chương Mơ hình tốn học xe hai bánh tự cân 14 3.1 Cấu trúc 14 3.2 Xây dựng phương trình động học 15 3.3 Sơ đồ mô đối tượng điều khiển Matlab 20 Chương Thiết kế điều khiển 21 vi 4.1 Thiết kế điều khiển cân 21 4.2 Thiết kế điều khiển chuyển hướng 22 Chương Mô Matlab 21 5.1 Sơ đồ mô Matlab 24 5.2 Kết mô điều khiển giữ thăng 24 5.3 Kết mô điều khiển chuyển hướng 26 5.4 Kết luận 26 Chương Cơ cấu chấp hành cảm biến 27 6.1 Mơ hình động điện chiều 27 6.2 Hệ thống cảm biến lọc 28 6.2.1 Cảm biến vận tốc góc 28 6.2.2 Cảm biến gia tốc 28 6.2.3 Các phương pháp lọc tín hiệu từ cảm biến 29 Chương triển khai mơ hình 33 7.1 Sơ đồ tổng quát hệ thống 33 7.2 Sơ đồ mạch điện 33 7.3 Động 34 7.4 Cảm biến MPU6050 35 7.5 Modul khiển động LMD18200 35 7.6 Bánh xe 36 7.7 Mơ hình thực tế 37 7.8 Phần mềm 37 7.9 Lưu đồ giải thuật 42 7.10 Kết thực mơ hình 43 TÀI LIỆU THAM KHẢO 44 32 Đối vợi lọc Kalman, thuật ngữ “lọc” không hiểu giống lọc thông thường Bộ lọc Kalman giải thuật tính tốn dựa vào tất thơng tin nhận đầu vào để đưa thông tin đầu đáng tin cậy Bộ lọc Kalman có khả loại bỏ nhiễu trắng mà nhận đầu vào dựa vào thống kê trước hiệu chỉnh lại giá trị đo Nhờ có chế cập nhật sai lệch bias thời điểm tính tốn nên giá trị góc nghiêng ước lượng ổn định xác Nhược điểm lọc Kalman phải tính tốn nhiều phức tạp 33 Chương TRIỂN KHAI MƠ HÌNH 7.1 Sơ đồ tổng qt hệ thống: Hình 7.1: Sơ đồ tổng quát 7.2 Sơ đồ mạch điện: Hình 7.2: Sơ đồ nguyên lý mạch điện 34 7.3 Động cơ: Điện áp hoạt động: 12 [v] Tốc độ motor 8100 [RPM] Tốc độ sau giam tốc 120 [RPM] Tỉ số giảm tốc 64:1 Dòng tải tối đa 1400 [mA] Dịng khơng tải 74 [mA] Momen xoắn 1.72 [Nm] Độ phân giải Encoder 12 [Xung/vòng] Bảng 7.1: Các thơng số kỹ thuật động Hình 7.3: Động sử dụng mơ hình 7.4 Cảm biến MPU6050 : Điện áp hoạt động: [v] Giao tiếp I2C Giải đo Gyroscopes ±250, 500, 1000, 2000 [Deg/s] Giải đo Acceleration ± 2, 4, 8, 16 [g] Bảng 7.2: Các thông số kỹ thuật cảm biến vận tốc góc gia tốc góc 35 Hình 7.4: Modul cảm biến vận tốc góc gia tốc góc 7.5 Modul khiển động LMD18200: Điện áp hoạt động Vmax: 55 [v] Dòng điện làm việc Imax [A] RDS on 0.33[Ω] Bảng 7.3: Các thông số kỹ thuật Modul điều khiển động Hình 7.5: Modul điều khiển động 36 7.6 Bánh xe: Đường kính bánh xe: 95 [mm] Đường kính trục: [mm] Khối lượng tải: 100 [kg] Bảng 7.4: Các thông số kỹ thuật bánh xe Hình 7.6: Bánh xe 37 7.7 Mơ hình thực tế: Hình 7.7: Mơ hình thực tế 7.8 Phần mềm: #include #include #include #include #include #include #include #define g 9.81 #define L 0.13 #define MW 0.19933 38 #define R 0.048 #define MB (0.83053 + 0.620) #define D 0.21 #define k1 20 #define KS 350 float f1(float x1) { float temp1, temp2; temp1 = ((-0.75 * g * sin(x1))/L); temp2 = (((0.75 * cos(x1) * ((Mw * R) + (MB * L * cos(x1)))) / (((2 * Mw) + MB) * L)) - 1); return(temp1/temp2); } float f2(float x1,x2) { float temp1, temp2; temp1 = (( 0.75 * MB * sin(x1) * cos(x1) * x2 * x2)/ ((2* Mw)+ MB)); temp2 = (((0.75* cos(x1)* ((Mw* R)+ (MB* L* cos(x1)))) / (((2* Mw) + MB)* L))- 1); return(temp1/temp2); } float g1(float x1) { float temp1, temp2; temp1 = (((0.75 * (1 + (sin(x1) * sin(x1)))) / (MB * L * L)) + ((0.75 * cos(x1))/(((2 * Mw) + MB) * R * L))); temp2 = (((0.75* cos(x1)* ((Mw* R)+ (MB* L* cos(x1)))) / (((2* Mw) + MB)* L))- 1); return(temp1/temp2); 39 } float SMC(float x1,x2, ref) { float temp1, temp2, err,s,u ,r_dotdot; err = ref - x1; temp1 = (err - err_old)/d_t ; // e_dot temp2 = (ref - r_old)/d_t; //r_dot r_dotdot = (temp2 - r_dotdot_old)/d_t; s = (k1*err)+temp1; if (s > 0.5) s = 0.5; else if(s < -0.5) s = -0.5; s = s * KS; u = ((k1*temp1) + s + r_dotdot - f1(x1) - f2(x1,x2) )/g1(x1); r_dotdot_old = r_dotdot; err_old = temp1; r_old = ref; return(u); } float pole_palacement(float ek) { float uk = (0.0158224*ek)-(0.01276*ek_1)+(0.12*uk_1); uk_1 = uk; ek_1 = ek; return(uk); } Void main(void) { printf("Startup \r\n"); 40 set_pullup(TRUE,PIN_B4); //QEA set_pullup(TRUE,PIN_B5); //QEB setup_qei(QEI_MODE_X4|QEI_TIMER_INTERNAL,QEI_FILTER_DIV_16,Q EI_FORWARD); //| QEI_SWAP_AB control_slave(QEI_4); qei_set_count(0x0000); control_slave(reset); //init motor printf("Init motor modul \r\n"); motor_init(); printf("Init MPU6050 modul "); if(InitMpu6050() != 0x68) {printf("Sensor not correct\r\n"); while(true) restart_wdt(); } else printf("Ok\r\n"); printf("Init Kalman \r\n"); init_kalman(); printf("Go \r\n"); delay_ms(500); enable_interrupts(INT_RDA); enable_interrupts(INTR_GLOBAL); TICK_TYPE CurrentTick,PreviousTick; unsigned int8 on_off = on; float datadeg[10], deg_sum = 0; unsigned int8 i; for(i = 0;i 0) {left_forward; pwm_l = (unsigned int16)calcutlate_pwm(c_left);} else {left_revert; pwm_l = (unsigned int16) calcutlate_pwm(-c_left);} if(c_right > 0) { right_forward; pwm_r = (unsigned int16) calcutlate_pwm(c_right);} else { right_revert; pwm_r = (unsigned int16) calcutlate_pwm(-c_right);} set_motor_pwm_duty(1,motor_left,pwm_l); set_motor_pwm_duty(1,motor_right,pwm_r); restart_wdt(); } } 42 7.9 Lưu đồ giải thuật: Start Khởi tạo biến; Cài đặt timer, interrupt; Cập nhật Timer (dT); Đọc góc nghiêng θ, δ Kalman filter Cθ = SMC() Cδ = Pole() Decoupling CLeft, CRight Read ADC() Calculate PWM Motor control Hình 7.8: Lưu đồ giải thuật chương trình 43 7.10 Kết thực mơ hình: Mơ hình hoạt động điều khiển tín hiệu RF theo giao thức truyền nối tiếp RS232 Mơ hình đáp ứng thao tác cần thiết di chuyển phía trước ngược lại, chuyển hướng rẽ trái, phải theo người điều khiển Tuy nhiên hiện, tượng dao động (chattering) xảy xe đứng yên vị trí cân bằng( θ = [Rad]) 44 TÀI LIỆU THAM KHẢO [1] Dương Hoài Nghĩa, Lý thuyết điều khiển đa biến, NXB Đại học quốc gia TP.HCM [2] Nguyễn Thị Phương Hà, Lý thuyết điều khiển đại, NXB Đại học quốc gia TP.HCM [3] Huỳnh Thái Hoàng (2011) Điều khiển phi tuyến, Lý thuyết điều khiển nâng cao, Đại học bách khoa, TP.HCM, 55-76 [4] Greg WELCH and Gary BISHOP, An Introduction to the Kalman Filter, University of North Carolina at Chapel Hill, 2004 [5] F Grasser, A D Arrigo, S Colombi and A C Rufer, “JOE: A Mobile, Inverted Pendulum”,IEEE Trans Indus Elec., Vol 49, No 1, 107-114, Feb.2002 [6] V Williams and K Matsuoka, “Learning to Balance the Inverted Pendulum Using Neural Networks”, IEEE Conference on Neural Networks, Vol 1, pp 214-219, 2002 [7] Ashish TEWARI, Modern Control Design, Indian Institute of Technology Kanpur, India John Wiley and sons LTD [8] R J Lee, K C Chou, S H Liu and J Y Yen, “Solid Modeling Based Servo System Design for a High Speed Micro Grinding Machine”, Machine Tools & Manufacture, Vol 46, pp.208-217, 2006 [9] F Esfandiari and H K Khalil, “Output Feedback Stabilization of Fully Control System”,International Journal of Control, Vol 56, pp 1007-1037, 1992 [10] R J Wai and L J Chang, “Adaptive Stabilizing and Tracking Control for a Nonlinear Inverted-Pendulum System via Sliding-Mode Technique”, IEEE Trans Indus Elec., Vol 53, No 2, Apr 2006 [11] A Kadis, D Caldecott, A Edwards, M Jerbic, R Madigan, M Haynes, [12] B.Cazzolato and Z Prime, “Modelling, simulation and control of an electric [13] unicycle”, The University of Adelaide, Australia, 2010 45 [14] Nguyễn Hồng Quang, Nguyễn Hoàng Anh, “Nghiên cứu, thiết kế chế tạo xe bánh tự cân bằng”, Cơng trình dự thi giải thưởng “Sinh viên nghiên cứu khoa học”,2007 [15] Nguyễn Gia Minh Thảo, Mai Tuấn Đạt, Dương Hoài Nghĩa, Nguyễn Hữu Phúc, “Nonlinear Controllers For Two – Wheeled Self – Balancing Robot”, The 2011 ASEAN Symposium Control, Ho Chi Minh City, Viet Nam, November 8-9, 2011 [16] Nguyễn Gia Minh Thảo, Mai Tuấn Đạt, Dương Hoài Nghĩa, Nguyễn Hữu Phúc,“A PID Backstepping Controller For Two – Wheeled Self – Balancing Robot”, IFOST 2010 Proceedings, Ulsan, South Korea, 13 – 15 October, 2010 [17] Nguyễn Mạnh Tiến, Điều khiển robot công nghiệp, NXB Khoa Học Kỹ Thuật, 2009 Tài liệu Website: [18] http://www.geology.smu.edu/~dpa-www/robo/nbot/index.html [19] http://www.tlb.org/scooter.html [20] http://leiwww.epfl.ch/joe [21] http://www.elex.camosun.bc.ca/Projects/2004/hvt/hvt.htm [22] http://www.fusionglobal.net/gallery.htm [23] http://www.barello.net/robots/gyrobot [24] http://www.microchip.com [25] http:// www.rotomotion.com [26] http://www.dprg.org/projects/index.html [27] http://autopilot.sourceforge.net [28] http://www.wulabs.org/bbot.html [29] http://homepage.mac.com/sigfpe/Robotics/equibot.html [30] http://web.mit.edu/sanghyuk/www/balance_bot.html [31] http://home.earthlink.net/~botronics/index/balibot.html 46 [32] http://www.analog.com/Analog_Root/productPage/productHome/adxl202,00 html [33] http://murata.com/enc-03 [34] http://www.picotech.com/applications/pwm-drivers/ [35] http://www.segway.com ... TÊN ĐỀ TÀI: THIẾT KẾ BỘ ĐIỀU KHIỂN PHI TUYẾN CHO XE HAI BÁNH TỰ CÂN BẰNG II- NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu, mơ hình hóa hệ thống, thiết kế điều khiển trượt cho xe hai bánh tự cân Chương 1:... khơng thể, việc thăng xe dựa tính chất quay hồi chuyển hai bánh xe quay Còn xe hai bánh tự cân bằng, loại xe có hai bánh với trục hai bánh xe trùng nhau, xe cân bằng, trọng tâm xe (bao gồm người... đề điều khiển cho xe hai bánh tự cân Tuy nhiên, phương pháp có ưu, khuyết điểm thể qua kết mô mà báo Hướng tiếp cận: xây dựng điều khiển trượt ổn định hóa cho xe hai bánh tự cân nhằm điều khiển