Bối cảnh và vấn đề nghiên cứu
Trong lĩnh vực điều khiển học và robot, các hệ thống cơ cấu hụt dẫn động (underactuated robotics) là đối tượng nghiên cứu trọng tâm nhằm giải quyết bài toán điều khiển chuyển động phức tạp với số lượng cơ cấu chấp hành ít hơn số bậc tự do của hệ thống. Mô hình Acrobot là hệ thống robot phẳng hai bậc tự do kinh điển, mô phỏng động học của vận động viên nhào lộn, trong đó khớp thứ nhất nối với bệ quay tự do hoàn toàn và chỉ có khớp thứ hai được cấp nguồn dẫn động bởi động cơ. Do bản chất động lực học phi tuyến cao, ràng buộc không tích phân được và điểm cân bằng thẳng đứng là điểm cân bằng không ổn định, Acrobot thường xuyên được sử dụng làm cơ sở thực nghiệm để kiểm chứng các giải thuật điều khiển tự động kinh điển lẫn hiện đại, đồng thời làm nền tảng phát triển các cơ cấu tự cân bằng như xe hai bánh, tháp vô tuyến, giàn khoan biển và khớp gối nhân tạo (như hệ thống phẫu thuật Acrobot Sculptor hay robot hai chân Atlas).
Khóa luận tốt nghiệp của tác giả Đào Quang Linh (ngành Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, dưới sự hướng dẫn của TS. Phạm Quốc Hùng) đặt ra các nhiệm vụ và mục tiêu nghiên cứu cụ thể:
- Nghiên cứu cơ sở mô hình toán học giải tích và mô phỏng điều khiển hệ thống Acrobot trên môi trường Matlab Simulink.
- Thiết kế cơ khí, lựa chọn linh kiện và chế tạo mô hình thực nghiệm Acrobot hoàn chỉnh trong thực tế.
- Hiện thực và thử nghiệm giải thuật điều khiển cân bằng vòng kín cho mô hình thực tế bằng hai phương pháp: bộ điều khiển vi tích phân tỉ lệ (PID) và bộ điều khiển tối ưu tuyến tính toàn phương (LQR).
Đối tượng nghiên cứu của đề tài là hệ thống cơ cấu Acrobot phẳng hai bậc tự do và các thuật toán điều khiển tự động cân bằng quanh điểm kỳ dị thẳng đứng. Phạm vi không gian của nghiên cứu bao gồm việc tính toán động lực học, mô phỏng số học, thiết kế mô hình 3D, gia công cơ khí nhôm định hình và lập trình nhúng phần cứng giao tiếp tại phòng thí nghiệm thuộc Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM trong năm 2022. Phạm vi bài toán điều khiển tập trung vào ổn định hệ thống trong vùng lân cận điểm cân bằng thẳng đứng; đề tài chưa bao gồm giải thuật tự vung lắc đưa thanh từ vị trí tự nhiên phía dưới lên vị trí thẳng đứng (swing-up).
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng lý thuyết thông qua việc phân tích động lực học hệ nhiều vật và các lý thuyết điều khiển tự động kinh điển lẫn tối ưu:
-
Mô hình động lực học Euler-Lagrange: Hệ phương trình chuyển động của Acrobot được xây dựng dựa trên phương pháp năng lượng Euler-Lagrange, biểu diễn qua phương trình vi phân phi tuyến bậc hai dạng ma trận:
$$M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = B(q)\tau_2$$
Trong đó:
- $q = [q_1, q_2]^T$ là vector tọa độ suy rộng biểu diễn góc quay của thanh 1 so với trục thẳng đứng ($q_1$) và góc quay tương đối của thanh 2 so với thanh 1 ($q_2$).
- $\dot{q} = [\dot{q}_1, \dot{q}_2]^T$ và $\ddot{q} = [\ddot{q}_1, \ddot{q}_2]^T$ lần lượt là vector vận tốc góc và gia tốc góc.
- $M(q) = \begin{bmatrix} a_1 + a_2 + 2a_3\cos q_2 & a_2 + a_3\cos q_2 \ a_2 + a_3\cos q_2 & a_2 \end{bmatrix}$ là ma trận khối lượng và mô-men quán tính đối xứng.
- $C(q,\dot{q})$ là ma trận chứa các thành phần lực ly tâm và lực Coriolis.
- $G(q)$ là vector mô tả tác động của gia tốc trọng trường $g$.
- $B(q) = [0, 1]^T$ xác định việc tác động mô-men xoắn $\tau_2$ chỉ diễn ra duy nhất tại khớp 2.
-
Lý thuyết điều khiển PID rời rạc: Dạng liên tục $U(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt}$ được chuyển đổi sang dạng sai phân rời rạc kết hợp khâu giữ dữ liệu bậc không (ZOH - Zero-Order Hold) với chu kỳ lấy mẫu $T$, phục vụ lập trình trên vi xử lý kỹ thuật số.
-
Lý thuyết điều khiển tuyến tính tối ưu (LQR): Hệ thống phi tuyến được tuyến tính hóa quanh điểm cân bằng trên trục tọa độ thành hệ trạng thái $\dot{x} = Ax + Bu$. Tín hiệu điều khiển phản hồi trạng thái có dạng $u = -Kx$, trong đó ma trận độ lợi $K$ được xác định nhằm cực tiểu hóa hàm mục tiêu chi phí bình phương $J = \int_0^\infty (x^T Q x + u^T R u) dt$ thông qua việc giải phương trình đại số Riccati liên tục (CARE): $A^T P + PA - PBR^{-1}B^T P + Q = 0$.
Phương pháp nghiên cứu thực tế bao gồm:
- Phương pháp mô hình hóa giải tích để thiết lập ma trận trạng thái của Acrobot.
- Phương pháp mô phỏng số thông qua phần mềm Matlab R2020b và Simulink.
- Phương pháp thiết kế cơ khí chính xác sử dụng phần mềm CAD Solidworks.
- Phương pháp thực nghiệm phần cứng nhúng: giao tiếp trực tiếp vi điều khiển Arduino Mega 2560 với Matlab/Simulink thông qua tính năng Monitor & Tune để thu thập dữ liệu và hiệu chỉnh tham số thời gian thực.
- Phương pháp chỉnh định tham số: sử dụng phương pháp thử sai (trial-and-error) đối với bộ điều khiển PID và phương pháp lựa chọn ma trận đường chéo trọng số $Q, R$ đối với LQR.
Nguồn dữ liệu trong khóa luận được trích xuất từ dữ liệu đo đạc xung quang học của Rotary Encoder, phản hồi vận tốc/dòng điện từ động cơ giảm tốc DC Planet, cùng các thông số hình học và quán tính thực tế của các cấu kiện sau khi gia công.
Thiết kế và triển khai
Hệ thống Acrobot thực nghiệm được chế tạo và triển khai tích hợp giữa ba phân hệ chính: cơ cấu cơ khí, mạch điện tử - điều khiển nhúng, và giao diện phần mềm điều khiển.
1. Phân hệ cơ khí
Cơ cấu chuyển động gồm hai liên kết dạng thanh được thiết kế trên phần mềm Solidworks và gia công lắp ráp với hệ khung chịu lực:
- Thanh 1: Chiều dài $0.2,\text{m}$, đầu trên kết nối trực tiếp với trục Rotary Encoder đo góc nghiêng tự do, đầu dưới tích hợp giá đỡ cụm động cơ chấp hành.
- Thanh 2: Chiều dài $0.23,\text{m}$, chiều rộng $0.06,\text{m}$, đầu trên bắt cố định vào trục phát động của động cơ để nhận mô-men quay trực tiếp.
- Giá đỡ động cơ: Chi tiết kết nối trung gian giữa thanh 1 và thanh 2, bán kính mặt trên $18,\text{mm}$, chiều cao $34,\text{mm}$, gia công 4 lỗ ren M4 bắt vít cố định hộp số động cơ.
- Giá đỡ Encoder: Cấu trúc nhôm dạng chữ L cố định cảm biến với bệ đỡ, kích thước dài $60,\text{mm}$, rộng $38,\text{mm}$, cao $50,\text{mm}$, tâm khoét lỗ tròn đường kính $10,\text{mm}$ kèm các lỗ ren M3 bắt thân encoder và 4 rãnh bầu dục liên kết bu-lông M4 xuống khung nền.
- Khung tổng thể: Chế tạo bằng nhôm định hình chịu lực, kích thước phủ bì: dài $400,\text{mm}$, rộng $300,\text{mm}$, cao $350,\text{mm}$.
2. Phân hệ phần cứng điện - điện tử
Hệ thống sử dụng các linh kiện phần cứng công nghiệp và vi điều khiển bán dẫn với thông số kỹ thuật chi tiết:
| Thiết bị |
Thông số kỹ thuật chính |
Vai trò trong hệ thống |
| Động cơ Planet 24V |
Điện áp $24,\text{VDC}$, công suất $30,\text{W}$, khối lượng $450,\text{g}$, tỉ số truyền $19.2:1$. Tốc độ trục động cơ $12000,\text{rpm}$, qua hộp số đạt $600,\text{rpm}$. Dòng không tải $300,\text{mA}$, dòng định mức khi có tải $3600,\text{mA}$. Tích hợp encoder 12 xung/vòng (kênh A, B, $5,\text{V}$). |
Cung cấp mô-men xoắn $\tau_2$ điều khiển trực tiếp khớp thứ hai của Acrobot. |
| Mạch cầu H HI216 |
Dòng liên tục $15,\text{A}$, dòng đỉnh $20,\text{A}$, công suất tối đa $600,\text{W}$, điện áp $12 - 48,\text{V}$, điện áp kích logic $3.3 - 5,\text{V}$. Cách ly quang Opto HCPL-0631 tần số đáp ứng $100,\text{kHz}$, tích hợp cầu chì bảo vệ quá dòng. Kích thước $52 \times 64 \times 22,\text{mm}$. |
Đóng cắt Mosfet công suất, điều khiển vận tốc (băm xung PWM) và đảo chiều quay động cơ. |
| Rotary Encoder |
Độ phân giải 400 xung/vòng, 2 pha A-B lệch pha $90^\circ$, ngõ ra NPN cực thu hở, điện áp hoạt động $5 - 24,\text{VDC}$. Giới hạn cơ khí $5000,\text{rpm}$, tần số đáp ứng $20,\text{kHz}$. Trục quay đường kính $6 \times 13,\text{mm}$, đường kính thân $38,\text{mm}$. |
Đo góc quay tự do $q_1$ của thanh 1 so với phương thẳng đứng tại khớp không dẫn động. |
| Arduino Mega 2560 |
Vi điều khiển ATmega2560, xung nhịp $16,\text{MHz}$, bộ nhớ Flash $256,\text{KB}$ ($8,\text{KB}$ nạp bootloader), 54 chân I/O số (15 chân PWM), 16 chân ngõ vào tương tự. Dòng định mức chân I/O $40,\text{mA}$. |
Thu thập xung ngắt cảm biến, tính toán luật điều khiển thời gian thực và xuất xung điều khiển cầu H. |
| Bộ nguồn tổ ong |
Điện áp ngõ vào $110 - 240,\text{VAC}$, ngõ ra ổn áp $24,\text{VDC}$, dòng điện tối đa $10,\text{A}$. Kích thước $200 \times 110 \times 50,\text{mm}$. |
Cung cấp nguồn công suất cho cầu H HI216 và động cơ DC Planet. |
Về sơ đồ kết nối:
- Cáp nạp USB từ máy tính cấp nguồn $5,\text{V}$ cho bo mạch Arduino Mega 2560, đồng thời chân $5,\text{V}$ và GND của bo mạch cấp nguồn nuôi hai cảm biến encoder.
- 4 chân ngắt ngoài của Arduino được sử dụng để đọc xung vuông: chân 18 và 19 đọc kênh A, B của Rotary Encoder thanh 1; chân 20 và 21 đọc kênh A, B của encoder động cơ.
- Chân số 5 của Arduino xuất tín hiệu điều chế độ rộng xung (PWM) đến ngõ điều tốc của cầu H HI216; chân số 7 xuất tín hiệu logic mức cao/thấp để xác định chiều quay của động cơ.
- Các ngõ ra động lực M1, M2 của cầu H nối thẳng vào hai cực của động cơ Planet.
3. Quy trình xử lý tín hiệu và giải thuật điều khiển
Thuật toán được xây dựng trên Simulink và nạp xuống phần cứng hoạt động theo chu trình khép kín:
- Đọc xung từ hai kênh A và B của encoder. Số xung thực tế đếm được trong một vòng quay đầy đủ ($360^\circ$) sau khi giải mã 4 sườn xung là:
- Đối với Rotary Encoder thanh 1: $400 \times 4 = 1600,\text{xung/vòng}$.
- Đối với encoder động cơ thanh 2: $12 \times 4 \times 19.2 \approx 920,\text{xung/vòng}$ (do tỉ số truyền hộp số $19.2:1$).
- Chuyển đổi số lượng xung thu thập được sang giá trị góc quay (đơn vị radian):
$$\text{Giá trị góc} = \frac{2\pi \times \text{Số xung hiện tại}}{\text{Số xung đếm được trong 1 vòng}}$$
- Tính toán sai số giữa góc thực tế và tọa độ điểm cân bằng đặt ($q_1 = \frac{\pi}{2}, q_2 = \pi$).
- Kiểm tra điều kiện giới hạn góc hoạt động an toàn của thanh 1. Nếu hệ thống nằm trong vùng cho phép, dữ liệu sai số được chuyển vào khối giải thuật (PID hoặc LQR).
- Bộ điều khiển tính toán ra giá trị mô-men xoắn cần thiết, chuyển đổi sang giá trị băm xung PWM và bit logic đảo chiều đưa đến vi mạch cầu H HI216 để điều khiển động cơ.
Nội dung chính theo từng chương
Chương 1. Tình hình nghiên cứu trong và ngoài nước
Chương này khảo cứu tổng quan các hướng tiếp cận điều khiển cân bằng hệ Acrobot trên thế giới và tại Việt Nam:
- Nghiên cứu trong nước:
- Đề tài của nhóm tác giả Nguyễn Văn Đông Hải và cộng sự (Trường ĐH Sư phạm Kỹ thuật TP.HCM, 2018) ứng dụng giải thuật di truyền (GA) để tối ưu hóa bộ điều khiển LQR trên mô hình Acrobot. Kết quả cho thấy hệ thống ổn định nhanh nhưng có nhược điểm là yêu cầu góc ban đầu phải đặt sát điểm cân bằng và nghiên cứu chỉ dừng lại ở mô phỏng lý thuyết, chưa chế tạo phần cứng.
- Đề tài của tác giả Hà Mạnh Quân (Trường ĐH Công nghiệp Thái Nguyên, 2014) thiết kế hệ thống điều khiển cho Acrobot đạt thời gian ổn định khoảng 3 giây trên mô hình thực tế. Tuy nhiên, kết cấu cơ khí của nghiên cứu này bộc lộ nhược điểm: thanh 1 có dạng hình chữ T, động cơ gắn trên cao truyền động xuống khớp 2 qua hệ thống dây đai và bánh răng, dẫn tới việc phải lắp thêm đối trọng ở đầu thanh 1 và làm sai lệch cơ cấu tương đương của khớp vai - cánh tay người.
- Nghiên cứu ngoài nước: Đề tài nền tảng robot lai xách tay Pendubot - Acrobot (HPAR) công bố tại American Control Conference (2021) sử dụng giải thuật định hình năng lượng (Energy shaping), sử dụng khung kim loại, động cơ không chổi than và vi điều khiển Raspberry Pi 4, đạt thời gian ổn định 10 giây với sai số góc dưới $10^\circ$.
- Từ việc phân tích các hạn chế của nghiên cứu trước, chương 1 khẳng định tính cấp thiết của việc xây dựng một mô hình thực nghiệm Acrobot truyền động trực tiếp, chi phí hợp lý, phục vụ trực quan cho công tác giảng dạy lý thuyết điều khiển tự động và kỹ thuật robot trong nước.
Chương 2. Cơ sở lý thuyết
Chương 2 trình bày chi tiết toán học của hệ thống hụt dẫn động:
- Định nghĩa bản chất của hệ hụt dẫn động: số lượng ngõ vào điều khiển ít hơn số bậc tự do của cơ cấu ($m < n$).
- Xây dựng hệ phương trình vi phân chuyển động phi tuyến Euler-Lagrange với đầy đủ các tham số: khối lượng ($m_1, m_2$), độ dài thanh ($L_1, L_2$), khoảng cách tới khối tâm ($L_{c1}, L_{c2}$), mô-men quán tính ($J_1, J_2$), ma trận khối lượng $M(q)$, ma trận Coriolis $C(q,\dot{q})$ và vector trọng lực $G(q)$.
- Phân tích cấu trúc hệ thống điều khiển tự động vòng kín (đối tượng, bộ điều khiển, cảm biến, tín hiệu hồi tiếp và tín hiệu nhiễu).
- Trình bày nguyên lý hoạt động của bộ điều khiển PID liên tục và dạng biến đổi số rời rạc, phân tích tác động độc lập của các hệ số $K_p, K_i, K_d$ lên các chỉ tiêu chất lượng (thời gian tăng, độ vọt lố, thời gian xác lập và sai số xác lập).
- Thiết lập cơ sở lý thuyết điều khiển tối ưu LQR: biểu diễn không gian trạng thái $\dot{x} = Ax + Bu$, dạng ma trận Jacobi của hệ tuyến tính hóa quanh điểm cân bằng, cấu trúc ma trận trọng số $Q$ (trạng thái) và $R$ (năng lượng điều khiển), cùng phương pháp giải phương trình Riccati để tìm vector độ lợi hồi tiếp $K$.
Chương 3. Mô phỏng điều khiển cân bằng hệ thống Acrobot trên Matlab Simulink
Chương này hiện thực hóa mô hình toán học lên công cụ mô phỏng số Matlab R2020b / Simulink:
- Thiết lập khối
Matlab Function biểu diễn phương trình động học đảo: $\ddot{q} = M^{-1}(q) \left[ u - C(q,\dot{q})\dot{q} - G(q) \right]$ kết hợp hai khối tích phân liên tiếp (Integrator) để xác định vector vận tốc góc và vị trí góc.
- Cấu hình các thông số vật lý của mô hình mô phỏng (trong đó quán tính khối lượng $J \approx 0.0113,\text{kg}\cdot\text{m}^2$).
- Thiết lập sơ đồ mô phỏng điều khiển cân bằng sử dụng hai bộ PID rời rạc cho hai góc $q_1, q_2$. Qua quá trình hiệu chỉnh, các thông số được xác định: $K_{p1} = K_{p2} = 38$, $K_{i1} = K_{i2} = 0$. Thử nghiệm với điều kiện góc ban đầu lệch $q_1 = \frac{\pi}{2} - 0.6,\text{rad}$, hệ thống đạt trạng thái ổn định cân bằng sau khoảng $2,\text{giây}$, sai số tiến về xấp xỉ 0.
- Thiết lập sơ đồ mô phỏng LQR với ma trận trọng số $R = 1$ và ma trận đường chéo $Q = \text{diag}([q_1, \dot{q}_1, q_2, \dot{q}_2])$. Vector hệ số hồi tiếp trạng thái thu được qua Matlab là:
$$K = [-76.9839, -13.1174, 28.0313, 1.0235]$$
Mô phỏng với góc ban đầu $q_1 = \frac{\pi}{2} - 0.1,\text{rad}$, hệ thống tự ổn định sau $4.5,\text{giây}$ với sai số xấp xỉ 0.
Chương 4. Thiết kế mô hình Acrobot thực tế
Chương này mô tả chi tiết quá trình hiện thực hóa từ mô phỏng sang phần cứng thực nghiệm:
- Trình bày bản vẽ chi tiết các bộ phận cơ khí (thanh 1, thanh 2, giá đỡ động cơ, giá đỡ encoder) thiết kế trên Solidworks và lắp ráp vào khung nhôm định hình kích thước $400 \times 300 \times 350,\text{mm}$.
- Lựa chọn và tích hợp các module điện tử: động cơ DC Planet $24,\text{V}$ có hộp số giảm tốc, mạch điều khiển công suất cầu H HI216 $15,\text{A}$, Rotary Encoder 400 xung, bộ nguồn tổ ong $24,\text{V} - 10,\text{A}$ và bo mạch Arduino Mega 2560.
- Xây dựng sơ đồ nối dây phần cứng chi tiết, sử dụng các chân ngắt ngoài 18, 19, 20, 21 của vi điều khiển ATmega2560 để bắt trọn xung encoder kênh A và B.
- Xây dựng lưu đồ giải thuật điều khiển và sơ đồ Simulink thực tế nạp xuống phần cứng (bao gồm khối đọc xung Encoder, khối giới hạn vùng góc hoạt động, khối logic đảo chiều quay, khối xuất xung PWM và bộ thuật toán điều khiển).
- Thử nghiệm điều khiển thực tế: đưa hệ thống bằng tay lên lân cận điểm cân bằng ($q_1 = \frac{\pi}{2}, q_2 = \pi$), sau đó kích hoạt thuật toán giữ thăng bằng. Bộ thông số PID thực tế tìm được qua phương pháp thử sai gồm: $K_{p1} = 40, K_{i1} = 0.35$; $K_{p2} = 10, K_{i2} = 0.005, K_{d2} = 0$. Thử nghiệm thuật toán LQR thực tế với vector độ lợi trạng thái được nạp xuống bo mạch, kiểm chứng khả năng giữ cân bằng thực tế của hệ thống.
Chương 5. Kết luận và hướng phát triển
Chương 5 đúc kết các kết quả đạt được về mặt mô hình hóa, chế tạo phần cứng và khả năng điều khiển thực tế của mô hình; đồng thời nêu rõ các hạn chế kỹ thuật hiện tại và đề xuất các phương án hoàn thiện trong tương lai.
Kết quả và đóng góp
1. Kết quả thực nghiệm cụ thể
Khóa luận đã hoàn thành toàn diện chu trình thiết kế cơ điện tử và điều khiển tự động cho hệ Acrobot, thể hiện qua các số liệu đo kiểm:
| Tiêu chí đánh giá |
Bộ điều khiển PID |
Bộ điều khiển LQR |
| Thời gian ổn định (Mô phỏng) |
Khoảng $2.0,\text{giây}$ |
Khoảng $4.5,\text{giây}$ |
| Góc lệch ban đầu cho phép (Mô phỏng) |
$q_1 = \frac{\pi}{2} - 0.6,\text{rad}$ |
$q_1 = \frac{\pi}{2} - 0.1,\text{rad}$ |
| Sai số xác lập (Mô phỏng) |
Xấp xỉ bằng $0$ |
Xấp xỉ bằng $0$ |
| Thông số điều khiển mô phỏng |
$K_{p1}=K_{p2}=38$; $K_{i1}=K_{i2}=0$ |
$K = [-76.9839, -13.1174, 28.0313, 1.0235]$ |
| Thông số điều khiển thực tế |
$K_{p1}=40, K_{i1}=0.35$; $K_{p2}=10, K_{i2}=0.005, K_{d2}=0$ |
Ma trận $K$ được nạp trực tiếp qua khối Gain thời gian thực |
| Khả năng giữ cân bằng thực tế |
Duy trì ổn định quanh vị trí thẳng đứng |
Duy trì ổn định quanh vị trí thẳng đứng |
2. Đóng góp kỹ thuật so với các công trình trước
- So với nghiên cứu của Nguyễn Văn Đông Hải (2018): Đã hiện thực hóa giải thuật điều khiển từ không gian mô phỏng thuần túy sang phần cứng thực tế hoạt động ổn định, chứng minh tính khả thi của việc điều khiển hệ phi tuyến hụt dẫn động bằng thiết bị nhúng giá thành thấp.
- So với nghiên cứu của Hà Mạnh Quân (2014): Loại bỏ hoàn toàn cơ cấu truyền động trung gian bằng dây đai - bánh răng và kết cấu chữ T cồng kềnh có gắn đối trọng. Việc gắn động cơ dẫn động trực tiếp tại khớp 2 giúp kết cấu thanh gọn hơn, phản ánh chính xác cơ chế động học tự nhiên của cánh tay người và giảm sai số khe hở cơ khí.
- Về mặt đào tạo: Chế tạo thành công một mô hình thực nghiệm trực quan hoàn chỉnh với kích thước nhỏ gọn ($400 \times 300 \times 350,\text{mm}$), tương thích trực tiếp với môi trường Matlab Simulink qua vi điều khiển Arduino Mega 2560, phục vụ đắc lực cho các bài thí nghiệm chuyên ngành Điều khiển và Robot.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự chỉ ra các giới hạn kỹ thuật trong văn bản:
- Chưa có giải thuật tự vung lắc (Swing-up): Hệ thống chưa thể tự kích hoạt từ trạng thái buông thõng tự nhiên ($q_1 = -\frac{\pi}{2}, q_2 = 0$) để đưa lên điểm cân bằng thẳng đứng. Trước khi hệ thống vận hành, người dùng bắt buộc phải dùng tay hỗ trợ đưa hai thanh lên lân cận điểm cân bằng ($q_1 = \frac{\pi}{2}, q_2 = \pi$) rồi mới bật chế độ giữ thăng bằng.
- Phương pháp xác định thông số PID phụ thuộc vào thử sai: Việc hiệu chỉnh thông số $K_p, K_i, K_d$ cho hệ thống thực tế hoàn toàn dựa vào phương pháp thử sai, đòi hỏi nhiều thời gian và phụ thuộc chủ quan vào kinh nghiệm của người vận hành.
- Ảnh hưởng của phi tuyến cơ khí và trễ truyền thông: Hệ thống thực nghiệm vẫn chịu ảnh hưởng bởi ma sát tại các ổ bi, khe hở hộp số giảm tốc của động cơ DC Planet và độ trễ lấy mẫu khi truyền nhận dữ liệu thời gian thực giữa máy tính và Arduino Mega 2560 qua giao tiếp nối tiếp.
Hướng phát triển tiếp theo được tác giả đề xuất:
- Nghiên cứu và triển khai thuật toán vung lắc tự động (chẳng hạn phương pháp điều khiển định hình năng lượng - Energy Shaping Control) để hệ thống tự đưa cơ cấu từ vị trí treo tự do lên điểm cân bằng không ổn định.
- Ứng dụng các thuật toán điều khiển hiện đại và thông minh như điều khiển logic mờ (Fuzzy Logic), mạng nơ-ron nhân tạo (Neural Network), hoặc giải thuật di truyền (Genetic Algorithm) để tự động nhận dạng tham số động học và tự động tối ưu hóa bộ tham số điều khiển.
- Nâng cấp độ chính xác gia công cơ khí nhằm triệt tiêu ma sát và độ rơ hộp số.
Giá trị tham khảo
Báo cáo khóa luận mang giá trị thực tiễn đối với:
- Sinh viên và học viên chuyên ngành Kỹ thuật Máy tính, Điều khiển và Tự động hóa, Cơ điện tử và Kỹ thuật Robot: Cung cấp tài liệu tham khảo chi tiết về việc hiện thực hóa mô hình toán học giải tích Euler-Lagrange lên khối lệnh mô phỏng Simulink.
- Cán bộ nghiên cứu và chế tạo thiết bị đào tạo: Phần thiết kế phần cứng cơ khí (thanh liên kết, gá đỡ chữ L, khung nhôm định hình trên Solidworks) và sơ đồ mạch ghép nối linh kiện công nghiệp (cầu H HI216, Rotary Encoder, Arduino Mega 2560) có thể được kế thừa trực tiếp để xây dựng các mô hình thí nghiệm tự cân bằng tại các trường đại học, cao đẳng kỹ thuật.
- Kỹ sư phát triển hệ thống điều khiển nhúng: Quy trình cấu hình và kết nối vi điều khiển với Matlab/Simulink thông qua chế độ "Monitor & Tune" là tài liệu hướng dẫn từng bước hữu ích cho các ứng dụng giám sát và thu thập dữ liệu thời gian thực mà không cần viết mã nhúng C/C++ thủ công.
Câu hỏi thường gặp
1. Acrobot có cấu tạo cơ học và nguyên lý dẫn động khác biệt như thế nào so với Pendubot hay con lắc ngược?
Acrobot là hệ robot phẳng hai bậc tự do hụt dẫn động, trong đó khớp thứ nhất (trục quay nối với khung cố định) là khớp tự do không có động cơ, và chỉ có khớp thứ hai (nối giữa thanh 1 và thanh 2) được trang bị động cơ phát động mô-men. Điều này ngược lại với mô hình Pendubot (khớp 1 có động cơ dẫn động, khớp 2 quay tự do).
2. Tại sao khóa luận lựa chọn bo mạch Arduino Mega 2560 thay vì Arduino Uno R3 để điều khiển mô hình thực tế?
Hệ thống thực tế yêu cầu đọc đồng thời hai cảm biến góc: một Rotary Encoder ngoài (thanh 1) và một encoder tích hợp trên đuôi động cơ (thanh 2), mỗi cảm biến xuất ra 2 kênh xung A và B lệch pha (tổng cộng 4 đường xung vuông). Do Arduino Uno R3 chỉ có 2 chân ngắt ngoài, không đủ khả năng xử lý, tác giả đã chọn Arduino Mega 2560 vì bo mạch này hỗ trợ nhiều chân ngắt ngoài độc lập (khóa luận sử dụng các chân 18, 19, 20, 21), đảm bảo đếm chính xác toàn bộ xung sườn từ hai encoder.
3. Cơ cấu cơ khí thực tế trong đồ án này đã khắc phục nhược điểm của mô hình tác giả Hà Mạnh Quân (2014) ra sao?
Mô hình năm 2014 của Hà Mạnh Quân bố trí động cơ trên cao và truyền động xuống khớp 2 thông qua bộ đai và bánh răng, đồng thời thanh 1 phải có dạng hình chữ T gắn thêm quả đối trọng để cân bằng khối lượng động cơ. Đồ án của Đào Quang Linh khắc phục triệt để điểm này bằng cách thiết kế giá đỡ gắn động cơ đồng trục trực tiếp tại khớp nối giữa thanh 1 và thanh 2, loại bỏ hoàn toàn hệ dây đai, bánh răng và vật đối trọng, giúp mô hình gọn nhẹ và mô phỏng sát với giải phẫu cánh tay người.
4. Vì sao trước khi bật hệ thống điều khiển thực tế, người dùng phải dùng tay đưa mô hình lên vị trí thẳng đứng?
Do khóa luận chưa tích hợp thuật toán vung lắc tự động (swing-up) để đưa thanh từ điểm cân bằng bền phía dưới lên trên. Các bộ điều khiển PID và LQR được thiết kế dựa trên mô hình tuyến tính hóa quanh điểm kỳ dị cân bằng không ổn định ($q_1 = \frac{\pi}{2}, q_2 = \pi$), do đó hệ thống chỉ có khả năng duy trì ổn định cục bộ khi góc lệch của các thanh nằm trong một phạm vi sai số nhỏ xung quanh điểm cân bằng thẳng đứng này.
5. Tần số và độ phân giải xung thực tế của Rotary Encoder được xử lý như thế nào trong giải thuật nhúng?
Rotary Encoder có độ phân giải gốc 400 xung/vòng với 2 kênh xung vuông A và B lệch pha $90^\circ$. Bằng việc sử dụng vi điều khiển để bắt cả sườn lên và sườn xuống của cả hai kênh ngắt, độ phân giải đếm được thực tế nhân lên gấp 4 lần, đạt 1600 xung/vòng. Công thức quy đổi góc quay tức thời ra radian là: $\text{Góc} = \frac{2\pi \times \text{Số xung đếm được}}{1600}$.
Kết luận
Khóa luận tốt nghiệp của tác giả Đào Quang Linh đã giải quyết trọn vẹn bài toán thiết kế, chế tạo và điều khiển cân bằng cho hệ thống cơ điện tử hụt dẫn động Acrobot từ lý thuyết đến thực nghiệm phần cứng. Bằng việc kết hợp mô phỏng động lực học trên Matlab Simulink với khung cơ khí gia công từ nhôm định hình và mạch điều khiển nhúng trên nền tảng Arduino Mega 2560, nghiên cứu đã chứng minh khả năng ổn định vững vàng của cả hai thuật toán PID rời rạc và LQR quanh điểm cân bằng thẳng đứng. Dù còn hạn chế ở việc chưa tự động hóa giai đoạn vung lắc (swing-up) và phương pháp xác định tham số PID còn mang tính thử sai, công trình đã xây dựng thành công một mô hình thực nghiệm trực quan, có giá trị học thuật cao, phục vụ thiết thực cho hoạt động nghiên cứu và giảng dạy chuyên ngành Điều khiển học và Kỹ thuật Robot.