1.Tran Duc Quan 1

November 12, 2018 | Author: Phạm Văn Bách | Category: N/A
Share Embed Donate


Short Description

Arduino...

Description

 VIỆ N ArduinoIO PHẦ N MỀM MATLAB TRONG HỆ THỐ NG Ứ  NG DỤ NG THƯ  VI ĐIỀU KHIỂ N TỰ  Ự ĐỘ ĐỘ NG APPLICATION ArduinoIO TOOLBOX (MATLAB/SIMULINK) IN AUTOMATIC CONTROL SYSTEMS TS. Đỗ Trung H ải, Trần Đứ c Quân

Khoa Điện - Đại học K ỹ thuật Công nghiệ p TÓM TẮT ườ ng MATLAB là một môi tr ườ  ng tính toán số và lậ p trình, đượ c thiết k ế bở i công ty MathWorks. Trong quá trình thi ết k ế các hệ thống điều khiển tự động, Matlab là một công c ụ thiết y ếu giúp ngườ i thiết k ế mô hình hóa mô ph ỏng h ệ th ống, ngoài ra Matlab còn có th ể là  l à một ph ần trong hệ th ống đó – thực hi ện thuật toán điều khiển. Bản báo cáo này trình bày các  bướ c ứng dụng thư viện ArduinoIO trong công c ụ Simulink của Matlab để th ực hiện thu thậ p dữ liệu, điều khiển hệ thống điều khiển tự động và thực hiện một 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. ở đầu 1. Mở đầ luật điều khiển, k ết nối vớ i máy tính, hoặc ườ ng MATLAB là một môi tr ườ  ng tính toán một thiết bị Arduino khác, các thi ết bị điện số và lậ p trình, đượ c thiết k ế bở i công ty tử khác... MathWorks. MATLAB cho phép tính toán Thư viện ArduinoIO là một thư viện ợ  các bo số v ớ i ma tr ận, vẽ đồ thị hàm số hay biểu đồ trong bộ  công cụ  Simulink hỗ tr ợ  thông tin, thực hiện thuật toán, tạo các giao mạch Arduino làm vi ệc vớ i Matlabdiện ngườ i dung, liên k ết vớ i những chươ ng ng Simulink. K ết hợ  p các bo mạch Arduino và trình máy tính vi ết trên nhiều ngôn ng ữ lậ p thư vi ện ArduinoIO, Matlab có th ể ti ến hành trình khác và truy ền thông k ết nối thiết bị thu thậ p dữ liệu, thực hiện thuật toán điều thực qua các c ổng k ết nối nối tiế p, song song khiển dễ dàng để điều khiên đối tượ ng ng thực. của máy tính. V ớ i thư viện Toolbox, MATLAB cho phép mô ph ỏng tính toán, 2. Bo mạch Arduino và thư  viện thực nghiệm nhiều mô hình trong th ực tế và ArduinoIO 2.1. Bo mạch Arduino k ỹ thuật. Đặc biệt khi k ết hợ  p vớ i các bo mạch Các bo mạch Arduino thật ra là bo mạch vi thu thậ p dữ liệu, Matlab có th ể đóng vai trò xử lý đượ c dùng để lậ p trình tươ ng ng tác vớ i là trung tâm điều khiển trong hệ thống điều các thiết bị phần cứng như cảm biến, động khiển số. cơ , đèn hoặc các thi ết b ị khác. Đặc điểm nổi ườ ng Arduino là một hệ thống sản xuất các bo  bật của Arduino là môi tr ườ  ng phát triển ứng ở  đượ c hình thành và phát dụng cực k ỳ dễ sử dụng, vớ i một ngôn ngữ mạch mã ngu ồn mở đượ  triển từ năm 2005. Do các bo m ạch là mã lậ p trình có thể học một cách nhanh chóng nguồn m ở  nên  nên đến nay hệ th ống này đã phát ngay cả vớ i ngườ i ít am hiểu về điện tử và ợ cho triển r ất mạnh mẽ và có th ư viện hỗ tr ợ    cho lậ p trình. Và điều làm nên hi ện tượ ng ng ngườ i sử dụng r ất đa dạng, phong phú. Là Arduino chính là mức giá r ất thấ p và tính một thiết bị phần cứng, Arduino có th ể hoạt chất nguồn mở  từ phần cứng tớ i phần mềm. động độc lậ p vớ i chức năng thực hiện các 1

khi cài đặt xong thì giao diện chươ ng trình như sau:

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 Điện áp hoạt động  Nguồn cấ p Số đầu vào/ra số Đầu vào t ươ ng tự Dòng điện vào/ra số Bộ nhơ  chươ ng trình Xung nhị p

Atmega328 5V 7-12V 14 (6PWM) 6 40 mA 32 KB 16 MHz

Sơ đồ chân ArduinoUNO:  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 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.

 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); }

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 Sau http://arduino.cc/en/Main/Software. 2

2.2. Thư  viện ArduinoIO Thư viện ArduinoIO gồm

 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 90 o đ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. - Khối chức năng Servo Read, Servo Write: điều khiển động cơ  servo.

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 Arduino. Do bo mạch ArduinoUNO có th ể 3

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

 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

3.1. Sơ đồ cấu trúc điều khiển hệ thống *

n

(-)

Bộ điều khiển

Bộ  biến đổi

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.

Động n cơ  một chiều

 Hình 4: S ơ đồ cấ u trúc hệ 3.2. Sơ đồ nguyên lý hệ thống

- 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.

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)

4

Setup Arduino1 COM2

Real-Time Pacer  Speedup = 1 Dir 

Current

1

ArIO Setup Real-Time Pacer  Dong dien n_err 

1 SP ref 

udk

x' =PID Ax+Bu Controller  y = Cx+Du

1000

Current

SP

Speed

1 Toc do

Toc do dat Hin controller  DCM

1.03 GH tren

Speed

0.97 GH duoi

 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 cầu lượ ng tính toán lớ n. 5

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, http://mathworks.com

6

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF