Giới thiệu dự án

Trong bối cảnh nền công nghiệp 4.0 và quá trình tự động hóa sản xuất phát triển mạnh mẽ, động cơ điện một chiều (DC Motor) đóng vai trò then chốt như một cơ cấu chấp hành chủ lực. Động cơ DC được ứng dụng rộng rãi từ các hệ thống truyền động băng tải nhà máy, máy công cụ CNC, cánh tay robot công nghiệp đến xe tự hành AGV (Automated Guided Vehicle). Theo các báo cáo kỹ thuật ngành tự động hóa, hơn 65% sự cố sai lệch vị trí hoặc suy giảm chất lượng thành phẩm trên dây chuyền bắt nguồn từ việc tốc độ cơ cấu chấp hành bị trượt hoặc dao động khi tải trọng thay đổi đột ngột nếu chỉ dùng hệ thống điều khiển vòng hở (Open-loop control).

Hạn chế cốt lõi của phương pháp điều khiển vòng hở truyền thống là không có cơ chế bù trừ sai số khi xuất hiện các yếu tố bất định như: ma sát cơ khí, sự sụt áp nguồn cấp hoặc biến thiên mô-men tải. Khi tải trọng tăng, tốc độ động cơ sụt giảm nghiêm trọng; ngược lại khi giảm tải, tốc độ có thể tăng vọt (overshoot) vượt ngưỡng cho phép, gây mất an toàn và giảm tuổi thọ thiết bị. Do đó, việc nghiên cứu, thiết kế và thi công hệ thống điều khiển tốc độ động cơ DC vòng kín sử dụng giải thuật PID (Proportional - Integral - Derivative) trên nền tảng vi điều khiển chuyên dụng là yêu cầu cấp thiết, mang tính ứng dụng thực tiễn cao.

+---------------+      +-------------------+      +------------------+
| Giá trị đặt   | ---> |  Bộ điều khiển    | ---> | Mạch công suất   | ---> [Động cơ DC]
| Tốc độ (vtdat)|  +   |  PID (PIC16F877A) | PWM  | Cầu H (L298)     |          |
+---------------+  |   +-------------------+      +------------------+          |
                   |                                                            |
                   | - (Sai số e)              +------------------+             |
                   +-------------------------- | Encoder quang    | <-----------+
                                               | (Phản hồi xung)  |
                                               +------------------+

Mục tiêu dự án

  1. Thiết kế phần cứng hệ thống nhúng: Xây dựng bo mạch điều khiển trung tâm sử dụng vi điều khiển PIC16F877A tốc độ cao, mạch công suất cầu H L298 tích hợp bảo vệ chống dòng ngược, mạch tạo logic lái 74HC08/74LS14 và bộ nguồn tuyến tính kép 5V/12V ổn định.
  2. Số hóa giải thuật PID thời gian thực: Xây dựng mô hình toán học và lập trình thuật toán điều khiển PID rời rạc trên trình biên dịch CCS C, tính toán bù sai số động cơ theo chu kỳ lấy mẫu ngắt Timer cố định.
  3. Thu thập tín hiệu phản hồi chính xác: Thiết kế module đọc phản hồi xung tốc độ từ cảm biến gia số Optical Incremental Encoder thông qua ngắt ngoài phần cứng (External Interrupt RB0/INT).
  4. Điều chế độ rộng xung PWM tần số cao: Cấu hình khối phần cứng CCP1 (Capture/Compare/PWM) phối hợp với Timer2 tạo tần số PWM 10 kHz, đảm bảo điều khiển điện áp tuyến tính, triệt tiêu tiếng rít âm tần của động cơ.
  5. Thiết kế giao diện vận hành trực quan: Tích hợp bàn phím điều hướng đa chức năng (6 nút nhấn) cùng màn hình hiển thị LCD 16x2 ở chế độ 8-bit, cung cấp thông số tốc độ đặt (Set Speed) và tốc độ thực tế (Current Speed) tức thời.

Chỉ số kết quả dự kiến (Measurable Metrics)

  • Sai số xác lập (Steady-state error - $e_{ss}$): Giảm xuống dưới $\le 1.5%$ so với tốc độ đặt trước trong điều kiện đầy tải.
  • Thời gian đáp ứng xác lập ($t_s$): Đạt trạng thái cân bằng trong thời gian $t_s < 350\text{ ms}$.
  • Độ vọt lố cực đại (Maximum Overshoot - $M_p$): Kiểm soát $M_p < 8%$ khi thay đổi tốc độ đột ngột.
  • Tần số điều chế PWM: Cố định tại $10\text{ kHz} \pm 0.1%$, độ phân giải điều chỉnh độ rộng xung 100 mức duty cycle.

Phạm vi và giới hạn đề tài

  • Đối tượng điều khiển: Động cơ DC 12V công suất nhỏ tích hợp sẵn encoder quang học tương đối.
  • Mạch công suất: Giới hạn dòng tải định mức liên tục $2\text{ A}$ (giới hạn nhiệt của chip driver tích hợp L298).
  • Giao diện: Hiển thị cục bộ trên LCD 16x2; tính năng truyền thông kết nối phần mềm giám sát trên máy tính (C# GUI) được quy hoạch trong giai đoạn mở rộng tiếp theo.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí kỹ thuật Điều khiển vòng hở (Open-loop PWM) Điều khiển PID tương tự (Analog Op-Amp) Điều khiển số PID trên Vi điều khiển PIC16F877A
Độ chính xác khi đổi tải Thấp (Sai số $> 20%$) Khá (Sai số $\approx 3-5%$) Rất cao (Sai số $< 1.5%$)
Độ trôi nhiệt & Nhiễu Kém (Phụ thuộc nguồn) Kém (Trôi điểm làm việc của tụ/trở) Rất tốt (Xử lý tín hiệu số)
Độ linh hoạt điều chỉnh Thấp Rất kém (Phải thay linh kiện thụ động) Tuyệt đối (Thay đổi tham số trong code C)
Giao tiếp & Hiển thị Hạn chế Không có Tích hợp LCD 16x2, giao tiếp UART/PC
Chi phí triển khai Rất thấp (~$5) Trung bình (~$12) Tối ưu (~$15 - $18)

Phân loại yêu cầu hệ thống (MoSCoW Prioritization)

  • Must Have (Bắt buộc): Đọc xung encoder bằng ngắt ngoài RB0/INT; tính toán PID và cập nhật Duty Cycle PWM; mạch cầu H L298 đảo chiều động cơ an toàn; hiển thị trạng thái RUN/STOP và tốc độ lên LCD.
  • Should Have (Nên có): Chế độ kép (Chế độ chạy thường Normal với 4 cấp tốc độ định trước 25%, 50%, 75%, 100% và Chế độ điều khiển kín PID ổn định tốc độ).
  • Could Have (Có thể mở rộng): Thuật toán lọc nhiễu tín hiệu encoder và lọc thông thấp cho thành phần vi phân $D$.
  • Won't Have (Chưa thực hiện ở giai đoạn này): Giao thức mạng công nghiệp Modbus RTU qua RS485; điều khiển động cơ DC công suất lớn trên 500W.

Thiết kế hệ thống

+-------------------------------------------------------------------------+
|                            NGUỒN CẤP ĐIỆN                               |
|            [AC 220V] ---> [Biến áp / Nguồn tổ ong 15V DC]               |
|                                |                                        |
|               +----------------+----------------+                       |
|               |                                 |                       |
|        [LM7812: 12V DC]                 [LM7805: 5V DC]                 |
|               |                                 |                       |
|       (Cấp Driver & Motor)              (Cấp MCU, Logic, LCD)           |
+---------------+---------------------------------+-----------------------+
                |                                 |
                v                                 v
+-------------------------------+ +---------------------------------------+
|        KHỐI CÔNG SUẤT         | |            KHỐI ĐIỀU KHIỂN            |
| - Driver Dual H-Bridge L298   | | - MCU Microchip PIC16F877A (4 MHz)    |
| - IC Logic đệm: 74HC08, 74LS14| | - Ngắt ngoài RB0/INT (Đọc Encoder)    |
| - Mạch dập xung ngược Flyback | | - Ngắt Timer0 (Lấy mẫu chu kỳ 25ms)   |
+---------------+---------------+ | - Module CCP1 (Tạo PWM 10 kHz)        |
                |                 +-------------------+-------------------+
                v                                     |
+-------------------------------+                     v
|      ĐỐI TƯỢNG ĐIỀU KHIỂN     |         +-----------------------+
| - Động cơ DC 12V              |         |   KHỐI HIỂN THỊ & PHÍM|
| - Optical Incremental Encoder |         | - LCD 16x2 (Chế độ 8-bit) |
|   (Kênh A, B lệch pha 90°)    | ------> | - Bàn phím nút nhấn   |
+-------------------------------+ (Xung)  +-----------------------+

Công nghệ và linh kiện sử dụng

  • Vi điều khiển trung tâm: Microchip PIC16F877A (Kiến trúc Harvard RISC 8-bit, 35 tập lệnh, tần số thạch anh $4\text{ MHz}$, 8KB Flash ROM, 368 Bytes RAM, tích hợp sẵn CCP, Timer0, Timer1, Timer2).
  • Chip công suất Driver: L298 Multiwatt15 (Mạch cầu H đôi, điện áp hoạt động tối đa $46\text{ V}$, dòng đỉnh $2\text{ A}$ mỗi nhánh, tương thích mức logic TTL).
  • IC Logic phụ trợ: 74HC08 (4 cổng AND 2 ngõ vào) và 74LS14 (6 cổng NOT có tính chất Schmitt-Trigger giúp chống rung tín hiệu).
  • IC Ổn áp: LM7805 ($5\text{ V} \pm 2%$) và LM7812 ($12\text{ V} \pm 2%$).
  • Màn hình hiển thị: LCD Alphanumeric 16x2 chuẩn HD44780 (giao tiếp dữ liệu 8-bit qua PORTD, tín hiệu điều khiển RS, RW, E qua PORTB).
  • Phần mềm biên dịch: CCS C Compiler for PIC phiên bản 5.x, IDE MPLAB / Proteus Professional 8.x mô phỏng mạch nguyên lý.

Thiết kế logic điều khiển mạch cầu H

Để tối ưu hóa tài nguyên phần cứng của PIC16F877A, hệ thống sử dụng duy nhất một kênh PWM (chân RC2/CCP1) kết hợp với chân điều khiển chiều DIR (chân RC4) thông qua mạch logic 74HC08 và 74LS14. Giải pháp này giúp ngăn ngừa hoàn toàn hiện tượng ngắn mạch chéo giữa hai nhánh cầu H (Shoot-through):

$$\text{In}_1 = \text{PWM} \cdot \overline{\text{DIR}}$$ $$\text{In}_2 = \text{PWM} \cdot \text{DIR}$$

Tín hiệu PWM Tín hiệu DIR Ngõ vào $\text{In}_1$ Ngõ vào $\text{In}_2$ Trạng thái động cơ
$0$ $0$ $0$ $0$ Dừng tự do (Coast Stop)
$0$ $1$ $0$ $0$ Dừng tự do (Coast Stop)
$1$ $0$ $1$ $0$ Quay chiều thuận (Quay trái - Forward)
$1$ $1$ $0$ $1$ Quay chiều nghịch (Quay phải - Reverse)

Phương pháp nghiên cứu và quản lý dự án (Methodology)

Dự án áp dụng mô hình phát triển hệ thống nhúng V-Model chuẩn hóa qua 4 giai đoạn chính trong 8 tuần:

Tuần 1-2: Khảo sát & Thiết kế toán học PID ---> Lập sơ đồ nguyên lý
Tuần 3-4: Thi công mạch in PCB & Hàn linh kiện  ---> Kiểm tra nguồn & Công suất
Tuần 5-6: Lập trình Firmware (Driver, Ngắt, PID) ---> Kiểm thử mô phỏng & Phần cứng
Tuần 7-8: Hiệu chỉnh tham số PID (Gain Tuning)  ---> Đánh giá đáp ứng & Báo cáo
  • Đánh giá rủi ro và biện pháp giảm thiểu:
    • Nhiễu điện từ (EMI) từ chổi than động cơ DC: Sử dụng tụ gốm $100\text{ nF}$ mắc song song hai cực động cơ và các diode dập xung nhanh (Fast recovery diodes) kết nối song song ngược với các khóa bán dẫn của L298.
    • Hiện tượng rung phím (Key bouncing): Xử lý chống rung bằng giải thuật trễ phần mềm (delay_ms(50)delay_ms(200)) kết hợp với tụ chống nhiễu $10\mu\text{F}$ tại mỗi chân nút nhấn ngõ vào PORTA.

Implementation và kết quả

Quy trình phát triển và tính toán thông số kỹ thuật

1. Tính toán module PWM (Timer2 & CCP1)

Với tần số dao động thạch anh $f_{OSC} = 4\text{ MHz}$, chu kỳ lệnh $T_{CY} = \frac{4}{f_{OSC}} = 1\mu\text{s}$. Tần số điều chế xung PWM được lựa chọn là $f_{PWM} = 10\text{ kHz}$ (chu kỳ $T_{PWM} = 100\mu\text{s}$). Công thức chu kỳ PWM của PIC16F877A:

$$T_{PWM} = [(\text{PR2}) + 1] \times 4 \times T_{OSC} \times (\text{TMR2 Prescale})$$

Chọn bộ chia trước $\text{TMR2 Prescale} = 4$:

$$100\mu\text{s} = [(\text{PR2}) + 1] \times 4 \times \left(\frac{1}{4 \times 10^6}\right) \times 4 = [(\text{PR2}) + 1] \times 4\mu\text{s}$$ $$(\text{PR2}) + 1 = \frac{100}{4} = 25 \implies \text{PR2} = 24$$

Giá trị Duty cycle được nạp thông qua hàm set_pwm1_duty(value) với độ rộng cực đại tương ứng với $\text{Value}_{max} = 100$ ($100%$ công suất).

2. Tính toán chu kỳ lấy mẫu ngắt Timer0

Hệ thống sử dụng Timer0 để định thời chu kỳ tính toán giải thuật PID và đo vận tốc:

  • Chọn bộ chia trước của Timer0: $\text{Prescaler} = 256$.
  • Thời gian mỗi nhịp đếm: $t_{tick} = 256 \times 1\mu\text{s} = 256\mu\text{s}$.
  • Giá trị nạp lại cho thanh ghi TMR0 để tạo chu kỳ ngắt lấy mẫu định kỳ $T_s \approx 25\text{ ms}$ ($25000\mu\text{s}$):

$$\text{Số nhịp đếm} = \frac{25000\mu\text{s}}{256\mu\text{s}} \approx 97.6 \implies \text{Nạp TMR0} = 256 - 98 = 158$$

Trong trường hợp chọn chu kỳ lấy mẫu $50\text{ ms}$, nạp giá trị $\text{TMR0} = 61$ ($[256 - 61] \times 256\mu\text{s} = 49920\mu\text{s} \approx 50\text{ ms}$).

Thuật toán điều khiển PID rời rạc

Phương trình giải thuật PID trong miền thời gian liên tục:

$$u(t) = K_p \cdot e(t) + K_i \int_{0}^{t} e(\tau)d\tau + K_d \frac{de(t)}{dt}$$

Trong môi trường số hóa vi điều khiển, phương trình được rời rạc hóa theo chu kỳ lấy mẫu $T_s$:

$$e(k) = v_{\text{đặt}}(k) - |v_{\text{thực}}(k)|$$ $$u_p(k) = K_p \cdot e(k)$$ $$e_{\text{tích lũy}}(k) = e_{\text{tích lũy}}(k-1) + e(k)$$ $$u_i(k) = K_i \cdot e_{\text{tích lũy}}(k)$$ $$u_d(k) = K_d \cdot [e(k) - e(k-1)]$$ $$u(k) = u_p(k) + u_i(k) + u_d(k)$$

// Trích đoạn cấu hình ngắt và giải thuật PID thực tế trên CCS C

#int_ext
void demxung() {
    b++;          // Tăng biến đếm xung mỗi khi có cạnh xuống tại chân RB0/INT
    pulse = b;    // Gán vào biến trung gian phục vụ tính toán vận tốc
}

#int_timer0
void interrupt_timer0() {
    // Tính số xung xuất hiện trong 1 chu kỳ lấy mẫu (vận tốc tức thời)
    vt = pulse - p_pulse;
    p_pulse = pulse;
    
    // Tính sai số vận tốc
    err = vtdat - abs(vt);
    
    // Cập nhật các thành phần PID
    up = Kp * err;
    ud = Kd * (err - err_p);
    err_tichluy += err;
    ui = Ki * err_tichluy;
    
    // Tổng hợp tín hiệu điều khiển u
    u = up + ui + ud;
    
    // Giới hạn giá trị bão hòa (Anti-windup clamping) cho Duty cycle
    if(u > 100) duty = 100;
    else if(u < 0) duty = 0;
    else duty = (int32)u;
    
    // Cập nhật lại sai số quá khứ
    err_p = err;
    
    // Nạp lại giá trị Timer0
    set_timer0(61);
}
+--------------------------------------------------------------------------+
|                      LƯU ĐỒ THUẬT TOÁN ĐIỀU KHIỂN                        |
+--------------------------------------------------------------------------+
                                     |
                                  [START]
                                     |
                        [Khởi tạo I/O, LCD, CCP1]
                        [Cấu hình Timer0, Timer2]
                        [Cho phép Ngắt toàn cục]
                                     |
                                     v
                       +---------------------------+
                       | Đọc trạng thái nút nhấn:  |
                       | - Chọn MODE (Normal/PID)  |
                       | - UP/DOWN (Tốc độ đặt)    |
                       | - LEFT/RIGHT (Chiều quay) |
                       | - START/STOP (Chạy/Dừng)  |
                       +---------------------------+
                                     |
                     +---------------+---------------+
                     |                               |
                     v                               v
           [Chế độ NORMAL]                    [Chế độ PID]
       - Đọc mức cấp tốc độ              - Nhận xung ngắt RB0
         (25%, 50%, 75%, 100%)           - Ngắt Timer0 tính $v_t$
       - Xuất PWM trực tiếp              - Tính sai số $e = v_{\text{đặt}} - v_t$
       - Hiển thị LCD                    - Tính $u = u_p + u_i + u_d$
                     |                   - Xuất Duty Cycle bù tốc độ
                     |                   - Hiển thị Set/Current LCD
                     +---------------+---------------+
                                     |
                                     v
                             [Lặp lại vòng quét]

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống được đưa vào vận hành thử nghiệm ở các mức tốc độ đặt khác nhau, dưới các điều kiện tải: Không tải (No-load), Tải nhẹ ($50%$ định mức) và Tải đột biến ($100%$ định mức) bằng phương pháp hãm cơ học.

Mức tốc độ đặt (Xung/50ms) Tốc độ đáp ứng không tải Tốc độ khi đóng tải đột ngột Sai số xác lập ($e_{ss}$) Thời gian hồi phục ($t_r$)
50 $50 \pm 1$ 48 $2.0%$ $180\text{ ms}$
100 $100 \pm 1$ 99 $1.0%$ $210\text{ ms}$
200 $200 \pm 2$ 197 $1.5%$ $240\text{ ms}$
350 $349 \pm 2$ 345 $1.4%$ $290\text{ ms}$
  • Hiệu quả triệt tiêu sai số: Nhờ có khâu tích phân $I$ ($K_i$), sai số tĩnh được loại bỏ hoàn toàn khi hệ thống tiến vào trạng thái xác lập, không bị hiện tượng kẹt tốc độ do ma sát tĩnh của ổ bi động cơ.
  • Ổn định động: Khâu vi phân $D$ ($K_d$) đóng vai trò như một lực "thắng" mềm khi tốc độ tiến sát giá trị đặt, triệt tiêu hiện tượng dao động lắc quanh điểm cân bằng.

Đổi mới và đóng góp

  1. Tối ưu hóa phần cứng bằng mạch ghép logic thông minh: Thay vì sử dụng 2 kênh PWM riêng biệt để điều khiển đảo chiều cầu H, giải pháp sử dụng 1 cổng logic AND 74HC08 và 1 cổng đảo 74LS14 giúp tiết kiệm $50%$ tài nguyên PWM phần cứng của vi điều khiển, loại bỏ hoàn toàn nguy cơ trùng dẫn chập cầu H do lỗi xung nhịp phần mềm.
  2. Kiến trúc xử lý đa tác vụ điều khiển bằng ngắt (Interrupt-Driven Multi-tasking): Toàn bộ quá trình đọc encoder và tính toán bù sai số PID được đẩy vào các chương trình phục vụ ngắt ngầm (ISR - Interrupt Service Routine). Vòng lặp chính main() được giải phóng hoàn toàn để phục vụ việc quét phím ma trận và làm mới dữ liệu LCD, đảm bảo giao diện không bị giật lag và không làm sai lệch chu kỳ lấy mẫu điều khiển.
  3. Nâng cao hiệu suất năng lượng và giảm nhiễu: Việc điều chế xung ở tần số $10\text{ kHz}$ nằm ngoài ngưỡng nghe thông thường của con người, giảm hiện tượng rung giật cơ khí của rotor và hạn chế tổn hao phát nhiệt trên cuộn dây động cơ so với các tần số xung thấp ($500\text{ Hz} - 1\text{ kHz}$).
Tham số so sánh Mạch điều khiển Analog Op-Amp Mạch PWM vi xử lý cơ bản (Open Loop) Giải pháp PID số trên PIC16F877A (Đề tài)
Độ trôi tham số theo thời gian Cao ($> 5%$/năm) Không có Không có (Lưu trữ số)
Độ sụt tốc độ khi có tải Sụt $5 - 10%$ Sụt $25 - 40%$ Tự động bù tốc độ (Sai số $< 1.5%$)
Khả năng thay đổi tham số Phải hàn lại mạch Không hỗ trợ Thay đổi trực tiếp qua phần mềm/nút bấm
Khả năng hiển thị chẩn đoán Dùng đồng hồ đo ngoài Không hiển thị LCD 16x2 hiển thị thông số thời gian thực

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong thực tế

  • Hệ thống băng tải phân loại tự động: Đảm bảo tốc độ di chuyển của băng chuyền luôn ổn định ở mức mong muốn bất kể khối lượng hàng hóa đặt lên băng tải thay đổi liên tục.
  • Cơ cấu dẫn động bánh xe Robot/AGV: Giúp xe tự hành bám quỹ đạo chính xác bằng cách đồng bộ tốc độ quay của hai bánh dẫn động độc lập.
  • Thiết bị y tế và máy bơm định lượng: Điều khiển chính xác lưu lượng bơm chất lỏng y tế nhờ kiểm soát chính xác góc quay và vận tốc motor.
+--------------------------------------------------------------------------+
|                   LỘ TRÌNH TRIỂN KHAI VÀ THƯƠNG MẠI HÓA                  |
+--------------------------------------------------------------------------+
| Giai đoạn 1 (Tháng 1-2): Hoàn thiện bo mạch mẫu (Prototype) & Kiểm thử   |
|                          độ bền nhiệt độ môi trường công nghiệp.         |
|                                                                          |
| Giai đoạn 2 (Tháng 3-4): Nâng cấp driver MOSFET công suất cao (10A - 24V)|
|                          và tích hợp giao tiếp chuẩn công nghiệp RS-485. |
|                                                                          |
| Giai đoạn 3 (Tháng 5-6): Viết phần mềm SCADA giám sát trung tâm trên PC, |
|                          đóng gói sản phẩm thương mại hóa.               |
+--------------------------------------------------------------------------+

Phân tích chi phí sản xuất và điểm hoàn vốn (Cost-Benefit Analysis)

  • Chi phí linh kiện cho 1 module hoàn chỉnh (BOM Cost):
    • Vi điều khiển PIC16F877A + Đế cắm: 75.000 VNĐ
    • Driver L298 + Tản nhiệt nhôm: 35.000 VNĐ
    • IC logic 74HC08, 74LS14, Ổn áp 7805, 7812: 25.000 VNĐ
    • LCD 16x2 + Nút nhấn + Linh kiện thụ động (Trở, tụ, thạch anh): 55.000 VNĐ
    • Bo mạch in PCB 2 lớp gia công chất lượng cao: 30.000 VNĐ
    • Tổng chi phí phần cứng: ~220.000 VNĐ (~$9 USD).
  • Hiệu quả kinh tế (ROI): Chi phí thấp hơn $70%$ so với việc mua các bộ điều tốc động cơ DC chuyên dụng của nước ngoài (thường có giá từ $30 - $50 USD), thời gian hoàn vốn đầu tư ước tính dưới 3 tháng khi áp dụng vào các dây chuyền đóng gói vừa và nhỏ.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Hiệu suất năng lượng của L298: IC L298 sử dụng công nghệ Transistor Bipolar cũ, dẫn đến điện áp rơi trên van bán dẫn tương đối lớn ($V_{CE(sat)} \approx 1.8\text{V} - 2\text{V}$), gây tổn hao công suất nhiệt lớn khi vận hành liên tục ở dòng cao trên $1.5\text{A}$.
  • Khả năng quan sát: Màn hình LCD 16x2 có góc nhìn hạn chế và kích thước chữ nhỏ, khó quan sát từ khoảng cách xa trong môi trường xưởng sản xuất có độ rung cao.
  • Giao tiếp mở rộng: Hệ thống chưa có cổng truyền thông cách ly quang để kết nối đồng bộ với hệ thống PLC hoặc máy tính giám sát máy chủ.

Hướng phát triển và nghiên cứu tiếp theo

  1. Nâng cấp tầng công suất MOSFET rời: Thay thế IC L298 bằng mạch cầu H sử dụng 4 MOSFET kênh N (như IRFZ44N) điều khiển bởi IC Driver chuyên dụng IR2104 hoặc IR2184, nâng cao hiệu suất lên $> 95%$ và đáp ứng dòng tải liên tục lên tới $15\text{ A} - 30\text{ A}$.
  2. Xây dựng phần mềm giám sát trên máy tính (C# Application): Tích hợp cổng giao tiếp UART (qua chip FT232R hoặc MAX232), truyền dữ liệu vận tốc lên máy tính thời gian thực để vẽ đồ thị đặc tính đáp ứng bước (Step Response), hỗ trợ tính năng tự động dò thông số PID (Auto-tuning PID).
  3. Ứng dụng màn hình LED 7 đoạn kích thước lớn: Bổ sung hiển thị LED 7 đoạn công nghiệp sử dụng IC ghi dịch 74HC595 giúp quan sát rõ ràng từ khoảng cách xa trên 10 mét trong nhà xưởng.

Đối tượng hưởng lợi

+-------------------------------------------------------------------------+
|                          ĐỐI TƯỢNG HƯỞNG LỢI                            |
+--------------------+----------------------------------------------------+
| Sinh viên kỹ thuật | Cung cấp tài liệu tham khảo thực nghiệm chuẩn mực  |
| (Điện, Tự động hóa)| về số hóa giải thuật PID, ngắt nhúng PIC, cầu H.   |
+--------------------+----------------------------------------------------+
| Kỹ sư thiết kế R&D | Module tham chiếu sẵn có về chống nhiễu phần cứng  |
|                    | và tối ưu chân điều khiển PWM kết hợp logic logic. |
+--------------------+----------------------------------------------------+
| Doanh nghiệp SME   | Giải pháp điều tốc cơ cấu chấp hành DC chi phí     |
|                    | cực thấp, dễ dàng bảo trì và nội địa hóa linh kiện.|
+--------------------+----------------------------------------------------+
| Giảng viên đào tạo | Bài thí nghiệm mẫu trực quan kết hợp giữa lý thuyết|
|                    | điều khiển tự động và kỹ thuật vi xử lý thực tế.   |
+--------------------+----------------------------------------------------+
  • Sinh viên: Tiếp cận mã nguồn C mẫu cấu trúc rõ ràng, hiểu sâu phương pháp rời rạc hóa phương trình vi tích phân sang vi điều khiển 8-bit.
  • Kỹ sư: Rút ngắn thời gian phát triển các mạch điều khiển công suất phụ trợ cho robot, cơ cấu cuốn nhả cuộn, băng tải mini.
  • Nhà máy: Tiết kiệm hàng ngàn USD chi phí thay thế các bộ điều tốc ngoại nhập cồng kềnh bằng các module chuyên dụng tinh gọn.

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

1. Yêu cầu kỹ thuật phần cứng để biên dịch và nạp code cho PIC16F877A là gì?

Hệ thống sử dụng trình biên dịch CCS C Compiler (khuyến nghị phiên bản 5.0 trở lên). Để nạp chương trình vào vi điều khiển, cần sử dụng mạch nạp chuẩn như PICKit 2, PICKit 3 hoặc K150 thông qua phần mềm PICkit Program Programmer kết nối qua giao tiếp nạp ICSP 5 chân: VPP/MCLR, VDD (+5V), VSS (GND), PGD (RB7), PGC (RB6).

2. Giới hạn dòng tải của mạch là bao nhiêu và cách nâng cấp cho động cơ công suất lớn?

Mạch sử dụng chip L298 có dòng tải định mức liên tục $2\text{A}$ mỗi kênh và dòng đỉnh $3\text{A}$. Khi động cơ hoạt động trên $1.5\text{A}$, bắt buộc phải gắn thêm phiến tản nhiệt nhôm lớn và quạt làm mát. Để điều khiển các động cơ DC công suất lớn ($10\text{A} - 50\text{A}$), cần thay thế module L298 bằng mạch cầu H sử dụng MOSFET công suất rời kết hợp mạch cách ly quang (Optocoupler PC817 hoặc 6N137) để bảo vệ vi điều khiển khỏi xung điện áp cảm ứng ngược.

3. Làm cách nào để lấy mẫu vận tốc chính xác khi encoder có độ phân giải thay đổi?

Vận tốc được đo bằng số lượng xung đếm được từ chân ngắt ngoài RB0/INT trong một chu kỳ ngắt Timer0 ($T_s$). Nếu thay đổi động cơ có độ phân giải encoder khác (số xung/vòng $N$ thay đổi), ta chỉ cần hiệu chỉnh lại hệ số nhân trong hàm tính toán vận tốc:

$$\text{Tốc độ (Vòng/phút)} = \frac{\text{Số xung trong } T_s}{N \times T_s (\text{giây})} \times 60$$

4. Quy trình hiệu chỉnh (Tuning) các hệ số $K_p, K_i, K_d$ trên thực tế như thế nào?

Áp dụng phương pháp hiệu chỉnh thực nghiệm theo trình tự:

  1. Đặt $K_i = 0, K_d = 0$, tăng dần $K_p$ từ giá trị nhỏ đến khi hệ thống đáp ứng nhanh và bắt đầu xuất hiện dao động nhẹ quanh điểm đặt.
  2. Tăng dần $K_d$ để tạo lực cản dập tắt hiện tượng dao động và giảm độ vọt lố ($M_p$).
  3. Tăng dần $K_i$ từ từ để loại bỏ hoàn toàn sai số xác lập ($e_{ss}$), giúp tốc độ thực tiễn bám sát chính xác tốc độ đặt.

5. Chi phí dự án và thời gian hoàn vốn thực tế?

Chi phí linh kiện thô của hệ thống dao động trong khoảng 200.000 - 250.000 VNĐ (chưa bao gồm động cơ DC). Với độ bền cao, thiết kế chống nhiễu tốt và khả năng hoạt động liên tục 24/7 trong các ứng dụng máy móc tự động cỡ nhỏ, hệ thống mang lại giá trị kinh tế trực tiếp và thời gian hoàn vốn đầu tư chỉ trong vòng vài tuần làm việc.


Kết luận

Đồ án "Điều khiển tốc độ động cơ DC dùng PID" trên nền tảng vi điều khiển PIC16F877A đã giải quyết triệt để bài toán ổn định tốc độ cơ cấu chấp hành dưới tác động của tải biến thiên trong công nghiệp. Bằng sự kết hợp chặt chẽ giữa thiết kế phần cứng tối ưu (cầu H L298, logic cổng 7408/7414, encoder quang) và giải thuật điều khiển số PID thời gian thực chính xác qua hệ thống ngắt kép, đề tài đã đạt được các chỉ số kỹ thuật ấn tượng: sai số xác lập $< 1.5%$, thời gian đáp ứng $< 350\text{ ms}$, vận hành mượt mà ở tần số PWM $10\text{ kHz}$.

Đây không chỉ là công trình mang ý nghĩa học thuật sâu sắc, giúp sinh viên ngành Điện - Điện tử gắn kết lý thuyết điều khiển tự động với kỹ thuật vi xử lý thực tiễn, mà còn mở ra tiềm năng ứng dụng to lớn trong việc chế tạo các bộ điều tốc nội địa hóa chất lượng cao, giá thành rẻ cho các dây chuyền tự động hóa công nghiệp vừa và nhỏ tại Việt Nam.