Tóm tắt luận văn thạc sĩ kỹ thuật ứng dụng vi mạch điện tử arduino MEGA trong cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay - Pdf 30

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

ĐẶNG TRUNG DŨNG
ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA
TRONG CÀI ĐẶT THUẬT TOÁN ĐIỀU KHIỂN ỔN ĐỊNH
VỊ TRÍ CON LẮC NGƯỢC QUAY
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
Mã số: 60. 52. 02. 03

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
THÁI NGUYÊN - 2014

Luận văn được hoàn thành tại:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
Người hướng dẫn khoa học: TS. Nguyễn Văn Chí

Phản biện 1: PGS.TS Đỗ Xuân Tiến
Học viện Quân sự
Phản biện 2: TS. Trần Xuân Minh
Đại học Thái Nguyên
Luận văn được bảo vệ tại hội đồng chấm luận văn họp tại:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
Vào ngày 18 tháng 04 năm 2014
Trong những năm gần đây, cùng với việc phát triển của cộng nghệ kỹ
thuật, đặc biệt là công nghệ vi mạch đạt được nhiều tiến bộ vượt bậc, đa dạng.
Vi mạch điện tử Ardiuno là một sản phẩm mới ứng dụng mạnh mẽ những thành
tựu công nghệ đó.
Khi sử dụng vi mạch điện tử Arduino với những đặc điểm như trên ứng
dụng cho bài toán tích hợp điều khiển thực tế cho thấy các ưu điểm:
- Giảm thời gian và chi phí tích hợp phần cứng hệ thống;

các tính năng cần thiết của một vi điều khiển, chỉ cần kết nối vi mạch điện tử
này với máy tính thông qua cổng USB để giám sát và điều khiển.
1.1.3. Các thông số cơ bản của Arduino 2560
- Nguồn cấp cho Vi mạch Arduino Mega 2560: Nguồn cho Arduino
Mega 2560 được cấp qua cáp kết nối USB hoặc thông qua một cổng kết nối nguồn
riêng.
- Bộ nhớ của Vi mạch Arduino Mega 2560: Chíp Vi điều khiển ATmega
2560 có 256 Kb bộ nhớ flash để lưu trữ mã lệnh điều khiển, trong đó có 8KB
được sử dụng để chứa chương trình khởi động.
- Đầu vào, ra của vi mạch điện tử Arduino Mega 2560
+ Đầu vào, ra số (Digital I/O): Vi mạch Arduino Mega 2560 có 54 chân được
sử dụng làm đầu vào ra số như Hình 1.1, sử dụng các lệnh có cấu trúc:
pinMode(); digitalWrite(); digitalRead();
+ Đầu ra PWM (Pulse Width Modulation) gồm các chân số 2 đến chân số 13,
chân số 44 đến chân số 46, các chân này xuất ra tín hiệu PWM được mã hóa
8bit.
+ Cổng Communication: là cổng nhận và truyền dữ liệu vào, ra theo kiểu nối
tiếp (COM) trên Arduino Mega 2560 gồm các cặp: RX0, TX0; RX1, TX1;
RX2, TX2; RX3, TX3.
2
+ Đầu vào tương tự (Analog in): Trên vi mạch điện tử Arduino Mega có độ
phân giải 10bit (0-1023), bao gồm các chân từ A0 đến A15, thông qua lệnh:
AnalogRead()
1.2. Cài đặt Arduino Mega
* Cài đặt kết nối Arduino trên Arduino Sofwave
Để cài đặt được ta thực hiện theo các bước sau:
- Bước 1: Các điều kiện cần có:
+ Máy tính có cài hệ điều hành (hệ điều hành Windows 7- 32bit hoặc
Windows XP - 32bit)
+ Vi mạch điện tử Arduino như Hình 1.5:

- Khả năng “nhúng” các ứng dụng điều khiển trên Arduino.
4
Chương 2.
THUẬT TOÁN ĐIỀU KHIỂN CON LẮC NGƯỢC QUAY KRI PP-300
Chương này sẽ giới thiệu sơ lược về hệ thống con lắc ngược quay; quá
trình xây dựng mô hình toán học của hệ thống con lắc ngược tuyến tính và phi
tuyến; căn cứ vào mô hình toán học và các tham số sẽ sử dụng Matlab/Simulink
tính toán, cài đặt thuật toán vào vi mạch Arduino để xử lý, điều khiển con lắc
ngược quay Kri PP-300.
2.1. Hệ thống con lắc ngược quay và những ứng dụng đã được phát triển
Hệ thống con lắc ngược là hệ thống phức tạp có tính phi tuyến cao và
không ổn định.
2.2. Giới thiệu về con lắc ngược quay Kri PP-300
2.2.1. Tổng quan hệ thống con lắc ngược quay Kri PP-300
* Hệ thống con lắc ngược quay bao gồm:
- Cánh tay (Arm): gắn vào trục động cơ một chiều (DC motor) quay
quanh trục thẳng đứng.
Hình 2.4. Mô hình con lắc ngược quay Kri PP-300
- Con lắc (Pendulum): là khớp quay tự do gắn vào trục của cảm biến
góc quay (Potentiometer), trong mặt phẳng vuông góc với cánh tay.
2.2.2. Những bài toán sử dụng hệ thống con lắc ngược quay Kri PP-300
Hệ thống con lắc ngược Kri PP-300 là hệ thống mà trên đó có thể nghiên
cứu, phát triển rất nhiều ứng dụng, trong đó có 04 ứng dụng điển hình có cấp độ
từ đơn giản đến phức tạp [7].:
+ Mô phỏng hệ thống cẩu tháp xây dựng
Ứng dụng thuật toán khảo sát hoạt động của cẩu tháp trong xây dựng,
nhằm điều khiển con lắc ở vị trí ổn định dưới.
+ Cân bằng con lắc
5
Ứng dụng điều khiển cân bằng con lắc ngược nghiên cứu phát triển các thuật

Được thiết kế để kết nối, điều khiển động cơ thông qua tín hiệu PWM.
2.3.5. Bộ nguồn (Power Supply)
Bộ nguồn công suất biến đổi điện áp xoay chiều từ 220VAC-50Hz sang
nguồn một chiều đối xứng, đảm bảo dòng, áp cho hệ thống hoạt động.
2.3.6. Bộ con lắc ngược quay Kri PP-300 (Inverted Pendulum Apparatus Kri
PP-300)
a. Cảm biến góc quay (Potentiometer)
Cảm biến góc quay là một biển trở có giá trị 5KΩ (
±
20%), được cấp
nguồn +5VDC, có với góc quay từ 0 đến 360
0
, dải mã hóa được 10-bit ADC.
Ngoài ra trên cánh tay của hệ thống con lắc còn Trống quay, cơ cấu này
giúp cho quá trình đưa tín hiệu vị trí con lắc về vi xử lý một cách dễ dàng, linh
hoạt.
b. Encoder
Hệ thống con lắc ngược quay sử dụng Encoder gắn trực tiếp lên trục
động cơ một chiều. Encoder có độ phân giải 1000 xung/vòng.
Cho đến thời điểm tác giả tiến hành nghiên cứu thì hệ thống con lắc
ngược quay Kri PP-300 đã có một số bộ phận bị hỏng, không còn phù hợp để
sử dụng. Trước những điều kiện như vậy, đòi hỏi đặt ra là cần tìm những bộ
phận thiết bị, vi mạch ứng dụng phù hợp để cải tạo, thay thế nhằm mục đích
làm cho hệ thống thí nghiệm Kri PP-300 hoạt động được trở lại và vi mạch
điện tử Arduino Mega là một lựa chọn tốt để đáp ứng được đầy đủ những yêu
cầu của một vi mạch điều khiển hiện đại.
Và các bộ phận đã được thay thế thuộc hệ thống con lắc ngược quay Kri
PP-300 là:
+ Encoder của hệ thống được thay thế bằng một encoder khác của hãng
Omron có thông số: Loại: E6B2-CWS6B – Rotary encoder.

1
2
0 1 0 1 1 1 0
1 1 1
2
1 1
1
2
1
1 1
2
cos
sin sin 2
sin 2
0
sin
-
2
0
t b
a
t u
a
K K
R
K K
R
m L l J m l
C m
J m L m l sin m L l sin


 
 
 
 
 
=
 
 

+
 

 
+

+
&
&&
&&
&
&
&
&
&
(2.1)
Bảng 2.1. Bảng tham số của hệ thống con lắc ngược quay
Ký hiệu Đơn vị Mô tả
α rad Góc giữa cánh tay và trục x
β rad Góc quay của con lắc hướng lên

m Khoảng cách từ trục động cơ đến con lắc
K
t
N-m/A Hằng số mômen của động cơ
K
b
V-s/rad Hằng số sức điện động của động cơ
K
u
V/count Hệ số khuếch đại điều khiển động cơ
R
a
Ω Điện trở phần ứng của động cơ
g m/s
2
Gia tốc trọng trường
u Counts Tín hiệu điều khiển động cơ
Mô hình phi tuyến (2.1) mô tả đầy đủ hành vi của hệ thống. Ta có mô
hình tuyến tính của hệ thống tại điểm làm việc như sau:
2
0
0 1 0 1 0 1
2
1 0 1 1 1 1
1
1 1
0
0
0 0
0

   
 
 
 
 
 
=
 
 
 

 
 
 
 
&& &
&& &
(2.2)
Đặt:
2
0 1 0
a J m L
= +
2
1 1
b m l
=
2
1 0 1
c m L l

=
 
&
&
cho mô hình con lắc ngược
quay:
3 3 3 3
x A x B u
= +
&
1
2
2 2
1
1 1
0 0 0
df ch cC ef
af c u
af c af c
cd ah aC ce
α
α
β β
β
β
 

     
 
     

&
2
1
2 2
2
1
0
0 0 0
0
1 1
0
0 0 0
0
af c
ef
df ch cC
u
af c af c
af c
ce
cd ah aC
α
α
α
α
β
β
β
β
 

&
&
&
&&
(2.4)
Để có thể sử dụng được các mô hình (2.3) và (2.4) ta cần phải xác định các tham
số vật lý của mô hình.
2.4.2. Xác định tham số của mô hình
9
Những tham số này có thể chia thành 2 nhóm: nhóm thứ nhất bao gồm
các thông số có thể đo trực tiếp từ mô hình hoặc được xác định thông qua một
số tính toán đơn giản.
Đó là (các giá trị: m
1
, l
1
, K
u
, K
t,
K
b
, R
a
): Từ mô tả thông số chiều dài cánh tay
con lắc, qua kiểm tra cân thực tế ta có bảng sau:
Bảng 2.2. Bảng tham số khối lượng con lắc
Khối lượng thân con lắc 24.5g
Khối lượng quả lắc 8.9g
Ta tính được chiều dài và khối lượng hiệu dụng của con lắc như sau:

1 270 17 25
22.9574 8.9 224
31.8574 2 2
157.2307 0.1572
rod rod bob bob
l m l m l
m
mm mm mm
l g g mm
g
mm m
⇔ = +
 −
   
⇒ = × + × +
 ÷  ÷
 
   
 
= =
10
+ Hệ số khuếch đại điều khiển động cơ: K
u
Qua khảo sát trên mô hình thực thông qua Matlab/Simulink ta có giá trị
hệ số K
u
như Bảng 2.3:
Bảng 2.3. Bảng khảo sát tham số K
u
u (count) V

Ω 0.9000
Muốn xác định được nhóm các tham số thứ 2 (bao gồm:
0 0 1 1
, , ,J C J C
), ta
không thể sử dụng các tính toán đơn giản mà phải áp dụng một số phương
pháp nhận dạng phức tạp hơn để xác định. Phương pháp xác định tham số
chủ yếu ở đây là phương pháp bình phương cực tiểu.
Theo [7]., ta có giá trị các tham số như sau:
Bảng 2.5. Bảng giá trị hệ số J
0
, C
0
, J
1
, C
1
Tham số:
0
J
0
C
1
J
1
C
Giá trị: 0.008591 0.006408 0.000217 0.000158
Kết luận:
Với các tham số đã xác định được, ta có mô hình tuyến tính của hệ thống
con lắc ngược với 3 biến trạng thái như sau:

       
− −
       
= +
       
       
− −
       
&
&& &
&
&& &
(2.9)
11
2.4.3. Thiết kế bộ điều khiển
Trong luận văn này, mục tiêu chính là ổn định con lắc ở vị trí cân bằng trên
(upright position). Tác giả xây dựng bộ điều khiển phản hồi trạng thái cho bài
toán ổn định con lắc. Một bộ điều khiển swing-up được sử dụng để đưa con lắc
từ vị trí cân bằng dưới (downward position) lên vị trí cân bằng trên.
a. Bộ điều khiển Swing up (Swing up controler)
Trong luận văn này, tác giả xây dựng bộ điều khiển swing-up dựa trên việc
điều khiển năng lượng của con lắc đề xuất bởi K.Furuta và K.J.Astrom [8]. và [9]
Khi đó bộ điều khiển có dạng:
cosu kE
β β
= −
&
(2.13)
Hệ số tỷ lệ k được lựa chọn từ thực nghiệm.
b. Bộ điều khiển ổn định con lắc ở vị trí cân bằng (Balancing controller)


x
+
u
r
K
-
u
Để áp dụng cho mô hình con lắc 3 biến trạng thái, trước hết ta xét tính
điều khiển được của mô hình 3 biến trạng thái:
1.3705 3.8557 0.01242 0.5721
0 0 1 0
0.9367 51.5747 0.1661 0.3910
u
α α
β β
β β
− −
      
      
= +
      
      
− −
      
&& &
&
&& &
Với ma trận điều khiển:
2

[ ]
4
-13.9988 -0.8943 + 4.1462i -0.8943 - 4.1462i -0.3891P
=
Vậy bộ điều khiển ứng
với mô hình 4 biến trạng thái của con lắc là:
[ ]
4
3.5 12 265 55K
= − −
(2.16)
2.5. Kết luận chương 2
Trong chương này giới thiệu tổng quan về con lắc ngược quay và những
ứng dụng của nó được ứng dụng nghiên cứu phát triển trên hệ thống này.
Nghiên cứu thuật toán điều khiển mô hình con lắc ngược quay Kri PP-
300 có tại phòng thí nghiệm của bộ môn Đo lường điều khiển.
Trong quá trình nghiên cứu đã có những cải tiến, thay thế những bộ phận
cả phần cứng và phần mềm nhằm đảm bảo hệ thống hoạt động đúng yêu cầu.
13
Chương 3.
ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA TRONG CÀI ĐẶT
THUẬT TOÁN ĐIỀU KHIỂN ỔN ĐỊNH VỊ TRÍ CON LẮC NGƯỢC
QUAY KRI PP - 300
Nội dung chương này trình bày:
- Mô tả các kết nối khối tín hiệu vào, tín hiệu ra, tín hiệu điều khiển giữa
con lắc và vi mạch điện tử Arduino;
- Mô tả quá trình cài đặt thuật toán điều khiển trên Matlab/Simulink để
điều khiển hệ thống con lắc ngược quay Kri-PP300;
- Chương này trình bày kết quả điều khiển thực con lắc ngược quay trong
môi trường Matlab/Simulink.

20VDC.
- Hệ thống máy tính (Computer system): có cấu hình phù hợp, được cài
đặt phần mềm Matlab/simulink bản r2012a, và phần mềm Arduino softwave
hoàn chỉnh.
3.3. Hệ thống điều khiển trên Matlab/Simulink
Từ mô hình thuật toán điều khiển con lắc ngược quay (từ công thức 2.13,
2.15, 2.16, Chương 2) ta tiến hành xây dựng sơ đồ thuật toán điều khiển trên
Matlab/Simulink như sau:
Hình 3.5. Sơ đồ khối điều khiển hệ thống trên Matlab/Simulink
3.3.1. Khối con lắc ngược quay - Rotary Inverted Pendulum:
Quá trình các tín hiệu Anpha, Anpha_dot, Beta, Beta_dot được chuyển
đổi, xử lý trên Matlab/Simulink.
15
Rotary Inverted Pendulum
Anpha
Anpha_dot
Beta
Beta_dot
U
Hình 3.6. Mô hình mô phỏng hệ thống con lắc
3.3.2. Bộ điều khiển cân bằng - Balance controller:
Hình 3.8. Mô hình bộ điều khiển cân
bằng cho con lắc ngược quay
3.3.3. Bộ điều khiển Swing up - Swing up controller:
Hình 3.9. Mô hình bộ điều khiển Swing up
3.3.4. Khóa chuyển đổi bộ điều khiển - Switch:
Hình 3.11. Mô hình khóa chuyển
đổi bộ điều khiển (Switch)
3.4. Chương trình cho Arduino mega 2560
Vi mạch Arduino thực hiện việc đọc, xử lý tín hiệu của cảm biến góc, tín

if(PIND&0b00001000)encoder++;
else encoder ;
}
}
ISR(INT3_vect)
void serial_init(void) // Khoi tao truyen thong noi tiep
{
UBRR0H=0;
UBRR0L=25;
UCSR0A=0;
UCSR0B=0b10011000; // Khong dung ngat send
UCSR0C|=0b00000000; // 1 bit stop
}
void serial_send(int val) // Lenh gui len matlab
{
if(val<0){
loop_until_bit_is_set(UCSR0A,UDRE0);
UDR0=45;
val=-val;
}
char d=val/1000;
if(d){
17
loop_until_bit_is_set(UCSR0A,UDRE0);
UDR0=d+48;
val=val%1000;
loop_until_bit_is_set(UCSR0A,UDRE0);
UDR0=val/100+48;
__100:
val=val%100;

EIMSK|=0b00000001;
}
void adc_init(void) // Khoi tao doc ADC tu bien tro
{
ADMUX=0b01000000; // Chon nguon Vref = AVCC
18
ADCSRA|=0b10000111; // Cho phep ADC
PORTF|=_BV(0); // Khong tro treo
}
int adc_read(void) // Doc adc
{
int high,low;
ADCSRA|=_BV(ADSC); // Bat dau chuyen doi
loop_until_bit_is_clear(ADCSRA,ADSC);
low=ADCL;
high=ADCH;
return (high<<8)|low;
}
int main(void)
{
DDRB|=_BV(7); // Xuat tin hieu ra P7.
pinMode(7,OUTPUT);
serial_init();
pwm_init();
adc_init();
encoder_init();
sei();
OCR0B=0;
digitalWrite(7,LOW);
while(1)

3.5 12 265 55K = − −
có kết
quả như Hình 3.14 và Hình 3.15:
Hình 3.14. Đáp ứng góc của cánh tay và góc của con lắc với 4 biến điều khiển
khi chạy thực
Hình 3.15. Đáp ứng vận tốc của cánh tay
và góc của con lắc với 4 biến điều khiển khi chạy thực
Nhận xét:
- Chất lượng bộ điều khiển khi sử dụng mô hình 4 biến trạng thái cho kết quả
tốt, mô hình 3 biến trạng thái.
21
3.5.3. Video kết quả thực nghiệm
Kết quả thực nghiệm được ghi lại và đưa lên địa chỉ:
và />3.6. Kết luận chương 3
Trong chương này tác giả trình bày quá trình Ứng dụng Arduino mega
2560 trong cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay Kri
PP-300.
Ứng dụng thành công vi mạch điện tử Arduino mega 2560 kết hợp với
Matlab/Simulink điều khiển được hệ thống con lắc cân bằng, ổn định.
KẾT LUẬN VÀ ĐÁNH GIÁ
1. Kết luận
Đề tài này đã hoàn thành một số công việc sau:
Đánh giá tổng quan về Vi mạch điện tử Arduino, cách thức cài đặt, kết
nối của Vi mạch điện tử Arduino với phần mềm Arduino, với Matlab/Simulink.
Qua đó làm rõ thêm khả năng có thể kết nối, mở rộng điều khiển đối với Vi
mạch điện tử Arduino, khả năng “nhúng” các ứng dụng điều khiển trên Arduino
là rất mạnh nhằm phục vụ các yêu cầu nghiên cứu khoa học, giảng dạy và ứng
dụng điều khiển trong thực tế.
Ứng dụng cài đặt thuật toán điều khiển thông qua phần mềm
Matlab/Simulink lên vi mạch điện tử Arduino mega 2560.

muốn cho trước.
23


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status