Đồ án Thiết kế hệ thống điều khiển tốc độ động cơ DC sử dụng bộ điều khiển PID và PID mờ (Fuzzy-PID)

- Đã thiết kế và chạy thành công mô phỏng bằng Simulink các bộ điều khiển PID và F – PID, so sánh được chất lượng của các bộ điều khiển. - Xây dựng và hoàn thiện phần cứng gồm module mạch điều khiển, mạch công suất đã giải quyết được bài toán điều chỉnh tốc độ động cơ với chất lượng khá tốt với hai giải thuật PID và Fuzzy – PID: Thời gian đáp ứng và thời gian quá độ tương đối nhanh, Độ quá điều chỉnh nhỏ, sai lệch tĩnh hầu như rất nhỏ, ngay cả khi có tải hay ở một số tốc độ đặt khác nhau.

pdf39 trang | Chia sẻ: lylyngoc | Lượt xem: 11123 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế hệ thống điều khiển tốc độ động cơ DC sử dụng bộ điều khiển PID và PID mờ (Fuzzy-PID), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC BÁCH KHOA HÀ NỘI Trung tâm Đào tạo Tài năng và Chất lượng cao ĐỒ ÁN I Đề tài: Thiết kế hệ thống điều khiển tốc độ động cơ DC sử dụng bộ điều khiển PID và PID mờ (Fuzzy-PID) Giảng viên hướng dẫn: TS. Nguyễn Cảnh Quang Sinh viên thực hiện: Đặng Đức Công – 20101181 Đặng Thái Giáp – 20101443 Lớp: KSTN – ĐKTĐ – K55 Hà Nội, tháng 6 năm 2013 2 MỤC LỤC Trang Danh mục bảng và hình vẽ 3 Lời cảm ơn 4 Tóm tắt đồ án 5 Chương I: Khái quát đề tài 6 1.1. Đặt vấn đề 6 1.2. Hướng giải quyết 7 Chương II: Động cơ điện một chiều và phương pháp điều khiển tốc độ 8 2.1. Đặc tính của động cơ điện một chiều 8 2.1.1. Mô hình toán học động cơ dc sử dụng nam châm vĩnh cửu 8 2.1.2. Phương pháp nhận dạng trực tuyến mô hình động cơ 9 2.2. Phương pháp điều khiển tốc độ động cơ 10 Chương III: Bộ điều khiển PID kinh điển và bộ điều khiển Fuzzy-PID 11 3.1. Bộ điều khiển PID 11 3.1.1. Lý thuyết về bộ điều khiển pid 11 3.1.2. Chỉnh định tham số bộ điều khiển PID 13 3.1.3. Bộ điều khiển PID số 15 3.2. Bộ điều khiển Fuzzy-PID 16 3.2.1. Lý thuyết điều khiển mờ 16 3.2.2. Bộ điều khiển Fuzzy-PID 21 Chương IV: Thiết kế hệ thống điều khiển 29 4.1. Phần cứng chuẩn bị và phần mềm sử dụng 29 4.1.1. Mạch phần cứng 29 4.1.2. Chương trình phần mềm 30 4.2. Giải quyết vấn đề điều khiển 30 4.2.1. Định hướng chương trình 30 4.2.2. Phác thảo giải thuật 31 4.3. Kết quả mạch chạy thực thế 36 Chương V: Kết luận và hướng phát triển 37 5.1. Kết quả thu được 37 5.2. Một số đề xuất và hướng phát triển đề tài 37 Tài liệu tham khảo và Tài liệu đính kèm 39 3 Danh mục bảng và hình vẽ Hình 2.1. Động cơ DC sử dụng nam châm vĩnh cửu Hình 2.2. Nguyên lý điều chế độ rộng xung PWM Hình 3.1. Sơ đồ khối của hệ điều khiển vòng kín Hình 3.2: Xác định tham số của đặc tính quá tính Bảng 3.1: Lựa chọn tham số bộ PID theo Ziegler-Nichols 1 Hình 3.3: Miền xác định và miền tin cậy của tập mờ Hình 3.4: Một số dạng hàm thuộc Hình 3.5: Ví dụ về liên hệ giữa biến môn ngữ và biến vật lý Hình 3.6: Giải mờ theo phương pháp cực đại Hình 3.7: Sơ đồ cấu trúc bộ điều khiển mờ Hình 3.8: Sơ đồ cấu trúc bộ điều khiển mờ-PID Hình 3.9: Cấu trúc của khối mờ Hình 3.10: Các hàm thuộc của sai lệch e(t) Hình 3.11: Các hàm thuộc của vi phân sai lệch de(t) Hình 3.12: Các hàm thuộc của biến ra 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ Hình 3.13: Bảng luật hợp thành mờ Hình 3.14: Bảng luật hợp thành mờ Hình 3.15: Sơ đồ khối bộ điều khiển F – PID Hình 3.16: So sánh đáp ứng của bộ PID(Z-N1) và F – PID Hình 3.17: So sánh đáp ứng của bộ PID(Tuning Toolbox) và F – PID Hình 3.18: Bảng đánh giá chất lượng các bộ điều khiển Hình 4.1: Sơ đồ nguyên lý mạch phần cứng Hình 4.2: Đọc Encoder Hình 4.3: Lưu đồ giải thuật điều chế xung PWM Hình 4.4: Chương trình quét phím ma trận Hình 4.5: Thuật toán Fuzzy-PID Hình 4.6: Ví dụ về xây dựng hàm thuộc cho tập mờ e(t) Hình 4.7: Ví dụ về luật hợp thành Hình 4.8: Ví dụ về phương pháp giải mờ cực đại 4 LỜI CẢM ƠN Kính gửi đến thầy NGUYỄN CẢNH QUANG lời cảm ơn chân thành sâu sắc, cảm ơn thầy đã tận tình giúp đỡ, chỉ dạy chúng em trong suốt quá trình hoàn thành đồ án môn học này. Chân thành cảm ơn các quý thầy cô của trường Đại học Bách Khoa Hà Nội nói chung, của Viện Điện và bộ môn Điều Khiển Tự Động nói riêng đã tận tình giảng dạy, trạng bị cho chúng em những kiến thức bổ ích, quý báu. Hà Nội, tháng 6 năm 2013 Nhóm thực hiện đồ án 5 TÓM TẮT ĐỒ ÁN Nhiệm vụ của đề tài là sử dụng giải thuật PID và Fuzzy-PID ứng dụng trên vi điều khiển để điều chỉnh, ổn định tốc độ động cơ, đồng thời so sánh giữa lý thuyết và chất lượng thực tế của hai bộ điều khiển này. Đề tài được thực hiện như sau: Trước tiên, sử dụng giải thuật PID số, ứng dụng trên vi điều khiển 8-bit AT89S52 là nhân điều khiển trung tâm, MATLAB là chương trình xử lý trung gian, phần công suất sử dụng Driver tích hợp L298 để điều chỉnh tốc độ động cơ đạt giá trị đặt (Set point) nhập vào từ trước, khi không tải và có tải. Cụ thể, Encoder quang sẽ đưa xung phản ánh tốc độ động cơ về vi điều khiển, sau đó vi điều khiển sẽ tính toán tốc độ hiện tại để hiển thị và thực hiện giải thuật điều khiển PID để điều chế độ rộng xung (PWM – Pulse Width Modulation) điều khiển động cơ thông qua driver L298. Cũng với cách thực hiện tương tự trên, sử dụng giải thuật Fuzzy-PID cho bộ điều khiển. Ngoài những nội dung như trên, ta cần xây dựng thư viện các hàm cho bộ điều khiển dựa trên lý thuyết về Logic mờ (Fuzzy Logic) để điều chỉnh tham số cho bộ điều khiển. Kết quả đạt được thỏa mãn khá tốt các yêu cầu đã đề ra: + Xây dựng được bộ điều khiển PID và Fuzzy-PID trên nền vi điều khiển 8-bit AT89S52. + Đo, điều chỉnh ổn định tốc độ động cơ DC. Đáp ứng tốc độ khá nhanh khi khởi động, không tải và có tải. + Hệ thống ổn định, thời gian đáp ứng nhanh, độ quá điều chỉnh khá nhỏ. Kiến thức cơ bản cần có: Lý thuyết điều khiển kinh điển, Lý thuyết điều khiển hiện đại, Điện tử cơ bản, Vi điều khiển, Điện tử công suất, Mô phỏng MATLAB, Kỹ thuật lập trình ngôn ngữ C. 6 CHƯƠNG I: KHÁI QUÁT ĐỀ TÀI 1.1. Đặt vấn đề Lĩnh vực điều khiển tự động ngày càng phát triển, đặc biệt là điều khiển chính xác, đã trở thành một phần không thể thiếu của nền công nghiệp hiện đại. Phần lớn các loại máy móc, thiết bị dân dụng hay trong công nghiệp sử dụng động cơ điện, từ động cơ điện trong các máy công cụ, máy CNC, các cánh tay robot,… đến trong những thiết bị gia dụng như máy giặt, điều hòa, máy hút bụi, ngay cả trong máy vi tính. Những thiết bị như vậy yêu cầu độ chính xác cao, tiết kiệm năng lượng, tuổi thọ và chu kì bảo dưỡng dài. Một trong những yêu cầu cần được đáp ứng để đạt những chỉ tiêu trên đây là điều khiển được tốc độ động cơ điện một cách ổn định, đáp ứng nhanh, vận hành trơn tru khi xác lập và khi thay đổi trạng thái. Việc ứng dụng những thuật toán kinh điển vào vấn đề điều khiển tốc độ động cơ đã đạt được nhiều kết quả khả quan. Ví dụ như sử dụng bộ điều khiển PI, PID cho kết quả tốt ở một số đối tượng động cơ. Chỉnh định tham số cho bộ điều khiển PID kinh điển cũng có nhiều phương pháp. Tuy nhiên, với các thuật toán, phương pháp kinh điển, ta phải biết chính xác về đối tượng, hoặc mô hình hóa tương đối chi tiết đối tượng. Một điểm nữa là trong quá trình vận hành, nếu như đối tượng thay đổi thì hệ thống có thể mất ổn định hoặc chất lượng điều khiển không còn đáp ứng được yêu cầu. Do đó, auto-tuning là một trong những hướng đi khả quan của điều khiển tự động. Trong điều khiển hiện đại, lý thuyết mờ cung cấp cho ta một hướng đi mới, xây dựng những hệ điều khiển mờ thuần túy hoặc nhưng hệ mờ lai với mục đích nâng cao chất lượng các bộ điều khiển kinh điển, cũng như điều khiển những đối tượng chưa biết hoặc khó nhận dạng. Trong khuôn khổ Đồ án, em xin trình bày về thuật toán PID, Fuzzy-PID; xây dựng các bộ điều khiển này trên nền vi điều khiển AT89S52; các kết quả thu được và hướng phát triển đề tài. Do hạn chế về thời gian cũng như thiết bị hỗ trợ, việc so sánh chất lượng của hai bộ điều khiển này không được đưa ra ở Đồ án này. 7 1.2. Hướng giải quyết - Tìm hiểu về động cơ điện một chiều (DC), sử dụng nam châm vĩnh cửu; các đặc tính, và các phương pháp điều khiển tốc độ động cơ DC. - Sử dụng mô hình động cơ mẫu, xây dựng mô hình các bộ điều khiển kinh điển (PID) và hiện đại (Fuzzy-PID) trên phần mềm mô phỏng MATLAB-Simulink, đánh giá sơ bộ về kết quả thu được đối với đối tượng động cơ DC: các yêu cầu về chất lượng điều khiển như tính ổn định, thời gian đáp ứng, sai lệch tĩnh, đáp ứng khi tải thay đổi trong bài toán điều chỉnh. - Thiết kế, thi công mạch phần cứng điều khiển động cơ DC thực. - Xây dựng giải thuật và viết chương trình điều khiển, ứng dụng các thuật toán điều khiển ở trên lên vi điều khiển, trực tiếp điều khiển động cơ thực. 8 CHƯƠNG II: ĐỘNG CƠ ĐIỆN MỘT CHIỀU VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN TỐC ĐỘ 2.1. Đặc tính của động cơ điện một chiều 2.1.1. Mô hình toán học động cơ DC sử dụng nam châm vĩnh cửu Hình 2.1. Động cơ DC sử dụng nam châm vĩnh cửu Trong hình 2.1, 𝐽 là mômen quán tính của rôto động cơ, 𝐵 là hệ số tải, 𝜔𝑚 là tốc độ động cơ (rpm), và 𝐸𝑚 , 𝐼𝑚 lần lượt theo thứ tự là điện áp và dòng điện nguồn cấp cho động cơ. Ta có: Mômen phát sinh trên trục động cơ 𝑇𝑚 là: 𝑇𝑚 = 𝐾. 𝐼𝑚 (2.1) Lại có 𝐸𝑚 = 𝐼𝑚. 𝑅0 (2.2) với 𝑅0 là điện trở phần ứng rôto. Từ định luật Newton II ta có: 𝐽 𝑑𝜔𝑚 𝑑𝑡 + 𝐵𝜔𝑚 = 𝑇𝑚 (2.3) Thay (2.1),(2.2) vào (2.3) → 𝐽 𝑑𝜔𝑚 𝑑𝑡 + 𝐵𝜔𝑚 = 𝐾𝐸𝑚 𝑅0 (2.4) Sử dụng biến đổi Laplace cho phương trình (2.4) ta thu được: 𝜔𝑚(𝑠) 𝐸𝑚(𝑠) = 𝐾 𝑅0𝐽 𝑆 + 𝐵 𝐽 (2.5) 9 Phương trình (2.5) biểu thị mô hình hàm truyền của động cơ DC. Đặt: 𝐺(𝑠) = 𝜔𝑚(𝑠) 𝐸𝑚(𝑠) và thực hiện phép biến đổi Laplace ngược cả 2 vế phương trình (2.5) ta có: 𝐺(𝑡) = 𝑎1𝑒 −𝑎2𝑡 (2.6) với 𝑎1 = 𝐾/𝑅0𝐽 ; 𝑎2 = 𝐵/𝐽 Như vậy từ phương trình (2.5), để xác định được đáp ứng của tốc độ động cơ dưới dạng mô hình hàm truyền đạt hoặc dạng hàm theo thời gian, ta cần xác định các thông số của động cơ như 𝐾 (hệ số khuếch đại tĩnh động cơ), 𝐵, 𝐽 và 𝑅0. Từ đó ta xác định được Hệ số khuếch đại và hằng số thời gian của mô hình động cơ. 2.1.2. Phương pháp nhận dạng trực tuyến mô hình động cơ Ta sử dụng encoder để chuyển đổi từ số vòng quay của động cơ thành số xung với một hệ số tỉ lệ nào đó, phụ thuộc vào độ phân giải của encoder. Các xung này được đưa vào vi xử lý và truyền lên máy tính, vẽ đồ thị đáp ứng vòng hở của mô hình động cơ. Từ việc phân tích đồ thị, sử dụng các phương pháp nhận dạng trong lý thuyết điều khiển, ta có mô hình xấp xỉ hàm truyền của động cơ. Vì lí do thời gian có hạn, nên phương pháp nhận dạng trực tuyến này không được đề cập ở đây. Tuy nhiên, đối với động cơ sử dụng trong Đồ án là động cơ nam châm vĩnh cửu, loại của Hitachi D04A321E, sử dụng điện áp định mức 24V, công suất 21W, encoder quang 100 xung/vòng, kết quả nhận dạng được lấy từ [1] – Trang 244. Mô hình hàm truyền xấp xỉ của động cơ: 𝐺(𝑠) = 138.508386 𝑠 + 23.079689 = 6.001311 1 + 0.0433281𝑠 (2.7) 𝑎1 = 138.508386; 𝑎2 = 23.079689 10 2.2. Phương pháp điều khiển tốc độ động cơ Động cơ DC dùng nam châm vĩnh cửu ta coi là có từ thông không đổi. Phương trình (2.4) biểu diễn quan hệ giữa tốc độ động cơ với điện áp đặt vào hai đầu cuộn dây phần ứng. Mặt khác, tác động về mặt cơ học của động cơ là tương đối nhanh. Do đó ta sử dụng phương pháp điều khiển điện áp phần ứng để thay đổi tốc độ động cơ DC, cụ thể là sử dụng phương pháp điều chế độ rộng xung (PWM – Pulse Width Modulation) Hình 2.2. Nguyên lý điều chế độ rộng xung PWM Giá trị trung bình điện áp trên tải: 𝑈𝑡 = 𝑈𝑚𝑎𝑥 𝑇𝑜𝑛 𝑇𝑜𝑓𝑓 = 𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑𝑒 ∗ 𝐷𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒 𝑃𝑒𝑟𝑖𝑜𝑑 (2.8) Ta thấy giá trị điện áp trên tải phụ thuộc vào tỉ số 𝛾 = 𝐷𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒/𝑃𝑒𝑟𝑖𝑜𝑑, do đó ứng với mỗi tần số xung, ta có thể điều chỉnh 𝐷𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒 để điều chỉnh điện áp. Đối với vi điều khiển 89s52 sử dụng Thạch anh 12MHz, ta có timer 16 bit, do đó theo lý thuyết, ta có thể tạo xung vuông nằm trong dải tần số từ 15Hz – 1MHz. Tuy nhiên, để tạo xung PWM, ta cần điều khiển thông qua giá trị 𝑑𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒 nên dải tần số sẽ thu hẹp lại, phụ thuộc vào dải điều chỉnh của 𝑑𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒. Ví dụ: Nếu ta lấy 𝑑𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒 có giá trị trong khoảng từ 0 − 255 thì dải tần số của xung PWM xuất ra sẽ là khoảng 15Hz – 4kHz. Khi lựa chọn tần số của xung PWM, ta cần lựa chọn sao cho đáp ứng cơ học của động cơ đủ mịn để không có cảm giác bị vấp do điện áp thay đổi. 11 CHƯƠNG III: BỘ ĐIỀU KHIỂN PID KINH ĐIỂN VÀ BỘ ĐIỀU KHIỂN FUZZY-PID 3.1. Bộ điều khiển PID 3.1.1. Lý thuyết về bộ điều khiển PID Hình 3.1. Sơ đồ khối của hệ điều khiển vòng kín Có thể nói trong lĩnh vực điều khiển, bộ điều khiển PID được xem như 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 điều khiển hệ thống đáp ứng tốt các chỉ tiêu chất lượng như đáp ứng nhanh, thời gian quá độ ngắn, độ quá điều chỉnh thấp, triệt tiêu được sai lệch tĩnh. Luật điều khiển PID được định nghĩa: 𝑢(𝑡) = 𝐾𝑃 (𝑒(𝑡) + 1 𝑇𝐼 ∫𝑒(𝜏)𝑑𝜏 𝑡 0 + 𝑇𝐷 𝑑𝑒(𝑡) 𝑑𝑡 ) (3.1) Trong đó 𝑢 là tín hiệu điều khiển và 𝑒 là sai lệch điều khiển (𝑒 = 𝑦𝑠𝑝 − 𝑦). 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: 𝐺𝑃𝐼𝐷(𝑠) = 𝑈(𝑠) 𝐸(𝑠) = 𝐾𝑃 + 𝐾𝐼 1 𝑠 + 𝐾𝐷𝑠 = 𝐾𝑃 (1 + 1 𝑇𝑖𝑠 + 𝑇𝐷𝑠) (3.2) Các tham số của bộ điều khiển là 𝐾𝑃 , 𝐾𝐼 (hoặc 𝑇𝑖), 𝐾𝐷 (hoặc 𝐾𝐷). 12 Thành phần Tỉ lệ (P) 𝑢(𝑡) = 𝐾𝑃𝑒(𝑡) (3.3) Tác động của thành phần tích phân đơn giản 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 𝑒(𝑡) = 0 thì 𝑢(𝑡) = 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ệ 𝐾𝑃 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ố tỉ lệ 𝐾𝑃 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 hơn 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. Thành phần Tích phân (I) 𝑢(𝑡) = 𝐾𝐼∫𝑒(𝜏)𝑑𝜏 𝑡 0 (3.4) Với thành phần 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 𝑒(𝑡) = 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 𝑒(𝑡) 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 đặc 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ì bộ I đơn thuần vừa để cải thiện tốc độ đáp ứng, vừa đảm bảo yêu cầu động học của hệ thống. 13 Thành phần Vi phân (D) 𝑢(𝑡) = 𝑑𝑒(𝑡) 𝑑𝑡 (3.5) 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 𝑒(𝑡) và đầu ra 𝑦(𝑡) 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 độ thay đổi của sai lệch 𝑒(𝑡), làm tăng tốc độ đáp ứng của hệ. 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 được với các bộ P hay PI. 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. 3.1.2. 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 yếu tố quan 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 được 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 (Phần 2.1.2) với giá trị đặt thay đổi dạng bậc thang (Phương pháp Ziegler-Nichols 1). Đối tượng áp dụng của phương pháp này là các quá trình có đặc tính quán tính hoặc quán tính tích phân với thời gian trễ tương đối nhỏ. Mô hình động cơ sử dụng trong báo cáo được xấp xỉ về dạng quán tính bậc nhất ở công thức (2.7). Dựa trên hai giá trị xác định được là điểm cắt với trục hoành 𝜃 và độ dốc 𝑎 (Hình 3.2), các tham số của bộ điều khiển được xác định theo bảng 3.1. 14 Hình 3.2: Xác định tham số của đặc tính quá tính Bộ điều khiển 𝐾𝑃 𝑇𝐼 𝑇𝐷 P 1/𝑎 hoặc 𝜏/𝑘𝜃 - - PI 0.9/𝑎 hoặc 0.9𝜏/𝑘𝜃 10/3𝜃 - PID 1.2/𝑎 hoặc 1.2𝜏/𝑘𝜃 2𝜃 0.5𝜃 Bảng 3.1: Lựa chọn tham số bộ PID theo Ziegler-Nichols 1 Phương pháp này có một số nhược điểm như sau: + Việc lấy đáp ứng tín hiệu bậc thang rất dễ bị ảnh hưởng của nhiễu và không áp dụng được cho quá trình dao động hoặc quá trình không ổn định. + Đối với các quá trình có tính phi tuyến mạnh, các số liệu đặc tính nhận được phụ thuộc rất nhiều vào biên độ và chiều thay đổi giá trị đặt. + Phương pháp kẻ tiếp tuyến để xác định các số liệu 𝜃 và 𝑎 kém chính xác. + Đặc tính đáp ứng của hệ kín với giá trị đặt thường hơi quá dao động (Hệ số tắt dần khoảng 0.25). Theo kinh nghiệm của một số chuyên gia, điều kiện áp dụng phương pháp này là tỉ số 𝜃/𝜏 nằm trong phạm vi 0.1-0.6. Nếu tỉ lệ này lớn hơn 0.6, ta cần áp dụng các phương pháp chỉnh định khác có để ý tới bù thời gian trễ. Ngược lại, với tỉ lệ nhỏ hơn 0.1 thường ứng với các hệ bậc cao, do đó cần bộ điều khiển bậc cao tương ứng để cải thiện đặc tính động học. 15 3.1.3. Bộ điều khiển PID số Trong thực tế công nghiệp, các bộ điều khiển PID có thể được cấu thành từ các mạch tương tự hoặc các cơ cấu chấp hành. Tuy nhiên với yêu cầu cao về độ chính xác và chống nhiễu tốt thì các bộ điều khiển như vậy chưa đáp ứng được yêu cầu. Cùng với sự phát triển của các ứng dụng nhúng hay trên nền vi xử lý, thì điều khiển số cũng là một lĩnh vực quan trọng. Các bộ điều khiển được số hóa để có thể thực thi với tốc độ cao và chính xác hơn. Đồng thời việc xây dựng các bộ điều khiển trên nền máy tính số hay vi điều khiển cũng đơn giản hơn nhiều. Dưới đây ta trình bày về việc xấp xỉ bộ PID trên miền thời gian sang dạng PID số. Việc lựa chọn tham số cho bộ PID số cũng tương tự như trên miền thời gian. Ngoài ra ta cần quan tâm đến một tham số quan trọng là chu kì lấy mẫu của vi điều khiển. Từ công thức (3.1): 𝑢(𝑡) = 𝐾𝑃 (𝑒(𝑡) + 1 𝑇𝐼 ∫𝑒(𝜏)𝑑𝜏 𝑡 0 + 𝑇𝐷 𝑑𝑒(𝑡) 𝑑𝑡 ) Ta sử dụng các công thức xấp xỉ tích phân lùi (backward integral approximation) và vi phân lùi (backward difference approximation) với chu kì lấy mẫu T ∫𝑒(𝜏)𝑑𝜏 ≈ ∑𝑇𝑒(𝑘𝑇) 𝑛 𝑘=1 𝑡 0 (3.6) 𝑑𝑒(𝑡) 𝑑𝑡 ≈ 𝑒(𝑘𝑇) − 𝑒(𝑘𝑇 − 𝑇) 𝑇 (3.7) Khi đó công thức (3.1) trở thành: 𝑢(𝑘𝑇) = 𝑢0 + 𝐾𝑃 [𝑒(𝑘𝑇) + 𝑇 𝑇𝐼 ∑𝑒(𝑘𝑇) 𝑛 𝑘=1 + 𝑇𝐷 𝑒(𝑘𝑇) − 𝑒(𝑘𝑇 − 𝑇) 𝑇 ] (3.8) Viết gọn lại thành: 𝑢𝑘 = 𝐾𝑃𝑒𝑘 + 𝐾𝑖𝑒𝑘 + 𝑢𝑖,𝑘−1 + 𝐾𝑑(𝑒𝑘 − 𝑒𝑘−1) = 𝑢𝑝,𝑘 + 𝑢𝑖,𝑘 + 𝑢𝑑,𝑘 (3.9) Trong đó: 𝑢𝑝,𝑘 = 𝐾𝑃𝑒𝑘; 𝑢𝑖,𝑘 = 𝐾𝑖𝑒𝑘 + 𝑢𝑖,𝑘−1; 𝑢𝑑,𝑘 = 𝐾𝐷(𝑒𝑘 − 𝑒𝑘−1) 16 3.2. Bộ điều khiển Fuzzy-PID 3.2.1. Lý thuyết điều khiển mờ (Fuzzy Logic Control) 3.2.1.1. Giới thiệu về Logic mờ Trong toán học phổ thông ta đã học khá nhiều về tập hợp, ví dụ như tập các số thực R, tập các số nguyên tố 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à với 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 xét phát biểu thông thường về tốc độ một chiếc xe môtô: chậm, trung bình, hơi nhanh, rất nhanh. Phát biểu “CHẬM” ở đây không được chỉ rõ là bao nhiêu km/h, như vậy từ “CHẬM” có miền giá trị là một khoảng nào đó, ví dụ 5km/h – 20km/h 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à một tập các biến ngôn ngữ. Với mỗi thành phần ngôn ngữ 𝑥𝑘 của phát biểu trên nếu nó nhận được một khả năng μ(𝑥𝑘)thì tập hợp F gồm các cặp (𝑥, μ(𝑥𝑘)) được gọi là tập mờ. Định nghĩ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ị (𝑥, (𝜇𝐹(𝑥𝑘)) với 𝑥 ∈ 𝑋 và 𝜇𝐹 là một ánh xạ: 𝜇𝐹(𝑥): B →[0 1] trong đó: 𝜇𝐹 gọi là hàm thuộc , B gọi là tập nền. 3.2.1.2. Các thuật ngữ trong Fuzzy Logic - Độ cao tập mờ F là giá trị 𝐻 = 𝑠𝑢𝑝 𝜇𝐹(𝑥) trong đó 𝑠𝑢𝑝 𝜇𝐹(𝑥) chỉ giá trị nhỏ nhất trong tất cả các chặn trên của hàm 𝜇𝐹(𝑥). Một tập mờ có ít nhất 1 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 thoả mãn: 𝑆 = {𝑥 ∈ 𝐵| 𝜇𝐹(𝑥) > 0} - Miền tin cậy của tập mờ F, ký hiệu là T là tập con thoả mãn: T = {𝑥 ∈ 𝐵| 𝜇𝐹(𝑥) = 1} 17 Hình 3.3: Miền xác định và miền tin cậy của tập mờ 3.2.1.3. Các dạng hàm thuộc (membership function) trong logic mờ Có rất nhiều dạng hàm thuộc như: Gaussian, PI-shape, S-shape, Sigmoidal, Z-shape Hình 3.4: Một số dạng hàm thuộc 3.2.1.4. Biến ngôn ngữ Biến ngôn ngữ là phần tử chủ đạo trong các hệ thống dùng logic mờ. Ở đây các thành phần ngôn ngữ của cùng một ngữ cảnh được kết hợp lại với nhau. Để minh hoạ về hàm thuộc và biến ngôn ngữ ta xét ví dụ sau: Xét tốc độ của một chiếc xe môtô, ta có thể phát biểu xe đang chạy: Rất chậm (VS), Chậm (S), Trung bình (M), Nhanh (F), Rất nhanh (VF). Những phát biểu như vậy gọi là biến ngôn ngữ của tập mờ. Gọi x là giá trị của biến tốc độ, ví dụ x = 10km/h, x = 60km/h…Hàm thuộc tương ứng của các biến ngôn ngữ trên được ký hiệu là: 𝜇𝑉𝑆(𝑥), 𝜇𝑆(𝑥), 𝜇𝑀(𝑥), 𝜇𝐹(𝑥), 𝜇𝑉𝐹(𝑥) 18 Như vậy biến tốc độ có hai miền giá trị: - Miền các giá trị ngôn ngữ: N = {rất chậm, chậm, trung bình, nhanh, rất nhanh} - Miền các giá trị vật lý: V = {x∈B | x ≥0} Biến tốc độ được xác định trên miền ngôn ngữ N được gọi là biến ngôn ngữ. Với mỗi 𝑥 ∈ 𝐵 ta có hàm thuộc: 𝑥 → 𝜇𝑋{ 𝜇𝑉𝑆(𝑥), 𝜇𝑆(𝑥), 𝜇𝑀(𝑥), 𝜇𝐹(𝑥), 𝜇𝑉𝐹(𝑥)} Ví dụ hàm thuộc tại giá trị rõ 𝑥 = 65𝑘𝑚/ℎ là: 𝜇𝑋(65) = {0, 0, 0.75, 0.25, 0} Hình 3.5: Ví dụ về liên hệ giữa biến ngôn ngữ và biến vật lý 3.2.1.5. Các phép toán trên tập mờ Cho X, Y là hai tập mờ trên không gian nền B, có các hàm thuộc tương ứng là 𝜇𝑋, 𝜇𝑌, khi đó: - Phép hợp hai tập mờ: 𝑋 ∪ 𝑌 + Theo luật Max: 𝜇𝑋∪𝑌(𝑏) = 𝑀𝑎𝑥 {𝜇𝑋(𝑏), 𝜇𝑌(𝑏)} + Theo luật Sum: 𝜇𝑋∪𝑌(𝑏) = 𝑀𝑖𝑛 {1, 𝜇𝑋(𝑏) + 𝜇𝑌(𝑏)} + Tổng trực tiếp: 𝜇𝑋∪𝑌(𝑏) = 𝜇𝑋(𝑏) + 𝜇𝑌(𝑏) − 𝜇𝑋(𝑏). 𝜇𝑌(𝑏) 19 - Phép giao hai tập mờ: 𝑋 ∩ 𝑌 + Theo luật Min: 𝜇𝑋∩𝑌(𝑏) = 𝑀𝑖𝑛 {𝜇𝑋(𝑏), 𝜇𝑌(𝑏)} + Theo luật Lukasiewicz: 𝜇𝑋∩𝑌(𝑏) = 𝑀𝑎𝑥 {0, 𝜇𝑋(𝑏) + 𝜇𝑌(𝑏) − 1} + Theo luật Prod: 𝜇𝑋∩𝑌(𝑏) = 𝜇𝑋(𝑏). 𝜇𝑌(𝑏) - Phép bù tập mờ: 𝜇𝑋𝑐(𝑏) = 1 − 𝜇𝑋(𝑏) 3.2.1.6. Các luật hợp thành * Mệnh đề hợp thành Ví dụ điều khiển mực nước trong bồn chứa, ta quan tâm đến 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ó thể suy diễn cách thức điều khiển như thế này: Nếu mực nước = rất thấp Thì góc mở van = lớn 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 Trong ví dụ trên ta thấy có cấu trúc chung là “Nếu A thì B”. Cấu trúc này gọi là mệnh đề hợp thành, A là mệnh đề điều kiện, 𝐶 = 𝐴 ⇒ 𝐵 là mệnh đề kết luận. Định lý Mamdani: “Độ phụ thuộc của kết luận không được lớn hơn độ phụ thuộc điều kiện” Nếu hệ thống có nhiều đầu vào và nhiều đầu ra thì mệnh đề suy diễn có dạng tổng quát như sau: If 𝑁 = 𝑛𝑖 and 𝑀 = 𝑚𝑖 and … Then R = 𝑟𝑖 and 𝐾 = 𝑘𝑖 and … * 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 một hay nhiều hàm thuộc cho một hay nhiều mệnh đề hợp thành. 20 Các luật hợp thành cơ bản: + Luật Max – Min + Luật Max – Prod + Luật Sum – Min + Luật Sum – Prod. 3.2.1.7. Giải mờ Giải mờ là quá trình xác định giá trị rõ ở đầu ra từ hàm thuộc 𝜇𝐵′(𝑦) của tập mờ 𝐵’. Có 2 phương pháp giải mờ: a. Phương pháp cực đại Các bước thực hiện: - Xác định miền chứa giá trị 𝑦’, 𝑦’ là giá trị mà tại đó 𝜇𝐵′(𝑦) đạt Max: 𝐺 = {𝑦 ∈ 𝑌|𝜇𝐵′(𝑦) = 𝐻} - 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. + Nguyên lý trung bình: chọn 𝑦′ = 𝑦1+𝑦2 2 + Nguyên lý cận trái: chọn 𝑦’ = 𝑦1 +Nguyên lý cận phải: chọn 𝑦’ = 𝑦2 Hình 3.6: Giải mờ theo phương pháp cực đại 21 b. Phương pháp trọng tâm Điểm 𝑦’ đượ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 𝜇𝐵′(𝑦). Công thức xác định: 𝑦′ = ∫ 𝑦𝜇(𝑦)𝑑𝑦𝑆 ∫ 𝜇(𝑦)𝑑𝑦𝑆 Trong đó S là miền xác định của tập mờ 𝐵′. 3.2.2. Bộ điều khiển Fuzzy-PID Phần này ta trình bày về sơ đồ cấu trúc của bộ điều khiển mờ thuần túy. Trên cơ sở đó, xây dựng bộ điều khiển lai Fuzzy-PID. 3.2.2.1. Cấu trúc bộ điều khiển mờ thuần túy Hình 3.7: Sơ đồ cấu trúc bộ điều khiển mờ * Một bộ điều khiển mờ gồm 3 khâu cơ bản: + Khâu mờ hoá + Thực hiện luật hợp thành + Khâu giải mờ. 22 * Các nguyên lý thiết kế hệ thống điều khiển mờ: + Giao diện đầu vào gồm 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ếp 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ào/ra - Bước 2: Xác định các tập mờ cho từng biến ngôn ngữ vào/ra (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 việc 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 điều khiển 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. 23 3.2.2.2. Cấu trúc bộ điều khiển mờ - PID Hình 3.8: Sơ đồ cấu trúc bộ điều khiển mờ-PID Ý tưởng về bộ PID – Mờ ở đây là sử dụng Logic mờ để tối ưu giá trị các tham số của bộ điều khiển PID (Hình 3.8). Bộ điều khiển PID có ba tham số 𝐾𝑃 , 𝐾𝐼 , 𝐾𝐷 nằm trong các khoảng [𝐾𝑃 𝑚𝑖𝑛, 𝐾𝑃 𝑚𝑎𝑥], [𝐾𝐼 𝑚𝑖𝑛, 𝐾𝐼 𝑚𝑎𝑥], [𝐾𝐷 𝑚𝑖𝑛, 𝐾𝐷 𝑚𝑎𝑥]. Ta sẽ quy đổi các khoảng này về dạng chính tắc: 𝐾𝑃 ′ = 𝐾𝑃 − 𝐾𝑃 𝑚𝑖𝑛 𝐾𝑃 𝑚𝑎𝑥 − 𝐾𝑃 𝑚𝑖𝑛 (3.10) 𝐾𝐼 ′ = 𝐾𝐼 − 𝐾𝐼 𝑚𝑖𝑛 𝐾𝐼 𝑚𝑎𝑥 − 𝐾𝐼 𝑚𝑖𝑛 (3.11) 𝐾𝐷 ′ = 𝐾𝐷 − 𝐾𝐷 𝑚𝑖𝑛 𝐾𝐷 𝑚𝑎𝑥 − 𝐾𝐷 𝑚𝑖𝑛 (3.12) Khi đó, các giá trị 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ ∈ [0,1], và các tham số bộ PID được tính lại: 𝐾𝑃 = (𝐾𝑃 𝑚𝑎𝑥 − 𝐾𝑃 𝑚𝑖𝑛)𝐾𝑃 ′ + 𝐾𝑃 𝑚𝑖𝑛 (3.13) 𝐾𝐼 = (𝐾𝐼 𝑚𝑎𝑥 − 𝐾𝐼 𝑚𝑖𝑛)𝐾𝐼 ′ + 𝐾𝐼 𝑚𝑖𝑛 (3.14) 𝐾𝐷 = (𝐾𝐷 𝑚𝑎𝑥 − 𝐾𝐷 𝑚𝑖𝑛)𝐾𝐷 ′ + 𝐾𝐷 𝑚𝑖𝑛 (3.15) 24 Cấu trúc bộ mờ và các hàm thuộc Bộ mờ ở đây sẽ gồm 2 đầu vào: sai lệch 𝑒(𝑡) và vi phân của sai lệch 𝑑𝑒(𝑡), và ba đầu ra cho ba tham số của bộ PID: 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ . Ở đây ta sử dụng mô hình Mamdani cho bộ mờ như hình 3.9. Hình 3.9: Cấu trúc của khối mờ Việc xây dựng các hàm thuộc, các khoảng giá trị của biến vật lý và biến ngôn ngữ dựa vào phỏng đoán và kinh nghiệm chỉnh định. Do đó việc đánh giá chất lượng cũng mất khá nhiều thời gian và công sức. Ở đây, với mỗi đầu vào bộ mờ ta lập 5 hàm thuộc ứng với 5 biến ngôn ngữ: 𝑒 = {𝑁𝑒𝑔𝐵𝑖𝑔, 𝑁𝑒𝑔𝑆𝑚𝑎𝑙𝑙, 𝑍𝑒𝑟𝑜, 𝑃𝑜𝑠𝑆𝑚𝑎𝑙𝑙, 𝑃𝑜𝑠𝐵𝑖𝑔} 𝑑𝑒 = {𝐷𝑒𝑐𝐹𝑎𝑠𝑡, 𝐷𝑒𝑐𝑆𝑙𝑜𝑤,𝑀𝑎𝑖𝑛𝑡𝑎𝑖𝑛, 𝐼𝑛𝑐𝑆𝑙𝑜𝑤, 𝐼𝑛𝑐𝐹𝑎𝑠𝑡} Hình 3.10: Các hàm thuộc của sai lệch e(t) Khoảng giá trị của các biến vật lý cho các hàm thuộc của sai lệch 𝑒(𝑡) phụ thuộc vào khoảng giá trị của tín hiệu đo được. Ở đây, do tín hiệu đo về là số xung encoder trong thời gian lấy mẫu 𝑇𝑠 (xem phần 4.2.2) nên ta lấy khoảng giá trị của 𝑒(𝑡) là 25 [−4; 4]. Khoảng này nhỏ vì mục đích điều khiển là bài toán điều chỉnh và bài toán đặt ra là tự động chỉnh định để có bộ tham số PID phù hợp nhất. Hình 3.11: Các hàm thuộc của vi phân sai lệch de(t) Khoảng giá trị của các biến vật lý cho các hàm thuộc của vi phân sai lệch 𝑑𝑒(𝑡) ta cũng lấy tương tự như đối với 𝑒(𝑡). Tuy nhiên có một chú ý là khoảng giá trị này phụ thuộc thời gian lấy mẫu 𝑇𝑠 (đối với vi điều khiển). Ở đây, với thời gian lấy mẫu 25,6ms thì 𝑑𝑒(𝑡) ta lấy trong khoảng [−156; 156]. Các đầu ra 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ có dạng giống nhau là dạng chuẩn, nên hàm thuộc ta cũng lấy cùng dạng như hình 3.12. Khoảng giá trị biến ra là chính tắc [0; 1]. 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ = {𝑆𝑚𝑎𝑙𝑙, 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙, 𝑀𝑒𝑑,𝑀𝑒𝑑𝐵𝑖𝑔, 𝐵𝑖𝑔} Hình 3.12: Các hàm thuộc của biến ra 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ Xây dựng luật hợp thành Các luật hợp thành đều có dạng chung như sau: If 𝑒(𝑡) is 𝑁𝑒𝑔𝐵𝑖𝑔 and 𝑑𝑒(𝑡) is 𝐷𝑒𝑐𝐹𝑎𝑠𝑡, then 𝐾𝑃 ′ , 𝐾𝐼 ′, 𝐾𝐷 ′ is 𝑆𝑚𝑎𝑙𝑙. 26 Tổng kết lại ta có bảng luật hợp thành hình 3.13 và 3.14 𝑑𝑒(𝑡)\𝑒(𝑡) 𝑁𝑒𝑔𝐵𝑖𝑔 𝑁𝑒𝑔𝑆𝑚𝑎𝑙𝑙 𝑍𝑒𝑟𝑜 𝑃𝑜𝑠𝑆𝑚𝑎𝑙𝑙 𝑃𝑜𝑠𝐵𝑖𝑔 𝐷𝑒𝑐𝐹𝑎𝑠𝑡 𝑆𝑚𝑎𝑙𝑙 𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑 𝐷𝑒𝑐𝑆𝑙𝑜𝑤 𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑 𝑀𝑒𝑑𝐵𝑖𝑔 𝑀𝑎𝑖𝑛𝑡𝑎𝑖𝑛 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑 𝑀𝑒𝑑𝐵𝑖𝑔 𝑀𝑒𝑑𝐵𝑖𝑔 𝐼𝑛𝑐𝑆𝑙𝑜𝑤 𝑀𝑒𝑑𝑆𝑚𝑎𝑙𝑙 𝑀𝑒𝑑 𝑀𝑒𝑑𝐵𝑖𝑔 𝑀𝑒𝑑𝐵𝑖𝑔 𝐵𝑖𝑔 𝐼𝑛𝑐𝐹𝑎𝑠𝑡 𝑀𝑒𝑑 𝑀𝑒𝑑𝐵𝑖𝑔 𝑀𝑒𝑑𝐵𝑖𝑔 𝐵𝑖𝑔 𝐵𝑖𝑔 Hình 3.13: Bảng luật hợp thành mờ Hình 3.14: Bảng luật hợp thành mờ 27 Kết quả mô phỏng Hình 3.15: Sơ đồ khối bộ điều khiển F-PID Hình 3.16: So sánh đáp ứng của bộ PID(Z-N1) và F-PID Ở đây, mô hình hàm truyền đối tượng động cơ là mô hình (2.7). Tham số bộ PID được chọn theo Ziegler – Nichols 1 (Bảng 3.1). Các tham số, các hàm thuộc, luật hợp thành của bộ F-PID được lựa chọn như ở trên đã phân tích (Phần 3.2.2.2). 28 Sau khi sử dụng công cụ PID Tuning Toolbox, ta cũng so sánh đáp ứng của bộ PID này với bộ F – PID (Hình 3.18). Hình 3.17: So sánh đáp ứng của bộ PID (Tuning toolbox) và F-PID Đánh giá chất lượng bộ điều khiển thông qua mô phỏng Từ đáp ứng của bộ PID và F – PID (Hình 3.17), ta thấy rõ chất lượng đáp ứng của bộ F – PID hơn hẳn bộ PID (Z – N 1), và chất lượng có tốt hơn một chút so với bộ PID (Tuning toolbox) về một số chỉ tiêu. Cụ thể như bảng (Hình 3.19). Chỉ tiêu F – PID PID (Z – N 1) PID (Tuning toolbox) Thời gian đáp ứng Nhanh, khoảng 0.2s Khá chậm, khoảng 2.8s Khá nhanh, khoảng 0.35s Độ quá điều chỉnh Nhỏ, khoảng 1% Rất nhỏ, khoảng 0.1% Rất nhỏ, khoảng 0.01% Sai lệch tĩnh Không tồn tại Không tồn tại Không tồn tại Tính ổn định Ổn định với nhiễu quá trình Ổn định với nhiễu quá trình Ổn định với nhiễu quá trình Hình 3.18: Bảng đánh giá chất lượng các bộ điều khiển 29 CHƯƠNG IV: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 4.1. Phần cứng chuẩn bị và phần mềm sử dụng 4.1.1. Mạch phần cứng Hình 4.1: Sơ đồ nguyên lý mạch phần cứng Bao gồm: + Mạch phát triển ứng dụng MUC AT89S52 (Gồm MCU, LCD, Keyboard và các module khác) + Mạch công suất điều khiển động cơ, sử dụng IC L298 + Động cơ 12V DC có gắn Encoder quang, độ phân giải 100 xung/vòng + Bộ nguồn 12V DC, 5V DC 30 4.1.2. Chương trình phần mềm Các phần mềm sử dụng: + Keil for 8051 (uVision 4 – tools c51 + a51) + MATLAB 2013a (Simulink; toolbox PID Tuning, Fuzzy Logic Design, System Identification) + Proteus 8 Professional (Mô phỏng mạch) + PROGISP 1.68 (Nạp song song cho MCU) 4.2. Giải quyết vấn đề điều khiển 4.2.1. Định hướng chương trình Muốn điều khiển động cơ vòng kín, có phản hồi: (i) Đề tài sử dụng encoder quang để phản hồi vận tốc. Nhiệm vụ là phải đọc được giá trị vận tốc này. Dự kiến sẽ sử dụng các đọc Encoder sử dụng ngắt và timer để đếm số xung trong một khoảng thời gian mẫu. Số xung này tỉ lệ với vận tốc của động cơ. (ii) Điện áp đặt vào hai đầu động cơ thay đổi làm vận tốc động cơ thay đổi. Do đó tín hiệu điều khiển đưa vào mạch công suất có tác động đến tốc độ động cơ. Nhiệm vụ là xây dựng chương trình điều chế xung điều khiển đưa vào mạch công suất. (iii) Giá trị vận tốc đặt được ra lệnh từ bàn phím keyboard trên mạch điều khiển. Nhiệm vụ là phải xây dựng chương trình nhập giá trị từ bàn phím. Xây dựng các menu điều khiển. Ở đây thì các menu được đơn giản đi, mục đích chính của bài này là giải thuật điều khiển. (iv) Muốn động cơ duy trì tại vận tốc mong muốn, hoặc bám theo một tín hiệu chủ đạo cho trước, phải có một khâu điều khiển. Ở đây ta sử dụng giải thuật Fuzzy – PID. Nhiệm vụ là chuyển thuật toán từ lý thuyết lên vi điều khiển, chỉnh định tham số của bộ điều khiển. Việc xác định các thông số cho bộ PID có thể sử dụng tool box PID Tuning. 31 4.2.2. Phác thảo giải thuật 4.2.2.1. Đọc Encoder Về cơ bản, để có thể đọc được giá trị vận tốc, ta có thể: (i) Tính số sườn xuống trong thời gian 𝑇𝑠 (sampling time) để suy ra vận tốc trung bình của động cơ (𝑥𝑢𝑛𝑔/𝑇𝑠) (ii) Tìm thời gian xuất hiện 2 sườn xuống liên tiếp của Encoder, từ đó cũng suy ra được vận tốc. Hình 4.2: Đọc Encoder Phân tích: - Nếu sử dụng phương án (i), ta cần một timer để định một khoảng thời gian và một counter hoặc sử dụng biến đếm để đếm xung. Dùng phương pháp này có thể bị giới hạn về mặt đáp ứng do Encoder gây ra. Nếu số xung quá lớn gây tràn Counter hoặc bộ nhớ. Nếu encoder độ phân giải thấp thì phải tăng thời gian lấy mẫu 𝑇𝑠 để giảm thiểu sai số đo. - Nếu sử dụng phương án (ii), ta cần sử dụng timer để đếm khoảng thời gian giữa 2 sườn xuống. Khi đó thì thời gian thực thi sẽ chiếm hầu hết thời gian hoạt động của MCU. Do đó, phương án này không khả quan lắm. Đề ra phương án tối ưu: Ta sử dụng phương án 1, sử dụng timer với một ngắt ngoài và biến đếm. Encoder có độ phân giải khá lớn, phù hợp với tốc độ định mức của động cơ là hợp lý nhất. Tuy nhiên, với encoder sử dụng trong bài là encoder 100 xung/vòng là khá nhỏ, do đó ta cần thỏa hiệp các điều kiện để đạt được mục đích điều khiển. Tức là ta tăng thời gian lấy mẫu lên mức vừa phải để giảm sai số đo. Ở đây, ta lấy thời gian lấy mẫu là 25.6ms, sử dụng timer2 chế độ 16bit, autoreload. Xung từ Encoder đưa về MCU tại chân ngắt ngoài INT1. Số xung đếm được sẽ được lưu vào biến 𝑐𝑜𝑢𝑛𝑡 và 𝑝𝑟𝑒_𝑐𝑜𝑢𝑛𝑡. Vận tốc thực sẽ tỉ lệ với (𝑐𝑜𝑢𝑛𝑡 − 𝑝𝑟𝑒_𝑐𝑜𝑢𝑛𝑡). Nếu quy đổi vận tốc về đơn vị 𝑣ò𝑛𝑔/𝑝ℎú𝑡 thì ảnh hưởng của sai số đo sẽ làm cho kết quả kém chính xác, nên sẽ hiển thị luôn số xung đếm được trong thời gian 𝑇𝑠 và so sánh với 𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡, thực hiện thuật toán điều khiển. 32 4.2.2.2. Điều chế xung PWM Vi điều khiển dòng AT89S52 không có chân xuất PWM trực tiếp, do vậy ta phải dùng Timer để tạo xung PWM, đưa vào mạch công suất. Vấn đề đặt ra là tạo được xung ra có tần số phù hợp với chu kì lấy mẫu 𝑇𝑠 để sau đúng thời gian 𝑇𝑠, MCU thực hiện cập nhật các thông số và tính toán lại một lượt. Khi đó, nếu ta thực hiện cập nhật phần trăm xung đồng bộ với chu kì chương trình thì sai số điều khiển sẽ được giảm bớt đáng kể. Đồng thời, tần số xung PWM này cũng phải thích hợp để tránh trường hợp động cơ thay đổi tốc độ không trơn tru, linh hoạt. Chu kì chương trình ta lấy là 𝑇𝑠 = 25.6(𝑚𝑠). Ta cũng lấy chu kì xung PWM chính bằng thời gian 𝑇𝑠. Do vậy, Timer sử dụng để tạo xung ở đây ta chọn Timer1 chế độ 16bit. Ta dùng biến 𝑝𝑤𝑚 để làm biến điều khiển, có kiểu 𝑢𝑛𝑠𝑖𝑔𝑛𝑒𝑑 𝑐ℎ𝑎𝑟. Giá trị nằm trong khoảng 0 – 255. Do vậy, để thỏa mãn xung ra có chu kì bằng 𝑇𝑠 thì biến độ rộng xung 𝑑𝑢𝑡𝑦 khi quy đổi từ 𝑝𝑤𝑚 sang, ta phải nhân với hệ số 100. Dưới đây là lưu đồ phác thảo giải thuật điều chế xung PWM (Hình 4.3) Hình 4.3: Lưu đồ giải thuật điều chế xung PWM 33 4.2.2.3. Quét phím nhập vào từ keyboard Ma trận phím 4x4 được kết nối với Port 1 của MCU. Giải thuật quét phím là: - Quét hàng: + Cho các hàng bằng 1, cột bằng 0. + Kiểm tra hàng có phím được ấn. Chuyển sang quét cột. - Quét cột: + Cho hàng bằng 0, cột bằng 1. + Kiểm tra cột có phím được ấn. Suy ra phím được ấn. Sau khi xác định được hàng và cột có phím được ấn. Ta suy ra được phím đã ấn, từ đó trả về giá trị được gán cho phím đó. Một chú ý trong bài toán quét phím là vấn đề chống nhiễu (nhảy phím, dính phím). Ngoài phương pháp chống nhiễu bằng phần cứng (sử dụng tụ và điện trở) thì có thể sử dụng phương pháp chống nhiễu bằng phần mềm (dựa vào trễ truyền đạt). Dưới đây là chương trình quét phím ma trận, có chống nhiễu bằng phần mềm (Hình 4.4). Hình 4.4: Chương trình quét phím ma trận 34 4.2.2.4. Bộ điều khiển Fuzzy – PID Hình 4.5: Thuật toán Fuzzy-PID Về cấu trúc của bộ Fuzzy – PID: xem lại phần 3.2.2.2. Phần này nói về cách xây dựng các tập mờ, các hàm thuộc và phương pháp giải mờ trên đối tượng là vi điều khiển AT89S52. Dưới đây là một ví dụ về xây dựng hàm thuộc (Hình 4.6) Ứng với khoảng [0,1] thì giá trị trả về nằm trong [0,255]. Hình 4.6: Ví dụ về xây dựng hàm thuộc cho tập mờ e(t) 35 Luật hợp thành sử dụng ở đây là luật Min – Max: Hình 4.7: Ví dụ về luật hợp thành Giải mờ theo phương pháp cực đại, lấy giá trị trung bình: Hình 4.8: Ví dụ về phương pháp giải mờ cực đại 36 4.3. Kết quả mạch chạy thực tế Do vi điều khiển thực hiện các phép toán trên miền số thực rất hạn chế, nên trong giải thuật, hầu hết đã quy về xử lý đối với số nguyên. Do đó cũng gây ra một số ảnh hưởng tới chất lượng điều khiển. Vì lý do thời gian có hạn, không xây dựng được phần mềm giám sát nên việc so sánh chất lượng của hai bộ điều khiển là khá khó khăn. Kết quả nhận được dừng ở mức chấp nhận được. Cụ thể là: + Động cơ bám được giá trị đặt trước nhập từ bàn phím và chạy ổn định tại tốc độ đó. Tuy nhiên, dải tốc độ đặt của hai bộ PID và F – PID là khác nhau. + Tốc độ đáp ứng nhanh, thời gian quá độ nhỏ. Theo như quan sát, hai bộ PID và F – PID đạt đến trạng thái ổn định sau khoảng 2s. + Độ quá điều chỉnh ở mức chấp nhận được: Khoảng 5% (Theo như quan sát là 3/60 xung trong thời gian lấy mẫu 25.6ms) + Khi có tải (chạm tay) thì tốc độ động cơ có giảm xuống và sau đó bám lại giá trị đặt. Tốc độ đáp ứng khi có tải khá nhanh (cũng tầm 2s). + Vẫn tồn tại sai lệch do nhiễu đo. Nguyên nhân là do sau khoảng 1s, vi điều khiển phải thực hiện hiển thị tốc độ lên LCD. Do đó có thể gây ra sai lệch. + Phần chống bão hòa thành phần tích phân làm chưa tốt, mới chỉ là khâu giới hạn tín hiệu. Khi chạy ở chế độ bình thường và tải nhỏ thì hoạt động tốt. Tuy nhiên khi tải có quán tính lớn và thời gian chịu tải dài (ví dụ như giữ tay cho tới khi động cơ phải dừng và giữ lâu sau đó mới nhả ra) thì phải mất một khoảng thời gian bộ điều khiển mới hoạt động tốt. 37 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1. Các kết quả đạt được - Đã thiết kế và chạy thành công mô phỏng bằng Simulink các bộ điều khiển PID và F – PID, so sánh được chất lượng của các bộ điều khiển. - Xây dựng và hoàn thiện phần cứng gồm module mạch điều khiển, mạch công suất đã giải quyết được bài toán điều chỉnh tốc độ động cơ với chất lượng khá tốt với hai giải thuật PID và Fuzzy – PID: Thời gian đáp ứng và thời gian quá độ tương đối nhanh, Độ quá điều chỉnh nhỏ, sai lệch tĩnh hầu như rất nhỏ, ngay cả khi có tải hay ở một số tốc độ đặt khác nhau. Một số hạn chế: - Động cơ sử dụng có tốc độ định mức khoảng 2400 vòng/phút là khá nhỏ. Encoder sử dụng có độ phân giải 100 xung/vòng là nhỏ. Vi điều khiển sử dụng có dung lượng RAM, ROM không lớn, do vậy, chất lượng điều khiển chưa được như mong đợi. Dải điều chỉnh cũng bị thu hẹp lại. - Hạn chế về thời gian và các công cụ phục vụ cho việc nhận dạng trực tuyến nên chưa xây dựng được chương trình nhận dạng cho đối tượng là động cơ. Các kết quả dựa trên mô hình tham khảo. Tuy nhiên, chất lượng cũng chấp nhận được. 5.2. Một số đề xuất và hướng phát triển đề tài Để nâng cao chất lượng bài toán điều khiển, cụ thể với đối tượng động cơ trong bài báo cáo này, đề xuất một số giải pháp như sau: - Về phần cứng: + Tăng độ phân giải encoder nhằm giảm thiểu sai số đo, từ đó có thể rút ngắn thời gian lấy mẫu làm tăng tốc độ đáp ứng của hệ thống. Ngoài ra, nên chọn động cơ có tốc độ định mức phù hợp với độ phân giải encoder. + Sử dụng vi điều khiển mạnh hơn như PIC,AVR,… phục vụ cho việc tính toán và triển khai giải thuật. 38 - Về phần mềm, thuật toán: + Thay đổi dạng các hàm thuộc, số lượng các hàm thuộc. + Sử dụng luật hợp thành khác. + Sử dụng phương pháp giải mờ khác. + Giảm thời gian lấy mẫu của vi điều khiển nhằm cải thiện tốc độ đáp ứng. + Sử dụng các công cụ tối ưu hóa như các toolbox của MATLAB làm các phương tiện xử lý trung gian nhằm thu được các bộ thông số tối ưu. Ngoài ra, còn phải thực hiện nhiều lần, thu thập các kết quả, so sánh để có thêm kinh nghiệm chỉnh định. Từ đó nâng cao chất lượng của bộ điều khiển. Hướng phát triển đề tài: + Xây dựng thêm các menu trong chương trình điều khiển. + Ứng dụng vào điều khiển tốc độ các loại động cơ khác, có các thông số kỹ thuật khác nhau, công suất lớn hơn. + Kết hợp các giao thức truyền thông nhằm đồng bộ tốc độ các động cơ, xây dựng các phần mềm vận hành, giám sát. + Ứng dụng Logic mờ và thuật toán PID số vào các bài toán khác như điều khiển đường đi rôbốt, điều khiển vị trí, điều khiển góc quay sử dụng vi điều khiển. 39 Tài liệu tham khảo [1]. System Identification Algorithm for Systems with Interval Coefficients, Mustaffa Mohammed Basil, Journal of Engineering, 18 February 2012. [2]. PID Controllers: Theory, Design, and Tuning 2nd Edition; K. Astrom and T. Hagglund; Instrument Society of America, 1994. [3]. Fuzzy Logic in Embedded Microcomputers and Control Systems, Walter Banks and Gordon Hayward, Byte Craft Limited, 2002. [4]. Application of Self-Tuning Fuzzy Pid Controller on Industrial Hydraulic Actuator using System Identification Approach, Zulfatman and M. F. Rahmat, International Journal on Smart Sensing and Intelligent Systems, Vol. 2, No. 2, June 2009. [5]. Giáo trình Lý thuyết điều khiển hiện đại, Chương 4. Điều khiển mờ, PGS.TS. Nguyễn Thị Phương Hà. Tài liệu đính kèm [6]. Project Keil uVision 4: project.zip bao gồm chương trình chính và các thư viện tự tạo đi kèm. [7]. File mô phỏng nguyên lý Proteus. [8]. File mô phỏng MATLAB: Bộ PID, Bộ F – PID và file FuzzyPID.fis

Các file đính kèm theo tài liệu này:

  • pdfbao_cao_3769.pdf