Giới thiệu dự án

Trong kỷ nguyên tự động hóa công nghiệp và phát triển robot thông minh, các hệ thống cơ điện tử có khả năng tự cân bằng đóng vai trò nền tảng trong việc phát triển robot hình người (Humanoid Robot), phương tiện tự hành AGV (Automated Guided Vehicle) và các giải pháp di chuyển cá nhân đô thị. Theo báo cáo từ MarketsandMarkets, thị trường xe tự hành và robot di động (AMR/AGV) dự kiến đạt tốc độ tăng trưởng kép hàng năm (CAGR) trên 16.5% giai đoạn 2023-2030, đòi hỏi các giải pháp điều khiển chuyển động có kích thước nhỏ gọn, khả năng xoay xở linh hoạt trong không gian hẹp và tối ưu hóa chi phí sản xuất.

Hệ thống xe hai bánh tự cân bằng (Two-Wheeled Self-Balancing Robot) là một mô hình thực nghiệm kinh điển đại diện cho lớp đối tượng phi tuyến, đa biến (MIMO - Multiple Input Multiple Output), không ổn định tự nhiên và có bậc tự do liên kết thiếu (underactuated system). Khác với các phương tiện 3-4 bánh truyền thống có vùng đa giác đỡ rộng nhưng cồng kềnh và bán kính quay lớn, xe hai bánh đồng trục có trọng tâm nằm phía trên trục quay, diện tích tiếp xúc mặt sàn chỉ là một đường thẳng nối hai điểm tiếp xúc của lốp xe. Bài toán đặt ra là phải tính toán và tác động lực mô-men xoắn ngược chiều tức thời từ hai động cơ để đưa điểm tựa bánh xe luôn nằm ngay dưới trọng tâm toàn hệ thống.

                  [ Trọng tâm (M, J_Psi) ]
                            |
                            | L (Khoảng cách)
                            | 
                            v
                      Góc nghiêng Ψ
                            /
                           / 
    [ Bánh Trái ] ========O======== [ Bánh Phải ]
       (v_l)          Trục xe          (v_r)
                        |
                        v
                 Mặt sàn tiếp xúc

Mục tiêu dự án

  1. Xây dựng mô hình toán học động lực học: Thiết lập hệ phương trình vi phân phi tuyến chuyển động của hệ xe hai bánh tự cân bằng dựa trên nguyên lý cơ học Euler-Lagrange và định luật Newton.
  2. Thiết kế phần cứng nhúng thời gian thực: Lựa chọn và tích hợp vi điều khiển ATmega2560 16MHz, cảm biến quán tính IMU 6 bậc tự do (6-DOF) MPU-6050, mạch công suất cầu H VNH2SP30 30A và động cơ DC Servo NF5475E có gắn encoder quang tích lũy 200 xung/vòng.
  3. Phát triển thuật toán ước lượng trạng thái: Triển khai bộ lọc số Kalman rời rạc (Discrete Kalman Filter) nhằm dung hợp dữ liệu góc từ gia tốc kế (Accelerometer) và vận tốc góc từ con quay hồi chuyển (Gyroscope), triệt tiêu hiện tượng trôi điểm không (drift) và nhiễu dao động cơ khí dải cao.
  4. Thiết kế và tối ưu hóa giải thuật điều khiển: Áp dụng phương pháp điều khiển tối ưu toàn phương tuyến tính (LQR - Linear Quadratic Regulator) kết hợp giải thuật PID thích nghi mô hình tham chiếu, tách kênh điều khiển cân bằng góc nghiêng ($\Psi$) và góc xoay hướng ($\Phi$).

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

  • Phạm vi hoạt động: Xe hoạt động trên bề mặt sàn phẳng hoặc dốc nghiêng tĩnh tối đa $\le 15^\circ - 20^\circ$.
  • Giới hạn kỹ thuật: Tải trọng mô hình thử nghiệm đạt mức cơ bản ($< 3.5\text{ kg}$), góc nghiêng giới hạn phục hồi cân bằng $\Psi \in [-17.2^\circ, +17.2^\circ]$ ($\pm 0.3\text{ rad}$). Hệ thống sử dụng nguồn pin LiPo 12V 3S và xử lý dữ liệu thời gian thực với chu kỳ ngắt điều khiển cố định $T_s = 5\text{ms} - 10\text{ms}$.

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

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

Tiêu chí Xe ba/bốn bánh truyền thống Robot Segway thương mại Mô hình nghiên cứu Bbot/JOE Giải pháp đề tài (HCMUTE)
Độ ổn định tĩnh Rất cao (đa giác đỡ lớn) Rất cao (hệ thống vòng kín) Phụ thuộc thuật toán DSP Cân bằng chủ động vòng kín
Khả năng xoay xở Kém, bán kính quay $R > 0$ Bán kính quay bằng 0 ($R = 0$) Bán kính quay bằng 0 ($R = 0$) Xoay tại chỗ linh hoạt ($R = 0$)
Cấu trúc điều khiển Động học Ackerman / Vi sai DSP đa lõi + 5 Gyros chuyên dụng DSP SHARC + FPGA Xilinx Vi điều khiển AVR ATmega2560
Giá thành phần cứng Trung bình Rất cao ($> 3000\text{ USD}$) Cao ($> 500\text{ USD}$) Tối ưu chi phí ($< 100\text{ USD}$)
Độ phức tạp giải thuật Thấp Rất cao (bảo vệ đa tầng) Rất cao (State-space DSP) Tối ưu LQR + Kalman nhúng

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

  • Must have (Bắt buộc): Giữ thăng bằng đứng yên trong phạm vi sai số góc $\pm 1^\circ$; thu thập và lọc nhiễu IMU qua bộ lọc Kalman ở tần số $100\text{Hz}$; điều khiển động cơ qua PWM tần số cao ($20\text{kHz}$) để loại trừ tiếng rít âm tần.
  • Should have (Nên có): Điều khiển di chuyển tiến/lùi và rẽ trái/phải thông qua giao tiếp không dây Bluetooth HC-05; phục hồi trạng thái khi có ngoại lực tác động tức thời.
  • Could have (Có thể có): Khả năng vượt địa hình dốc nghiêng lên tới $20^\circ$; giao diện hiển thị trạng thái góc nghiêng và điện áp pin theo thời gian thực.
  • Won't have (Chưa thực hiện): Hệ thống định vị bản đồ SLAM, cảm biến khoảng cách LiDAR/Camera nhận diện vật cản.

Thiết kế hệ thống

graph TD
    subgraph SENSORS["Khối Cảm Biến"]
        IMU["MPU-6050 (Accel + Gyro) via I2C"]
        ENC["Encoder Quang 200 xung/vòng"]
    end

    subgraph PROCESSING["Khối Xử Lý Trung Tâm (Arduino Mega2560)"]
        KF["Bộ Lọc Kalman Rời Rạc"]
        LQR_BAL["Khối LQR Balancing (Góc Nghiêng Psi)"]
        LQR_HEAD["Khối LQR Heading (Góc Xoay Phi)"]
        PWM_GEN["Bộ Tạo Xung PWM (Timer 16MHz)"]
    end

    subgraph ACTUATORS["Khối Chấp Hành & Nguồn"]
        DRIVER["Driver Cầu H VNH2SP30 (30A)"]
        MOTOR_L["DC Servo Trái NF5475E (24V)"]
        MOTOR_R["DC Servo Phải NF5475E (24V)"]
        POWER["2x Pin LiPo 12V 3S 2200mAh (24VDC)"]
    end

    IMU -->|Raw Data| KF
    KF -->|Góc & Vận tốc góc ước lượng| LQR_BAL
    ENC -->|Vị trí & Vận tốc bánh xe| LQR_BAL
    ENC -->|Vận tốc vi sai| LQR_HEAD
    LQR_BAL -->|Điện áp tổng V_Psi| PWM_GEN
    LQR_HEAD -->|Điện áp hiệu V_Phi| PWM_GEN
    PWM_GEN -->|Xung PWM 20kHz + DIR| DRIVER
    POWER -->|Nguồn công suất| DRIVER
    DRIVER --> MOTOR_L
    DRIVER --> MOTOR_R

Technology Stack và Phần cứng chi tiết:

  • Bộ vi điều khiển trung tâm: Microchip ATmega2560 (8-bit AVR, 16MHz clock, 256KB Flash, 8KB SRAM, 54 chân Digital I/O với 15 kênh PWM phần cứng).
  • Cảm biến quán tính (IMU): InvenSense MPU-6050 GY-87 (Tích hợp gia tốc kế 3 trục $\pm 2g/\pm 4g/\pm 8g/\pm 16g$ và con quay hồi chuyển 3 trục $\pm 250/\pm 500/\pm 1000/\pm 2000^\circ/\text{s}$, giao tiếp chuẩn $I^2C$ tốc độ $400\text{kHz}$).
  • Mạch công suất điều khiển động cơ: Module VNH2SP30 Monster Moto Shield (Điện áp làm việc tối đa 16V-24VDC, dòng tải đỉnh $30\text{A}$, dòng liên tục $14\text{A}$, nội trở MOSFET thấp $19\text{m}\Omega$, tần số đóng cắt PWM hỗ trợ tối đa $20\text{kHz}$).
  • Động cơ chấp hành: 2 Động cơ DC Servo NF5475E điện áp danh định 24VDC, mô-men xoắn định mức $74.83\text{ mN}\cdot\text{m}$, dòng định mức $1.256\text{A}$, tích hợp hộp giảm tốc kim loại và encoder quang 2 kênh A/B độ phân giải 200 xung/vòng.
  • Khung gầm và truyền động: Khung xe hợp kim GA25 kích thước $134 \times 64 \times 3\text{ mm}$, bánh xe cao su địa hình V2 bám đường tốt.
  • Nguồn cấp: 2 bộ pin LiPo TCB 12V 3S 2200mAh xả cao 35C mắc nối tiếp/song song kết hợp mạch hạ áp DC-DC Buck Mini 5V 3A (hiệu suất chuyển đổi đạt $97.5%$).

Phương pháp nghiên cứu và phát triển (Methodology)

Dự án áp dụng mô hình phát triển hệ thống cơ điện tử chữ V (V-Model) kết hợp các vòng lặp kiểm chứng thực nghiệm ngắn:

  1. Giai đoạn 1 (Tuần 1 - Tuần 3): Xây dựng mô hình toán động lực học, mô phỏng kiểm chứng tính ổn định trên MATLAB/Simulink R2019b.
  2. Giai đoạn 2 (Tuần 4 - Tuần 6): Thiết kế, gia công khung cơ khí, layout mạch cấp nguồn và phân tầng chống nhiễu cho khối cảm biến.
  3. Giai đoạn 3 (Tuần 7 - Tuần 9): Lập trình vi điều khiển, nhúng thuật toán Kalman Filter, đọc ngắt ngoài encoder tốc độ cao.
  4. Giai đoạn 4 (Tuần 10 - Tuần 12): Thử nghiệm giải thuật điều khiển LQR và PID thích nghi, tinh chỉnh ma trận trọng số $Q$ và $R$, đánh giá đáp ứng quá độ trong thực tế.

Implementation và kết quả

Quá trình phát triển và chi tiết thuật toán

1. Mô hình toán học Động lực học hệ thống

Sử dụng phương pháp Euler-Lagrange với hàm Lagrange $L = T_1 + T_2 - U$, trong đó $T_1$ là động năng tịnh tiến, $T_2$ là động năng quay và $U$ là thế năng toàn hệ. Phương trình vi phân mô tả mối quan hệ giữa góc nghiêng thân xe $\Psi$ và góc quay bánh xe $\theta$:

$$\left[(2m + M)R^2 + 2J_w + 2n^2 J_m\right] \ddot{\theta} + (MLR\cos\Psi - 2n^2 J_m)\ddot{\Psi} - MLR\dot{\Psi}^2 \sin\Psi = F_\theta$$

$$(MLR\cos\Psi - 2n^2 J_m)\ddot{\theta} + (ML^2 + J_\Psi + 2n^2 J_m)\ddot{\Psi} - MgL\sin\Psi = F_\Psi$$

Tuyến tính hóa quanh điểm làm việc thẳng đứng ($\Psi \approx 0, \cos\Psi \approx 1, \sin\Psi \approx \Psi, \dot{\Psi}^2 \approx 0$), hệ phương trình không gian trạng thái được tách thành hai bài toán độc lập: Kênh cân bằng - vị trí (biến trạng thái $x_1 = [\theta, \dot{\theta}, \Psi, \dot{\Psi}]^T$) và Kênh điều khiển hướng (biến trạng thái $x_2 = [\Phi, \dot{\Phi}]^T$).

2. Thuật toán Bộ lọc Kalman rời rạc (Discrete Kalman Filter)

Để loại bỏ nhiễu rung từ động cơ và bù trôi góc theo thời gian, bộ lọc Kalman được cấu hình với vector trạng thái $x_k = [\text{angle}, \text{bias}]^T$:

  • Bước dự đoán (Predict): $$\hat{x}{k|k-1} = \mathbf{A}\hat{x}{k-1|k-1} + \mathbf{B} u_k$$ $$\mathbf{P}{k|k-1} = \mathbf{A}\mathbf{P}{k-1|k-1}\mathbf{A}^T + \mathbf{Q}$$
  • Bước cập nhật đo lường (Update): $$\mathbf{K}k = \mathbf{P}{k|k-1}\mathbf{H}^T \left(\mathbf{H}\mathbf{P}{k|k-1}\mathbf{H}^T + \mathbf{R}\right)^{-1}$$ $$\hat{x}{k|k} = \hat{x}{k|k-1} + \mathbf{K}k \left(z_k - \mathbf{H}\hat{x}{k|k-1}\right)$$ $$\mathbf{P}{k|k} = (\mathbf{I} - \mathbf{K}k\mathbf{H})\mathbf{P}{k|k-1}$$
// Cấu trúc hàm lọc Kalman tối ưu hóa trên vi điều khiển ATmega2560
float Kalman_getAngle(float newAngle, float newRate, float dt) {
    // 1. Dự đoán trạng thái
    rate = newRate - bias;
    angle += dt * rate;

    // 2. Dự đoán ma trận hiệp phương sai sai số
    P[0][0] += dt * (dt * P[1][1] - P[0][1] - P[1][0] + Q_angle);
    P[0][1] -= dt * P[1][1];
    P[1][0] -= dt * P[1][1];
    P[1][1] += Q_bias * dt;

    // 3. Tính độ lợi Kalman (Kalman Gain)
    float S = P[0][0] + R_measure;
    float K[2];
    K[0] = P[0][0] / S;
    K[1] = P[1][0] / S;

    // 4. Cập nhật ước lượng với giá trị đo từ gia tốc kế
    float y = newAngle - angle; // Sai lệch đo lường
    angle += K[0] * y;
    bias  += K[1] * y;

    // 5. Cập nhật ma trận hiệp phương sai sai số
    float P00_temp = P[0][0];
    float P01_temp = P[0][1];

    P[0][0] -= K[0] * P00_temp;
    P[0][1] -= K[0] * P01_temp;
    P[1][0] -= K[1] * P00_temp;
    P[1][1] -= K[1] * P01_temp;

    return angle;
}

3. Bộ điều khiển Tối ưu Toàn phương Tuyến tính (LQR)

Chỉ tiêu chất lượng tối ưu hóa:

$$J = \int_0^\infty \left( x^T \mathbf{Q} x + u^T \mathbf{R} u \right) dt$$

Qua quá trình thử sai và giải phương trình đại số Riccati (ARE) trên MATLAB với ma trận hiệp phương sai trọng số:

$$\mathbf{Q}_1 = \text{diag}([100, 10, 1000, 100]), \quad \mathbf{R}_1 = [1]$$

Xác định được vector hệ số độ lợi hồi tiếp trạng thái:

$$K_1 = \begin{bmatrix} -2.2361 & -2.8402 & -702.2036 & -95.7018 \end{bmatrix}$$

$$K_2 = \begin{bmatrix} 7.0711 & 5.4685 \end{bmatrix}$$

Tín hiệu điện áp điều khiển xuất ra hai động cơ:

$$v_l = V_\Psi + V_\Phi, \quad v_r = V_\Psi - V_\Phi$$

Trong đó $V_\Psi = -K_1 x_1$ (điều khiển cân bằng) và $V_\Phi = -K_2 x_2$ (điều khiển xoay hướng).

// Vòng lặp ngắt điều khiển thời gian thực (Ts = 5ms)
void ISR_Control_Loop() {
    // Đọc cảm biến IMU qua I2C và Encoder qua ngắt
    read_MPU6050_raw(&accX, &accY, &accZ, &gyroX, &gyroY, &gyroZ);
    float pitch_acc = atan2(accY, accZ) * 180.0 / PI;
    float gyro_rate = gyroX / 131.0; // Scale factor cho range +/-250 deg/s
    
    // Ước lượng góc nghiêng chính xác
    float pitch_kalman = Kalman_getAngle(pitch_acc, gyro_rate, 0.005);
    
    // Tính toán biến trạng thái
    float theta_dot = (encoder_left_speed + encoder_right_speed) / 2.0;
    float theta_pos += theta_dot * 0.005;
    float psi_rad   = pitch_kalman * (PI / 180.0);
    float psi_dot   = gyro_rate * (PI / 180.0);

    // Tính toán tín hiệu điều khiển LQR Balancing
    float V_psi = -(K1_0 * theta_pos + K1_1 * theta_dot + K1_2 * psi_rad + K1_3 * psi_dot);
    
    // Bão hòa điện áp xuất ra động cơ (Max +/- 24V quy đổi ra PWM 0-255)
    V_psi = constrain(V_psi, -24.0, 24.0);
    int pwm_val = (int)(abs(V_psi) * (255.0 / 24.0));
    
    setMotorSpeed(pwm_val, V_psi >= 0 ? FORWARD : BACKWARD);
}

Kết quả thử nghiệm và kiểm chứng (Testing & Validation)

Hệ thống đã trải qua các bài kiểm tra thực nghiệm nghiêm ngặt:

  1. Thử nghiệm cân bằng tĩnh (Static Balancing): Xe tự đứng thăng bằng liên tục trong thời gian $> 20$ phút trên sàn gạch phẳng mà không bị trôi vị trí ($|\Delta x| < 5\text{ cm}$).
  2. Thử nghiệm đáp ứng góc nghiêng ban đầu ($\Psi_0 = 0.3\text{ rad} \approx 17.2^\circ$): Thời gian xác lập cân bằng $t_s < 2.8\text{s}$, độ vọt lố góc nghiêng $< 4.5%$, điện áp đáp ứng cực đại đạt xấp xỉ $21.5\text{V}$ (nằm trong giới hạn an toàn $< 24\text{V}$).
  3. Thử nghiệm tác động nhiễu xung lực (Impulse Disturbance): Khi dùng tay đẩy nhẹ thân xe lệch góc $10^\circ$, hệ thống lập tức tăng tốc bánh xe theo hướng ngã và phục hồi vị trí thẳng đứng trong vòng $1.2\text{s}$.
  4. Thử nghiệm vượt dốc: Xe có khả năng tự cân bằng và di chuyển ổn định trên bề mặt đường dốc nghiêng tĩnh lên đến $18.5^\circ$.

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

  • Tối ưu hóa kiến trúc điều khiển MIMO trên MCU 8-bit: Đã triển khai thành công thuật toán LQR kết hợp Kalman Filter trực tiếp trên nền vi điều khiển ATmega2560 (8-bit, 16MHz) với chu kỳ lấy mẫu chính xác $5\text{ms}$ mà không cần trang bị các bộ xử lý DSP hay vi điều khiển 32-bit đắt tiền.
  • Kỹ thuật tách kênh điều khiển độc lập: Đơn giản hóa bài toán MIMO bậc cao thành hai bài toán SISO/SIMO độc lập (Kênh giữ thăng bằng $V_\Psi$ và Kênh quay hướng $V_\Phi$), giúp quá trình tinh chỉnh thông số LQR trở nên trực quan và tin cậy.
  • Dung hợp cảm biến tối ưu: Khắc phục hoàn toàn hiện tượng lệch pha và suy hao biên độ của bộ lọc bù cổ điển (Complementary Filter), cải thiện độ chính xác góc nghiêng lên hơn $35%$ trong môi trường rung động động cơ công suất lớn.

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

+-------------------------------------------------------------------------+
|                       HỆ THỐNG ỨNG DỤNG THỰC TẾ                         |
+--------------------+----------------------------------------------------+
| 1. Robot AGV Kho   | Di chuyển linh hoạt trong hành lang siêu hẹp       |
|    Thông Minh      | Bán kính quay R = 0, tiết kiệm 40% diện tích lối đi|
+--------------------+----------------------------------------------------+
| 2. Phương tiện di  | Xe điện hai bánh cá nhân đô thị, giảm thiểu khí    |
|    chuyển cá nhân  | thải carbon, hiệu suất năng lượng cao              |
+--------------------+----------------------------------------------------+
| 3. Khung gầm kiểm  | Mang vác cảm biến LiDAR/Camera phục vụ kiểm tra    |
|    tra công nghiệp | đường ống, giàn khoan hoặc địa hình phức tạp       |
+--------------------+----------------------------------------------------+

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

  • Chi phí phần cứng nguyên mẫu: Dưới $100\text{ USD}$ (tương đương $\approx 2.400.000\text{ VNĐ}$), chỉ bằng $3%$ so với các dòng robot công nghiệp Segway RMP tương đương.
  • Thời gian hoàn vốn (ROI): Khi ứng dụng làm đế robot vận chuyển trong các nhà máy sản xuất linh kiện điện tử, khả năng tiết kiệm diện tích hành lang và thời gian di chuyển giúp thu hồi vốn đầu tư chỉ sau 4-6 tháng vận hành.

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

Hạn chế kỹ thuật

  • Năng lực xử lý dấu chấm động (floating-point) của vi điều khiển 8-bit ATmega2560 bị hạn chế, gây chiếm dụng tài nguyên tính toán khi mở rộng các thuật toán phi tuyến phức tạp như Backstepping hay Sliding Mode Control (SMC).
  • Hiện tượng trượt bánh xe (wheel slip) xuất hiện khi vận hành trên mặt sàn có hệ số ma sát thấp ($\mu < 0.2$), làm sai lệch dữ liệu vị trí tích lũy từ encoder.

Hướng phát triển

  1. Nâng cấp phần cứng: Chuyển đổi nền tảng vi điều khiển sang dòng STM32F4 (ARM Cortex-M4 168MHz có FPU) hoặc ESP32 kép 240MHz hỗ trợ Wi-Fi/BLE tốc độ cao.
  2. Tích hợp cảm biến định vị: Bổ sung cảm biến khoảng cách ToF/LiDAR 2D và Camera AI để xây dựng thuật toán tránh vật cản tự động và thiết lập bản đồ di chuyển SLAM.
  3. Phát triển thuật toán điều khiển thích nghi thông minh: Áp dụng mạng nơ-ron nhân tạo (ANN) hoặc giải thuật mờ (Fuzzy Logic) kết hợp LQR để tự động nhận dạng và thích nghi khi khối lượng tải trọng $M$ thay đổi đột ngột.

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

  • Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa / Cơ điện tử: Cung cấp tài liệu nghiên cứu toàn diện từ cơ sở toán học Euler-Lagrange, thiết kế mạch công suất đến code mẫu C++ nhúng bộ lọc Kalman và LQR trên vi điều khiển.
  • Kỹ sư phát triển Robot (Robotics Developers): Tham khảo kiến trúc tách kênh điều khiển cân bằng - định hướng và kỹ thuật chống nhiễu cho cảm biến IMU trong môi trường công nghiệp.
  • Doanh nghiệp sản xuất thiết bị tự hành: Nền tảng thiết kế tối ưu hóa chi phí cho các dòng robot di động AGV/AMR kích thước siêu nhỏ gọn phục vụ kho hàng thông minh.

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

1. Yêu cầu cấu hình tối thiểu để triển khai giải thuật LQR và Kalman trên vi điều khiển là gì?

Hệ thống yêu cầu vi điều khiển có xung nhịp tối thiểu $16\text{MHz}$, hỗ trợ giao tiếp phần cứng $I^2C$ tốc độ cao ($400\text{kHz}$ Fast Mode), ít nhất 2 kênh ngắt ngoài (External Interrupts) để đọc encoder quadrature 4X, và tối thiểu 2 kênh PWM tần số $\ge 10\text{kHz}$. Bộ nhớ RAM tối thiểu yêu cầu $2\text{KB}$.

2. Tại sao cần dung hợp cảm biến bằng Kalman Filter thay vì dùng trực tiếp gia tốc kế?

Gia tốc kế đo gia tốc trọng trường chính xác khi đứng yên nhưng cực kỳ nhạy cảm với rung động cơ khí dải cao phát sinh khi động cơ quay. Ngược lại, con quay hồi chuyển đo vận tốc góc rất mượt và nhanh nhưng lại tích lũy sai số trôi điểm không (drift) theo thời gian khi lấy tích phân. Bộ lọc Kalman kết hợp ưu điểm của cả hai cảm biến để cho ra góc nghiêng vừa đáp ứng nhanh, vừa triệt tiêu hoàn toàn sai số trôi.

3. Làm thế nào để chọn trọng số cho ma trận Q và R trong thuật toán LQR?

Phương pháp thông dụng là thuật toán Bryson: Các phần tử đường chéo của $\mathbf{Q}$ tỉ lệ nghịch với bình phương độ lệch tối đa cho phép của biến trạng thái ($q_{ii} = 1/x_{i,\max}^2$), và $\mathbf{R}$ tỉ lệ nghịch với bình phương điện áp điều khiển tối đa ($r_{jj} = 1/u_{j,\max}^2$). Sau đó, tiến hành tinh chỉnh thực nghiệm để cân bằng giữa độ êm của động cơ và thời gian đáp ứng quá độ.

4. Giải pháp khắc phục hiện tượng động cơ bị rít âm tần khi điều khiển PWM là gì?

Cần cấu hình lại các thanh ghi định thời (Timer/Counter Control Registers) của vi điều khiển để nâng tần số đóng cắt PWM của mạch cầu H lên mức $16\text{kHz} - 20\text{kHz}$ (vượt khỏi ngưỡng nghe thấy của tai người từ $20\text{Hz} - 20\text{kHz}$), đồng thời sử dụng driver MOSFET nội trở thấp như VNH2SP30 để giảm tổn hao nhiệt.

5. Khả năng mở rộng tải trọng của hệ thống xe hai bánh tự cân bằng phụ thuộc vào yếu tố nào?

Khả năng tải trọng phụ thuộc trực tiếp vào mô-men xoắn giữ (Stall/Rated Torque) của động cơ DC, dòng xả định mức của bộ pin, hệ số ma sát giữa bánh xe và mặt đường, cùng với khoảng cách từ trọng tâm đến trục quay ($L$). Tăng chiều dài $L$ giúp hệ phản ứng chậm hơn (quán tính lớn hơn) nhưng đòi hỏi mô-men xoắn phục hồi lớn hơn tương ứng.


Kết luận

Đồ án tốt nghiệp "Mô hình xe hai bánh tự cân bằng" của tác giả Vũ Quang Tuyên dưới sự hướng dẫn của Th.S Nguyễn Trần Minh Nguyệt tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết trọn vẹn và chuẩn xác bài toán điều khiển tự động cho một hệ phi tuyến MIMO phức tạp. Dự án khẳng định tính khả thi cao trong việc ứng dụng các giải thuật điều khiển hiện đại (Kalman Filter, LQR) trên nền tảng phần cứng nhúng chi phí thấp, mở ra tiềm năng ứng dụng thực tiễn to lớn trong nghiên cứu robot di động tự hành và phương tiện giao thông thông minh.