Môn học: Nhận dạng điều khiển hệ thống Modeling cánh tay robot 2 bậc tự do

Khám phá phương pháp nhận dạng và điều khiển cánh tay robot 2 bậc hiệu quả. Nắm vững nguyên lý, ứng dụng thực tiễn trong công nghiệp tự động hóa.

Người đăng

Ẩn danh

Thể loại

Báo cáo cuối kỳ

2024

44
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỤC LỤC

DANH SÁCH HÌNH ẢNH

DANH SÁCH BẢNG

1. Chương 1: MODELING - HỆ CÁNH TAY ROBOT 2 BẬC TỰ DO

1.1. Mô hình hóa hệ cánh tay robot 2 bậc tự do

1.2. Thực hiện mô phỏng bằng Matlab/Simulink hệ cánh tay robot 2 bậc tự do

1.3. Giới thiệu tổng quan về bộ điều khiển trượt

1.4. Thiết kế bộ điều khiển trượt (sliding mode) cho hệ cánh tay robot 2 bậc trên

1.5. Mô phỏng hệ thống với bộ điều khiển bằng Matlab Simulink và đánh giá kết quả

1.5.1. Xây dựng khối giá trị đặt

1.5.2. Xây dựng khối bộ điều khiển trượt

1.5.3. Xây dựng bộ điều khiển trượt cho cánh tay robot 2 bậc tự do

2. Chương 2: MODELING - HỆ XE CON LẮC NGƯỢC

2.1. Mô hình toán học của đối tượng hệ xe con lắc ngược

2.2. Sử dụng tool Identification của Matlab để tìm mô hình toán

2.2.1. Thu thập bộ dữ liệu của mô hình

2.2.2. Nhận dạng mô hình xe con lắc ngược

2.2.3. Thực hiện so sánh giữa mô hình động cơ và mô hình nhận dạng

2.3. Nhận dạng tham số cho hệ thống sử dụng Parameter estimation của Matlab

2.3.1. Thực hiện thu thập số liệu hệ thống con lắc ngược

2.3.2. Thực hiện ước lượng các thông số M, m, l

2.3.3. So sánh giữa bộ thông số ước lượng và bộ thông số trên. Nhận xét và đánh giá kết quả đạt được

2.4. Thiết kế bộ điều khiển LQR cho hệ xe con lắc ngược

2.4.1. Lý thuyết bộ điều khiển LQR

2.4.2. Mô hình hóa hệ con lắc ngược

2.4.3. Thiết kế bộ điều khiển LQR cho hệ con lắc ngược

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về nhận dạng và điều khiển cánh tay robot 2 bậc

Bài viết này tập trung vào chủ đề cốt lõi là nhận dạng và điều khiển cánh tay robot 2 bậc, một lĩnh vực nền tảng trong kỹ thuật robot và tự động hóa. Cánh tay robot 2 bậc tự do (2-DOF) là một hệ thống cơ điện tử kinh điển, bao gồm hai khâu (links) được nối với nhau bằng hai khớp quay (joints). Mặc dù có cấu trúc đơn giản, nó hàm chứa đầy đủ các thách thức cơ bản của bài toán điều khiển robot phức tạp hơn, bao gồm tính phi tuyến cao, sự耦合 (coupling) giữa các khớp, và ảnh hưởng của các yếu tố không chắc chắn như ma sát và nhiễu loạn bên ngoài. Mục tiêu chính của việc nghiên cứu là thiết kế một bộ điều khiển hiệu quả để khớp nối có thể bám chính xác theo một quỹ đạo mong muốn. Để đạt được điều này, quá trình nhận dạng hệ thống (system identification) đóng vai trò tiên quyết, giúp xác định chính xác các tham số vật lý và xây dựng một mô hình toán học robot 2 bậc tin cậy. Mô hình này là cơ sở để thiết kế và mô phỏng robot 2 bậc trước khi triển khai thực tế. Việc điều khiển thành công hệ thống này không chỉ có ý nghĩa học thuật mà còn mở ra nhiều ứng dụng thực tiễn trong các dây chuyền sản xuất tự động, robot gắp thả, và các hệ thống hỗ trợ khác. Do đó, việc nắm vững các phương pháp nhận dạng và kỹ thuật thiết kế bộ điều khiển cho robot 2 bậc là kiến thức không thể thiếu cho các kỹ sư và nhà nghiên cứu trong ngành.

1.1. Cấu trúc và nguyên lý của robot 2 bậc tự do

Một robot 2 bậc tự do điển hình bao gồm hai khâu cứng, ký hiệu là L1 và L2, được kết nối với nhau và với đế cố định thông qua hai khớp quay. Mỗi khớp được điều khiển bởi một động cơ, cho phép khâu tương ứng quay quanh một trục. Vị trí của điểm tác động cuối (end-effector) trong không gian làm việc được xác định hoàn toàn bởi hai góc quay của hai khớp, θ1 và θ2. Nguyên lý hoạt động dựa trên việc tính toán các góc quay cần thiết để đưa điểm tác động cuối đến một vị trí mong muốn, đây chính là cốt lõi của bài toán động học ngược. Ngược lại, từ các góc quay đã biết, ta có thể xác định vị trí điểm cuối, được gọi là bài toán động học thuận. Sự tương tác động lực học giữa hai khâu, bao gồm lực quán tính, lực Coriolis, và ảnh hưởng của trọng lực, làm cho việc điều khiển trở nên phức tạp.

1.2. Tầm quan trọng của việc điều khiển quỹ đạo chính xác

Trong hầu hết các ứng dụng công nghiệp, việc điều khiển quỹ đạo (trajectory planning) chính xác là yêu cầu sống còn. Một cánh tay robot cần di chuyển điểm tác động cuối theo một đường đi được lập trình sẵn với vận tốc và gia tốc xác định. Ví dụ, trong ứng dụng hàn hồ quang hoặc sơn phủ bề mặt, robot phải duy trì một khoảng cách và tốc độ không đổi so với vật thể. Bất kỳ sai lệch nào so với quỹ đạo mong muốn đều có thể dẫn đến sản phẩm lỗi, gây lãng phí và giảm hiệu suất. Do đó, bộ điều khiển không chỉ phải đảm bảo robot đến đúng điểm đích mà còn phải bám sát toàn bộ quỹ đạo chuyển động, ngay cả khi có sự hiện diện của nhiễu và các yếu tố không chắc chắn. Đây là lý do các thuật toán điều khiển tiên tiến luôn được ưu tiên nghiên cứu và phát triển.

II. Phương pháp xây dựng mô hình toán học cho robot 2 bậc

Để thực hiện việc nhận dạng và điều khiển cánh tay robot 2 bậc, bước đầu tiên và quan trọng nhất là xây dựng một mô hình toán học chính xác. Mô hình này mô tả mối quan hệ giữa lực/moment tác động vào các khớp và chuyển động (vị trí, vận tốc, gia tốc) của các khâu robot. Hai phần chính của mô hình hóa là động học và động lực học. Động học robot 2 bậc chỉ quan tâm đến mối quan hệ hình học của chuyển động mà không xét đến lực gây ra nó. Trong khi đó, động lực học robot lại nghiên cứu mối liên hệ giữa lực tác động và chuyển động của hệ thống, dựa trên các định luật vật lý. Một phương pháp phổ biến và hiệu quả để xây dựng mô hình động lực học là sử dụng phương trình Lagrange. Phương pháp này dựa trên việc tính toán năng lượng của hệ thống (động năng và thế năng) thay vì phân tích lực trực tiếp, giúp đơn giản hóa quá trình cho các hệ thống phức tạp có nhiều bậc tự do. Mô hình toán học thu được sẽ là nền tảng không thể thiếu cho việc mô phỏng, phân tích tính ổn định và thiết kế bộ điều khiển cho cánh tay robot, đảm bảo hệ thống hoạt động đúng như mong đợi.

2.1. Phân tích bài toán động học thuận và động học ngược

Bài toán động học thuận (forward kinematics 2 dof) là quá trình xác định vị trí và hướng của điểm tác động cuối (end-effector) dựa trên các góc quay đã biết của các khớp (θ1, θ2). Bài toán này tương đối đơn giản và luôn có lời giải duy nhất, thường được giải bằng các phép biến đổi hình học hoặc ma trận. Ngược lại, bài toán động học ngược (inverse kinematics 2 dof) là quá trình tìm ra bộ góc khớp (θ1, θ2) cần thiết để đưa điểm tác động cuối đến một vị trí và hướng mong muốn trong không gian làm việc (workspace). Bài toán này phức tạp hơn nhiều, có thể không có lời giải, có một hoặc nhiều lời giải. Việc giải quyết thành công bài toán động học ngược là bắt buộc cho việc lập trình và điều khiển robot theo tác vụ.

2.2. Mô hình động lực học robot sử dụng phương trình Lagrange

Phương pháp Lagrange là một công cụ mạnh mẽ để xây dựng mô hình động lực học robot. Nguyên lý của nó là xác định hàm Lagrange L, được định nghĩa là hiệu số giữa tổng động năng (K) và tổng thế năng (P) của hệ thống: L = K - P. Theo tài liệu gốc, động năng và thế năng của từng khâu được tính toán dựa trên khối lượng (m1, m2), chiều dài (L1, L2) và vị trí của chúng. Sau đó, phương trình Euler-Lagrange được áp dụng để tìm ra mối quan hệ giữa moment (τ) tác động lên các khớp và gia tốc góc của chúng (θ̈). Phương trình tổng quát có dạng: M(θ)θ̈ + V(θ, θ̇) + G(θ) = τ, trong đó M(θ) là ma trận quán tính, V(θ, θ̇) biểu diễn các lực Coriolis và ly tâm, G(θ) là vector trọng lực. Mô hình này thể hiện rõ tính phi tuyến và sự耦合 của hệ thống, là cơ sở để thiết kế các bộ điều khiển nâng cao.

III. Giải pháp điều khiển trượt SMC cho cánh tay robot 2 bậc

Một trong những giải pháp hiệu quả cho bài toán nhận dạng và điều khiển cánh tay robot 2 bậc là sử dụng bộ điều khiển trượt (Sliding Mode Control - SMC). Đây là một kỹ thuật điều khiển phi tuyến mạnh mẽ, nổi bật với khả năng bền vững trước các yếu tố không chắc chắn của mô hình và nhiễu loạn từ bên ngoài. Nguyên tắc hoạt động của SMC là thiết kế một 'mặt trượt' trong không gian trạng thái. Sau đó, một luật điều khiển được xây dựng để 'ép' quỹ đạo trạng thái của hệ thống hướng về và duy trì trên mặt trượt này. Một khi hệ thống đã ở trên mặt trượt, nó sẽ 'trượt' về điểm cân bằng mong muốn, và đặc tính của hệ thống lúc này chỉ phụ thuộc vào thông số của mặt trượt mà không bị ảnh hưởng bởi sự thay đổi của tham số hệ thống. Trong tài liệu tham khảo, việc thiết kế bộ điều khiển trượt được thực hiện bài bản, từ việc định nghĩa sai số, xây dựng biểu thức mặt trượt, đến việc tính toán luật điều khiển gồm hai thành phần: điều khiển tương đương (ueq) và điều khiển kháng nhiễu (ur). Kết quả mô phỏng robot 2 bậc cho thấy SMC mang lại đáp ứng nhanh và sai số xác lập rất nhỏ.

3.1. Nguyên lý và các bước thiết kế bộ điều khiển trượt

Thiết kế bộ điều khiển trượt cho robot 2 bậc gồm các bước chính. Đầu tiên, định nghĩa vector sai số e giữa trạng thái thực tế và trạng thái mong muốn. Tiếp theo, xây dựng một mặt trượt s(t) là một tổ hợp tuyến tính của sai số và đạo hàm của nó, ví dụ: s = λe + ė. Mục tiêu là làm cho s(t) hội tụ về 0. Cuối cùng, thiết kế luật điều khiển u(t) sao cho hệ thống luôn thỏa mãn điều kiện trượt, thường là ṡ = -k*sign(s). Luật điều khiển này bao gồm hai phần: ueq để duy trì hệ thống trên mặt trượt khi không có nhiễu và ur để chống lại sự không chắc chắn và nhiễu loạn, đảm bảo quỹ đạo luôn bị đẩy về phía mặt trượt. Việc lựa chọn các tham số như λ và k ảnh hưởng trực tiếp đến tốc độ hội tụ và độ bền vững của hệ thống.

3.2. Vấn đề Chattering và phương pháp khắc phục hiệu quả

Một nhược điểm cố hữu của bộ điều khiển trượt cổ điển là hiện tượng rung 'chattering'. Hiện tượng này xảy ra do thành phần chuyển mạch không liên tục (hàm sign(s)) trong luật điều khiển, gây ra dao động tần số cao trong tín hiệu điều khiển. Chattering không chỉ gây hao tổn năng lượng, làm nóng các cơ cấu chấp hành mà còn có thể kích thích các dao động không mong muốn trong hệ thống cơ khí, dẫn đến mài mòn và hỏng hóc. Để khắc phục, người ta thường thay thế hàm sign(s) bằng các hàm liên tục xấp xỉ, chẳng hạn như hàm bão hòa (saturation function) hoặc hàm sigmoid. Phương pháp này giúp làm 'mượt' tín hiệu điều khiển quanh mặt trượt, giảm thiểu chattering nhưng có thể phải đánh đổi một chút về độ chính xác và tốc độ đáp ứng.

IV. Hướng dẫn mô phỏng điều khiển robot 2 bậc trên MATLAB

Mô phỏng là một bước không thể thiếu trong quá trình nghiên cứu và nhận dạng và điều khiển cánh tay robot 2 bậc. MATLAB Simulink robot arm là một công cụ cực kỳ mạnh mẽ cho phép các kỹ sư xây dựng mô hình, thiết kế bộ điều khiển và kiểm chứng hiệu năng của hệ thống trong một môi trường ảo trước khi triển khai trên phần cứng thực tế. Quá trình mô phỏng giúp tiết kiệm chi phí, giảm thiểu rủi ro hỏng hóc thiết bị và cho phép thử nghiệm nhanh chóng nhiều thuật toán điều khiển khác nhau. Dựa trên tài liệu gốc, mô hình động lực học của robot được cài đặt trong một khối MATLAB Function, nhận tín hiệu điều khiển (moment τ) làm đầu vào và xuất ra trạng thái của robot (góc và vận tốc góc). Bộ điều khiển, ví dụ như SMC, cũng được lập trình trong một khối Function khác. Toàn bộ hệ thống được kết nối lại trong môi trường Simulink, cho phép trực quan hóa đáp ứng của hệ thống, sai số bám quỹ đạo và tín hiệu điều khiển thông qua các khối Scope. Kết quả mô phỏng cung cấp những hiểu biết sâu sắc về hành vi của hệ thống và là bằng chứng quan trọng để đánh giá hiệu quả của bộ điều khiển được thiết kế.

4.1. Xây dựng khối mô hình robot 2 bậc trên Simulink

Để xây dựng mô hình mô phỏng robot 2 bậc, khối chính là khối 'Plant' biểu diễn đối tượng robot. Trong Simulink, điều này thường được thực hiện bằng cách sử dụng khối 'MATLAB Function'. Bên trong khối này, đoạn code sẽ cài đặt các phương trình vi phân trạng thái của hệ thống đã được rút ra từ mô hình động lực học Lagrange. Cụ thể, code sẽ tính toán ma trận quán tính M, vector Coriolis V, và vector trọng lực G dựa trên trạng thái hiện tại (theta, dtheta). Sau đó, nó tính toán gia tốc góc (ddtheta) theo công thức ddtheta = M⁻¹(τ - V - G). Gia tốc này sau đó được tích phân hai lần để thu được vận tốc góc và vị trí góc, hoàn thành vòng lặp mô phỏng. Các tham số vật lý như m1, m2, l1, l2, g được khai báo ngay trong code hoặc truyền từ không gian làm việc của MATLAB.

4.2. Đánh giá đáp ứng và sai số bám của bộ điều khiển

Sau khi mô phỏng, việc quan trọng là đánh giá hiệu năng. Các tiêu chí chính bao gồm: khả năng bám quỹ đạo và sai số. Sử dụng khối 'Scope' trong Simulink, ta có thể vẽ đồ thị so sánh giữa tín hiệu đặt (quỹ đạo mong muốn) và tín hiệu ngõ ra thực tế (góc quay của các khớp). Một bộ điều khiển tốt sẽ cho thấy tín hiệu ngõ ra bám rất sát tín hiệu đặt. Bên cạnh đó, đồ thị sai số (hiệu giữa tín hiệu đặt và ngõ ra) cũng được phân tích. Sai số xác lập (steady-state error) phải tiến về 0, và độ vọt lố (overshoot) cũng như thời gian đáp ứng (response time) cần nằm trong giới hạn cho phép. Tài liệu gốc đã trình bày rõ kết quả khi có và không có nhiễu, cho thấy bộ điều khiển SMC duy trì được sai số gần bằng không, chứng tỏ tính bền vững cao.

V. Ứng dụng thực tiễn và tương lai của điều khiển robot 2 bậc

Mặc dù là một mô hình học thuật, các nguyên lý từ việc nhận dạng và điều khiển cánh tay robot 2 bậc có giá trị ứng dụng thực tiễn rất lớn. Các kiến thức về động học ngược, động lực học robot, và các kỹ thuật điều khiển như PID hay SMC là nền tảng để phát triển các robot công nghiệp phức tạp hơn với 6 bậc tự do hoặc hơn. Trong thực tế, các robot cộng tác (cobot), robot gắp và đặt (pick-and-place) trong các dây chuyền lắp ráp điện tử, hay robot sắp xếp hàng hóa trong kho vận đều dựa trên những nguyên tắc điều khiển này. Hướng phát triển trong tương lai đang tập trung vào việc áp dụng các thuật toán điều khiển thông minh hơn để giải quyết các vấn đề còn tồn tại. Ví dụ, điều khiển mờ (fuzzy logic)mạng nơ-ron nhân tạo có khả năng học và thích nghi với những thay đổi không lường trước của môi trường, giúp robot hoạt động hiệu quả hơn. Hơn nữa, việc tích hợp các bộ điều khiển này trên các nền tảng nhúng chi phí thấp như lập trình Arduino cho robot arm hoặc Raspberry Pi đang làm cho công nghệ robot trở nên dễ tiếp cận hơn cho các ứng dụng quy mô nhỏ, giáo dục và nghiên cứu.

5.1. Tích hợp điều khiển thông minh Logic mờ và mạng nơ ron

Để cải thiện khả năng thích ứng và xử lý các yếu tố phi tuyến phức tạp, các phương pháp điều khiển thông minh đang được nghiên cứu rộng rãi. Điều khiển mờ (fuzzy logic) cho phép mô phỏng quá trình tư duy của con người, đưa ra quyết định điều khiển dựa trên các luật 'nếu-thì' thay vì một mô hình toán học cứng nhắc, rất hữu ích khi mô hình hệ thống không hoàn toàn chính xác. Trong khi đó, mạng nơ-ron nhân tạo có khả năng học từ dữ liệu để nhận dạng các đặc tính động học phức tạp của robot hoặc thậm chí là tự tối ưu hóa bộ điều khiển. Sự kết hợp giữa điều khiển kinh điển và các kỹ thuật thông minh này hứa hẹn tạo ra các hệ thống robot tự율 và linh hoạt hơn.

5.2. Triển khai trên hệ thống nhúng Arduino và Python

Việc chuyển từ mô phỏng sang mô hình thực tế là một bước nhảy vọt quan trọng. Các nền tảng như Arduino và Raspberry Pi, với chi phí thấp và cộng đồng hỗ trợ lớn, đã trở thành lựa chọn phổ biến để triển khai các thuật toán điều khiển. Lập trình Arduino cho robot arm thường được sử dụng để điều khiển trực tiếp các động cơ servo hoặc động cơ bước. Đối với các thuật toán phức tạp hơn, người ta có thể sử dụng Raspberry Pi chạy code Python điều khiển robot. Python, với các thư viện mạnh mẽ như NumPy và SciPy, cho phép thực hiện các phép tính ma trận phức tạp cần thiết cho bài toán động học và động lực học, sau đó gửi tín hiệu điều khiển xuống vi điều khiển cấp thấp hơn như Arduino. Sự kết hợp này tạo ra một kiến trúc điều khiển phân cấp, mạnh mẽ và linh hoạt cho các dự án robot thực tế.

11/09/2025

Trích đoạn nội dung tài liệu

Chương 1: MODELING - HỆ CÁNH TAY ROBOT 2 BẬC TỰ DO 1.1 Mô hình hóa hệ cánh tay robot 2 bậc tự do Hình 1. Mô hình của hệ robot 2 bậc tự do Các thông số vật lí của hệ cánh tay robot hai bậc tự do: 𝐿1 = 𝐿2 = 1 : Chiều dài hai khớp (m) g = 9.8 :Gia tốc trọng trường (m/s2 ) 𝑚1 = 𝑚2 = 1 :Khối lượng của hai khớp (kg) Phân tích hệ thống cơ cánh tay robot 2 bậc tự do Giả sử trọng tâm nằm ở vị trí cuối khâu và moment quán tính ở các khâu là bằng không. Vị trí và vận tốc của m1 𝑥1 𝐿1 𝑐𝑜𝑠𝜃1 [ ]=[ ] 𝑦1 𝐿1 𝑠𝑖𝑛𝜃1 𝑥1̇ −𝐿1 𝑠𝑖𝑛𝜃1 [ ]=[ ] 𝜃̇ 𝑦1̇ 𝐿1 𝑐𝑜𝑠𝜃1 1 Vị trí và vận tốc của m2: 𝑥2 𝐿1 𝑐𝑜𝑠𝜃1 + 𝐿2𝑐𝑜𝑠(𝜃1 + 𝜃2 ) [ ]=[ ] 𝑦2 𝐿1 𝑠𝑖𝑛𝜃1 + 𝐿2𝑠𝑖𝑛(𝜃1 + 𝜃2 ) 𝑥2̇ −𝐿1 𝑠𝑖𝑛𝜃1 − 𝐿2𝑠𝑖𝑛(𝜃1 + 𝜃2 ) − 𝐿2𝑠𝑖𝑛(𝜃1 + 𝜃2 ) 𝜃1̇ [ ]=[ ][ ̇ ] 𝑦2̇ 𝐿1 𝑐𝑜𝑠𝜃1 + 𝐿2𝑐𝑜𝑠(𝜃1 + 𝜃2 ) 𝐿2𝑐𝑜𝑠(𝜃1 + 𝜃2 ) 𝜃2 Năng lượng động năng 1 1 𝐾1 = 𝑚1 𝑣1 2 = 𝑚1 (𝑥1̇ 2 + 𝑦1̇ 2 ) 2 2 4 1 1 𝐾2 = 𝑚2 𝑣2 2 = 𝑚2 (𝑥2̇ 2 + 𝑦2̇ 2 ) 2 2 Năng lượng thế năng 𝑃1 = 𝑚1 𝑔𝑦1 𝑃2 = 𝑚2 𝑔𝑦2 Hàm Lagrange 2 L(θ, θ̇) = ∑(𝐾𝑖 − 𝑃𝑖 ) i=1 Thế 𝐾1 ,𝐾2 ,𝑃1 ,𝑃1 vào hàm Lagrange ta được: 1 L(θ, θ̇) = [𝑚1 (𝑥1̇ 2 + 𝑦1̇ 2 ) + 𝑚2 (𝑥2̇ 2 + 𝑦2̇ 2 )] − g(𝑚1 𝑦1 + 𝑚2 𝑦2 ) 2 Theo Phương trình Euler – Lagrange tổng quát ta có: 𝑑 𝜕𝐿 𝜕𝐿 𝜏𝑖 = − , 𝑖 = 1,2 𝑑𝑡 𝜕𝜃𝑖̇ 𝜕𝜃𝑖 Với 𝜏 là Moment (Torque) cung cấp cho các khớp.2 Thực hiện mô phỏng bằng Matlab/Simulink hệ cánh tay robot 2 bậc tự do Xây dựng mô hình robot 2 dof bằng matlab simulink Hình 2. Mô hình robot 2 dof bằng matlab simulink Trong khối robot 2 dof Hình 3.

Sơ đồ trong khối robot 2 dof - Ta dùng khối MATLAB Function để mô tả hệ phương trình trạng thái của hệ cánh tay robot. Chương trình matlab như sau: %% HCMUTE %% Ngô Anh Tuấn & Lê Thanh Tùng 6 function ddtheta= Robot2dof(u,theta,dtheta,dt) %%Declaration m1=1; m2=1; l1=1; l2=1; g=9.81; %%Khai bao mot so viet tat t1=theta(1); t2=theta(2); dt1=dtheta(1); dt2=dtheta(2); c1=cos(t1); c2=cos(t2); s1=sin(t1); s2=sin(t2); c12=cos(t1+t2); %% M M=[m1*l1^2+m2*(l1^2+2*l1+l2*c2+l2^2),m2*(l1*l2*c2+l2^2);. m2*(l1*l2*c2+l2^2),m2*l2^2]; %% V V=[-m2*l1*l2*s2*(2*dt1*dt2+dt2^2);m2*l1*l2*dt1^2*s2]; %% G G=[(m1+m2)*g*l1*c1+m2*g*l2*c12;m2*g*12*c12]; %%Simalation ddtheta=(M^-1)*(-V-G)+(M^-1)*u-(M^-1)*dt; Kết quả mô phỏng 7 Hình 4. Đáp ứng của hệ cánh tay robot 2 bậc khi chưa có bộ điều khiển Nhận xét: - Với ngõ vào là góc quay tại 2 khớp 1 và 2 là các sóng sin.

Tuy nhiên ngõ ra ở mô hình robot các góc tương ứng không bám theo các ngõ vào. Lí do chưa có bộ điều khiển.3 Giới thiệu tổng quan về bộ điều khiển trượt Hình 5. Đồ thị biểu diễn hoạt động của bộ điều khiển trượt 8 Bộ điều khiển trượt (Sliding Mode Control - SMC) là một kỹ thuật điều khiển mạnh mẽ, được sử dụng rộng rãi trong việc quản lý và điều khiển các hệ thống không tuyến tính. Kỹ thuật này nổi bật với khả năng duy trì hiệu suất ổn định của hệ thống dù trong điều kiện có sự biến động của tham số hoặc sự hiện diện của nhiễu.

Bộ điều khiển trượt hoạt động dựa trên nguyên tắc thiết lập một mặt trượt (sliding surface) trong không gian trạng thái của hệ thống. Mục tiêu là điều khiển hệ thống sao cho nó đạt tới và duy trì trên mặt trượt này trong quá trình hoạt động. Khi hệ thống tiếp cận và di chuyển dọc theo mặt trượt, điều khiển trượt sẽ phát huy tác dụng, giảm thiểu sự ảnh hưởng của các yếu tố không mong muốn và đẩy nhanh quá trình hội tụ về trạng thái mong muốn. Một trong những ưu điểm chính của bộ điều khiển trượt là khả năng chịu nhiễu cao và khả năng thích nghi với sự thay đổi của các thông số hệ thống mà không yêu cầu điều chỉnh lại thiết kế điều khiển.

Điều này làm cho SMC trở thành lựa chọn ưu tiên trong các ứng dụng yêu cầu độ tin cậy cao và tính ổn định trước những bất ổn của môi trường và hệ thống, như trong ngành công nghiệp ô tô, hàng không, và các hệ thống điều khiển tự động. Bộ điều khiển trượt thường được sử dụng trong các hệ thống điều khiển động cơ, hệ thống điều khiển quá trình, và nhiều ứng dụng khác trong kỹ thuật điện và cơ khí. Sự kết hợp của tính đơn giản, hiệu quả và độ tin cậy cao làm cho phương pháp này vẫn luôn được cộng đồng kỹ sư và nhà nghiên cứu quan tâm và phát triển không ngừng.4 Thiết kế bộ điều khiển trượt (sliding mode) cho hệ cánh tay robot 2 bậc trên Chuẩn hóa phương trình vi phân xét trường hợp có nhiễu M(θ)θ̈ + V(θ, θ̇) + G(θ) + dα = τ Với dα là tín hiệu nhiễu hệ thống Từ phương trình trên ta suy ra: M(θ)θ̈ = τ − V(θ, θ̇) − G(θ) − dα => θ̈ = M(θ)−1 τ − M(θ)−1 (V(θ, θ̇) + G(θ)) − M(θ)−1 dα Ta đặt: u1 τ = u = [u ] 2 Phương trình vi phân hệ cánh tay robot hai bậc tự do có tín hiệu nhiễu trở thành: θ̈ = M −1 u − M −1 (V + G) − M −1 dα Đặt các biến trạng thái 𝑥1 𝑥̇ 1 = 𝜃̇ {𝑥̇ 1 = 𝑥2 = 𝜃̇ => { 𝑥̇ 2 = 𝜃̈ = M −1 u − M −1 (V + G) − M −1 dα 𝑥̇ 2 = 𝜃̈ 9 Ta biểu diễn quan hệ vào ra của đối tượng phi tuyến có tín hiệu nhiễu 𝑦̈ = 𝑎(𝑥) + 𝑏(𝑥)𝑢 + 𝑑𝑡 a(x) = −M −1 (V + G) ẋ 1 = x2 −> { b(x) = M −1 −> { ẋ 2 = a(x) + b(x)u + dt dt = −M −1 dα Các bước thiết kế bộ điều khiển trượt cho hệ Bước 1: Tính đạo hàm tín hiệu ra θ Ngõ ra θ = [ 1 ] là hai góc quay của hai trục bám theo tín hiệu đặt: θ2 𝜋 𝜃𝑑1 (𝑡) = 𝑠𝑖𝑛(0.2𝜋𝑡 + ) 6 6 Sai số giữa tín hiệu đặt và tín hiệu ngõ ra: 𝑒 = θ − 𝜃𝑑 = 𝑥1 − 𝜃𝑑 { 𝑒̇ = 𝜃̇ − 𝜃𝑑̇ = 𝑥2 − 𝜃𝑑̇ Bước 2: Biểu thức mặt trượt: Vì đây là hệ bậc 2 có n = 2 nên ta chọn mặt trượt s = λe + ė => ṡ = λė + ë Bước 3: Viết biểu thức bộ điều khiển trượt Bộ điều khiển trượt gồm hai thành phần: 𝑢𝑟 = 𝑢𝑒𝑞 + 𝑢𝑟 Trong đó 𝑢𝑒𝑞 được tính khi cho 𝑠̇ = −𝑘1 𝑠 và d(t)=0 => λė + ë = −𝑘1 𝑠 => λė + ẋ 2 − θ̈d = −𝑘1 𝑠 => λė + a(x) + b(x)ueq + dt − θ̈d = −𝑘1 𝑠 => λė + a(x) + b(x)ueq − θ̈d = −𝑘1 𝑠 => ueq = b(x)−1 (−a(x) + θ̈d − λė − 𝑘1 𝑠) Ta lại có 𝑢𝑟 = −𝑏(𝑥)−1 𝑘𝑠𝑖𝑔𝑛(𝑠) Ta có luật điều khiển của bộ điều khiển trượt: u = 𝑢𝑒𝑞 + 𝑢𝑟 10 => u(t) = 𝑏(𝑥)−1 [−a(x) + θ̈d − λė − 𝑘1 𝑠 − 𝑘𝑠𝑖𝑔𝑛(𝑠)] => u(t) = 𝑀[−M −1 (−V − G) + θ̈d − λė − 𝑘1 𝑠 − 𝑘𝑠𝑖𝑔𝑛(𝑠)] => u(t) = 𝑀[M −1 (V + G) + θ̈d − λė − 𝑘1 𝑠 − 𝑘𝑠𝑖𝑔𝑛(𝑠)] Trong đó K1 có tác dụng thay đổi tốc độ mà mặt trượt tiến về 0 và được chọn qua nhiều lần thử nghiệm, K được chọn dựa theo tín hiệu nhiễu mô phỏng. Bước 4: Thiết kế bộ lọc thông thấp tín hiệu vào đảm bảo tín hiệu khả vi bị chặn đến bậc 2: 1 𝐺𝐿𝐹1 = (0.5 Mô phỏng hệ thống với bộ điều khiển bằng Matlab Simulink và đánh giá kết quả • Xây dựng sơ đồ khối động học cánh tay robot 2 bậc tự do Hình 6.

Mô hình động học robot mô phỏng bằng Matlab Chương trình Matlab Function %% HCMUTE %% Ngô Anh Tuấn & Lê Thanh Tùng function ddtheta= Robot2dof(u,theta,dtheta,dt) %%Declaration m1=1; m2=1; l1=1; 11 l2=1; g=9.81; %%Khai bao mot so viet tat t1=theta(1); t2=theta(2); dt1=dtheta(1); dt2=dtheta(2); c1=cos(t1); c2=cos(t2); s1=sin(t1); s2=sin(t2); c12=cos(t1+t2); %% M M=[m1*l1^2+m2*(l1^2+2*l1+l2*c2+l2^2),m2*(l1*l2*c2+l2^2);.1 Xây dựng khối giá trị đặt 1.2 Xây dựng khối bộ điều khiển trượt - Chương trình Matlab Function %%HCMUTE %% NGÔ ANH TUẤN & LÊ THANH TÙNG function u=SMC(theta,dtheta,theta_r,dtheta_r,ddtheta_r) %%Declaration m1=1; 13 m2=1; l1=1; l2=1; g=9.81; %%Gan gia tri t1=theta(1,1); t2=theta(2,1); dt1=dtheta(1,1); dt2=dtheta(2,1); %%Khai bao mot so viet tat c1=cos(t1); c2=cos(t2); s1=sin(t1); s2=sin(t2); c12=cos(t1+t2); %% M M=[m1*l1^2+m2*(l1^2+2*l1+l2*c2+l2^2),m2*(l1*l2*c2+l2^2);.3 Xây dựng bộ điều khiển trượt cho cánh tay robot 2 bậc tự do Hình 7. Mô hình bộ điều khiển trượt cho hệ cánh tay robot 2 bậc tự do sử dụng Matlab 1.4 Kết quả Kết quả của bộ điều khiển trượt khi không có nhiễu (Bộ thông số lamda=50 , k=150, k1=55) 15 Hình 8. Đáp ứng ngõ ra khi hệ thống không có nhiễu Hình 9. Sai số ngõ ra của hệ thống khi không có nhiễu Hình 10.

Tín hiệu điều khiển của hệ thống khi không có nhiễu 16 • Kết quả của bộ điều khiển trượt khi có nhiễu(Bộ thông số lamda=30 , k=30, k1=40) Hình 11. Đáp ứng ngõ ra khi hệ thống có nhiễu Hình 12. Sai số ngõ ra khi hệ thống có nhiễu 17 Hình 13. Tín hiệu điều khiển khi hệ thống có nhiễu ❖ Nhận xét: + Khi không có nhiễu : Tín hiệu ngõ ra bám sát so với tín hiệu đặt với sai số xắp xỉ bằng 0 + Khi có nhiễu: Tín hiệu ngõ ra vẫn bám sát so với tín hiệu điều khiển , tín hiệu điều khiển có sự dao động hay còn gọi là chattering => Nhìn chung cả 2 trường hợp bộ điều khiển vẫn hoạt động tốt và đáp ứng yêu cầu đặt ra Tuy nhiên bộ điều khiển trượt cho hệ robot 2 bậc tự do nói riêng hay bộ điều khiển trượt nói chung vẫn còn một số nhược điểm như hiện tương rung (chattering), sự rung này làm tổn thất nhiệt trong các thiết bị điện, gây những dao động cho thiết bị cơ học và làm hỏng chúng.

18 Chương 2: MODELING - HỆ XE CON LẮC NGƯỢC 2.1 Mô hình toán học của đối tượng hệ xe con lắc ngược Các thông số kỹ thuật của hệ thống • u: lực tác động vào xe [N] • x: vị trí xe [m] •  : góc lệch giữa con lắc và phương thẳng đứng [rad] • M = 1: khối lượng xe [kg] • g = 9.8: gia tốc trọng trường [ m / s 2 ] • m = 0.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ