Đang tải... (xem toàn văn)
Ứng dụng lý thuyết hiện đại thiết kế Modul điều khiển động cơ DC
TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH Khoa Điện-Điện tử Ngành Điều khiển tự động ỨNG DỤNG LÝ THUYẾT HIỆN ĐẠI THIẾT KẾ MODUL ĐIỀU KHIỂN ĐỘNG CƠ DC -----¾?½----- Sinh viên thực hiện: Bùi Trung Hiếu Mã số: 40200776 Lớp: DD02KSTN Thành phố Hồ Chí Minh, 2005-12-24 Index – DC Motor Control Module Trang i I. Khái quát-giới thiệu đề tài: Kiến thức cơ bản: II. Giới thiệu thuật toán điều khiển và các chương trình. II.1. Điều khiển kinh điển II.2. Mạng neural II.3. Fuzzy control II.4. Genetic Algorithm(GA). II.5. Chương trình điều khiển viết bằng ngôn ngữ C trong uV3 Hình II.1 Mô hình điều khiển hệ thống khi chưa có khâu chỉnh định Hình II.2 Mô hình điều khiển hệ thống có thêm khâu chỉnh định III. Phần cứng chuẩn bị và phần mềm sử dụng. III.1. Mạch phần cứng Hình III.1 Mạch giao tiếp MCU P89LPC922 với PC qua cổng COM Hình III.2 Mạch phát triển ứng dụng MCU P89LPC922 Hình III.3 Mạch đọc Encoder sử dụng MCU P89LPC922 <dự định-đang thiết kế> Hình III.4 Mạch động lực (mạch công suất). IV. Giải quyết vấn đề: IV.1. Định hướng chương trình: Hình IV.1 Định hướng chương trình dạng TOP-DOWN design IV.2. Phác thảo giải thuật IV.2.1. Đọc Encoder: Hình IV.2.1.1 Cấu hình các nguồn tạo dao động của P89LPC922 Hình IV.2.1.2 Cấu hình của Counter/Timer 0 và cách khai báo khi T0 ở chức năng Counter Hình IV.2.1.3 Cấu hình của WDT ở chức năng Timer Hình IV.2.1.4 Sơ đồ giải thuật cách đọc Encoder bằng Counter và gửi lên PC IV.2.2. Điều xung Hình IV.2.2.1 Sơ đồ khối điều xung tham khảo Hình IV.2.2.2 Mạch nguyên lý của Driver LMD18200 dùng ở chế độ điều biến xung Hình IV.2.2.3 Timer 1 ở mode 6 với chức năng PWM IV.2.3. Khâu điều khiển kinh điển PID: IV.2.3.1 Khâu PID rời rạc: Hình IV.2.3.1 Tìm các thông số cho PID nhờ Matlab Hình IV.2.3.2 Sơ đồ giải thuật khảo sát đặc tính động cơ Hình IV.2.3.3 Biểu diễn kết quả với T s =9ms Hình IV.2.3.4 Xấp xỉ các kết quả khảo sát bằng một hàm truyền không đơn vị IV.2.3.2 Thiết kế khâu điều khiển mờ PID rời rạc dùng MATLAB(Tìm bộ thông số K p ,K i ,K d bằng thuật toán GA kết hợp mạng neural): Hình IV.2.3.1 Sơ đồ mô phỏng động cơ DC xây dựng trong Matlab Hình IV.2.3.2 Chức năng của MCU P89LPC922 mô phỏng trong Matlab Hình IV.2.3.3 Khóa mờ xây dựng luật điều khiển Hình IV.2.3.4 Khối PID rời rạc xây dựng trong Matlab Hình IV.2.3.5 Quần thể được chọn nhờ lời khuyên của chuyên gia. Hình IV.2.3.6 Đáp ứng của hệ thống khi tín hiệu thử là 1000+500sin(0.02t) (v/p) trên mô phỏng. Hình IV.2.3.7 Hình phóng to sai số giữ a tín hiệu đặc và tín hiệu đáp ứng (vòng/phút) trên mô phỏng. Hình IV.2.3.8 Đáp ứng của hệ thống khi tín hiệu thử là 20+10sin(0.5t) (xung/Ts) trên thực tế với chu kì lệnh là 10xung/lệnh. DC Motor Control Module Trang ii Hình IV.2.3.9 Sơ đồ giải thuật điều khiển vòng kín chưa chỉnh hướng chỉ dùng khâu PID kinh điển Hình IV.2.3.10 Đáp ứng vòng kín khi chỉ có khâu PID với các tốc độ khác nhau khi không gây nhiễu tải. IV.2.3.3 Mở rộng chiến lược điều khiển, tìm cách tối ưu hóa đáp ứng quá độ của hệ thống-nhận dạng đối tượng và xây dựng một mô hình tham chiếu chuẩn cho động cơ-Mạng neural truyền thẳng: Hình IV.2.3.1 Sơ đồ giải thuật khảo sát đặc tính động cơ. Hình IV.2.3.2 Đặc tính điều xung theo vận tốc (xung/T s ). Hình IV.2.3.3 Đáp ứng bước khi có khâu hiệu chỉnh kết hợp. V. Các vấn đề mở rộng và hướng giải quyết: VI. Kết luận: VII. Dự định: VIII. Tài liệu tham khảo VIII.1. Giáo trình. VIII.2. Tài liệu tham khảo chính: Từ khóa tra cứu tài liệu sử dụng. IX. Các phiên bản cập nhật. (I) Khái quát – Giới thiệu sơ lược về nội dung đề tài I Khái quát: Việc áp dụng lý thuyết điều khiển kinh điển và hiện đại vào những mô hình thực tế luôn gặp khó khăn về giải thuật phần mềm lẫn đáp ứng phần cứng của thiết bị. Bằng cách sử dụng vi điều khiển P89LPC922 của Philips làm nhân điều khiển trung tâm, Matlab là chương trình xử lý trung gian, phần mạch công suất sử dụng Driver tích hợp <LMD18200>, hi vọng đề tài đem đến một cách nhìn nhận mới về vấn đề áp dụng lý thuyết điều khiển vào thực tế. Đề tài đã phân tích khá kĩ lưỡng các vấn đề như thiết kế và chọn bộ thông số của khâu điều khiển kinh điển PID bằng thuật toán GA, cách chọn tần số điều xung, xử lý ngắt trong lấy mẫu, thời gian thực hiện của các hàm, giới hạn phần cứng đáp ứng của thiết bị, cách xây dựng mô hình tham chiếu chuẩn cho đối tượng, khắc phục những sự cố về nhiễu tải hoặc/và nhiễu đo lên đối tượng. Làm việc trên nhân điều khiển P89LPC922 của Philips nên tôi phân tích các sơ đồ giải thuật và chương trình, cũng như thời gian thực để thực thi trên cơ sở tập lệnh của họ MCU8051. " Kiến thức cơ bản: 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, điện tử công suất, cấu trúc vi điều khiển, giải thuật và lập trình ngôn ngữ C. Trang I.1 (II) Thuật toán điều khiển và các chương trình II. Thuật toán điều khiển và các chương trình: II.1: Điều khiển kinh điển: Sử dụng khâu vi tích phân tỉ lệ (PID) để làm bộ điều khiển hệ thống. II.2: Mạng neural: nhận dạng đặc tính động cơ DC. Điều khiển theo mô hình tham chiếu. Chuyên gia cho ‘lời khuyên’ về vùng khả nghiệm của khâu PID, hướng dẫn thuật toán GA tìm quần thể thích nghi. II.3: Fuzzy control: Điều khiển vòng kín bằng ‘công tắc mờ’: Nếu <80% tốc độ yêu cầu thì mở toàn công suất, nếu >120% thì tắt nguồn, khoảng giữa sử dụng khâu hiệu chỉnh PID kinh điển. II.4: Genetic Algorithm(GA): chọn bộ thông số PID cho khâu điều khiển kinh điển, lựa cá thể trội theo yêu cầu thiết kế với mức chính xác đặt ra của người dùng. II.5: Chương trình điều khiển viết bằng ngôn ngữ C trong uV3. II.6: Các mô hình điều khiển hệ thống: Hình II.1 Mô hình điều khiển hệ thống khi chưa có khâu tự chỉnh định Hình II.2 Mô hình điều khiển hệ thống có thêm khâu chỉnh định Trang II.1 (III) Phần cứng và phần mềm III. Phần cứng chuẩn bị và phần mềm sử dụng: III.1: Mạch phần cứng: III.1.1 Mạch giao tiếp MCU P89LPC922 với PC qua cổng COM. III.1.2 Mạch phát triển ứng dụng MCU P89LPC922. III.1.3 Mạch đọc Encoder sử dụng MCU P89LPC922 <dự định-đang thiết kế> III.1.4 Mạch công suất điều khiển động cơ. III.1.5 Động cơ DC có Encoder. III.1.6 Bộ nguồn: 12VDC<Có thể sử dụng ở 24VDC>, 5VDC <Sử dụng bộ nguồn ATX-nối 2 chân 14-15> III.2: Chương trình phần mềm: III.2.1 Keil For 8051(uV3—tools c51+a51). III.2.2 Hyper terminal. III.2.3 Matlab version 7.0. III.2.4 Orcad version 9.2. Hình III.1.1.: Mạch giao tiếp MCU P89LPC922 với PC qua cổng COM. Trang III.1 ‘DC Motor Control Module’ Trang III.2 Hình III.1.2.: Mạch phát triển ứng dụng MCU P89LPC922. Hình III.1.3.: Mạch đọc Encoder sử dụng MCU P89LPC922 < dự định-đang thiết kế > (III) Phần cứng và phần mềm Hình III.1.4.:Sơ đồ phần cứng mạch công suất Trang III.3 (IV.I) Giải quyết vấn đề-Định hướng chương trình IV. Giải quyết vấn đề: IV.1. Định hướng chương trình: Muốn điều khiển động cơ vòng kín, có hồi tiếp: (i) Đề tài sử dụng encoder quang để phản hồi vận tốc <sử dụng động cơ có encoder 100xung/vòng>. Nhiệm vụ phải đọc được giá trị này. Dự định sẽ phát triển cách đọc Encoder sử dụng ngắt cạnh ở mode x4 (ii) Áp đặt vào 2 đầu động cơ thay đổi sẽ làm vận tốc động cơ thay đổi nên tín hiệu điều xung có tác động trực tiếp đến vận tốc động cơ. Nhiệm vụ phải có chương trình điều biến xung. (iii)Muốn động cơ đáp ứng đúng vận tốc mong muốn, phải có một khâu điều khiển, có thể dùng khâu điều khiển kinh điển (PID) hoặc(/và kết hợp với) điều khiển hiện đại (xây dựng mô hình tham chiếu, hoặc/và khâu điều khiển mờ) (iv) Giá trị vận tốc và chiều quay của động cơ được ra lệnh từ bàn phím và hiển thị trên màn hình PC bằng giao tiếp RS232. Các giá trị này có thể được nhận từ một MCU master khác qua các giao tiếp I2C, song song,… tùy nhu cầu sử dụng của người thiết kế. (v) Khâu PID cần các thông số để điều khiển vòng kín, nhiệm vụ phải tìm được bộ 3 thông số K P , K I , K D , sử dụng thuật GA kết hợp với ‘lời khuyên của chuyên gia’. Hình IV.2 Định hướng chương trình dạng TOP-DOWN design Trang IV.1 DC Motor Control Module IV. Giải quyết vấn đề: IV.1. Định hướng chương trình: IV.2. Phác thảo các giải thuật: IV.2.1. Đọc Encoder: Hình IV.2.1.1 Cấu hình các nguồn tạo dao động của P89LPC922 Hình IV.2.1.2 Cấu hình của Counter/Timer 0 và cách khai báo khi T0 ở chức năng Counter Hình IV.2.1.3 Cấu hình của WDT ở chức năng Timer Hình IV.2.1.4 Sơ đồ giải thuật cách đọc Encoder bằng Counter và gửi lên PC Muốn điều khiển động cơ bằng vòng kín, có hồi tiếp, trong đề tài này sử dụng encoder quang để phản hồi vận tốc <sử dụng động cơ có encoder 100xung/vòng>. Về cơ bản, để có được giá trị vận tốc này, ta có thể: (i) Tính số cạnh xuống trong thời gian T s (sampling time) để suy ra vận tốc trung bình của động cơ.(pulse/T s ) (ii) Tìm thời gian xuất hiện 2 cạnh xuống l tiếp của encoder, từ đó cũng suy ra được vận tốc trung bình của động cơ. iên Phân tích: i. Nếu sử dụng phương án 1, ta cần 1 timer để định thời gian lấy mẫu, 1 counter để đếm số xung. ii. Nếu sử dụng phương án 2, ta cũng cần 1 timer để định khoảng thời gian và 1 chân (có thể là counter/ngắt ngoài/1 chân In/Out bình thường) iii. Nếu sử dụng phương án 2, thời gian thực thi chiếm hầu hết thời gian hoạt động của MCU nên sẽ dùng một Device riêng biệt làm nhiệm vụ này. iv. Nếu sử dụng phương án 1 sẽ bị giới hạn về mặt đáp ứng do encoder gây ra <số xung quá lớn, tràn Counter/hoặc encoder có độ phân giải thấp thì thời gian lấy mẫu T s phải lớn để giảm thiểu sai số đo đạc> v. Nếu sử dụng phương án 2, trong thuật giải của MCU MASTER, dùng giao tiếp song song để giảm thiểu thời gian lấy mẫu, tất nhiên cần giao thức bắt tay để đảm bảo nhận đúng dữ liệu, chiều quay của động cơ cũng được ENCODER READER CARD nhận và gởi lên ở bit cao nhất của byte cao. <đang thiết kế> →Lựa chọn: Trong đề tài chọn phương án 1. Cách thức giải quyết: i. Sử dụng Watchdog Timer để định khoảng thời gian ngắt(T s ). Khoảng thời gian này được lập trình để có thể thay đổi tùy mục đích sử dụng. ii. Sử dụng Timer 0 ở mode 1 để làm counter đếm số xung cạnh ở encoder. Không tính đến trường hợp Counter tràn do vượt quá 65535xung/T s . <được khống chế trong đề tài bằng phần mềm> Trang IV.2 [...]... phương pháp Zeigler-Nichols để khảo sát Trong đề tài này tìm đáp ứng bước của động cơ, từ đó tìm được hàm truyền vòng hở để thiết kế khâu điều khiển dùng thuật toán GA dựa trên ‘lời khuyên của chuyên gia’ o Lấy đáp ứng bước của động cơ: Phân tích: • Đáp ứng bước của động cơ có được khi ta cấp áp dạng Step và lấy đáp ứng từng thời điểm của động cơ sau đó PID: (Tìm các thông số nhờ Matlab) Hình IV.2.3.1 Tìm... động cơ Trang IV.23 (IV.2.3.3) Xây dựng mô hình và điều khiển sử dụng mạng nơron Xử lý bằng Matlab, ta tìm được mối quan hệ đáng chú ý sau: Hình IV.2.3.2 Đặc tính điều xung theo vận tốc (xung/Ts) Phương trình đặc tính tìm trên được sử dụng để làm mô hình tham chiếu chuẩn cho động cơ Kết quả khi dùng các thông số nhận dạng để điều khiển theo vòng hở: Trang IV.24 (IV.2.3.3) Xây dựng mô hình và điều khiển. .. giải thuật IV.2.1 Đọc Encoder: IV.2.2 Điều xung IV.2.3 Khâu điều khiển kinh điển PID: IV.2.3.1 Khâu PID rời rạc: IV.2.3.2 Thiết kế khâu điều khiển mờ PID rời rạc dùng MATLAB(Tìm bộ thông số Kp,Ki,Kd bằng thuật toán GA kết hợp mạng neural): IV.2.3.3 Mở rộng chiến lược điều khiển, tìm cách tối ưu hóa đáp ứng quá độ của hệ thống-nhận dạng đối tượng và điều khiển sử dụng mạng neural truyền thẳng: Nhận dạng... chính tín hiệu đặt, bộ thông số PID sẽ khuyếch đại sai lệch này để tạo tín hiệu điều khiển đối tượng, với tín hiệu điều khiển ấy, đối tượng sẽ chưa thể nào đáp ứng đúng như yêu cầu ngay lập tức, nên sai lệch sẽ vẫn còn và do đó, tín hiệu điều khiển mới sẽ kết hợp tín hiệu điều chỉnh sai lệch mới và tín hiệu điều khiển trước (uk) để tiến dần tới giá trị điều khiển đúng mà tại đó, đối tượng sẽ cho ra giá... khâu lai kết hợp nhiều lý thuyết có thể phức tạo về thuật toán xử lý nhưng sẽ tốt hơn về đáp ứng Thật ra, với bộ thông số PID tìm nhờ GA, ta hoàn toàn có thể sử dụng bộ điều khiển kinh điển để đáp ứng yêu cầu đặt ra của bài toán, việc xây dựng thêm mô hình diễn tả đầy đủ đặc tính của động cơ được người viết xem là một phương án để đối phó với các biến loạn của nhiễu tác động lên hệ thống Với lý thuyết. .. gặp nhiều điều phiền phức nếu cố tìm thông số PID theo cách kinh điển này trong khi phần cứng hạn chế để có thể tìm được thời hằng Tc (hằng số thời gian điện cơ) của động cơ Với cách áp dụng lý thuyết mới của các tác giả Guillermo J Silva, Aniruddha Datta, S P Bhattacharyya (8) vùng khả nghiệm sẽ luôn tồn tại nếu hàm truyền của đối tượng ban đầu có thể điều khiển được bằng khâu PID Áp dụng lý thuyết này... http://www.robotics.khvt.com/dcmotor/code/openloop.zip Phân tích sự khó khăn về mặt đáp ứng của Counter: o Khi xử lý thời gian thực, ta mong muốn sao cho vi điều khiển xử lý nhanh các kết quả tính toán hầu mong tạo được tín hiệu điều khiển thích hợp nhất với tín hiệu hiện tại o Sự đáp ứng phần cứng bao giờ cũng gây ra những khó khăn, ở đây ta không thể lấy mẫu ở khoảng thời gian quá nhỏ, không phải chỉ vì thời gian đáp ứng. .. can thiệp vào các khâu thiết kế, ta sẽ quen dần với việc nhờ máy móc làm toàn bộ các công việc mà con người đã dạy cho nó! Bằng việc sử dụng nhân điều khiển P89LPC922 với các tính năng tương đối mạnh của nó, ta có thể làm được nhiều việc cho các mô hình điều khiển nhỏ, rất thích hợp cho đề tài của sinh viên Ứng dụng của đề tài: i Là modul cho các đối tượng điều khiển cần dẫn động, hoặc mô hình đối... nhiệt VII Dự định: Sử dụng họ ARM32 bits của Philips (LPC2214) nhằm phát triển công việc tính toán! Trang VI.1 (VII) Tài liệu tham khảo VIII Tài liệu tham khảo: (1) Giáo trình môn vi xử lý- ThS Hồ Trung Mỹ-NXB ĐHQG TPHCM (2) Giáo trình môn Lý thuyết điều khiển tự động- Phó GS-TS Nguyễn Thị Phương HàTS Huỳnh Thái Hoàng- NXB ĐHQG TPHCM (3) Giáo trình môn Lý thuyết điều khiển hiện đại- Phó GS-TS Nguyễn Thị... không còn, và giá trị điều khiển khi ấy chỉ còn uk=uk-1, đấy là tín hiệu điều khiển đúng với tín hiệu yêu cầu Trong hầu hết các hệ thống có điều khiển bây giờ, khâu PID đều là khâu PID số, vậy nên ảnh hưởng của thời gian lấy mẫu tương đối lớn lên hệ thống điều khiển o Để tìm bộ thông số Kp, KI, KD ta phải khảo sát được đặc tính động học của động cơ hoặc tìm bằng thử sai Có thể sử dụng phương pháp Zeigler-Nichols