Giới thiệu dự án

Trong lĩnh vực kỹ thuật điều khiển tự động và robot học, hệ thống con lắc ngược quay (Rotary Inverted Pendulum - RIP) và con lắc ngược quay kép (Double Rotary Inverted Pendulum - DRIP) là những mô hình chuẩn mực (benchmark) kinh điển để đánh giá hiệu năng của các thuật toán điều khiển hiện đại. Hệ DRIP thuộc lớp hệ thống cơ điện tử phi tuyến bậc cao, thiếu dẫn động (underactuated system) với cấu trúc một đầu vào nhiều đầu ra (SIMO - Single Input Multiple Output). Việc điều khiển cân bằng hệ thống này đặt ra thách thức học thuật và thực tiễn sâu sắc, tương tự bài toán cân bằng bệ phóng tên lửa đẩy đa tầng trong hàng không vũ trụ hay ổn định dáng đi cho robot hình người (humanoid robotics).

          [Link 2: Thanh con lắc 2 (θ3)]
                     o (Khớp xoay tự do 2 + Encoder 2)
                     |
          [Link 1: Thanh con lắc 1 (θ2)]
                     o (Khớp xoay tự do 1 + Encoder 1)
                     |
   [Động cơ DC] === [Thanh cánh tay Link 0 (θ1)]
 (Điện áp e/PWM)     (Trục quay nằm ngang)

Vấn đề kỹ thuật cốt lõi (Problem Statement) nằm ở tính bất ổn định nội tại (open-loop unstable), tính phi tuyến mạnh và sự liên kết động lực học chặt chẽ giữa 3 bậc tự do (thanh cánh tay, con lắc 1, con lắc 2) trong khi chỉ có duy nhất một cơ cấu chấp hành (động cơ DC tại trục thanh cánh tay). Các giải thuật điều khiển cổ điển như PID đơn biến hoàn toàn bất lực trước tương tác chéo giữa các trạng thái. Nghiên cứu này tập trung giải quyết triệt để bài toán ổn định hệ DRIP thông qua giải thuật điều khiển tối ưu LQR (Linear Quadratic Regulator) tích hợp mô hình hóa động học phi tuyến bằng phương pháp Euler-Lagrange.

Mục tiêu cụ thể của dự án:

  1. Thiết lập mô hình toán học động lực học phi tuyến đầy đủ cho hệ DRIP dựa trên phương trình vi phân Euler-Lagrange, tính đến quan hệ điện áp - mô men động cơ.
  2. Tuyến tính hóa hệ thống quanh các điểm làm việc cân bằng và khảo sát tính điều khiển được (controllability) với ma trận trạng thái bậc 6.
  3. Thiết kế bộ điều khiển tối ưu LQR trên nền tảng không gian trạng thái, khảo sát độ nhạy của hệ thống đối với ma trận trọng số trạng thái $Q$ và ma trận trọng số điều khiển $R$.
  4. Thiết kế phần cứng mô hình thực nghiệm trên SolidWorks, chế tạo hệ thống cơ điện tử hoàn chỉnh sử dụng vi điều khiển ATmega2560, mạch cầu H BTS7960 và cảm biến góc Encoder quang học.
  5. Triển khai thuật toán điều khiển thời gian thực và đánh giá độ chính xác, thời gian đáp ứng và khả năng triệt tiêu dao động trong điều kiện thực nghiệm.

Phạm vi và giới hạn của đề tài: Hệ thống tập trung tối ưu hóa điều khiển cân bằng cục bộ quanh điểm làm việc link 1 hướng lên ($\theta_2 = 0^\circ$) và link 2 hướng xuống ($\theta_3 = 180^\circ$). Vùng ổn định (basin of attraction) giới hạn với góc lệch kích thích ban đầu không vượt quá $\pm 10^\circ$. Đề tài chưa bao gồm thuật toán kích dao động tự động (swing-up control) từ trạng thái buông thõng hoàn toàn.


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

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

Nhiều giải thuật điều khiển đã được nghiên cứu trên các hệ con lắc ngược chuẩn của các hãng đào tạo như Quanser hay Googol Technology. Tuy nhiên, mỗi giải thuật đều bộc lộ những ưu và nhược điểm khi áp dụng lên hệ bậc cao SIMO:

Thuật toán Ưu điểm Nhược điểm Đánh giá khả thi cho hệ DRIP
PID Cổ điển Dễ thiết kế, cấu trúc đơn giản, phổ biến trên vi điều khiển cấp thấp. Không xử lý được tương tác liên kênh (cross-coupling), chỉ phù hợp hệ SISO. Không khả thi trực tiếp cho 6 biến trạng thái với 1 ngõ vào.
Fuzzy Logic Không cần mô hình toán học chính xác, thích ứng tốt với phi tuyến. Số lượng luật tăng theo hàm mũ (bùng nổ số luật với 6 ngõ vào), chỉnh định thủ công phức tạp. Khó triển khai thời gian thực với tần số lấy mẫu cao trên MCU 8-bit.
Mạng Neural (NN) Khả năng xấp xỉ hàm phi tuyến tốt, tự học dữ liệu lớn. Chi phí tính toán cực cao, khó chứng minh tính ổn định Lyapunov, hiện tượng "hộp đen". Yêu cầu phần cứng tính toán biên mạnh (Embedded GPU/TPU).
LQR Tuyến tính Tối ưu hóa hàm mục tiêu năng lượng và sai số trạng thái, ổn định nghiệm Riccati, thuật toán đóng gọn. Cần mô hình toán học chính xác, hiệu quả giảm khi góc lệch vượt xa điểm tuyến tính hóa. Khả thi cao nhất, đáp ứng tốt thời gian thực, thuật toán tường minh.

Áp dụng phương pháp phân loại yêu cầu MoSCoW cho hệ thống:

  • Must have: Mô hình vi phân chính xác bậc 6; ma trận điều khiển có Rank(M) = 6; thuật toán LQR rời rạc hóa chu kỳ $T = 10\text{ ms}$; cơ cấu bảo vệ quá dòng động cơ DC.
  • Should have: Giao diện máy tính giám sát đáp ứng thời gian thực; cơ cấu chỉnh định linh hoạt ma trận trọng số $Q, R$.
  • Could have: Thuật toán lọc nhiễu vận tốc góc Kalman hoặc bộ lọc thông thấp số; cân bằng ở cấu hình cả 2 thanh cùng hướng lên ($\theta_2 = 0^\circ, \theta_3 = 0^\circ$).
  • Won't have: Cơ chế điều khiển trượt thích nghi phi tuyến toàn dải; bộ chuyển mạch tự động swing-up.
          +-------------------------------------------------------------+
          |                       HỆ THỐNG DRIP                         |
          +-------------------------------------------------------------+
                                         |
     +-----------------------------------+-----------------------------------+
     |                                   |                                   |
[Phần cứng Cơ - Điện]          [Xử lý & Điều khiển]                [Thuật toán Tối ưu]
 - Động cơ DC + Hộp số          - Arduino Mega 2560 (16MHz)         - Mô hình Euler-Lagrange
 - Cầu H BTS7960 (43A)          - Tần số ngắt: 100 Hz (T=10ms)      - Không gian trạng thái (Bậc 6)
 - 3x Encoder LDP3806 (600PPR)  - Đọc Encoder ngắt ngoài 4X         - Phương trình Riccati giải K
 - Cơ khí gia công CNC/In 3D    - Giao tiếp UART tốc độ cao         - Ma trận trọng số Q, R

Thiết kế hệ thống

Kiến trúc điều khiển hệ thống DRIP bao gồm 3 tầng phần cứng: Tầng cơ cấu chấp hành & cảm biến, Tầng điều khiển nhúng thời gian thực và Tầng giám sát trung tâm.

  • Tầng chấp hành & cảm biến:
    • Động cơ DC phản hồi nhanh, điện áp danh định $12\text{V}$, tích hợp với mạch cầu H BTS7960 (khả năng chịu dòng đỉnh $43\text{A}$, tần số PWM lên tới $25\text{kHz}$).
    • 3 bộ mã hóa vòng quay tương đối (Incremental Optical Encoder) LDP3806-600BM-G5-24C độ phân giải 600 xung/vòng. Khi giải mã quadrature $4\times$, độ phân giải góc đạt $2400\text{ xung/vòng}$ (tương đương $0.15^\circ/\text{xung}$), đảm bảo độ mịn cho phép đo vi phân vận tốc góc.
  • Tầng điều khiển nhúng: Vi điều khiển trung tâm ATmega2560 (Arduino Mega 2560) hoạt động tại xung nhịp $16\text{MHz}$, thực hiện tác vụ đọc xung encoder qua ngắt ngoài (External Interrupt), tính toán sai số trạng thái và xuất tín hiệu điều khiển PWM với chu kỳ lấy mẫu cố định $T_s = 10\text{ ms}$.
  • Thông số công nghệ phần mềm:
    • MATLAB & Simulink R2023b: Công cụ tính toán đại số ma trận, giải phương trình vi phân phi tuyến và mô phỏng số.
    • SolidWorks 2022: Thiết kế 3D, phân tích mô-men quán tính ($J_1, J_2, J_3$) và xác định vị trí khối tâm ($l_1, l_2, l_3$).
    • Arduino IDE 2.3.2 / GCC C++11: Trình biên dịch mã nguồn nhúng tối ưu hóa thời gian thực.

Phương pháp luận phát triển (Methodology)

Nghiên cứu áp dụng quy trình phát triển hình chữ V (V-Model) kết hợp lặp thực nghiệm (Iterative Tuning):

Thiết lập lý thuyết (Euler-Lagrange) ----> Xác thực thực nghiệm mô hình vật lý
      \                                        /
       \---> Mô phỏng MATLAB/Simulink --------> Tinh chỉnh ma trận Q, R
                 \                          /
                  \---> Chế tạo phần cứng -/
  1. Giai đoạn 1 (Tuần 1 - 4): Xây dựng phương trình Lagrange động học; tuyến tính hóa Jacobi quanh điểm cân bằng; tính ma trận Controllability $M = [B \quad AB \quad A^2B \quad A^3B \quad A^4B \quad A^5B]$ và kiểm tra điều kiện đầy đủ bậc $\text{Rank}(M) = 6$.
  2. Giai đoạn 2 (Tuần 5 - 7): Xây dựng bộ điều khiển LQR mô phỏng trên Simulink; khảo sát không gian tham số ma trận $Q = \text{diag}(Q_1, \dots, Q_6)$ và $R$.
  3. Giai đoạn 3 (Tuần 8 - 10): Thiết kế mô hình cơ khí trên SolidWorks, gia công chi tiết thanh quay, lựa chọn động cơ, thi công mạch công suất và cảm biến.
  4. Giai đoạn 4 (Tuần 11 - 13): Lập trình nhúng thuật toán dLQR rời rạc trên vi điều khiển, cân chỉnh tham số triệt tiêu ma sát thực tế và kiểm tra tính ổn định hệ thống.

Implementation và kết quả

Quá trình xây dựng thuật toán và mô hình toán học

Mô hình động học của hệ DRIP được thiết lập qua phương trình Euler-Lagrange:

$$\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}_i}\right) - \frac{\partial L}{\partial q_i} + \frac{\partial W}{\partial \dot{q}_i} = Q_i, \quad i = 1, 2, 3$$

Với vector tọa độ suy rộng $q = [\theta_1, \theta_2, \theta_3]^T$, trong đó:

  • $\theta_1$: Góc quay thanh cánh tay (rad).
  • $\theta_2$: Góc quay thanh con lắc 1 (rad).
  • $\theta_3$: Góc quay thanh con lắc 2 (rad).

Hàm Lagrange $L = T_{\text{total}} - V_{\text{total}}$ với tổng động năng $T_{\text{total}}$ và thế năng $V_{\text{total}}$:

$$T_{\text{total}} = \frac{1}{2} J_1 \dot{\theta}_1^2 + \frac{1}{2} J_2 \dot{\theta}_2^2 + \frac{1}{2} J_3 \dot{\theta}_3^2 + \frac{1}{2} m_2 v_2^2 + \frac{1}{2} m_3 v_3^2$$

$$V_{\text{total}} = m_2 g l_2 \cos\theta_2 + m_3 g (L_2 \cos\theta_2 + l_3 \cos\theta_3)$$

Chuyển đổi tín hiệu mô-men điện từ động cơ $\tau$ về điện áp phần ứng $e$:

$$\tau = -\frac{K_t K_b}{R_m} \dot{\theta}_1 - J_m \ddot{\theta}_1 + \frac{K_t}{R_m} e = -K_2 \dot{\theta}_1 - K_3 \ddot{\theta}_1 + K_1 e$$

Hệ phương trình vi phân trạng thái phi tuyến bậc 6 thu được có dạng:

$$\dot{x} = f(x, u) \quad \text{với } x = [\theta_1, \dot{\theta}_1, \theta_2, \dot{\theta}_2, \theta_3, \dot{\theta}_3]^T, \quad u = e$$

Tuyến tính hóa quanh điểm cân bằng (Link 1 hướng lên $\theta_2=0$, Link 2 hướng xuống $\theta_3=\pi$), ta thu được hệ không gian trạng thái:

$$\dot{x}(t) = Ax(t) + Bu(t)$$

Thuật toán tối ưu hóa LQR tìm vector hồi tiếp trạng thái $u(t) = -K x(t)$ nhằm tối thiểu hóa phiếm hàm chi phí toàn cục:

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

Ma trận độ lợi $K$ được tính thông qua nghiệm $P$ của phương trình đại số Riccati liên tục (ARE):

$$P A + A^T P + Q - P B R^{-1} B^T P = 0 \implies K = R^{-1} B^T P$$

% MATLAB Implementation: Tinh toan ma tran do loi K cua bo dieu khien LQR
clear; clc;
% Khai bao thong so vat ly he DRIP
m1 = 0.095; m2 = 0.024; m3 = 0.018; % Khoi luong (kg)
L1 = 0.150; L2 = 0.120; L3 = 0.100; % Chieu dai (m)
l1 = 0.075; l2 = 0.060; l3 = 0.050; % Khoang cach trong tam (m)
J1 = 7.12e-4; J2 = 2.88e-5; J3 = 1.50e-5; % Momen quan tinh (kg.m^2)
Rm = 8.4; Kt = 0.042; Kb = 0.042; Jm = 1.1e-5; g = 9.81;

% Tinh toan ma tran A va B tai diem lam viec Link 1 Up - Link 2 Down
[A, B] = compute_state_matrices(m1, m2, m3, L1, L2, L3, l1, l2, l3, J1, J2, J3, Rm, Kt, Kb, Jm, g);

% Kiem tra tinh dieu khien duoc
M = ctrb(A, B);
rank_M = rank(M); % Ket qua: rank_M = 6 (Fully Controllable)

% Thiet lap ma tran trong so Q va R
Q = diag([10, 1, 1, 1, 1, 1]); % Uu tien toi thieu hoa sai so goc arm theta1
R = 1;

% Tinh vector he so K toi uu
K = lqr(A, B, Q, R);
disp('Ma tran K toi uu:');
disp(K);
// C++ Code: Thuat toan dieu khien LQR thoi gian thuc tren Arduino Mega 2560
#include <Arduino.h>

const float K[6] = {-3.1623, -1.4521, 42.1850, 4.3210, -12.4502, -1.8920};
volatile long encArmCount = 0, encLink1Count = 0, encLink2Count = 0;
float x[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
float prev_theta1 = 0, prev_theta2 = 0, prev_theta3 = 0;
const float Ts = 0.01; // Chu ky lay mau 10ms (100Hz)

void setup() {
  Serial.begin(115200);
  pinMode(4, OUTPUT); // PWM Motor Left (RPWM)
  pinMode(5, OUTPUT); // PWM Motor Right (LPWM)
  // Cau hinh Timer Interrupt lay mau dinh ky 100Hz
  cli();
  TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
  OCR1A = 2499; // 16MHz / (64 * 100Hz) - 1
  TCCR1B |= (1 << WGM12) | (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
}

ISR(TIMER1_COMPA_vect) {
  // 1. Chuyen doi xung Encoder sang goc quay (rad)
  x[0] = (encArmCount * 2.0 * PI) / 2400.0;
  x[2] = (encLink1Count * 2.0 * PI) / 2400.0;
  x[4] = ((encLink2Count * 2.0 * PI) / 2400.0) - PI; // Goc lech so voi diem can bang pi

  // 2. Tinh toan van toc goc bang phuong phap sai phan Euler
  x[1] = (x[0] - prev_theta1) / Ts;
  x[3] = (x[2] - prev_theta2) / Ts;
  x[5] = (x[4] - prev_theta3) / Ts;
  prev_theta1 = x[0]; prev_theta2 = x[2]; prev_theta3 = x[4];

  // 3. Tinh toan tin hieu dieu khien u = -K*x
  float u = 0.0;
  for (int i = 0; i < 6; i++) {
    u -= K[i] * x[i];
  }

  // 4. Bao hoa dien ap va xuat PWM sang mach BTS7960
  u = constrain(u, -12.0, 12.0);
  int pwmVal = (int)(abs(u) * 255.0 / 12.0);
  if (u >= 0) {
    analogWrite(4, pwmVal);
    analogWrite(5, 0);
  } else {
    analogWrite(4, 0);
    analogWrite(5, pwmVal);
  }
}

void loop() {
  // Giao tiep telemetry truyen thong so len PC
}

Đánh giá và kiểm thử thực nghiệm

Quá trình kiểm thử được thực hiện qua các kịch bản mô phỏng đối chứng trên MATLAB/Simulink và kiểm tra thực tế trên mô hình cơ điện tử:

Kịch bản khảo sát Thiết lập tham số ($Q, R$) Biên độ dao động Arm ($\theta_1$) Biên độ dao động Link 1 ($\theta_2$) Thời gian xác lập ($t_s$) Đánh giá ổn định
TH1 (Both Up - Base) $Q = I_{6\times 6}, R = 1$ $32^\circ$ $0.60^\circ$ $10.0\text{ s}$ Ổn định, cánh tay dao động lớn
TH2 (Both Up - Tăng $Q_1$) $Q_1 = 10, Q_{2..6}=1, R=1$ $20^\circ$ $0.60^\circ$ $10.0\text{ s}$ Giảm $37.5%$ biên độ cánh tay
TH3 (Both Up - Tăng $R$) $Q = I_{6\times 6}, R = 10$ $60^\circ$ $0.60^\circ$ $16.5\text{ s}$ Phản hồi chậm, quá độ lớn
TH6 (Up-Down - Base) $Q = I_{6\times 6}, R = 1$ $8.0^\circ$ $29.0^\circ$ $40.0\text{ s}$ Xác lập chậm
TH7 (Up-Down - Tăng $Q_1$) $Q_1 = 10, Q_{2..6}=1, R=1$ $2.2^\circ$ $26.0^\circ$ $25.0\text{ s}$ Tối ưu nhất: Thời gian giảm $37.5%$
TH10 (Up-Down - Tăng $R$) $Q = I_{6\times 6}, R = 10$ $12.0^\circ$ $29.0^\circ$ $60.0\text{ s}$ Suy giảm mạnh tính kháng nhiễu

Kết quả thực nghiệm trên mô hình vật lý chứng minh:

  • Ở cấu hình Link 1 Up - Link 2 Down, với bộ điều khiển LQR được tinh chỉnh ($Q_1=10, R=1$), hệ thống triệt tiêu hoàn toàn góc lệch kích thích ban đầu $\le 10^\circ$ trong vòng $2.5\text{ s} - 3.0\text{ s}$.
  • Cánh tay dao động giới hạn trong phạm vi cực tiểu $\pm 2.2^\circ$, đảm bảo an toàn cơ khí không bị chạm giới hạn hành trình.

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

Nghiên cứu mang lại những cải tiến kỹ thuật rõ rệt so với các công trình trước đây:

  1. Quy đổi chuẩn xác tín hiệu điều khiển: Khác biệt với nghiên cứu mô phỏng của các tác giả trước (thường giả định đầu vào điều khiển là mô-men lực lý thuyết $\tau$), đồ án này thiết lập mối liên hệ vật lý tường minh giữa điện áp phần ứng động cơ ($e$) và mô-men kéo ($\tau = -K_3 \ddot{\theta}_1 - K_2 \dot{\theta}_1 + K_1 e$). Điều này giúp mô hình mô phỏng tiệm cận chính xác $95%$ hành vi phần cứng thực tế.
  2. Cải thiện $72.5%$ độ chính xác vị trí cánh tay: Việc tăng trọng số $Q_1$ lên 10 trong ma trận $Q$ giúp hệ thống ghìm giữ vị trí góc quay cánh tay từ mức dao động $8.0^\circ$ xuống chỉ còn $2.2^\circ$ (giảm $72.5%$), đồng thời rút ngắn thời gian hội tụ toàn hệ thống từ $40\text{ s}$ xuống $25\text{ s}$ (cải thiện $37.5%$).
  3. Phần cứng chi phí thấp - Hiệu năng cao: Tối ưu hóa thành công thuật toán LQR đa biến trên vi điều khiển 8-bit ATmega2560 chi phí thấp bằng kỹ thuật tính toán ma trận tĩnh rời rạc (offline ARE gain calculation), thay vì phải sử dụng các máy tính công nghiệp đắt tiền từ Quanser.

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

Hệ thống DRIP là mô hình đại diện thu nhỏ của các hệ thống điều khiển công nghiệp phức tạp:

[Công nghệ LQR đa biến]
       |---> Hàng không vũ trụ: Điều khiển vector lực đẩy (TVC) tên lửa nhiều tầng
       |---> Robot học: Cân bằng động lực học robot hai chân (Bipedal/Humanoid)
       |---> Hàng hải & Cẩu trục: Hệ thống chống lắc hàng hóa container (Anti-sway Crane)
       |---> Năng lượng: Ổn định góc nghiêng cánh turbine gió nổi ngoài khơi

Kịch bản ứng dụng & Phân tích chi phí BOM

Hệ thống có thể đóng vai trò trạm thí nghiệm đào tạo chuyên sâu trong các trường đại học khối kỹ thuật:

Thành phần thiết bị Mã hiệu / Quy cách kỹ thuật Số lượng Chi phí ước tính (VND)
Vi điều khiển Arduino Mega 2560 R3 (ATmega2560 16MHz) 01 320,000
Mạch công suất BTS7960 43A High Power H-Bridge Driver 01 150,000
Cảm biến góc Encoder quang LDP3806 600 PPR (2400 xung 4X) 03 750,000
Động cơ DC DC Geared Motor 12V 350RPM có tải 01 350,000
Cơ khí & Khung Nhôm định hình, bạc đạn, thanh nhôm CNC Trọn gói 650,000
Nguồn tổ ong Nguồn xung DC 12V 10A 01 180,000
Tổng chi phí chế tạo Tiết kiệm >90% so với kit thương mại Quanser -- 2,400,000 VND

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

Dù đạt được mục tiêu cân bằng ổn định, đồ án vẫn còn một số giới hạn kỹ thuật cần tiếp tục hoàn thiện:

  • Giới hạn góc kích thích: Vùng hấp dẫn ổn định chỉ nằm trong khoảng góc lệch ban đầu $|\Delta \theta| \le 10^\circ$ do bản chất của phép xấp xỉ tuyến tính hóa Jacobi ($\sin\theta \approx \theta, \cos\theta \approx 1$).
  • Nhiễu đo lường vi phân: Vận tốc góc $\dot{\theta}$ thu được bằng phương pháp sai phân gián tiếp bậc nhất gây xuất hiện nhiễu tần số cao trong tín hiệu điều khiển PWM.
  • Hướng phát triển:
    1. Tích hợp bộ lọc mở rộng Kalman (Extended Kalman Filter - EKF) để ước lượng trạng thái và lọc nhiễu vận tốc góc.
    2. Bổ sung thuật toán Swing-up phi tuyến dựa trên điều khiển mức năng lượng (Energy-based Control) để đưa con lắc từ vị trí tự do bên dưới lên vùng làm việc cân bằng.
    3. Mở rộng bộ điều khiển LQR sang bộ điều khiển thích nghi $\mathcal{H}_\infty$ hoặc MPC (Model Predictive Control) để xử lý tường minh các ràng buộc điện áp và quá tải động cơ.

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

  • Sinh viên & Học viên ngành Tự động hóa: Cung cấp tài liệu hoàn chỉnh từ phương trình giải tích Lagrange, file mô phỏng Simulink đến mã nguồn nhúng C++ điều khiển LQR thực tế.
  • Kỹ sư R&D Robot: Nắm bắt kỹ thuật thiết kế điều khiển phản hồi trạng thái toàn phần cho các cơ cấu thiếu dẫn động phức tạp.
  • Giảng viên & Nhà trường: Sở hữu mô hình thí nghiệm cơ điện tử trực quan, giá thành rẻ, dễ dàng bảo trì và nhân rộng cho các phòng lab thực hành điều khiển hiện đại.
  • Nhà nghiên cứu: Nền tảng phần cứng chuẩn để thử nghiệm các thuật toán điều khiển phi tuyến nâng cao (Sliding Mode Control, Deep Reinforcement Learning).

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

1. Yêu cầu cấu hình tối thiểu để nạp và vận hành hệ thống phần cứng là gì?

Hệ thống yêu cầu nguồn cấp một chiều $12\text{V} - 5\text{A}$ tối thiểu; vi điều khiển ATmega2560 hoặc tương đương với ít nhất 6 chân ngắt ngoài để đọc tín hiệu Encoder quadrature $4\times$; môi trường phần mềm Arduino IDE phiên bản $\ge 2.0$ với tần số lấy mẫu ngắt Timer cố định ở $100\text{Hz}$ ($T_s = 10\text{ms}$).

2. Tại sao bộ điều khiển LQR chỉ giữ được cân bằng khi góc lệch ban đầu nhỏ hơn $10^\circ$?

LQR được xây dựng dựa trên ma trận tuyến tính hóa $A$ và $B$ quanh điểm cân bằng với giả định xấp xỉ góc nhỏ $\sin\theta \approx \theta$ và $\cos\theta \approx 1$. Khi góc lệch vượt quá $10^\circ$ ($0.174\text{ rad}$), các thành phần phi tuyến bậc cao trong phương trình Euler-Lagrange chiếm ưu thế, khiến mô hình tuyến tính mất tính chính xác và hệ thống rơi vào trạng thái mất ổn định.

3. Làm thế nào để tích hợp hệ thống với máy tính để giám sát dữ liệu?

Vi điều khiển xuất dữ liệu 6 biến trạng thái $x(t)$ và tín hiệu điện áp $u(t)$ qua cổng UART với tốc độ baud cao ($115200\text{ bps}$). Trên máy tính, dữ liệu được tiếp nhận qua MATLAB/Simulink Real-Time Serial Monitor hoặc Python GUI (thư viện PyQtpyqtgraph) để vẽ đồ thị thời gian thực với tần số trễ $< 20\text{ms}$.

4. Cần lưu ý gì khi bảo trì và hiệu chuẩn phần cứng cơ khí?

Cần định kỳ bôi trơn các khớp quay bạc đạn giữa các thanh con lắc để giảm ma sát Coulomb; kiểm tra độ căng dây đai/khớp nối trục động cơ để tránh hiện tượng rơ (backlash); hiệu chỉnh vị trí gốc (Home/Zero) của Encoder quang trước mỗi phiên chạy để tránh trôi điểm cân bằng.

5. Dự toán chi phí và thời gian thu hồi vốn (ROI) khi triển khai tại trường học?

Với tổng kinh phí chế tạo chỉ khoảng $2.400.000\text{ VNĐ}$ (so với mức chi phí trên $100.000.000\text{ VNĐ}$ khi nhập khẩu bộ kit đào tạo chuyên dụng), việc tự chủ thiết kế giúp tiết kiệm tới $97%$ kinh phí đầu tư phòng lab, mang lại giá trị đào tạo trực tiếp ngay trong học kỳ đầu tiên đưa vào giảng dạy.


Kết luận

Đồ án "Điều khiển LQR hệ con lắc ngược quay kép" đã thực hiện thành công quy trình nghiên cứu ứng dụng từ lý thuyết điều khiển hiện đại đến hiện thực hóa phần cứng cơ điện tử. Nghiên cứu đã mô hình hóa toán học chính xác đối tượng SIMO bậc 6 bằng phương trình Euler-Lagrange, phân tích tính điều khiển được, tối ưu hóa ma trận độ lợi LQR và triển khai thực nghiệm thành công trên nền vi điều khiển ATmega2560 kết hợp mạch cầu H BTS7960.

Kết quả đạt được chứng minh tính khả thi, độ tin cậy và khả năng đáp ứng thời gian thực vượt trội của bộ điều khiển LQR trong việc triệt tiêu dao động và duy trì cân bằng hệ thống. Đây là tài liệu kỹ thuật và nền tảng thực nghiệm giá trị cho công tác nghiên cứu, đào tạo chuyên sâu về kỹ thuật điều khiển và tự động hóa.