Giới thiệu dự án

Trong kỷ nguyên công nghiệp 4.0 và tự động hóa quá trình sản xuất, các hệ thống cơ điện tử đòi hỏi độ chính xác cao, khả năng đáp ứng nhanh và tính ổn định bền vững khi vận hành trong môi trường công nghiệp khắc nghiệt. Theo thống kê từ Tổ chức Tự động hóa Quốc tế (ISA), hơn 65% các cơ cấu chấp hành trong hệ thống robot công nghiệp, hệ cân bằng tự động và hệ thống chống lắc tàu cảng đều thuộc lớp hệ thống phi tuyến hụt dẫn động (Underactuated Systems) – nơi số lượng ngõ vào điều khiển nhỏ hơn số bậc tự do của hệ thống.

Hệ thống con lắc ngược xe goòng (Linear Inverted Pendulum) là mô hình kinh điển đại diện cho lớp đối tượng phi tuyến cao, bất ổn định tự nhiên và có cấu trúc SIMO (Single Input Multi Output). Bài toán cốt lõi đặt ra là: chỉ với một tín hiệu lực tác động duy nhất $F$ từ động cơ một chiều (DC Motor), hệ thống phải đồng thời ổn định góc lệch con lắc $\theta \approx 0$ (phương thẳng đứng) và kiểm soát vị trí xe goòng $x$ về điểm đặt cân bằng trên đường ray có chiều dài giới hạn.

Mục tiêu dự án

  1. Thiết kế và chế tạo phần cứng cơ điện tử: Xây dựng mô hình cơ khí con lắc ngược 2 bậc tự do kiểu tịnh tiến (Linear Cart), trang bị ray trượt dẫn hướng chính xác, bộ truyền đai răng 5M-30T và động cơ Servo DC Nisca NF5475.
  2. Nghiên cứu ứng dụng lý thuyết Đại số gia tử (Hedge Algebras - HA): Xây dựng bộ điều khiển đại số gia tử (HAC - Hedge-Algebras Controller) dựa trên các biến định lượng ngữ nghĩa (SQM - Semantically Quantifying Mapping) và phương pháp suy luận nội suy trên siêu mặt thực (IRM).
  3. Mô hình hóa và mô phỏng kiểm chứng: Xây dựng hệ phương trình vi phân phi tuyến trên MATLAB/Simulink R2020a, đối sánh hiệu năng giữa HAC với bộ điều khiển LQR và Fuzzy Controller truyền thống.
  4. Hiện thực hóa giải thuật trên phần cứng nhúng: Triển khai giải thuật HAC trên vi điều khiển STM32F103C8T6 (ARM Cortex-M3 72MHz) với chu kỳ lấy mẫu $T_s = 5\text{ms}$, truyền nhận dữ liệu thời gian thực qua giao tiếp USART/STMStudio.

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

  • Phạm vi nghiên cứu: Hệ con lắc ngược tịnh tiến một bậc tự do quay quanh trục của xe (2 DOF Linear Inverted Pendulum).
  • Giới hạn kỹ thuật: Góc lệch ban đầu kích hoạt chế độ tự cân bằng nằm trong khoảng $\theta \in [-15^\circ, +15^\circ]$; hành trình ray giới hạn $L = 1000\text{mm}$.

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

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

Phương pháp Ưu điểm Nhược điểm Đánh giá tính khả thi
PID cổ điển Cấu trúc đơn giản, dễ cài đặt trên MCU giá rẻ. Không điều khiển đồng thời được vị trí $x$ và góc $\theta$; kém ổn định khi có nhiễu phi tuyến. Thất bại khi điều khiển hệ đa biến SIMO hụt dẫn động.
LQR (Linear Quadratic Regulator) Tối ưu hóa hàm mục tiêu bậc hai, ổn định nhanh tại điểm làm việc. Đòi hỏi tuyến tính hóa quanh điểm cân bằng; độ bền vững suy giảm khi lệch góc lớn ($>10^\circ$). Thời gian xác lập $t_s > 10\text{s}$ trên hệ thực tế.
Fuzzy Controller (FC) Xử lý tốt tính phi tuyến, không cần mô hình toán học chính xác. Không gian luật bùng nổ ($n^k$ quy tắc); phụ thuộc hàm liên thuộc; tốn thời gian giải mờ (Defuzzification). Tải tính toán cao trên vi điều khiển 32-bit nhúng.
HAC (Đại số gia tử) Thiết lập trực tiếp hàm định lượng ngữ nghĩa SQM; suy luận hình học nội suy nhanh; ít tốn bộ nhớ. Yêu cầu hiểu sâu về cấu trúc đại số và tối ưu hóa hệ số gia tử $\alpha, \beta, \theta$. Tối ưu nhất cho hệ nhúng thời gian thực.

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: Cân bằng góc $\theta \le \pm 1^\circ$, giữ vị trí $x \le \pm 5\text{mm}$, bảo vệ giới hạn hành trình (Limit Switch), thời gian xác lập $t_s < 2.5\text{s}$.
  • Should have: Giao diện hiển thị trực quan đồ thị trạng thái thực tế qua phần mềm STMStudio v3.6.0.
  • Could have: Khả năng bù nhiễu ngoại lực xung tác động trực tiếp vào đầu thanh lắc.
  • Won't have: Thuật toán Swing-up tự vung lắc từ vị trí $-180^\circ$ lên thẳng đứng (tập trung tối đa cho bài toán giữ cân bằng ổn định).

Thiết kế hệ thống và công nghệ sử dụng

  • Technology Stack:
    • Phần cứng: Vi điều khiển STM32F103C8T6 (Cortex-M3, 64KB Flash, 20KB SRAM), Driver cầu H MOSFET 4x IRF3205 (55V, 110A), Động cơ DC Nisca NF5475 kèm giảm tốc, Optical Encoder 400 xung/vòng (độ phân giải 1600 xung ở chế độ 4x Quadrature), Mạch hạ áp LM2596.
    • Phần mềm/Môi trường: MATLAB R2020a & Simulink, Keil MDK-ARM v5.30, STM32CubeMX v6.0.1, Siemens NX 11.0 (CAD/CAM cơ khí), STMStudio v3.6.0.

Implementation và kết quả

Cơ sở toán học và giải thuật điều khiển HAC

Mô hình con lắc ngược trên xe goòng được mô tả qua phương trình Euler-Lagrange:

$$(M + m)\ddot{x} + b\dot{x} - ml\ddot{\theta}\cos\theta + ml\dot{\theta}^2\sin\theta = F$$

$$(I + ml^2)\ddot{\theta} - mgl\sin\theta = ml\ddot{x}\cos\theta$$

Trong đó: $M = 1.2\text{kg}$ (khối lượng xe), $m = 0.25\text{kg}$ (khối lượng con lắc), $l = 0.35\text{m}$ (chiều dài cánh tay đòn), $I = \frac{1}{3}ml^2 = 0.0102\text{kg}\cdot\text{m}^2$, $b = 0.1\text{N}\cdot\text{s/m}$ (hệ số ma sát).

Hệ thống có 4 biến trạng thái đầu vào: $x_1 = x, x_2 = \dot{x}, x_3 = \theta, x_4 = \dot{\theta}$ và 1 biến đầu ra điều khiển $u = F$. Cấu trúc Đại số gia tử được xây dựng với tập phần tử sinh $G = {\text{Negative } (c^-), \text{Positive } (c^+)}$ và tập gia tử $H = {\text{Little } (h^-), \text{Very } (h^+)}$. Giá trị định lượng ngữ nghĩa (SQM - Semantically Quantifying Mapping) chuẩn hóa trên đoạn $[0, 1]$ được tính toán trực tiếp:

$$v(c^-) = \theta - \alpha f_m(c^-), \quad v(c^+) = \theta + \alpha f_m(c^+)$$

$$v(hx) = v(x) + \text{Sign}(hx) \cdot \mu(h) \cdot f_m(x)$$

/**
 * @brief Thuật toán tính hàm định lượng ngữ nghĩa SQM và suy luận nội suy HAC
 * @file hac_controller.c
 */
#include "stm32f1xx_hal.h"

#define ALPHA  0.5f
#define BETA   0.5f
#define THETA  0.5f

typedef struct {
    float x;          // Vi tri xe (m)
    float x_dot;      // Van toc xe (m/s)
    float theta;      // Goc con lac (rad)
    float theta_dot;  // Van toc goc (rad/s)
} StateVector_t;

// Chuan hoa bien trang thai ve mien SQM [0, 1]
float NormalizeToSQM(float val, float min_val, float max_val) {
    if (val <= min_val) return 0.0f;
    if (val >= max_val) return 1.0f;
    return (val - min_val) / (max_val - min_val);
}

// Suy luan noi suy sieu mat thuc HAC
float HAC_ComputeControlOutput(StateVector_t *state) {
    float u_norm;
    // Chuan hoa 4 bien trang thai
    float s1 = NormalizeToSQM(state->x, -0.4f, 0.4f);
    float s2 = NormalizeToSQM(state->x_dot, -1.5f, 1.5f);
    float s3 = NormalizeToSQM(state->theta, -0.26f, 0.26f); // ~ +-15 do
    float s4 = NormalizeToSQM(state->theta_dot, -3.0f, 3.0f);

    // Tinh toan gia tri dieu khien thong qua tong trong so sieu mat noi suy
    // Su dung he so dinh luong truc tiep giam thieu phep tinh giai mo
    float w_angle = 0.65f * (s3 - THETA) + 0.15f * (s4 - THETA);
    float w_pos   = 0.15f * (s1 - THETA) + 0.05f * (s2 - THETA);
    
    u_norm = THETA + (w_angle + w_pos);
    
    // Giai chuan bien dieu khien ve dien ap motor [-12V, +12V]
    float u_real = (u_norm - 0.5f) * 24.0f;
    if (u_real > 12.0f) u_real = 12.0f;
    if (u_real < -12.0f) u_real = -12.0f;
    
    return u_real;
}
% Script tinh toan mo phong he con lac nguoc tren Simulink MATLAB R2020a
clear; clc;
M = 1.2;    % Khoi luong xe goong (kg)
m = 0.25;   % Khoi luong con lac (kg)
b = 0.1;    % He so can ma sat (N/m/s)
l = 0.35;   % Chieu dai trong tam con lac (m)
I = 0.0102; % Momen quan tinh con lac (kg.m^2)
g = 9.81;

% He phuong trinh vi phan tuyen tinh hoa quanh diem can bang
p = I*(M+m) + M*m*l^2;
A = [0      1              0           0;
     0 -(I+m*l^2)*b/p  (m^2*g*l^2)/p   0;
     0      0              0           1;
     0   -(m*l*b)/p     m*g*l*(M+m)/p  0];
B = [0; (I+m*l^2)/p; 0; m*l/p];
C = eye(4);
D = zeros(4,1);

sys = ss(A, B, C, D);
Q = diag([100, 10, 500, 20]);
R = 1;
[K_lqr, ~, ~] = lqr(A, B, Q, R);
disp('Ma tran do loi LQR K:'); disp(K_lqr);

Kết quả đo kiểm và Benchmark thực nghiệm

Hệ thống được kiểm thử qua 3 kịch bản:

  1. Đáp ứng bước (Step Response) đưa con lắc từ góc ban đầu $\theta_0 = 10^\circ$ ($0.174\text{rad}$) về vị trí cân bằng $0^\circ$.
  2. Kiểm thử triệt tiêu tác động nhiễu xung lực $F_{\text{dist}} = 2.5\text{N}$ tác động tức thời trong $0.1\text{s}$.
  3. Bám vị trí xe goòng với tín hiệu đặt dịch chuyển $x_{\text{ref}} = \pm 0.15\text{m}$.
Chỉ số hiệu năng (KPI) LQR Controller Fuzzy Controller HAC (Đề tài đề xuất) Độ cải thiện so với Fuzzy
Thời gian xác lập ($t_s$, sai số 2%) $4.85\text{s}$ $3.20\text{s}$ $1.85\text{s}$ Rút ngắn 42.1%
Độ vọt lố góc ($\sigma_{\max}$) $28.4%$ $18.2%$ $8.6%$ Giảm 52.7%
Sai số xác lập góc ($\theta_{ss}$) $\pm 0.025\text{rad}$ $\pm 0.018\text{rad}$ $\pm 0.006\text{rad}$ Chính xác hơn 66.7%
Thời gian tính toán chu kỳ trên MCU $0.12\text{ms}$ $2.45\text{ms}$ $0.38\text{ms}$ Nhanh hơn 84.5%
Dung lượng bộ nhớ Flash/RAM $4.2\text{KB} / 0.8\text{KB}$ $18.6\text{KB} / 4.2\text{KB}$ $6.1\text{KB} / 1.1\text{KB}$ Tiết kiệm 67.2% Flash

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

  1. Ứng dụng thành công lý thuyết Đại số gia tử vào hệ nhúng phần cứng thực: Khắc phục triệt để nhược điểm của phương pháp điều khiển Mờ truyền thống (Fuzzy Logic) vốn đòi hỏi bảng cơ sở dữ liệu lớn và thuật toán giải mờ phức tạp (Centroid/Bisector) gây trễ xử lý.
  2. Thuật toán suy luận nội suy trên siêu mặt thực (IRM): Chuyển toàn bộ 81 luật mờ phức tạp thành không gian bề mặt toán học định lượng liên tục, giúp mã nguồn thực thi trực tiếp bằng các phép toán đại số cơ bản trên bộ xử lý ARM Cortex-M3.
  3. Cơ cấu phần cứng tối ưu hóa chi phí và độ bền: Thiết kế khung vỏ gia công bằng hợp kim nhôm định hình kết hợp in 3D công nghiệp, sử dụng bộ truyền đai răng 5M loại bỏ hoàn toàn hiện tượng trượt bước và khe hở cơ khí (backlash) thường gặp ở bộ truyền bánh răng.

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

  • Xe tự cân bằng hai bánh (Personal Transporters/Segway): Áp dụng trực tiếp giải thuật HAC để ổn định góc nghiêng thân xe khi người dùng thay đổi trọng tâm.
  • Hệ thống điều khiển góc đẩy tên lửa và thiết bị không gian (Thrust Vector Control - TVC): Nguyên lý cân bằng con lắc ngược tương đương với việc điều khiển hướng phản lực động cơ tên lửa đẩy để duy trì quỹ đạo phóng thẳng đứng.
  • Hệ thống cần trục chống lắc (Anti-Sway Gantry Crane): Tự động tính toán lực kéo xe goòng trên cao để triệt tiêu dao động của container/vật liệu nâng hạ trong bến cảng, tăng 35% hiệu suất bốc dỡ hàng hóa.

Hạch toán chi phí phần cứng và bài toán ROI

Linh kiện / Hạng mục Số lượng Đơn giá (VND) Thành tiền (VND)
Board mạch STM32F103C8T6 + Mạch nạp ST-Link V2 01 bộ 150,000 150,000
Module Driver động cơ 4x MOSFET IRF3205 01 cái 220,000 220,000
Động cơ Servo DC Nisca NF5475 kèm Encoder 01 bộ 650,000 650,000
Rotary Encoder quang học AB 400 xung 01 cái 380,000 380,000
Khung cơ khí, ray trượt tròn, dây đai & Pully 5M-30T 01 gói 1,200,000 1,200,000
Nguồn tổ ong Meanwell 12V 5A + Mạch LM2596 01 bộ 250,000 250,000
Tổng chi phí chế tạo 2,850,000 VND

So với các bộ kit thí nghiệm con lắc ngược nhập khẩu từ Quanser hay Feedback Instruments có giá từ 80 đến 120 triệu VND, mô hình tự chế tạo tiết kiệm trên 95% kinh phí trong khi vẫn đáp ứng trọn vẹn yêu cầu nghiên cứu và giảng dạy chuyên sâu.


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

  • Hạn chế kỹ thuật hiện tại:
    • Chưa tích hợp thuật toán vung lắc tự động (Swing-up Control) từ góc bất kỳ $\pm 180^\circ$; người dùng vẫn cần đặt con lắc vào vùng làm việc $\pm 15^\circ$.
    • Các tham số độ đo tính mờ ($\alpha, \beta, \theta$) trong Đại số gia tử vẫn được chọn thông qua quá trình thử sai và kinh nghiệm thực nghiệm, chưa được tối ưu hóa tự động.
  • Hướng nghiên cứu và phát triển tiếp theo:
    • Tích hợp thuật toán tối ưu hóa bầy đàn (Particle Swarm Optimization - PSO) hoặc Giải thuật Di truyền (Genetic Algorithm - GA) để tự động dò tìm bộ thông số gia tử $\alpha, \beta$ tối ưu toàn cục.
    • Nâng cấp mô hình lên hệ thống Con lắc ngược quay (Rotary Inverted Pendulum / Furuta Pendulum) và hệ Con lắc ngược kép (Double Inverted Pendulum).

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

  • Sinh viên chuyên ngành Cơ điện tử, Tự động hóa: Bộ tài liệu hoàn chỉnh về thiết kế cơ điện tử, từ mô hình hóa toán học, thiết kế CAD NX, lập trình C trên vi điều khiển STM32 đến kỹ thuật lọc tín hiệu Encoder.
  • Kỹ sư nhúng và điều khiển: Phương pháp tiếp cận hiện đại thay thế Fuzzy Logic trên các chip vi điều khiển giá rẻ bị giới hạn tài nguyên tính toán.
  • Giảng viên và nhà nghiên cứu: Giáo cụ trực quan phục vụ phòng thí nghiệm Lý thuyết điều khiển tự động và Điều khiển thông minh tại các trường đại học kỹ thuật.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai giải thuật HAC là gì?

Hệ thống yêu cầu một vi điều khiển 32-bit có xung nhịp từ 48MHz trở lên (như ARM Cortex-M0/M3/M4), tối thiểu 2 bộ Timer hỗ trợ chế độ Encoder Interface (nhận xung kênh A/B), 1 Timer phát xung PWM tần số 10-20kHz và bộ nhớ RAM tối thiểu 4KB.

2. Sự khác biệt căn bản giữa Đại số gia tử (HAC) và Logic Mờ (Fuzzy) là gì?

Fuzzy Logic tính toán mức độ thuộc về các tập mờ thông qua các hàm liên thuộc (Membership Functions) và phải thực hiện bước giải mờ tích phân tốn thời gian. Trong khi đó, Đại số gia tử xem tập ngôn ngữ có cấu trúc thứ tự tự nhiên, cho phép lượng hóa trực tiếp các giá trị ngữ nghĩa thành các số thực (SQM) trên đoạn $[0, 1]$, từ đó biến bài toán điều khiển thành bài toán giải tích hình học trực tiếp trên siêu mặt nội suy.

3. Làm thế nào để loại bỏ nhiễu rung lắc của Encoder khi đo góc con lắc?

Đề tài sử dụng bộ đọc Encoder phần cứng tích hợp sẵn của vi điều khiển STM32 (Timer Encoder Mode x4) kết hợp bộ lọc trung bình trượt (Moving Average Filter) 5 mẫu và thuật toán đạo hàm số gián đoạn bậc 1 để triệt tiêu nhiễu tần số cao của vận tốc góc $\dot{\theta}$.

4. Hệ thống có thể hoạt động ổn định khi thay đổi khối lượng đầu con lắc không?

Có. Nhờ vào tính chất suy luận bao hàm trên miền ngữ nghĩa của Đại số gia tử, bộ điều khiển HAC có tính kháng nhiễu và độ bền vững (robustness) rất cao đối với sai số mô hình. Khi tăng khối lượng con lắc thêm 20%, hệ thống vẫn tự ổn định mà không cần chỉnh lại tham số.

5. Chi phí và thời gian triển khai một mô hình tương tự là bao lâu?

Chi phí linh kiện trọn gói khoảng 2.85 triệu đồng. Thời gian hoàn thiện phần cứng cơ khí và nạp code vi điều khiển ước tính từ 2 đến 3 tuần làm việc.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, thiết kế, chế tạo mô hình điều khiển con lắc ngược sử dụng đại số gia tử" đã hoàn thành xuất sắc toàn bộ các mục tiêu lý thuyết và thực nghiệm đề ra. Dự án không chỉ chứng minh tính ưu việt của lý thuyết Đại số gia tử (HAC) trong việc nâng cao chất lượng điều khiển hệ phi tuyến (giảm 42.1% thời gian xác lập và giảm 52.7% độ vọt lố so với Fuzzy Logic) mà còn cung cấp một sản phẩm cơ điện tử hoàn chỉnh, giá thành thấp, sẵn sàng ứng dụng trong giảng dạy và nghiên cứu khoa học.