Trang chủ

ỨNG DỤNG ARDUINO VÀ THƯ VIỆN TRÊN MATLAB TRONG THIẾT KẾ BỘ ĐIỀU KHIỂN ĐỘNG CƠ SERVO

Ngày đăng: 09:28 - 21/02/2023 Lượt xem: 4.266
Tác giả: TS. Ngô Kiên Trung
     Bộ môn: Kỹ thuật Điện
1. Đặt vấn đề
Hiện nay, xu hướng phát triển ngành Cơ điện tử ngày càng tăng nhằm đáp ứng nhu cầu nhân  lực về lĩnh vực cơ điện. Dùng vi điều khiển hay PLC trong các dây chuyền sản xuất công nghiệp luôn là lựa chọn của các hãng sản xuất thiết bị. Các bài toán điều khiển hệ cơ điện sẽ là trọng tâm để tiếp cận sự phát triển tự động hóa ngành dệt may nói riêng và phát triển của công nghiệp 4.0 nói chung. Việc nghiên cứu các bài toán ứng dụng vi điều khiển trong nhà máy dệt may, mô phỏng một số hoạt động thực tế của động cơ servo là một trong những cách tiếp cận điều khiển các máy may điện tử. Điều khiển chuyển động cho hệ thống được thực hiện qua điều khiển động cơ servo, tín hiệu vị trí từ encoder sẽ được gửi về và so sánh với giá trị đặt của hệ thống, từ đó bộ điều khiển sẽ gửi tín hiệu để điều khiển động cơ sao cho tín hiệu ra bám chặt theo tín hiệu đặt. Nội dung bài báo nhằm giới thiệu thư viện Arduino trên nền Matlab và được sử dụng thiết kế bộ điều khiển cho động cơ servo.
2. Arduino và thư viện trên Matlab
2.1. Giới thiệu tổng quan
Arduino board là một bo mạch vi xử lý dùng để lập trình và tương tác với các thiết bị phần cứng như cảm biến, động cơ và một số thiết bị khác. Arduino được chọn làm bộ não xử lý của rất nhiều các thiết bị từ đơn giản đến phức tạp vì có nhiều ưu điểm như dễ sử dụng, ngôn ngữ lập trình đơn giản, mức giá rất thấp và tính chất nguồn mở cho cả phần cứng, phần mềm. Arduino phát triển thông qua việc cho phép người dùng trên toàn thế giới có thể xây dựng, phát triển và đóng góp vào dự án. Chúng ta có thể điều khiển các vi điều khiển trên board Arduino bằng cách sử dụng ngôn ngữ lập trình C++, được điều khiển biên dịch bởi Arduino IDE và các trình biên dịch đi kèm ra mã máy nhị phân. Với Arduino, dễ dàng kiểm nghiệm các thuật toán điều khiển trong thực tế vì nó kết hợp được với các phần mềm chuyên dụng như Matlab, Labview, ...


Hình 1. Arduino Board
Arduino IDE là một phần mềm mã nguồn mở chính thức được sử dụng để viết và biên dịch mã vào Arduino board trở nên dễ dàng. Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên board. Môi trường IDE chủ yếu chứa hai phần cơ bản: trình chỉnh sửa và trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và tải mã lên Arduino board. Môi trường này hỗ trợ cả ngôn ngữ C và C ++.

Hình 2. Giao diện khởi động Arduino IDE
MATLAB viết tắt của Matrix Laboratory, là phần mềm của hãng Mathworks để lập trình, tính toán số và có tính trực quan rất cao. Hiện nay, MATLAB có đến hàng ngàn lệnh và hàm tiện ích. Ngoài các hàm cài sẵn, MATLAB còn có các lệnh và hàm ứng dụng chuyên biệt trong các toolbox, để mở rộng môi trường MATLAB nhằm giải quyết các bài toán thuộc các phạm trù riêng. Các toolbox khá quan trọng và tiện ích cho người dùng như xử lý tín hiệu số, xử lý ảnh, điện tử công suất, logic mờ, …

Hình 3. Giao diện Matlab
Simulink là một toolbox trong Matlab dùng để mô hình hoá, mô phỏng và phân tích hệ thống. Simulink cũng bao gồm toàn bộ thư viện các khối như khối nhận tín hiệu, các nguồn tín hiệu, các phần tử tuyến tính và phi tuyến nên ta có thể mô phỏng, phân tích và sửa chữa mô hình tại bất kỳ điểm nào.

Hình 4. Giao diện Simulink

2.2. Cài đặt thư viện Arduino trong Matlab/Simulink

Bước1: khởi động MATLAB

Hình 5. Khởi động MATLAB
Bước 2: nhấn Tab Add-Ons trong Home

Hình 6. Nhấp vào Add-ons
Bước 3: chọn Get Hardware Support Packages

Hình 7. Looking For Hardware Packages
Bước 4: mở trình cài đặt gói hỗ trợ và chọn cài đặt từ Internet

Hình 8. Cài đặt gói
Bước 5: cửa sổ tiếp theo xuất hiện hiển thị tất cả các gói có sẵn của MATLAB. Tìm gói Arduino trong danh sách và sau đó nhấp vào để tiếp tục cài đặt. Một cửa sổ sẽ mở ra yêu cầu chi tiết đăng nhập của Tài khoản Mathworks. Nếu bạn chưa có, vui lòng tạo một tài khoản và sau đó tiếp tục. Lưu ý đăng ký cả hai gói có tên là Simulink và MATLAB

Hình 9. Gói Arduino
Xác minh các gói phần cứng đã được cài đặt: sau khi đã hoàn thành việc cài đặt các gói, cần kiểm tra xem chúng có xuất hiện trong MATLAB hay không bằng việc nhập lệnh sau trong cửa sổ lệnh:
a=arduino()
 
Hình 10. Xác minh cài đặt
Nếu có nhiều hơn một bộ vi điều khiển được kết nối với PC, cần kiểm tra số cổng: chuyển đến bảng điều khiển sau đó đến thiết bị và máy in, kiểm tra COM số cổng:

Hình 11. Số cổng
Khi Arduino được kết nối với COM11, cần thay đổi số cổng trong mã trước khi biên dịch nó:
a = arduino(com11, uno)

Hình 12. Số cổng trong mã
2.3. Một số khối chức năng
 
            

 
3. Bài toán điều khiển động cơ servo
3.1. Xây dựng cấu trúc điều khiển
Bài toán điều khiển ở đây là vị trí chính xác của hệ thống được thực hiện qua điều khiển động cơ servo. Khi có sự sai lệch, tín hiệu vị trí từ encoder sẽ được gửi về và được so sánh với giá trị đặt của hệ thống, từ đó bộ điều khiển sẽ gửi tín hiệu để điều khiển động cơ sao cho tín hiệu ra bám chặt theo tín hiệu đặt. Cấu trúc điều khiển hệ thống như hình 21:

Hình 21. Cấu trúc điều khiển hệ thống
Bộ điều khiển PID được thiết kế trên nền Matlab/Simulink và thực hiện kết nối với hệ thống thông qua Arduino board có giao diện như hình 22.

Hình 22. Hệ thống điều khiển động cơ servo qua Arduino

3.2. Thực nghiệm


 Hình 23. Tín hiệu vào là góc 900
 

Hình 24. Kết quả thực nghiệm với đầu vào là góc đặt trước 900

Hình 25. Tín hiệu vào là xung vuông

Hình 26. Kết quả thực nghiệm với đầu vào là xung vuông

Hình 27. Tín hiệu vào là xung hình sine

Hình 28. Kết quả thực nghiệm với đầu vào là xung hình sine
4. Kết luận
Động cơ servo được ứng dụng rộng rãi trong các ngành công nghiệp nói chung và ngành dệt may nói riêng: trong các máy may điện tử, máy đính bọ, máy thùa, ... Bài báo đã giới thiệu thư viện Arduino trên nền Matlab và ứng dụng thiết kế bộ điều khiển động cơ Servo. Với kết quả điều khiển trên thiết bị thực đã đáp ứng yêu cầu chất lượng hệ thống cho thấy khả năng có thể thiết kế bộ điều khiển động cơ Servo cho máy may hoặc các máy công nghiệp khác.
 
TÀI LIỆU THAM KHẢO
[1] Nguyễn Phùng Quang (2006) ,Giáo trình Simulink Matlab, NXB Khoa học và Kỹ thuật
[2] Trương Đình Nhơn, Phạm Quang Huy (2018), Vi điều khiển và ứng dụng  (Hướng dẫn sử dụng Arduino), Nhà xuất bản Thanh Niên
[3] Vũ Quang Hồi (2011),Giáo trình kĩ thuật điều khiển động cơ điện, NXB Giáo Dục

© Bản quyền 2017 thuộc về Trường Đại học công nghiệp dệt may Hà Nội.
Online: 321 Tổng truy cập: 30.183.604