• No results found

1.Tran Duc Quan 1

N/A
N/A
Protected

Academic year: 2021

Share "1.Tran Duc Quan 1"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Ứ 

Ứ 

 NG D

 NG D

 NG TH

 NG TH

Ư 

Ư 

 VI

 VI

 N ArduinoIO PH

 N ArduinoIO PH

 N M

 N M

M MATLAB TRONG H

M MATLAB TRONG H

 TH

 TH

 NG

 NG

Đ

Đ

II

U KHI

U KHI

 N T

 N T

Ự 

Ự ĐỘ

ĐỘ

 NG

 NG

APPLICATION ArduinoIO TOOLBOX (MATLAB/SIMULINK) IN AUTOMATIC

APPLICATION ArduinoIO TOOLBOX (MATLAB/SIMULINK) IN AUTOMATIC

CONTROL SYSTEMS

CONTROL SYSTEMS

TS.

TS. ĐỗĐỗ Trung H Trung Hảải, Tri, TrầầnnĐứ Đứ c Quânc Quân Khoa

KhoaĐĐiiệện -n -ĐạĐại hi họọc K c K ỹỹ thu thuậật Công nghit Công nghiệệ p p TÓM T

TÓM TẮẮTT MATLAB là m

MATLAB là mộột môi tr t môi tr ườ ườ ng tính toán sng tính toán sốố và và llậậ p  p trình,trình, đượ đượ c thic thiếết t k k ếế bbở ở i công tyi công ty MathWorks. Trong quá trình thi

MathWorks. Trong quá trình thiếết k t k ếế các h các hệệ th thốốngng đđiiềều khiu khiểển tn tựự độđộng, Matlab là mng, Matlab là mộột công ct công cụụ

thi

thiếết yt yếếu giúp ngu giúp ngườ ườ i thii thiếết k t k ếế mô hình hóa mô ph mô hình hóa mô phỏỏng hng hệệ th thốống, ngoài ra Matlab còn có thng, ngoài ra Matlab còn có thểể l làà m

mộột pht phầần trong hn trong hệệ th thốốngng đđó – thó – thựực hic hiệện thun thuậật toánt toán đđiiềều khiu khiểển. Bn. Bảản báo cáo này trình bày cácn báo cáo này trình bày các  b

 bướ ướ cc ứứng dng dụụng thng thưư vi việện ArduinoIO trong công cn ArduinoIO trong công cụụ Simulink c Simulink củủa Matlaba Matlab đểđể th thựực hic hiệện thu thn thu thậậ p p ddữữ li liệệu,u,đđiiềều khiu khiểển hn hệệ th thốốngng đđiiềều khiu khiểển tn tựự độđộng và thng và thựực hic hiệện mn mộột ví dt ví dụụ v vềề c cụụ th thểể..

ABSTRACT ABSTRACT

MATLAB is a numerical computing and programming environment, designed by the MATLAB is a numerical computing and programming environment, designed by the MathWorks. During the design of the automatic control systems, Matlab is an essential tool to MathWorks. During the design of the automatic control systems, Matlab is an essential tool to help designer simulation modeling systems, besides Matlab also can be part of them

help designer simulation modeling systems, besides Matlab also can be part of them – the – the partpart implements

implements control control algorithms. algorithms. This This report report presents presents the the steps steps to to use use ArduinoIO ArduinoIO library library inin Matlab

Matlab Simulink Simulink toolbox toolbox to to collect collect data, data, control control automated automated control control systems systems and and perform perform aa specific example.

specific example.

Key word: Matlab, Simulink, Arduino,

Key word: Matlab, Simulink, Arduino, ArduinoIO.ArduinoIO. 1. M

1. Mở ở đầđầuu MATLAB

MATLAB là là mmộột môi tr t môi tr ườ ườ ng tính toánng tính toán ssốố và và llậậ p  p trình,trình, đượ đượ c thic thiếết t k k ếế bbở ở i công tyi công ty MathWorks. MATLAB cho phép tính toán MathWorks. MATLAB cho phép tính toán ssốố v vớ ớ i ma tr i ma tr ậận, vn, vẽẽ đồđồ th thịị hàm s hàm sốố hay bi hay biểểuu đồđồ

thông tin, th

thông tin, thựực c hihiệện thun thuậật toán, tt toán, tạạo các giaoo các giao di

diệện n ngngườ ườ i dung, liên k i dung, liên k ếết t vvớ ớ i i nhnhữững chng chươ ươ ngng trình máy tính vi

trình máy tính viếết trên nhit trên nhiềều ngôn ngu ngôn ngữữ llậậ p p trình khác và truy

trình khác và truyềền thông k n thông k ếết t nnốối thii thiếết t bbịị

th

thựực qua các cc qua các cổổng k ng k ếết nt nốối ni nốối tii tiếế p, song song p, song song ccủủa máy tính. Va máy tính. Vớ ớ i i ththưư viviệện Toolbox,n Toolbox, MATLAB cho phép mô ph

MATLAB cho phép mô phỏỏng tính toán,ng tính toán, th

thựực nghic nghiệệm nhim nhiềều mô hình trong thu mô hình trong thựực c ttếế vàvà k 

k ỹỹ thu thuậật.t.

Đặ

Đặc c bibiệệt khi k t khi k ếết t hhợ ợ  p  p vvớ ớ i các bo mi các bo mạạchch thu th

thu thậậ p  p ddữữ liliệệu, Matlab có thu, Matlab có thểể đđóng vai tròóng vai trò là trung tâm

là trung tâm đđiiềều khiu khiểển trong hn trong hệệ ththốốngng đđiiềềuu khi khiểển sn sốố.. Arduino là m Arduino là mộột ht hệệ th thốống sng sảản xun xuấất các bot các bo m mạạch mã nguch mã nguồồn mn mở ở đượ đượ c hình thành và phátc hình thành và phát tri triểển n ttừừ nnăăm 2005. Do các bo mm 2005. Do các bo mạạch là mãch là mã ngu

nguồồn mn mở ở  nên nên đếđến nay hn nay hệệ th thốống nàyng này đđã phátã phát tri

triểển n r r ấất t mmạạnh nh mmẽẽ và có th và có thưư viviệện n hhỗỗ tr tr ợ ợ  cho cho ng

ngườ ườ i i ssửử ddụụng ng r r ấấtt đđa a ddạạng, phong phú. Làng, phong phú. Là m

mộột thit thiếết t bbịị phphầần n ccứứng, Arduino có thng, Arduino có thểể hohoạạtt

độ

độngng độđộc c llậậ p  p vvớ ớ i i chchứức c nnăăng thng thựực c hihiệện cácn các

lu

luậậtt đđiiềều khiu khiểển, n, k k ếết t nnốối i vvớ ớ i máy tính, hoi máy tính, hoặặcc m

mộột thit thiếết t bbịị Arduino khác, các thi Arduino khác, các thiếết t bbịị đđiiệệnn ttửử khác... khác...

Th

Thưư viviệện ArduinoIO là mn ArduinoIO là mộột t ththưư viviệệnn trong b

trong bộộ  công c  công cụụ  Simulink h  Simulink hỗỗ tr tr ợ ợ   các bo  các bo m

mạạch Arduino làm vich Arduino làm việệc c vvớ ớ i Matlab-i Matlab-Simulink. K 

Simulink. K ếết t hhợ ợ  p  p các các bo bo mmạạch Arduino vàch Arduino và th

thưư vi việện ArduinoIO, Matlab có thn ArduinoIO, Matlab có thểể ti tiếến hànhn hành thu th

thu thậậ p  p ddữữ liliệệu, thu, thựực hic hiệện thun thuậật toánt toán đđiiềềuu khi

khiểển dn dễễ dàng dàng đểđể đđiiềều khiênu khiên đốđối ti tượ ượ ng thng thựực.c. 2. Bo m 2. Bo mạạch Arduino và thch Arduino và thư ư  viviệệnn ArduinoIO ArduinoIO 2.1. Bo m 2.1. Bo mạạch Arduinoch Arduino Các bo m Các bo mạạchch ArduinoArduino ththậật ra là bo mt ra là bo mạạch vich vi xxửử lýlý đượ đượ c dùngc dùng đểđể llậậ p  p trình trình ttươ ươ ng tác vng tác vớ ớ ii các thi các thiếết t bbịị phphầần n ccứứng nhng nhưư ccảảm m bibiếến,n, độđộngng ccơ ơ ,, đđèn hoèn hoặặc các thic các thiếết bt bịị khác. khác. ĐặĐặcc đđiiểểm nm nổổii  b

 bậật ct củủa Arduino là môi tr a Arduino là môi tr ườ ườ ng phát tring phát triểểnn ứứngng ddụụng ng ccựực c k k ỳỳ ddễễ ssửử ddụụng, vng, vớ ớ i i mmộột ngôn ngt ngôn ngữữ llậậ p  p trình trình có có ththểể hhọọc c mmộột cách nhanh chóngt cách nhanh chóng ngay c ngay cảả vvớ ớ i i ngngườ ườ i ít am hii ít am hiểểu u vvềề đđiiệện n ttửử vàvà llậậ p  p trình. trình. VàVà đđiiềều làm nên hiu làm nên hiệện n ttượ ượ ngng Arduino chính là m

Arduino chính là mứức giá r c giá r ấất t ththấấ p  p và và tínhtính ch

(2)

Bo mạch ArduinoUNO là bo mạch thông dụng nhất.

ArduinoUno sử dụng chip Atmega328. có 14 chân vào/ra sô, 6 chân vào tươ ng tự, thạch anh dao động 16Mhz. Một số thông số k ỹ thuật như  sau: Viđiều khiển Atmega328 Điện áp hoạt động 5V  Nguồn cấ p 7-12V Số đầu vào/ra số 14 (6PWM) Đầu vào tươ ng tự 6 Dòngđiện vào/ra số 40 mA Bộ nhơ  chươ ng trình 32 KB Xung nhị p 16 MHz Sơ đồ chân ArduinoUNO:  Hình 1: ArduinoUNO

- USB (1): Arduino sử dụng cáp USB để

giao tiế p vớ i máy tính. Thông qua cáp USB chúng ta có thể  Upload chươ ng trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino.

- Nguồn cấ p một chiều cho Arduino UNO (2,3), 7÷12V

-Đầu vào tươ ng tự (4), A0÷A5. -Đầu vào/ra số (5,6), D0÷D13. Môi trườ ng lập trình:

Môi tr 

ườ 

ng l

 p trình cho Arduino

đượ 

c

t

i

v

t

 

trang

web

http://arduino.cc/en/Main/Software

.

Sau

khi cài

đặ

t xong thì giao di

n ch

ươ 

ng

trình nh

ư

 sau:

 Hình 2: Môi tr ườ ng l ậ p trình Arduino

Để tìm hiểu lậ p trình cho Arduino có thể

tìm hiểu qua các ví dụ và phần tr ợ  giúp chi tiết trong Arduino. Ví dụ điều khiển tốc độ động cơ một chiều bằng xung PWM:  Hình 3: S ơ đồ mạch Mã nguồn: int potPin = 0; int transistorPin = 9; int potValue = 0; void setup() {  pinMode(transistorPin, OUTPUT);} void loop() {  potValue = analogRead(potPin) / 4; analogWrite(transistorPin, potValue); }

(3)

2.2. Thư  viện ArduinoIO

Thư viện ArduinoIO gồm hai gói phần mềm mã nguồn mở : gói mã lậ p trình ngôn ngữ  cho bo mạch Arduino và gói mã lậ p trình .m cho các khối trong môi tr ườ ng Simulink. Để sử dụng đượ c thư viện này, Matworks khuyến cáo sử dụng phiên bản Matlab 2012a tr ở  lên.

Các bướ c càiđặt thư  viện ArduinoIO: - Tải và giải nén thư viện ArduinoIO từ

trang web http://mathworks.com.

- Tải gói phần mềm xuống bo mạch ArduinoUNO. Gói phần mềm trong thư mục ArduinoIO/pde.

- Thêm thư viện ArduinoIO cho Matlab/Simulink: Đưa thư mục làm việc của Matlab đến thư mục ArduinoIO. Chạy tệ p install_arduino.m để  thêm thư viện ArduinoIO cho Simulink.

Các khối trong thư  viện ArduinoIO:

 Hình 1: Thư  viện ArduinoIO

- Khối chức năng Arduino IO setup: thiết lậ p cài đặt giao tiế p vớ i Arduino. Khi k ết nối Arduino vào máy tính sẽ tạo ra một cổng giao tiế p nối tiế p (ví dụ Com3, Com4, …). Ngườ i sử dụng phải khai báo cho Matlab biết Arduino đượ c k ết nối vào cổng giao tiế p nào.

- Khối chức năng Real-Time Pacer: Cài

đặt cho Simulink chạy vớ i thờ i gian thực. - Khối chức năng Arduino Analog Read:

đọc giá tr ị ADC trên các đầu vào analog của

 biến đổi điện áp tươ ng tự 0÷5V từ đầu vào tươ ng tự  A0÷A5 thành giá tr ị số  10bit nên khối này sẽ nhận đượ c k ết quả từ  0÷1024 tươ ng ứng vớ i giá tr ị điện áp ở  các đầu vào tươ ng tự đượ c khai báo.

- Khối chức năng Arduino Digital Read:

đọc giá tr ị các đầu vào số của Arduino. K ết quả khối này có thể là 0 hoặc 1 theo đầu vào số đượ c khai báo.

- Khối chức năng Arduino Digital Write: ghi giá tr ị 0 hoặc 1 ra các đầu ra số đượ c khai báo.

- Khối chức năng Arduino Analog Write: xuất giá tr ị tươ ng tự  trên các đầu ra tươ ng tự của Arduino. Arduino coi các chân có chức năng điều khiển PWM như  là các chân xuất ra đượ c tín hiệu tươ ng tự. Do Arduino sử dụng thanh ghi 8bit để điều khiển PWM nên giá tr ị của khối Arduino Analog Write nhận đượ c từ  0÷255 tươ ng tứng vớ i xung PWM có độ r ộng xung từ

0÷100%. Tần số PWM của ArduinoUNO là 980Hz.

- Khối chức năng Encoder Read: thiết lậ p và đọc giá tr ị bộ đếm xung của Arduino. Thư viện ArduinoIO hỗ tr ợ cảm biến tốc tộ

mã hóa dướ i dạng xung (Encoder) loại tươ ng

đối 2 kênh lệch pha nhau 90o điện. Trên bo mạch ArduinoUNO có chân 2 và 3 hỗ tr ợ 

nhận tín hiệu xung từ Encoder. ArduinoUNO sẽ tăng hoặc giá tr ị đếm khi có sự thay đổi tr ạng thái của tín hiệu xung Encoder tùy theo chiều quay của đĩ a Encoder. Do đếm theo sườ n xung như vậy nên ArduinoUNO đã thực hiện tăng độ phân giải của Encoder lên 4 lần. K ết quả của khối này là số  xung ArduinoUNO đếm đượ c trong 100ms. - Khối chức năng Encoder Reset. - Khối chức năng DC Motor: điều khiển

động cơ  một chiều. Khối này yêu cầu phải sử

dụng bo mạch điều khiển động cơ  một chiều của Arduino.

- Khối chức năng Stepper Motor: điều khiển động cơ bướ c. Khối này yêu cầu phải sử dụng bo mạch điều khiển động cơ bướ c của Arduino.

(4)

3. Sử dụng bo mạch ArduinoUNO và thư  viện ArduinoIO điều khiển tốc độ động cơ  một chiều 3.1. Thông số động cơ  Hãng sản xuất YASKAWA Mã hiệu UGFMED 03SRI21 Điện ápđịnh mức 24V Công suất định mức 50W Tốc độ định mức 1500(vòng/phút) Enconder 5V, 400 xung/vòng 3.1. Sơ đồ cấu trúc điều khiển hệ thống  Hình 4: S ơ đồ cấ u trúc hệ 3.2. Sơ đồ nguyên lý hệ thống 1. Động cơ  một chiều 2. Bộ biến đổi xung áp 3. Mạch tạo tín hiệu đặt 4. Bộ ghép nối Arduino 5. Tín hiệu phản hồi tốc độ 6. Máy tính (Matlab/Simulink)  Hình 5: S ơ đồ nguyên lý hệ 3.3. Xây dự ng cấu trúc điều khiển hệ thống sử  dụng Matlab/Simulink Sử dụng các khối trong thư viện ArduinoIO để xây dựng cấu trúc điều khiển hệ thống vớ i bộ điều khiển đượ c thực hiện trên Matlab/Simulink trên hình 6. Chi tiết khối Động cơ  một chiều (DCM) gồm: - Đọc tín hiệu tốc độ động cơ , sử dụng khối Encoder Read. - Xuất tín hiệu từ bộ điều khiển ra bộ  biến đổi (xuất tín hiệu PWM), sử dụng khối AnalogWrite. Động cơ  một chiều Bộ  biến đổi Bộ điều khiển n* n (-)

(5)

 Hình 6: S ơ đồ cấ u trúcđ iề u khiể n hệ thố ng sử  d ụng Matlab/Simulink 3.4.Đápứ ng tốcđộ của động cơ  Đáp ứng tốc độ động cơ  vớ i tín hiệu đặt Nref  = 1000 v/ph.  Hình 7. Đápứ ng t ố c độ động cơ  Sai lêch tốc độ động cơ  so vớ i tín hiệu đặt:  Hình 8. Sai l ệch t ố c độ động cơ  khi không t ải vớ i tín hiệu đặt Từ hình 7 và hình 8 ta thấy: - Đáp ứng tốc độ động cơ   khi luôn bám theo tín hiệu đặt.

- Thờ i gian xác lậ p nhanh, khoảng 0.6s. - Lượ ng quá điều chỉnh r ất nhỏ. - Bộ điều khiển thực hiện trên Matlab/Simulink điều khiển hệ thống đạt chất lượ ng tốt. 4. K ết luận Từ các k ết quả nghiên cứu và thực nghiệm ở  trên ta thấy: K ết hợ  p Matlab/Simulink và bo mạch Arduino vớ i thư viện ArduinoIO có thể

thực hiện tôt việc thu thậ p dữ liệu, tính toán và

điều khiển trong các hệ thống điều khiển tự động.

 Ngoài ra, thư viện ArduinoIO là thư viện mã nguồn mở  nên ngườ i dùng hoàn toàn có thể

chỉnh sửa, thêm, bớ t các công cụ cần thiết cho từng ứng dụng cụ thể. Có thể khai thác triệt để

khả năng tính toán mạnh mẽ  và thực hiện các thuật toán phức tạ p của Matlab để điều khiển các hệ thống điều khiển tự động phức tạ p, yêu udk n_err  1000 Toc do dat 1 Toc do Speed 1 SP ref  Real-Time Pacer  Speedup = 1 Real-Time Pacer  x' = Ax+Bu  y = Cx+Du Hin controller  1.03 GH tren 0.97 GH duoi 1 Dong dien Current Speed Dir  SP DCM Current Setup Arduino1 COM2 ArIO Setup PID Controller

(6)

TÀI LIỆU THAM KHẢO

[1]. Bùi Quốc Khánh – Phạm Quốc Hải  – Dươ ng Văn Nghi,  Điề u chỉ nh t ự  động truyề n động đ iện, NXB Khoa học và k ỹ thuật, 1999.

[2]. Nguyễn Phùng Quang, Matlab & Simulink dành cho k  ỹ  sư  đ iề u khiể n t ự 

động , NXB Khoa học và k ỹ thuật, 1996. [3]. Arduino, http://arduino.cc

[4]. Mathworks,

References

Related documents

Metastasis – the progressive spread of malignant cells away from its origin to colonise new tissues – is the most deadly aspect of can- cer, and therefore, understanding the

Cash deposit at cash desk in valid adjusted CZK up to a limit 0,5 million inclusive and deposit of coins or a mixed deposit of banknotes and coins in CZK (if the deposit contains up

Deputy Chief, Major Frauds Section Assistant United States Attorney Central District of California Los

The general shape of the speed-flow relationship inside the work zone was similar to the speed-flow curve under basic freeway conditions, but the bending point of the upper branch

parasuis serovar 3 (SW114) and a virulent serovar 5 (Nagasaki) strains to interact with porcine bone marrow dendritic cells (poBMDC) and their modulation in a co-infection with

profound leadership, inviting people to become leaderful, inviting people to fully understand how we create reality and what the tools and skills are that we already have in

Despite the fact, that the prevalence of dyslipidemia in Lithuania is high (89.7%), the prevalence of low-HDL-C (5.6%) was unexpectedly low, since reported prevalence of low-HDL

Before the transition from the preschool class to grade 1, the children placed a new distinct border between the preschool class (as a playful arena) and school (as a place for