Bối cảnh và vấn đề nghiên cứu

Trong kỹ thuật tự động hóa hiện đại, việc điều khiển chính xác chuyển động và vị trí trong các hệ thống máy móc phức tạp như máy CNC, cánh tay robot công nghiệp hay thiết bị định vị quân sự là bài toán mang tính thách thức cao. Cơ cấu chấp hành trong các hệ thống này chứa nhiều đặc tính phi tuyến phức tạp như ma sát cơ khí, vùng chết và khe hở truyền động. Trong phần lớn các ứng dụng thực tế, nhiều thông số phi tuyến của đối tượng chỉ được biết một phần hoặc hoàn toàn chưa xác định, gây trở ngại cho việc thiết kế bộ điều khiển truyền thống nếu chỉ dựa trên lý thuyết mô hình tuyến tính đơn giản.

Đồ án "Sử dụng DSP giao tiếp Matlab để điều khiển động cơ một chiều" do sinh viên Nguyễn Chí Phát (ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa, Khoa Công nghệ Điện – Điện tử, Trường Đại học Công Thương TP.HCM) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Phú Công nhằm giải quyết bài toán điều khiển tốc độ động cơ DC thông qua thuật toán PID kết hợp nền tảng phần cứng DSP STM32F407VG và môi trường mô phỏng – giám sát MATLAB/Simulink.

Nhiệm vụ cụ thể của đề tài bao gồm 6 nội dung được giao:

  1. Tìm hiểu phương pháp điều khiển PID và áp dụng vào việc điều khiển động cơ DC.
  2. Xây dựng mô hình toán học của động cơ DC dựa trên các thông số định mức.
  3. Mô phỏng hệ thống có sử dụng khâu PID trong môi trường Simulink.
  4. Xây dựng chương trình điều khiển nạp vào mạch DSP.
  5. Thiết kế và thi công phần cứng của hệ thống thực nghiệm.
  6. Hoàn thiện báo cáo đồ án chuyên ngành.

Về đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Động cơ điện một chiều (DC Motor), thuật toán điều khiển PID liên tục và rời rạc, bộ vi xử lý tín hiệu số ARM Cortex-M4 trên bo mạch STM32F407VG Discovery, mạch công suất cầu H L298, cảm biến tốc độ Encoder từ Hall và bộ chuyển đổi UART CP2102.
  • Phạm vi nghiên cứu: Mô hình hóa toán học động cơ DC; mô phỏng đáp ứng hệ thống trên MATLAB/Simulink; lập trình điều khiển nhúng trên STM32F407VG qua bộ công cụ Waijung Blockset; thu thập dữ liệu và giám sát tốc độ qua giao tiếp nối tiếp UART trên máy tính; đánh giá với các chỉ tiêu chất lượng: độ vọt lố không quá 5%, sai số xác lập dưới 2%, thời gian đáp ứng dưới 5 giây. Đề tài được triển khai từ ngày 09/09/2024 đến ngày 15/12/2024 tại Trường Đại học Công Thương TP.HCM.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình toán học

Đề tài dựa trên cơ sở mô hình hóa hệ cơ - điện của động cơ một chiều kích từ độc lập bằng hệ phương trình vi phân:

  1. Phương trình mạch điện phần ứng: $$V = L \frac{di}{dt} + R i + E_b$$ Trong đó: $V$ là điện áp cấp cho động cơ (V), $L$ là điện cảm cuộn dây (H), $R$ là điện trở cuộn dây ($\Omega$), $i$ là dòng điện phần ứng (A), và $E_b$ là sức điện động cảm ứng tỷ lệ với vận tốc góc $\omega$ của rotor theo công thức: $$E_b = K_b \cdot \omega$$ với $K_b$ là hằng số sức điện động ($\text{V}\cdot\text{s/rad}$).

  2. Phương trình chuyển động cơ học: $$J \frac{d\omega}{dt} + B \omega = T_m - T_L$$ Trong đó: $J$ là mô men quán tính của rotor ($\text{kg}\cdot\text{m}^2$), $B$ là hệ số ma sát cơ học ($\text{N}\cdot\text{m}\cdot\text{s}$), $T_L$ là mô men tải cản ($\text{N}\cdot\text{m}$), và $T_m$ là mô men điện từ do dòng điện tạo ra: $$T_m = K_m \cdot i$$ với $K_m$ là hằng số mô men ($\text{N}\cdot\text{m/A}$).

  3. Cơ sở thuật toán điều khiển PID: Hệ thống ứng dụng bộ điều khiển tỉ lệ - tích phân - vi phân (PID) dạng liên tục và rời rạc để triệt tiêu sai số tốc độ:

    • Dạng liên tục: $u(t) = K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \frac{de(t)}{dt}$
    • Dạng rời rạc: phục vụ tính toán số trên vi điều khiển theo chu kỳ lấy mẫu $T$.
    • Các phương pháp xác định tham số PID được khảo sát bao gồm: phương pháp Ziegler-Nichols (xác định qua độ lợi tới hạn $K_u$ và chu kỳ dao động tới hạn $T_u$), phương pháp chạy thử (thử - sai từng khâu $P, I, D$) và công cụ Auto-tuning trên phần mềm.
  4. Phương pháp đo tốc độ bằng cảm biến Encoder: Đo lường phản hồi vị trí và vận tốc quay dựa trên cảm biến Hall 2 kênh pha A và B lệch pha để nhận diện chiều quay. Các công thức chuyển đổi tín hiệu xung sang vận tốc:

    • Tốc độ xung theo thời gian: $\text{Xung/giây} = \frac{\text{Số xung đếm được}}{T}$ ($\text{xung/s}$)
    • Vận tốc quay quy đổi: $\text{Vòng/phút} = \frac{\text{Xung/giây} \times 60}{N}$ (với $N$ là độ phân giải xung/vòng của đĩa mã hóa)
    • Vận tốc góc: $\omega = \frac{2\pi n}{60}$ ($\text{rad/s}$)

Phương pháp nghiên cứu

  • Phương pháp nghiên cứu lý thuyết: Tổng hợp tài liệu chuyên ngành về máy điện một chiều, bộ điều khiển PID, xử lý tín hiệu số (DSP), cấu trúc vi điều khiển dòng STM32F4 và các khối chức năng trong MATLAB/Simulink.
  • Phương pháp mô phỏng và thực nghiệm: Thiết lập mô hình động cơ và thuật toán điều khiển trên Simulink để khảo sát đáp ứng quá độ và xác lập; cấu hình khối Waijung Blockset để xuất mã nguồn C nạp trực tiếp xuống phần cứng STM32F407VG; thử nghiệm vận hành hệ thống phần cứng thực tế ở nhiều dải tốc độ khác nhau.
  • Phương pháp tối ưu hóa: Phân tích dữ liệu phản hồi, so sánh sai số giữa kết quả mô phỏng và thực tế, tinh chỉnh tham số $K_p, K_i, K_d$ để đáp ứng hệ thống đạt chỉ tiêu kỹ thuật đề ra.

Thiết kế và triển khai

Hệ thống điều khiển tốc độ động cơ DC được xây dựng theo kiến trúc vòng kín bao gồm phần cứng điều khiển, mạch công suất, cơ cấu chấp hành và giao diện phần mềm giám sát.

Thông số kỹ thuật của các thiết bị phần cứng

Thiết bị / Module Thông số kỹ thuật chính Vai trò trong hệ thống
STM32F407VG Discovery Vi xử lý ARM 32-bit Cortex-M4, FPU, tần số 168 MHz, Flash 1 MB, SRAM 192 KB, tích hợp mạch nạp ST-Link/V2, 14 bộ đếm Timer, hỗ trợ đến 38 kênh PWM, 6 cổng UART. Mạch xử lý tín hiệu trung tâm: nhận tín hiệu cài đặt, đọc xung Encoder, tính toán thuật toán PID và phát xung PWM.
Module cầu H L298 IC điều khiển L298N, điện áp động cơ 5V – 35V, dòng điện đỉnh 2A/kênh, điện áp logic 5V, công suất tối đa 25W, tần số đóng cắt tối đa 25 kHz. Mạch công suất: nhận tín hiệu PWM và chiều quay từ vi điều khiển để đóng cắt cấp dòng cho động cơ DC.
Động cơ giảm tốc JGA25-370 Điện áp định mức 12VDC, công suất 3W, tốc độ không tải 280 vòng/phút (tối đa rotor 6000 vòng/phút), tốc độ có tải 220 vòng/phút, tỉ số truyền hộp giảm tốc 21:1, tích hợp Encoder Hall 2 kênh A/B (11 xung/kênh/vòng). Cơ cấu chấp hành tạo chuyển động quay và phát tín hiệu xung phản hồi tốc độ.
Mạch USB - UART CP2102 Chip CP2102, mức tín hiệu logic TTL 3.3V/5V, hỗ trợ truyền nhận dữ liệu nối tiếp hai chiều với máy tính. Cầu nối truyền thông nối tiếp giữa STM32F407VG và phần mềm giao diện trên máy vi tính.

Cấu trúc phần mềm và các khối chức năng Simulink

Chương trình điều khiển được thiết kế trực quan trên nền tảng MATLAB Simulink kết hợp thư viện Waijung Blockset của hãng Aimagin, cho phép biên dịch trực tiếp sang mã C (GNU-ARM / MDK-ARM) và nạp xuống vi điều khiển:

  • Khối Target Setup: Khởi tạo cấu hình chip STM32F407VG, thiết lập tần số xung nhịp và các thông số vận hành cơ bản.
  • Khối Timer (Time Base) IRQ: Cấu hình ngắt định thời nhằm đảm bảo chu kỳ lấy mẫu và tính toán giải thuật PID diễn ra chính xác theo thời gian thực.
  • Khối Encoder Read: Kết nối với Timer vi điều khiển ở chế độ đếm xung (Counter) trên 2 kênh ngõ vào để xác định chính xác số xung và chiều quay của động cơ.
  • Khối PID Controller: Nhận sai số giữa giá trị tốc độ đặt và tốc độ đo thực tế, thực hiện thuật toán tính toán tín hiệu điều khiển.
  • Khối Saturation: Giới hạn dải điện áp/tín hiệu điều chế ngõ ra nhằm bảo vệ phần cứng (giới hạn từ 0V đến mức điện áp định mức).
  • Khối Basic PWM: Xuất xung điều chế độ rộng (PWM) với tần số và chu kỳ xác định đến chân kích ENA/ENB của mạch L298.
  • Khối UART Setup & UART Tx: Thiết lập cấu hình truyền thông nối tiếp (Baud rate, Data bits, Parity, Stop bits) và đóng gói dữ liệu dạng mã ASCII để truyền dữ liệu tốc độ thời gian thực lên máy tính phục vụ giám sát bằng phần mềm Terminal.
  • Khối Rate Transition: Đồng bộ tốc độ dữ liệu giữa các khối có chu kỳ lấy mẫu khác nhau trong mô hình.

Nội dung chính theo từng chương

Chương 1. Tổng quan về đề tài

Chương này trình bày lý do chọn đề tài, đối tượng, phạm vi, phương pháp nghiên cứu và mục tiêu kỹ thuật. Đồng thời, tác giả giới thiệu chi tiết cấu tạo, nguyên lý hoạt động và thông số kỹ thuật của các thiết bị phần cứng (bảng mạch STM32F407VG, module L298, module CP2102, động cơ giảm tốc JGA25-370 tích hợp Encoder từ Hall). Chương 1 cũng hệ thống hóa cơ sở lý thuyết về động cơ điện một chiều (cấu tạo Stator, Rotor, cổ góp, chổi than), nguyên lý bộ điều khiển PID (P, I, D), các phương pháp chỉnh định tham số và chức năng chi tiết của các khối chuyên dụng trong thư viện Simulink/Waijung Blockset.

Chương 2. Mô hình hệ thống và thiết kế chương trình điều khiển

Nội dung chương tập trung vào việc mô hình hóa toán học động cơ DC và kiểm chứng thuật toán:

  • Thiết lập hệ phương trình vi phân mô tả mối liên hệ giữa các đại lượng cơ và điện. Đề tài sử dụng thông số động cơ mẫu PENTA 4S để phục vụ tính toán và mô phỏng trên Simulink:
Thông số hệ thống Ký hiệu Giá trị định mức Đơn vị
Mô men quán tính rotor $J$ 0.00115 $\text{kg}\cdot\text{m}^2$
Hệ số ma sát cơ học $B$ 0.0844 $\text{N}\cdot\text{m}\cdot\text{s}$
Hằng số mô men $K_m$ 0.55 $\text{N}\cdot\text{m/A}$
Hằng số sức điện động $K_b$ 0.55 $\text{V}\cdot\text{s/rad}$
Điện trở cuộn dây phần ứng $R$ 7.03 $\Omega$
Điện cảm cuộn dây phần ứng $L$ 0.03 $\text{H}$
Mô men tải cản $T_d$ 0.5 $\text{N}\cdot\text{m}$
Điện áp định mức $U$ 180 $\text{V}$
Tốc độ định mức $N$ 3000 vòng/phút
  • Kết quả mô phỏng không điều khiển: Nhập các thông số định mức vào mô hình Simulink với nguồn cấp 180V, tốc độ ngõ ra xác lập đúng ở mức 3000 vòng/phút, khẳng định tính chính xác của mô hình hóa vi phân.
  • Kết quả mô phỏng với bộ điều khiển PID: Tác giả tiến hành thử nghiệm với 3 trường hợp điều khiển tốc độ:
    1. Trường hợp 1: $K_p = 35, K_i = 0, T_L = 0$, tốc độ đặt $N = 1000$ vòng/phút. Kết quả thu được: sai số xác lập $e_{xl} \approx 0%$, thời gian ổn định $t_s \approx 0\text{ s}$, độ vọt lố $M_p \approx 0%$, điện áp cấp dao động quanh mức 60V.
    2. Trường hợp 2: $K_p = 40, K_i = 3, T_L = 0$, tốc độ đặt $N = 2000$ vòng/phút. Kết quả: sai số xác lập $e_{xl} \approx 0%$, độ vọt lố $M_p \approx 0%$, điện áp cấp dao động quanh mức 120V. Thời gian đáp ứng có tăng nhẹ do ảnh hưởng của mức đặt tốc độ cao hơn.
    3. Trường hợp 3: $K_p = 40, K_i = 3, T_L = 0\text{ N}\cdot\text{m}$, tốc độ đặt $N = 2000$ vòng/phút (hoạt động ở dải tải định mức 180V). Kết quả: sai số xác lập $e_{xl} \approx 0%$, độ vọt lố $M_p \approx 0%$, hệ thống giữ trạng thái ổn định.
  • Thiết kế phần cứng và thuật toán: Xây dựng sơ đồ khối kết nối giữa STM32F407, L298, CP2102 và động cơ JGA25-370; xây dựng lưu đồ giải thuật cho chương trình nhúng đọc xung Encoder, tính PID và xuất PWM.

Chương 3. Kết quả và thảo luận

Chương này đánh giá toàn diện kết quả đạt được từ mô hình mô phỏng và mô hình phần cứng thực tế:

  • Kiểm chứng khả năng giao tiếp thành công giữa vi điều khiển STM32F407VG và máy tính qua phần mềm Terminal.
  • Đánh giá khả năng bám tốc độ đặt của hệ thống điều khiển thực tế, phân tích mức độ sai lệch giữa mô phỏng lý thuyết và đáp ứng vật lý do các yếu tố phi tuyến, ma sát và thời gian trễ phần cứng.

Kết quả và đóng góp

Kết quả chính

  • Xây dựng thành công mô hình toán học giải tích cho động cơ một chiều và mô phỏng chính xác đáp ứng động học trên MATLAB/Simulink.
  • Thiết lập và kiểm chứng thuật toán điều khiển PID trên mô phỏng với các chỉ tiêu chất lượng vượt yêu cầu ban đầu: sai số xác lập $e_{xl} \approx 0%$ (chỉ tiêu $\le 2%$), độ vọt lố $M_p \approx 0%$ (chỉ tiêu $\le 5%$), thời gian ổn định ngắn (chỉ tiêu $< 5\text{ s}$).
  • Thiết kế, thi công hoàn chỉnh mô hình phần cứng thực nghiệm gồm bảng mạch STM32F407VG, module công suất L298, mạch chuyển đổi USB-UART CP2102 và động cơ giảm tốc JGA25-370 có gắn Encoder Hall 11 xung/vòng.
  • Cấu hình và nạp thành công chương trình điều khiển tự động sinh mã C từ Simulink (Waijung Blockset) xuống vi điều khiển ARM Cortex-M4, thiết lập giao tiếp truyền thông UART hiển thị dữ liệu lên máy tính thời gian thực.

Đóng góp thực tiễn

Đề tài cung cấp quy trình hoàn chỉnh từ khâu mô hình hóa toán học, mô phỏng lý thuyết, sinh mã tự động đến thi công thử nghiệm thực tế hệ thống điều khiển động cơ DC bằng vi điều khiển DSP 32-bit. Phương pháp lập trình nhúng trực tiếp từ Simulink thông qua khối Waijung Blockset giúp rút ngắn thời gian phát triển hệ thống điều khiển nhúng so với cách lập trình thanh ghi truyền thống.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Các tham số mô phỏng trong Simulink sử dụng thông số động cơ chuẩn (PENTA 4S), trong khi mô hình thực nghiệm sử dụng động cơ giảm tốc JGA25-370 công suất nhỏ (3W, 12V), dẫn đến sự khác biệt về đặc tính tải và thời gian quá độ giữa mô phỏng và thực tế.
  • Bộ điều khiển thực nghiệm mới chỉ khảo sát ở chế độ điều khiển vòng kín tốc độ cơ bản, chưa tích hợp các giải thuật bù trừ phi tuyến (ma sát tĩnh, hiện tượng bão hòa từ) khi hệ thống chịu tải nặng thay đổi đột ngột.

Hướng nghiên cứu tiếp

  • Mở rộng thuật toán điều khiển nâng cao như PID mờ (Fuzzy-PID), điều khiển trượt (Sliding Mode Control) hoặc điều khiển thích nghi nhằm nâng cao khả năng kháng nhiễu khi tải thay đổi liên tục.
  • Phát triển giao diện điều khiển và giám sát đồ họa (GUI) trực quan trên MATLAB App Designer hoặc LabVIEW thay thế cho giao diện dòng lệnh Terminal.
  • Thử nghiệm trên các hệ thống truyền động công suất lớn hơn có yêu cầu định vị chính xác vị trí góc quay (Position Control).

Giá trị tham khảo

Tài liệu đồ án này là nguồn tài liệu hữu ích cho:

  • Sinh viên các ngành Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Điện - Điện tử, Cơ điện tử và Robot đang thực hiện đồ án môn học, đồ án chuyên ngành hoặc khóa luận tốt nghiệp liên quan đến điều khiển truyền động điện.
  • Các kỹ sư và người nghiên cứu đang tìm hiểu phương pháp thiết kế hệ thống điều khiển dựa trên mô hình (Model-Based Design), kỹ thuật sinh mã nhúng tự động từ Simulink sang phần cứng họ vi điều khiển STM32 thông qua thư viện Waijung Blockset.
  • Phần mô hình hóa toán học phương trình vi phân cơ - điện và cấu hình giao tiếp ngoại vi (Timer Encoder, PWM, UART) là tài liệu tham khảo trực tiếp cho các bài thực hành điều khiển động cơ DC.

Câu hỏi thường gặp

1. Đồ án sử dụng loại vi điều khiển nào và thuộc kiến trúc gì?
Đề tài sử dụng bảng mạch điều khiển STM32F407VG Discovery trang bị vi xử lý ARM 32-bit Cortex-M4 tích hợp bộ tính toán số thực FPU, hoạt động ở tần số xung nhịp tối đa 168 MHz, bộ nhớ 1 MB Flash và 192 KB SRAM.

2. Phương pháp nạp code từ MATLAB Simulink xuống bo mạch STM32F407VG được thực hiện như thế nào?
Tác giả sử dụng bộ công cụ Waijung Blockset (phát triển bởi Aimagin). Bộ công cụ này đóng vai trò cầu nối trong Simulink, cho phép các khối chức năng xuất mã nguồn C và biên dịch tự động thông qua trình biên dịch GNU-ARM/MDK-ARM, sau đó nạp trực tiếp vào chip thông qua mạch nạp ST-Link/V2 tích hợp sẵn trên bo mạch.

3. Động cơ thực nghiệm và cảm biến Encoder trong đồ án có thông số như thế nào?
Động cơ thực nghiệm là loại DC giảm tốc JGA25-370 có điện áp định mức 12VDC, công suất 3W, tỉ số truyền hộp số 21:1, tốc độ có tải 220 vòng/phút. Cảm biến tốc độ là Encoder từ Hall 2 kênh pha A và B với độ phân giải 11 xung/kênh trên 1 vòng quay của đĩa mã hóa.

4. Các chỉ tiêu chất lượng điều khiển đặt ra trong đề tài là gì và kết quả mô phỏng đạt được ra sao?
Chỉ tiêu đặt ra gồm: độ vọt lố không quá 5%, sai số xác lập dưới 2%, thời gian đáp ứng dưới 5 giây. Kết quả mô phỏng trên cả 3 kịch bản vận hành với bộ điều khiển PID đều đạt sai số xác lập $e_{xl} \approx 0%$, độ vọt lố $M_p \approx 0%$ và thời gian xác lập nằm trong giới hạn cho phép.

5. Mạch công suất nào được sử dụng để điều khiển động cơ và nguyên lý kết nối ra sao?
Đề tài sử dụng module cầu H L298N có dải điện áp làm việc từ 5V đến 35V, dòng điện tối đa 2A/kênh. Vi điều khiển STM32F407VG xuất tín hiệu PWM vào chân ENA/ENB để điều chỉnh tốc độ và xuất tín hiệu logic mức cao/thấp vào các chân IN1, IN2 để điều khiển chiều quay của động cơ.


Kết luận

Đồ án "Sử dụng DSP giao tiếp Matlab để điều khiển động cơ một chiều" của sinh viên Nguyễn Chí Phát đã hoàn thành đầy đủ các mục tiêu nghiên cứu từ xây dựng mô hình toán học vi phân, mô phỏng thuật toán PID trên MATLAB/Simulink đến chế tạo phần cứng thực nghiệm trên nền tảng vi điều khiển STM32F407VG và cầu H L298. Kết quả nghiên cứu chứng minh tính hiệu quả của phương pháp thiết kế điều khiển dựa trên mô hình kết hợp công cụ sinh mã tự động Waijung Blockset, đáp ứng tốt các chỉ tiêu kỹ thuật về độ ổn định, triệt tiêu độ vọt lố và giảm thiểu sai số xác lập trong điều khiển tốc độ động cơ DC. Đây là công trình thực nghiệm hoàn chỉnh, có giá trị học thuật và ứng dụng thực tiễn cao cho đào tạo và nghiên cứu kỹ thuật điều khiển tự động.