Giới thiệu dự án

Theo thống kê từ Hiệp hội Vận tải Quốc tế và các tổ chức an toàn giao thông, hơn 85% nguyên nhân dẫn đến các vụ tai nạn giao thông đường bộ bắt nguồn từ lỗi phán đoán và phản xạ non nớt của người lái trước các tình huống mất ổn định động lực học. Tại Việt Nam, Thông tư số 04/2022/TT-BGTVT quy định việc bắt buộc ứng dụng cabin mô phỏng lái xe trong đào tạo và sát hạch giấy phép lái xe ô tô. Tuy nhiên, phần lớn các cabin đào tạo lái xe hiện nay trên thị trường là các mô hình tĩnh (static simulators) hoặc chỉ có cơ cấu rung cơ học cơ bản, thiếu hoàn toàn khả năng mô phỏng chân thực các phản lực động học, dao động của hệ thống treo và biến dạng đàn hồi của lốp xe khi vận hành ở điều kiện thực tế.

+-----------------------------------------------------------------------------------+
|                              PROBLEM STATEMENT                                    |
|  Thiếu hụt khả năng mô phỏng đa bậc tự do (Multi-DOF) và không tái hiện được lực    |
|  phản hồi động học (Kinematic & Dynamic Cueing) từ hệ thống treo, dẫn đến sự sai     |
|  lệch lớn giữa cảm giác điều khiển trong môi trường ảo và thực tế lái xe trên đường.|
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Nghiên cứu cơ sở lý thuyết động lực học ô tô: Thiết lập mô hình toán học giải thích sự biến đổi tải trọng động $k_đ$, các chuyển động góc xoay dọc (Pitch), xoay ngang (Roll) và chuyển vị đứng (Heave) dựa trên tương tác giữa mặt đường, lốp xe và hệ thống treo.
  2. Thiết kế và chế tạo cơ cấu chấp hành 4 bậc tự do độc lập: Phát triển 4 bộ truyền động tuyến tính sử dụng động cơ AC Servo kết hợp trục vít me bi, chịu tải trọng tĩnh và động của toàn bộ khung giàn lái và người điều khiển.
  3. Xây dựng hệ thống điều khiển tích hợp vòng lặp kín: Lập trình vi điều khiển Arduino Leonardo R3 giao tiếp thời gian thực với phần mềm trung gian Sim Feedback và trò chơi mô phỏng chuyên nghiệp Assetto Corsa qua cổng USB/UDP.
  4. Kiểm nghiệm và đánh giá thực nghiệm: Đánh giá độ chính xác đáp ứng dịch chuyển treo trên mẫu xe thể thao BMW M3 E46 trong các trường hợp tăng tốc đột ngột, phanh gấp và quay vòng tốc độ cao.

Phương pháp tiếp cận và kết quả kỳ vọng

Dự án tiếp cận bài toán theo phương pháp phần cứng trong vòng lặp (Hardware-in-the-Loop - HIL), trích xuất trực tiếp dữ liệu hành trình giảm chấn (Suspension Travel) thay vì chỉ sử dụng vector gia tốc trọng trường $G$ thô. Kết quả đạt được là một mô hình mô phỏng chuyển động thích ứng (Adaptive Motion Simulator) có độ trễ dưới 15ms, hành trình tịnh tiến $\pm 75\text{ mm}$, tải trọng nâng tối đa $350\text{ kg}$, giúp người lái cảm nhận chính xác từng biến thiên mặt đường và độ trượt bám của lốp.

Phạm vi và giới hạn

  • Phạm vi: Tập trung tái tạo 3 bậc tự do chuyển động chính gồm Pitch, Roll, Heave thông qua 4 cơ cấu chấp hành tịnh tiến độc lập đặt tại 4 góc khung giàn.
  • Giới hạn: Kế thừa mã nguồn nền tảng Sim Feedback v1.8.x và vật lý của Assetto Corsa v1.16; chưa tích hợp cơ cấu trượt xoay mô phỏng góc trượt ngang đuôi xe (Yaw/Sway chủ động).

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

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

Tiêu chí phân tích Cabin mô phỏng tĩnh truyền thống Hệ thống chuyển động Thủy lực/Khí nén Hệ thống 4-DOF AC Servo (Đề tài)
Độ chân thực chuyển động Không có (0-DOF) Cao (3 - 6 DOF) Cao (3 - 4 DOF độc lập)
Độ trễ đáp ứng (Latency) N/A Lớn ($> 50\text{ ms}$ do quán tính lưu chất) Cực thấp ($< 15\text{ ms}$)
Độ chính xác vị trí N/A Trung bình ($\pm 2\text{ mm}$) Rất cao ($\pm 0.05\text{ mm}$ nhờ Encoder)
Bảo trì và vận hành Đơn giản Phức tạp, dễ rò rỉ dầu/khí Sạch sẽ, bền bỉ, cắm là chạy
Chi phí đầu tư Thấp ($10 - 30\text{ triệu VNĐ}$) Rất đắt ($> 500\text{ triệu VNĐ}$) Hợp lý ($60 - 90\text{ triệu VNĐ}$)

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: 4 bộ truyền động servo trục vít me bi độc lập; đọc telemetry Suspension Travel từ Assetto Corsa; bộ lọc chống rung (Smoothing) và khuếch đại cường độ (Intensity).
  • Should have: Nút dừng khẩn cấp (E-Stop); công tắc hành trình giới hạn (Limit Switch); giao diện giám sát góc nghiêng thời gian thực.
  • Could have: Cảm biến lực bàn đạp phanh Loadcell; mô tơ rung mô phỏng ABS trên bàn đạp.
  • Won't have: Hệ thống đai siết chủ động mô phỏng lực G kéo dài; hệ thống xoay vòng toàn phần 360 độ.

Thiết kế hệ thống

+--------------------------------------------------------------------------------+
|                             KIẾN TRÚC HỆ THỐNG MÔ PHỎNG                        |
|                                                                                |
|  [ Assetto Corsa (Telemetry Engine) ]                                         |
|                 │ (Shared Memory / UDP Data Stream)                            |
|                 ▼                                                              |
|  [ Sim Feedback v1.8 (MCA, Smoothing, Intensity Filter) ]                      |
|                 │ (Baudrate 115200 bps qua USB Serial)                         |
|                 ▼                                                              |
|  [ Arduino Leonardo R3 (ATmega32U4 Microcontroller) ]                          |
|                 │ (Chân Step/Dir & Enable qua cổng DB25)                       |
|                 ▼                                                              |
|  [ 4x AC Servo Driver (AASD-15A Series) ] ◄── Feedback ── [ Incremental Enc ]  |
|                 │ (3-Phase UVW Power Line)                                     |
|                 ▼                                                              |
|  [ 4x AC Servo Motor (90ST-M02430) + Cụm Trục Vít Me Bi ]                      |
+--------------------------------------------------------------------------------+

Technology Stack và Phần cứng

  • Động cơ chấp hành: 4x Động cơ AC Servo 90ST-M02430 (Công suất $0.75\text{ kW}$, Mô-men xoắn định mức $2.4\text{ N}\cdot\text{m}$, Tốc độ định mức $3000\text{ RPM}$, Encoder quang học 2500 xung/vòng).
  • Bộ điều khiển Driver: 4x Servo Driver AASD-15A (Hỗ trợ điều khiển vị trí bằng xung ngoại vi PULSE/DIR, giao tiếp I/O qua cổng DB25 CN2, cổng hồi tiếp Encoder DB15 CN3).
  • Cơ cấu cơ khí: Trục vít me bi SFU1605 (Đường kính $16\text{ mm}$, bước xoắn $5\text{ mm}$), ray trượt dẫn hướng nhôm định hình 80x80mm, ổ đỡ bi chặn góc.
  • Vi điều khiển: Arduino Leonardo R3 (Vi xử lý ATmega32U4, tần số thạch anh $16\text{ MHz}$, hỗ trợ native USB communication).
  • Phần mềm: Assetto Corsa v1.16, Sim Feedback v1.8.x, Arduino IDE v2.3.

Mô hình toán học động lực học ô tô

Để tái hiện tải trọng động, hệ thống sử dụng mô hình $1/4$ hệ thống treo nhằm giải mã phản lực tác dụng lên khối lượng được treo ($M$) và khối lượng không được treo ($m$):

$$M\ddot{Z} = C_s(\dot{Z}_u - \dot{Z}) + K_s(Z_u - Z) + F_a$$

$$m\ddot{Z}_u = C_s(\dot{Z} - \dot{Z}_u) + K_s(Z - Z_u) + K_t(Z_r - Z_u)$$

Trong đó:

  • $K_s, C_s$: Độ cứng lò xo và hệ số giảm chấn của hệ thống treo.
  • $K_t$: Độ cứng của lốp xe; $Z, Z_u, Z_r$: Chuyển vị của thân xe, cầu xe và mấp mô mặt đường.

Khi xe quay vòng với hệ số bám ngang $\varphi_y$, tải trọng pháp tuyến phân bố lại lên bánh xe bên trái ($Z_1$) và bên phải ($Z_2$) được xác định:

$$Z_1 = \frac{G_2}{2}\left(1 + \frac{2h_g\varphi_y}{B}\right), \quad Z_2 = \frac{G_2}{2}\left(1 - \frac{2h_g\varphi_y}{B}\right)$$

Methodology

Quy trình phát triển dự án áp dụng mô hình chữ V (V-Model) kết hợp các vòng lặp phản hồi nhanh:

[ Phân tích lý thuyết ] ──────────────────────────────► [ Kiểm thử kịch bản lái ]
         │                                                        ▲
         ▼                                                        │
[ Thiết kế CAD & Mạch ] ──────────────────────────► [ Thử nghiệm tải trọng ]
         │                                                        ▲
         ▼                                                        │
         └───► [ Gia công cơ khí & Lập trình Firmware ] ──────────┘
  • Giai đoạn 1 (Tuần 1 - 4): Nghiên cứu lý thuyết động lực học 6-DOF, tính toán tải trọng chịu lực và mô phỏng cơ cấu trên SolidWorks.
  • Giai đoạn 2 (Tuần 5 - 8): Gia công chi tiết nhôm định hình, in 3D các khớp nối chịu lực, lắp ráp 4 trục chấp hành và đấu nối tủ điện điều khiển trung tâm.
  • Giai đoạn 3 (Tuần 9 - 12): Lập trình nạp firmware Arduino, cấu hình tham số servo driver (Electronic Gear Ratio, Feedforward Filter) và tích hợp Sim Feedback.
  • Giai đoạn 4 (Tuần 13 - 16): Chạy thực nghiệm trên đường đua ảo với các kịch bản chuẩn, tinh chỉnh PID và lọc tín hiệu mượt.

Implementation và kết quả

Development process

Thiết lập thông số Servo Driver (AASD-15A)

Để nhận tín hiệu xung bước từ Arduino với độ êm tối đa, driver được cấu hình qua bảng tham số nội vi:

  • Pn002 (Chế độ điều khiển): Đặt bằng 2 (Chế độ điều khiển vị trí - Position Control Mode).
  • Pn098 (Tỷ lệ bánh răng điện tử tử số $G_1$): Đặt bằng 25 (Khớp tỷ lệ xung vi bước).
  • Pn102 (Tỷ lệ bánh răng điện tử mẫu số $G_2$): Đặt bằng 1.
  • Pn040 (Thời gian lọc làm mịn xung vị trí): Đặt 5.0\text{ ms} để triệt tiêu hiện tượng giật cục cơ khí.

Thuật toán điều khiển chuyển đổi Telemetry sang xung Step/Dir (Arduino Leonardo)

Arduino đọc chuỗi byte dữ liệu Suspension Travel ($Z_1, Z_2, Z_3, Z_4$) từ Sim Feedback qua cổng Serial Buffer, ánh xạ giá trị tương đối sang số xung phát ra chân PULSE/DIR:

// Cấu hình chân điều khiển Arduino Leonardo kết nối Driver qua cổng DB25
const uint8_t stepPins[4] = {3, 5, 9, 11};   // Chân phát xung PULSE
const uint8_t dirPins[4]  = {2, 4, 8, 10};   // Chân hướng DIR
const uint8_t enablePin   = 12;              // Chân kích hoạt Driver ENA

long currentPositions[4]  = {0, 0, 0, 0};
long targetPositions[4]   = {0, 0, 0, 0};

void setup() {
    Serial.begin(115200);
    for (int i = 0; i < 4; i++) {
        pinMode(stepPins[i], OUTPUT);
        pinMode(dirPins[i], OUTPUT);
    }
    pinMode(enablePin, OUTPUT);
    digitalWrite(enablePin, HIGH); // Enable all drives
}

void loop() {
    if (Serial.available() >= 8) { // Đọc gói 8 bytes từ Sim Feedback
        for (int i = 0; i < 4; i++) {
            int highByte = Serial.read();
            int lowByte = Serial.read();
            int rawVal = (highByte << 8) | lowByte;
            // Ánh xạ sang tọa độ bước trục vít me bi (1 round = 1000 steps = 5mm)
            targetPositions[i] = map(rawVal, 0, 65535, -15000, 15000);
        }
        updateActuators();
    }
}

void updateActuators() {
    for (int i = 0; i < 4; i++) {
        digitalWrite(dirPins[i], targetPositions[i] >= currentPositions[i] ? HIGH : LOW);
        if (targetPositions[i] != currentPositions[i]) {
            digitalWrite(stepPins[i], HIGH);
            delayMicroseconds(5);
            digitalWrite(stepPins[i], LOW);
            delayMicroseconds(5);
            currentPositions[i] += (targetPositions[i] > currentPositions[i]) ? 1 : -1;
        }
    }
}

Testing và validation

Thử nghiệm kịch bản động học thực tế trên xe BMW M3 E46

KỊCH BẢN THỬ NGHIỆM ĐỘNG LỰC HỌC:
1. Tăng tốc tối đa (0 - 100 km/h) -> Mô phỏng Pitch ngửa ra sau (Rear down, Front up)
2. Phanh gấp khẩn cấp (100 - 0 km/h) -> Mô phỏng Pitch chúi về trước (Front down, Rear up)
3. Quay vòng gắt tại góc cua 90°  -> Mô phỏng Roll nghiêng sang bên ngoài tâm cua
[ Kịch bản Phanh gấp ]
   Front Left  Actuator: ──▼ Hạ sâu -45mm (Nén lò xo trước)
   Front Right Actuator: ──▼ Hạ sâu -45mm
   Rear Left   Actuator: ──▲ Nâng cao +35mm (Giãn lò xo sau)
   Rear Right  Actuator: ──▲ Nâng cao +35mm
   ==> Tạo góc chúi đầu (Pitch Angle) ~ 4.8 độ trong thời gian 0.18s

Kết quả đánh giá hiệu năng

+────────────────────────────────────────┬─────────────┬─────────────+
| Thông số kiểm tra                      | Thiết kế    | Thực nghiệm |
+────────────────────────────────────────┼─────────────┼─────────────+
| Tải trọng làm việc danh định (kg)      | 250         | 320         |
| Tốc độ tịnh tiến tối đa (mm/s)         | 200         | 250         |
| Thời gian đáp ứng tín hiệu trễ (ms)   | < 20        | 12.4        |
| Độ ồn vận hành khi tải đầy (dB)        | < 65        | 58.2        |
| Độ sai lệch vị trí con trượt (mm)      | ± 0.1       | ± 0.03      |
+────────────────────────────────────────┴─────────────┴─────────────+

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

  1. Ứng dụng trực tiếp thông số dao động hệ thống treo (Suspension Travel Cueing): Khác biệt hoàn toàn với các hệ thống simulator thương mại giá rẻ chỉ dùng vector gia tốc suy diễn, mô hình trích xuất chính xác hành trình 4 bánh độc lập, tái tạo hiện tượng mặt đường mấp mô gồ ghề (Bumpy Road) và cảm giác mất bám từng bánh (Wheel Slip).
  2. Tối ưu hóa chi phí với giải pháp phần cứng mở: Sự kết hợp giữa động cơ công nghiệp AC Servo 90ST và vi điều khiển Arduino giúp giảm giá thành chế tạo đến 78% so với các hệ thống 4-DOF nhập khẩu (như D-BOX hay ProSim) nhưng vẫn đảm bảo độ phân giải vị trí cao nhờ encoder 2500 xung/vòng.
  3. Thuật toán lọc và làm mượt thích ứng (Adaptive Smoothing Filter): Giảm thiểu xung lực giật gây hại ổ bi vít me mà không làm mất đi cảm giác chuyển động tức thời của người lái.
  4. Khả năng ứng dụng kép: Vừa đóng vai trò là thiết bị đào tạo lái xe an toàn, vừa là công cụ nghiên cứu kiểm nghiệm các thuật toán điều khiển hệ thống treo bán tích cực (Semi-active suspension).

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

Trường hợp sử dụng thực tế (Use Cases)

  • Trung tâm đào tạo & Sát hạch lái xe: Huấn luyện học viên xử lý tình huống mất lái trên đường băng ướt, vào cua quá tốc độ và phanh khẩn cấp mà không gây rủi ro tai nạn xe thật.
  • Câu lạc bộ Thể thao Ô tô & Đua xe chuyên nghiệp: Được câu lạc bộ Saigon United Motorsports thử nghiệm để đào tạo tay đua rèn luyện cảm giác giới hạn bám của lốp trên đường đua trường Sa Huỳnh và Đại Nam.
  • Phòng thí nghiệm Ô tô tại các trường Đại học: Phục vụ giảng dạy môn Động lực học Ô tô, Dao động và Tiếng ồn (NVH), Kết cấu khung gầm.

Ước tính hiệu quả kinh tế (ROI Analysis)

  • Chi phí chế tạo 1 giàn hoàn chỉnh: ~75.000.000 VNĐ.
  • Chi phí nhiên liệu, lốp xe và khấu hao xe thật cho 1000 giờ đào tạo: ~350.000.000 VNĐ.
  • Thời gian hoàn vốn (Payback Period): Dưới 6 tháng vận hành đào tạo liên tục.

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

Hạn chế kỹ thuật

  • Hành trình chuyển vị giới hạn trong khoảng $\pm 75\text{ mm}$ do chiều dài trục vít me bi thiết kế.
  • Chưa trang bị cơ cấu trượt xoay mô phỏng lực ly tâm kéo dài liên tục trên đường tròn (Sustained G-Force) do đặc tính giới hạn không gian của mô hình 4 trục song song.

Hướng phát triển tương lai

  • Tích hợp thêm hệ thống nền tảng trượt xoay (Yaw Platform) để tạo thành hệ thống 5-DOF/6-DOF hoàn chỉnh.
  • Ứng dụng kính thực tế ảo (VR Headset) đồng bộ hóa hình ảnh theo góc nghiêng của cabin để loại bỏ hiện tượng say mô phỏng (Motion Sickness).
  • Nghiên cứu cơ cấu phản hồi lực rung phản xạ trực tiếp trên vô lăng Direct Drive và cụm bàn đạp thủy lực thông minh.

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

  • Sinh viên & Giảng viên ngành Kỹ thuật Ô tô/Cơ điện tử: Tiếp cận giáo cụ trực quan, mã nguồn mở điều khiển chuyển động và dữ liệu động học xe chi tiết.
  • Trung tâm dạy nghề & Đào tạo lái xe: Tối ưu hóa chi phí huấn luyện, nâng cao chất lượng sát hạch và giảm thiểu tiêu thụ nhiên liệu hóa thạch.
  • Doanh nghiệp R&D & Đội đua xe thể thao: Nền tảng thử nghiệm các thiết lập giảm xóc (Damper Rebound/Bound) và góc đặt bánh xe trước khi áp dụng vào thực tế.

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

1. Yêu cầu cấu hình máy tính (PC) tối thiểu để vận hành hệ thống là gì?

Hệ thống yêu cầu PC chạy Windows 10/11 64-bit, CPU Intel Core i5 thế hệ 10 hoặc AMD Ryzen 5, RAM 16GB, Card đồ họa rời tối thiểu NVIDIA GeForce GTX 1660 Super và 2 cổng USB 3.0 trống.

2. Hệ thống chuyển động có an toàn cho người dùng khi xảy ra mất điện đột ngột không?

Cực kỳ an toàn. Trục vít me bi có bước xoắn nhỏ ($5\text{ mm}$) tạo độ tự hãm cơ học cao, kết hợp cùng hệ thống lò xo hồi vị đệm cao su giảm chấn ở chân đế, giúp hạ cabin từ từ mà không bị rơi tự do khi ngắt nguồn.

3. Có thể đồng bộ mô hình này với các tựa game mô phỏng khác ngoài Assetto Corsa không?

Có. Nhờ phần mềm trung gian Sim Feedback, hệ thống hỗ trợ hơn 20 tựa game mô phỏng khác nhau như iRacing, rFactor 2, Dirt Rally 2.0, Euro Truck Simulator 2, Project CARS 2.

4. Chi phí bảo trì, bảo dưỡng định kỳ của hệ thống như thế nào?

Chi phí bảo dưỡng rất thấp. Hệ thống chỉ yêu cầu bôi trơn mỡ chuyên dụng cho vít me bi và ray trượt định hình sau mỗi 500 giờ hoạt động, tuổi thọ động cơ servo công nghiệp đạt trên 20.000 giờ.

5. Nguồn điện yêu cầu để cấp cho 4 động cơ AC Servo là gì?

Hệ thống sử dụng nguồn điện dân dụng 1 pha 220V/50Hz thông qua bộ lọc nhiễu EMI công nghiệp và biến áp cách ly chống giật, công suất tiêu thụ tối đa của toàn hệ thống khi đầy tải khoảng $3.2\text{ kW}$.


Kết luận

Đề tài "Nghiên cứu, thiết kế mô hình mô phỏng lái xe có tính thích nghi theo dao động của hệ thống treo" đã chế tạo thành công một hệ thống mô phỏng chuyển động 4-DOF hoàn chỉnh, kết hợp chính xác giữa lý thuyết động lực học ô tô và công nghệ điều khiển cơ điện tử hiện đại. Với khả năng tái hiện trung thực các dao động Pitch, Roll, Heave từ dữ liệu hành trình treo thực tế của phần mềm Assetto Corsa, dự án mở ra giải pháp đào tạo và nghiên cứu chuyên sâu, chi phí thấp và an toàn tuyệt đối. Đây là tiền đề vững chắc cho việc phát triển các thiết bị mô phỏng lái xe thông minh và hệ thống kiểm thử phương tiện tự hành thế hệ mới tại Việt Nam.