Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

NG DNG TH VIN ArduinoIO PHN MM MATLAB TRONG H THNG

IU KHIN T NG
APPLICATION ArduinoIO TOOLBOX (MATLAB/SIMULINK) IN AUTOMATIC
CONTROL SYSTEMS
TS. Trung Hi, Trn c Qun
Khoa in - i hc K thut Cng nghip

TM TT
MATLAB l mt mi trng tnh ton s v lp trnh, c thit k bi cng ty
MathWorks. Trong qu trnh thit k cc h thng iu khin t ng, Matlab l mt cng c
thit yu gip ngi thit k m hnh ha m phng h thng, ngoi ra Matlab cn c th l
mt phn trong h thng thc hin thut ton iu khin. Bn bo co ny trnh by cc
bc ng dng th vin ArduinoIO trong cng c Simulink ca Matlab thc hin thu thp
d liu, iu khin h thng iu khin t ng v thc hin mt v d v c th.
ABSTRACT
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
help designer simulation modeling systems, besides Matlab also can be part of them the part
implements control algorithms. This report presents the steps to use ArduinoIO library in
Matlab Simulink toolbox to collect data, control automated control systems and perform a
specific example.
Key word: Matlab, Simulink, Arduino, ArduinoIO.
1. M u lut iu khin, kt ni vi my tnh, hoc
MATLAB l mt mi trng tnh ton mt thit b Arduino khc, cc thit b in
s v lp trnh, c thit k bi cng ty t khc...
MathWorks. MATLAB cho php tnh ton Th vin ArduinoIO l mt th vin
s vi ma trn, v th hm s hay biu trong b cng c Simulink h tr cc bo
thng tin, thc hin thut ton, to cc giao mch Arduino lm vic vi Matlab-
din ngi dung, lin kt vi nhng chng Simulink. Kt hp cc bo mch Arduino v
trnh my tnh vit trn nhiu ngn ng lp th vin ArduinoIO, Matlab c th tin hnh
trnh khc v truyn thng kt ni thit b thu thp d liu, thc hin thut ton iu
thc qua cc cng kt ni ni tip, song song khin d dng iu khin i tng thc.
ca my tnh. Vi th vin Toolbox,
MATLAB cho php m phng tnh ton, 2. Bo mch Arduino v th vin
thc nghim nhiu m hnh trong thc t v ArduinoIO
k thut. 2.1. Bo mch Arduino
c bit khi kt hp vi cc bo mch Cc bo mch Arduino tht ra l bo mch vi
thu thp d liu, Matlab c th ng vai tr x l c dng lp trnh tng tc vi
l trung tm iu khin trong h thng iu cc thit b phn cng nh cm bin, ng
khin s. c, n hoc cc thit b khc. c im ni
Arduino l mt h thng sn xut cc bo bt ca Arduino l mi trng pht trin ng
mch m ngun m c hnh thnh v pht dng cc k d s dng, vi mt ngn ng
trin t nm 2005. Do cc bo mch l m lp trnh c th hc mt cch nhanh chng
ngun m nn n nay h thng ny pht ngay c vi ngi t am hiu v in t v
trin rt mnh m v c th vin h tr cho lp trnh. V iu lm nn hin tng
ngi s dng rt a dng, phong ph. L Arduino chnh l mc gi rt thp v tnh
mt thit b phn cng, Arduino c th hot cht ngun m t phn cng ti phn mm.
ng c lp vi chc nng thc hin cc

1
Bo mch ArduinoUNO l bo mch thng khi ci t xong th giao din chng
dng nht. trnh nh sau:
ArduinoUno s dng chip Atmega328.
c 14 chn vo/ra s, 6 chn vo tng t,
thch anh dao ng 16Mhz.

Mt s thng s k thut nh sau:


Vi iu khin Atmega328
in p hot ng 5V
Ngun cp 7-12V
S u vo/ra s 14 (6PWM)
u vo tng t 6
Dng in vo/ra s 40 mA
B nh chng trnh 32 KB
Xung nhp 16 MHz

S chn ArduinoUNO:

Hnh 2: Mi trng lp trnh Arduino

tm hiu lp trnh cho Arduino c th


tm hiu qua cc v d v phn tr gip chi
tit trong Arduino.
V d iu khin tc ng c mt
chiu bng xung PWM:

Hnh 1: ArduinoUNO

- USB (1): Arduino s dng cp USB


giao tip vi my tnh. Thng qua cp USB
chng ta c th Upload chng trnh cho
Arduino hot ng, ngoi ra USB cn l Hnh 3: S mch
ngun cho Arduino. M ngun:
- Ngun cp mt chiu cho Arduino int potPin = 0;
UNO (2,3), 712V int transistorPin = 9;
- u vo tng t (4), A0A5. int potValue = 0;
- u vo/ra s (5,6), D0D13. void setup() {
pinMode(transistorPin, OUTPUT);}
Mi trng lp trnh: void loop() {
Mi trng lp trnh cho Arduino potValue = analogRead(potPin) / 4;
c ti v t trang web analogWrite(transistorPin, potValue);
http://arduino.cc/en/Main/Software. Sau }

2
2.2. Th vin ArduinoIO bin i in p tng t 05V t u vo
Th vin ArduinoIO gm hai gi phn tng t A0A5 thnh gi tr s 10bit nn
mm m ngun m: gi m lp trnh ngn khi ny s nhn c kt qu t 01024
ng cho bo mch Arduino v gi m lp tng ng vi gi tr in p cc u vo
trnh .m cho cc khi trong mi trng tng t c khai bo.
Simulink. s dng c th vin ny, - Khi chc nng Arduino Digital Read:
Matworks khuyn co s dng phin bn c gi tr cc u vo s ca Arduino. Kt
Matlab 2012a tr ln. qu khi ny c th l 0 hoc 1 theo u vo
Cc bc ci t th vin ArduinoIO: s c khai bo.
- Ti v gii nn th vin ArduinoIO t - Khi chc nng Arduino Digital Write:
trang web http://mathworks.com. ghi gi tr 0 hoc 1 ra cc u ra s c
- Ti gi phn mm xung bo mch khai bo.
ArduinoUNO. Gi phn mm trong th mc - Khi chc nng Arduino Analog
ArduinoIO/pde. Write: xut gi tr tng t trn cc u ra
- Thm th vin ArduinoIO cho tng t ca Arduino. Arduino coi cc chn
Matlab/Simulink: a th mc lm vic ca c chc nng iu khin PWM nh l cc
Matlab n th mc ArduinoIO. Chy tp chn xut ra c tn hiu tng t. Do
install_arduino.m thm th vin Arduino s dng thanh ghi 8bit iu
ArduinoIO cho Simulink. khin PWM nn gi tr ca khi Arduino
Analog Write nhn c t 0255 tng
Cc khi trong th vin ArduinoIO: tng vi xung PWM c rng xung t
0100%. Tn s PWM ca ArduinoUNO l
980Hz.
- Khi chc nng Encoder Read: thit
lp v c gi tr b m xung ca Arduino.
Th vin ArduinoIO h tr cm bin tc t
m ha di dng xung (Encoder) loi tng
i 2 knh lch pha nhau 90o in. Trn bo
mch ArduinoUNO c chn 2 v 3 h tr
nhn tn hiu xung t Encoder. ArduinoUNO
s tng hoc gi tr m khi c s thay i
trng thi ca tn hiu xung Encoder ty theo
chiu quay ca a Encoder. Do m theo
sn xung nh vy nn ArduinoUNO
Hnh 1: Th vin ArduinoIO thc hin tng phn gii ca Encoder ln
- Khi chc nng Arduino IO setup: 4 ln. Kt qu ca khi ny l s xung
thit lp ci t giao tip vi Arduino. Khi ArduinoUNO m c trong 100ms.
kt ni Arduino vo my tnh s to ra mt - Khi chc nng Encoder Reset.
cng giao tip ni tip (v d Com3, Com4, - Khi chc nng DC Motor: iu khin
). Ngi s dng phi khai bo cho ng c mt chiu. Khi ny yu cu phi s
Matlab bit Arduino c kt ni vo cng dng bo mch iu khin ng c mt chiu
giao tip no. ca Arduino.
- Khi chc nng Real-Time Pacer: Ci - Khi chc nng Stepper Motor: iu
t cho Simulink chy vi thi gian thc. khin ng c bc. Khi ny yu cu phi
- Khi chc nng Arduino Analog Read: s dng bo mch iu khin ng c bc
c gi tr ADC trn cc u vo analog ca ca Arduino.
Arduino. Do bo mch ArduinoUNO c th - Khi chc nng Servo Read, Servo
Write: iu khin ng c servo.
3
3. S dng bo mch ArduinoUNO v th
vin ArduinoIO iu khin tc ng c
mt chiu
3.1. Thng s ng c
Hng sn xut YASKAWA
M hiu UGFMED 03SRI21
in p nh mc 24V
Cng sut nh mc 50W
Tc nh mc 1500(vng/pht)
Enconder 5V, 400 xung/vng Hnh 5: S nguyn l h

3.3. Xy dng cu trc iu khin h


3.1. S cu trc iu khin h thng thng s dng Matlab/Simulink
S dng cc khi trong th vin
n* B B ng n ArduinoIO xy dng cu trc iu khin
iu bin c mt h thng vi b iu khin c thc hin
khin i chiu trn Matlab/Simulink trn hnh 6.
(-) Chi tit khi ng c mt chiu (DCM)
gm:
- c tn hiu tc ng c, s dng
khi Encoder Read.

Hnh 4: S cu trc h

3.2. S nguyn l h thng - Xut tn hiu t b iu khin ra b


1. ng c mt chiu bin i (xut tn hiu PWM), s dng khi
2. B bin i xung p AnalogWrite.
3. Mch to tn hiu t
4. B ghp ni Arduino
5. Tn hiu phn hi tc
6. My tnh (Matlab/Simulink)

4
Setup
Real-Time Pacer
Arduino1
Speedup = 1
COM2
Dir Current 1
ArIO Setup Real-Time Pacer
Dong dien Current
n_err udk

x' =PID
Ax+Bu
1 1000 Controller SP Speed 1
y = Cx+Du
SP ref Toc do
Toc do dat
Hin controller
DCM
1.03

GH tren Speed

0.97

GH duoi

Hnh 6: S cu trc iu khin h thng s dng Matlab/Simulink

3.4. p ng tc ca ng c Hnh 8. Sai lch tc ng c khi khng


p ng tc ng c vi tn hiu ti vi tn hiu t
t Nref = 1000 v/ph. T hnh 7 v hnh 8 ta thy:
- p ng tc ng c khi lun bm
theo tn hiu t.
- Thi gian xc lp nhanh, khong 0.6s.
- Lng qu iu chnh rt nh.
- B iu khin thc hin trn
Matlab/Simulink iu khin h thng t cht
lng tt.

Hnh 7. p ng tc ng c 4. Kt lun
Sai lch tc ng c so vi tn hiu T cc kt qu nghin cu v thc nghim
trn ta thy: Kt hp Matlab/Simulink v bo
t: mch Arduino vi th vin ArduinoIO c th
thc hin tt vic thu thp d liu, tnh ton v
iu khin trong cc h thng iu khin t
ng.
Ngoi ra, th vin ArduinoIO l th vin
m ngun m nn ngi dng hon ton c th
chnh sa, thm, bt cc cng c cn thit cho
tng ng dng c th. C th khai thc trit
kh nng tnh ton mnh m v thc hin cc
thut ton phc tp ca Matlab iu khin
cc h thng iu khin t ng phc tp, yu
cu lng tnh ton ln.
5
TI LIU THAM KHO
[1]. Bi Quc Khnh Phm Quc Hi
Dng Vn Nghi, iu chnh t ng
truyn ng in, NXB Khoa hc v k
thut, 1999.
[2]. Nguyn Phng Quang, Matlab &
Simulink dnh cho k s iu khin t
ng, NXB Khoa hc v k thut, 1996.
[3]. Arduino, http://arduino.cc
[4]. Mathworks,
http://mathworks.com

You might also like