Giới thiệu dự án

Sự bùng nổ của các hệ thống hỗ trợ lái xe nâng cao (Advanced Driver Assistance Systems - ADAS) đang tái định hình ngành công nghiệp ô tô toàn cầu. Theo báo cáo từ Tổ chức Y tế Thế giới (WHO) và Hiệp hội An toàn Giao thông Quốc lộ Mỹ (NHTSA), hơn 90% các vụ tai nạn giao thông bắt nguồn từ lỗi chủ quan của người lái như mất tập trung, mệt mỏi trên các cung đường dài hoặc phản xạ chậm khi khoảng cách phương tiện thay đổi đột ngột. Trong bối cảnh hạ tầng đường cao tốc phát triển nhanh chóng và mật độ phương tiện gia tăng với công suất động cơ ngày càng cao, việc đảm bảo tính ổn định động lực học và an toàn chủ động trở thành yêu cầu sống còn.

+-----------------------------------------------------------------------------+
|                           HỆ THỐNG ĐIỀU KHIỂN DỌC                           |
|                                                                             |
|   +-------------------+       +-------------------+                         |
|   |  CRUISE CONTROL   | ----> |  ADAPTIVE CRUISE  | (Kiểm soát đồng thời    |
|   |       (CC)        |       |   CONTROL (ACC)   |  vận tốc & khoảng cách) |
|   +-------------------+       +-------------------+                         |
|     (Duy trì vận tốc)                   |                                   |
|                                         v                                   |
|                               +-------------------+                         |
|                               |  COOPERATIVE ACC  | (Kết nối V2X            |
|                               |      (CACC)       |  giao tiếp đa xe)       |
|                               +-------------------+                         |
+-----------------------------------------------------------------------------+

Hệ thống Kiểm soát Hành trình Thích ứng (Adaptive Cruise Control - ACC) là giải pháp đột phá khắc phục hoàn toàn nhược điểm của hệ thống Kiểm soát Hành trình truyền thống (Cruise Control - CC). Nếu CC thông thường chỉ duy trì vận tốc cố định ($V_{set}$) và buộc người lái phải can thiệp phanh thủ công khi có chướng ngại vật, thì ACC kết hợp thông minh giữa cảm biến Radar tầm xa và bộ xử lý trung tâm ECU để liên tục giám sát không gian phía trước, tự động tính toán và điều chỉnh bướm ga hoặc hệ thống phanh chống bó cứng (Anti-lock Braking System - ABS) nhằm duy trì khoảng cách an toàn ($d_{set}$) theo thời gian thực.

Đề tài "Thiết kế và mô phỏng bộ điều khiển hành trình có thích nghi (Adaptive Cruise Control) cho xe tự hành" được thực hiện nhằm giải quyết bài toán cốt lõi: tối ưu hóa quá trình điều khiển dọc (longitudinal control) của phương tiện thông qua thuật toán tự động chuyển đổi chế độ thông minh giữa Kiểm soát Tốc độ (Speed Control) và Kiểm soát Khoảng cách (Distance Control).

Mục tiêu nghiên cứu cụ thể:

  1. Nghiên cứu cơ sở lý thuyết: Khảo sát toàn diện cấu trúc mạng điện tử ô tô (ECU, ECM, ABS, EPS), nguyên lý hoạt động của hệ thống cảm biến đo lường (Radar 77 GHz, Wheel Speed Sensor - WSS, Throttle Position Sensor - TPS) và giải thuật điều khiển thích ứng.
  2. Thiết kế và đồng mô phỏng (Co-simulation): Xây dựng giải thuật điều khiển ACC trên môi trường MATLAB/Simulink R2021b kết hợp mô hình động lực học ô tô phi tuyến đa bậc tự do trong CarSim 2020.0.
  3. Chế tạo mô hình thực nghiệm Hardware-in-the-Loop (HIL): Triển khai nguyên mẫu xe tự hành tỷ lệ thu nhỏ sử dụng vi điều khiển ESP32 Tensilica Dual-Core, cảm biến khoảng cách quang/hồng ngoại, encoder đo vận tốc góc, mạch cầu H L298N và lập trình giao diện giám sát Telemetry thời gian thực trên nền tảng Flutter.

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

  • Phạm vi: Tập trung vào bài toán điều khiển chuyển động dọc (Longitudinal Dynamics Control) trên đường thẳng và đánh giá an toàn khi vào cua bán kính lớn; dải vận tốc hoạt động tiêu chuẩn từ $40 \text{ km/h} \ đến \ 200 \text{ km/h}$.
  • Giới hạn: Không can thiệp sâu vào bài toán điều khiển chuyển động ngang (Lateral Control / Lane Keeping Assist); giả định điều kiện bám mặt đường ổn định ($\mu = 0.85 - 1.0$) và bỏ qua ảnh hưởng của thời tiết cực đoan lên cảm biến Radar mô phỏng.

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

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

Tiêu chí so sánh Lái xe truyền thống Cruise Control (CC) Adaptive Cruise Control (ACC) Cooperative ACC (CACC - V2X)
Cơ chế điều khiển Hoàn toàn thủ công qua chân ga/phanh Tự động giữ bướm ga theo vận tốc $V_{set}$ Tự động điều chỉnh ga & phanh theo $V_{lead}, d_{real}$ Điều khiển đồng bộ đa xe qua sóng DSRC / 5G-V2X
Phản ứng trước vật cản Phụ thuộc 100% vào thời gian phản xạ tài xế Không có phản ứng (Người lái phải đạp phanh) Tự động giảm tốc / phanh ABS đạt ngưỡng an toàn Phanh dự đoán trước khi cảm biến cục bộ nhận diện
Khả năng tiết kiệm nhiên liệu Kém (do thói quen giật ga/phanh thất thường) Tốt trên đường trường thông thoáng (~5-7%) Tối ưu hóa chu trình tăng/giảm tốc (~8-12%) Tối ưu tối đa nhờ giảm lực cản khí động học (~15-20%)
Độ phức tạp tính toán Không có Thấp (Vòng lặp đơn PID tốc độ) Trung bình-Cao (State-machine + Multi-loop PID/MPC) Rất cao (Hệ thống phân tán thời gian thực)
Chi phí phần cứng Tối thiểu ($0) Thấp (Tích hợp sẵn trong ECU ECM) Trung bình (Bổ sung Radar 77GHz + Actuator ABS/ESC) Rất cao (Hạ tầng Roadside Unit + OBU 5G)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW:

  • Must Have (Bắt buộc phải có):
    • Khối logic chuyển mạch trạng thái mượt mà giữa Speed Control ($d \ge d_{set}$) và Distance Control ($d < d_{set}$).
    • Vòng điều khiển hồi tiếp kín PID đảm bảo sai số xác lập vận tốc $e_{ss} < 2%$.
    • Cơ chế ngắt tự động (Auto-cancel) khi vận tốc $V < 40 \text{ km/h}$ hoặc khi nhận tín hiệu bàn đạp phanh.
  • Should Have (Nên có):
    • Thuật toán cài đặt khoảng cách an toàn động phụ thuộc thời gian giãn cách (Time-gap: $1.0\text{s} - 2.2\text{s}$).
    • Giao diện điều khiển và trực quan hóa dữ liệu vận hành Telemetry qua giao thức Wi-Fi/WebSockets.
  • Could Have (Có thể có):
    • Tích hợp bộ lọc Kalman mở rộng (EKF) để khử nhiễu tín hiệu khoảng cách từ cảm biến.
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Điều khiển bẻ lái tự động tránh vật cản khẩn cấp (Emergency Steer Assist).

Thiết kế hệ thống

Kiến trúc hệ thống ACC được tổ chức theo cấu trúc 4 tầng chuẩn công nghiệp ô tô:

+-----------------------------------------------------------------------------+
|                                TẦNG CẢM BIẾN                                |
|  - Radar tầm xa (77-81 GHz): Khoảng cách (d), Vận tốc tương đối (ΔV)        |
|  - Cảm biến WSS (Wheel Speed Sensor): Đo vận tốc thực tế (V_real)           |
|  - Cảm biến góc bướm ga (TPS) & Áp suất dầu phanh                           |
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
|                        TẦNG XỬ LÝ & ĐIỀU KHIỂN (ECU)                        |
|  - Khối Logic chuyển mạch (State Machine ACC/CC)                            |
|  - Bộ điều khiển khoảng cách: Dynamic Time-Gap Matrix                       |
|  - Bộ điều khiển vận tốc: Giải thuật PID hồi tiếp vòng kín                  |
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
|                            TẦNG CƠ CẤU CHẤP HÀNH                            |
|  - Engine Control Module (ECM): Can thiệp bướm ga điện tử Drive-by-Wire     |
|  - Anti-lock Braking System (ABS) / ESC: Điều chế áp suất thủy lực          |
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
|                     TẦNG GIÁM SÁT & TELEMETRY (HMI/GUI)                     |
|  - ESP32 Web Server / Flutter Engine: Cài đặt V_set, d_set, hiển thị đồ thị |
+-----------------------------------------------------------------------------+

Bảng công nghệ và thông số kỹ thuật (Technology Stack):

Thành phần Công nghệ / Nền tảng Phiên bản Vai trò kỹ thuật
Môi trường tính toán MATLAB / Simulink R2021b Xây dựng thuật toán điều khiển, xử lý tín hiệu và thiết kế bộ điều khiển PID
Mô phỏng động lực học Mechanical Simulation CarSim 2020.0 Mô hình hóa động lực học khung gầm, lốp xe, động cơ và tương tác 3D đa vật thể
Giao tiếp Co-simulation CarSim S-Function Block v2020.0 Cầu nối truyền nhận tín hiệu Input/Output giữa Simulink và CarSim qua bộ nhớ chia sẻ
Vi điều khiển nhúng ESP32-WROOM-32 (Xtensa 32-bit) 240 MHz Khối vi xử lý trung tâm (ECU) cho mô hình phần cứng thực tế
Framework hiển thị Flutter SDK & Dart Language v3.0.5 Lập trình ứng dụng điều khiển, nhận dữ liệu Telemetry tốc độ cao qua Wi-Fi TCP/UDP
Driver công suất Dual H-Bridge L298N IC N/A Điều khiển băm xung PWM cho hệ thống động cơ chấp hành DC Gear Motor

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

Dự án áp dụng quy trình phát triển chữ V (V-Model Development Methodology) – tiêu chuẩn vàng trong phát triển hệ thống nhúng ô tô (ISO 26262):

Yêu cầu hệ thống (Requirements)                Thử nghiệm mô hình thực tế (Physical Test)
      \                                                    /
   Thiết kế kiến trúc (Architecture)          Kiểm thử tích hợp (Co-sim Validation)
        \                                            /
      Mô hình hóa toán học (Simulink) --- Kiểm tra đơn vị (MIL Testing)

Ma trận đánh giá và giảm thiểu rủi ro (FMEA Matrix):

Mã rủi ro Mô tả sự cố kỹ thuật Mức độ Biện pháp xử lý / Cơ chế dự phòng
RSK-01 Cảm biến Radar mất dấu mục tiêu khi xe phía trước chuyển làn gấp Cao Thiết lập bộ đếm thời gian (Timeout 1.5s), tự động giữ vận tốc hiện tại trước khi chuyển về Speed Control
RSK-02 Trễ vòng lặp điều khiển làm xuất hiện hiện tượng vọt lố (Overshoot) Trung bình Tinh chỉnh thông số vi phân $K_d$ và thêm bộ lọc thông thấp (Low-pass filter) cho đạo hàm sai số
RSK-03 Xung đột phần cứng giữa ngắt đọc Encoder và truyền thông Wi-Fi Cao Sử dụng kiến trúc đa luồng FreeRTOS trên ESP32: Core 0 xử lý Wi-Fi, Core 1 xử lý PID & ngắt ngoại vi

Triển khai và kết quả thực nghiệm

Quy trình phát triển thuật toán (Development Process)

Trọng tâm của hệ thống ACC nằm ở cơ chế chuyển mạch giữa hai chế độ vận hành chính dựa trên hai biến trạng thái: vận tốc xe mục tiêu ($V_{lead}$) so với vận tốc đặt ($V_{set}$), và khoảng cách thực tế ($d$) so với khoảng cách an toàn ($d_{set}$).

Khoảng cách đặt an toàn $d_{set}$ được tính toán động theo phương trình: $$d_{set} = d_0 + t_{gap} \cdot V_{host}$$ Trong đó: $d_0$ là khoảng cách an toàn tĩnh khi dừng xe ($3 \text{ m}$ trong mô phỏng, $15 \text{ cm}$ trên mô hình thực), $t_{gap}$ là thời gian an toàn giãn cách (chọn $t_{gap} = 1.5 \text{ s}$).

Bảng logic chuyển mạch trạng thái:

  • Trường hợp 1: $V_{lead} < V_{set}$ và $d < d_{set} \implies$ Kích hoạt Distance Control (Bộ điều khiển giảm ga, can thiệp phanh để duy trì khoảng cách $d_{set}$).
  • Trường hợp 2: $V_{lead} \ge V_{set}$ và $d < d_{set} \implies$ Duy trì Speed Control theo $V_{set}$ (Khoảng cách đang dần nới rộng an toàn).
  • Trường hợp 3: $V_{lead} < V_{set}$ và $d \ge d_{set} \implies$ Duy trì Speed Control theo $V_{set}$ (Xe chủ duy trì tốc độ mong muốn cho đến khi tiếp cận vùng cảnh báo).
  • Trường hợp 4: $V_{lead} \ge V_{set}$ và $d \ge d_{set} \implies$ Duy trì Speed Control theo $V_{set}$.
                                    +-----------------------+
                                    | Bắt đầu quét RADAR    |
                                    +-----------------------+
                                                |
                                                v
                                    /-----------------------\
                                   /  Phát hiện xe phía      \
                                  <   trước trong dải quét?   >
                                   \                         /
                                    \-----------------------/
                                           /         \
                                     CÓ   /           \  KHÔNG
                                         v             v
                    /--------------------------\    +------------------------+
                   /   d < d_set  VÀ            \   | Chế độ SPEED CONTROL   |
                  <    V_lead < V_set?           >  | Duy trì vận tốc V_set  |
                   \                            /   +------------------------+
                    \--------------------------/
                             /        \
                       CÓ   /          \  KHÔNG
                           v            v
            +------------------------+  +------------------------+
            | Chế độ DISTANCE CONTROL|  | Chế độ SPEED CONTROL   |
            | Bám đuôi: V -> V_lead  |  | Duy trì vận tốc V_set  |
            | Duy trì:  d -> d_set   |  +------------------------+
            +------------------------+

Thuật toán điều khiển PID vận tốc số hóa (Discrete PID) được cấu hình theo phương trình sai phân: $$u(k) = u(k-1) + K_p [e(k) - e(k-1)] + K_i e(k) \Delta t + K_d \frac{e(k) - 2e(k-1) + e(k-2)}{\Delta t}$$

// Trích xuất mã nguồn thuật toán ACC chạy trên FreeRTOS - Vi điều khiển ESP32
#include <Arduino.h>

// Cấu trúc biến trạng thái hệ thống
struct VehicleState {
    float v_set;         // Vận tốc đặt mong muốn (cm/s hoặc km/h)
    float d_set;         // Khoảng cách an toàn tối thiểu (cm)
    float v_real;        // Vận tốc thực tế đo qua Encoder
    float d_real;        // Khoảng cách thực tế đo qua cảm biến
    float v_lead;        // Vận tốc xe mục tiêu phía trước
};

enum ACC_Mode { SPEED_CONTROL, DISTANCE_CONTROL, AUTO_CANCEL };

ACC_Mode currentMode = SPEED_CONTROL;
float Kp = 2.45, Ki = 0.35, Kd = 0.08;
float prev_error = 0, integral = 0;

int calculate_PID(float target, float current, float dt) {
    float error = target - current;
    integral += error * dt;
    // Anti-windup cho khâu tích phân
    integral = constrain(integral, -100.0f, 100.0f);
    float derivative = (error - prev_error) / dt;
    prev_error = error;
    
    float output = (Kp * error) + (Ki * integral) + (Kd * derivative);
    return constrain((int)output, 0, 255); // Xuất tín hiệu PWM 8-bit
}

void acc_control_loop(void *pvParameters) {
    TickType_t xLastWakeTime = xTaskGetTickCount();
    const TickType_t xFrequency = pdMS_TO_TICKS(20); // Chu kỳ 50Hz (20ms)

    for (;;) {
        // Kiểm tra điều kiện ngắt tự động (Auto-cancel)
        if (digitalRead(BRAKE_PEDAL_PIN) == HIGH || vehicle.v_real < 10.0) {
            currentMode = AUTO_CANCEL;
        } else {
            // Đánh giá logic chuyển mạch trạng thái
            if (vehicle.d_real < vehicle.d_set && vehicle.v_lead < vehicle.v_set) {
                currentMode = DISTANCE_CONTROL;
            } else {
                currentMode = SPEED_CONTROL;
            }
        }

        int pwm_out = 0;
        switch (currentMode) {
            case SPEED_CONTROL:
                pwm_out = calculate_PID(vehicle.v_set, vehicle.v_real, 0.02);
                analogWrite(MOTOR_PWM_PIN, pwm_out);
                break;
            case DISTANCE_CONTROL:
                // Bám theo vận tốc xe dẫn đầu để giữ khoảng cách an toàn
                pwm_out = calculate_PID(vehicle.v_lead, vehicle.v_real, 0.02);
                analogWrite(MOTOR_PWM_PIN, pwm_out);
                break;
            case AUTO_CANCEL:
                analogWrite(MOTOR_PWM_PIN, 0); // Ngắt động lực kéo
                break;
        }
        vTaskDelayUntil(&xLastWakeTime, xFrequency);
    }
}

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

Hệ thống được kiểm thử nghiệm ngặt qua 2 giai đoạn: Đồng mô phỏng trên CarSim/Simulink và Thực nghiệm trên mô hình xe vật lý.

1. Kịch bản mô phỏng CarSim - Simulink:

  • Kịch bản 1 ($d < d_{set}$): Xe chủ di chuyển với $V_{set} = 100 \text{ km/h}$, tiếp cận xe dẫn đầu đang chạy với $V_{lead} = 60 \text{ km/h}$ ở cự ly ban đầu $70 \text{ m}$. Bộ điều khiển nhận diện $d < d_{set}$ ($d_{set} \approx 45 \text{ m}$ tại $100 \text{ km/h}$), lập tức chuyển sang Distance Control, hạ ga và áp dụng lực phanh $3.2 \text{ m/s}^2$. Sau $4.8 \text{ s}$, xe chủ đồng tốc tại $60 \text{ km/h}$ và duy trì khoảng cách ổn định đúng $28 \text{ m}$.
  • Kịch bản 2 ($d \ge d_{set}$ - Xe trước chuyển làn): Xe dẫn đầu tăng tốc hoặc chuyển làn rời khỏi quỹ đạo, $d \rightarrow \infty$. Hệ thống tự động chuyển sang Speed Control, tăng tốc mượt mà với gia tốc giới hạn $a \le 1.8 \text{ m/s}^2$ để đưa xe trở lại vận tốc $V_{set} = 100 \text{ km/h}$ mà không gây giật (Jerk $< 2.0 \text{ m/s}^3$).
        VẬN TỐC THEO THỜI GIAN (KỊCH BẢN 1: BÁM ĐUÔI)
(km/h)
100 +-------...                                 <- V_set (100 km/h)
    |          \
 80 |           \
    |            \
 60 |             +===========================  <- V_lead = V_host (60 km/h)
    |
    +---+----+----+----+----+----+----+----+-> Thời gian (s)
    0   1    2    3    4    5    6    7    8

2. Kịch bản thực nghiệm mô hình phần cứng:

Chỉ số đánh giá (Metrics) Mục tiêu thiết kế Kết quả CarSim/Simulink Kết quả mô hình thực tế (ESP32)
Thời gian đáp ứng ($t_r$) $< 2.5 \text{ s}$ $1.85 \text{ s}$ $2.10 \text{ s}$
Độ vọt lố (Overshoot - $M_p$) $< 5.0%$ $1.8%$ $4.2%$
Sai số xác lập vận tốc ($e_{ss}$) $< 2.0%$ $0.5%$ ($\pm 0.5 \text{ km/h}$) $1.8%$ ($\pm 1.2 \text{ cm/s}$)
Sai số duy trì khoảng cách $< 5.0%$ $1.2%$ ($\pm 0.35 \text{ m}$) $3.5%$ ($\pm 1.5 \text{ cm}$)
Tần số lấy mẫu hệ thống $\ge 50 \text{ Hz}$ $1000 \text{ Hz}$ (Ode4) $50 \text{ Hz}$ (FreeRTOS Tick 20ms)

Đổi mới và đóng góp kỹ thuật

  1. Hoàn thiện mô hình đồng mô phỏng CarSim - Simulink phi tuyến cao: Khác với các nghiên cứu lý thuyết đơn thuần chỉ sử dụng hàm truyền tuyến tính bậc 1 hoặc bậc 2 trên MATLAB, đề tài đã tích hợp trọn vẹn mô hình khí động học, ma sát lốp Pacejka và hệ thống treo 3D trong CarSim, phản ánh chân thực các hiện tượng trượt lết và thay đổi tải trọng trục khi phanh.
  2. Kiến trúc nhúng biên (Edge Embedded) trên ESP32: Ứng dụng thành công hệ điều hành thời gian thực FreeRTOS để tách biệt tác vụ điều khiển động cơ chu kỳ chuẩn $20 \text{ ms}$ ($50 \text{ Hz}$) và luồng truyền thông mạng không dây, loại bỏ hoàn toàn hiện tượng jitter/trễ điều khiển do truyền nhận dữ liệu.
  3. Ứng dụng Cross-Platform HMI Telemetry: Phát triển bộ giao diện điều khiển bằng Flutter kết nối trực tiếp với xe mô hình, cho phép cấu hình tham số PID ($K_p, K_i, K_d$) "nóng" (On-the-fly tuning) và vẽ đồ thị trực quan đáp ứng vận tốc/khoảng cách tức thời mà không cần nạp lại vi điều khiển.

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

+-----------------------------------------------------------------------------+
|                     HỆ SINH THÁI ỨNG DỤNG THỰC TẾ                           |
|                                                                             |
|   +-----------------------+   +--------------------+   +----------------+   |
|   | XE DU LỊCH & XE KHÁCH |   |  XE ĐẦU KÉO LOGISTICS |   | AGV NHÀ KHO    |   |
|   | - Giảm 80% áp lực lái |   | - Chạy đội hình    |   | - Tránh va chạm|   |
|   | - Tiết kiệm 8-12% xăng|   |   (Platooning)     |   |   tự động      |   |
|   +-----------------------+   +--------------------+   +----------------+   |
+-----------------------------------------------------------------------------+

Kịch bản triển khai thực tế (Use-Cases):

  • Giao thông xa lộ và cao tốc: Phương tiện tự động giữ cự ly an toàn ở dải tốc độ $80 - 120 \text{ km/h}$, hỗ trợ tài xế duy trì sự tỉnh táo và phản ứng lập tức khi phương tiện phía trước phanh gấp.
  • Đội xe tải vận tải hàng hóa (Truck Platooning): Ứng dụng thuật toán duy trì khoảng cách cực ngắn an toàn giữa các xe tải, giảm lực cản gió khí động học, giúp tiết kiệm $10 - 15%$ tổng chi phí nhiên liệu vận tải đường dài.
  • Robot tự hành AGV trong nhà máy thông minh: Ứng dụng module bám khoảng cách để di chuyển nối đuôi nhau trên các đường dẫn line từ tính hoặc laser mà không lo nguy cơ va chạm cục bộ.

Dự toán chi phí và hiệu quả đầu tư (Cost-Benefit Analysis):

  • Chi phí phần cứng thử nghiệm: Khoảng $1.500.000 \text{ - } 2.500.000 \text{ VNĐ}$ cho nguyên mẫu xe mô hình đầy đủ (ESP32, Sensor IR/Ultrasound, Encoder, Motor Driver, Khung gầm).
  • Khả năng mở rộng trên xe thương mại: Cần bổ sung cảm biến Radar sóng milimet 77GHz (chi phí OEM ~$80 - $150 USD) và bộ giải mã mạng CAN-Bus (Controller Area Network) để tích hợp thẳng vào ECU nguyên bản của xe.

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

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

  • Hạn chế cảm biến đơn: Mô hình thực nghiệm sử dụng cảm biến quang/hồng ngoại tầm ngắn ($10 - 80 \text{ cm}$), dễ bị ảnh hưởng bởi ánh sáng môi trường và góc phản xạ xiên.
  • Góc quét Radar khi vào cua gắt: Trong CarSim, khi xe di chuyển vào góc cua có bán kính $R < 50 \text{ m}$, cảm biến Radar tầm xa dễ bị mất dấu đối tượng do góc mở ngang (Azimuth Field of View) bị giới hạn trong khoảng $\pm 10^\circ - \pm 15^\circ$.

Kế hoạch nâng cấp và phát triển tiếp theo:

  1. Sensor Fusion: Kết hợp dữ liệu đồng thời giữa Camera quan sát (Computer Vision qua OpenCV/YOLO) và Radar tầm xa để nhận diện chính xác làn đường và phân loại vật cản.
  2. Nâng cấp giải thuật lên MPC (Model Predictive Control): Thay thế bộ điều khiển PID cổ điển bằng điều khiển dự báo mô hình MPC nhằm tối ưu hóa đa mục tiêu: vừa bám khoảng cách, vừa tối ưu mức tiêu thụ năng lượng và hạn chế tối đa độ giật (Jerk minimization).
  3. Mở rộng giao tiếp V2X (Vehicle-to-Everything): Tích hợp module thu phát DSRC/C-V2X để triển khai hệ thống kiểm soát hành trình thích ứng hợp tác (CACC).

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

  • Sinh viên ngành Kỹ thuật Ô tô, Cơ điện tử & Tự động hóa: Bộ tài liệu tham khảo hoàn chỉnh từ mô hình toán, file cấu hình CarSim/Simulink đến mã nguồn vi điều khiển C++ thực tế phục vụ làm đồ án, khóa luận tốt nghiệp.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Nắm bắt kiến trúc phân luồng FreeRTOS trên vi điều khiển kép và phương pháp lập trình ứng dụng điều khiển kết hợp GUI thời gian thực (Flutter).
  • Các nhóm nghiên cứu Robot & Xe tự hành (Researchers): Phương pháp luận chuẩn hóa theo mô hình V-Model và cấu trúc đồng mô phỏng CarSim - Simulink để thử nghiệm các thuật toán điều khiển tiên tiến (Fuzzy Logic, MPC, Deep Reinforcement Learning).

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

1. Yêu cầu cấu hình máy tính để chạy đồng mô phỏng MATLAB/Simulink và CarSim là gì?

Hệ thống yêu cầu tối thiểu CPU Intel Core i5 / AMD Ryzen 5 thế hệ 8 trở lên, RAM tối thiểu 8GB (khuyến nghị 16GB), ổ cứng SSD còn trống tối thiểu 20GB và hệ điều hành Windows 10/11 64-bit. Phiên bản CarSim tương thích tốt nhất với MATLAB R2018b đến R2021b.

2. Tại sao hệ thống ACC lại tự động hủy khi vận tốc xe dưới 40 km/h?

Đây là tiêu chuẩn an toàn của các hệ thống ACC truyền thống thế hệ đầu (dành cho đường cao tốc). Dưới $40 \text{ km/h}$ (môi trường đô thị phức tạp), cảm biến Radar đơn lẻ khó xử lý được các tình huống người đi bộ cắt ngang hoặc xe máy chen lấn. Các xe hiện đại ngày nay cần bổ sung tính năng Stop & Go (Full Speed Range ACC) kết hợp camera để hoạt động từ $0 \text{ km/h}$.

3. Thuật toán xử lý thế nào khi một phương tiện khác đột ngột chuyển làn tạt đầu xe chủ?

Khi xuất hiện vật cản ở cự ly nhỏ hơn ngưỡng an toàn khẩn cấp ($d < d_{critical}$), khối logic sẽ kích hoạt trạng thái phanh khẩn cấp (Emergency Brake Deceleration). Tín hiệu điều khiển bướm ga lập tức bị khóa về 0% và lệnh phanh tối đa ($a_{decel} \ge 5.0 \text{ m/s}^2$) được gửi trực tiếp tới module ABS/ESC để giảm thiểu nguy cơ va chạm.

4. Chi phí chế tạo mô hình thực nghiệm phần cứng có đắt không?

Hoàn toàn không. Toàn bộ linh kiện bao gồm kit vi điều khiển ESP32, module L298N, động cơ DC có đĩa encoder quang học và cảm biến Sharp IR có tổng chi phí dưới 2 triệu VNĐ, cực kỳ phù hợp cho môi trường học tập và nghiên cứu của sinh viên.

5. Làm thế nào để kết nối dữ liệu từ vi điều khiển ESP32 lên giao diện Flutter?

ESP32 được cấu hình hoạt động như một Wi-Fi Access Point hoặc kết nối chung vào mạng LAN nội bộ, khởi tạo một WebSockets Server trên cổng 81. Ứng dụng Flutter sẽ kết nối tới địa chỉ IP của ESP32 thông qua giao thức WebSockets để nhận luồng dữ liệu JSON thời gian thực với tần số phản hồi cao ($20-50 \text{ Hz}$).


Kết luận

Đề tài "Thiết kế và mô phỏng bộ điều khiển hành trình có thích nghi (Adaptive Cruise Control) cho xe tự hành" đã giải quyết trọn vẹn chuỗi mắt xích nghiên cứu từ cơ sở lý thuyết động lực học ô tô, xây dựng thuật toán điều khiển trên môi trường mô phỏng chuyên sâu MATLAB/Simulink & CarSim, đến việc hiện thực hóa thành công trên mô hình phần cứng nhúng thực nghiệm sử dụng ESP32 và ứng dụng giám sát Flutter. Kết quả cho thấy hệ thống chuyển đổi mượt mà giữa các chế độ điều khiển, duy trì sai số bám vận tốc dưới $2%$ và sai số khoảng cách dưới $3.5%$, đáp ứng đầy đủ các tiêu chuẩn kỹ thuật an toàn chuyển động dọc. Đây là nền tảng học thuật và thực nghiệm vững chắc, mở ra tiềm năng ứng dụng to lớn trong nghiên cứu phát triển các phương tiện tự hành thông minh tại Việt Nam trong tương lai.