NG DỤNG THƯ VIỆN ArduinoIO PHẦN mềm MATLAB TRONG hệ THỐNG điều KHIỂN tự ĐỘNG APPLICATION

6 411 1
NG DỤNG THƯ VIỆN ArduinoIO PHẦN mềm MATLAB TRONG hệ THỐNG điều KHIỂN tự ĐỘNG APPLICATION

Đang tải... (xem toàn văn)

Thông tin tài liệu

ỨNG DỤNG THƯ VIỆN ArduinoIO PHẦN MỀM MATLAB TRONG HỆ THỐNG Đ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 MATLAB mơi trường tính tốn số lập trình, thiết kế cơng ty MathWorks Trong trình thiết kế hệ thống điều khiển tự động, Matlab công cụ thiết yếu giúp người thiết kế mơ hình hóa mơ hệ thống, ngồi Matlab phần hệ thống – thực thuật tốn điều khiển Bản báo cáo trình bày bước ứng dụng thư viện ArduinoIO công cụ Simulink Matlab để thực thu thập liệu, điều khiển hệ thống điều khiển tự động thực ví dụ 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 Mở đầu luật điều khiển, kết nối với máy tính, MATLAB mơi trường tính tốn thiết bị Arduino khác, thiết bị điện số lập trình, thiết kế cơng ty tử khác MathWorks MATLAB cho phép tính tốn Thư viện ArduinoIO thư viện số với ma trận, vẽ đồ thị hàm số hay biểu đồ công cụ Simulink hỗ trợ bo thơng tin, thực thuật tốn, tạo giao mạch Arduino làm việc với Matlabdiện người dung, liên kết với chương Simulink Kết hợp bo mạch Arduino trình máy tính viết nhiều ngơn ngữ lập thư viện ArduinoIO, Matlab tiến hành trình khác truyền thơng kết nối thiết bị thu thập liệu, thực thuật toán điều thực qua cổng kết nối nối tiếp, song song khiển dễ dàng để điều khiên đối tượng thực máy tính Với thư viện Toolbox, MATLAB cho phép mơ tính tốn, Bo mạch Arduino thư viện thực nghiệm nhiều mơ hình thực tế ArduinoIO 2.1 Bo mạch Arduino kỹ thuật Các bo mạch Arduino thật bo mạch vi Đặc biệt kết hợp với bo mạch thu thập liệu, Matlab đóng vai trò xử lý dùng để lập trình tương tác với trung tâm điều khiển hệ thống điều thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Đặc điểm khiển số Arduino hệ thống sản xuất bo bật Arduino môi trường phát triển ứng mạch mã nguồn mở hình thành phát dụng dễ sử dụng, với ngôn ngữ triển từ năm 2005 Do bo mạch mã lập trình học cách nhanh chóng nguồn mở nên đến hệ thống phát với người am hiểu điện tử triển mạnh mẽ có thư viện hỗ trợ cho lập trình Và điều làm nên tượng người sử dụng đa dạng, phong phú Là Arduino mức giá thấp tính thiết bị phần cứng, Arduino 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 thực cài đặt xong giao diện chương trình sau: Bo mạch ArduinoUNO bo mạch thông dụng ArduinoUno sử dụng chip Atmega328 có 14 chân vào/ra sơ, chân vào tương tự, thạch anh dao động 16Mhz Một số thông số kỹ thuật 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ự 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 2: Mơi trường lập trình Arduino Để tìm hiểu lập trình cho Arduino tìm hiểu qua ví dụ phần trợ giúp chi tiết Arduino Ví dụ điều khiển tốc độ động chiều 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 Upload chương trình cho Arduino hoạt động, ngồi USB nguồn cho Arduino - Nguồn cấp 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 tải từ trang web http://arduino.cc/en/Main/Software Sau 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 gói mã lập trình m cho khối môi trường Simulink Để sử dụng thư viện này, Matworks khuyến cáo sử dụng phiên Matlab 2012a trở lên Các bước cài đặt thư viện ArduinoIO: - Tải 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 thư mục ArduinoIO/pde - Thêm thư viện ArduinoIO cho Matlab/Simulink: Đưa thư mục làm việc Matlab đến thư mục ArduinoIO Chạy tệp install_arduino.m để thêm thư viện ArduinoIO cho Simulink 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 nhận kết từ 0÷1024 tương ứng với giá trị điện áp đầu vào tương tự khai báo - Khối chức Arduino Digital Read: đọc giá trị đầu vào số Arduino Kết khối theo đầu vào số khai báo - Khối chức Arduino Digital Write: ghi giá trị đầu số khai báo - Khối chức Arduino Analog Write: xuất giá trị tương tự đầu tương tự Arduino Arduino coi chân có chức điều khiển PWM chân xuất tín hiệu tương tự Do Arduino sử dụng ghi 8bit để điều khiển PWM nên giá trị khối Arduino Analog Write nhận từ 0÷255 tương tứng với xung PWM có độ rộng xung từ 0÷100% Tần số PWM ArduinoUNO 980Hz - Khối chức Encoder Read: thiết lập đọc giá trị đếm xung Arduino Thư viện ArduinoIO hỗ trợ cảm biến tốc tộ mã hóa dạng xung (Encoder) loại tương đối kênh lệch pha 90o điện Trên bo mạch ArduinoUNO có chân hỗ trợ nhận tín hiệu xung từ Encoder ArduinoUNO tăng giá trị đếm có thay đổi trạng thái tín hiệu xung Encoder tùy theo chiều quay đĩa Encoder Do đếm theo sườn xung nên ArduinoUNO thực tăng độ phân giải Encoder lên lần Kết khối số xung ArduinoUNO đếm 100ms - Khối chức Encoder Reset - Khối chức DC Motor: điều khiển động chiều Khối yêu cầu phải sử dụng bo mạch điều khiển động chiều Arduino - Khối chức Stepper Motor: điều khiển động bước Khối yêu cầu phải sử dụng bo mạch điều khiển động bước Arduino - Khối chức Servo Read, Servo Write: điều khiển động servo Các khối thư viện ArduinoIO: Hình 1: Thư viện ArduinoIO - Khối chức 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 tạo 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 kết nối vào cổng giao tiếp - Khối chức Real-Time Pacer: Cài đặt cho Simulink chạy với thời gian thực - Khối chức Arduino Analog Read: đọc giá trị ADC đầu vào analog Arduino Do bo mạch ArduinoUNO 3 Sử dụng bo mạch ArduinoUNO thư viện ArduinoIO điều khiển tốc độ động chiều 3.1 Thông số động 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ơ đồ ngun 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 khối thư viện ArduinoIO để xây dựng cấu trúc điều khiển hệ thống với điều khiển thực Matlab/Simulink hình Chi tiết khối Động chiều (DCM) gồm: - Đọc tín hiệu tốc độ động cơ, sử dụng khối Encoder Read 3.1 Sơ đồ cấu trúc điều khiển hệ thống n* (-) Bộ điều khiển Bộ biến đổi Động chiều n Hình 4: Sơ đồ cấu trúc hệ 3.2 Sơ đồ nguyên lý hệ thống Động chiều Bộ biến đổi xung áp Mạch tạo tín hiệu đặt Bộ ghép nối Arduino Tín hiệu phản hồi tốc độ Máy tính (Matlab/Simulink) - Xuất tín hiệu từ điều khiển biến đổi (xuất tín hiệu PWM), sử dụng khối AnalogWrite Setup Real-Time Pacer Arduino1 Speedup = COM2 Dir Current ArIO Setup Real-Time Pacer Dong dien n_err SP ref udk x' =PID Ax+Bu Controller 1000 Current y = Cx+Du SP Speed Toc Toc 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 độ động Đáp ứng tốc độ động với tín hiệu đặt Nref = 1000 v/ph Hình Sai lệch tốc độ động không tải với tín hiệu đặt Từ hình hình ta thấy: - Đáp ứng tốc độ động ln bám theo tín hiệu đặt - Thời gian xác lập nhanh, khoảng 0.6s - Lượng điều chỉnh nhỏ - Bộ điều khiển thực Matlab/Simulink điều khiển hệ thống đạt chất lượng tốt Hình Đáp ứng tốc độ động Sai lêch tốc độ động so với tín hiệu Kết luận Từ kết nghiên cứu thực nghiệm ta thấy: Kết hợp Matlab/Simulink bo mạch Arduino với thư viện ArduinoIO thực tơt việc thu thập liệu, tính tốn điều khiển hệ thống điều khiển tự động Ngoài ra, thư viện ArduinoIO thư viện mã nguồn mở nên người dùng hoàn tồn chỉnh sửa, thêm, bớt cơng cụ cần thiết cho ứng dụng cụ thể Có thể khai thác triệt để khả tính tốn mạnh mẽ thực thuật toán phức tạp Matlab để điều khiển hệ thống điều khiển tự động phức tạp, u cầu lượng tính tốn lớn đặt: 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 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 kỹ thuật, 1996 [3] Arduino, http://arduino.cc [4] Mathworks, http://mathworks.com ... liệu, tính tốn điều khiển hệ th ng điều khiển tự đ ng Ngoài ra, thư viện ArduinoIO thư viện mã nguồn mở nên ng ời d ng hồn tồn chỉnh sửa, thêm, bớt c ng cụ cần thiết cho ng d ng cụ thể Có thể... 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 Sử d ng khối thư viện ArduinoIO để xây d ng cấu trúc điều khiển. .. Matlab để điều khiển 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 đặt: 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

Ngày đăng: 27/10/2019, 13:46

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan