Tạp chí Khoa học - Công nghệ Thủy sản<br />
<br />
Số 3/2017<br />
<br />
THOÂNG BAÙO KHOA HOÏC<br />
<br />
ĐIỀU KHIỂN ROBOT BA BÁNH SỬ DỤNG BỘ ĐIỀU PID<br />
CONTROL OF OMNIDIRECTIONAL MOBILE ROBOT<br />
BASED ON PID CONTROLLER<br />
Trần Văn Hùng1, Nguyễn Văn Hân1<br />
Ngày nhận bài: 15/10/2016; Ngày phản biện thông qua: 28/3/2017; Ngày duyệt đăng: 25/9/2017<br />
<br />
TÓM TẮT<br />
Bài báo nghiên cứu Robot ba bánh (Omnidirectional Mobile Robot-OMR) sử dụng thuật toán PID để<br />
điều khiển. OMR sẽ chạy theo một quỹ đạo cho trước sao cho sai số về không. Thuật toán PID sử dụng PWM<br />
trong điều khiển tốc độ động cơ và điều khiển quỹ đạo của OMR để không những sai số nhỏ mà dao động của<br />
hệ thống cũng được giới hạn. Thuật toán đã được kiểm chứng qua một số thực nghiệm để đánh giá về tính hiệu<br />
quả, ổn định của thuật toán cũng như sự kết hợp trong điều khiển cả hai đối tượng cùng lúc.<br />
Từ khóa: Robot 3 bánh (OMR), PID<br />
ABSTRACT<br />
The paper demonstrates an Omnidirectional Mobile Robot (OMR), which is based on PID controller.<br />
The purpose is to control the OMR such that the tracking errors converge to zero. PID controller is applied to<br />
tune the PMW signal of the motor revolution, and correct path deviation issues encountered when the robot is<br />
moving. The effectiveness of the proposed approach was verified through several tracking experiments, which<br />
demonstrate the feasibility of a PID controller path tracker as well as the control of motor DC speed<br />
Keywords: Omnidirectional Mobile Robot (OMR), PID<br />
I. ĐẶT VẤN ĐỀ<br />
OMR có thể di chuyển theo bất kỳ phương<br />
nào mà không cần quay đầu. Các mô hình và<br />
điều khiển OMR đã được một số nhà nghiên<br />
cứu đưa ra trong thời gian gần đây. Mô hình<br />
động lực học và điều khiển theo quỹ đạo đã<br />
được đưa ra, coi OMR giống như tập hợp của<br />
ba động cơ [4]. Huang và Tsai sử dụng Field<br />
Programmable Gate Array (FPGA) làm bộ điều<br />
khiển. Họ đã sử dụng FPGA để thực nghiệm,<br />
bộ điều khiển thích nghi bền vững để giải<br />
quyết động lực học cho OMR [5]. Sai số khi di<br />
chuyển của OMR phụ thuộc vào nhiều yếu tố<br />
<br />
1<br />
<br />
Khoa Cơ khí, Trường Đại học Nha Trang<br />
<br />
36 • TRƯỜNG ĐẠI HỌC NHA TRANG<br />
<br />
như: rung động cơ, nguồn, trọng lượng OMR,<br />
bánh xe, và ngay cả mặt phẳng di chuyển; đó<br />
là điều không thể bỏ qua. Meng và Chiu sử<br />
dụng thuật toán mờ cho encoder để giải quyết<br />
vấn đề dao động khi đi theo quỹ đạo thẳng [3].<br />
Bộ điều khiển Proportional-Integral-Derivative<br />
(PID) cho động cơ thường được sử dụng<br />
trong công nghiệp bởi vì chúng đơn giản, dễ<br />
sử dụng và đủ chức năng [1]. Tốc độ điều<br />
chỉnh bằng cách thay đổi độ rộng xung (PWM)<br />
dựa vào xung được phản hồi về khi động cơ<br />
quay.Trong bài báo này, vị trí của OMR sẽ<br />
được điều khiển bởi thuật toán PID dựa vào<br />
<br />
Tạp chí Khoa học - Công nghệ Thủy sản<br />
phản hồi từ động cơ. Bên cạnh đó, tốc độ ba<br />
bánh của OMR cũng được điều khiển chính<br />
xác dựa vào thuật toán PID.<br />
II. ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU<br />
1. Đối tượng nghiên cứu<br />
Robot ba bánh<br />
<br />
Số 3/2017<br />
- Xác định yêu cầu kỹ thuật OMR.<br />
- Tính toán các giá trị đầu vào ra, từ đó thiết<br />
kế sơ bộ OMR.<br />
- Xây dựng phương án chế tạo OMR.<br />
- Thử nghiệm, kiểm tra và hoàn chỉnh.<br />
III. KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN<br />
<br />
2. Phương pháp nghiên cứu<br />
Phương pháp nghiên cứu được sử dụng<br />
dựa trên tính toán lý thuyết kết hợp với thực<br />
nghiệm, trong đó chủ yếu vào phép “Trial and<br />
error” có định hướng. Trong nghiên cứu này<br />
cần chạy thử và kiểm tra OMR để tìm ra được<br />
bộ tham số của thuật toán PID tối ưu. Bước<br />
một tìm bộ tham số PID cho điều khiển tốc độ,<br />
bước hai là tìm bộ tham số cho điều khiển vị trí<br />
và cuối cùng kết hợp để được bộ tham số tối<br />
ưu cho cả OMR.<br />
Qui trình nghiên cứu, chế tạo OMR theo<br />
các bước sau:<br />
<br />
1. Thiết kế phần cứng<br />
Hệ thống được xây dựng dựa vào bộ vi<br />
điều khiển Atmega không những cung cấp hiệu<br />
năng cao và giá thành thấp mà còn có các tính<br />
năng tích hợp như ADC, PWM, UART, EI,… để<br />
giảm tối đa các thiết bị phụ trợ đi kèm. Thêm<br />
vào đó, thuật toán trên Atmega có thể dễ dàng<br />
cài đặt hơn nhờ vào các ngôn ngữ lập trình C<br />
hoặc C++ và có thể nhúng assembly.<br />
OMR được mô tả trên hình 1. Tổng khối<br />
lượng khoảng 5kg. Khung của OMR là được<br />
làm từ mica và thanh tấm nối, đặt ba động cơ<br />
tạo thành góc 1200.<br />
<br />
Hình 1. Mô hình thực nghiệm<br />
<br />
Sơ đồ hệ thống được chỉ ra trong Hình 1.<br />
Các thiết bị ngoại vi bao gồm: ba bộ điều khiển<br />
động cơ (LMD18200), động cơ DC (GA37 V1)<br />
và enconder (11PPR). Giao tiếp giữa bộ điều<br />
khiển với máy tính thông qua cổng UART<br />
wireless để việc điều khiển và lấy dữ liệu được<br />
dễ dàng. Thời gian cho một chu kỳ thuật toán<br />
<br />
đúng 10ms, sử dụng timer để định thời gian<br />
cho hệ thống. Thêm vào đó, bộ điều khiển<br />
PWM đạt hiệu quả cao mà đơn giản trong điều<br />
khiển tốc độ động cơ. Bằng việc sử dụng bộ<br />
cầu H, bộ điều khiển có thể điều khiển vị trí,<br />
tốc độ dựa vào phản hồi tốc độ từ encoder gắn<br />
trên ba động cơ.<br />
TRƯỜNG ĐẠI HỌC NHA TRANG • 37<br />
<br />
Tạp chí Khoa học - Công nghệ Thủy sản<br />
<br />
Số 3/2017<br />
<br />
Cầu LMD18200 kết nối vào bộ điều khiển<br />
qua hai chân Dir (chiều quay) và PWM (tốc<br />
độ). Bộ điều chế tín hiệu PWM được cài<br />
đặt trong vi điều khiển Atmega8. Bằng cách<br />
sử dụng bộ tích hợp sẵn PWM, bộ PWM<br />
<br />
tự động xuất ra PWM mà không tốn thời gian<br />
xử lý. Atmega8 có thể tạo ra 3 tín hiệu PWM.<br />
Trong OMR này, mỗi bộ điều khiển động<br />
cơ bao gồm: Atmega8, cầu H (LMD18200)<br />
và encoder.<br />
<br />
Hình 2. Kiến trúc hệ thống điều khiển<br />
<br />
Để tối ưu tốc độ đường truyền giữa OMR và<br />
OMR là 4 byte. 15 byte là khung truyền từ OMR<br />
máy tính, hai loại khung truyền được sử dụng:<br />
lên máy tính. Byte lệnh đóng vai trò như là câu<br />
khung truyền từ máy tính (Bảng 1) và khung<br />
lệnh, đôi khi là tên của loại dữ liệu và byte dữ<br />
truyền từ OMR (Bảng 2). Máy tính truyền xuống<br />
liệu là thông tin cho câu lệnh đó.<br />
Bảng 1. Khung dữ liệu từ máy tính xuống OMR<br />
Lệnh<br />
(CMD)<br />
<br />
Dữ liệu<br />
(Data (0÷1))<br />
<br />
Kiểm lỗi<br />
(Checksum)<br />
<br />
No.B<br />
<br />
1<br />
<br />
2<br />
<br />
1 byte<br />
<br />
Giá trị<br />
<br />
240÷255<br />
<br />
0÷52899<br />
byte0 = value/230;<br />
byte1 = value%230;<br />
<br />
0÷15<br />
cs = cmd ^ data0 ^ data1 ^ cs;<br />
cs = (cs & 0x0F) ^ (cs>>4);<br />
<br />
Bảng 2. Khung dữ liệu từ OMR lên máy tính<br />
Lệnh (CMD)<br />
<br />
Dữ liệu<br />
(Data (0÷1))<br />
<br />
Kiểm lỗi<br />
(Checksum)<br />
<br />
Kết thúc<br />
<br />
No.B<br />
<br />
1<br />
<br />
6x2<br />
<br />
1<br />
<br />
1<br />
<br />
Giá trị<br />
<br />
240÷255<br />
<br />
0÷52899<br />
byte0(Di)=value/230;<br />
byte1(Di)=value%230;<br />
<br />
0÷15<br />
cs = cmd^data0^data1^cs;<br />
cs = (cs&0x0F)^(cs>>4);<br />
<br />
255<br />
<br />
Giao thức kết nối theo kiến trúc chủ/tớ, chủ<br />
sẽ yêu cầu dữ liệu từ tớ thông qua câu lệnh.<br />
Máy tính là chủ, OMR là tớ. Máy tính đôi khi<br />
cũng đưa lệnh thực hiện trực tiếp cho OMR.<br />
Máy tính khởi tạo chu trình hoạt động thông qua<br />
loại câu lệnh gửi xuống OMR. Khi nhận được<br />
<br />
38 • TRƯỜNG ĐẠI HỌC NHA TRANG<br />
<br />
câu lệnh, OMR sẽ phân tích xử lý để đưa ra<br />
hành động đúng với kịch bản.<br />
Có ba encoder tương đối được lắp trên<br />
OMR ở ba động cơ và ba động cơ lắp vào khung<br />
OMR tạo với nhau một góc 1200. Phương pháp<br />
đơn giản đo tốc độ động cơ là đo tần số của<br />
<br />
Tạp chí Khoa học - Công nghệ Thủy sản<br />
<br />
Số 3/2017<br />
<br />
encoder gắn trên đuôi động cơ. Tuy nhiên sai<br />
số lượng tử của phép đo rất cao khi tốc độ thấp<br />
bởi phụ thuộc vào số xung encoder trả về trong<br />
một vòng quay và thời gian lấy mẫu. Thời gian<br />
lấy mẫu tăng thì tốc độ đáp ứng hệ thống càng<br />
thấp. Một phương pháp khác là đo độ rộng<br />
xung trả về từ encoder, nhưng khi tốc độ động<br />
cơ càng cao, sai số lượng tử khi đo càng lớn.<br />
<br />
Bằng việc kết hợp hai phương pháp tần<br />
số và độ rộng xung, lỗi được giảm rất lớn [7],<br />
[9]. Ý tưởng của phương pháp này được trình<br />
bày trên hình 4. Tốc độ động cơ được tính dựa<br />
vào khoảng thời gian (CountT) và số xung trong<br />
một đơn vị thời gian (∆N).<br />
(1)<br />
<br />
Hình 3. Đo tốc độ động cơ<br />
<br />
Lỗi của phương pháp này được tính theo<br />
công thức sau:<br />
(2)<br />
Hệ số lỗi của phép đo rất nhỏ so với hai<br />
phương pháp đo tần số và độ rộng xung cho<br />
toàn giải vận tốc. Nói một cách khác lỗi của<br />
phương pháp kết hợp này không phụ thuộc<br />
vào vận tốc, mà chỉ phụ thuộc vào độ chính<br />
xác của encoder và bộ tính toán vận tốc<br />
từ encoder.<br />
2. Điều khiển tốc độ động cơ<br />
Bộ điều khiển PID (Proportional-IntegralDerivative) được sử dụng nhiều trong các hệ<br />
<br />
và<br />
là các tham số tỉ lệ, tích<br />
Với ,<br />
phân và vi phân tương ứng.<br />
Trong nghiên cứu này, thuật toán PID đơn<br />
giản [2] mà dựa trên đáo ứng hệ thống được<br />
sử dụng để xác định hệ số của bộ điều khiển.<br />
Phương pháp này cung cấp cách thức điều<br />
chỉnh dựa trên tỉ lệ để giảm tối thiểu lỗi và vọt<br />
lố. Giá trị đầu ra của động cơ được định nghĩa<br />
như sau:<br />
(4)<br />
3. Điều khiển vị trí OMR<br />
3.1. Phương trình động học<br />
Phương trình động học có thể được viết<br />
như sau (Huang and Hung June 2013)<br />
<br />
thống công nghiệp bởi tính đơn giản, sử dụng<br />
<br />
(5)<br />
<br />
ít tham số cài đặt. Bộ điều khiển PID có khả<br />
năng loại bỏ các trạng thái ổn định lỗi dựa vào<br />
tích phân và dự đoán giá trị đầu ra dựa vào<br />
sự thay đổi của đầu vào khi hệ thống có sự<br />
thay đổi đột ngột. Hầu hết thuật bộ điều khiển<br />
PID hiện nay đều điều chỉnh các tham số theo<br />
phương pháp Ziegler-Nichols, mà dựa các<br />
thông số thu được từ đáp ứng của hệ thống.<br />
Phương trình tổng quát của thuật toán [8] là:<br />
(3)<br />
<br />
Với:<br />
θ<br />
<br />
θ<br />
<br />
θ<br />
θ<br />
<br />
θ<br />
π<br />
π<br />
<br />
θ<br />
θ<br />
<br />
π<br />
<br />
(6)<br />
<br />
π<br />
<br />
: Vận tốc góc bánh thứ i<br />
: Góc quay của OMR<br />
: Bán kính bánh xe<br />
: Vị trí hiện tại của OMR<br />
TRƯỜNG ĐẠI HỌC NHA TRANG • 39<br />
<br />
Tạp chí Khoa học - Công nghệ Thủy sản<br />
<br />
Số 3/2017<br />
trong hệ tọa độ của OMR ta sẽ tính toán được<br />
<br />
: Bán kính thân OMR<br />
<br />
:<br />
<br />
giá trị đầu ra tương ứng.<br />
<br />
Ma trận trên không suy biến với mọi θ ε R.<br />
Vì thế ma trận M (θ) có thể nghịch đảo<br />
θ<br />
θ<br />
<br />
θ<br />
θ<br />
<br />
π<br />
π<br />
<br />
θ<br />
θ<br />
<br />
(10)<br />
Để có thể điều khiển được OMR, giải thuật<br />
được viết lại như sau:<br />
<br />
π<br />
<br />
(7)<br />
<br />
π<br />
<br />
(11)<br />
Với u là vecter điện áp của các động cơ,<br />
là hăng số.<br />
được đưa ra<br />
<br />
Thuật toán cập nhật cho<br />
như sau<br />
<br />
(12)<br />
Với<br />
<br />
là hằng số.<br />
<br />
3.3. Kết quả thực nghiệm<br />
Thực nghiệm được đưa ra trong phần này<br />
nhằm kiểm tra lại phần thiết kế. Một số thông<br />
số của hệ thống trong thực nghiệm này:<br />
Hình 4. Hệ tọa độ<br />
<br />
3.2. Giải thuật điều khiển cho OMR<br />
Mục đích của bộ điều khiển là điều khiển<br />
điện áp động cơ thông qua PWM sao cho lỗi có<br />
thể về không. Để đạt được cái đích đó bài báo<br />
sẽ đưa ra giải thuật như sau.<br />
Vector lỗi được định nghĩa như sau:<br />
(8)<br />
Và tổng vetor lỗi là:<br />
<br />
Tham số của giải thuật điều khiển:<br />
Sử dụng phương pháp Ziegler-Nichols để<br />
xác định hệ số<br />
<br />
và<br />
<br />
ta được:<br />
<br />
Quỹ đạo mong muốn là hình tròn được<br />
biểu diễn trên Hình 6 theo công thức:<br />
<br />
(9)<br />
<br />
(13)<br />
<br />
là hằng số<br />
Với<br />
Bộ điều PID (Proportional Integral Derivative)<br />
được trình bày trên Hình 5.<br />
<br />
Với giá trị khởi tạo ban đầu:<br />
(14)<br />
Lỗi vị trí rất nhanh trở về không sau 1,5<br />
giây, có thể thấy rõ hơn trên Hình 6. Vector vị<br />
trí<br />
<br />
bám theo quỹ đạo tham chiếu<br />
<br />
với<br />
<br />
độ chính xác cao trong Hình 6. Nói cách khác,<br />
giá trị điều khiển PID lớn nhất đạt giá trị cực<br />
trị là ±12V. Kết quả thực nghiệm một lần nữa<br />
Hình 5. Hệ thống điều khiển PID<br />
<br />
chứng minh tính đúng đắn của thuật toán để<br />
<br />
Bộ điều khiển PID được tính toán cho mỗi<br />
giá trị của bộ điều khiển. Ứng với một giá trị<br />
<br />
điều khiển OMR đi theo một quỹ đạo và giá trị<br />
<br />
40 • TRƯỜNG ĐẠI HỌC NHA TRANG<br />
<br />
điện áp điều khiển phù hợp.<br />
<br />