THIẾT KẾ CHẾ TẠO XE TỰ CÂN BẰNG

92 3 0
THIẾT KẾ CHẾ TẠO XE TỰ CÂN BẰNG

Đ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

i TÓM TẮT ĐỀ TÀI Robot hai bánh tự cân bằng là một đối tượng có tính phi tuyến cao và tương đối không ổn định. Vì vậy, ta phải có một phương pháp điều khiển mới để đưa hệ thống robot hai bánh về vị trí cân bằng mong muốn. Một trong những phương pháp được ứng dụng vào điều khiển đó chính là FuzzyPID. Với ưu điểm hệ thống cơ khí không quá phức tạp, robot hai bánh tự cân bằng được sử dụng rộng rãi trong việc giảng dạy và nghiên cứu lý thuyết điều khiển tự động cũng như xây dựng các bộ điều khiển số. Hệ thống bao gồm: hai bánh xe được gắn vào bệ của robot và kết nối với hai động cơ DC thông qua bộ truyền đai, bệ của robot được gắn với thân của robot tượng trưng cho thanh quay của con lắc ngược. Cảm biến Gyro86 được sử dụng để tính góc xoay để đảm bảo thân của robot xoay trục của động cơ. Ta phải điều khiển để thân robot có thể cân bằng ở một vị trí cân bằng cho phép. Mục tiêu của đề tài là xây dựng bộ điều khiển FuzzyPID với luật điều khiển MaxMin để điều khiển đối tượng có độ phi tuyến này được ổn định. Luật điều khiển này sẽ được mô phỏng bằng Matlab Simulink và được kiểm nghiệm trên nền vi điều khiển CortexM4F. Ưu điểm khi sử dụng CortexM4F để thực thi bộ điều khiển là: giá thành rẻ, sử dụng linh hoạt và dễ dàng ứng dụng vào thực tế khi được thương mại hóa. Cảm biến sử dụng Gyro giá rẻ nhưng vẫn đáp ứng được những yêu cầu đưa ra.ii ABSTRACT Twowheeled selfbalancing robot is an object of high nonlinearity and relatively unstable. Therefore, we must have a new control method to give twowheeled robotic system for the location of the desired balance. One of the methods to be applied to control FuzzyPID that is. With mechanical advantage system is not too complicated, twowheeled selfbalancing robot is widely used in teaching and research control theory as well as the construction of digital controllers. The system includes: two wheels are attached to the base of the robot and connected to two DC motors through belt driven, the base of the robot is attached to the body of the robots rotation represents the inverted pendulum rod. Gyro86 sensor is used to calculate the rotation angel of the robot body to ensure the rotation of the motor shaft. Thus the body of the robot will orbit relative around the motor shaft. We have to control the robot to be able to balance itself in a position to balance allows. The objective of the project is to build FuzzyPID controller with MaxMin control law to control objects nonlinearity is stable. This control law will be simulated by matlab simulink and tested on the CortexM4F microcontroller. Advantages when using the CortexM4F to execute the controller are: low cost, flexible use and easy application into commercial reality when variables used Gyro sensor price cheap but still meet the request madeiii Lời cảm ơn Nhóm không thể theo đuổi và hoàn thành đề tài của luận văn tốt nghiệp trong vòng 16 tuần nếu không có sự giúp đỡ của những người thân và bạn bè xung quanh. Do vậy, với trân trọng và cảm kích, nhóm xin gửi lời cảm ơn đến thầy cô, những người thân trong gia đình và bạn bè xung quanh đã chăm sóc, an ủi khi gặp trở ngại và động viên nhóm để thực hiện luận văn. Lời cảm ơn đầu tiên, tôi xin chân thành gửi đến Cô Nguyễn Trần Minh Nguyệt người đã tận tình hướng dẫn và truyền đạt các kiến thức giúp tôi hoàn thành luận văn này. Điều quan trọng nhất là Th.S Nguyễn Trần Minh Nguyệt hướng nhóm tìm được con đường nghiên cứu các thuật toán mới có tính ứng dụng cao ngoài thực tiễn, và rất phù hợp với sở thích và niềm đam mê của tôi. Bên cạnh đó, tôi xin chân thành gửi lời cảm ơn đến quý thầy cô trong bộ môn Điều Khiển Tự Động: thầy Nguyễn Minh Tâm, cô Nguyễn Trần Minh Nguyệt, thầy Lê Chí Kiên, thầy Trương Đình Nhơn và thầy Nguyễn Đình Phú,… đã cho nhóm các kiến thức rất bổ ích và quý giá trong quá trình học tập để ứng dụng vào nghiên cứu và phát triển đề tài này cũng như ứng dụng vào công việc sau này. Tôi cũng xin chân thành gửi lời cảm ơn đến tất cả các bạn đại học khóa 2012 đã động viên, giúp đỡ, trao đổi kiến thức với nhau trong suốt khóa học. Cuối cùng, tôi xin chân thành cảm ơn sự quan tâm, hỗ trợ, tạo điều kiện và động viên về vật chất lẫn tinh thần của các thành viên trong gia đình trong suốt thời gian qua. Tp.HCM, ngày 19 tháng 07 năm 2016. Nhóm thực hiện đề tài Nguyễn Tấn An Lê Minh Tríiv DANH MỤC CÁC TỪ VIẾT TẮT PID: ProportionalIntegralDerivative NE: Negative ZE: Zero PO: Positive NB: Negative Big NS:Negative Small ZE: Zero PS: Positive Small PB: Positive Bigv DANH MỤC CÁC BẢNG BIỂU Bảng 3.1 Luật suy luận mờ. Bảng 3.2 Chọn giá trị cho biến mờ sai số. Bảng 3.3 Chọn giá trị cho biến đạo hàm sai số.vi DANH SÁCH HÌNH ẢNH VÀ BIỂU MẪU Hình 1.1 Nbot Hình 1.2 Giải thuật điều khiển Nbot Hình 1.3 Robot điều khiển bằng logic mờ Hình 1.4 Balance bot I Hình 1.5 Segway Hình 1.6 Xe hai bánh tự cân bằng HTV và nhóm thực hiện Hình 2.1 Mô hình Nguyễn lý giữ thăng bằng Hình 2.2 Mô tả cách bắt đầu di chuyển Hình 2.3 Trạng thái xe ba bánh khi di chuyển trên địa hình phẳng và dốc Hình 2.4 Trạng thái xe hai bánh di chuyển trên địa hình phẳng, dốc Hình 2.5 Miền xác định và miền tin cậy của tập mờ Hình 2.6 Một số dạng hàm thuộc (Gaussian, PIshape, Sshape, Sigmoidal, Zshape) Hình 2.7 Phép giao của hai tập mờ Phép hợp Hình 2.8 Phép hợp của hai tập mờ Phép bù Hình 2.9 Phép bù của tập mờ Hình 2.10 Giải mờ theo phương pháp cực đại Phương pháp trọng tâm Hình 2.11 Sơ đồ cấu trúc bộ điều khiển mờ Hình 2.12 Sơ đồ khối cấu trúc bộ điều khiển FuzzyPID Hình 2.13 Bus I2C và các thiết bị ngoại vi Hình 2.14 Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ nhanh (Fast mode) Hình 2.15 Truyền nhận giữa thiết bị chủ và tớ ( Master – Slave ) Hình 2.16 Điều kiện Start và Stop của bus I2C Hình 2.17 Quá trình truyền tải 1 bit dữ liệu Hình 2.18 Dữ liệu truyền trên bus I2C Hình 2.19 Bit ACK trên bus I2C Hình 2.20 Lưu đồ thuật toán truyền nhận dữ liệu Hình 2.21 Cấu trúc byte dữ liệu đầu tiên Hình 2.22 Quá trình truyền dữ liệu Hình 2.23 Ghi dữ liệu từ chủ đến tớ Hình 2.24 Đọc dữ liệu từ thiết bị tớ Hình 2.25 Quá trình đọc ghi phối hợp dữ liệu Hình 2.26 Sơ đồ tín hiều đầu vào ra của bộ lọc Kalmanvii Hình 2.27 Cảm biến GY86 Hình 2.28 Sơ đồ nguyên lý cảm biến MPU6050 Hình 2.29 Bộ KIT Tiva C Hình 3.1 Nguyên lý hoạt động robot hai bánh tự cân bằng Hình 3.2 Hình chiếu cạnh của con lắc ngược 2 bánh Bảng 3.3 Chọn giá trị cho biến mờ đạo hàm sai số Hình 3.4 Ngõ vào sai số của hàm mờ Hình 3.5 Ngõ vào đạo hàm của sai số theo thời gian Hình 3.6 Mối quan hệ đầu vào ra Hình 3.7 Mô hình mô phỏng FuzzyPID Hình 3.8 Đáp ứng đầu ra khi chỉ dùng hệ số Kp Hình 3.9 Đáp ứng đầu ra khi dùng hệ số Kp và fuzzy Hình 3.10 Đáp ứng đầu ra khi dùng bộ PD Hình 3.11 Đáp ứng đầu ra khi dùng bộ PD Fuzzy Hình 3.12 Tín hiệu điều khiển của bộ PD và PD Fuzzy Hình 3.13 Đáp ứng đầu ra của PD và PD Fuzzy Hình 4.1 Lưu đồ giải thuật Hình 4.2 Lưu đồ khối điều khiển cân bằng Hình 4.3 PIN KPOWER 3S 11.1V 2200mAh 25C Hình 4.4 Đông cơ DC 12V Hình 4.5 Mạch nguồn LD 1085 Hình 4.6 Hình ảnh thực tế Hình 4.7 Driver cầu H Hình 4.8 Sơ đồ kết nối cầu H Hình 4.9 Kết nối cảm biến vào vi điều khiển Hình 4.10 Hình robot nhìn từ trên xuống Hình 4.11 Robot nhìn trực diện` Mục Lục TÓM TẮT ĐỀ TÀI ............................................................................................ i Lời cảm ơn ....................................................................................................... iii DANH MỤC CÁC TỪ VIẾT TẮT ................................................................. iv DANH MỤC CÁC BẢNG BIỂU ..................................................................... v DANH SÁCH HÌNH ẢNH VÀ BIỂU MẪU .................................................. vi CHƯƠNG 1: TỔNG QUAN ............................................................................. 1 1.1 Lời nói đầu .............................................................................................. 1 1.2 Các công trình nghiên cứu liên quan ..................................................... 2 1.2.1 Nbot .................................................................................................. 2 1.2.2 Twowheeled inverted pendulum .................................................... 3 1.2.3 Balance bot I .................................................................................... 4 1.2.4 Segway ............................................................................................. 4 1.2.5 HTV .................................................................................................. 7 1.3 Mục tiêu đề tài ......................................................................................... 8 1.4 Giới hạn đề tài ......................................................................................... 8 1.5 Phương pháp nghiên cứu ......................................................................... 9 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ............................................................... 10 2.1 Thế nào là xe hai bánh tự cân bằng ....................................................... 10 2.2 Tại sao phải thiết kế xe hai bánh cân bằng ........................................... 11 2.3 Ưu nhược điểm của xe hai bánh tự cân bằng ........................................ 12 2.3.1 Ưu điểm của xe scooter tự cân bằng trên hai bánh ........................ 12 2.3.2 Nhược điểm của xe ........................................................................ 13 2.4 Khả năng ứng dụng ............................................................................... 13` 2.5 Giới thiệu thuật toán PID ...................................................................... 13 2.5.1 Thành phần tỉ lệ (P) ........................................................................ 14 2.5.2 Thành phần tích phân (I) ................................................................ 14 2.5.3 Thành phần vi phân (D) ................................................................. 14 2.5.4 Chỉnh định tham số bộ điều khiển PID .......................................... 15 2.6 Lý thuyết điều khiển mờ (Fuzzy Logic Control) .................................. 16 2.6.1 Định nghĩa tập mờ.......................................................................... 16 2.6.2 Các phép toán trên tập hợp mờ ...................................................... 17 2.6.3 Tính chất của tập hợp mờ............................................................... 19 2.6.4 Biến mờ và biến ngôn ngữ............................................................. 20 2.6.5 Mệnh đề mờ và mệnh đề hợp thành ............................................... 21 2.6.6 Các luật hợp thành.......................................................................... 22 2.6.7 Giải mờ........................................................................................... 22 2.6.8 Hệ quy tắc mờ ................................................................................ 23 2.6.9 Xây dựng bộ điều khiển Fuzzy ...................................................... 24 2.7 Cấu trúc bộ điều khiển FuzzyPID ........................................................ 26 2.8 Giới thiệu về I2C ................................................................................... 26 2.8.1 Đặc điểm giao tiếp I2C .................................................................. 27 2.8.2 START and STOP conditions ........................................................ 29 2.8.3 Định dạng dữ liệu truyền................................................................ 30 2.8.4 Định dạng địa chỉ thiết bị............................................................... 32 2.8.5 Truyền dữ liệu trên bus I2C, chế độ MasterSlave ........................ 32 2.9 Giới thiệu về Kalman ........................................................................... 34 2.9.1 Giới thiệu lý thuyết về bộ lọc Kalman ........................................... 34 2.9.2 Xử lý dữ liệu đọc từ cảm biến MPU6050 ...................................... 36` 2.9.3 Áp dụng bộ lọc Kalman cho việc xử lý tín hiệu từ cảm biến MCU6050 ................................................................................................ 37 2.10 Cảm biến Gyo86 ................................................................................ 40 2.11 Board Tiva C ....................................................................................... 41 CHƯƠNG 3: THIẾT KẾ BỘ ĐIỀU KHIỂN .................................................. 43 3.1 Nguyên lý hoạt động của robot hai bánh tự cân bằng........................... 43 3.2. Mô hình hóa robot hai bánh tự cân bằng ............................................. 43 3.2.1. Mô tả phần cứng ............................................................................ 43 3.2.2 Mô hình toán học ........................................................................... 45 3.3 Thiết kế bộ điều khiển FUZZYPID cho robot hai bánh tự cân bằng .. 49 3.3.1 Thiết kế FUZZY ............................................................................. 49 3.3.2 Kết quả mô phỏng của FUZZYPID .............................................. 52 3.3.3 Chọn bộ điều khiển ........................................................................ 54 CHƯƠNG 4: ................................................................................................... 56 THI CÔNG THỰC NGHIỆM ......................................................................... 56 4.1 Lưu đồ giải thuật ................................................................................... 56 4.2 Chọn động cơ và pin ............................................................................. 58 4.2.1 Chọn pin ......................................................................................... 58 4.2.2 Chọn động cơ ................................................................................. 58 4.3 Các mạch điều khiển ............................................................................. 59 4.3.1 Mạch nguồn .................................................................................... 59 4.3.2 Driver cầu H ................................................................................... 60 4.3.3 Kết nối cảm biến với vi điều khiển ................................................ 60 4.4 Mô hình thực tế ..................................................................................... 61 CHƯƠNG 5: ................................................................................................... 63 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI ........................................ 63` 5.1 Các kết quả đã đạt được ........................................................................ 63 5.2 Các kết quả chưa đạt được .................................................................... 63 5.3 Hướng phát triển của đề tài ................................................................... 63 Tài liệu tham khảo ........................................................................................... 64` CHƯƠNG 1: TỔNG QUANChương 1 Tổng Quan Đồ án tốt nghiệp 1 1.1 Lời nói đầu Sự phát triển mạnh mẽ của khoa học kỹ thuật đã tạo tiền đề cho ngành công nghệ robot đạt được những thành tựu to lớn như: robot asio của Honda, robot công nghiệp, robot thám hiểm mặt trăng,… Để đạt được những thành tựu đó ta phải nghiên cứu những vấn đề cân bằng cơ bản để đạt đến những thành tựu công nghệ robot hiện nay thông qua xe hai bánh tự cân bằng Segway, một phát minh nổi tiếng của kỹ sư người Mỹ Dean Kamen vào năm 2001. Đây là một loại robot hai bánh, nó tự giữ cân bằng và di chuyển dễ dàng trong khoảng không gian vừa đủ với yêu cầu linh hoạt, cơ động, hiệu quả. Với những ưu điểm đó, robot hai bánh tự cân bằng đã nhận được sự quan tâm từ các nhà nghiên cứu robot trên thế giới. Do đó, đề tài được xuất phát từ ý tưởng đã được thương mại hóa của công ty Segway. Trên mô hình sản phẩm của Segway với các cảm biến được sử dụng để đọc tín hiệu cảm biến về giá rất là cao. Bên cạnh đó, trình độ về cơ khí chưa cho phép để thiết kế một mô hình hoàn hảo. Do vậy, chúng ta sẽ kết hợp cảm biến giá rẻ phù hợp với điều kiện cho phép kết hợp cùng một mô hình đơn giản cho ra hệ thống xe hai bánh tự cân bằng. Hệ thống là một robot có hai bánh xe được đặt song song với nhau giữa những bản lề mica được xếp ba tầng. Trên hệ thống sử dụng cảm biến để đo góc nghiêng của thân xe, một mạch nguồn 5V cung cấp cho vi điều khiển, một mạch cầu H để cấp xung điều khiển bánh xe, một pin nguồn 12V để cung cấp cho mạch cầu H. Nhờ vào cảm biến được đặt trên hệ thống robot có thể tự giữ thăng bằng. Trên hệ thống robot, cảm biến khi sử dụng luôn bị nhiễu bởi tác động từ mọi thứ từ cơ phí đến sai số ngõ ra, do vậy giá trị đo khi của cảm biến lúc này là không chính xác, bộ lọc Kalman được nghiên cứu và sử dụng để cho kết quả tối ưu về tình trạng góc nghiêng của hệ thống. Nói cách khác thì Kalman là bộ lọc để biến các kết quả từ cảm biến chưa chính xác thành những kết quả có giá trị. Từ tín hiệu đo được, ta sẽ tính toán được các giá trị phù hợp để điều khiển bánh xe giúp cho hệ thống được thăng bằng một cách ổn định. Trong hiện tại, nhưng ưu điểm từ hệ thống robot hai bánh tự cân bằng đã được ứng dụng trên nhiều sản phẩm và hệ thống. Và hi vọng rằng trong tương lai đề tài này sẽ phát triển thêm nhiều hệ thống dưới các dạng khác nhau để phục vụ lợi ích của con người.Chương 1 Tổng Quan Đồ án tốt nghiệp 2 1.2 Các công trình nghiên cứu liên quan 1.2.1 Nbot Nbot do David P.Anderson sáng chế. Nbot được lấy ý tưởng cân bằng như sau: các bánh xe phải chạy về hướng mà robot sắp ngã. Hình 1.1 Nbot Điều khiển dựa trên mô hình không gian trạng thái: Hình 1.2: Giải thuật điều khiển NbotChương 1 Tổng Quan Đồ án tốt nghiệp 3  Góc nghiêng của robot: θ  Đạo hàm góc nghiêng chính là vận tốc góc nghiêng:   Vị trí robot: x  Đạo hàm của vị trí robot chính là vận tốc di chuyển của robot: x Bốn biến thông số này tính ra điện áp điều khiển U cho 2 động cơ của hai bánh xe theo công thức sau: U = K1 θ +K2θ +K3 x + K4 .x Ưu điểm: dể dàng thực hiện bộ điều khiển theo mô hình không gian trạng thái khi đã tuyến tính hóa điểm làm việc để xác định các ma trận A, B, C, D để tính các thông số K1, K2, K3, K4. Khuyết điểm: Vì phải tuyến tính hóa nên khi đối tượng làm việc quá xa điểm cân bằng ta phải tính lại các thông số K1, K2, K3, K4 nên đòi hỏi phải có bộ xử lý mạnh để tính các thông số này hoặc ta phải tính trước. 1.2.2 Twowheeled inverted pendulum Hình 1.3 Robot điều khiển bằng logic mờ Điều khiển dựa trên Fuzzy Logic được nhúng trên FPGA. Ưu điểm: do Fuzzy Logic được nhúng trên FPGA nên tốc độ đáp ứng rất nhanh và chính xác, cộng với bộ kinh nghiệm tốt là thế mạnh rất lớn của mô hình điều khiển dạng này. Khuyết điểm: chất lượng bộ điều khiển phụ thuộc rất nhiều bộ kinh nghiệm của tập mờ. Bộ điều khiển này chỉ có thể áp dụng cho một đối tượng duy nhất và giá thành rất đắt.Chương 1 Tổng Quan Đồ án tốt nghiệp 4 1.2.3 Balance bot I Balance bot I (do Sanghyuk, hàn quốc thực hiện) là một roboy hai bánh tự cân bằng bằng cách kiểm soát thông tin phải hồi. Hệ thống cao 50cm, khung chính là bằng nhôm. Nó có hai trục bánh xe nối với bộ giảm tốc và động cơ DC cho sự phát động. Tổng cộng có ba bộ xử lý Atmel được sử dụng. Vi điều khiển chính thi hành các nguyên lý kiểm soát và thuật toán ước lượng. Một vi điều khiển kiểm soát tất cả các cảm biến analog. Vi điều khiển thứ 3 điều khiển động cơ. Hình 1.4 Balance bot I Điều khiển dựa trên bộ điều khiển LQR Ưu điểm: ổn định một cách bền vững đối với sai số nhân đầu vào đặc biệt là đối với hệ thống này thì tín hiệu góc pitch của gyro sensor rất biến động. Hệ thống làm rất ổn định tại điểm làm việc. Khuyết điểm: Vì phải tuyến tính hóa đối tượng phi tuyến nên khi đối tượng làm việc quá xa điểm cân bằng ta phải tính lại các thông số của bộ điều khiển nên đòi hỏi phải có bộ xử lý mạnh để tính lại các thông số. 1.2.4 Segway Không giống như xe hơi, Segway chỉ có hai bánh trông như một chiếc xe đẩy hai bánh thông thường, nó có thể kiểm soát hoạt động ở tư thế thẳng đứng. Để di chuyển về phía trước hay ra phía sau, người lái chỉ cần hơi nghiêng về phía trước hay ra sau. Để quẹo trái hay phải người lái chỉ cần quay tay lái về hướng đó. Hoạt động cân bằng ở Segway là một điều thú vị nhất, đó là chìa khóa của quá trình hoạt động. Xem xét về mô hình Karmen về thăng bằng của cơ thể người để hiểu hệChương 1 Tổng Quan Đồ án tốt nghiệp 5 thống làm việc như thế nào. Nếu ta đứng nghiêng về phía trước, không còn thăng bằng, bạn sẽ ngã về phía trước. Bộ não biết rằng bạn không còn thăng bằng nữa, bởi vì chất dịch trong tay dao động, nên nó truyền tín hiệu cho chân bạn đặt lên phía trước là bạn lấy lại cân bằng. Nếu bạn giữ cơ thể mình trong tư thế nghiêng về phía trước, bộ não điều khiển bạn đặt chân về phía trước và giữ bạn thẳng đứng. Thay vì ngã, bạn đến trước. Hình 1.5 Segway Segway tạo ra khá giống như vậy, ngoại trừ có các bánh xe thay vì đôi chân, động cơ thay cho cơ bắp, tập hợp các mạch vi xử lý thay cho bộ não và dãy các cảm biến thay cho hệ thống cân bằng tai trong. Như bộ não của bạn Segway nhận biết khi ta hướng về phía trước. Để giữ cân bằng nó quay bánh xe đến trước chỉ với tốc độ vừa phải (chính xác), nên ta di chuyển về phía trước. Thiết bị lái tận dụng công nghệ lái drivebywire và thiết bị cơ khí của hệ thống. Trong khi việc thiết kế bốn bánh mang đến một sự vận động dễ dàng và tốc độ cao hơn một tí, người lái có thể chọn thiết kế bốn bánh hay chỉ hai bánh. Điều quan trọng của Segway là sự kết hợp của một dãy các cảm biến, hệ thống điều khiển và một hệ thống động cơ.Hệ thống cảm biến chủ yếu là sự kết hợp của con quay hồi chuyển (gyroscope). Một con quay hồi chuyển cơ học cơ bản là một bánh xe quay tròn bên trong cơ cấu vững chắc. Mục đích của sự quay tròn là kháng lại sự thay đổi trục quay của nó, bởi vì lực tác động di chuyển dọc theo cơ cấu. Nếu ta đẩy một điểm bên trên bánh xe quay, ví dụ, điểm này di chuyển quay bánh trước trong khi nó vẫn còn giữ lực tác động. Một khi lực giữ di chuyển, nó thúc lực tác dụng đối diện với điểm cuối của bánh xe. Kết quả là không còn cân bằng lực.Chương 1 Tổng Quan Đồ án tốt nghiệp 6 Bởi vì nó kháng đối với lực bên ngoài, bánh xe quay hồi chuyển sẽ duy trì vị trí của nó trong không gian (liên hệ với mặt đất) thậm chí nếu bạn nghiêng nó đi. Nhưng hệ thống con quay hồi chuyển sẽ di chuyển tự do trong không gian. Bằng việc đo lường vị trí của bánh xe quay liên hệ với cơ cấu, cảm biến chính xác có thể cho ta biết độ dốc của vật (nó nghiêng bao nhiêu so với vị trí thẳng đứng) cũng như tốc độ dốc (nó nghiêng như thế nào). Một con quay hồi chuyển thông thường sẽ cồng kềnh và khó bảo dưỡng xe, nên Segway tiếp thu hiệu quả này với hình thức khác của cơ khí. Segway vận dụng một cảm biến tốc độ nghiêng bán dẫn đặc biệt làm từ silic. Loại con quay hồi chuyển này quay định sự quay vòng của vật thể sử dụng hiệu ứng Coriolis trên một lớp rất nhỏ. Segway HT có năm cảm biến hồi chuyển, mặc dù nó chỉ cần ba cảm biến để phát hiện mức đẩy ra trước hay ra sau cũng như nghiêng sang bên trái hay bên phải. Các cảm biến còn lại làm phương tiện chắc chắn hơn. Thêm vào đó, Segway có hai cảm biến nghiêng chứa đầy dung dịch điện phân. Giống như tai trong, hệ thống nhận biết vị trí nghiêng có liên hệ với mặt đất trong trạng thái nghiêng của bề mặt dung dịch. Tất cả thông tin về trạng thái nghiêng truyền đến “bộ não” của xe, hai bản mạch điều khiển điện tử bao gồm một board vi mạch xử lý. Segway có tổng cộng mười bảng mạch vi xử lý, với năng lực gấp ba năng lực của PC điển hình. Thông thường cả hai bảng mạch làm việc chung với nhau nếu một bảng bị hư, bảng còn lại nhận tất cả chức năng để hệ thống báo tín hiệu cho người lái biết sự trục trặt để khởi động lại. Segway đòi hỏi năng lực làm việc cao của bộ não vì nó điều chỉnh cực kỳ chính xác để giữ không bị ngã. Trong những máy thông thường, bảng mạch điều khiển kiểm tra cảm biến khoảng 100 lầngiây. Mạch vi xử lý điều hành phần mềm tương thích để phát tín hiệu tất cả các thông tin ổn định và điều chỉnh tốc độ cho nhiều động cơ điện phù hợp. Động cơ điện được nạp năng lượng từ pin (NiMH) có thể sạc lại, làm quay độc lập mỗi bánh xe với tốc độ khác nhau. Khi xe nghiêng về phía trước, động cơ làm cả hai bánh xe quay về phía trước và giữ về trạng thái nghiêng. Khi xe nghiêng ra sau, động cơ làm cả hai bánh quay ra sau. Khi người lái điều khiển tay lái ra trái hay phải, động cơ làm một trong hai bánh xe quay nhanh hơn bánh kia hay bánh xe quay ngược chiều để xoay vòng. Nó chỉ đi khoảng 12 dặmgiờ ( 20kmgiờ), và nó cần nạp điện khoảng 6 giờ để dự trữ năng lượng đủ cho một chuyến đi 15 dặm ( 24km).Chương 1 Tổng Quan Đồ án tốt nghiệp 7 Segway là lựa chọn cao trong thành phố. Vì các xe hơi đắt tiền và nếu có nhiều xe trên đường phố sẽ gây ùn tắc giao thông, và thiếu chỗ đậu xe. Tất cả điều ấy, xe hơi không là phương tiện tối ưu nhất trong các chung cư đông đúc.Segway không để đưa con người đến nơi muốn đến với độ cao với tốc độ cao nhất, nhưng Segway có thể di chuyển chậm, nối đuôi nhau. Một khi nó đến nơi, người lái có thể mang Segway vào bên trong mà không lo lắng vì về chỗ đậu xe. Và cũng không cần ngừng ở trạm xăng mà chỉ cần nạp điện ở nhà. Segway cũng là chiếc máy tốt dùng để đi trong các kho hàng, nơi có nhiều hành lang. Người ta còn nhận thấy sự hữu dụng khi đi quanh trong các khu dân cư, sân bay hay công viên. Thật sự không có giới hạn không gian sử dụng xe. Segway giúp bạn di chuyển nhanh hơn mà không mất nhiều năng lượng.  Tốc độ cao nhất: 12,5 dặmgiờ (20 kmgiờ). Gấp ba lần tốc độ đi bộ bình thường.  Trọng lượng không tải: 80 lbs (36 kg).  Chiều rộng: không gian bao phủ trên mặt đất của Segway là 19 – 25 inch (48 – 63,5 cm). Segway có chiều rộng gần bằng kích thước của một người trung bình, nên nó không mất nhiều diện tích trên đường. Bàn đạp dài 8 inch (20 cm).  Tải trọng: một người nặng 250 pound (110 kg) với hàng hóa nặng 75 pound (34 kg).  Phạm vi: đi khoảng 17 dặm (28 km) với một bình sạc đơn. Trên mô hình tính toán, người thiết kế ước tính xe đi trong phạm vi 11 dặm (17 km) với một bình sạc đơn.  Giao diện hiển thị xe hoạt động: Segway có màn hình LCD nhỏ cho người biết năng lượng pin còn bao nhiêu và hoạt động của xe như thế nào, còn tốt không. Màn hình trình bày bề mặt hoạt hình, biểu diễn trạng thái chung của phương tiện. 1.2.5 HTV Nhóm sinh viên ngành kỹ thuật HTV của trường đại học Camosun gồm các thành viên Brian Beckwith, Eric Desjardins, Chris Howard, Joel Murphy, Matt Uganecz, Jack Wooley đến từ các bang khác nhau Victoria, British Columbia của Canada. Tháng 32004, họ đã cho ra đời sản phẩm scooter HTV như một đề án tốt nghiệp đại học của họ.Chương 1 Tổng Quan Đồ án tốt nghiệp 8 Hình 1.6 Xe hai bánh tự cân bằng HTV và nhóm thực hiện Nhóm HTV đã sử dụng ADXR150EB từ thiết bị analog đo vận tốc nghiêng. Đó là một gyro tuyệt vời, có các tính năng như: loại bỏ độ rung cao, tỉ số cao ±1500s., độ nhạy cao 12m Vdegs, được cài đặt sẵn tín hiệu điều kiện. MMA2260D từ Motorola, một gia tốc kế có độ nhạy cao (1200m VG), và cũng được cài đặt sẵn tín hiệu điều kiện, dùng đo góc nghiêng tĩnh. Bộ điều khiển sử dụng Logic mờ (Fuzzy Logic) trong việc điều khiển cân bằng và di chuyển xe. 1.3 Mục tiêu đề tài Mục tiêu của đề tài này là xây dựng hệ thống robot hai bánh tự cân bằng dựa trên nền tảng lý thuyết mô hình con lắc ngược. Khả năng cân bằng của robot một cách ổn định sau khi bị tác động. 1.4 Giới hạn đề tài Trong khuôn khổ 16 tuần thực hiện luận văn tốt nghiệp đại học, những mục tiêu của đề tài được đưa ra như sau:  Thi công hệ thống robot hai bánh tự cân bằng.  Nghiên cứu bộ vi điều khiển ARM CortexM4.  Nghiên cứu lập trình C cho ARM CortexM4 bằng IAR.  Nghiên cứu thiết kếthi công công phần mạch điều khiển, công suất  Thiết kế và mô phỏng bộ điều khiển PID Fuzzy trên Simulink.  Tiến hành thu thập dữ liệu từ mô hình mô phỏng để đánh giá đáp ứng của hệ thống.Chương 1 Tổng Quan Đồ án tốt nghiệp 9  Tiến hành chạy thực nghiệm và phân tích đáp ứng của hệ thống và so sánh với kết quả mô phỏng. 1.5 Phương pháp nghiên cứu  Xây dựng mô hình lý thuyết gồm có:  Tiếp cận từ mô hình tương đương mô hình con lắc ngược đến mô hình thật của đề tài.  Mô phỏng mô hình trên MATLAB.  Tiếp cận mô hình thực:  Thiết kế khung cơ khí cho hệ thống.  Mạch nguồn 12V và 5V cung cấp cho mạch cầu H, vi điều khiển.  Module cảm biến Gyro – 86.  Vi điều khiển trung tâm.  Lập trình cho vi điều khiển.CHƯƠNG 2: CƠ SỞ LÝ THUYẾTChương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 10 2.1 Thế nào là xe hai bánh tự cân bằng Hình 2.1 Mô hình Nguyên lý giữ thăng bằng Đối với các xe ba hay bốn bánh, việc giữ thăng bằng của chúng là do trọng tâm nằm trong mặt chân đế do các bánh xe tạo ra. Đối với các xe hai bánh có cấu trúc như xe đạp, việc giữ thăng bằng khi không di chuyển là không thể, vì việc giữ thăng bằng của xe dựa vào tính chất của con quay hồi chuyển ở hai bánh xe khi đang quay. Còn đối với xe hai bánh tự cân bằng, là loại xe chỉ có hai bánh với trục của hai bánh trùng nhau, để cho xe cân bằng, trọng tâm của xe (bao gồm người sử dụng chúng) cần được nằm ngay giữa các bánh xe. Điều này giống như việc ta giữ một cây gậy thẳng đứng nằm cân bằng trong lòng bàn tay. Về mặt kỹ thuật, góc của sàn scooter và chiều của trọng lực có thể biết được. Do vậy, thay vì cách xác định trọng tâm giữa các bánh xe, tay lái cần được giữ thẳng đứng, vuông gốc với sàn (góc cân bằng khi đó là zero). . Hình 2.2 Mô tả cách bắt đầu di chuyển Nếu tay lái được đẩy hơi nghiêng về trước, scooter sẽ chạy tới trước và khi được đẩy nghiêng về phí sau, scooter sẽ chạy lùi. Đây là một phân tích lý tính. Hầu hết mọi người đều có thể kiểm soát tay lái trong vòng vài giây và giữ lấy nó.Để dừng lại, chỉ cần kéo trọng tâm về phía ngược với hướng đang di chuyển thì tốc độChương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 11 xe sẽ giảm. Do tốc độ cảm nhận và phản ứng thăng bằng của mỗi người là khác nhau, nên xe scooter hai bánh tự cân bằng chỉ thiết kế dành cho một người. 2.2 Tại sao phải thiết kế xe hai bánh cân bằng Những mobile robot xây dựng hầu hết robot là những robot di chuyển bằng ba bánh xe, với hai bánh xe được lắp rắp đồng trục, và một bánh đuôi nhỏ. Có nhiều kiểu khau, nhưng đây là kiểu thông dụng nhất. Còn đối với xe bốn bánh thường một lại được lắp thêm một bánh lái. Việc thiết kế ba hay bốn bánh làm cho xemobile robot được thăng bằng ổn đinh nhờ trọng lượng của nó được chia cho hai bánh lái chính và bánh đuôi, hay bất kì cái nào khác để đỡ trọng lượng của xe. Nếu trọng lượng được đặt nhiều vào bánh lái của xerobot sẽ không ổn định dễ bị ngã, còn nếu đặt nhiều vào bánh đuôi thì hai bánh chính mất khả năng bám. Nhiều thiết kế xerobot có thể dic chuyển tốt trên đia hình phẳng, nhưng không thể di chuyển trên địa hình lồi lõm (mặt phẳng nghiêng). Khi di chuyển lên đồi, trọng lượng của xerobot dồn vào đuôi xe làm hai bánh mất khả năng bám và trượt ngã. Đối với những bậc thang, thậm chí nó dừng hoạt động và chỉ xoay tròn bánh xe. Khi di chuyển xuống đồi, sự việc còn tồi tệ hơn, trọng tâm thay đổi về phía trước và thậm chí xerobot bị lật úp khi di chuyển trên bậc thang. Hầu hết những xerobot có thể leo lên những dốc ít hơn là khi chúng dichuyển xuống, bị lật úp khi độ dốc chỉ 150 hay 200 . Việc bố trí bốn bánh xe, giống như xe hơi đồ chơi hay các loại xe bốn bánh đang sữ dụng trong giao thông không gặp vấn đề nhưng điều này sẽ làm các mobile robot không gọn gàng và thiết kế bộ phận lái (cua quẹo) gặp một chút phiền toái để có thể đọc chính xác quãng đường đã đi.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 12 Ngược lại, các xe dạng hai bánh đồng trục hay thăng bằng rất linh động khi di chuyển trên đia hình phức tạp, mặc dù bản thân là một hệ thống không ổn định. Khi nào di chuyển lên sườn dốc nó tự động nghiêng về phía trước và giữ cho trọng lượng dồn về hai bánh lái chính. Tương tựu như vậy, khi xuống dốc nó sẽ nghiêng ra sau và giữ cho trọng tâm dồn vào hai bánh lái. Chính vì vậy, không bao giờ có hiện tượng trọng tâm của xe rơi ra ngoài vùng đỡ của các bánh xe để có thể gây ra sự lật úp. Hình 2.4 Trạng thái xe hai bánh di chuyển trên địa hình phẳng, dốc Đối với những địa hình lồi lõm và những ứng dụng thực tế, sự thăng bằng của xe hai bánh có thể mang lại nhiều ý nghĩa trong giới hạn ổn định hơn là đối với xe ba bánh truyền thống. 2.3 Ưu nhược điểm của xe hai bánh tự cân bằng 2.3.1 Ưu điểm của xe scooter tự cân bằng trên hai bánh  Không ô nhiễm, sự dùng bình điện và có thể sạc điện.  Sử dụng không gian hiệu quả, đa dạng (sử dụng trong nhà và ngoài phố).  Dễ dàng lái xuống đường, dừng lại và nó chuyện với bạn bè. Scooter tự cân bằng này khác hẳn với các loại xe đạp hay xe đẩy bình thường, vì chúng dễ kéo đẩy và không gây khó khăn khi dừng lại.  Khá dễ để lái vòng quanh văn phòng, chạy ngang qua cửa ra vào do dốc độ thấp. Ngoài ra, nó có thể xuống các bậc thang, bậc thềm thấp.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 13  Chiếm ít diện tích nên nó không gây tắt nghẽn giao thông như các loại xe bốn bánh. Như một phương tiện di chuyển trên vỉa hè, nó cho phép di chuyển trong nơi đông đúc, và hoàn toàn có thể đi trên lề đường.  Giá thành thấp hơi so với xe hơi.  Cuốn hút người sử dụng cũng như mọi người xung quanh vì hình dáng kì lạ của nó, phá vỡ các hình ảnh thường thấy về các phương tiện giao thông của con người. 2.3.2 Nhược điểm của xe  Không thể thư giãn và khá mệt trong di chuyển vì phải đứng để điều khiển. Vì đứng trên mặt sàn rung (do động cơ gây ra) và cứng làm chân mỏi. Do luôn giữ tư thế thẳng đứng để trọng lượng cơ thể đặt ở trọng tâm và đôi lúc gặp phải đoạn đường xấu khiến cơ thể người điều khiển mỏi mệt.  Không thể làm những việc khác khi đứng trên scooter này, chẳng hạn vừa đi vừa nghe điện thoại, hoặc uống nước.  Scooter không đủ nhanh để di chuyển đường trường và không đủ an toàn để lên xuống lề đường.  Không thể vận chuyển hai người một lúc trên cùng một xe.  Không thể leo bậc thang có chiều cao quá 12 bán kính của xe. 2.4 Khả năng ứng dụng Xây dựng được một phương tiện vận chuyển mới trong khu vực chật hẹp có thể di chuyển ngay trong các chung cư tòa nhà cao tầng, dùng trợ giúp di chuyển cho người già và trẻ em vận chuyển. Làm phương tiện vận chuyển hàng hóa đến các nơi đã lập trình sẵn trong các tòa nhà, phòng làm việc, những không gian chật hẹp, khó xoay sở. Thậm chí kết hợp trên các robot có hình dạng tương tự con người, nếu kết hợp với các robot camera, robot dò đường, robot lái mặt đường thì hiệu quả các công dụng cụ thể cực kỳ linh hoạt. Tuy vậy vẫn phải giải quyết thêm về phần xuống cầu thang. 2.5 Giới thiệu thuật toán PID Có thể nói trong lĩnh vực điều khiển, bộ điều khiển PID được xem như là một giải pháp đa năng cho các ứng dụng điểu khiển tương tự hay điều khiển số. Hơn 90% các bộ điều khiển trong công nghiệp được sử dụng là bộ điều khiển PID. Nếu được thiết kế tốt, bộ điều khiển PID có khả năng đáp ứng tốt các chỉ tiêu chấtChương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 14 lượng: chất lượng đáp ứng nhanh, thời gian quá độ ngắn, độ quá điều chỉnh thấp, triệt để được sai lệch tĩnh. Các tham số của bộ điều khiển là KP , K I (hoặc Ti ), K D (hoặc TD ). 2.5.1 Thành phần tỉ lệ (P) u t K e t ( ) ( )  p (2.1) Tác động của thành phần tích phân đơn giản là tín hiệu là tín hiệu điều khiển tỉ lệ tuyến tính với sai lệch điều khiển. Ban đầu, khi sai lệch lớn thì tín hiệu điều khiển lớn. Sai lệch giảm dần thì tín hiệu điều khiển cũng giảm dần. Khi sai lệch e t ( ) 0  thì u t ( ) 0  . Một vấn đề là khi sai lệch đổi dấu thì tín hiệu điều khiển cũng đổi dấu. Thành phần P có ưu điểm là tác động nhanh và đơn giản. Hệ số tỉ lệ K P càng lớn thì tốc độ đáp ứng càng nhanh, do đó thành phần P có vai trò lớn trong giai đoạn đầu của quá trình quá độ. Tuy nhiên, khi hệ số K P càng lớn thì sự thay đổi của tín hiệu điều khiển càng mạnh dẫn đến dao động lớn, đồng thời làm hệ nhạy cảm với nhiễu đo. Hơn nữa, đối với đối tượng không có đặc tính tích phân thì sử dụng bộ P vẫn tồn tại sai lệch tĩnh. 2.5.2 Thành phần tích phân (I) 0 ( ) ( ) t u t K e d  I   (2.2) Với thành phần là tích phân, khi tồn tại một sai lệch điều khiển dương, luôn làm tăng tín hiệu điều khiển, và khi sai lệch là âm thì luôn làm giảm tín hiệu điều khiển, bất kể sai lệch đó là nhỏ hay lớn. Do đó, ở trạng thái xác lập, sai lệch bị triệt tiêu e t ( ) 0  . Đây cũng là ưu điểm của thành phần tích phân. Nhược điểm của thành phần tích phân là do phải mất một khoảng thời gian để đợi e t ( ) về 0 nên đặc tính tác động của bộ điều khiển sẽ chậm hơn. Ngoài ra, thành phần tích phân đôi khi còn làm xấu đi tính động học của hệ thống, thậm chí có thể làm mất ổn định. Người ta thường sử dụng bộ PI hoặc PID thay vì một bộ I đơn thuần để cải thiện tốc độ đáp ứng, vừa đảm bảo yêu cầu tính động học của hệ thống. 2.5.3 Thành phần vi phân (D) ( ) u t ( ) de t dt  (2.3)Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 15 Mục đích của thành phần vi phân là cải thiện sự ổn định của hệ kín. Do động học của quá trình, nên sẽ tồn tại một khoảng thời gian trễ làm bộ điều khiển chậm so với sự thay đổi của sai lệch e(t) và đầu ra y(t) của quá trình. Thành phần vi phân đóng vai trò dự đoán đầu ra của quá trình và đưa ra phản ứng thích hợp dựa trên chiều hướng và tốc độ của sai lệch e(t), làm tăng tốc độ đáp ứng của hệ thống. Một ưu điểm nữa là thành phần vi phân giúp ổn định một số quá trình mà bình thường không ổn định với các bộ PI hay P. Nhược điểm của thành phần vi phân là rất nhạy với nhiễu đo hay của giá trị đặt do tính đáp ứng nhanh ở nêu trên. Luật điều khiển PID được định nghĩa: 1 ( ) ( ) ( ) ( ) t p D I o de t u t K e t e d T T dt             (2.4) Trong đó u là tín hiệu điều khiển và e là sai lệch điều khiển ( ) e y y   sp Tín hiệu điều khiển là tổng của 3 thành phần: Tỉ lệ, tích phân và vi phân. Hàm truyền của bộ điều khiển PID: D ( ) 1 1 ( ) (1 ) PI P I D P D ( ) i U s G s K K K s K T s E s s T s        (2.5) 2.5.4 Chỉnh định tham số bộ điều khiển PID Do từng thành phần của bộ PID có những ưu nhược điểm khác nhau, và không thể đồng thời đạt được tất cả các chỉ tiêu chất lượng một cách tối ưu, nên cần lựa chọn, thỏa hiệp giữa các yêu cầu chất lượng và mục đích điều khiển. Việc lựa chọn tham số cho bộ điều khiển PID cũng phụ thuộc vào đối tượng điều khiển và các phương pháp xác định thông số. Tuy nhiên, kinh nghiệm cũng là một khâu quản trọng trong khâu này. Có nhiều phương pháp để lựa chọn tham số cho bộ điều khiển PID. Ở đây, vì giới hạn về mặt nội dung nên chỉ trình bày về phương pháp phổ biến hay dùng, đó là phương pháp dựa trên đặc tính quá độ của quá trình thu được từ thực nghiệm với giá trị đặt thay đổi theo dạng bậc thang. Phương pháp ZieglerNichols dựa vào Kp, Ti, Td. Bước 1: Xem xét hệ số điều khiển tỉ lệ là dương hay âm. Để làm được điều này ta tăng tín hiệu đầu vào u lên một ít bằng thủ công rồi quan sát giá trị trạng thái xác lập của ngõ ra cũng tăng. Nếu điều này xảy ra, hệ số quá trình trạng thái xác lập là dương và ta có được hệ số điều khiển tỉ lệ Kc hoặc ngược lại.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 16 Bước 2: Chuyển bộ điều khiển sang chế độ P, tắt cả chế độ I và D. Bước 3: Thay đổi trọng số Kc tăng lên từ từ và quan sát đáp ứng ngõ ra. Đợi trạng thái xác lập ở ngõ ra trước khi hệ số Kc khác được thực thi. Bước 4: Kc đạt đến giá trị mà dao động trong các khoảng thời gian được duy trì hoặc gần sát với ngõ ra thì ta xác định Kc=Ku là hệ số tới hạn. Và thời gian dao động là Pu được gọi là thời gian tới hạn. Bước 5: Sử dụng trọng số tới hạn Ku và thời gian tới hạn Pu ta xác định được các giá trị Kc, ti, td theo phương pháp ZieglerNichols như sau: Hầu hết các ứng dụng công nghiệp hiện đại không còn điều chỉnh vòng điều khiển sử dụng các phương pháp tính toán thủ công như trên nữa. Thay vào đó, phần mềm điều chỉnh PID và tối ưu hóa vòng lặp được dùng để đảm báo kết quả chắc chắn hơn. Những gói phần mềm này sẽ tập hợp dữ liệu, phát triển các mô hình xử lý, và đề xuất phương pháp điều chỉnh tối ưu và nó có thể phát triển việc điều chỉnh bằng cách thu thập dữ liệu từ các thay đổi tham khảo. 2.6 Lý thuyết điều khiển mờ (Fuzzy Logic Control) 2.6.1 Định nghĩa tập mờ Trong toán học phổ thông ta đã học khá nhiều về tập hợp, ví dụ như các tập số thực, tập số nguyên P = {2,3,5,..} … Những tập hợp như vậy được gọi là tập hợp kinh điển hay tập rõ, tính “rõ” ở đây được hiểu là một tập xác định S chứa n phần tử thì ứng với phần tử x ta xác định được một giá trị y=S(x). Giờ ta phát biểu thông thường về tốc độ một chiếc xe : chậm, trung bình, hơi nhanh, rất nhanh. Phát biểu “chậm” ở đây không chỉ rõ là bao nhiêu kmh mà “chậm” ở đây có miền giá trị một khoảng nào đó, ví dụ 5kmh tới 10kmh chẵng hạn. Tập hợp L = { chậm, trung bình, hơi nhanh, rất nhanh } như vậy được gọi là tập biến các ngôn ngữ. Vỡi mỗi thành phần ngôn ngữ xk của phát biểu trên nếu nó nhận được một khả năng ( ) xk thì tập hợp F gồm các cặp ( , ( )) x x  k được gọi là tập mờ. Định nghĩa của tập mờ: Tập mờ F xác định trên tập kinh điển B là một tập mà mỗi phần tử của nó là một cặp giá trị ( , ( )) x x  k với x X  và F là một ánh xạ: Dạng điều khiển Kp Ti Td P control Ku2 PI control Ku2.2 Pu1.2 PID control Ku1.7 Pu2 Pu8Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 17 F ( ) : x B  0 1 trong đó F được gọi là hàm liên thuộc, B gọi là tập nền. Các thuật ngữ trong Fuzzy Logic Độ cao tập mờ F là giá trị H x  sup ( ) F trong đó sup ( ) F x chỉ là giá trị nhỏ nhất trong tất cả các chặn trên của hàm sup ( ) F x Một tập mờ có ít nhất một phần tử có độ phụ thuộc bằng 1 được gọi là tập mờ chính tắc, tắc là H = 1. Ngược lại, một tập mờ có H < 1 gọi là tập mờ không chính tắc. Miền xác định của tập mờ F, ký hiệu là S là tập con thỏa mãn: S x B x    { | ( ) 0} F (2.6) Miền tin cậy của tập mờ F, ký hiệu là T (tập con) thỏa mãn: S x B x    { | ( ) 1} F (2.7) Hình 2.5 Miền xác định và miền tin cậy của tập mờ Các dạng hàm thuộc (membership function) trong logic mờ Hình 2.6 Một số dạng hàm thuộc (Gaussian, PIshape, Sshape, Sigmoidal, Zshape) 2.6.2 Các phép toán trên tập hợp mờChương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 18 Phép giao Giao của hai tập mờ A~ và B~ có cùng cơ sở X là một tập mờ xác định trên cơ sở X có hàm liên thuộc xác định bởi biểu thức: Hình 2.7 Phép giao của hai tập mờ Giao hai tập mờ theo công thức MIN C~ (x)  min A~ (x), B~ (x) (2.8) Giao hai tập mờ theo công thức PROD C~ (x)   A~ (x)   B~ (x) (2.9) Phép hợp Hợp của hai tập mờ A~ và B~ có cùng cơ sở X là một tập mờ xác định trên cơ sở X có hàm liên thuộc xác định bởi biểu thức: Hình 2.8 Phép hợp của hai tập mờChương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 19 Hợp hai tập mờ theo công thức MAX A~B~ (x)  maxA~(x),B~(x) (2.10) Hợp hai tập mờ theo công thức SUM  A~B~ (x)  min1,  A~ (x)   B~ (x) (2.11) Phép bù Hợp của hai tập mờ A~ và B~ có cùng cơ sở X là một tập mờ xác định trên cơ sở X có hàm liên thuộc xác định bởi biểu thức: A~ :  A~ (x)  1  A~(x) (2.12) Hình 2.9 Phép bù của tập mờ 2.6.3 Tính chất của tập hợp mờ Tập mờ có các tính tương tự như tập rõ. Cụ thể như sau: Tính giao hoán: A B B A A B B A ~ ~ ~ ~ ~ ~ ~ ~       (2.13) Tính kết hợp:         A B C A B C A B C A B C ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~           (2.14) Tính phân phối:       A       B C A B A C A B C A B A B ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~             (2.15)Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 20 Tính bắc cầu: Nếu A~  B~  C~ thì A~  C~ (2.16) Tính lặp: A~  A~ (2.17) 2.6.4 Biến mờ và biến ngôn ngữ Con người suy nghỉ và giao tiếp với nhau bằng ngôn ngữ tự nhiên. Vì vậy muốn thiết kế một bộ điều khiển bắt chước sự suy nghĩ, xử lý thông tin và ra quyết định của con người, trước tiên ta cần biểu diễn được ngôn ngữ tự nhiên bằng mô hình toán học. Đặc điểm của ngôn ngữ tự nhiên là chứa đựng thông tin mơ hồ, không chắc chắn, mà tập mờ cũng chứa thông tin mơ hồ không chắc chắn nên rõ ràng có thể dùng tập mờ để biểu diễn ngôn ngữ tự nhiên. 2.6.4.1 Biến mờ Biến mờ là biến được đặc trưng bởi bộ ba phần tử , X , (x), trong đó α là tên biến, X là tập cơ sở,  (x) là một tập mờ định nghĩa trên cơ xở X biểu diễn sự hạn chế mờ ngụ ý bởi α. Ví dụ trong bài toán điều khiển mực chất lỏng, chúng ta có định nghĩa các biến mờ sau: cao, X ,cao(x) và (thấp, X, µthấp(x)). 2.6.4.2 Biến ngôn ngữ Biến ngôn ngữ là biến mà giá trị của nó là các từ ngữ hoặc những câu trong ngôn ngữ tự nhiên hay ngôn ngữ nhân tạo. Ví dụ: “Mực chất lỏng” là biến ngôn ngữ thì nó có thể có giá trị là các từ “cao”, “thấp”,... “ Độ tuổi” là biến ngôn ngữ thì nó có thể có giá trị là các từ “trẻ”, “trưởng thành”, “già”,.. Trong lý thuyết tập mờ biến ngôn ngữ được định nghĩa như sau: Biến ngôn ngữ là biến bậc cao hơn biến mờ, nó lấy biến mờ làm giá trị. Theo định nghĩa này, biến ngôn ngữ “mực chất lỏng” có thể nhận một trong các giá trị (cao, X, µcao(x)) và (thấp, X, µthấp(x)). Dễ thấy định nghĩa này rõ ràng, “mực chất lỏng” có thể nhận giá trị “cao” hoặc “thấp”, trong đó từ “cao” hoặc “ thấp” được mô tả bởi tập mờ µcao(x) hoặc µthấp(x) xác đinh trên tập cơ sở X. Vì vậy biến mờ là giá trị của biến ngôn ngữ nên còn được gọi là giá trị ngôn ngữ.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 21 2.6.5 Mệnh đề mờ và mệnh đề hợp thành 2.6.5.1 Mệnh đề mờ Mệnh đề mờ, ký hiệu P~ , là phát biểu có chứa thông tin rõ ràng. Các phát biểu diễn tả ý tưởng chủ quan như mô ta chiều cao hoặc trọng lượng của một người thường là mệnh đề mờ. Trong kỹ thuật, những phát biểu có dạng như sau là các mệnh đề mờ: “Nhiệt độ” là “cao”. “Mực chất lỏng” là “thấp”. “Vận tốc” là “trung bình”... Như vậy, mệnh đề mờ là phát biểu có dạng: “biến ngôn ngữ” là “giá trị ngôn ngữ”. Về mặt toán học, mệnh đề mờ là biểu thức: P~ : x A~ (2.18) Tập mờ A~ đặc trưng cho giá trị ngôn ngữ trong mệnh đề mờ. Khác với mệnh đề khinh điển chỉ có hai khả năng sai hoặc đúng (0 hoặc 1), giá trị thật của mệnh đề mờ là giá trị bất kỳ nằm trong đoạn 0,1. Gọi TP~ là giá trị thật của mệnh đề mờ ~P , TP~ chính là ánh xạ: T(P~) : X  0,1 (2.19) x   A~ (x) trong đó X là tập cơ sở của tập mờ A~ Nói cách khác: TP~  A~ (x) với 0   A~ (x)  1 (2.20) Biếu thức trên cho thấy “độ cứng” của mệnh đề P~ : x  A~ bằng độ phụ thuộc của x với tập mờ A~ . 2.6.5.2 Mệnh đề hợp thành Cấu trúc chung của mệnh đề hợp thành là “Nếu A thì B”. Trong đó: A là mệnh đề điều kiện. C  A  B là mệnh đề kết luận. Ví dụ điều khiển mực nước trong bồn chứa, ta quan tâm 2 yếu tố: Mực nước trong bồn L = {rất thấp, thấp, vừa}. Góc mở van ống dẫn G = {đóng, nhỏ, lớn}. Ta có suy diễn cách thức điều khiển như sau: Nếu “mực nước” = “rất thấp” thì “góc mở van” = “lớn”.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 22 Nếu “mực nước” = “thấp” thì “góc mở van” = “nhỏ”. Nếu “mực nước” = “vừa” thì “góc mở van” = “đóng”. 2.6.6 Các luật hợp thành Luật hợp thành là tên gọi chung của mô hình biểu diễn hay nhiều hàm thuộc cho một hay nhiều mệnh đề hợp thành. Các luật hợp thành cơ bản:  Luật Max – Min  Muật Max – Prod  Luật Sum – Min  Luật Sum – Prod Giả sử C~ (x)   A~ (x), B~ (x) , bốn phương pháp này dựa trên bốn phép toán Max, Min, Prod, Sum. Với Min và Prod là hai phép toán trên phép giao hai tập mờ, còn Max và Sum là hai phép toán trên phép hợp hai tập mờ. Được thể hiện như sau: Min: C~ (x)  min A~ (x),  B~ (x) (2.21) Prod: C~ (x)   A~ (x)   B~ (x) (2.22) Max: C~ (x)  max A~ (x),  B~ (x) (2.23) Sum: C~ (x)  min1,  A~ (x)   B~ (x) (2.24) 2.6.7 Giải mờ Giải mờ là quá trình xác định giá trị rõ ở đầu ra từ hàm thuộc B( ) y của tập mờ B’. Có 2 phương pháp giải mờ. Phương pháp cực đại Các bước thực hiện : Xác định miền chưa giá trị y y , là giá trị mà tại đó B( ) y đạt Max: G y Y y H    { | ( ) } B (2.25) Xác định y’ theo một trong 3 cách sau: Nguyên lý trung bình , Nguyên lý cận trái, Nguyên lý cận phải o Nguyên lý trung bình: chọn 1 2 2 y y y  Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 23 o Nguyên lý cận trái: chọn y y  1 o Nguyên lý cận phải: chọn y y  2 Giải mờ theo phương pháp cực đại Hình 2.10 Giải mờ theo phương pháp cực đại Phương pháp trọng tâm Điểm y’ được xác định là hoành độ của điểm trọng tâm miền được bao bởi trục hoành và đường B ( ) y Công thức xác định: ( ) ( ) s s y y dy y y dy     (2.26) Trong đó S là miền xác định của tập mờ B’ 2.6.8 Hệ quy tắc mờ Hệ quy tắc mờ có thể xem là mô hình toán biểu diễn tri thức, kinh nghiệm của con người trong việc giải quyết bài toán dưới dạng các phát biểu ngôn ngữ. Hệ quy tắc mờ bao gồm các quy tắc có dạng nếuthì, trong đó mệnh đề điều kiện và mệnh đề kết luận của mỗi quy tắc là mệnh đề mờ liên quan đến một hay nhiều biến ngôn ngữ. Điều này có nghĩa là hoàn toàn có thể sử dụng hệ mờ để giải các bài toán điều khiển một ngõ vào một ngõ ra (SISO) hay là nhiều ngõ vào nhiều ngõ ra (MIMO). Có hai loại quy tắc mờ phổ biến trong các hệ mờ hiện nay là quy tắc Mamdani và quy tắc TakagiSugeno (hay còn gọi tắt là Sugeno). 2.6.8.1 Quy tắc mờ Mamdani Kết luận của quy tắc mờ Mamdani là mệnh đề mờ được phát biểu theo công thức: ri: nếu (xi là A~1i ) và ... và (xn là A~ni ) thì (y1 là B~1i ), ... , (ym là B~mi ) (2.27) Trong đó n là số tín hiệu vào, m là số tín hiệu ra, i = i..k, với k là số quy tắc.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 24 Ví dụ, một quy tắc mờ Mandani như sau: Nếu sai số “lớn” và tốc độ thay đổi sai số nhỏ “nhỏ” thì tín hiệu điều khiển “lớn”. 2.6.8.1 Quy tắc mờ Sugeno Kết luận của quy tắc mờ Sugeno là một hàm của cáctín hiệu vào hệ mờ được biểu diễn theo công thức sau: Nếu (x1 là A~1i) và ... và (xn là A~ni ) Thì y1 = f1ix1,...,xn ,..., ym = f mix1,...,xn  (2.28) Trong đó n là số tín hiệu vào, m là tín hiệu ra, f là hàm của các tín hiệu vào. Ví dụ: một quy tắc điều khiển mờ Sugeno có dạng Nếu e “lớn” và e “nhỏ” thì u  4e  2e Trong đó u là tín hiệu điều khiển, e là sai số và e là biến thiên của sai số. 2.6.9 Xây dựng bộ điều khiển Fuzzy Hình 2.11 Sơ đồ cấu trúc bộ điều khiển mờ Một bộ điều khiển gốm 3 khâu cơ bản:  Khâu mờ hóa  Thực hiện luật hợp thành  Khâu giải mờ Các nguyên lý thiết kế hệ thống điều khiển mờ:Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 25  Giao diện đầu vào các khâu: mờ hóa và các khâu hiệu chỉnh như tỷ lệ, tích phân, vi phân  Thiết bị hợp thành: sự triển khai luật hợp thành R  Giao diện đầu ra gồm: khâu giải mờ và các khâu giao diện trực tiếp với đối tượng Trình tự thiết kế hệ thống điều khiển mờ:  Bước 1: Định nghĩa các biến ngôn ngữ vàora  Bước 2: Xác định các tập mờ cho từng biến ngôn ngữ vàora(mờ hóa)  Xác định miền giá trị vật lý của các biến ngôn ngữ  Số lượng tập mờ  Xác định các hàm thuộc  Rời rạc hóa tập mờ  Bước 3: Xây dựng các luật hợp thành  Bước 4: Chọn thiết bị hợp thành  Bước 5: Giải mờ và tối ưu hóa Một số nhược điểm của bộ điều khiển mờ thuần túy: Tuy điều khiển mờ có nhiều phát triển, nhưng cho đến nay vẫn chưa có các nguyên tắc chuẩn mực cho thiết kế cũng như khảo sát tính ổn định, bền vững, chất lượng quá trình, hay ảnh hưởng của nhiễu … cho các bộ điều khiển mờ. Chủ yếu việc thiết kế các bộ điều khiển này dựa trên kinh nghiệm chỉnh định thực nghiệm. Điểm yếu của lý thuyết mờ là những vấn đề về độ phi tuyến của hệ thống. Để khắc phục những nhược điểm đó, một trong những hướng giải quyết đó là kết hợp giữa phương pháp kinh điển (các bộ điều khiển P, PI, PID điều khiển biến trạng thái…) với logic mờ nhằm tận dụng ưu điểm của cả hai phương pháp. Đó là nguyên nhân ra đời các bộ điều khiển tích hợp như: Mờ PID, Mờ thích nghi – PID.Chương 2 Cơ Sở Lý Thuyết Đồ án tốt nghiệp 26 2.7 Cấu trúc bộ điều khiển FuzzyPID Sơ đồ khối bộ điều khiển FuzzyPID Hình 2.12 Sơ đồ khối cấu trúc bộ điều khiển FuzzyPID Ý tưởng về bộ PID Mờ ở đ

TÓM TẮT ĐỀ TÀI Robot hai bánh tự cân đối tượng có tính phi tuyến cao tương đối khơng ổn định Vì vậy, ta phải có phương pháp điều khiển để đưa hệ thống robot hai bánh vị trí cân mong muốn Một phương pháp ứng dụng vào điều khiển Fuzzy-PID Với ưu điểm hệ thống khí khơng q phức tạp, robot hai bánh tự cân sử dụng rộng rãi việc giảng dạy nghiên cứu lý thuyết điều khiển tự động xây dựng điều khiển số Hệ thống bao gồm: hai bánh xe gắn vào bệ robot kết nối với hai động DC thông qua truyền đai, bệ robot gắn với thân robot tượng trưng cho quay lắc ngược Cảm biến Gyro-86 sử dụng để tính góc xoay để đảm bảo thân robot xoay trục động Ta phải điều khiển để thân robot cân vị trí cân cho phép Mục tiêu đề tài xây dựng điều khiển FuzzyPID với luật điều khiển Max-Min để điều khiển đối tượng có độ phi tuyến ổn định Luật điều khiển mô Matlab Simulink kiểm nghiệm vi điều khiển CortexM4F Ưu điểm sử dụng Cortex-M4F để thực thi điều khiển là: giá thành rẻ, sử dụng linh hoạt dễ dàng ứng dụng vào thực tế thương mại hóa Cảm biến sử dụng Gyro giá rẻ đáp ứng yêu cầu đưa i ABSTRACT Two-wheeled self-balancing robot is an object of high nonlinearity and relatively unstable Therefore, we must have a new control method to give two-wheeled robotic system for the location of the desired balance One of the methods to be applied to control Fuzzy-PID that is With mechanical advantage system is not too complicated, two-wheeled self-balancing robot is widely used in teaching and research control theory as well as the construction of digital controllers The system includes: two wheels are attached to the base of the robot and connected to two DC motors through belt driven, the base of the robot is attached to the body of the robot's rotation represents the inverted pendulum rod Gyro-86 sensor is used to calculate the rotation angel of the robot body to ensure the rotation of the motor shaft Thus the body of the robot will orbit relative around the motor shaft We have to control the robot to be able to balance itself in a position to balance allows The objective of the project is to build Fuzzy-PID controller with Max-Min control law to control objects nonlinearity is stable This control law will be simulated by matlab simulink and tested on the Cortex-M4F microcontroller Advantages when using the Cortex-M4F to execute the controller are: low cost, flexible use and easy application into commercial reality when variables used Gyro sensor price cheap but still meet the request made ii Lời cảm ơn Nhóm khơng thể theo đuổi hồn thành đề tài luận văn tốt nghiệp vòng 16 tuần khơng có giúp đỡ người thân bạn bè xung quanh Do vậy, với trân trọng cảm kích, nhóm xin gửi lời cảm ơn đến thầy cơ, người thân gia đình bạn bè xung quanh chăm sóc, an ủi gặp trở ngại động viên nhóm để thực luận văn Lời cảm ơn đầu tiên, xin chân thành gửi đến Cô Nguyễn Trần Minh Nguyệt người tận tình hướng dẫn truyền đạt kiến thức giúp tơi hồn thành luận văn Điều quan trọng Th.S Nguyễn Trần Minh Nguyệt hướng nhóm tìm đường nghiên cứu thuật tốn có tính ứng dụng cao ngồi thực tiễn, phù hợp với sở thích niềm đam mê tơi Bên cạnh đó, tơi xin chân thành gửi lời cảm ơn đến quý thầy cô môn Điều Khiển Tự Động: thầy Nguyễn Minh Tâm, cô Nguyễn Trần Minh Nguyệt, thầy Lê Chí Kiên, thầy Trương Đình Nhơn thầy Nguyễn Đình Phú,… cho nhóm kiến thức bổ ích q giá q trình học tập để ứng dụng vào nghiên cứu phát triển đề tài ứng dụng vào công việc sau Tôi xin chân thành gửi lời cảm ơn đến tất bạn đại học khóa 2012 động viên, giúp đỡ, trao đổi kiến thức với suốt khóa học Cuối cùng, tơi xin chân thành cảm ơn quan tâm, hỗ trợ, tạo điều kiện động viên vật chất lẫn tinh thần thành viên gia đình suốt thời gian qua Tp.HCM, ngày 19 tháng 07 năm 2016 Nhóm thực đề tài Nguyễn Tấn An Lê Minh Trí iii DANH MỤC CÁC TỪ VIẾT TẮT PID: Proportional-Integral-Derivative NE: Negative ZE: Zero PO: Positive NB: Negative Big NS:Negative Small ZE: Zero PS: Positive Small PB: Positive Big iv DANH MỤC CÁC BẢNG BIỂU Bảng 3.1 Luật suy luận mờ Bảng 3.2 Chọn giá trị cho biến mờ sai số Bảng 3.3 Chọn giá trị cho biến đạo hàm sai số v DANH SÁCH HÌNH ẢNH VÀ BIỂU MẪU Hình 1.1 Nbot Hình 1.2 Giải thuật điều khiển Nbot Hình 1.3 Robot điều khiển logic mờ Hình 1.4 Balance bot I Hình 1.5 Segway Hình 1.6 Xe hai bánh tự cân HTV nhóm thực Hình 2.1 Mơ hình Nguyễn lý giữ thăng Hình 2.2 Mơ tả cách bắt đầu di chuyển Hình 2.3 Trạng thái xe ba bánh di chuyển địa hình phẳng dốc Hình 2.4 Trạng thái xe hai bánh di chuyển địa hình phẳng, dốc Hình 2.5 Miền xác định miền tin cậy tập mờ Hình 2.6 Một số dạng hàm thuộc (Gaussian, PI-shape, S-shape, Sigmoidal, Z-shape) Hình 2.7 Phép giao hai tập mờ Phép hợp Hình 2.8 Phép hợp hai tập mờ Phép bù Hình 2.9 Phép bù tập mờ Hình 2.10 Giải mờ theo phương pháp cực đại Phương pháp trọng tâm Hình 2.11 Sơ đồ cấu trúc điều khiển mờ Hình 2.12 Sơ đồ khối cấu trúc điều khiển Fuzzy-PID Hình 2.13 Bus I2C thiết bị ngoại vi Hình 2.14 Kết nối thiết bị vào bus I2C chế độ chuẩn (Standard chế độ nhanh (Fast mode) Hình 2.15 Truyền nhận thiết bị chủ tớ ( Master – Slave ) Hình 2.16 Điều kiện Start Stop bus I2C Hình 2.17 Quá trình truyền tải bit liệu Hình 2.18 Dữ liệu truyền bus I2C Hình 2.19 Bit ACK bus I2C Hình 2.20 Lưu đồ thuật tốn truyền nhận liệu Hình 2.21 Cấu trúc byte liệu Hình 2.22 Quá trình truyền liệu Hình 2.23 Ghi liệu từ chủ đến tớ Hình 2.24 Đọc liệu từ thiết bị tớ Hình 2.25 Quá trình đọc ghi phối hợp liệu Hình 2.26 Sơ đồ tín hiều đầu vào lọc Kalman mode) vi Hình 2.27 Cảm biến GY-86 Hình 2.28 Sơ đồ nguyên lý cảm biến MPU6050 Hình 2.29 Bộ KIT Tiva C Hình 3.1 Nguyên lý hoạt động robot hai bánh tự cân Hình 3.2 Hình chiếu cạnh lắc ngược bánh Bảng 3.3 Chọn giá trị cho biến mờ đạo hàm sai số Hình 3.4 Ngõ vào sai số hàm mờ Hình 3.5 Ngõ vào đạo hàm sai số theo thời gian Hình 3.6 Mối quan hệ đầu vào Hình 3.7 Mơ hình mơ Fuzzy-PID Hình 3.8 Đáp ứng đầu dùng hệ số Kp Hình 3.9 Đáp ứng đầu dùng hệ số Kp fuzzy Hình 3.10 Đáp ứng đầu dùng PD Hình 3.11 Đáp ứng đầu dùng PD Fuzzy Hình 3.12 Tín hiệu điều khiển PD PD Fuzzy Hình 3.13 Đáp ứng đầu PD PD Fuzzy Hình 4.1 Lưu đồ giải thuật Hình 4.2 Lưu đồ khối điều khiển cân Hình 4.3 PIN K-POWER 3S 11.1V 2200mAh 25C Hình 4.4 Đơng DC 12V Hình 4.5 Mạch nguồn LD 1085 Hình 4.6 Hình ảnh thực tế Hình 4.7 Driver cầu H Hình 4.8 Sơ đồ kết nối cầu H Hình 4.9 Kết nối cảm biến vào vi điều khiển Hình 4.10 Hình robot nhìn từ xuống Hình 4.11 Robot nhìn trực diện vii Mục Lục TÓM TẮT ĐỀ TÀI i Lời cảm ơn iii DANH MỤC CÁC TỪ VIẾT TẮT iv DANH MỤC CÁC BẢNG BIỂU v DANH SÁCH HÌNH ẢNH VÀ BIỂU MẪU vi CHƯƠNG 1: TỔNG QUAN 1.1 Lời nói đầu 1.2 Các cơng trình nghiên cứu liên quan 1.2.1 Nbot 1.2.2 Two-wheeled inverted pendulum 1.2.3 Balance bot I 1.2.4 Segway 1.2.5 HTV 1.3 Mục tiêu đề tài 1.4 Giới hạn đề tài 1.5 Phương pháp nghiên cứu CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10 2.1 Thế xe hai bánh tự cân 10 2.2 Tại phải thiết kế xe hai bánh cân 11 2.3 Ưu nhược điểm xe hai bánh tự cân 12 2.3.1 Ưu điểm xe scooter tự cân hai bánh 12 2.3.2 Nhược điểm xe 13 2.4 Khả ứng dụng 13 ` 2.5 Giới thiệu thuật toán PID 13 2.5.1 Thành phần tỉ lệ (P) 14 2.5.2 Thành phần tích phân (I) 14 2.5.3 Thành phần vi phân (D) 14 2.5.4 Chỉnh định tham số điều khiển PID 15 2.6 Lý thuyết điều khiển mờ (Fuzzy Logic Control) 16 2.6.1 Định nghĩa tập mờ 16 2.6.2 Các phép toán tập hợp mờ 17 2.6.3 Tính chất tập hợp mờ 19 2.6.4 Biến mờ biến ngôn ngữ 20 2.6.5 Mệnh đề mờ mệnh đề hợp thành 21 2.6.6 Các luật hợp thành 22 2.6.7 Giải mờ 22 2.6.8 Hệ quy tắc mờ 23 2.6.9 Xây dựng điều khiển Fuzzy 24 2.7 Cấu trúc điều khiển Fuzzy-PID 26 2.8 Giới thiệu I2C 26 2.8.1 Đặc điểm giao tiếp I2C 27 2.8.2 START and STOP conditions 29 2.8.3 Định dạng liệu truyền 30 2.8.4 Định dạng địa thiết bị 32 2.8.5 Truyền liệu bus I2C, chế độ Master-Slave 32 2.9 Giới thiệu Kalman 34 2.9.1 Giới thiệu lý thuyết lọc Kalman 34 2.9.2 Xử lý liệu đọc từ cảm biến MPU6050 36 ` 2.9.3 Áp dụng lọc Kalman cho việc xử lý tín hiệu từ cảm biến MCU6050 37 2.10 Cảm biến Gyo-86 40 2.11 Board Tiva C 41 CHƯƠNG 3: THIẾT KẾ BỘ ĐIỀU KHIỂN 43 3.1 Nguyên lý hoạt động robot hai bánh tự cân 43 3.2 Mơ hình hóa robot hai bánh tự cân 43 3.2.1 Mô tả phần cứng 43 3.2.2 Mơ hình tốn học 45 3.3 Thiết kế điều khiển FUZZY-PID cho robot hai bánh tự cân 49 3.3.1 Thiết kế FUZZY 49 3.3.2 Kết mô FUZZY-PID 52 3.3.3 Chọn điều khiển 54 CHƯƠNG 4: 56 THI CÔNG THỰC NGHIỆM 56 4.1 Lưu đồ giải thuật 56 4.2 Chọn động pin 58 4.2.1 Chọn pin 58 4.2.2 Chọn động 58 4.3 Các mạch điều khiển 59 4.3.1 Mạch nguồn 59 4.3.2 Driver cầu H 60 4.3.3 Kết nối cảm biến với vi điều khiển 60 4.4 Mơ hình thực tế 61 CHƯƠNG 5: 63 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 63 ` CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Chương Kết Luận Và Hướng Phát Triển Đề Tài 5.1 Các kết đạt  Hiểu phương pháp Fuzzy-PID sử dụng luật điều khiển kết hợp với trọng số Kp, Ki, Kd  Ứng dụng điểu khiển thành công cho đối tượng robot hai bánh tự cân  Hiểu luật điều khiển Sugeno với biến ngôn ngữ mờ  Nắm cách thức hoạt động luật điều khiẻn để từ áp dụng phương thức điều khiển vào ứng dụng đối tượng thực tế 5.2 Các kết chưa đạt  Thời gian đáp ứng luật điều khiển chậm nên đáp ứng chưa nhanh mong muốn  Cân hệ thống phải thời gian để ổn định  Hệ thống dừng lại việc cân chưa phát triển việc di chuyển  Phần khí hệ thống chưa vững chắc, dây điện hệ thống chưa tối ưu 5.3 Hướng phát triển đề tài  Nghiên cứu sâu giải thuật Fuzzy-PID giải thuật cân để ứng dụng vào đối tượng khó điều khiển hơn: humannod robot, auto-pilot…  Tìm hiểu nghiên cứu phương pháp Fuzzy khác cách sử dụng phương pháp suy diễn Max-Min để đưa luật điều khiển khác phương pháp suy diễn  Chế tạo xe hai bánh tự cân di chuyển điều khiển người Đồ án tốt nghiệp 63 Tài liệu tham khảo Sách điều khiển thông minh – Nguyễn Thi Phương Hà Sách hệ thống điều khiển thông minh– Huỳnh Thái Hoàng Movement control using zero dynamics of two-wheeled inverted pendulum robot Balancing a two-wheeled autonomous robot Modelling and control of a balancing robot using a digital state space approach Two-wheeled balancing LEGO robot Fuzzy auto-tuning PID control of multiple joint robot driven by ultrasonic motors www.segway.com http://www.cs.hmc.edu/~dodds/projects/RobS03/Mapping/oldindex.html 10 http://www.mathworks.com/help/fuzzy/examples/using-lookup-table-insimulink-to-implement-fuzzy-pidcontroller.html?requestedDomain=www.mathworks.com Đồ án tốt nghiệp 64 Phụ lục Code: PID: #include "myinc/reenyle_pid.h" #include "myinc/fuzzy.h" #include "math.h" void pid_setup(float p, float i, float d, pid *set_pid,float Max_Limit, float Min_Limit, float db) { set_pid->deadband= db; set_pid->Err = 0; set_pid->Err1 = 0; set_pid->Err2 = 0; set_pid->P_Factor = p; set_pid->I_Factor = i; set_pid->D_Factor = d; set_pid->Kc_Factor = 0.85; set_pid->OutMin = Min_Limit; set_pid->OutMax = Max_Limit; set_pid->OutPreSat = 0; } float I_Sat(float Ui, float limitMax, float limitMin) { return (Ui > limitMax ? limitMax : (Ui < limitMin ? limitMin : Ui)); } float my_abs(float inval) { return (inval >= ? inval : (-inval)); } float a; float Reenyle1_pid_controller(pid *pid_get, float sys_error) { if (my_abs(sys_error) > pid_get->deadband) Đồ án tốt nghiệp 65 { a=1; pid_get->Err = sys_error; pid_get->Up = a*(pid_get->P_Factor*pid_get->Err); pid_get->Ui += pid_get->I_Factor*pid_get->Err ; pid_get->Ud = (pid_get->D_Factor*(pid_get->Err - pid_get->Err1))*a; pid_get->OutPreSat = pid_get->Up + pid_get->Ui + pid_get->Ud; } else { pid_get->OutPreSat = pid_get->Ui; } pid_get->Out = (pid_get->OutPreSat > pid_get->OutMax ? pid_get->OutMax : (pid_get->OutPreSat < pid_get->OutMin ? pid_get->OutMin : pid_get>OutPreSat)); pid_get->SatErr = pid_get->Out - pid_get->OutPreSat; pid_get->Err1 = pid_get->Err; // add fuzzy a = fuzzy(pid_get->Err, (pid_get->Err - pid_get->Err1)); return pid_get->Out; } Fuzzy: #include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/gpio.h" #include "driverlib/pwm.h" #include "driverlib/sysctl.h" #define f_and(a,b) ( (a) < (b) ? (a) : (b) ) #define f_or(a,b) ( (a) > (b) ? (a) : (b) ) int x; Đồ án tốt nghiệp 66 char array[3]; #define a1 #define b1 #define c1 -0.4 0.4 #define a2 -1.8 #define b2 -1 #define c2 #define d2 #define e2 1.8 char Error_LNegative (int CRISP) // NE { { if (CRISP NS1 array[0] = Error_normal (error); array[1] = SumError_LNegative(sumerror); array[2] = f_and(array[0],array[1]); x = f_or(x,NS1(array[2],0)); //ZE and ZE > ZE1 array[0] = Error_normal (error); array[1] = SumError_normal (sumerror); array[2] = f_and(array[0],array[1]); x = f_or(x,ZE1(array[2],0)); //ZE and PO > PS array[0] = Error_normal (error); array[1] = SumError_LPositive (sumerror); array[2] = f_and(array[0],array[1]); x = f_or(x,PS(array[2],0)); //PO and NE > ZE2 array[0] = Error_LPositive (error); array[1] = SumError_LNegative(sumerror); array[2] = f_and(array[0],array[1]); x = f_or(x,ZE2(array[2])); //PO and ZE > PS1 array[0] = Error_LPositive (error); array[1] = SumError_normal (sumerror); array[2] = f_and(array[0],array[1]); x = f_or(x,PS1(array[2])); //PO and PO > PB array[0] = Error_LPositive (error); array[1] = SumError_LPositive (sumerror); array[2] = f_and(array[0],array[1]); Đồ án tốt nghiệp 72 x = f_or(x,PB(array[2])); return x; } Main: #include #include #include "stdio.h" #include "inc/hw_types.h" #include "driverlib/fpu.h" #include "driverlib/sysctl.h" #include "driverlib/rom.h" #include "myinc/io_led.h" #include "myinc/myadc.h" #include "myinc/i2c_imu.h" #include "myinc/kalman.h" #include "myinc/systemtick.h" #include "myinc/ledpwm.h" #include "myinc/reenyle_pid.h" #include "myinc/fuzzy.h" #define Numcount 265 float Kp = 55.1; float Ki = 0.2555; float Kd = 2.025; float DesiredSpeed = -0.4; pid motorPID; extern unsigned int crccal(unsigned char *ptr,unsigned char len); float Dist_in = 0, Dist_out_i=0, Dist_out_i_1=0, Roll = 0, Pitch = 0, Yaw = 0; char LCD_character[]="REENYLE Co., Ltd"; char Dist_str[17]={0}; unsigned char sample_count=0; float ActualSpeed,duty_cycle,ek,esum,ek_1,ek_2,uk,uk_1,proportional,integral,differenti al; Đồ án tốt nghiệp 73 float er_control_value; int countme=0; int main() { SysCtlClockSet(SYSCTL_USE_PLL | SYSCTL_SYSDIV_4 SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); I2C_Imu_Init(); kalman_init(); Systick_Init(); PWM_Init(); pid_setup(Kp, Ki, Kd, &motorPID, 1250, -1200, 0.1); Update_Motor_Duty(0,0,0,0); esum = 0; while(1) { if(Get_TimeOut()) { kalman_run(); Roll = Get_angle(0); Pitch = Get_angle(1); Yaw = Get_angle(2); countme=0; ActualSpeed = -kalmanPitch(); ek=(DesiredSpeed-ActualSpeed); motorPID.P_Factor = Kp; motorPID.I_Factor = Ki; motorPID.D_Factor = Kd; uk = Reenyle1_pid_controller(&motorPID,ek); if (uk>=0) Update_Motor_Duty(0,uk,uk,0); else Update_Motor_Duty(-uk,0,0,-uk); Clear_TimeOut(); } else Đồ án tốt nghiệp | 74 { ++countme; if(countme=0) Update_Motor_Duty(0,uk,uk,0); else Update_Motor_Duty(-uk,0,0,-uk); } else if(countme>=Numcount) { Update_Motor_Duty(0,0,0,0); } else { } } } } Đồ án tốt nghiệp 75

Ngày đăng: 13/06/2023, 22:47

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

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