Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
6,11 MB
Nội dung
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 thc 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 I Khái quát-giới thiệu đề tài: Kiến thức bản: II Giới thiệu thuật toán điều khiển 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 ngơn ngữ C uV3 Hình II.1 Mơ hình điều khiển hệ thống 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ị phần mềm sử dụng III.1 Mạch phần cứng Mạch giao tiếp MCU P89LPC922 với PC qua cổng COM Hình III.1 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 Hình III.4 Mạch động lực (mạch công suất) IV Giải 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 nguồn tạo dao động P89LPC922 Hình IV.2.1.2 Cấu hình Counter/Timer cách khai báo T0 chức Counter Hình IV.2.1.3 Cấu hình WDT chức Timer Hình IV.2.1.4 Sơ đồ giải thuật cách đọc Encoder Counter 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ý Driver LMD18200 dùng chế độ điều biến xung Hình IV.2.2.3 Timer mode với chức 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 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 Hình IV.2.3.3 Biểu diễn kết với Ts=9ms Hình IV.2.3.4 Xấp xỉ kết khảo sá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 thơng số Kp,Ki,Kd thuật tốn GA kết hợp mạng neural): Hình IV.2.3.1 Sơ đồ mơ động DC xây dựng Matlab Hình IV.2.3.2 Chức MCU P89LPC922 mơ 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 Matlab Hình IV.2.3.5 Quần thể chọn nhờ lời khuyên chuyên gia Hình IV.2.3.6 Đáp ứng hệ thống tín hiệu thử 1000+500sin(0.02t) (v/p) mơ Hình IV.2.3.7 Hình phóng to sai số tín hiệu đặc tín hiệu đáp ứng (vịng/phút) mơ Hình IV.2.3.8 Đáp ứng hệ thống tín hiệu thử 20+10sin(0.5t) (xung/Ts) thực tế với chu kì lệnh 10xung/lệnh Trang i DC Motor Control Module 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 dùng khâu PID kinh điển Hình IV.2.3.10 Đáp ứng vịng kín có khâu PID với tốc độ khác 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 độ hệ thống-nhận dạng đối tượng xây dựng 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 Hình IV.2.3.2 Đặc tính điều xung theo vận tốc (xung/Ts) Hình IV.2.3.3 Đáp ứng bước có khâu hiệu chỉnh kết hợp V Các vấn đề mở rộng 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 cập nhật Trang ii (I) Khái quát – Giới thiệu sơ lược 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 đại vào mơ hình thực tế ln gặp khó khăn giải thuật phần mềm lẫn đáp ứng phần cứng thiết bị Bằng cách sử dụng vi điều khiển P89LPC922 Philips làm nhân điều khiển trung tâm, Matlab chương trình xử lý trung gian, phần mạch cơng suất sử dụng Driver tích hợp , hi vọng đề tài đem đến cách nhìn nhận vấn đề áp dụng lý thuyết điều khiển vào thực tế Đề tài phân tích kĩ lưỡng vấn đề thiết kế chọn thông số khâu điều khiển kinh điển PID thuật toán GA, cách chọn tần số điều xung, xử lý ngắt lấy mẫu, thời gian thực hàm, giới hạn phần cứng đáp ứng 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 cố nhiễu tải hoặc/và nhiễu đo lên đối tượng Làm việc nhân điều khiển P89LPC922 Philips nên tơi phân tích sơ đồ giải thuật chương trình, thời gian thực để thực thi sở tập lệnh họ MCU8051 " Kiến thức bản: Lý thuyết điều khiển kinh điển,lý thuyết điều khiển đại, điện tử bản, điện tử công suất, cấu trúc vi điều khiển, giải thuật lập trình ngơn ngữ C Trang I.1 (II) Thuật tốn điều khiển chương trình II Thuật tốn điều khiển 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 điều khiển hệ thống II.2: Mạng neural: nhận dạng đặc tính động DC Điều khiển theo mơ hình tham chiếu Chuyên gia cho ‘lời khuyên’ vùng khả nghiệm khâu PID, hướng dẫn thuật tốn GA tìm quần thể thích nghi II.3: Fuzzy control: Điều khiển vịng kín ‘cơng tắc mờ’: Nếu 120% tắt nguồn, khoảng sử dụng khâu hiệu chỉnh PID kinh điển II.4: Genetic Algorithm(GA): chọn 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 xác đặt người dùng II.5: Chương trình điều khiển viết ngơn ngữ C uV3 II.6: Các mơ hình điều khiển hệ thống: Hình II.1 Hình II.2 Mơ hình điều khiển hệ thống chưa có khâu tự chỉnh định 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 phần mềm III Phần cứng chuẩn bị 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 III.1.4 Mạch công suất điều khiển động III.1.5 Động DC có Encoder III.1.6 Bộ nguồn: 12VDC, 5VDC 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’ 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 Trang III.2 (III) Phần cứng 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 vấn đề-Định hướng chương trình IV Giải vấn đề: IV.1 Định hướng chương trình: Muốn điều khiển động 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 Nhiệm vụ phải đọc giá trị Dự định phát triển cách đọc Encoder sử dụng ngắt cạnh mode x4 (ii) Áp đặt vào đầu động thay đổi làm vận tốc động 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 Nhiệm vụ phải có chương trình điều biến xung (iii)Muốn động đáp ứng vận tốc mong muốn, phải có khâu điều khiển, 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 đạ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 chiều quay động lệnh từ bàn phím hiển thị hình PC giao tiếp RS232 Các giá trị nhận từ MCU master khác qua giao tiếp I2C, song song,… tùy nhu cầu sử dụng người thiết kế (v) Khâu PID cần thơng số để điều khiển vịng kín, nhiệm vụ phải tìm thơng số KP, KI, KD, sử dụng thuật GA kết hợp với ‘lời khuyên 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 vấn đề: IV.1 Định hướng chương trình: 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 nguồn tạo dao động P89LPC922 Hình IV.2.1.2 Cấu hình Counter/Timer cách khai báo T0 chức Counter Hình IV.2.1.3 Cấu hình WDT chức Timer Hình IV.2.1.4 Sơ đồ giải thuật cách đọc Encoder Counter gửi lên PC Muốn điều khiển động vịng kín, có hồi tiếp, đề tài sử dụng encoder quang để phản hồi vận tốc Về bản, để có giá trị vận tốc này, ta có thể: (i) Tính số cạnh xuống thời gian Ts (sampling time) để suy vận tốc trung bình động cơ.(pulse/Ts) (ii) Tìm thời gian xuất cạnh xuống liên tiếp encoder, từ suy vận tốc trung bình động Phân tích: i Nếu sử dụng phương án 1, ta cần timer để định thời gian lấy mẫu, counter để đếm số xung ii Nếu sử dụng phương án 2, ta cần timer để định khoảng thời gian chân (có thể counter/ngắt ngồ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 MCU nên dùng Device riêng biệt làm nhiệm vụ iv Nếu sử dụng phương án bị giới hạn mặt đáp ứng encoder gây v Nếu sử dụng phương án 2, thuật giải 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 liệu, chiều quay động ENCODER READER CARD nhận gởi lên bit cao byte cao →Lựa chọn: Trong đề tài chọn phương án Cách thức giải quyết: i Sử dụng Watchdog Timer để định khoảng thời gian ngắt(Ts) Khoảng thời gian lập trình để thay đổi tùy mục đích sử dụng ii Sử dụng Timer mode để làm counter đếm số xung cạnh encoder Khơng tính đến trường hợp Counter tràn vượt 65535xung/Ts Trang IV.2 DC Motor Control Module IV Giải vấn đề: IV.1 Định hướng chương trình: IV.2 Phác thảo 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 thơng số Kp,Ki,Kd thuật toán GA kết hợp neural): Trong matlab, ta xây dựng lại mơ hình động tính MCU để mơ phỏng: Hình IV.2.3.1 Sơ đồ mô động DC xây dựng Matlab Trong đó, khối chức MCU P89LPC922 là: Hình IV.2.3.2 Chức MCU P89LPC922 mơ Matlab Với khóa mờ cơng tắc xây dựng theo quy luật: Hình IV.2.3.3 Khóa mờ xây dựng luật điều khiển Trang IV.15 (IV.2.3.2) Thuật tốn GA-Neural để tìm thông số PID Khối PID rời rạc xây dựng sau: Hình IV.2.3.4 Khối PID rời rạc xây dựng Matlab Cách tìm thơng số PID thuật tốn GA: Trong thời đại máy tính số nay, cách sử dụng vòng lặp khởi tạo nhiều mẫu thử ngẫu nhiên để tìm giá trị tốt thỏa mãn yêu cầu đặt thường dùng mà cách giải lý thuyết toán học kinh điển phức tạp, không cho lời giải tường minh Thuật toán GA (Genetic algorithm) khai sinh dựa thuyết tiến hóa Darwin, định luật di truyền Mendel đặt sở lớn máy tính số Trong phạm vi ứng dụng đề tài, với công cụ hỗ trợ Matlab, ta kết hợp mạng Neural (nếp nhăn võ não hay tri thức) với luật lựa chọn cá thể quần thể định, phép lai tạo ngẫu nhiên chọn lọc cá thể để tìm cá thể trội sống sót sau phép đào thải hàm phạt ta xây dựng! a) Nếp nhăn vỏ não: Nguồn gốc tri thức: Cơ sở toán học xây dựng dựa lý thuyết đưa tác giả: Guillermo J Silva, Aniruddha Datta, S P Bhattacharyya: Vùng khả tồn thông số KP, KI, KD, không gian số thực ( \3 ) Đấy quần thể chọn thuật toán GA Thuật xấp xỉ: Xấp xỉ thứ 1:Với hàm truyền tìm được, so sánh với dạng hàm truyền chuẩn tác giả đưa ra, ta lấy L=0.001s (tức 1/10 thời gian lấy mẫu) Xấp xỉ thứ 2: ta giả định làm mơ hình liên tục khơng phải rời rạc Kết với hàm truyền không đơn vị: T=0.04,L=0.001: quần thể chọn Hình IV.2.3.5 Quần thể chọn nhờ lời khuyên chuyên gia Trang IV.16 (IV.2.3.2) Thuật toán GA-Neural để tìm thơng số PID b) Phép chọn lọc lai tạo: Tìm cá thể thích nghi tái sinh chọn lọc ngẫu nhiên: Trong quần thể định, cá thể tồn độc lập xác xuất tồn chưa có biến cố đào thải tự nhiên, xảy biến động điều kiện sinh tồn, cá thể thích nghi tiếp tục tồn tại, cá thể khơng thích nghi bị đào thải, phải tiến hóa thành dạng khác, phép chọn lọc đầu sa thải tồn cá thể khơng thích nghi Ta giữ lại phần quần thể thích nghi ban đầu chọn quần thể vài cá thể tốt để lai ghép Thuật GA tái sinh: Lấy ngẫu nhiên lượng lớn cá thể(bộ thông số KP, KI, KD) quần thể chọn, thử độ thích nghi chúng với hàm phạt: min(ITAE(closeloop(PID.HS))) cá thể tốt chọn Lai tạo cá thể trội để tìm cá thể mạnh: Từ cá thể tìm hàm phạt trên, ta xây dựng thêm luật sinh tồn: L(POT,steady_state_error,settling_time), cá thể sinh cách giữ cố định KP, lặp vòng KI KD, tìm cá thể tốt quần thể lai Đấy cá thể chọn thỏa yêu cầu đặt ta Nếu không, phải cho KP thay đổi, bắt đầu lại thuật tóan tái sinh để tìm cá thể trội mới! Có thể gặp trường hợp xấu, quần thể khơng có cá thể đáp ứng với luật sinh tồn, lúc đó, buộc ta chấp nhận phải thay đổi lại luật để tìm cá thể thích nghi, khơng thế, tồn cấu trúc lồi bị diệt vong! Bài tốn vô nghiệm! Thuật GA lai tạo: Lấy cá thể tồn sau biến cố ban đầu, cho phép sinh sản thành tập đoàn cá thể mới, thử độ thích nghi chúng với luật sinh tồn: f(POT,state_error,settling_time), cá thể đáp ứng yêu cầu đặt tồn tại, tất cá thể khác bị bỏ đi, không xét tới nữa, thuật lai tạo kết thúc Ghi chú: Các hàm ITAE, POT, state_error, settling_time có http://www.khvt.com phần Matlab> Đáp ứng hệ thống với thơng số: (2,1,0.0005) Hình IV.2.3.6 kì lệnh giây Đáp ứng hệ thống tín hiệu thử 1000+500sin(0.02t) (v/p) chu Trang IV.17 (IV.2.3.2) Thuật tốn GA-Neural để tìm thơng số PID Sai số lý thuyết: Hình IV.2.3.7 Hình phóng to sai số tín hiệu đặc tín hiệu đáp ứng (vịng/phút) với chu kì lệnh giây Theo lý thuyết mô phỏng, kết tương đối tốt, bây giờ, ta thực vào giải thuật điều khiển cho MCU P89LPC922 Hình IV.2.3.8 Đáp ứng hệ thống thực tín hiệu đặt 20+10*sin(0.05*t) với chu kì lệnh chọn 10xung/lệnh Trang IV.18 (IV.2.3.2) Thuật tốn GA-Neural để tìm thông số PID Nhận xét: Do sai số phần cứng nên ta chưa thể phân tích giá trị đáp ứng có tốt hay khơng? Chỉ nói giá trị xác lập với tín hiệu đặt sai số xác lập sai số phần cứng Chương trình giải thuật viết sau: /************************************************************************ Chuc nang : Ham PID la khau tao tin hieu dieu khien de tao tin hieu dieu xung dua vao chan PWM Dau vao : Khong co Dau : Khong co, gia tri dieu khien cap nhat ham Tac gia : Bui Trung Hieu, Webmaster: http://www.khvt.com Su dung : Duoc phep su dung mien phi voi moi muc dich Khoi tao : 9h59PM 10 thang 11 nam 2005 Lien he : Moi trao doi xin lien lac qua email: buitrunghieu@khvt.com Tai lieu tham khao cho khau PID so: -Sach "LT Dieu Khien tu dong" - NXB DHQG TPHCM Nguyen Thi Phuong Ha (Chu bien) -Huynh Thai Hoang -Co tai http://www.khvt.com/Documents/DKTD.html -“The PID Control Algorithm: ‘How it works, how to tune it, and how to use it’- John A Shaw Cac thong so Kp,Ki,Kd cho khau PID so duoc tim bang chuong trinh Matlab 7.0 (C) Mathworks /*************************************************************************/ void PID (void) { double temp; temp=(double)control_value/k1; //k1 la he so ho*.p thu*’c temp+=(double)Know*(double)ek+(double)Klast*(double)ekp1+(double)Klast_last*(double)ekp2; temp=temp*k1; (temp>255)?(temp=255):(temp