Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 102 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
102
Dung lượng
2,61 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Nguyễn Văn Hội NGHIÊN CỨU, XÂY DỰNG HỆ THÍ NGHIỆM DÙNG VI XỬ LÝ AT89S51 Chuyên ngành : Điều khiển tự động hóa LUẬN VĂN THẠC SĨ KỸ THUẬT Điều khiển tự động hóa NGƯỜI HƯỚNG DẪN KHOA HỌC : TS NGUYỄN HỒNG QUANG Hà Nội – Năm 2014 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi Các số liệu , kết trung thực chưa công bố công trình khác Tác giả luận văn Nguyễn Văn Hội i MUC LỤC LỜI CAM ĐOAN i MUC LỤC ii DANH MỤC TỪ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC CÁC BẢNG viii MỞ ĐẦU ix CHƯƠNG 1: CẤU TRÚC HỆ THỐNG ĐIỀU KHIỂN VỊNG KÍN 1.1 Thế hệ thống điều khiển vòng kín 1.2 Bộ điều khiển PID 1.3 Tại cần điều khiển PID số 1.4 Áp dụng điều khiển số PID cho mơ hình động chiều 1.4.1 Mơ tả tốn học động điện chiều 1.4.2 Mơ tả tốn học chỉnh lưu 1.4.3 Thiết kế điều khiển PID để sử dụng Matlab-Simulink CHƯƠNG 2: TRIỂN KHAI PHẦN CỨNG VÀ PHẦN MỀM CHO HỆ THỐNG 2.1 Tổng quan phần cứng hệ điều khiển PID số 2.2 Các phần tử cấu thành hệ thống 2.2.1 Bộ điều khiển trung tâm 2.2.2 Giao tiếp RS232 10 2.2.2.1 Các khái niệm truyền thông UART 10 2.2.2.2 Truyền thông RS232 với AT89S51 12 2.2.2.3 Thiết kế khối truyền thông RS232 14 2.2.4 Xử lý tín hiệu từ Encoder 18 2.2.4.1 Bộ chuyển đổi ADC 19 2.2.4.2 Thiết kế modul ADC0804 19 2.3 Các phần tử bổ xung cho hệ thống 20 2.3.1 Hiển thị LCD 20 ii 2.3.1.1 Giới thiệu 20 2.3.1.2 Sơ đồ chân 21 2.3.1.3 Thanh ghi tổ chức nhớ 21 2.3.1.4 Các chân điều khiển LCD 22 2.3.2 Thiết kế modul hiển thị LCD 24 2.3.3 Hiển thị LED đoạn 24 2.3.3.1 Giới thiệu LED đoạn 24 2.3.3.2 Thiết kế modul hiển thị Led đoạn 25 2.3.4 Giao tiếp I2C 26 2.3.4.1 Giới thiệu chuẩn I2C 26 2.3.4.2 Thiết kế modul giao tiếp I2C với DS1307 31 2.3.5 Giao tiếp ma trận phím 32 2.3.5.1 Giới thiệu ma trận phím 4x4 32 2.3.5.2 Nguyên lý quét phím 33 2.3.5.3 Thiết kế modul ma trận phím 34 2.3.6 Các modul giao tiếp khác 35 2.3.6.1 Khối LED đơn 35 2.3.6.2 Modul Driver cho DC motor 35 2.4 Phần mềm 36 2.4.1 Định hướng thiết kế phần mềm 36 2.4.2 Sơ đồ khối chức phần mềm 36 2.4.3 Ví dụ 37 2.5 Kết luận 38 CHƯƠNG 3: TRIỂN KHAI THỬ NGHIỆM PID SỐ CHO DC MOTOR 39 3.1 Cấu hình tồn hệ thống 39 3.1.1 Giao diện Labview 40 3.1.2 Đo lường tốc độ 41 3.2 Chỉnh định điều khiển 43 3.2.1 Một số phương pháp xác định tham số điều khiển PID số 43 3.2.1.1 Phương pháp Ziegler-Nichols 43 3.2.1.2 Phương pháp Chien-Hrones-Reswick: 45 iii 3.2.2 Chọn tham số cho điều khiển PID điều khiển tốc độ DC Motor 47 3.3 Kết luận 48 CHƯƠNG 4: NÂNG CAO CHẤT LƯỢNG HỆ THỐNG ĐIỀU KHIỂN VỚI RTOS 49 4.1 Tại cần có RTOS ? 49 4.1.1 Thời gian thực (Real - Time) gì? 49 4.1.2 Các dạng thời gian thực 50 4.1.3 Sự cần thiết RTOS hệ thống nhúng 51 4.2 Các phần tử RTOS 52 4.3 Giới thiệu hệ điều hành thời gian thực FreeRTOS 52 4.3.1 Tổng quan FreeRTOS 52 4.3.1.1 Khái niệm FreeRTOS 52 4.3.1.2 Các chức cung cấp FreeRTOS 52 4.3.2 Các file kernel 53 4.4 Giải vấn đề đưa RTOS vào vi điều khiển 54 4.4.1 Quản lý sử dụng RAM 54 4.4.2 Tick Idle Hooks 55 4.4.3 Bộ lập lịch 56 4.4.4 Các ghi phục vụ ngắt (ISR’s) 56 4.5 Port file cần thiết lên vi điều khiển 57 4.5.1 FreeRTOSconfig.h 57 4.5.2 Port.c 58 4.5.3 Portmacro.h 59 4.6 Triển khai RTOS cho hệ điều khiển tốc độ động chiều 59 4.6.1 Vấn đề đo tốc độ kỹ thuật PWM 59 4.6.2 Phân tích Task RTOS hệ thống điều khiển tốc độ DC Motor 62 CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ 64 KẾT LUẬN 64 KIẾN NGHỊ 64 TÀI LIỆU THAM KHẢO 65 iv DANH MỤC TỪ VIẾT TẮT r(t) : Tín hiệu vào, tín hiệu chuẩn c(t) : Tín hiệu cht(t) : Tín hiệu hồi tiếp e(t) : Sai số u(t) : Tín hiệu điều khiển VĐK : Vi điều khiển BĐK : Bộ điều khiển v DANH MỤC HÌNH VẼ Hình 1.1 Sơ đồ khối hệ thống điều khiển vịng kín Hình 1.2 Thuật toán PID Hình 1.3 Mơ hình động điện chiều Hình 1.4 Mơ hình động có điều khiển PID Hình1.5 Đáp ứng dòng điện phần ứng động chiều Hình 1.6 Đáp ứng tốc độ động chiều Hình 2.1 Sơ đồ nguyên lý khối Vi điều khiển trung tâm Hình 2.2 Khung truyền liệu 11 Hình 2.3 Cổng COM 12 Hình 2.4 Sơ đồ nối ghép IC MAX232 với VĐK cổng COM máy tính 14 Hình 2.5 Sơ đồ nguyên lý khối truyền thông RS232 14 Hình 2.6 Biểu đồ chu kỳ xung PWM 15 Hình 2.7 Thay đổi độ rộng xung mức cao chu kỳ 16 Hình 2.8 PWM dùng IC555 khuếch đại thuật toán 16 Hình 2.9 PWM Vi điều khiển 17 Hình 2.10 Sơ đồ nguyên lý modul ADC0804 19 Hình 2.11 Text LCD 16x2 20 Hình 2.12 Sơ đồ chân Text LCD 16x2 21 Hình 2.13 Tổ chức DDRAM 22 Hình 2.14 Sơ đồ nguyên lý thiết kế modul hiển thị LCD 24 Hình 2.15 Led đoạn sơ đồ bố trí led 24 Hình 2.16 Sơ đồ nguyên lý modul hiển thị LED đoạn 25 Hình 2.17 Bus I2C thiết bị ngoại vi 26 Hình 2.18 Điều kiện Start Stop 28 Hình 2.19 Quá trình truyền bit liệu 29 Hình 2.20 Dữ liệu truyền bus I2C 29 vi Hình 2.21 Bit ACK bus I2C 30 Hình 2.22 Cấu trúc Byte liệu 30 Hình 2.23 Sơ đồ nguyên lý thiết kế modul giao tiếp I2C với DS1307 31 Hình 2.24 Sơ đồ nguyên lý nối ghép ma trận phím 33 Hình 2.25 Sơ đồ nguyên lý thiết kế modul ma trận phím 34 Hình 2.26 Sơ đồ nguyên lý thiết kế modul Led đơn 35 Hình 2.27 Sơ đồ thiết kế modul Driver cho DC motor 35 Hình 2.28 Sơ đồ khối chức phần mềm 36 Hình 2.29 Giao diện điều khiển Led qua cổng COM 37 Hình 2.30 Bản vẽ nguyên lý Kit thí nghiệm AT89S51 38 Hình 2.31 Hệ thống Kit thí nghiệm 38 Hình 3.1a Sơ đồ khối toàn hệ thống điều khiển DC motor 39 Hình 3.1b Sơ đồ nguyên lý ghép nối modul hệ thống Kit 39 Hình 3.2 Giao diện điều khiển DC Motor 40 Hình 3.3 Cặp thu phát hồng ngoại đĩa chia rãnh 41 Hình 3.4 Tín hiệu nhận từ kênh 42 Hình 3.5 Tín hiệu từ Encoder đưa vào chân P3.4 VĐK 43 Hình 3.6 Đáp ứng nấc hệ hở có dạng S 44 Hình 3.7 Xác định số khuếch đại tới hạn 44 Hình 3.8 Đáp ứng nấc hệ kín k=kth 45 Hình 3.9 Đáp ứng nấc hệ thích hợp cho phương pháp Chien-HronesReswick 45 Hình 3.10 Kết điều khiển tốc độ đặt từ 500rpm lên 700rpm 800rpm 47 Hình 4.1 Tốc độ động tỷ lệ với Ton/TPWM 60 Hình 4.2 Sơ đồ hệ điều khiển tốc độ động DC 61 vii DANH MỤC CÁC BẢNG Bảng 1.1 Thông số động Bảng 1.2 Thơng số mơ hình hóa động chiều Bảng 2.1 Bảng mô tả chức chân cổng COM 13 Bảng 3.1 Thông số điều khiển chọn theo Ziegler-Nichols 44 Bảng 3.2 Thông số điều khiển chọn theo Ziegler-Nichols 45 Bảng 3.3 Các tham số PID theo phương pháp Chien-Hrones-Reswick 46 Bảng 3.4 Các tham số PID theo phương pháp Chien-Hrones-Reswick 46 Bảng 3.5 Các tham số PID theo phương pháp Chien-Hrones-Reswick 46 Bảng 3.6 Các tham số PID theo phương pháp Chien-Hrones-Reswick 47 viii MỞ ĐẦU Lý chọn đề tài Trong chương trình đào tạo kỹ sư chuyên ngành tự động hóa việc xây dựng Kit thí nghiệm Vi Điều khiển hướng chuyên ngành cần thiết, không đơn phục vụ cho môn học vi điều khiển mà phải phát huy kiến thức mà sinh viên truyền thụ từ môn khác máy điện, truyền động điện, điện tử công suất, lý thuyết điều khiển Dựa ý tưởng đó, luận văn trình bày việc xây dựng , thiết kế Kit Vi Điều khiển, cụ thể Vi Điều khiển AT89S51 giảng dạy phổ biến trường đại học, cao đẳng…Hệ thống có đầy đủ modul, đối tượng điều khiển…Trên hệ thống này, sinh viên nối ghép thiết bị phần cứng thực hành tập đơn giản nháy Led, hiển thị LCD, bàn phím, truyền thơng RS232…Ngồi ra, củng cố kiến thức truyền động, điều khiển tự động điện tử công suất sinh viên tập nâng cao điều khiển động bước động chiều Tình hình phát triển Kit Vi Điều khiển nước Hiện giới nước có nhiều hãng sản xuất Kit thí nghiệm vi điều khiển Đối với Kit thí nghiệm nước ngồi, việc ghép nối Modul hệ thống thực phần mềm qua chuyển mạch điện tử Như vậy,sinh viên dễ dàng đưa chương trình vào MCU chạy thử mà không cần thao tác nối ghép thủ công, nhược điểm sinh viên kỹ xử lý vấn đề hay gặp phải làm thực tế Ví dụ yêu cầu nối nguồn nuôi, dao động, công suất…Bên cạnh sản phẩm giá thành cịn cao, không phù hợp nhiều trường nước, nguồn kinh phí cho thiết bị giáo dục hạn hẹp Đối với nước , có nhiều trường nghiên cứu làm Kit thí nghiệm vi điều khiển, hệ thống thường xây dựng theo ix ghi_lenh(0x80); ghi_chuoi("TU_DONG_HOA"); ghi_lenh(0x0C); ghi_lenh(0xC0); ghi_chuoi("DH BACH KHOA HN"); delay(300); while(1); } Chương trình điều khiển LED qua truyền thông RS232 #include //khai báo thư viện #define RS P2_5 #define RW P2_6 //RW=0 => ghi #define EN P2_7 //RW=1 => đọc //RS=0 => code //RS=1 => data #define LCD_PORT P0 /*************Các hàm delay************/ void delay(unsigned int time) // Delay ms { int t; for(t=1;t