Trên cơ sở lý thuyết về những môn đã được học về bộ điều khiển PID trước đó, cùng với mong muốn điều khiển được vị trí cho động cơ một chiều bằng Arduino, nhóm em xin chọn đề tài: “Điề
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ -⸙∆⸙ -
BÁO CÁO ĐỒ ÁN ĐIỀU KHIỂN TỰ ĐỘNG
DÙNG THUẬT TOÁN PID VỚI ARDUINO
GVHD: PGS TS Nguyễn Minh Tâm SVTH : Nguyễn Xuân Sáng 19151030
Lê Văn Tùng 19151028
Trang 2Nội dung
Chương 1 Tổng quan
Chương 2 Cơ sở lý thuyết
Chương 3 Xây dựng giải thuật PID
Chương 4 Thiết kế và thi công hệ thống
Chương 5 Kết luận và đánh giá
Trang 3Chương 1 Tổng Quan
Cần đáp ứng những yêu cầu về điều khiển để hệ thống hoạt động chính xác, năng suất cao, tăng hiệu quả kinh tế Và trong quá trình công nghiệp, việc áp dụng bộ điều khiển PID đã chứng minh tính hiệu quả trong việc: khống chế nhiệt, điều khiển vị trí, tốc độ,…
Có thể điều khiển động cơ DC theo nhiều phương pháp như sử dụng: PLC, biến tần, vi điều khiển, Nhưng trong đó, vi điều khiển khá phổ biến với sinh viên do giá thành rẻ
Trên cơ sở lý thuyết về những môn đã được học về bộ điều khiển PID trước đó, cùng với mong muốn
điều khiển được vị trí cho động cơ một chiều bằng Arduino, nhóm em xin chọn đề tài: “Điều khiển vị trí
động cơ một chiều dùng thuật toán PID với Arduino”.
Đặt vấn đề
Do sự phổ biến rộng rãi của động cơ DC trong rất nhiều lĩnh vực nên
việc điều khiển động cơ theo ý muốn của chúng ta là việc cần thiết
Ứng dụng vào nhiều lĩnh vực khác nhau như là: robot, băng chuyền
tải, máy cuộn công nghiệp, máy ép công nghiệp, máy in 3D,…
Trang 4Chương 1 Tổng Quan
Lập trình được giải thuật điều khiển PID để điều
khiển vị trí động cơ một chiều với vi điều khiển
Arduino
Điều khiển chính xác vị trí đáp ứng các chỉ tiêu
chất lượng đề ra
Thực nghiệm và đánh giá chất lượng bộ điều
khiển PID trên mô hình thực tế với Arduino Uno
R3 và so với giải thuật trên Matlab Sịmulink
Dựa trên các đề tài nghiên cứu có trên sách, báo, tạp chí khoa học,… từ đó nghiên cứu và phát triển đồ án
Sử dụng phương pháp thiết kế thử sai để tìm thông số bộ điều khiển PID
Dựa vào kiến thức đã được học ở các môn học trước để thiết kế có chọn lọc
Sử dụng phần mềm Arduino IDE để lập trình giải thuật điều khiển PID số cho vị trí động cơ một chiều
Trang 5Chương 2 Cơ Sở Lý Thuyết
: Hằng số xuất điện động (Vs/rad)
: Momen xoắn của động cơ (Nm)
: vị trí góc của rotor (rad)
: tốc độ góc (rad/s)
Áp dụng định luật Kirchoff về cân bằng điện áp ở phần ứng
và định luật Newton cho chuyển động quay, ta có:
Lấy Laplace cho 2 phương trình:
Từ 2 phương trình trên ta rút được:
Trang 6Chương 2 Cơ Sở Lý Thuyết
Bộ điều khiển PID
Luật điều khiển PID sẽ được định nghĩa như sau:
Khâu tỉ lệ được tính bởi:
Khâu tích phân được tính bởi:
Khâu vi phân được tính bởi:
Phương pháp điều chỉnh
thông số PID
Phương pháp điều chỉnh thủ công
Đặt Ki = Kd = 0 Tăng Kp đến khi hệ thống dao động tuần hoàn.
Nếu có dao động thì điều chỉnh giá trị Kd
Nếu muốn triệt tiêu sai số xác lập có thể điều chỉnh Ki Ảnh hưởng của ba thông số lên hệ thống được trình bày dưới bảng sau:
Trang 7Chương 3 Xây Dựng Giải Thuật PID Số
Yêu cầu thiết kế
Điều khiển vị trí động cơ DC dùng thuật toán điều khiển PID số
Lý thuyết bộ điều khiển PID số
Một loại hệ thống điều khiển có hồi tiếp, trong đó tín hiệu tại một hay nhiều điểm là một chuỗi xung, không phải là hàm liên tục theo thời gian
Trang 8Chương 3 Xây Dựng Giải Thuật PID Số
Xây dựng bộ điều khiển PID số
cho động cơ DC
Hàm truyền sử dụng bộ điều khiển PID rời rạc được
viết như sau:
Đặt
Ta viết lại được phương trình sau:
Chia 2 vế phương trình cho , ta được:
Chuyển về dạng tín hiệu:
Vậy ta có tín hiệu điều khiển PID số là:
Trang 9Chương 4 Thiết Kế Và Thi Công Hệ Thống
Sơ đồ khối hệ thống
Sử dụng máy tính để viết chương trình tính
toán và mô phỏng, sau đó sẽ truyền vào khối
điều khiển để điều khiển động cơ
Khối điều khiển (chính ở đây là Arduino Uno
R3) để tiếp nhận dữ liệu ra từ máy tính và
dữ liệu phản hồi về từ khối cảm biến từ đó
sẽ xử lý và truyền đến khối thực thi
Khối động cơ tiếp nhận tín hiệu gửi đến từ
khối điều khiển để di chuyển đến vị trí đã
được thiết lập
Khối cảm biến (cụ thể là Encoder) dùng để đọc số liệu, tính toán và phản hồi về khối điều khiển để điều chỉnh công suất động cơ phù hợp
Khối hiển thị (LCD 16x2) để hiển thị dữ liệu được gửi tới từ Arduino và được hồi tiếp về từ khối cảm biến
Khối nguồn (DC12V-5A) dùng để cung cấp nguồn
để cho các khối hoạt động ổn định
Trang 10Chương 4 Thiết Kế Và Thi Công Hệ Thống
Lựa chọn và nêu thông số kỹ thuật phần cứng
Arduino Uno R3
Arduino Uno là một board mạch vi điều khiển
được phát triển bởi Arduino.cc, một nền tảng
điện tử mã nguồn mở Với Arduino chúng ta có
thể xây dựng các ứng dụng điện tử tương tác
với nhau thông qua phần mềm và phần cứng hỗ
trợ
Thông số kỹ thuật của Arduino Uno R3
Trang 11Chương 4 Thiết Kế Và Thi Công Hệ Thống
L298N
Module L298 là một mạch điều khiển 2 động
cơ một chiều DC cùng lúc L298 là IC điều khiển
cầu kép toàn kỳ có dải điện áp hoạt động rộng,
xử lý dòng tải có mức tối đa 2A Bao gồm điện
áp bão hòa thấp và bảo vệ quá nhiệt Có cấu tạo
từ hai mạch cầu H transistor
Thông số kỹ thuật của L298N
Điều khiển chiều quay với L298N
Khi ENA = 0: Động cơ không quay với mọi đầu vào
Khi ENA = 1:
INT1 = 1, INT2 = 0: Động cơ quay thuận
INT1 = 0, INT2 = 1: Động cơ quay nghịch
INT1 = INT2: động cơ dừng ngay tại vị trí trước
Tương tự với các chân ENB, INT3, INT4
Trang 12Chương 4 Thiết Kế Và Thi Công Hệ Thống
GA25 – 370 37 RPM
Động Cơ DC JGA25-370 DC được tích hợp
thêm Encoder hai kênh AB giúp đọc và điều kiển
chính xác vị trí, chiều quay của động cơ trong
các ứng dụng cần độ có chính xác cao: điều
khiển PID, Robot tự hành,
Thông số kỹ thuật của động cơ
Thông số kỹ thuật của Encoder
Trang 13Chương 4 Thiết Kế Và Thi Công Hệ Thống
Nguồn tổ ong 12V – 5A
Cung cấp nguồn ổn định cho các khối giúp hệ
thống hoạt động tốt Có thể cấp nguồn cho hệ
thống bằng nhiều cách như pin, nguồn xung tổ
ong hoặc adapter chuyển đổi AC-DC,…
Lựa chọn khối cấp nguồn: Nguồn tổ ong 12V-5A
Thông số kỹ thuật của nguồn tổ ong
Trang 14Chương 4 Thiết Kế Và Thi Công Hệ Thống
Màn hình LCD 16x2 có I2C
Thiết bị hiển thị LCD (Liquid Crystal Display)
được sử dụng trong rất nhiều các ứng dụng của
VĐK LCD có rất nhiều ưu điểm so với các dạng
hiển thị khác: Nó có khả năng hiển thị kí tự đa
dạng, trực quan (chữ, số và kí tự đồ họa), dễ
dàng đưa vào mạch ứng dụng
Thông số kỹ thuật của màn LCD
Trang 15Chương 4 Thiết Kế Và Thi Công Hệ Thống
Lắp mạch và nối dây thiết bị
Các bước thực hiện:
Vì cảm biến Encoder được tích hợp trong
động cơ DC nên việc kết nối cảm biến với vi
điều khiển cũng đồng thời kết nối động cơ với
vi điều khiển Ngõ ra pha A và pha B của động
cơ nối lần lượt về 2 chân Pin 3, Pin 2 của vi
điều khiển để có thể đọc tín hiệu trả về từ
Encoder Nguồn của Encoder được lấy trực
tiếp từ Arduino với thông số là 3.3V Chân
M1+ và M1- của động cơ được kết nối và cấp
nguồn bởi Output A của L298
Nguồn 12V của L298N được cấp bởi nguồn tổ ong
Chân ENA là chân băm xung của mạch cầu H nên được kết nối với chân Pin 5, chân Pin 5 là chân xung PWM
Chân IN1, IN2 là 2 chân điều khiển động cơ quay thuận nghịch, nối vào Pin 6, Pin 8
LCD 16x2 được kết nối với Arduino Mega thông qua chuẩn giao tiếp I2C
Trang 16Chương 4 Thiết Kế Và Thi Công Hệ Thống
Sơ đồ kết nối cách thiết bị phần cứng:
Trang 17Chương 4 Thiết Kế Và Thi Công Hệ Thống
Thiết kế phần cứng
Sau khi lắp mạch theo sơ đồ nối dây bên dưới:
Trang 18Chương 4 Thiết Kế Và Thi Công Hệ Thống
Sơ đồ mô phỏng trên Matlab Simulink Thông số khối FCN
Thiết kế phần mềm
Trang 19Chương 4 Thiết Kế Và Thi Công Hệ Thống
Code lập trình PID rời rạc trên Aruino IDE Sử dụng ngắt ngoài để đọc giá trị xung từ Encoder
Thiết kế phần mềm
Cấu hình chân xuất xung và điều hướng
Trang 20Chương 5 Kết Quả Và Kết Luận
Góc quay là 700 0 và thông số Kp=5, Ki=0.001
Kd=0.49 Ta có kết quả thang nâng ở tầng 1
Trang 21Chương 5 Kết Quả Và Kết Luận
Góc quay là 1400 0 và thông số Kp=5, Ki=0.001,
Kd=0.49 Ta có kết quả thang nâng ở tầng 2
Trang 22Chương 5 Kết Quả Và Kết Luận
Góc quay là 2100 0 và thông số Kp=5, Ki=0.001,
Kd=0.49 Ta có kết quả thang nâng ở tầng 3
Trang 23Chương 5 Kết Quả Và Kết Luận
Đánh giá kết quả và hướng phát triển đề tài
Đánh giá:
Sử dụng được phần mềm Matlab và IDE để điều khiển và khảo sát đáp ứng của hệ thống
Xây dựng thành công chương trình và mô hình điều khiển động cơ một chiều bằng Arduino
Bộ điều khiển hoạt động tương đối ổn định, nhưng vẫn còn sai số
Lựa chọn được các thông số Kp Ki Kd tối ưu cho hệ thống
Hướng phát triển đề tài:
Tạo giao diện thực hiện điều khiển trực tiếp mô hình trên màn hình HMI và điện thoại bằng internet,…
Có thể cài đặt chế độ Manual hoăc Auto tùy nhu cầu của người dùng và mục đích sử dụng
Tiếp tục hoàn thiện mô hình và triển khai trên mô hình có công suất lớn với đầy đủ các tham số liên quan và nhiễu thực tế