1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền

48 1 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế Mô hình Hệ thống Điều khiển Tự động Quá trình Ổn Định Tốc Độ của Băng Chuyền
Tác giả Nguyễn Tiến Anh, Lê Duy Đức, Phạm Văn Hải, Đoàn Văn Duy Lên
Người hướng dẫn TS. Lê Thị Thúy Nga
Trường học Trường Đại học Giao Thông Vận Tải
Chuyên ngành Kỹ thuật tự động hóa
Thể loại Báo cáo kết thúc học phần
Năm xuất bản 2025
Thành phố Hà Nội
Định dạng
Số trang 48
Dung lượng 1,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • I. TỔNG QUAN ĐỀ TÀI (5)
    • 1. Giới thiệu đề tài (5)
    • 2. Lí do chọn đề tài (5)
    • 3. Mục tiêu đề tài (6)
    • 4. Phương pháp thực hiện (6)
  • II. CƠ SỞ LÝ THUYẾT (6)
    • 1. Khái quát về PID (7)
    • 2. Khái quát về vi điều khiển (10)
  • III. THIẾT KẾ VÀ THI CÔNG (12)
    • 1. Sơ đồ khối hệ thống (12)
    • 2. Thiết bị cho mô hình thực tế (12)
      • 2.1. Vi điều khiển Arduino Uno R3 (12)
      • 2.2. Module L298N (16)
      • 2.3. Động cơ encoder JGB37 – 520 (24)
      • 2.4. Màn hình LCD 16x2 x I2C (27)
      • 2.5. Một số linh kiện khác (30)
    • 3. Sơ đồ nối dây mô hình thực tế (34)
  • IV. THIẾT KẾ PHẦN MỀM (35)
    • 1. Lưu đồ thuật toán (35)
    • 2. Lập trình (36)
    • 3. Mô phỏng trên phần mềm Proteus (40)
  • V. KẾT QUẢ THỰC NGHIỆM (41)
    • 1. Mô hình thực tế sau khi thiết kế (42)
    • 2. Kết quả thực nghiệm (43)
  • VI. KẾT LUẬN (45)
    • 1. Kết quả đạt được (45)
    • 2. Hạn chế của đồ án (45)
    • 3. Hướng phát triển (46)

Nội dung

Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến Tiến sĩ Lê Thị Thúy Nga – giảng viên hướng dẫn, người đã tận tâm hỗ trợ, định hướng và đồng hành cùng nhóm trong suốt quá trình nghiên c

CƠ SỞ LÝ THUYẾT

Khái quát về PID

PID, viết tắt của Proportional Integral Derivative, là cơ chế phản hồi trong các vòng điều khiển, đóng vai trò quan trọng trong hệ thống điều khiển công nghiệp hiện đại.

Bộ điều khiển vi tích phân tỉ lệ (PID) là loại bộ điều khiển phổ biến nhất trong các hệ thống phản hồi, giúp tối ưu hóa quá trình kiểm soát bằng cách tính toán sai số giữa giá trị đo và giá trị mong muốn PID hoạt động bằng cách điều chỉnh đầu vào để giảm thiểu sai số, đặc biệt hữu ích khi không có kiến thức về mô hình toán học của hệ thống Để đạt hiệu quả tối đa, các thông số PID cần được điều chỉnh phù hợp với đặc thù của từng hệ thống, mặc dù kiểu điều khiển vẫn giữ nguyên Việc thiết lập và tối ưu hóa các tham số PID đóng vai trò quan trọng trong việc nâng cao hiệu suất kiểm soát của hệ thống.

Bộ điều khiển PID thường được sử dụng trong các hệ thống điều khiển vòng kín có tín hiệu phản hồi để duy trì ổn định và chính xác Nhiệm vụ chính của PID là tính toán giá trị sai số giữa giá trị đo thực tế của biến đổi và giá trị đặt mong muốn, từ đó điều chỉnh hệ thống phù hợp Việc sử dụng PID giúp tối ưu hiệu suất hoạt động của hệ thống điều khiển, đảm bảo phản hồi nhanh chóng và chính xác hơn.

Bộ thiết bị giúp giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào một cách chính xác Để đạt được hiệu quả tối ưu từ hệ thống, cần điều chỉnh các thông số của PID dựa trên đặc điểm riêng của hệ thống đó Việc điều khiển sẽ giữ nguyên, tuy nhiên, thông số PID phù hợp sẽ phụ thuộc vào tính chất cụ thể của từng hệ thống để đảm bảo hiệu quả hoạt động tốt nhất.

Một cách đơn giản nhất để hiểu về PID như sau:

- P: là phương pháp điều chỉnh tỉ lệ, giúp tạo ra tín hiệu điều chỉnh tỉ lệ với sai lệch đầu vào theo thời gian lấy mẫu

Điều khiển tích phân là phương pháp điều chỉnh nhằm giảm sai lệch theo thời gian về 0, giúp kiểm soát tổng sai số tức thời và sai số tích lũy trong hệ thống Tích phân của sai lệch theo thời gian lấy mẫu thể hiện tổng lỗi tích lũy, từ đó giúp điều khiển chính xác hơn trong các hệ thống tự động Phương pháp này đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất và ổn định của các quá trình điều khiển tự động.

Điều khiển vi phân là quá trình tạo ra tín hiệu điều chỉnh dựa trên vi phân của sai lệch, giúp phản ứng nhanh chóng với các thay đổi của đầu vào Tỷ lệ điều chỉnh của bộ điều khiển phụ thuộc vào thời gian, với thời gian càng lớn thì phạm vi điều chỉnh vi phân càng mạnh, từ đó bộ điều khiển phản ứng với sự biến đổi của đầu vào một cách nhanh hơn và hiệu quả hơn.

Hình 2.1: Bộ điều khiển PID

Ta có công thức toán học của bộ điều khiển PID như sau:

𝑑𝑡𝑒(𝑡) Với e(t) là tín hiệu vào bộ điều khiển, u(t) là tín hiệu ngõ ra bộ điều khiển

- 𝐾 𝑃 : là khâu tỉ lệ Nó tạo ra tín hiệu nhằm điều chỉnh tỉ lệ và sai lệch đầu vào với thời gian lấy mẫu

Trong hệ thống điều chỉnh, 𝐾 𝐼 ∫ 𝑒(𝑡)𝑑𝑡 đại diện cho phần tích phân của tín hiệu lỗi, giúp giảm thiểu sai lệch về 0 Quá trình tích phân này thực hiện bằng cách tạo ra và điều chỉnh tín hiệu điều khiển dựa trên tích lũy lỗi theo thời gian Khi thời gian ngày càng nhỏ, việc hiệu chỉnh tích phân trở nên mạnh mẽ hơn, từ đó giảm thiểu sai lệch hiệu quả hơn trong hệ thống điều khiển.

Trong hệ thống kiểm soát, 𝑑𝑡 tượng trưng cho khâu vi phân, có vai trò tạo và điều chỉnh tín hiệu sao cho phù hợp với tốc độ thay đổi của sai lệch đầu vào Khác với các phương pháp khác, hiệu chỉnh vi phân trở nên mạnh mẽ hơn khi thời gian lớn, giúp phản ứng nhanh chóng với những biến đổi đột ngột của đầu vào Điều này đảm bảo hệ thống duy trì ổn định và đáp ứng linh hoạt với các yếu tố thay đổi trong quá trình vận hành.

- Tín hiệu điều khiển là tổng của 3 thành phần: Tỉ lệ, tích phân, vi phân

- Hàm truyền của bộ điều khiển PID:

Hàm điều khiển u(t) có dạng u(t) = Kp * e(t), phản ánh mối quan hệ tuyến tính giữa tín hiệu điều khiển và độ lệch Tác dụng của thành phần tích phân đơn giản là điều khiển dựa trên sai lệch tích hợp, giúp tín hiệu điều khiển phản hồi theo sai lệch điều khiển Khi sai lệch e(t) lớn ban đầu, tín hiệu điều khiển cũng lớn, và giảm dần khi sai lệch giảm, đến khi e(t) = 0 thì u(t) cũng bằng 0 Một hạn chế của phương pháp này là khi sai lệch đổi dấu, tín hiệu điều khiển cũng sẽ đổi dấu, có thể gây ảnh hưởng đến ổn định của hệ thống.

Thành phần P có ưu điểm nổi bật là tác động nhanh chóng và dễ dàng thực hiện Hệ số tỷ lệ Kp càng cao, tốc độ đáp ứng của hệ thống càng nhanh, góp phần quan trọng trong giai đoạn đầu của quá trình điều khiển quá độ.

Khi hệ số tỷ lệ Kp càng lớn, tín hiệu điều khiển phản ứng mạnh mẽ hơn, dẫn đến dao động lớn và giảm độ ổn định của hệ thống Điều này làm hệ trở nên nhạy cảm hơn với nhiễu do môi trường gây ra Ngoài ra, đối với các hệ không có đặc tính tích phân, việc sử dụng bộ điều khiển P vẫn gặp phải hiện tượng sai lệch tĩnh, ảnh hưởng đến chính xác của hệ thống điều khiển.

Thành phần tích phân trong hệ thống điều khiển có tác dụng điều chỉnh tín hiệu điều khiển dựa trên tích phân của sai lệch, giúp giảm thiểu sai số về lâu dài Khi tồn tại một sai lệch điều khiển dương, thành phần tích phân luôn làm tăng tín hiệu điều khiển, còn khi sai lệch âm thì làm giảm tín hiệu điều khiển, không phụ thuộc vào kích thước của sai lệch Điều này đảm bảo rằng, ở trạng thái ổn định, sai lệch sẽ dần bị triệt tiêu, cụ thể là e(∞) = 0 Đây chính là một trong những ưu điểm nổi bật của thành phần tích phân trong hệ thống kiểm soát tự động.

Thành phần tích phân trong bộ điều khiển có nhược điểm chính là phải mất thời gian để đợi e(t) về 0, dẫn đến đặc tính tác động chậm hơn Ngoài ra, thành phần tích phân có thể làm xấu đi khả năng ổn định và ảnh hưởng tiêu cực đến đặc tính động học của hệ thống, thậm chí gây mất ổn định.

Người ta thường sử dụng bộ điều khiển PI hoặc PID thay vì bộ I đơn thuần nhằm nâng cao tốc độ đáp ứng của hệ thống Các bộ điều khiển này không chỉ giúp cải thiện khả năng phản hồi nhanh mà còn đảm bảo các yêu cầu về động học của hệ thống được duy trì chính xác Việc chọn bộ PID phù hợp là yếu tố quan trọng để tối ưu hiệu suất hoạt động của hệ thống điều khiển tự động.

Thành phần vi phân (D) u(t) = Kd de(t)/dt nhằm mục đích cải thiện sự ổn định của hệ kín Nó giúp dự đoán phản ứng của hệ dựa trên tốc độ và chiều hướng thay đổi của sai lệch e(t), từ đó nâng cao tốc độ đáp ứng và giảm thiểu ảnh hưởng của độ trễ thời gian trong quá trình điều khiển Thành phần này đóng vai trò quan trọng trong việc tăng cường khả năng phản hồi nhanh chóng và ổn định của hệ thống điều khiển kín.

+ Một ưu điểm nữa là thành phần vi phân giúp ổn định một số quá trình mà bình thường không ổn định được với các bộ P hay PI

+ Nhược điểm của thành phần vi phân là rất nhạy với nhiễu do hay của giá trị đặt do tính đáp ứng nhanh nếu ở trên

Các phương pháp xác định được các thông số KP, KI, KD:

- Phương pháp phản hồi rơ le

- Phương pháp tối ưu độ lớn và phương pháp tối ưu đối xứng

- Phương pháp gán thời gian xác lập

Khái quát về vi điều khiển

Vi điều khiển (Microcontroller Unit - MCU) là một máy tính thu nhỏ tích hợp trong một vi mạch (IC), được thiết kế riêng để điều khiển các thiết bị điện tử Đây là thành phần quan trọng trong các hệ thống tự động hóa và điện tử, giúp quản lý và điều chỉnh hoạt động của các thiết bị một cách chính xác và hiệu quả Vi điều khiển mang lại khả năng tự lập trình, tiết kiệm không gian và chi phí, đồng thời đóng vai trò trung tâm trong các dự án điện tử Các loại vi điều khiển phổ biến như Arduino, STM32 hay PIC thường được sử dụng trong nhiều ứng dụng từ dân dụng đến công nghiệp.

Nó là một hệ thống khép kín bao gồm:

+ Bộ vi xử lý (CPU) với hiệu năng vừa đủ và chi phí thấp,

+ Bộ nhớ chương trình (Flash/ROM) và bộ nhớ dữ liệu (RAM),

+ Các ngoại vi tích hợp như cổng vào/ra (GPIO), bộ chuyển đổi tín hiệu tương tự – số

(ADC), số – tương tự (DAC), bộ định thời (timer), bộ đếm (counter), và các giao thức truyền thông như UART, SPI, I2C

Vi điều khiển là thành phần chính trong các hệ thống nhúng (embedded systems), giúp điều khiển, giám sát và tương tác với các thiết bị khác Nó có mặt trong hầu hết các thiết bị điện tử hiện đại như máy giặt, lò vi sóng, đầu đọc DVD, máy lạnh, quạt điều khiển từ xa, lò nướng, cùng nhiều sản phẩm công nghiệp và dân dụng khác.

→ Các dòng vi điều khiển phổ biến hiện nay

- PIC (Peripheral Interface Controller) – Microchip

PIC là một trong những dòng vi điều khiển lâu đời và phổ biến nhất do Microchip Technology phát triển, nhờ vào kiến trúc đơn giản, độ tin cậy cao và dễ lập trình Với mức giá hợp lý, PIC được sử dụng rộng rãi trong các hệ thống công nghiệp và tự động hóa Đặc biệt, PIC rất phổ biến trong giảng dạy tại các trường đại học và cao đẳng, giúp sinh viên dễ dàng tiếp cận và học lập trình vi điều khiển.

- Các dòng phổ biến: PIC16F, PIC18F

+ IDE: MPLAB X, trình biên dịch XC8

+ Ứng dụng: Điều khiển máy móc, cảm biến, thiết bị điện tử gia dụng

STM32 là dòng vi điều khiển 32-bit sử dụng lõi ARM Cortex-M do STMicroelectronics phát triển, mang lại hiệu năng mạnh mẽ, tiêu thụ năng lượng thấp và đa dạng lựa chọn cấu hình Sản phẩm này phù hợp cho các ứng dụng từ đơn giản đến các hệ thống thời gian thực phức tạp, đáp ứng nhu cầu phát triển công nghệ ngày càng cao.

+ Các dòng phổ biến: STM32F1, F4, G0, L4

+ IDE: STM32CubeIDE, Keil uVision, PlatformIO

+ Ứng dụng: Robot, điều khiển băng tải, thiết bị công nghiệp, thiết bị IoT

+ Ra mắt năm 2006, Arduino không phải là một loại vi điều khiển riêng biệt, mà là một nền tảng phát triển mã nguồn mở sử dụng phần cứng dựa trên vi điều khiển AVR (đặc biệt là ATmega328P) và phần mềm đơn giản dễ dùng (Arduino IDE) Arduino cho phép người mới tiếp cận nhanh chóng mà không cần kiến thức sâu về điện tử hoặc lập trình hệ thống

+ Dòng phổ biến: Arduino UNO, Nano, Mega

+ Ứng dụng: Dự án học tập, DIY, robot đơn giản, hệ thống đo lường nhỏ

Hai dòng vi điều khiển tích hợp kết nối không dây nổi bật do Espressif Systems phát triển là ESP8266 và ESP32 Trong đó, ESP8266 cung cấp khả năng Wi-Fi tích hợp, còn ESP32 mở rộng thêm khả năng kết nối Bluetooth bên cạnh Wi-Fi Các dòng vi điều khiển này là giải pháp tối ưu về chi phí cho các ứng dụng IoT, giúp các thiết bị kết nối mạng dễ dàng và hiệu quả hơn.

+ CPU: Tensilica Xtensa (ESP32 có 2 nhân, tốc độ đến 240 MHz)

+ Hỗ trợ lập trình bằng: Arduino IDE, ESP-IDF, MicroPython

+ Ứng dụng: Nhà thông minh, truyền dữ liệu cảm biến, thiết bị điều khiển qua mạng

- AVR – Microchip (trước đây là Atmel)

AVR là dòng vi điều khiển 8-bit nổi bật với các chip dòng ATmega, trong đó ATmega328P được biết đến như là "bộ não" của nhiều board Arduino Với kiến trúc RISC hiện đại, AVR mang lại hiệu suất cao, tiêu thụ điện năng thấp, đồng thời dễ dàng lập trình.

+ IDE: Atmel Studio, Arduino IDE

+ Ứng dụng: Hệ thống nhúng nhỏ gọn, các dự án DIY, thiết bị đo lường đơn giản.

THIẾT KẾ VÀ THI CÔNG

Sơ đồ khối hệ thống

Hình 3.1: Sơ đồ khối tổng quát

Khối điều khiển và khâu xử lý PID đóng vai trò quan trọng trong việc xử lý thông tin và kết hợp hoạt động của ba bộ điều khiển để điều chỉnh các thông số, giúp động cơ duy trì tốc độ ổn định một cách chính xác và hiệu quả.

- Hiển thị giá trị tốc độ của động cơ: Giá trị đặt và giá trị thực của động cơ

- Điều khiển thiết bị: Điều khiển động cơ

Hình 3.2: Sơ đồ nguyên lý

Thiết bị cho mô hình thực tế

2.1 Vi điều khiển Arduino Uno R3:

Arduino Uno R3 là một board vi điều khiển (microcontroller) thuộc họ Arduino, nền tảng mã nguồn mở phổ biến dành cho người mới học điện tử và lập trình nhúng Sản phẩm sử dụng vi điều khiển ATmega328P do hãng Atmel (nay thuộc Microchip) sản xuất, mang lại khả năng lập trình đơn giản và linh hoạt cho các dự án điện tử sáng tạo.

Hinh 3.3: Sơ đồ chân của Arduino Uno R3

- Đèn LED : Arduino Uno đi kèm với đèn LED tích hợp được kết nối thông qua chân

13 Cung cấp mức logic HIGH tương ứng ON và LOW tương ứng tắt

Vin là điện áp đầu vào cung cấp cho mạch Arduino, khác với 5V từ cổng USB, thường được lấy qua jack nguồn với mức điện áp khoảng 7-12VDC để cấp nguồn toàn bộ hệ thống.

Chân 5V trên Arduino được sử dụng để cung cấp điện áp đầu ra cho các linh kiện khác trong dự án của bạn Arduino có thể được cấp nguồn bằng ba cách chính: thông qua cổng USB, chân Vin của bo mạch hoặc giắc nguồn DC, giúp linh hoạt trong việc lựa chọn phương pháp cấp nguồn phù hợp cho từng ứng dụng.

- USB : Hỗ trợ điện áp khoảng 5V trong khi Vin và Power Jack hỗ trợ dải điện áp trong khoảng từ 7V đến 20V

- GND : Chân mass chung cho toàn mạch Arduino

- Reset : Chân reset để thiết lập lại về ban đầu

- IOREF : Chân này rất hữu ích để cung cấp tham chiếu điện áp cho Arduino

- PWM : PWM được cung cấp bởi các chân 3,5,6,9,10, 11 Các chân này được cấu hình để cung cấp PWM đầu ra 8 bit

- SPI : Chân này được gọi là giao diện ngoại vi nối tiếp Các chân 10 (SS), 11 (MOSI),

12 (MISO), 13 (SCK) cung cấp liên lạc SPI với sự trợ giúp của thư viện SPI

- AREF : Chân này được gọi là tham chiếu tương tự, được sử dụng để cung cấp điện áp tham chiếu cho các đầu vào tương tự

- TWI : Chân Giao tiếp TWI được truy cập thông qua thư viện dây Chân A4 và A5 được sử dụng cho mục đích này

- Serial Communication :Giao tiếp nối tiếp được thực hiện thông qua hai chân 0 (Rx) và 1 (Tx)

- Rx : Chân này được sử dụng để nhận dữ liệu trong khi chân Tx được sử dụng để truyền dữ liệu

- External Interrupts (Ngắt ngoài) : Chân 2 và 3 được sử dụng để cung cấp các ngắt ngoài

Hình 3.5: Sơ đồ nguyên lý chan của Arduino Uno R3

Arduino Uno R3 nổi bật với khả năng sử dụng ngay lập tức nhờ vào thiết kế hoàn chỉnh gồm nguồn 5V, bộ ghi, bộ dao động, vi điều khiển, truyền thông nối tiếp, LED và các giắc cắm Điều này giúp người dùng không cần lo lắng về các kết nối lập trình hay giao diện phức tạp, chỉ cần cắm vào cổng USB của máy tính để bắt đầu dự án.

Một trong những ưu điểm lớn của Arduino là sở hữu thư viện các mẫu mẫu có sẵn trong phần mềm, giúp người dùng dễ dàng thực hiện các dự án Ví dụ, để đo điện áp bằng vi điều khiển ATmega8 và hiển thị kết quả trên màn hình máy tính, người dùng thường phải tự học về bộ ADC, giao tiếp nối tiếp và cổng USB truyền dữ liệu, nhưng với thư viện có sẵn của Arduino, quy trình này trở nên đơn giản và tiết kiệm thời gian hơn.

Trong quá trình lập trình Arduino, bạn sẽ nhận thấy các chức năng giúp đơn giản hóa việc mã hóa và tiết kiệm thời gian Một điểm mạnh nổi bật của Arduino chính là khả năng chuyển đổi đơn vị linh hoạt, hỗ trợ lập trình viên thực hiện các dự án dễ dàng và chính xác hơn.

Cấu trúc của Arduino là một nhược điểm đáng kể, đặc biệt trong việc phát triển các dự án yêu cầu kích thước nhỏ gọn Khi xây dựng dự án, người dùng cần tối giản kích thước của thiết bị để phù hợp với mục đích sử dụng Tuy nhiên, với cấu trúc lớn của Arduino, việc này gặp nhiều hạn chế, làm giảm khả năng tích hợp trong các dự án đòi hỏi tính nhỏ gọn và linh hoạt cao.

Khi sử dụng Arduino, cần phải gắn với PCB có kích thước lớn để đảm bảo kết nối và ổn định hoạt động Trong khi đó, nếu bạn làm việc với vi điều khiển nhỏ như ATmega8, việc thiết kế PCB nhỏ gọn sẽ dễ dàng hơn, giúp tối ưu không gian và tiết kiệm chi phí cho dự án của bạn.

Bảng tên chân và chức năng của L298N

OUT1, OUT2 Nối động cơ A

OUT3, OUT4 Nối động cơ B

ENA Bật/tắt hoặc điều chỉnh tốc độ động cơ A (PWM)

IN1, IN2 Điều khiển chiều quay động cơ A

IN3, IN4 Điều khiển chiều quay động cơ B

ENB Bật/tắt hoặc điều chỉnh tốc độ động cơ B

12V Cấp nguồn cho động cơ (thường 12V)

5V Cấp nguồn cho mạch điều khiển (logic)

IC L298N hoạt động như một mạch cầu H đa năng cho phép điều khiển hai động cơ DC độc lập về chiều quay và tốc độ Tín hiệu điều khiển từ vi điều khiển như Arduino được gửi tới các chân IN1, IN2 cho động cơ A và IN3, IN4 cho động cơ B để xác định chiều dòng điện chạy qua từng động cơ, qua đó điều chỉnh chiều quay chính xác Các chân ENA và ENB dùng để kích hoạt hoặc điều chỉnh tốc độ động cơ thông qua tín hiệu PWM, giúp kiểm soát tốc độ linh hoạt hơn Nguồn công suất (thường 12V) cấp qua chân VCC để nuôi động cơ, trong khi nguồn 5V cung cấp logic điều khiển nội bộ, đảm bảo hệ thống hoạt động ổn định Khi kết hợp đúng tín hiệu điều khiển và nguồn phù hợp, L298N có khả năng truyền dòng điện theo cả hai chiều qua động cơ, giúp điều khiển chính xác hoạt động của các motor DC trong các dự án tự chế và robot.

- Để kiểm soát tốc độ - PMW:

Tốc độ của động cơ DC có thể dễ dàng kiểm soát thông qua việc thay đổi điện áp đầu vào Một phương pháp phổ biến để điều chỉnh tốc độ động cơ là sử dụng kỹ thuật Điều chế độ rộng xung (PWM), giúp tối ưu hóa hiệu suất hoạt động và tăng độ chính xác trong điều chỉnh tốc độ của động cơ DC.

PWM là kỹ thuật điều chỉnh điện áp đầu vào bằng cách gửi các xung bật-tắt với tần suất và độ rộng xác định, giúp kiểm soát điện áp trung bình một cách hiệu quả Giá trị điện áp trung bình của PWM tỷ lệ thuận với độ rộng các xung, gọi là chu kỳ nhiệm vụ, giúp tối ưu hóa hiệu suất và tiết kiệm năng lượng trong hệ thống điện.

Chu kỳ làm việc ảnh hưởng trực tiếp đến điện áp trung bình áp dụng cho động cơ DC, trong đó chu kỳ làm việc càng cao thì điện áp trung bình càng cao, giúp động cơ tăng tốc độ Ngược lại, chu kỳ làm việc ngắn hơn sẽ làm giảm điện áp trung bình, dẫn đến giảm tốc độ của động cơ DC.

Hình ảnh bên dưới cho thấy kỹ thuật PWM với nhiều chu kỳ hoạt động và điện áp trung bình khác nhau:

Hình 3.8: Kỹ thuật điều chế độ rộng xung (PWM)

- Cầu H: đề điều khiển hướng quay:

Hướng quay của động cơ DC có thể được điều khiển dễ dàng bằng cách thay đổi cực tính của điện áp đầu vào Một phương pháp phổ biến để thực hiện điều này là sử dụng cầu H, giúp điều chỉnh chiều quay của động cơ một cách linh hoạt và chính xác Việc ứng dụng cầu H vào điều khiển động cơ DC không những đơn giản hóa quá trình điều khiển mà còn nâng cao hiệu suất và độ bền của hệ thống.

+ Mạch cầu H bao gồm bốn công tắc được sắp xếp theo hình chữ H, với động cơ ở giữa

Hình 3.9: Nguyên lý hoạt động mạch

+ Ở giữa mô-đun là một con chip lớn màu đen với bộ tản nhiệt chắc chắn – L298N

Hình 3.10: Chip điều khiển module L298N

+ Chip L298N chứa hai cầu H tiêu chuẩn có khả năng điều khiển một cặp động cơ

DC, rất lý tưởng để chế tạo nền tảng rô bốt hai bánh

Trình điều khiển động cơ L298N hoạt động trong phạm vi điện áp từ 5V đến 35V, đảm bảo phù hợp với nhiều loại động cơ DC khác nhau Nó còn có khả năng cung cấp dòng điện liên tục lên đến 2A cho mỗi kênh, giúp đảm bảo hiệu suất hoạt động ổn định và mạnh mẽ cho các dự án của bạn Sản phẩm lý tưởng để điều khiển hầu hết các loại động cơ DC, đáp ứng nhu cầu về công suất và độ bền cao.

Thông số kỹ thuật: Điện áp đầu ra của động cơ 5V-35V Điện áp đầu ra của động cơ (Khuyến nghị) 7V – 12V Điện áp đầu vào logic 5V-7V

Dòng điện liên tục trên mỗi kênh 2A

Công suất tản nhiệt tối đa 25W

Mô-đun điều khiển động cơ L298N nhận nguồn điện qua đầu nối vít 3 chân với bước vít 3,5mm, đảm bảo kết nối vững chắc Nó có hai chân nguồn đầu vào quan trọng là VS và VSS, giúp điều chỉnh hiệu quả hoạt động của động cơ Sử dụng mô-đun L298N, người dùng có thể dễ dàng kiểm soát và điều khiển các loại động cơ một cách linh hoạt và ổn định.

+ Các kênh đầu ra của trình điều khiển động cơ L298N, OUT1 và OUT2 cho động cơ

Sơ đồ nối dây mô hình thực tế

Hình 3.38: Sơ đồ đấu nối

Hệ thống sử dụng hai bộ nguồn riêng biệt:

Bộ nguồn 5V gồm 4 pin AA cung cấp điện cho Arduino, encoder, nút nhấn và màn hình LCD, đảm bảo hoạt động ổn định của các thiết bị điều khiển Ngoài ra, bộ nguồn 12V với 8 pin AA riêng biệt cung cấp năng lượng cho động cơ DC thông qua driver L298N, giúp điều khiển chính xác và hiệu quả của motor trong dự án.

+ Tất cả các GND của nguồn, Arduino, L298N và LCD được nối chung để đảm bảo đồng bộ điện áp điều khiển

+ Chân số 3 (INT1) được kết nối với kênh A của encoder (dây màu vàng) để đếm xung thông qua ngắt ngoài

+ Chân số 6 được cấu hình là đầu ra PWM (biến PWM_salida) để điều chỉnh tốc độ động cơ

+ Chân A4 và A5 được sử dụng cho giao tiếp I2C để điều khiển LCD

+ Hai nút nhấn được kết nối với chân số 8 và 9 của Arduino, mỗi nút được kéo xuống GND thông qua điện trở 10kΩ

- Kết nối động cơ DC có encoder (JGB37-520)

+ Động cơ có hai dây lớn kết nối với đầu ra OUT1 và OUT2 của module L298N + Encoder gồm 4 dây nhỏ:

Dây đỏ: VCC (nối 5V từ Arduino)

Dây vàng: Encoder A (nối chân số 3 Arduino)

Dây xanh: Encoder B (chưa sử dụng trong sơ đồ này)

Chân ENA kết nối với chân số 6 của Arduino để nhận tín hiệu PWM điều khiển tốc độ động cơ Trong sơ đồ hiện tại, các chân IN1 và IN2 không được sử dụng, nhưng thường được sử dụng để điều khiển chiều quay của động cơ Việc kết nối đúng các chân này giúp đảm bảo hoạt động chính xác của hệ thống điều khiển động cơ, từ đó tối ưu hóa hiệu suất và độ bền của dự án.

+ Chân VCC cấp nguồn động cơ từ 12V pin AA

+ GND được nối về GND chung hệ thống

- Kết nối màn hình LCD I2C 16x2

Màn hình được kết nối với Arduino thông qua giao tiếp I2C:

THIẾT KẾ PHẦN MỀM

Lưu đồ thuật toán

Hình 4.1: Lưu đồ thuật toán

Lập trình

LiquidCrystal_I2C lcd(0x27, 16, 2); const int PWM_salida = 6; const int pinA = 3; const int startButton = 8; const int stopButton = 9; volatile int contador = 0; unsigned long previousMillis = 0; const unsigned long INTERVAL = 100; volatile unsigned long lastInterruptTime = 0;

// PID float Kp = 4; float Ki = 0.30; float Kd = 0.125; int setpoint = 900; float error = 0, last_error = 0; float integral = 0; float output = 0;

// Lọc phản hồi float filtered_speed = 0; const float alpha = 0.1;

This program initializes control variables, including previous setpoint, speed, and output values, to manage motor operations effectively It maintains a boolean flag to track whether the system is currently running, ensuring proper operation states The setup function configures essential hardware pins such as PWM output, encoder input, start, and stop buttons, preparing the system for responsive and safe control An interrupt service routine (encoderISR) is defined to handle encoder signals, facilitating precise speed monitoring and control Proper pinMode settings ensure the hardware interfaces operate correctly, enabling reliable motor control and user interaction.

Serial.begin(115200); attachInterrupt(digitalPinToInterrupt(pinA), encoderISR, RISING); analogWrite(PWM_salida, 0); lcd.init(); lcd.backlight(); lcd.clear();

// Hiển thị ban đầu updateLCD();

// Đọc trạng thái nút if (digitalRead(startButton) == HIGH) { isRunning = true;

} if (digitalRead(stopButton) == HIGH) { isRunning = false; analogWrite(PWM_salida, 0); // Dừng động cơ

This code segment performs real-time speed control by periodically calculating raw speed from a counter, applying a filtering algorithm for stability, and computing the control output using a PID controller It updates the control output via PWM signals, ensuring it stays within the valid range of 0 to 255 The use of interval-based timing ensures precise, consistent adjustments to maintain the setpoint, optimizing performance in embedded systems.

} else { contador = 0; output = 0; filtered_speed = 0;

// Gửi dữ liệu về máy tính

// Cập nhật LCD nếu có thay đổi updateLCD();

// Nhận lệnh từ máy tính if (Serial.available()) {

String cmd = Serial.readStringUntil('\n'); cmd.trim(); if (cmd.startsWith("SET:")) { int newSetpoint = cmd.substring(4).toInt(); if (newSetpoint >= 0 && newSetpoint = 0) {

Kp = newKp; integral = 0; // Reset integral khi thay đổi PID

} else if (cmd.startsWith("KI:")) { float newKi = cmd.substring(3).toFloat(); if (newKi >= 0) {

Ki = newKi; integral = 0; // Reset integral khi thay đổi PID

} else if (cmd.startsWith("KD:")) { float newKd = cmd.substring(3).toFloat(); if (newKd >= 0) {

} void updateLCD() { int speed_int = (int)filtered_speed; int output_int = (int)output; if (setpoint != prev_setpoint || speed_int != prev_speed || output_int != prev_output) { lcd.clear();

// Dòng 1: Hiển thị Setpoint và Process Value lcd.setCursor(0, 0); lcd.print("SP:"); lcd.print(setpoint); lcd.print(" PV:"); lcd.print(speed_int);

// Dòng 2: Hiển thị giá trị PWM lcd.setCursor(0, 1); lcd.print("PWM:"); lcd.print(output_int); prev_setpoint = setpoint; prev_speed = speed_int; prev_output = output_int;

// ISR cho encoder void encoderISR() { unsigned long currentTime = millis(); if (currentTime - lastInterruptTime > 0) { contador++; lastInterruptTime = currentTime;

Mô phỏng trên phần mềm Proteus

Hình 4.1: Hình ảnh mô phỏng trên Proteus

KẾT QUẢ THỰC NGHIỆM

Mô hình thực tế sau khi thiết kế

- Sau khi thiết kế và lắp ráp ta được mô hình:

Hình 5.1: Hình ảnh mô hình thực nghiệm

Hình 5.2: Hình ảnh hiển thị trên LCD 16x2 x I2C

- Hệ thống bao gồm: Arduino Uno R3, động cơ encoder JGB37 – 520 gắn với băng bải có kích thước 10cm x50 cm, LCD16x2 x I2C, Module L298N, nguồn 12V cho động cơ, nguồn 5V.

Kết quả thực nghiệm

❖ Lựa chọn các thông số và thời gian lấy mẫu cho bộ điều khiển PID trong thực nghiệm:

Ký hiệu Mô tả Giá trị

Setpoint Giá trị đặt 900 xung/s

❖ Biểu đồ số xung/s phát ra khi thực nghiệm:

Hình 5.3: Biểu đồ đáp ứng ngõ ra khi Kp = 7, Ki = 0, Kd = 0

Hình 5.4: Biểu đồ đáp ứng ngõ ra của động cơ khi Kp = 7, Kp = 0.4, Kd = 0

Hình 5.5: Biểu đồ đáp ứng ngõ ra của động cơ khi Kp = 7, Kp = 0.4, Kd = 0.2

Hình 5.6: Biểu đồ đáp ứng ngõ ra của động cơ khi Kp = 4, Kp = 0.3, Kd = 0.125

➢ Nhận xét: Với Kp = 4, Kp = 0.3, Kd = 0.125 → Băng tải hoạt động ổn định ít nhiễu

- PV dao động xung quanh giá trị setpoint với sai số nhỏ

- PWM dao động đều, không có hiện tượng tăng dần hay giảm dần → Bộ điều khiển hoạt động theo vòng lặp kín và đáp ứng tốt với sai lệch.

Ngày đăng: 29/05/2025, 09:49

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Bộ điều khiển PID - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 2.1 Bộ điều khiển PID (Trang 8)
Hinh 3.3: Sơ đồ chân của Arduino Uno R3 - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
inh 3.3: Sơ đồ chân của Arduino Uno R3 (Trang 13)
Hình 3.5: Sơ đồ nguyên lý chan của Arduino Uno R3 - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.5 Sơ đồ nguyên lý chan của Arduino Uno R3 (Trang 15)
Hình 3.6: Hình ảnh Driver L298N - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.6 Hình ảnh Driver L298N (Trang 16)
Bảng tên chân và chức năng của L298N - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Bảng t ên chân và chức năng của L298N (Trang 17)
Hình 3.9: Nguyên lý hoạt động mạch - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.9 Nguyên lý hoạt động mạch (Trang 19)
Hình 3.15: Bộ điều chỉnh 5V và Jumper tích hợp - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.15 Bộ điều chỉnh 5V và Jumper tích hợp (Trang 23)
Sơ đồ đấu nối giao tiếp I2C với LCD 16×2 cùng Adruino UNO: - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
u nối giao tiếp I2C với LCD 16×2 cùng Adruino UNO: (Trang 30)
Hình 3.23: Breadboard - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.23 Breadboard (Trang 31)
Hình 3.38: Sơ đồ đấu nối - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 3.38 Sơ đồ đấu nối (Trang 34)
Hình 4.1: Lưu đồ thuật toán - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 4.1 Lưu đồ thuật toán (Trang 36)
Hình 4.1: Hình ảnh mô phỏng trên Proteus - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 4.1 Hình ảnh mô phỏng trên Proteus (Trang 41)
Hình 5.1: Hình ảnh mô hình thực nghiệm - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 5.1 Hình ảnh mô hình thực nghiệm (Trang 42)
Hình 5.2: Hình ảnh hiển thị trên LCD 16x2 x I2C - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 5.2 Hình ảnh hiển thị trên LCD 16x2 x I2C (Trang 42)
Hình 5.4: Biểu đồ đáp ứng ngõ ra của động cơ khi Kp = 7, Kp = 0.4, Kd = 0 - Đề tài thiết kế mô hình hệ thống Điều khiển tự Động quá trình Ổn Định tốc Độ của băng chuyền
Hình 5.4 Biểu đồ đáp ứng ngõ ra của động cơ khi Kp = 7, Kp = 0.4, Kd = 0 (Trang 44)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w