1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ kỹ thuật điều khiển và tự động hóa: So sánh các phương pháp Điều khiển bám quỹ đạo cho Pendubot

95 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề So Sánh Các Phương Pháp Điều Khiển Bám Quỹ Đạo Cho Pendubot
Tác giả Trần Trọng Bằng
Người hướng dẫn ThS. Lê Thị Hồng Lam
Trường học Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ kỹ thuật điều khiển và tự động hóa
Thể loại đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 95
Dung lượng 5,15 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (22)
    • 1.1 Đặt vấn đề (22)
    • 1.1 Mục tiêu (23)
    • 1.2 Giới hạn (23)
    • 1.3 Nội dung nghiên cứu (23)
    • 1.4 Phương pháp nghiên cứu (23)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (24)
    • 2.1 GIỚI THIỆU (24)
      • 2.1.1. SIMO (24)
      • 2.1.2. Pendubot (24)
    • 2.2 GIẢI THUẬT ĐIỀU KHIỂN (29)
      • 2.2.1 LQR (29)
      • 2.2.2 FUZZY (32)
      • 2.2.3 PID dựa trên LQR (35)
    • 2.3 GIẢI THUẬT DI TRUYỀN (36)
      • 2.3.1 Khái niệm (36)
      • 2.3.2 Ưu điểm của GA (38)
      • 2.3.3 Nhược điểm của GA (38)
  • CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ (40)
    • 3.1 Pendubot (40)
    • 3.2 Sample trajectory (41)
    • 3.3 LQR (43)
    • 3.4 FUZZY (47)
    • 3.5 PID dựa trên LQR (51)
  • CHƯƠNG 4. THI CÔNG HỆ THỐNG (56)
    • 4.1 Phần cứng (56)
      • 4.1.1 Vi điều khiển (56)
      • 4.1.2 Encoder (57)
      • 4.1.3 Động cơ (57)
      • 4.1.4 Bộ nguồn công suất (58)
      • 4.1.5 Mạch cầu H (59)
      • 4.1.6 Module giao tiếp UART (59)
    • 4.2 Phần mềm (60)
      • 4.2.1 Xử lý phần cứng với STM32Cube MX (60)
      • 4.2.2 Viết chương trình với Keil C (64)
  • CHƯƠNG 5. KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ (74)
    • 5.1 Kết quả thực nghiệm LQR (74)
    • 5.2 Kết quả thực nghiệm Fuzzy (77)
    • 5.3 Kết quả thực nghiệm PID dựa trên LQR (80)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (83)

Nội dung

Nội dung thực hiện đề tài: ▪ Xây dựng phương trình mô phỏng động lực học chính xác theo mô hình của hệ Pendubot ▪ Thiết kế mô hình hệ Pendubot và thu thập thông số phần cứng của pendubo

TỔNG QUAN

Đặt vấn đề

Với sự tiến bộ vượt bậc trong các ngành công nghiệp và kỹ thuật như Công nghệ thông tin, Kỹ thuật điện, Điện tử, và Điều khiển tự động, các robot và thiết bị tự động đã trở thành hiện thực Những sản phẩm công nghệ tiên tiến như xe tự cân bằng, máy bay không người lái, tên lửa đạn đạo, và tàu vũ trụ khứ hồi toàn phần đang chứng minh sự phát triển mạnh mẽ của lĩnh vực này.

Trong những năm gần đây, SpaceX, dưới sự lãnh đạo của tỷ phú Elon Musk, đã thành công trong việc triển khai cơ chế điều khiển cho tên lửa đẩy giai đoạn một, cho phép chúng quay trở lại Trái đất sau khi hoàn thành nhiệm vụ Thành tựu này không chỉ tiết kiệm hàng chục triệu USD mà còn đóng góp đáng kể vào việc bảo vệ môi trường.

Để Việt Nam có thể tham gia vào cuộc đua chinh phục không gian với chi phí thấp nhất, việc bắt đầu bằng việc điều khiển những mô hình đơn giản là rất quan trọng Tôi đã chọn mô hình Pendubot, một hệ thống phi tuyến tương đồng với tàu vũ trụ, nhằm phát triển kỹ năng cần thiết cho tương lai.

Trong chương trình giáo dục tại Đại học Sư phạm Kỹ thuật TP.HCM, tôi đã khám phá các lĩnh vực điều khiển như điều khiển tuyến tính, điều khiển nâng cao và điều khiển thông minh Mặc dù đã hoàn thành khóa học, tôi vẫn chưa hiểu rõ sự khác biệt giữa các thuật toán điều khiển này về hiệu quả đạt được.

Trong nghiên cứu này, tôi chọn hai mảng điều khiển nâng cao và điều khiển thông minh để so sánh hiệu quả của chúng trong việc điều khiển cùng một đối tượng Cụ thể, tôi sẽ so sánh giải thuật LQR và giải thuật FUZZY Đối với hệ phi tuyến SIMO, tôi sẽ tập trung vào các đối tượng phi tuyến như Pendubot và Acrobot, mặc dù Acrobot có độ phức tạp cao hơn, nhưng do hạn chế về khả năng thiết kế cơ khí, tôi quyết định chọn Pendubot làm đối tượng chính cho luận văn này So sánh này sẽ giúp làm rõ sự khác biệt giữa các bộ điều khiển và xác định thời điểm sử dụng từng loại.

Trong quá trình thực hiện các thực nghiệm quy hoạch quỹ đạo với giải thuật LQR, tôi nhận thấy rằng LQR có khả năng bám quỹ đạo tốt và cơ chế tương tự như giải thuật PID Việc kết hợp hai bộ điều khiển này có thể cải thiện đáng kể kết quả điều khiển Vì vậy, trong báo cáo này, tôi sẽ so sánh ba giải thuật: LQR, FUZZY và LQR kết hợp PID để đánh giá hiệu quả của chúng.

Mục tiêu

Mục tiêu đầu tiên của luận văn là thiết kế và xây dựng chính xác mô hình

Pendubot được thiết kế với các thông số kỹ thuật và đặc điểm cấu tạo phù hợp cho nghiên cứu Mô phỏng và điều khiển ba giải thuật thành công trong môi trường ảo bằng phần mềm Simulink đã chứng minh tính hiệu quả của chúng Kết nối và điều khiển vi xử lý STM32 đảm bảo khả năng tương tác giữa phần cứng và phần mềm Mục tiêu tiếp theo là nhận dạng chính xác các thông số hệ thống để thiết kế các bộ điều khiển tối ưu Cuối cùng, thực nghiệm và điều khiển thành công ba giải thuật trên mô hình thực tế giúp đánh giá hiệu quả của từng bộ điều khiển và đề xuất hướng cải tiến nếu cần thiết.

Giới hạn

Trong bài nghiên cứu này, tôi tập trung vào việc so sánh các thuật toán điều khiển mà không xem xét phương pháp điều khiển swing up Sản phẩm nghiên cứu được phát triển ở mức độ phòng thí nghiệm, không phải trong môi trường công nghiệp, do đó giao diện điều khiển không được nghiên cứu và xây dựng.

Nội dung nghiên cứu

Khả năng điều khiển cân bằng của ba giải thuật cho hệ phi tuyến được so sánh và đánh giá trong hai môi trường mô phỏng và thực nghiệm Nghiên cứu tìm kiếm phương pháp mới nhằm lựa chọn phần cứng phù hợp ngay từ giai đoạn mô phỏng Đồng thời, cải thiện chương trình mô phỏng để đảm bảo tính chính xác khi áp dụng vào thực nghiệm.

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

Mô hình Pendubot được thiết kế và xây dựng với độ chính xác cao, bao gồm việc mô phỏng ba thuật toán điều khiển trong Simulink dưới nhiều yếu tố môi trường và điều kiện phần cứng khác nhau Hệ thống được kết nối và điều khiển thông qua vi xử lý STM32, cho phép nhận dạng chính xác các thông số của hệ thống Cuối cùng, thực nghiệm điều khiển được thực hiện để đánh giá và so sánh hiệu suất của các bộ điều khiển khác nhau.

CƠ SỞ LÝ THUYẾT

GIỚI THIỆU

Mô hình SIMO (Single Input Multiple Output) có đặc điểm là số lượng đầu vào điều khiển ít hơn so với số lượng tín hiệu đầu ra cần điều khiển, cho thấy khả năng điều khiển phi tuyến và tạo ra những thách thức lớn trong quá trình điều khiển Trong ngành công nghiệp, để tiết kiệm chi phí, thường chỉ sử dụng một cơ cấu chấp hành để điều khiển nhiều thông số trạng thái của hệ thống, ví dụ như chỉ điều khiển tốc độ máy bơm nhưng vẫn phải kiểm soát nhiệt độ, lượng nước và áp suất trong bồn nước Trong lĩnh vực khoa học, mô hình SIMO xuất hiện phổ biến trong các ứng dụng như phương tiện cân bằng, máy bay không người lái, tàu ngầm, tên lửa đạn đạo và tàu vũ trụ.

Các thuật toán SIMO đóng vai trò quan trọng trong việc định hình tương lai của khoa học và công nghệ, đặc biệt trong việc cải thiện các hệ thống điều khiển cho các ứng dụng phức tạp Vì vậy, trong đồ án này, tôi đã chọn nghiên cứu các hệ thống SIMO để kiểm chứng chất lượng của các giải thuật điều khiển.

2.1.2 Pendubot Ở Việt Nam, trong điều kiện kinh tế chưa tốt, thì các hệ thống SIMO quá phức tạp không được ưu tiên lựa chọn ở các phỏng thí nghiệm điều khiển tự động Tuy nhiên với Pendubot thì đây là hệ thống có cấu tạo đơn giản bậc nhất Dễ dàng cho sinh viên tiếp cận với mức chi phí không quá cao Vì vậy, dễ dàng tìm thấy hệ thống này với nhiều biến thể ở các phòng thí nghiệm điều khiển Sau khi tiếp xúc và biết được các ưu điểm này, em đã chọn Pendubot là đối tượng kiểm chứng ở bài khảo sát này

Pendubot là một hệ thống gồm hai thanh được kết nối qua một khớp xoay Khớp đầu tiên kết nối trực tiếp với cơ cấu chấp hành, với mục tiêu điều khiển link 1 trong khi đảm bảo rằng link 2 luôn ổn định và thẳng đứng.

Trong hệ thống, có hai vị trí khả vi: TOP (hướng lên trên) và MID (hướng xuống dưới) Sau khi so sánh các giải pháp, chúng tôi đã quyết định chọn vị trí TOP làm vị trí làm việc chính do độ khó điều khiển cao hơn Bên cạnh đó, các thực nghiệm điều khiển theo quỹ đạo được quy hoạch cũng là yếu tố không thể thiếu.

Từ tài liệu [1], em có mô hình toán học như sau:

Hình 2.1 Cấu tạo lý thuyết Pendubot

Bảng 2.1 Các kí hiệu thông số mô hình ở

Ký hiệu thông số Giá trị Đơn vị

𝑙 𝑐1 Vị trí trọng tâm của link 1 m

𝑙 𝑐2 Vị trí trọng tâm của link 2 m

𝐼 1 Momen quán tính link 1 kg.m 2

𝐼 2 Momen quán tính link 2 kg.m 2

𝑔 Gia tốc trọng trường m/s 2 torque 1 Momen xoắn từ động cơ N.m

Tài liệu [3] đã cung cấp minh chứng thực nghiệm và mô phỏng, khẳng định tính chính xác của phương trình toán học mô tả hệ Pendubot Phương trình này được trình bày rõ ràng và có cơ sở vững chắc.

Phương trình (2.1) là gia tốc quay của link 1 và phương trình (2.2) là gia tốc quay của link 2

Hình 2.2 Mô hình thực pendubot

Chúng tôi đã chọn vật liệu nhôm để chế tạo link 1 và link 2 nhằm giảm thiểu dao động và nhiễu rung động từ vật liệu Việc này giúp đảm bảo trục động cơ giữ cố định link 1 và ổn định trục nối của link 2.

Các thông số link 1 và link 2 được trình bày chi tiết ở Bảng 2:

Bảng 2.2 Các thông số được đo đạt và tính toán

Ký hiệu thông số Mô tả Đơn vị

Các thông số đã được đo đạc trực tiếp cho từng liên kết bằng thước xây dựng và cân tiểu li Đặc biệt, momen quán tính 𝐼 1 và 𝐼 2 được tính toán theo công thức (2.4).

Tiếp theo, cần xác minh tính điều khiển của mô hình này bằng cách tuyến tính hóa các phương trình trạng thái (2.1) và (2.2) tại điểm làm việc Để dễ nhận diện các biến trạng thái, trước tiên, tôi sẽ thực hiện việc đổi biến.

2; 𝑥 2 = 𝑞 1 ̇ ; 𝑥 3 = 𝑞 2 ; 𝑥 4 = 𝑞 2 ̇ (2.5) Đối với 𝑥 1 em cộng thêm 𝜋

2 vì theo Hình 2.1 điểm 0 là vị trí nằm ngang nên theo chiều quay của hệ thì vị trí đứng hướng lên là vị trí 𝜋

2 Lúc này vị trí làm việc TOP được xác định khi

4 biến trạng thái về 0 Tuyến tính hóa phương trình (2.1) và (2.2) về dạng:

𝜕𝜏 1 ] Ở trạng thái ổn định 𝑞 1 = 0; 𝑞 1 = 0̇ ; 𝑞 2 = 0; 𝑞 2 ̇ = 0; 𝑢 = 0, thế các thông số hệ thống ở Bảng 2 vào ma trận A và B ta được:

Xét ma trận M có rank=4, vậy mô hình Pendubot này có thể điều khiển được.

GIẢI THUẬT ĐIỀU KHIỂN

Bộ điều khiển LQR (Linear–quadratic regulator) là một phương pháp tối ưu hóa trong lý thuyết điều khiển tuyến tính hóa, dựa trên phép tính biến phân Lý thuyết này được phát triển nhờ vào những đóng góp quan trọng của Lev Pontryagin và các cộng sự ở Liên Xô, cũng như Richard Bellman tại Hoa Kỳ Với nền tảng lý thuyết bền vững, bộ điều khiển LQR đã được chứng minh là ổn định theo lý thuyết Lyapunov.

Để xây dựng bộ điều khiển LQR, cần tuyến tính hóa phương trình trạng thái hệ thống theo dạng phương trình (2.6) Trong mô hình thực tế, vi xử lý sẽ được sử dụng để đọc tín hiệu, dẫn đến việc hệ thống trở thành hệ rời rạc với chu kỳ lấy mẫu Thời gian lấy mẫu được chọn là 5ms Để chuyển ma trận A và B từ hệ liên tục sang hệ rời rạc, có thể sử dụng MATLAB với lệnh hỗ trợ.

Ta được ma trận Ad và Bd như sau:

Trong quá trình lựa chọn chất lượng điều khiển, chúng ta cần xác định các trọng số trong ma trận Q và R Ma trận Q phản ánh chất lượng điều khiển mà chúng ta mong muốn đạt được.

Ma trận R thể hiện mối quan hệ giữa năng lượng tiêu thụ và quá trình điều khiển Trong nghiên cứu này, tôi đã chọn cả hai ma trận ở dạng biến để thuận tiện cho việc điều chỉnh khi tìm kiếm trọng số phù hợp.

Theo Wikipedia phương trình DARE (discrete time algebraic Riccati equation) có dạng:

Ma trận điều khiển K của bộ điều khiển LQR có dạng:

𝐾 = 𝑅 −1 (𝐵 𝑇 𝑃 + 𝑁 𝑇 ) (2.13) c) Quá trình tính toán với công cụ

Giải nghiệm P của phương trình (2.12) có thể tốn thời gian và khó khăn Tuy nhiên, Matlab cung cấp một giải pháp nhanh chóng để tìm ma trận điều khiển K thông qua các lệnh hỗ trợ.

(2.14) Tín hiệu điều khiển u(t) có dạng:

Hình 2.4 Cấu trúc cơ bản của bộ điều khiển LQR

Giáo sư Lotfi Zadeh từ Trường Đại học California đã giới thiệu lý thuyết logic mờ vào năm 1965, mang đến một cách tiếp cận mới cho việc giải quyết các vấn đề theo cách tư duy của con người Lý thuyết này đã phát triển mạnh mẽ và hiện được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau trong cuộc sống.

Khác với logic truyền thống chỉ có hai giá trị True (1) và False (0), logic mờ cho phép biểu thức trả về giá trị trong khoảng từ 0 đến 1, thể hiện mức độ đúng đắn của nó Điều này mang lại sự linh hoạt và phong phú trong việc biểu diễn và xử lý thông tin.

Trong logic mờ, các biến không chỉ là con số cụ thể mà còn được biểu diễn qua các khái niệm trừu tượng như "nóng", "lạnh", "nhanh", "chậm" Điều này giúp logic mờ gần gũi hơn với tư duy tự nhiên của con người, từ đó làm cho quá trình tính toán trở nên linh hoạt và hiệu quả hơn.

Hình 2.5 Cấu trúc lý thuyết của bộ điều khiển Fuzzy

Bộ điều khiển được phát triển dựa trên bộ điều khiển mờ cho hệ thống xe con lắc theo tài liệu của tác giả Huỳnh Thái Hoàng Với 4 ngõ vào, chỉ 3 tập mờ được lựa chọn, dẫn đến việc cần 81 luật mờ, dễ dàng kiểm soát bởi các chuyên gia Nếu tăng lên 5 tập mờ, số lượng luật sẽ tăng lên 625, gây khó khăn trong việc xây dựng bộ điều khiển và không còn đảm bảo tiêu chí đơn giản trong lựa chọn.

Chuẩn hóa các tập cơ sở dạng [-1 0 1] và điều chỉnh các tập mờ thông qua khâu tiền xử lý và hậu xử lý giúp đơn giản hóa việc tìm kiếm thông số phù hợp Phương pháp suy diễn được sử dụng là Max-Min, trong khi phương pháp giải mờ trọng tâm (COA) đóng vai trò quan trọng Bộ luật được lựa chọn theo phương pháp Sugeno.

Hình 2.6 Các cài đặt cho bộ điều khiển Fuzzy

Các ngõ vào có cùng dạng tập cơ sở như sau:

Hình 2.7 Mờ hóa ngõ vào

Từ tài liệu [2] ở trang 182, em tham khảo bộ luật này và nhận thấy nó có thể áp dụng được cho hệ Pendubot này

Hình 2.8 Tập mờ chuẩn hóa ngõ ra dạng sugeno

Cấu trúc chung của bộ điều khiển Fuzzy có thể thay đổi tùy thuộc vào mục tiêu điều khiển và sự điều chỉnh của các chuyên gia.

Hình 2.9 Cấu trúc cơ bản bộ điều khiển Fuzzy

Mặc dù mô hình điều khiển mờ gặp khó khăn trong việc áp dụng thực tế, nghiên cứu của Chinh và Dương chỉ ra rằng không thể điều khiển Pendubot hiệu quả Kết quả từ các khảo sát mô phỏng cũng xác nhận rằng chất lượng điều khiển không đạt yêu cầu Để khắc phục vấn đề này, tôi đã mở rộng cấu trúc hậu xử lý bằng cách thêm ba giá trị, nhằm lựa chọn giá trị phù hợp cho quá trình này.

Bằng cách điều chỉnh khâu hậu xử lý, tôi sẽ thay khối gain thành fcn để có thể sử dụng lệnh điều kiện if else và thay đổi các trọng số.

Hình 2.10 Cấu tạo cơ bản của bộ điều khiển Fuzzy được điều chỉnh

Các thông số K5, K6, K7 sẽ được tìm bởi giải thuật di truyền nhằm có kết quả tối ưu nhất

Bộ điều khiển PID là một công cụ điều khiển tuyến tính phổ biến, được ưa chuộng nhờ vào sự đơn giản và dễ tiếp cận cho nhiều đối tượng trong doanh nghiệp PID bao gồm ba thông số quan trọng, đóng vai trò then chốt trong việc tối ưu hóa hiệu suất điều khiển.

Kp, Ki, Kd là các hệ số trong bộ điều khiển PID, với Kp đại diện cho khâu tỉ lệ, Ki cho khâu tích phân và Kd cho khâu đạo hàm Việc lựa chọn các trọng số này thường dựa vào kinh nghiệm và kiến thức của chuyên gia thông qua nhiều lần thử nghiệm Mặc dù có nhiều phương pháp như Zeigler-Nichols và Kuhn để tính toán các trọng số, nhưng chúng chủ yếu mang tính suy đoán và không đảm bảo độ chính xác cao Do đó, bộ điều khiển PID thường được kết hợp với các thuật toán tìm kiếm khác như thuật toán di truyền, đàn kiến và bầy đàn để cải thiện hiệu suất điều khiển.

Hình 2.11 Cấu trúc lý thuyết bộ điều khiển PID

GIẢI THUẬT DI TRUYỀN

Theo thuyết tiến hóa của Charles Darwin, đặc tính di truyền trội thích nghi với môi trường sống sẽ giúp cá thể sinh tồn và sinh sản Những đặc tính này được truyền lại cho thế hệ sau, tạo ra quá trình chọn lọc tự nhiên liên tục qua nhiều thế hệ, nhằm tối ưu hóa bộ gen cho các thế hệ kế tiếp.

Lọc tự nhiên là quá trình loại bỏ những cá thể kém thích nghi, giữ lại những cá thể mạnh mẽ hơn với bộ gen ưu việt.

Dựa trên lý thuyết tiến hóa, giải thuật di truyền (Genetic Algorithm - GA) được phát triển như một công cụ quan trọng trong khoa học máy tính để tìm kiếm các thông số tối ưu cho các bài toán kết hợp GA thuộc nhóm giải thuật tiến hóa, áp dụng các nguyên lý tự nhiên như di truyền, đột biến, chọn lọc tự nhiên và trao đổi thông tin giữa các cá thể Phương pháp này hiệu quả trong việc giải quyết các bài toán phức tạp, nơi mà giải pháp tối ưu phụ thuộc vào việc tạo ra và cải tiến liên tục các cá thể qua nhiều thế hệ.

Quá trình hoạt động của GA bao gồm các bước cơ bản sau:

Khởi tạo quần thể là quá trình tạo ra một tập hợp các cá thể (nhiễm sắc thể) một cách ngẫu nhiên hoặc dựa trên kinh nghiệm ban đầu Mỗi cá thể trong quần thể này đại diện cho một giải pháp tiềm năng cho bài toán đang được giải quyết.

Các cá thể trong quần thể được đánh giá thông qua một hàm mục tiêu, hay còn gọi là hàm thích nghi (fitness function), nhằm xác định mức độ "tốt" của từng cá thể trong việc giải quyết bài toán.

Quá trình chọn lọc là bước quan trọng trong việc tạo ra thế hệ mới, trong đó các cá thể tốt nhất được lựa chọn dựa trên nhiều phương pháp khác nhau, chẳng hạn như chọn lọc tỷ lệ thuận và chọn lọc giải đấu.

Lai ghép (cross-over) là quá trình kết hợp các cá thể được chọn lọc nhằm tạo ra cá thể mới, giúp trao đổi thông tin di truyền giữa các cá thể Quá trình này không chỉ tạo ra những cá thể mới mà còn mang đặc điểm di truyền từ cả hai cha mẹ.

Đột biến (mutation) là quá trình ngẫu nhiên mà một số cá thể trải qua, tạo ra sự đa dạng di truyền trong quần thể Quá trình này không chỉ giúp tránh rơi vào tình trạng cực trị cục bộ mà còn tìm kiếm các giải pháp tối ưu hơn cho sự phát triển và tồn tại của loài.

Quá trình thay thế diễn ra khi các cá thể mới được sinh ra, thay thế cho các cá thể cũ, tạo thành một quần thể mới Quá trình này lặp lại liên tục cho đến khi đạt được điều kiện dừng, có thể là số thế hệ đã được xác định hoặc khi quần thể đạt được mức độ thích nghi nhất định.

Tiêu chuẩn đánh giá cho GA trong bối cảnh này có thể được biểu diễn như sau:

• 𝑒 1 là sai số xác lập của góc link 1 và

• 𝑒 2 là sai số xác lập của góc link 2

Các thông số ban đầu của thuật toán di truyền cần sự can thiệp của chuyên gia để tối ưu hóa tốc độ tìm kiếm thông qua phương pháp thử và sai Những thông số này bao gồm: vùng giá trị cho từng nhiễm sắc thể, số lượng cá thể trong quần thể, tỷ lệ đột biến và thời gian mô phỏng.

GA giúp tìm kiếm thông số hiệu quả cho bộ điều khiển, đặc biệt khi chuyên gia thiếu kinh nghiệm và số lượng trọng số cần xác định là rất lớn.

Quá trình tìm kiếm và cải thiện các cá thể hoàn toàn tự động, giúp nâng cao chất lượng các bộ gen theo thời gian Sự tự động hóa này đảm bảo rằng khi hoạt động kéo dài, hiệu suất và độ chính xác trong việc cải thiện gen ngày càng tăng lên.

Xử lý dữ liệu lớn là một trong những ưu điểm nổi bật của GA, cho phép nó xử lý một khối lượng dữ liệu khổng lồ, được gọi là quần thể Tất cả dữ liệu này được phân tích kỹ lưỡng nhằm xác định bộ gen tối ưu nhất.

Hạn chế cực trị cục bộ là một trong những ưu điểm của thuật toán di truyền (GA), giúp trao đổi thông tin giữa các đỉnh cực trị Điều này tối ưu hóa khả năng tìm kiếm và giảm thiểu nguy cơ kết quả tìm được rơi vào các cực trị cục bộ.

GA có khả năng đánh giá tính tối ưu của kết quả thông qua hàm mục tiêu mà không cần thông tin bổ sung, cho phép giải quyết hiệu quả các bài toán phi tuyến, không khả vi và các bài toán với không gian tìm kiếm phức tạp.

TÍNH TOÁN VÀ THIẾT KẾ

Pendubot

Dựa vào phương trình trạng thái (2.1) và (2.2), tôi đã xây dựng chương trình mô phỏng bằng công cụ MATLAB/Simulink Mặc dù có thể thực hiện mô phỏng bằng các công cụ khác như dev C để tiết kiệm tài nguyên máy tính và tăng tốc độ mô phỏng, nhưng việc này sẽ phức tạp hơn do thiếu thư viện hỗ trợ như Simulink.

Hình 3.1 Chương trình mô phỏng Pendubot điều kiện lí tưởng

Hình 3.2 Thành phần mô tả dữ liệu đầu vào của phần cứng encoder

Khối q1_dd trong Hình 3.1 chứa phương trình (2.1) mô tả gia tốc góc của link 1 trong pendubot Bằng cách tích phân gia tốc, ta có thể xác định vận tốc góc của link 1, và tương tự, tích phân vận tốc sẽ cho ra góc của link 1 Tương tự, khối q2_dd cũng hoạt động theo cách này, dẫn đến hai nhánh chương trình tương đồng nhau Các tín hiệu về vận tốc góc, vị trí và torque sẽ được hồi tiếp vào phương trình trạng thái, tạo thành chương trình mô tả đầy đủ trạng thái của Pendubot Lưu ý rằng tín hiệu góc của link 1 cần phải trừ đi 𝜋.

2 vì theo Hình 2.1 thì vị trí TOP là khi góc link 1 ở vị trí 𝜋

2 Khối encoder 1 và 2 được dặt ở ngõ ra tín hiệu góc nhằm giảm độ phân giải của tín hiệu được đưa đến bộ điều khiển Thủ thuật này sẽ giảm khoảng cách giữa mô phỏng và thực nghiệm Tiếp theo ta đạo hàm tín hiệu đọc được từ encoder ta sẽ có vận tốc mà thực tế vi xử lý sẽ đọc được Trên thực tế, bước đạo hàm sẽ làm độ phân giải tín hiệu đọc

Trong mô phỏng truyền thống, dữ liệu về vận tốc được thu thập từ việc nguyên hàm gia tốc, dẫn đến tín hiệu vận tốc có độ phân giải cao gấp đôi so với dữ liệu vị trí Điều này giải thích tại sao các bộ điều khiển trong mô phỏng thường không áp dụng được trong thực nghiệm, trừ khi thông số hệ thống được nhận dạng chính xác Để phương trình trạng thái hoạt động hiệu quả, cần xác định trạng thái ban đầu của hệ thống ở một giá trị cụ thể, với độ biên độ lớn Khi bộ điều khiển có khả năng đưa hệ về trạng thái ổn định, ngay cả khi ở vị trí lệch đáng kể so với điểm làm việc, chất lượng điều khiển sẽ được cải thiện và tính ổn định của hệ thống cũng sẽ tăng lên khi có ngoại lực tác động.

Các thông số ban đầu như bảng dưới:

Bảng 3.1 Trạng thái ban đầu của hệ thống

Kí hiệu Mô tả Giá trị

𝜃̇ 1 Tốc độ góc link 1 0.02 (rad/s)

𝜃̇ 2 Tốc độ góc link 2 -0.02 (rad/s)

Sample trajectory

Hệ thống điều khiển cân bằng thường hướng tới mục tiêu ổn định tại một vị trí xác định, nhưng có thể mở rộng để thực hiện điều khiển bám quỹ đạo đặt Để đạt được điều này, cần quy hoạch quỹ đạo trong vùng khả vị của hệ thống, tạo ra quỹ đạo mẫu phù hợp với phần cứng và cơ cấu chấp hành Quỹ đạo được chọn sẽ trải qua ba giai đoạn: giai đoạn 1 là vị trí TOP ổn định tĩnh, giai đoạn 2 là quỹ đạo sóng sin, và giai đoạn 3 là sóng vuông.

Để chuẩn hóa biên độ tín hiệu quỹ đạo, cần điều chỉnh các tín hiệu sin và xung vuông sao cho giao động trong biên độ từ -1 đến 1 Các khối tín hiệu step sẽ xác định thời điểm xuất hiện cho các tín hiệu này Sóng sin được chọn tại thời điểm vận tốc cao nhất và vẫn nằm trong vùng khả vi của bộ điều khiển, do đó được giữ chuẩn tín hiệu Ngược lại, xung vuông có biên độ dao động lớn khi chuyển trạng thái, dẫn đến vận tốc tín hiệu mẫu quá cao, khiến bộ điều khiển không thể theo kịp Để giải quyết vấn đề này, cần sử dụng bộ lọc tần số thấp với hàm truyền dao động bậc 2 nhằm làm trơn tín hiệu, giúp quỹ đạo đạt được vùng khả vi của bộ điều khiển.

Hàm quá độ bậc 2 có dạng:

Hàm này sẽ được lập trình trong miền thời gian của vi xử lý, do đó cần thực hiện phép Laplace ngược để chuyển đổi hàm về dạng phù hợp, đặc biệt là trong trường hợp hệ thống giảm chấn tới hạn.

TÍNH TOÁN VÀ THIẾT KẾ

Bảng 3.2 Mô tả các thành phần biến đặt của hàm quá độ bậc 2

Biến đặt Mô tả Đơn vị

K Biên độ thay đổi mong muốn Rad

𝑇 𝑓 Tần số dao động Hz t Thời gian ms

Trạng thái ngõ ra của quỹ đạo đặt ngõ ra được điều chế có dạng như sau:

Hình 3.4 trình bày dạng quỹ đạo được quy hoạch với Tf = 1.5 Trong tài liệu [4], đã chứng minh rằng bộ điều khiển Fuzzy có khả năng điều khiển ổn định ba tín hiệu khác nhau Tuy nhiên, việc kiểm chứng chỉ dựa trên ba bộ thông số riêng biệt cho từng dạng tín hiệu không đủ để khẳng định chất lượng của bộ điều khiển Do đó, việc kiểm chứng đồng loạt cả ba dạng tín hiệu trong một mô phỏng là yếu tố quan trọng để đánh giá chất lượng và khả năng thích nghi của bộ điều khiển.

LQR

Sau khi hoàn thành quy hoạch quỹ đạo, chúng ta chuyển sang thiết kế các bộ điều khiển Đầu tiên, dựa trên chương trình mô phỏng trạng thái Pendubot đã có, tôi tiến hành xây dựng chương trình mô phỏng theo lý thuyết LQR.

Hình 3.5 Chương trình mô phỏng LQR

Để tìm bộ thông số điều khiển phù hợp cho việc ổn định tĩnh và bám quỹ đạo, tín hiệu [sample] đã được tích hợp vào mô hình Quỹ đạo được đặt làm setpoint cho góc link 1 và link 2, đảm bảo link 2 luôn hướng lên Saturation ở ngõ ra giới hạn tín hiệu điều khiển không vượt quá 0.5 Nm, phù hợp với thông số động cơ hiện có Qua kiểm chứng, biên độ điều khiển đạt 0.8 radian trong mô phỏng, nhưng đã giảm xuống 0.4 radian dựa trên kinh nghiệm thực tế để đảm bảo tính ổn định Màn hình display được chọn để tổng hợp tất cả mô men và bộ điều khiển nhằm đánh giá mức tiêu hao năng lượng.

Bộ điều khiển LQR được công nhận là một giải pháp tối ưu với tính ổn định đã được chứng minh theo tiêu chuẩn Lyapunov, điều này giúp GA đạt được kết quả khả quan ngay từ giai đoạn đầu trong quá trình tìm kiếm.

Sau gần 100 thế hệ, thông số tốt nhất mà em tìm được là::

TÍNH TOÁN VÀ THIẾT KẾ

Em chỉ chọn góc link 1 và quỹ đạo được quy hoạch làm mẫu so sánh để luận văn này không bị rối

Mô phỏng kéo dài 50s với thời gian lấy mẫu 5ms ở vị trí TOP

Hình 3.6 Vị trí tĩnh điều kiện lý tưởng cho LQR

Hình 3.7 Vị trí tĩnh đã giảm độ phân giải ngang encoder thực cho LQR

Mô phỏng bám quỹ đạo kéo dài 110s với thời gian lấy mẫu 5ms

Hình 3.8 Bám quỹ đạo điều kiện lý tưởng cho LQR

Hình 3.9 Bám quỹ đạo đã giảm độ phân giải ngang encoder thực cho LQR

Tổng momen mà bộ điều khiển sử dụng trong mô phỏng

Hình 3.10 Momen điều khiển LQR vị trí TOP điều kiện lý tưởng Hình 3.11 Tổng momen điều khiển

LQR vị trí TOP điều kiện không lý tưởng

Hình 3.12 Momen điều khiển LQR bám quỹ đạo điều kiện lý tưởng Hình 3.13 Tổng momen điều khiển

LQR bám quỹ đạo điều kiện không lý tưởng

Dựa trên kết quả mô phỏng trong điều kiện lý tưởng, bộ điều khiển cho vị trí làm việc tĩnh hoạt động hiệu quả với thời gian xác lập dưới 2 giây Không có hiện tượng vọt lố, và trạng thái xác lập được duy trì liên tục trong suốt 50 giây mô phỏng Mức tiêu thụ năng lượng cũng rất thấp.

Kết quả mô phỏng ở điều kiện giảm độ phân giải cho thấy đồ thị tương đồng với dữ liệu thực nghiệm của sinh viên khóa trước, mặc dù có nhiều nhiễu và dao động Tuy nhiên, khi tính trung bình dao động, kết quả vẫn tương đương với điều kiện lý tưởng Điều này cho thấy rằng với phần cứng không đạt yêu cầu, kết quả thực nghiệm sẽ không mịn màng như trong mô phỏng Tổng momen mà bộ điều khiển tạo ra khi điều chỉnh cân bằng ở vị trí TOP trong 110 giây là 3680, tương ứng với tổng torque theo chu kỳ lấy mẫu.

Trong trường hợp bám quỹ đạo, khi đã thiết lập bộ thông số phù hợp, LQR có khả năng theo dõi và ổn định ở vị trí khác ngoài vị trí TOP, đồng thời duy trì sai số ở mức thấp Không xảy ra hiện tượng vọt lố, và mức năng lượng tiêu thụ được giữ ở mức rất thấp như thể hiện trong Hình 3.12 Không có trường hợp nào ghi nhận momen tăng bất ngờ.

Khi thực hiện bám quỹ đạo trong điều kiện không lý tưởng, đồ thị trở nên méo mó và không còn chính xác với quỹ đạo đã quy hoạch, dẫn đến mức sai số tăng đáng kể Năng lượng tiêu thụ trong trường hợp này đạt 8073 Mặc dù không đạt được hiệu suất như trong điều kiện lý tưởng, nhưng những kết quả này là cơ sở quan trọng để phát triển bộ điều khiển PID trong luận văn này.

Kết luận cho thấy rằng mặc dù mô phỏng cả phần cứng và giới hạn ngõ ra bộ điều khiển, thông số điều khiển vẫn hoạt động hiệu quả Tiềm năng điều khiển thành công trong mô hình thực là rất lớn, không chỉ ở vị trí TOP mà còn ở khả năng bám quỹ đạo Ngoài ra, mô phỏng cũng dự đoán được mức độ nhiễu gai và sai số xác lập có thể xảy ra khi thực nghiệm với mô hình thực.

FUZZY

Bộ điều khiển mờ không yêu cầu hiểu biết sâu về thông số hệ thống hay động lực học, nhưng đòi hỏi kinh nghiệm và kiến thức suy luận đáng kể Sau một năm thử nghiệm với nhiều cấu trúc bộ Fuzzy và điều chỉnh theo hướng dẫn của thầy Hoàng, tôi đã thành công trong việc mô phỏng bộ điều khiển mờ với cấu trúc như hình dưới.

Hình 3.14 Chương trình mô phỏng Fuzzy

Bộ luật của thầy Hoàng cần được điều chỉnh để phù hợp với logic của bộ luật Góc link 2 không thể được truyền trực tiếp vào bộ điều khiển, mà cần phải cộng với góc link 1 để chuyển đổi sang góc link 2 theo hệ quy chiếu của mặt bàn Tương tự, tốc độ góc của link cũng cần được xem xét trong bối cảnh này.

Để cải thiện tốc độ bám quỹ đạo trong hệ thống điều khiển, tôi đã sử dụng điểm đặt tốc độ kết hợp với tốc độ góc link 1 Theo tài liệu trước đây, chỉ cần lấy điểm đặt là đủ, nhưng điều này gây ra độ trễ trong quá trình bám quỹ đạo Thêm vào đó, tôi đã áp dụng bộ lọc thông thấp để khắc phục vấn đề bám quỹ đạo thô, mặc dù đã thực hiện thuật toán di truyền trong một khoảng thời gian dài.

Sau gần 200 thế hệ, thông số tốt nhất em tìm được là:

TÍNH TOÁN VÀ THIẾT KẾ

Mô phỏng kéo dài 50s với thời gian lấy mẫu 5ms ở vị trí TOP

Hình 3.15 Vị trí tĩnh điều kiện lý tưởng cho Fuzzy

Hình 3.16 Vị trí tĩnh đã giảm độ phân giải ngang encoder thực cho Fuzzy

Mô phỏng bám quỹ đạo kéo dài 300s với thời gian lấy mẫu 5ms

Hình 3.17 Bám quỹ đạo điều kiện lý tưởng cho Fuzzy

Hình 3.18 Bám quỹ đạo đã giảm độ phân giải ngang encoder thực cho Fuzzy

Tổng momen mà bộ điều khiển sử dụng trong mô phỏng

Hình 3.19 Momen điều khiển Fuzzy vị trí TOP điều kiện lý tưởng

Hình 3.20 Tổng momen điều khiển Fuzzy vị trí TOP điều kiện không lý tưởng

Hình 3.21 Momen điều khiển Fuzzy bám quỹ đạo điều kiện lý tưởng

Hình 3.22 Tổng momen điều khiển Fuzzy bám quỹ đạo điều kiện không lý tưởng

Trong mô phỏng vị trí tĩnh với bộ điều khiển Fuzzy, thời gian xác lập đạt khoảng 5 giây trong điều kiện lý tưởng, như thể hiện ở Hình 3.15, trong khi biên giao động dao động từ -0.2 đến 0.2 radian trong điều kiện giảm độ phân giải (Hình 3.16) Năng lượng tiêu thụ của hệ thống cao hơn so với phương pháp LQR do sự xuất hiện của dao động tắt dần.

4175 đã cho thấy rõ điều này

Trong mô phỏng bám quỹ đạo sóng sin, điểm đặt có tính chất chuyển trạng thái chậm, giúp bộ điều khiển theo dõi chính xác với độ trễ thấp Khi giảm độ phân giải, mặc dù có nhiều gai đo lường, các gai vẫn bám gần như chính xác quỹ đạo chuyển động Đối với xung vuông, việc sử dụng bộ lọc tần số thấp làm tín hiệu khả vi hơn, tuy nhiên, tính chất chuyển trạng thái vẫn nhanh Mặc dù trong điều kiện lý tưởng có hiện tượng vọt lố xảy ra nhưng không vượt quá 25%, và hệ thống nhanh chóng ổn định trong thời gian dưới 5 giây, với sai số tồn tại xác định.

Trong quá trình tính toán và thiết kế, mặc dù độ phân giải giảm, bộ điều khiển vẫn duy trì trạng thái ổn định ngay cả khi vọ lố đạt trên 50% Biên độ giao động của hệ tăng lên khi điểm đặt càng xa điểm TOP Đồ thị năng lượng tiêu thụ cho thấy sự gia tăng đáng kể không chỉ ở trạng thái xác lập mà còn trong suốt quá trình bám quỹ đạo Trong điều kiện không lý tưởng, năng lượng tiêu thụ có thể lên đến 9360, cao hơn nhiều so với hệ thống LQR.

Bộ điều khiển Fuzzy có nhiều ưu điểm nổi bật, bao gồm vùng làm việc rộng lớn và khả năng duy trì sai số xác lập thấp, giúp bám theo quỹ đạo tốc độ nhanh Việc hiệu chỉnh các thông số trở nên đơn giản nhờ vào việc bộ điều khiển được xây dựng dựa trên logic suy luận của chuyên gia Hơn nữa, bộ luật điều khiển chính xác có thể được áp dụng cho nhiều đối tượng khác nhau, mang lại tính linh hoạt cao trong ứng dụng.

• Nhược điểm: Phụ thuộc nhiều vào bộ luật Năng lượng tiêu thụ quá lớn dẫn đến dễ gây hiện tượng chattering làm hao mòn phần cứng.

PID dựa trên LQR

Sau khi thực hiện mô phỏng và thử nghiệm bộ điều khiển LQR, tôi nhận thấy khả năng bám quỹ đạo của nó rất tốt Tuy nhiên, bộ điều khiển này vẫn tồn tại điểm yếu là sai số xác lập Để khắc phục vấn đề này, tôi đã bổ sung khâu khử sai số từ bộ điều khiển PID vào bộ điều khiển LQR.

Hình 3.23 Chương trình mô phỏng LQR bổ sung Ki

Vì có bảy biến cần tìm, giải thuật di truyền cần được điều chỉnh tương tự như bộ điều khiển mờ để đảm bảo hiệu quả trong vùng tìm kiếm.

Sau gần 200 thế hệ, thông số tốt nhất em tìm được là:

Mô phỏng kéo dài 50s với thời gian lấy mẫu 5ms ở vị trí TOP

TÍNH TOÁN VÀ THIẾT KẾ

Hình 3.24 Vị trí tĩnh điều kiện lý tưởng cho PID

Hình 3.25 Vị trí tĩnh điều kiện giảm độ phân giải cho PID

Mô phỏng bám quỹ đạo kéo dài 300s với thời gian lấy mẫu 5ms

Hình 3.26 Bám quỹ đạo điều kiện lý tưởng cho PID

Hình 3.27 Bám quỹ đạo điều kiện giảm độ phân giải cho PID

Tổng momen mà bộ điều khiển sử dụng trong mô phỏng

Hình 3.28 Momen điều khiển PID vị trí TOP điều kiện lý tưởng

Hình 3.29 Tổng momen điều khiển PID vị trí TOP điều kiện không lý tưởng

Hình 3.30 Momen điều khiển PID bám quỹ đạo điều kiện lý tưởng

Hình 3.31 Tổng momen điều khiển PID bám quỹ đạo điều kiện không lý tưởng

Thời gian xác lập ở vị trí TOP giảm đáng kể nhờ vào khâu tích phân, ảnh hưởng tích cực trong điều kiện lý tưởng, trong khi không thay đổi nhiều ở điều kiện giảm độ phân giải Năng lượng tiêu thụ của PID thấp nhất trong điều kiện không lý tưởng với chỉ 3220, cho thấy khả năng tiết kiệm điện ấn tượng, đặc biệt khi phần cứng không đạt chất lượng cao Trong điều kiện lý tưởng, quỹ đạo bám sát có sự cải thiện đáng kể, với độ chính xác và độ trễ tăng cao, mặc dù độ trễ của PID vẫn cao hơn so với Fuzzy Ở điều kiện không lý tưởng, độ bám quỹ đạo tốt nhưng quá trình di chuyển không mượt mà, với dao động không ổn định ở tốc độ cao Năng lượng tiêu thụ trong điều kiện lý tưởng cao hơn LQR nhưng thấp hơn Fuzzy, trong khi PID tiếp tục duy trì mức tiêu thụ thấp nhất là 7157 trong điều kiện không lý tưởng.

TÍNH TOÁN VÀ THIẾT KẾ

Bộ điều khiển PID dựa trên LQR mang lại nhiều ưu điểm nổi bật, không chỉ giúp tiết kiệm điện hiệu quả mà còn khắc phục được sai số xác lập lớn khi theo dõi quỹ đạo.

Nhược điểm của việc xây dựng hệ thống là nếu không phù hợp, nó có thể dẫn đến tổn hao năng lượng và mất ổn định do hệ vọt lốt cao Quá trình xây dựng phức tạp, đòi hỏi hiểu rõ hệ thống để thiết lập bộ điều khiển LQR và lựa chọn thời điểm khâu tích phân Hơn nữa, số lượng thông số cần tìm kiếm là rất lớn.

THI CÔNG HỆ THỐNG

Phần cứng

Trong các luận văn trước đây về điều khiển cân bằng, vi điều khiển STM32F401VG thường được lựa chọn do hỗ trợ thư viện Waijung trong Simulink Tuy nhiên, dòng F4 có đến 100 chân pin, tần số điều khiển 168MHz và chi phí cao lên đến 800k Vì lý do đó, luận văn này chọn vi điều khiển STM32F103C8T6, phù hợp với nhu cầu đồ án và tối ưu chi phí chỉ khoảng 75.000VND cho phần cứng và phần mềm Một điểm cần lưu ý là board này cần có mạch nạp ST-Link V2 (giá 55.000VND) để nạp chương trình từ phần mềm lập trình.

Hình 4.1 Hình ảnh thực tế VĐK

Hình 4.2 Mạch nạp ST-Link v2

Các tiêu chi phù hợp:

• VĐK này có 4 timer vừa đủ để xử lý các tác vụ gồm: 1 timer tạo chu kì lấy mầu, 2 timer đọc 2 encoder, 1 timer điều chế xung PWM

• Xung nhịp của VĐK cao ấn tượng lên đến 72MHz trong khi cùng giá thành thì Arduino chỉ 8Mhz

• Kích thước nhỏ gọn hơn dòng F4 rất nhiều và có giá thành rẻ hơn nhiều lần

• Giúp em có động lực để em vận dụng kiến thức VXL đã học và tự học cách lập trình VĐK có kiến trúc phức tạp như ARM

Trong quá trình mô phỏng, tôi nhận thấy rằng độ phân giải của mỗi biến trong MATLAB rất cao, lên đến 64 bit, cho phép máy tính đọc được các số thập phân với hàng chục số 0 sau dấu phẩy Trong khi đó, thực tế, Encoder có độ phân giải khoảng từ 200 đến 3000 P/R, tương đương với 0.0039 rad và 0.000261 rad Qua mô phỏng, tôi nhận ra rằng để hệ thống ổn định, tối thiểu cần sử dụng encoder với độ phân giải 600 P/R.

Do đó ngoài thay encoder ở link 2 em còn tháo encoder gắn sẵn của động cơ ra và lắp cả 2 link với encoder 600 xung

Hình 4.3 Cảm biến góc Encoder

4.1.3 Động cơ Ở các bài mô phỏng em đã chọn ra được momen xoắn phù hợp để điều khiển cân bằng được ở khoảng -0.5 đến 0.5 N.m Do đó, động cơ em chọn để sử dụng là động cơ Servo Nisca NF5475 Với momen xoắn cực đại là 506.7 mN.m ở khâu khởi động, vừa phù hợp cho mô hình được chọn Tuy nhiên vì vừa đủ momen nên động cơ sẽ rất nóng nếu thí nghiệm kéo dài quá lâu vì bắt động cơ thực hiện momen khởi động quá nhiều lần

Hình 4.4 Động cơ Nisca với encoder theo hãng

Hình 4.5 Động cơ Nisca chỉnh sửa lại encoder

Dù là động cơ cũ, nhưng qua các bài kiểm tra, các thông số vẫn đạt tiêu chuẩn Các thông số động cơ được xác định thông qua phương pháp ứng dụng giải thuật di truyền.

Trong bài viết này, chúng tôi đã trình bày chi tiết về phương pháp kiểm chứng với bộ điều khiển LQR Kết quả thực nghiệm và mô phỏng cho thấy sự tương đồng gần như hoàn hảo, đồng thời dự báo chính xác vùng làm việc Điều này chứng minh rằng dữ liệu trong Bảng 4.1 là chính xác.

Bảng 4.1 Thông số động cơ

Ký hiệu thông số Mô tả Đơn vị

𝑅 𝑚 Điện trở động cơ 2.826(ohm)

𝐾 𝑏 Hằng số phản điện 0.0061(V/(rad/sec))

𝐶 𝑚 Hệ số ma sát nhớt 0.0023(Nm(rad/sec))

𝐾 𝑓 Hằng số ma sát trục 0.0000519(Nm)

Động cơ yêu cầu điện áp 24V và dòng điện tối đa lên đến 7.246A để hoạt động hiệu quả Vì vậy, bộ nguồn cần có thông số tối thiểu là 24V 10A Nguồn xung hoặc nguồn tổ ong được lựa chọn do hiệu suất chuyển đổi cao, đạt tới 90% Tuy nhiên, nhược điểm của nguồn tổ ong là thường gặp tình trạng rò điện.

Hình 4.6 Nguồn tổ ong 24VDC 10A

Bộ nguồn được mua ở Nshop với mức giá 304.000VND

4.1.5 Mạch cầu H Ở đồ án 2, em đã điều khiển hệ Pendubot với mạch cầu L298 Hiệu suất mạch cầu khá thấp chỉ khoảng 80%, công suất truyền tải kém do đó khi dùng nguồn 24V thì L298 cháy nhanh chóng và điều chế chu kì xung có sai số tương đối lớn Do đó bộ thông số sau khi mô phỏng cần hiệu chỉnh rất nhiều và thời gian thực nghiệm rất ngắn Để cải thiện chất lượng, em chuyển sang dùng mạch cầu BTS7960 với bộ thông số tốt hơn rất nhiều Hiệu suất chuyển đổi lên đến 97%, dòng điện chịu được là 42A (trở kháng) và 15A (cảm kháng) và sai lệch điều chế cũng thấp hơn đáng kể

Trong quá trình thí nghiệm, dữ liệu sẽ được truyền vào máy tính để thu thập và phân tích chi tiết về chất lượng điều khiển Tuy nhiên, máy tính hiện tại chỉ hỗ trợ giao tiếp USB Do đó, cần sử dụng module CP2102 để chuyển đổi giao thức UART của vi điều khiển sang USB, giúp máy tính có thể hiểu và xử lý dữ liệu.

Module giao tiếp được mua ở Nshop với mức giá 71.000VND.

Phần mềm

4.2.1 Xử lý phần cứng với STM32Cube MX

Vì vi điều khiển này có tốc độ xử lý nhanh, với nhiều chức năng tốt và giá thành rẻ

Trong bài viết này, tôi sẽ hướng dẫn chi tiết các bước cấu hình phần cứng và lập trình cho vi điều khiển, nhằm cung cấp tài liệu tham khảo hữu ích cho các thế hệ sinh viên sau Đầu tiên, chúng ta sẽ bắt đầu với việc cấu hình chân cho vi điều khiển.

STM32F103C8T6 cho phép người dùng điều chỉnh xung dao động lên đến 72MHz, giúp tăng tốc độ xử lý Tuy nhiên, để giảm thiểu lỗi có thể xảy ra do tốc độ quá cao, tôi chỉ sử dụng xung vi điều khiển ở mức 32MHz.

Hình 4.9 Cấu hình xung nhịp

Thạch anh giao động ngoại 8MHz được sử dụng trên board này và được nhân lên 72MHz Xung nhịp này được chia sẻ cho các giao tiếp ngoại APB1 và APB2 Chi tiết về giao thức này được trình bày trong kiến trúc hệ thống của hãng, như thể hiện trong Hình 4.10 Đây là bước đầu tiên trong việc cài đặt xung nhịp phù hợp cho vi xử lý.

Trong kiến trúc ARM của STM32F103C8T6, giao thức APB2 chỉ hỗ trợ một timer, do đó timer 1 được sử dụng với bộ chia để tạo chu kỳ lấy mẫu Tần số lấy mẫu cao lý thuyết sẽ cải thiện chất lượng điều khiển, nhưng thực tế cho thấy thời gian lấy mẫu quá ngắn có thể dẫn đến sai số lớn trong đo đạt và vi xử lý không kịp xử lý các tính toán, gây ra xung đột giữa các ngắt Vì vậy, chu kỳ lấy mẫu được chọn là 5ms, thấp hơn một nửa so với các nghiên cứu trước đây.

Với tần số 72Mhz, prescaler được chọn là 71, dẫn đến tần số còn lại là 1Mhz, tương ứng với chu kỳ 1us Khi bộ đếm đạt 5000, cờ tràn sẽ được kích hoạt, nghĩa là cứ sau 5ms, cờ tràn sẽ báo và hàm sẽ được gọi.

Hình 4.12 Cấu hình timer 2 Hình 4.13 Cấu hình timer 3

Chuyển Channel 2 timer sang chế độ “Encoder Mode” để tạo hàm giải mã, không dùng Prescaler để có tần số đọc tín hiệu cao nhất

Để điều chế PWM với độ phân giải 0.01% duty cycle, cần lựa chọn prescaler 9 nhằm đảm bảo mỗi chu kỳ PWM có độ dài đủ lớn, giúp động cơ phản ứng chính xác.

Hình 4.15 Cấu hình cho các chân của VĐK

Sau khi cấu hình xong, ấn Generate code để có project cầu hình sẵn thư viện các chức năng

Hình 4.16 Giao diện code được tạo

Phần mềm Keil C, như mô tả trong Hình 4.16, sử dụng ngôn ngữ lập trình C, với độ khó lập trình tương đối thấp, giúp người dùng dễ dàng tiếp cận kiến thức về biến cục bộ và toàn cục Điều này cho phép tận dụng hiệu quả các thư viện chức năng trong quá trình lập trình.

Sau khi hoàn tất việc cấu hình và xác định các chân tín hiệu, tôi tiến hành sắp xếp các chân mạch để tăng tính gọn gàng và thuận tiện hơn trong việc kết nối thiết bị ngoại vi với vi điều khiển.

Mạch ra chân cho STM32F103C8T6 yêu cầu lắp trở để hạn dòng nuôi encoder, nhưng do vi điều khiển hoạt động ở 3.3V, nên sử dụng điện áp này để nuôi encoder nhằm tránh gây trễ tín hiệu khi dùng transistor làm trung gian Ngoài ra, tụ lọc cũng được loại bỏ để tín hiệu không bị sụt áp và gây trễ.

4.2.2 Viết chương trình với Keil C

Với Keil C, chương trình được lập trình trong hai file chính là stm32f1xx_it.c và main.c Trong file main.c, các biến được khai báo bình thường, trong khi ở file it.c, các biến được khai báo là extern để chia sẻ giá trị giữa các thư mục khác Khi cờ tràn được kích hoạt, hàm tương ứng sẽ được gọi để xử lý.

THI CÔNG HỆ THỐNG timer 1 bên file it, do đó ở file này sẽ đảm nhiệm chức năng định thời, cập nhật biến trạng thái a) Tạo tín hiệu quỹ đạo

Tương tự như mô phỏng em điều chế 3 dạng setpoint sẵn để có thể đồng loạt thực hiện các thí nghiệm tiết kiệm không gian cho luận văn

Hình 4.18 Điều chế tín hiệu tương tự khối sample

Mặc dù vi điều khiển này không hỗ trợ module tính toán số thập phân và lượng giác, nhưng với tần số xung cao, độ trễ trong quá trình tính toán là không đáng kể, do đó thời gian lấy mẫu không bị ảnh hưởng Các lệnh tính toán được định dạng dưới dạng biến, cho phép điều chỉnh linh hoạt trong suốt quá trình kiểm chứng.

Vị trí TOP có hai thời điểm quan trọng: ban đầu và giữa lúc chuyển đổi giữa sóng sin và xung vuông Trong khi sóng sin bắt đầu tại vị trí 0 với vận tốc cao nhất và nằm trong vùng khả vi của các bộ điều khiển, xung vuông lại có tốc độ chuyển trạng thái tăng tỉ lệ nghịch với thời gian lấy mẫu Điều này có nghĩa là chu kỳ lấy mẫu càng ngắn, vận tốc chuyển trạng thái càng cao, do đó cần áp dụng hàm làm trơn để kiểm soát tốc độ chuyển đổi Hàm quá độ bậc 2 trong miền thời gian được thiết kế dựa trên công thức (3.2).

Hình 4.19 Quỹ đạo được điều chế từ stm32f103

Sau khi thu thập dữ liệu quỹ đạo từ STM32F102, tín hiệu đã được xác nhận là chính xác và có thể sử dụng để điều khiển Đối với lập trình ARM, các biến cần được khai báo đúng cách để phù hợp với từng chức năng và công cụ sử dụng.

Hình 4.20 Đặt biến góc ở file main Hình 4.21 Đặt biến góc ở file _it.c

Biến kiểu "volatile" có thể bị thay đổi bất cứ lúc nào bởi nguồn tải và lưu từ bộ nhớ, giúp tránh sai số tự phát Do chương trình chia thành các file khác nhau, cần khai báo thêm biến kiểu "extern" để đồng bộ giá trị giữa các file Trong phần cấu hình hệ thống, tôi đã cấu hình cho timer 2 và 3 đảm nhận chức năng đọc encoder.

Do đó, chỉ cần gọi hàm và chuyển đổi thành các đơn vị là được

Để tính toán, tôi sử dụng đơn vị radian, nhưng để điều chỉnh góc một cách trực quan và thân thiện hơn, tôi chọn đơn vị độ Do đó, góc được trình bày bằng cả hai đơn vị Trong trường hợp này, link 1 được cộng thêm pi vì ở trạng thái ban đầu, link hướng xuống.

Hình 4.23 Các lệnh ở file định thời

KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ

Kết quả thực nghiệm LQR

Phần LQR được thực hiện đầu tiên do tính học thuật cao của bộ điều khiển này, yêu cầu chính xác về phương trình trạng thái để nhận dạng hệ thống Nếu thí nghiệm này thành công, nó sẽ tạo nền tảng vững chắc cho các kiểm chứng tiếp theo.

Hình 5.1 Thực nghiệm ổn định ở vị trí TOP với LQR

KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ

Hình 5.2 Đồ thị phóng to thực nghiệm ổn định ở vị trí TOP với LQR

Khi áp dụng vào thực nghiệm vị trí TOP, bộ điều khiển hoạt động hiệu quả với thông số đã tìm được từ mô phỏng giảm độ phân giải Trạng thái ổn định được duy trì tốt, với dao động chỉ khoảng từ -0.1 đến 0.1, hiếm khi vượt ra ngoài vùng giá trị này Việc thay đổi ma trận K dựa trên kinh nghiệm điều chỉnh thông số bộ điều khiển PD đã giảm vùng rung lắc xuống còn -0.04 đến 0.04, nhưng dao động mạnh khiến hệ thống không thể bám theo quỹ đạo Do đó, quyết định giữ bộ thông số tối ưu ban đầu là hợp lý.

Trước khi vào vùng cho phép, bộ điều khiển gần như không gây ra biến động và ổn định trong khoảng 2.5 giây Sau đó, hệ thống duy trì ở vị trí TOP cho đến khi động cơ quá nhiệt, dẫn đến sai lệch lớn trong các thông số mô hình Cuối cùng, thực nghiệm điều khiển được thực hiện để bám quỹ đạo quanh vị trí TOP.

Hệ thống thực nghiệm với LQR cho thấy cần hiệu chỉnh để đạt chất lượng quỹ đạo mong muốn Khi cố gắng bám quỹ đạo thuận, hệ dao động lớn và không thể cân bằng Ngược lại, với thông số quỹ đạo ngược, hệ bám rất tốt Nguyên nhân chính khiến LQR không bám quỹ đạo thuận là do mục tiêu đưa tất cả biến trạng thái về 0, dẫn đến sai số xác lập luôn hướng đến 0, không đủ tín hiệu điều khiển từ vị trí điểm đặt ảo xa Tuy nhiên, với quỹ đạo ngược, khi setpoint càng xa điểm 0, sai số càng lớn, giúp hệ đạt quỹ đạo tốt hơn Đối với các hệ có thể ổn định với giá trị ngõ ra bộ điều khiển bằng 0, như cart and pole hay rotary inverted pendulum, hoàn toàn có thể bám quỹ đạo thuận.

Bộ điều khiển không thể xác định thời điểm thông số trạng thái đạt quỹ đạo do quỹ đạo nghịch, vì vậy cần dựa vào kinh nghiệm chuyên gia để hiệu chỉnh trong quá trình chuyển giao từ thực nghiệm sang mô hình thực Trong trường hợp sóng sin, đáp ứng cho thấy hình dạng gần đúng, với đồ thị có hình dạng gần giống hình tam giác hơn là hình sin Hầu hết các vị trí trong quỹ đạo hệ đều đáp ứng tốt, đặc biệt là với biên độ 0.4 radian, cho thấy hệ bám quỹ đạo rất hiệu quả Tuy nhiên, khi thực nghiệm ở biên độ 0.5 radian, gần như đạt giới hạn, dẫn đến tỷ lệ mất ổn định của hệ thống khá cao.

Trong nghiên cứu của tác giả Trần Trọng Bằng [3], việc bám theo từng quỹ đạo riêng đã được thực hiện thành công Đặc biệt, ngay cả khi bám quỹ đạo xung vuông chưa được làm trơn, hệ thống vẫn có khả năng bám quỹ đạo trong thực nghiệm với LQR, mặc dù cần bộ thông số riêng cho trường hợp này Để thực hiện bám quỹ đạo tổng hợp cho tất cả các trường hợp, việc làm trơn quỹ đạo xung vuông là cần thiết Khi đó, hệ thống cho thấy khả năng đáp ứng tốt với sai lệch rất thấp.

Có thể xác định thông số hệ thống chuẩn cho các bộ điều khiển khác, với LQR nguyên bản cho phép bám quỹ đạo với chất lượng tương đối tốt và sai lệch nhỏ Đây là nền tảng cho bộ điều khiển PID dựa trên LQR Dựa vào kinh nghiệm thiết kế nhiều bộ điều khiển, ý tưởng là sử dụng LQR để tính toán Kp và Kd cho PID.

Kết quả thực nghiệm Fuzzy

Bộ điều khiển này là sản phẩm mà tôi đã dành nhiều thời gian nghiên cứu để mô phỏng thành công Chi tiết về công trình này được trình bày trong tài liệu [4], tài liệu đã được phê duyệt và đồng ý đăng tải trên tạp chí khoa học tại Bạc Liêu.

Mặc dù cấu trúc xây dựng của khối fis khá đơn giản, nhưng trong thực nghiệm, việc áp dụng gặp nhiều khó khăn do chứa nhiều tập lệnh phức tạp Giải pháp hiệu quả nhất là chuyển đổi khối fis thành thư viện h để dễ dàng sử dụng.

Hình 5.4 Thực nghiệm ổn định ở vị trí TOP với Fuzzy

Hình 5.5 Đồ thị phóng to thực nghiệm ổn định ở vị trí TOP với Fuzzy

Bộ điều khiển Fuzzy thể hiện tính chất rõ rệt qua sự giao động mạnh quanh điểm làm việc, nhưng giá trị vẫn hội tụ về 0 sau khoảng 7.5 giây để vào vùng ổn định bền vững Tuy nhiên, hệ thống có hiện tượng vọt lố cao, dẫn đến khó khăn trong việc ổn định nhanh chóng Vùng ổn định rất nhỏ, với giao động quanh vị trí TOP và biên độ dưới 0.1 radian Mặc dù link 1 và link 2 đạt hiệu quả tốt khi hướng lên thẳng, hiện tượng chattering khó tránh do encoder có độ phân giải không cao Bộ điều khiển được thiết kế nhằm duy trì link 2 hướng lên, nhưng vẫn gây ra dao động quanh điểm làm việc, khiến động cơ liên tục đảo trạng thái như trong quá trình khởi động Nhiệt độ gia tăng nhanh chóng, do đó cần kiểm soát thời gian mô phỏng và dừng hệ thống để giải nhiệt trước khi tiếp tục kiểm chứng Cuối cùng, thực nghiệm điều khiển bám quỹ đạo quanh vị trí TOP được tiến hành.

KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ

Hình 5.6 Đồ thị đáp ứng hệ thống thực nghiệp với Fuzzy

Mô phỏng cho thấy bộ điều khiển Fuzzy có khả năng bám quỹ đạo với chất lượng ấn tượng, mặc dù cần một số điều chỉnh trong khâu hậu xử lý để giảm vọt lố và tải ngõ ra Trong 10 giây đầu, hệ thống vào vùng ổn định và bám quỹ đạo ngay lập tức Việc sử dụng thông tin vận tốc đã nâng cao đáng kể chất lượng điều khiển, đặc biệt với quỹ đạo sin, mặc dù khả năng bám quỹ đạo bị hạn chế ở biên độ Biên độ tối đa đạt được là 0.4 radian với tỷ lệ thành công cao, trong khi biên độ 0.5 radian dẫn đến mất ổn định Đối với quỹ đạo xung vuông, hệ thống không thể bám nếu không được làm trơn, do thông tin vận tốc ảnh hưởng lớn đến tín hiệu ngõ ra Dù có sự rung lắc tại biên độ xa, hệ thống vẫn duy trì trạng thái tốt với sai số xác lập không đáng kể Bộ điều khiển Fuzzy thể hiện khả năng bám quỹ đạo tốt tương tự như LQR, với điểm khác biệt là việc bổ sung dữ liệu vận tốc để cải thiện độ chính xác.

Bộ điều khiển mờ cho mô hình thực đạt chất lượng ấn tượng, nhưng hiện tượng chattering lại rất rõ ràng Khi tiếp cận vị trí đặt, hệ dao động mạnh mẽ gây quá tải cho động cơ, dẫn đến việc không thể tiếp tục kiểm chứng.

Kết quả thực nghiệm PID dựa trên LQR

Để khắc phục những hạn chế của LQR, bộ điều khiển này đã được cải tiến và bổ sung vào phần kiểm chứng nhằm thực hiện so sánh toàn diện Do nghiên cứu được thực hiện muộn, nên công trình này chưa được công bố trên bất kỳ nguồn tài liệu nào.

Hình 5.7 Thực nghiệm ổn định ở vị trí TOP với PID

KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ

Hình 5.8 Đồ thị phóng to thực nghiệm ổn định ở vị trí TOP với PID

Sự xuất hiện của khâu tích phân đã khiến hệ thống dao động xuống -0.8 radian trước khi ổn định lại ở giây thứ 5.5 Khâu tích phân giúp loại bỏ sai số, cho thấy đồ thị có xu hướng di chuyển quanh vị trí 0 Trong khi đó, bộ điều khiển LQR nguyên bản ở Hình 5.2 cho thấy khả năng giữ thông số trạng thái gần vị trí 0, khác với PID khi cắt qua điểm 0.

Khác với mô phỏng, việc kiểm soát thời điểm bắt đầu tính tích phân là rất quan trọng, vì tích phân có thể tăng giá trị đột ngột trong thời gian ngắn, gây ra sự mất ổn định cho hệ thống Hệ thống này có ưu điểm lớn là duy trì tổng momen ở mức tối thiểu.

Hệ có thể hoạt động thời gian dài hơn với bộ điều khiển này

Khi mô phỏng PID để bám quỹ đạo, nó chỉ có khả năng bám quỹ đạo ngược tương tự như LQR, trong khi không thể bám quỹ đạo thuận như Fuzzy Các thông số Kp và Kd cũng theo quỹ đạo nghịch giống như trong quá trình kiểm chứng LQR.

Ki thì sẽ theo quỹ đạo thuận để xác định sai lệch chuẩn

Hình 5.9 Đồ thị đáp ứng hệ thống thực với PID dựa trên LQR

Chất lượng điều khiển đã cải thiện đáng kể, với quỹ đạo sin được mô tả chính xác hơn, mặc dù vẫn có độ trễ nhất định Hệ thống có khả năng xác lập đúng trạng thái ở vị trí biên xa, tuy nhiên, gai dao động nhiều là do giới hạn độ phân giải của encoder, không phải do giải thuật Đối với quỹ đạo xung vuông, hệ bám quỹ đạo rất tốt từ giai đoạn làm trơn đến vị trí biên xa, và thể hiện xuất sắc trong giai đoạn chuyển trạng thái giữa hai biên Mặc dù sự vọt lố chỉ xảy ra trong giai đoạn xác lập đầu tiên, nhưng trong suốt quá trình thực nghiệm, hệ thống hầu như không gặp phải tình trạng này khi xác lập Mặc dù có thể bám chính xác quỹ đạo, hệ thống vẫn có nhược điểm về độ trễ nhất định, nhưng độ trễ này ổn định và có thể dự báo được.

Trong quá trình thực hiện thu thập dữ liệu, động cơ hoạt động không quá nóng như Fuzzy nhưng lại có chất lượng điều khiển gần như tương đương

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Ngày đăng: 20/12/2024, 08:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN