Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh tự động hóa công nghiệp và công nghệ hỗ trợ phục hồi chức năng đang phát triển mạnh, nhu cầu kiểm soát chính xác các hệ thống robot ngày càng trở nên cấp thiết. Đồ án này xuất phát từ nhận định rằng các bộ điều khiển PID truyền thống — dù ổn định về lý thuyết — thường bộc lộ hạn chế khi áp dụng vào thiết bị hỗ trợ cho người cao tuổi hoặc người có khiếm khuyết vận động. Trọng lực tác động lên các khớp robot gây sai lệch vị trí tích lũy, tiêu hao năng lượng không cần thiết và tạo cảm giác không tự nhiên cho người dùng thiết bị đeo (exoskeleton).

Mục tiêu nghiên cứu được tác giả xác định là:

  1. Lập trình thành công thuật toán PD kết hợp bù trọng lực (gravity compensation), bao gồm cả điều khiển trở kháng (impedance) và điều khiển tuân thủ (compliance), cho bài toán điều khiển vị trí một động cơ chiều (one-directional motor) trên vi điều khiển Arduino.
  2. So sánh hiệu quả điều khiển PID truyền thống với PD có bù trọng lực theo các tiêu chí: thời gian đáp ứng, độ ổn định, và mức tiêu thụ năng lượng.
  3. Thiết kế và mô phỏng mô hình robot tay 3-DOF (3 bậc tự do) trên phần mềm MATLAB/Simulink (Simscape Toolbox) và SolidWorks.

Đối tượng nghiên cứu là hệ thống robot linh hoạt (Flexible Robot) kiểu tay máy (arm robot), tập trung vào động cơ DC có encoder loại JGB37-520 và JGB37-545. Phạm vi giới hạn ở mô hình thực nghiệm quy mô nhỏ, sử dụng linh kiện phổ thông giá rẻ, thực hiện trong khoảng 4 tháng tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, hoàn thành tháng 6 năm 2024.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết

Đồ án sử dụng phương trình động lực học Lagrange-Newton mô tả quan hệ lực – mô-men – chuyển động của robot:

$$M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = \tau$$

Trong đó $M(q)$ là ma trận quán tính phụ thuộc cấu hình, $C(q,\dot{q})\dot{q}$ biểu diễn hiệu ứng Coriolis và lực ly tâm, $G(q)$ là vector lực trọng trường, và $\tau$ là vector mô-men/lực đầu vào từ cơ cấu chấp hành.

Luật điều khiển PD với bù trọng lực được dẫn xuất từ hàm Lyapunov năng lượng và đạt dạng cuối:

$$\tau = G(q) + K_p\tilde{q} - K_d\dot{q}$$

Trong đó $\tilde{q} = q_d - q$ là sai số vị trí, $K_p$ là hệ số tỉ lệ (proportional gain), $K_d$ là hệ số đạo hàm (derivative gain). Điều kiện ổn định tại trạng thái xác lập được chứng minh qua phân tích $\dot{V}(q, \tilde{q}) = 0$, dẫn đến $\dot{q} = 0$ và $\ddot{q} = 0$.

Ngoài ra, tác giả trình bày hai phương pháp bù trọng lực cơ học đối chiếu: (1) bù bằng đối trọng qua cáp và ròng rọc — điển hình trong hệ thống thang máy; (2) bù bằng lò xo — thường thấy trong tay máy cơ học. Nghiên cứu tập trung vào phương án bù trọng lực bằng giải thuật số (software-based gravity compensation) thay vì cơ học.

Mô hình toán học động cơ DC được xây dựng qua:

  • Phương trình cân bằng điện: $v_b(t) = K_b \frac{d\theta_m}{dt}$
  • Phương trình cân bằng cơ: $J_m\ddot{\theta}_m + K_f\dot{\theta}_m = \tau(t)$
  • Hàm truyền: $G(s) = \frac{\theta_m(s)}{v_{app}(s)} = \frac{K_m}{J_m L s^3 + (K_f L + J_m R)s^2 + (K_f R + K_m K_b)s}$

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

Tác giả kết hợp ba phương pháp:

  1. Nghiên cứu lý thuyết: Tra cứu sách, tạp chí, tài liệu khoa học về điều khiển robot và bù trọng lực.
  2. Thiết kế thử nghiệm – sai (trial-and-error): Xác định tham số điều khiển trở kháng dựa trên kinh nghiệm từ môn học "Hệ thống điều khiển tự động" và thực hành "Điều khiển tự động".
  3. Thực nghiệm phần cứng: Lập trình thuật toán trực tiếp trên phần mềm Arduino, kiểm tra với mô hình thật.

Nguồn dữ liệu: Dữ liệu phản hồi từ encoder hai kênh AB gắn trên động cơ JGB37-520 và JGB37-545, đọc qua vi điều khiển Arduino Mega 2560; dữ liệu mô phỏng từ MATLAB 2023a (Simscape Multibody Toolbox).


Nội dung chính theo từng chương

Chương 1 – Overview (Tổng quan)

Chương này xác lập bối cảnh, mục tiêu, đối tượng, phạm vi và phương pháp nghiên cứu. Tác giả đặt vấn đề tại sao PD với bù trọng lực vượt trội hơn PID truyền thống trong ứng dụng thiết bị hỗ trợ. Các giới hạn của đồ án cũng được trình bày thẳng thắn: mô hình nhỏ, linh kiện phổ thông, độ chính xác phát xung PWM không cao, và hiện tượng nhiễu điện trên mạch Arduino.

Chương 2 – Theory Foundation of DC Motor (Nền tảng lý thuyết động cơ DC)

Trình bày cấu tạo và nguyên lý hoạt động của động cơ DC chổi than (brushed DC motor): stator (cực chính, cực phụ), rotor (lõi thép, cuộn dây phản ứng), hệ thống chổi than và cổ góp. Phân loại động cơ DC theo phương thức kích từ: kích từ bằng nam châm vĩnh cửu, kích từ độc lập, kích từ nối tiếp, kích từ song song và kích từ hỗn hợp. Bảng tham số động cơ DC sử dụng trong đồ án:

Tham số Ký hiệu Giá trị
Điện trở phần ứng $R$ 11.1214 Ω
Mô-men quán tính rotor $J_m$ 0.02215 kg.m²
Hệ số ma sát nhớt $K_f$ 0.002953 Nm/rad
Hằng số mô-men $K_m$ 1.28 Nm/A
Hằng số sức phản điện $K_b$ 0. Vs/rad

Chương 3 – Gravity Compensation Theory and Algorithm Development

Là chương lý thuyết trọng tâm. Tác giả trình bày nền tảng toán học của bù trọng lực từ phương trình Lagrange, dẫn xuất hàm Lyapunov để chứng minh ổn định, và xây dựng luật điều khiển cuối cùng $\tau = G(q) + K_p\tilde{q} - K_d\dot{q}$. Sơ đồ khối điều khiển PD với bù trọng lực minh họa luồng: sai số vị trí qua $K_p$, vận tốc qua $K_d$, cộng thêm thành phần $G(q)$ tính từ cấu hình hiện tại của robot. Chương này cũng đối chiếu bù trọng lực cơ học (đối trọng, lò xo) với phương án giải thuật để giải thích lý do chọn hướng thuật toán số.

Chương 4 – System Design and Implementation (Thiết kế và Triển khai)

Chương thực hành toàn diện, gồm hai phần lớn:

Phần thiết kế và mô phỏng: Xây dựng mô hình robot 1-DOF và 3-DOF trên MATLAB 2023a với Simscape Multibody Toolbox (các khối Solver Configuration, World Frame, Mechanism Configuration, Revolute Joint, Brick Solid, Rigid Transform). Mô phỏng giao quỹ đạo thang vận tốc hình thang (Trapezoidal Velocity Profile Trajectory) và kiểm tra bộ điều khiển Computed Torque. Tác giả thử nghiệm các tổ hợp tham số PD: $K_p = 100, K_d = 20$; $K_p = 10000, K_d = 20$; $K_p = 100, K_d = 200$ và quan sát đáp ứng vị trí.

Phần phần cứng: Mô tả chi tiết thiết bị sử dụng:

Thiết bị Thông số chính
Arduino Mega 2560 ATmega2560, 54 digital I/O (15 PWM), 16 analog input, Flash 256 KB, 16 MHz
Động cơ JGB37-520 (111 rpm) Tỉ số truyền 1:90, 12VDC, 111 RPM không tải, 11 xung/rad
Động cơ JGB37-520 (37 rpm) Tỉ số truyền 1:270, 12VDC, 37 RPM không tải
Động cơ JGB37-545 (30 rpm) Tỉ số truyền 1:168, 12VDC, 30 RPM không tải, 16 xung/rad
Nguồn Behive 12V-15A Đầu vào 110/220VAC, đầu ra 9–14VDC, công suất 280W, dòng max 15A
LCD 16x2 5V, giao tiếp SPI/I2C, 16×2 ký tự

Mô hình 3-DOF tay robot được thiết kế trên SolidWorks, in 3D và lắp ráp thực tế.

Chương 5 – Force Control (Điều khiển lực)

Phân tích tầm quan trọng của điều khiển lực trong hệ thống cơ khí: khi lực môi trường ngoài tác động, hệ thống thiếu điều khiển lực có thể dẫn đến gãy trục, hỏng bánh răng. Tác giả trình bày hai khái niệm trung tâm: Compliance control (điều khiển tuân thủ — hệ thống thích nghi với lực ngoài, cho phép robot "nhường" khi gặp lực tác động) và Impedance control (điều khiển trở kháng — điều tiết mối quan hệ giữa lực và chuyển vị). Các hình ảnh thực nghiệm cho thấy robot 3-DOF thay đổi vị trí liên tục khi có tương tác từ người dùng (compliance mode), sau đó phục hồi trạng thái ban đầu khi lực bỏ ra.

Chương 6 – Conclusion and Development (Kết luận và Phát triển)

Tổng kết các mục tiêu đạt được về phần cứng và phần mềm, chỉ rõ các hạn chế gặp phải và định hướng mở rộng đề tài trong tương lai.


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống gồm ba lớp: (1) lớp cảm biến — encoder hai kênh AB đọc vị trí góc; (2) lớp xử lý — Arduino Mega 2560 chạy vòng điều khiển PD + bù trọng lực; (3) lớp chấp hành — driver L298N/XY-160D cấp PWM cho động cơ DC.

Tham số điều khiển được khai báo trực tiếp trong code Arduino, bao gồm $K_p$, $K_d$, và thành phần trọng lực $G$. Encoder đọc qua ngắt ngoài (external interrupt pins 2, 3, 18, 19, 20, 21) để đảm bảo không mất xung. Dữ liệu vị trí của 3 động cơ được xuất qua Serial Monitor để theo dõi thời gian thực.

Thực nghiệm

Tác giả thực hiện thực nghiệm vị trí tại các góc mục tiêu: 60°, 90°, và 120°, quan sát giá trị đọc từ encoder và vẽ đồ thị quỹ đạo vị trí. Kết quả cho thấy robot 1-DOF có thể di chuyển liên tục giữa các vị trí 120° → 90° → 60°. Compliance mode trên mô hình 3-DOF xác nhận khả năng hệ thống phản ứng với tác động tay người và duy trì ổn định sau khi lực bỏ ra.


Kết quả và đóng góp

  • Robot 1-DOF điều khiển vị trí thành công tại các góc 60°, 90°, 120° sử dụng thuật toán PD với bù trọng lực trên Arduino Mega 2560, có ghi nhận và vẽ đồ thị quỹ đạo vị trí thực tế.
  • Mô hình robot 3-DOF được thiết kế trên SolidWorks, mô phỏng trên Simscape và in 3D thành mô hình vật lý.
  • Tích hợp compliance control: robot có thể nhận tác động lực từ tay người và tự động điều chỉnh vị trí (compliance mode), thể hiện tính linh hoạt của giải thuật.
  • Chứng minh lý thuyết ổn định qua hàm Lyapunov, cung cấp nền tảng toán học tường minh cho bộ điều khiển PD + bù trọng lực.
  • Tác giả đề xuất hướng ứng dụng trong lĩnh vực chăm sóc sức khỏe và robot cộng tác (cobots), với minh họa về ứng dụng exoskeleton hỗ trợ người cao tuổi.

Hạn chế và hướng nghiên cứu tiếp

Tác giả tự nhận các hạn chế sau, được ghi nhận trực tiếp trong văn bản:

  • Độ chính xác phát xung thấp: Mô hình sử dụng động cơ nhỏ, giá rẻ nên sai số trong phát xung điều khiển PWM không thể tránh khỏi.
  • Sự cố chân PWM: Chân 11 của Arduino bị lỗi không rõ nguyên nhân trong khi chân 9 hoạt động bình thường — chưa tìm được giải pháp dứt điểm.
  • Độ ổn định phụ thuộc motor: Cần lực đẩy đáng kể trong một số tình huống do đặc tính cơ học của động cơ không đồng đều.
  • Nhiễu điện: Mạch Arduino thỉnh thoảng bị nhiễu điện từ, gây lỗi hoạt động không định kỳ.

Hướng phát triển tiếp theo bao gồm: tích hợp cảm biến và trí tuệ nhân tạo để dự đoán ý định người dùng, mở rộng lên hệ thống robot nhiều bậc tự do hơn, và điều chỉnh thuật toán cho ứng dụng thực tế trong chăm sóc sức khỏe và môi trường sản xuất với cobot.


Giá trị tham khảo

Đồ án này phù hợp tham khảo cho:

  • Sinh viên ngành Kỹ thuật Điều khiển và Tự động hóa đang tìm hiểu về điều khiển robot, đặc biệt phần dẫn xuất Lyapunov cho bộ điều khiển PD với bù trọng lực (Chương 3) — đây là nội dung lý thuyết được trình bày tường minh và có giá trị học thuật.
  • Sinh viên thực hành với Arduino và động cơ DC có encoder: Chương 4 cung cấp bảng thông số đầy đủ cho JGB37-520, JGB37-545, Arduino Mega 2560, driver L298N, XY-160D và nguồn Behive 12V, kèm hướng dẫn kết nối từng chân.
  • Người thực hiện đề tài về Simscape Multibody: Quy trình xây dựng mô hình robot 1-DOF từng bước (Solver Configuration → World Frame → Mechanism Configuration → Revolute Joint → Brick Solid) trên MATLAB 2023a có thể dùng làm tài liệu hướng dẫn thực hành.
  • Người nghiên cứu compliance/impedance control: Chương 5 cung cấp phân tích khái niệm và minh chứng thực nghiệm trực quan bằng hình ảnh mô hình vật lý.

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

1. Tại sao tác giả chọn PD thay vì PID cho bài toán bù trọng lực? Tác giả lập luận rằng thành phần tích phân (I) trong PID không cần thiết khi đã có bù trọng lực $G(q)$ xử lý sai lệch tĩnh. Thành phần PD đủ để đạt ổn định tại trạng thái xác lập ($\dot{q} = 0, \ddot{q} = 0$) theo chứng minh Lyapunov, đồng thời đơn giản hơn khi triển khai trên vi điều khiển.

2. Các tổ hợp tham số $K_p$, $K_d$ nào đã được thử nghiệm và kết quả ra sao? Tác giả thử ba tổ hợp: $K_p = 100, K_d = 20$; $K_p = 10000, K_d = 20$; $K_p = 100, K_d = 200$. Kết quả được ghi nhận qua đồ thị đáp ứng vị trí trên Simulink, tuy nhiên văn bản không cung cấp con số định lượng cụ thể về overshoot hay settling time cho từng tổ hợp.

3. Động cơ JGB37-520 và JGB37-545 khác nhau ở điểm nào và được phân công cho khớp nào? JGB37-520 có hai phiên bản: 111 RPM (tỉ số truyền 1:90, 11 xung/rad) và 37 RPM (tỉ số truyền 1:270). JGB37-545 chạy 30 RPM (tỉ số truyền 1:168, 16 xung/rad). JGB37-545 phù hợp ứng dụng cần công suất và tốc độ cao hơn. Văn bản không chỉ định rõ khớp nào dùng loại nào trong mô hình 3-DOF.

4. Mô hình Simscape được xây dựng và kiểm thử trên phiên bản MATLAB nào? Tác giả ghi rõ sử dụng MATLAB 2023a. Đồng thời lưu ý một số khối Simscape có thể không khả dụng trên các phiên bản MATLAB cũ hơn.

5. Compliance control hoạt động thế nào trong mô hình 3-DOF thực tế? Khi cấp nguồn và bật chế độ compliance, robot giữ nguyên vị trí ban đầu. Khi người dùng tác động lực tay vào, robot thay đổi vị trí theo hướng lực tác động. Khi thả tay ra, robot duy trì vị trí mới (không phục hồi về vị trí ban đầu), thể hiện tính "nhường" — đặc trưng của compliance control khác với position control thông thường.


Kết luận

Đồ án "Flexible Robot" của sinh viên Đặng Trần Minh Khôi trình bày đầy đủ từ nền tảng lý thuyết (mô hình toán học động cơ DC, chứng minh ổn định Lyapunov cho PD với bù trọng lực) đến triển khai thực nghiệm (mô phỏng Simscape, thiết kế SolidWorks, lập trình Arduino). Điểm nổi bật là sự kết hợp giữa lý luận toán học nghiêm túc và thực hành phần cứng trên linh kiện thương mại phổ thông, phù hợp với điều kiện đào tạo kỹ thuật tại Việt Nam. Đồ án thể hiện khả năng tích hợp nhiều công cụ phần mềm (MATLAB/Simulink, SolidWorks, Arduino IDE) và đặt nền tảng cho các nghiên cứu tiếp theo về robot hỗ trợ và cobot trong môi trường công nghiệp lẫn y tế.