TỔNG QUAN
Đặt vấn đề
Ngày nay các lý thuyết điều khiển tuyến tính đã phát triển hoàn chỉnh và được áp dụng rất thành công trong các quá trình công nghiệp cũng như trong các thiết bị dân dụng Tuy nhiên, các lý thuyết này không hiệu quả đối với các hệ thống phi tuyến mà không thể hoặc khó xác định chính xác mô hình toán học, nhất là đối với những hệ thống có mô hình toán học thay đổi và chịu tác động của nhiễu Bên cạnh đó, lý thuyết điều khiển phi tuyến cũng đã có những bước phát triển đáng kể Từ đó chúng ta có nền tảng toán học cần thiết để thiết kế những bộ điều khiển đạt chất lượng
Các lý thuyết được áp dụng thành công để điều khiển các hệ phi tuyến được chia thành hai nhóm chính: lý thuyết điều khiển kinh điển và lý thuyết điều khiển hiện đại Nhóm phương pháp điều khiển kinh điển dựa vào việc tuyến tính hóa đặc tuyến của hệ thống xung quanh điểm làm việc, sau đó áp dụng các phương pháp điều khiển cho hệ tuyến tính Lý thuyết điều khiển kinh điển đã bộc lộ ra những yếu điểm về chất lượng cũng như độ tin cậy khi đối tượng điều khiển là hệ phi tuyến, và nhất là những đối tượng không rõ hoặc khó xác định chính xác mô hình toán học, cũng như chịu tác động của nhiễu
Nhóm phương pháp điều khiển hiện đại bao gồm điều khiển dùng giải thuật mờ, điều khiển dùng giải thuật di truyền, điều khiển dùng mạng thần kinh nhân tạo, điều khiển dùng thuật toán học tăng cường (Reinforcement Learning),…Tác tử Reinforcement Learning khi mới hình thành còn chưa có tri thức về hệ thống, tri thức của mạng hình thành dần sau mỗi quá trình huấn luyện Tác tử được huấn luyện bằng các tương tác với môi trường, bao gồm kích thích ngõ vào và đáp ứng ngõ ra của hệ thống Ta đưa vào đầu thuật toán những kích thích, thuật toán sẽ hình thành những đáp ứng tương ứng ở ngõ ra, đáp ứng phù hợp với từng loại kích thích sẽ được lưu giữ, giai đoạn này được gọi là giai đoạn học của mạng Khi đã hình thành tri thức, chúng ta có thể dùng tác tử học tăng cường để điều khiển hệ thống mà nó được học
Hệ con lắc ngược quay là một hệ thống không ổn định và có ít ngõ vào điều khiển hơn số bậc tự do Hệ thống có hai điểm cân bằng: Điểm cân bằng thẳng đứng hướng lên (vị trí lật ngược) và điểm cân bằng thẳng đứng hướng xuống dưới (vị trí buông thõng), trong đó vị trí lật ngược là điểm cân bằng không ổn định Bài toán đặt ra là thiết kế hệ thống điều khiển gồm hai phần: đưa con lắc từ vị trí buông thõng lên vị trí lật ngược và giữ con lắc ổn định tại vị trí lật ngược
Con lắc ngược là đối tượng đại diện cho lớp các đối tượng có độ phi tuyến cao và không ổn định So sánh với con lắc ngược tịnh tiến, con lắc ngược quay một bậc tự do có ưu điểm là hệ thống cơ khí không quá phức tạp do vậy hệ thống được sử dụng rộng rãi trong việc giảng dạy và nghiên cứu lý thuyết điều khiển tự động
2 cũng như xây dựng các bộ điều khiển
Hệ thống con lắc ngược quay một bậc tự do bao gồm 3 phần chính: phần cơ khí, phần điện tử và phần chương trình Phần cơ khí bao gồm một thanh kim loại (con lắc) quay quanh một trục thẳng đứng Thanh kim loại được gắn gián tiếp với đầu của một cánh tay nằm ngang thông qua một cảm biến để đo góc, đầu còn lại của cánh tay được gắn vào trục quay của một động cơ DC Động cơ DC đặt thẳng đứng để cánh tay có thể quay trong một mặt phẳng nằm ngang.Do trong quá trình vận hành cánh tay sẽ quay với tốc độ cao nên phần cơ khí cần phải được tính toán thiết kế chính xác, chắc chắn nhằm tránh rung gây nhiễu và hư hỏng trong quá trình vận hành Phần điện tử gồm 3 phần nhỏ là: cảm biến đo góc cánh tay và con lắc, mạch khuyếch đại công suất và mạch điều khiển Phần cảm biến đóng vai trò hết sức quan trọng, nó sẽ cung cấp cho bộ điều khiển: vị trí, hướng của cánh tay và con lắc.
Đối tượng thực tế
Đối tượng được nghiên cứu trong đồ án này là hệ con lắc ngược quay (con lắc ngược Furuta) Thông số các thiết bị được cho trong bảng 1
Hình 1: Mô hình thực tế hệ con lắc ngược
Bảng 1 Thông số các thiết bị trong hệ con lắc ngược
STT Tên thiết bị Thông số
Đầu ra dạng NPN open collector
Đầu ra dạng Totem pole
Mục tiêu và giới hạn của đồ án
Từ mô tả bài toán ở mục 1.1, có thể thấy mục tiêu điều khiển của ta là giải quyết hai bài toán sau:
- Bài toán điều khiển swing-up: đưa được con lắc từ vị trí ban đầu (thẳng đứng hướng xuống) lên đến lân cận vị trí cân bằng trên
- Bài toán điều khiển cân bằng: duy trì được hệ ổn định quanh vị trí cân bằng dù chịu tác động của ngoại lực
Hay nói cách khác là ta phải đưa
Với , , , lần lượt là vị trí, tốc độ của góc cánh tay động cơ và con lắc Đối với hệ con lắc ngược quay vì chỉ có một cơ cấu chấp hành là động cơ
DC nên chỉ có một biến điều khiển được là điện áp động cơ (u motor ) trong khi có tới 4 biến ra cần điều khiển ( , , , ) Vì vậy để xử lý cả hai bài toán trên ta sẽ xây dựng một bộ điều khiển nối tầng hoạt động trong cả hai giai đoạn Cụ thể quá
4 trình hoạt động của hệ thống như sau: ban đầu con lắc ở vị trí thẳng đứng hướng xuống, khi bắt đầu chạy, bộ điều khiển vòng ngoài hoạt động khiến con lắc dao động, cho đến khi vị trí con lắc đến vùng lân cận vị trí cân bằng trên (180 30 độ) thì bộ điều khiển bắt đầu hoạt động để đưa con lắc tới vị trí cân bằng và duy trì nó ổn định tại đó và cánh tay động cơ sẽ ở vị trí nào đó khác góc 0 Sau đó bộ điều khiển vòng trong có nhiệm vụ duy trì góc của con lắc ổn định ở vị trí cân bằng trên trong quá trình cánh tay động cơ di chuyển về vị trí góc 0
Hình 2: Minh họa cách hoạt động của cả hệ thống khi có bộ điều khiển
Chi tiết cách xây dựng từng bộ điều khiển sẽ được trình bày ở các chương sau
Giới hạn của đề tài chỉ thiết kế và điều khiển mô hình con lắc ngược quay giữ cân bằng dùng mạng Soft Actor-Critic (SAC).
Phương pháp nghiên cứu
Các phương pháp nghiên cứu được sử dụng trong đồ án bao gồm:
Khảo sát, phân tích tổng hợp
Mô phỏng trên máy tính bằng phần mềm Matlab phiên bản 2021a
Thí nghiệm trên mô hình thực và thu dữ liệu Các thí nghiệm trên mô hình thực nghiệm đã được nhóm sinh viên thực hiện tại phòng thí nghiệm D8 – 905, trường Đại học Bách khoa Hà Nội
Đánh giá kết quả dựa trên kết quả mô phỏng và thực nghiệm.
Nội dung luận văn
Phần còn lại của nội dung luận văn bao gồm:
Chương 2: Mô hình hóa đối tượng thực tế
Chương này trình bày các bước xây dựng phương trình hệ thống động lực học, xây dựng mô hình Simulink và mô hình Simscape trong phần mềm Matlab
Chương 3: Thiết kế và kiểm nghiệm mô phỏng bộ điều khiển sử dụng Reinforcement Learning
Phần đầu chương trình bày cơ sở lý thuyết về Reinforcement Learning và thuật toán SAC, các kỹ thuật huấn luyện và quy trình thực hiện thuật toán Phần sau chương trình bày các thiết lập về thiết kế và mô phỏng thuật toán trên Matlab và Simulink, đánh giá và so sánh kết quả với các bộ điều khiển khác
Chương 4: Kết luận và hướng phát triển
Trong chương này, nhóm sinh viên tóm tắt kết quả đạt được trong đồ án và phát triển đề tài
MÔ HÌNH HÓA ĐỐI TƯỢNG THỰC TẾ
Xây dựng mô hình toán học
Hình 3 Mô hình đơn giản hệ con lắc ngược quay
Hệ con lắc ngược Furuta (chỉ gồm phần cơ khí) được mô tả một cách đơn giản như trong hình 3 Hệ bao gồm: một tay quay (OA) nằm ngang, chiều dài l0 được gắn vuông góc với trục động cơ, khi động cơ quay sẽ khiến thanh này quay trong mặt phẳng nằm ngang; con lắc có khối lượng m, chiều dài 2l1, gắn tại A và có thể quay linh hoạt trong mặt phẳng vuông góc với OA
Một số đại lượng khác cần quan tâm:
J 0 : momen quán tính của tay quay với trục quay qua tâm O.
J 1 : momen quán tính của con lắc với khối tâm B.
b 0 : hệ số ma sát của trục động cơ.
b1: hệ số ma sát của trục con lắc.
Xét trong hệ tọa độ Oxyz cố định như hình 2.1, θ và α được sử dụng là các hệ tọa độ suy rộng Tại một thời điểm, khi cánh tay quay được một góc θ so với trục
Ox, thì con lắc rời đi một góc α so với phương thẳng đứng
Giả sử trọng lực của con lắc đặt tại điểm giữa B Tọa độ khối tâm B của con lắc là:
7 Đạo hàm hai vế của PT 2.1 ta được:
Suy ra được vận tốc của khối tâm B của con lắc:
(PT 2.3) Động năng của hệ
K 2 J J mv (PT 2.4) Thay PT 2.3 vào PT 2.4 thu được
Chọn mốc thế năng T = 0 tại vị trí cao nhất của con lắc ngược
Ta có thế năng của hệ được tính như sau:
Từ PT 2.5 và PT 2.6 ta có được công thức hàm Lagrange:
Gọi τ là momen tác dụng của động cơ Áp dụng công thức : i ( ) i i
Ta có hệ phương trình động lực học sau:
Hệ phương trình 2.8 có thể viết dưới dạng:
Từ (PT 2.9) ta có thể viết thành dạng:
Xây dựng mô hình Simulink và Simscape
Từ mô hình phi tuyến tìm được và phương án điều khiển đã đề ra, ta xây dựng được mô hình đối tượng và cấu trúc hệ thống điều khiển trên Simulink như dưới đây và sử dụng một số giả thiết để mô hình có thể sát nhất với thực tế
Các giả thiết sử dụng:
- Góc của cánh tay động cơ là 0 radian khi cánh tay hướng nằm ngang và hướng về phía trước (ngược chiều kim đồng hồ là chiều dương)
- Góc của con lắc là 0 radian khi con lắc hướng thẳng đứng xuống dưới
(ngược chiều kim đồng hồ là chiều dương)
- Đầu vào của mô hình đối tượng là tín hiệu điện áp một chiều cấp cho động cơ Giá trị điện áp nằm trong khoảng –12 đến 12 V
- Các góc và vận tốc góc của con lắc và động cơ được đo bằng các cảm biến
Cấu trúc hệ thống điều khiển cho hệ con lắc ngược được mô phỏng trên
Hình 4 Sơ đồ hệ thống điều khiển trên Simulink
Mô hình đối tượng con lắc (trong khối Rotary Inverted Pendulum) được thể hiện như sau:
Hình 5 Sơ đồ mô tả hệ con lắc ngược trên Simulink
Sử dụng Simscape, nhóm xây dựng được mô hình như sau:
Hình 6 Mô hình Simscape trong Simulink
11 Hình 7 Mô phỏng mô hình Simscape trong Simulink
THIẾT KẾ VÀ CÁC KIỂM NGHIỆM BỘ ĐIỀU KHIỂN
Thiết kế bộ điều khiển vòng trong
- Nhiệm vụ của bộ điều khiển vòng trong là khi góc của con lắc ổn định quanh lân cận cân bằng nó sẽ duy trì điều đó trong quá trình đưa góc của cánh tay động cơ về vị trí 0
Với động cơ DC ta có hệ phương trình mô tả:
Do đó ta có thể biểu diễn cả hệ dưới dạng: x F x u ( , motor ) với
- Đối với hệ con lắc ngược quay hệ thống có 2 điểm làm việc: một điểm làm việc khi 0(vị trí không mong muốn) và 180(vị trí mong muốn).Vì vậy để có thể thiết kế bộ điều khiển vòng trong ta cần tuyến tính hóa mô hình của hệ quanh 2 điểm làm việc của hệ là :
Ta biết rằng 1 hệ phi tuyến có dạng:
, x n có thể tuyến tính hóa quanh điểm làm việc ( , ) x u 0 0 dựa theo công thức: x 1 Ax 1 Bu 1
Do đó từ (PT 2.10) ta có mô hình tuyến tính
, ta có hệ tuyến tính:
Dùng phương pháp gán điểm cực, chọn lần lượt các điểm cực ( 1 2 ; 1.5 2 ; 2) i i ta được bộ điều khiển phản hồi trạng thái: u motor K x 1 với K 1 ( 0.162; 40;0.0356; 2;0)
, ta có hệ tuyến tính:
Dùng phương pháp gán điểm cực, chọn lần lượt các điểm cực ( 1 2 ; 1.5 2 ; 2) i i ta được bộ điều khiển phản hồi trạng thái: u motor K x 2 với K 2 ( 0.162; 40;0.0356; 2;0)
Bộ điều khiển K1 được sử dụng khi
và K2 được sử dụng trong trường hợp còn lại Hơn nữa để duy trì góc của con lắc ổn định quanh lân cận cân bằng trong quá trình đưa góc của cánh tay động cơ về vị trí 0, ta cần để đầu ra của bộ điều khiển ( , ) làm giá trị đặt cho bộ điều khiển ( , )
Hình 8: Cấu trúc của bộ điều khiển vòng trong Ở đây chúng em giả sử điều kiện ban đầu: 0 0 0 0 0 0 160 0 0 0
Hình 9: Kết quả mô phỏng góc với điều kiện ban đầu đã cho
Hình 10: Kết quả mô phỏng góc khi điều kiện ban đầu đã cho
Cơ sở lý thuyết
3.2.1 Tổng quan về Machine Learning và Reinforcement Learning
“Machine learning (ML) is a process whereby a computer program learns from experience to improve its performance at a specified task” (Kiran, 2020) Hiểu đơn giản machine learning (học máy) là kỹ thuật giúp cho máy tính có thể tự học và đưa ra quyết định mà không cần phải cài đặt các quy tắc, luật lệ Machine learning đang là lĩnh vực công nghệ được quan tâm nhiều nhất hiện nay Nó ngày càng được ứng dụng vào thực tế cuộc sống, từ các ứng dụng mạng xã hội, thương mại điện tử hay mareting… tạo ra những giá trị to lớn cho các dịch vụ này
Hình 11 Mối liên hệ giữa AI, Machine Learning và Deep Learning
Các thuật toán học máy thường được phân thành 3 loại lớn: supervised learning (học có giám sát), unsupervised learning (học không giám sát) và reinforcement learning (học tăng cường) Nếu như supervised learning là học tập từ một tệp các dữ liệu được gắn nhãn để suy luận ra quan hệ giữa đầu vào và đầu ra, thì unsupervised learning không được cung cấp các dữ liệu được gắn nhãn ấy, thay vào đó chỉ được cung cấp dữ liệu mà thuật toán tìm cách mô tả dữ liệu và cấu trúc của chúng Loại thứ 3 là reinforcement learning - phương pháp tập trung vào việc làm thế nào để cho một tác tử trong môi trường có thể hành động sao cho lấy được phần thưởng nhiều nhất có thể Khác với học có giám sát, học tăng cường không có cặp dữ liệu gán nhãn trước làm đầu vào và cũng không có đánh giá các hành động là đúng hay sai
“Reinforcement learning là đào tạo các mô hình học máy để đưa ra một chuỗi các quyết định Tác tử học cách đạt được mục tiêu trong một môi trường không chắc chắn, có thể là phức tạp.” Đến đây ta có thể thấy, reinforcement learning là một nhánh của machine learning
Hình 12 3 loại chính của Machine Learning
Mục tiêu của học tăng cường không phải là phân loại hay dán nhãn cho dữ liệu mà là để tìm ra trình tự tốt nhất cho các hành động để đạt được kết quả đầu ra tốt nhất Để làm được điều này, học tăng cường sử dụng một thành phần được gọi là tác nhân (Agent) để khám phá, tương tác với môi trường và học từ môi trường
Bên trong mỗi tác nhân sẽ có một hàm (ta gọi là chính sách) để nhận các đầu vào từ môi trường để tính toán đưa ra các hành động tương tác môi trường Khi tương tác với môi trường, tác nhân sẽ nhận lại được một phần thưởng (tương đương với định nghĩa hàm phạt trong điều khiển tối ưu) Nếu hành động tốt sẽ được phần thưởng nhiều, hành động sai sẽ nhận phần thưởng ít (hoặc nhận điểm phạt) Căn cứ vào mức thưởng mà tác nhân sẽ rút ra được “kinh nghiệm” cho các lần hoạt động sau
Hình 13 Tương tác giữa tác nhân học tăng cường và môi trường
Nếu ta có thể thiết kế được một chính sách hoàn hảo để tạo ra những tác động đúng cho cơ cấu chấp hành ở mỗi trạng thái thì công việc thiết kế coi như hoàn thành Nhưng điều này không dễ dàng bởi vì cho dù có thể thiết kế được chính sách hoàn hảo rồi nhưng môi trường bên ngoài thay đổi thì các phản ứng cũng sẽ khác đi Do đó để có thể có được chính sách tối ưu thì chính sách phải được thay đổi dựa vào hành động đã thực hiện, phản hồi của môi trường và phần thưởng nhận được Đây chính là nguyên lý hoạt động của các thuật toán học tăng cường
3.2.2 Mối liên hệ giữa điều khiển truyền thống và điều khiển học tăng cường (Reinforcement Learning)
Mục tiêu của một hệ thống điều khiển là tính toán các đầu vào điều khiển (hành động) cho một hệ thống để tạo ra đáp ứng mong muốn Ở các hệ thống điều khiển phản hồi, bộ điều khiển sử dụng các trạng thái phản hồi để cải thiện chất lượng hệ thống Người kỹ sư thiết kế sử dụng các thông tin phản hồi cùng với mô hình hệ thống và môi trường để thiết kế bộ điều khiển Với điều khiển học tăng cường, mục tiêu và yêu cầu tương tự như điều khiển truyền thống, chỉ khác ở cách thực hiện Với học tăng cường, việc tạo ra tín hiệu điều khiển (hành động) phù hợp chỉ có thể có được sau một quá trình học Quá trình học này được thực hiện bởi máy tính thông qua việc tương tác với môi trường mà không cần biết mô hình cụ
19 thể của đối tượng và môi trường Do vậy, học tăng cường thường được áp dụng trong các hệ thống có mô hình bất định hoặc có số lượng trạng thái và hành động lớn
Câu trả lời cho việc máy học như nào nằm ở cách thức xây dựng chính sách Chính sách về bản chất là một hàm toán học được xây dựng dựa trên một thuật toán và có các tham số có thể thay đổi được Với mỗi chính sách được xây dựng, sẽ có một tập các tham số làm cho hành động sinh ra là tối ưu Và nhiệm vụ của việc học là thay đổi các tham số sẵn có một cách có hệ thống để hội tụ dần đến giá trị tối ưu Quá trình học sẽ được máy tính thực hiện thông qua các thuật toán được đề cập ở các phần tiếp theo
3.2.3 Các thuật toán cơ bản của Reinforcement Learning
Hình 14 Hệ thống các phương pháp học tăng cường
Q-learning là một thuật toán học-tăng-cường off policy (off policy reinforcement learning algorithm) Cụ thể, q-learning học để tìm ra được một chiến lược (policy) có thể tối đa hoá được tổng phần thưởng (maximizes the total reward)
Hình 15 Ví dụ về thuật toán Q – Learning và Q – table Để thực hiện thuật toán q-learning, cần tạo một bảng q (q - table) Q- table là một ma trận có chiều là [trạng thái, hành động] ([state, action]) Sau khi khởi tạo giá trị 0
20 cho ma trận, các giá trị q được cập nhật và lưu trữ vào q-table sau từng tập (episode - bao gồm tất cả các trạng thái được tính từ lúc tác nhân - agent (trong thuật toán Markov) bắt đầu học cho đến khi agent gặp điểm terminate) Bảng q này trở thành bảng tham chiếu để tác nhân (agent) chọn hành động tốt nhất (best action) dựa trên giá trị q (q value)
Các cập nhật xảy ra sau mỗi bước hoặc hành động và kết thúc khi một tập (episode) được hoàn thành Kết thúc trong trường hợp này có nghĩa là tác nhân (agent) đã tới được một số điểm cuối (terminate) Trạng thái cuối (terminate state) có thể là bất kỳ điều gì như truy cập trang thanh toán, đến cuối trò chơi, hoàn thành một số mục tiêu mong muốn, v.v Tác nhân sẽ không học được nhiều chỉ sau một tập, nhưng với đủ sự khám phá (qua nhiều bước (steps) và tập (episode)) nó sẽ hội tụ và tìm được các giá trị q tối ưu hay còn gọi là q*)
SARSA (State Action Reward State Action) là một thuật toán đi tìm giá trị tích lũy tối ưu cho một hành động như Q-Learning, kế thừa những khái niệm về học online, model – free của Q-Learning và quan trọng hơn là Q-Table Khác biệt chính giữa hai thuật toàn nằm ở việc Q-Learning thuộc nhóm thuật toán off – policy trong khi SARSA thuộc nhóm on – policy
Hình 16 Khác biệt giữa SARSA và Q – Learning
3.2.3.3 Thuật toán Deep Q – Network (DQN)
DQN thừa hưởng moi tính chất của Q – Learning Là mô hình thuộc dạng Model – Free, học online và thuộc nhóm thuật toán off – policy Để giải quyết những vấn đề về bộ nhớ của các thuật toán Q – Learning và SARSA, DQN loại bỏ mảng hai chiều Q – Table, thay vào đó xây dựng một mạng neuron để xấp xỉ bảng Q – Table này
Hình 17 Từ Q - learning đến DQN
Thiết kế bộ điều khiển vòng ngoài
3.3.1 Nhiệm vụ và mục tiêu:
Bộ điều khiển vòng vòng ngoài có nhiệm vụ tạo năng lượng để con lắc dao động swing up nó lên vị trí cân bằng ở trên đồng thời nó cũng tối thiểu hóa sai lệch của các biến ra cần điều khiển, (đặc biệt là góc của con lắc) so với giá trị đặt của chúng hay nói cách khác là” kéo con lắc lên càng gần vị trí thẳng đứng ở trên và giữ nó ở lân cận đó”
Và nó cũng đưa ra giá trị đặt của góc con lắc cho bộ điều khiển vòng trong Vùng lân cận quanh vị trí cân bằng được sử dụng trong mô phỏng này là 180 30 độ Ở trong mô phỏng sử dụng thêm một tín hiệu logic gọi là “select-mode”
Do quá trình swing-up con lắc lên vị trí cân bằng trên là quá trình có sự phi tuyến lớn, góc đặt của con lắc cũng thay đổi liên tục nên để đạt được mục đích tối thiểu sai số nên không thể sử dụng một công thức cụ thể nào đó mà cần sử dụng thuật toán học tăng cường mới có thể xử lý
Hình 22 Cấu trúc bộ điều khiển vòng ngoài:
3.3.2 Thiết kế môi trường và trạng thái
Môi trường được tạo từ mô hình simscape của con lắc ngược quay trong phòng thí nghiệm với thông số được lấy từ trong chương 2 Ở mỗi bước của một tập, trạng thái của môi trường sẽ được gửi về tác nhân
Sau khi cân nhắc, nhóm chúng em lựa chọn trạng thái gồm 6 bộ:
〈sin 𝛼, cos 𝛼, 𝛼̇, sin 𝜃, cos 𝜃̇, 〉 Nhóm lựa chọn các hàm lượng giác của góc α thay vì góc α trong trạng thái vì các giá trị góc trong mô phỏng không bị giới hạn trong miền có độ dài 2π Bên cạnh đó, sử dụng các hàm lượng giác của α không chỉ xác định độ lớn mà còn xác định dấu của góc α, từ đó thể hiện đầy đủ trạng thái cho quá trình học của tác nhân Ở vị trí ban đầu, các giá trị trạng thái lần lượt là: sin 𝛼 = 0, cos 𝛼 = 1, 𝛼̇ = 0, sin 𝜃 = 0, cos 𝛼 = 1, = 0
Hình 23 Sơ đồ thuật toán học tăng cường trong Simulink
3.3.3 Thiết kế cấu trúc và tham số của SAC Agent
Tác nhân SAC được xây dựng với hai mạng neuron là mạng Critic và mạng Actor với tham số độc lập Trong đó:
- Mạng Critic được xây dựng với cấu trúc hai đầu vào và một đầu ra Đầu vào là trạng thái (6 unit ứng với 6 trạng thái quan sát) và hành động (1 unit), đầu ra là giá trị Q ước lượng Mạng gồm 8 lớp ẩn bao gồm: 2 lớp feature input layer, 4 lớp fully connected layer và 2 lớp relu layer Lớp feature input layer lần lượt có có 5 và 1 units 3 lớp fully connected layer đầu tiên lần lượt có
400, 300, 300 và lớp cuối cùng có 1 units ở đầu ra Hàm kích hoạt Relu được sử dụng cho toàn bộ các lớp của mạng Critic Hệ số học của mạng Critic là 0.001
Hình 24 Cấu trúc mạng Critic
- Mạng Actor được xây dựng với cấu trúc một đầu vào và một đầu ra Đầu vào là trạng thái và hành động, đầu ra là giá trị Q ước lượng Mạng gồm 8 lớp ẩn bao gồm: 1 lớp feature input layer, 5 lớp fully connected layer ,3 lớp relu layer và 1 lớp concatenation layer ở đầu ra Lớp feature input layer có
5, 3 lớp fully connected layer lần lượt có 400, 300, 300 units, 2 lớp cuối cùng ở gần đầu ra lần lượt đều có 1 unit Hàm kích hoạt Relu được sử dụng cho toàn bộ các lớp của mạng Critic Hệ số học của mạng Actor là 0.001
Hình 25 Cấu trúc mạng Actor
Từ mạng Critic và Actor, SAC Agent được tạo với các tham số sau:
Bảng 2.Bảng tham số SAC Agent
Phương sai mô hình nhiễu 0.4
Tốc độ suy giảm phương sai 0.00001
3.3.4 Hàm Reward và các tham số huấn luyện
Quá trình học của tác nhân được mô phỏng thành từng tập, mỗi tập bao gồm các bước lặp Ở mỗi bước lặp, môi trường sẽ gửi về tác nhân điểm thưởng 𝑟 𝑡 được xác định như sau:
Mỗi tập sẽ diễn ra đến khi có tín hiệu hủy bỏ (Góc quay θ và vận tốc quay của cánh tay động cơ quá giới hạn đã được định sẵn) Sau khi kết thúc một lần huấn luyện thuật toán, tổng phần thưởng tích lũy từ trạng thái đầu tiên đến trạng thái cuối cùng Quá trình huấn luyện thuật toán kết thúc khi tổng phần thưởng tích lũy đạt tiêu chí dừng Quá trình huấn luyện thuật toán SAC trong bài toán này được diễn ra với các tham số sau:
Bảng 3 Bảng tham số quá trình huấn luyện
Số bước lặp tối đa trong mỗi tập 500
Tiêu chí dừng Phần thưởng trung bình của 5 tập liên tiếp lớn hơn hoặc bằng 7000 Tiêu chí hủy tập |𝜃 𝑡 | > 20 rad hoặc |𝜃̇ 𝑡 | > 20 rad/s
3.4 Thiết kế và mô phỏng trên Matlab – Simulink
Sau khi thực hiện huấn luyện SAC Agent và so sánh với quá trình huấn luyện DDPG Agent trên Matlab với cùng mô hình, nhóm thu được quá trình huấn luyện như sau:
Hình 26 Quá trình huấn luyện SAC Agent
Hình 27 Quá trình huấn luyện DDPG Agent
Thuật toán SAC mất hơn 120 episodes đầu tiên để khám phá môi trường, còn với DDPG là hơn 250 episodes.
Quá trình huấn luyện SAC ổn định hơn so với DDPG, hiệu suất huấn luyện SAC đã có xu hướng tăng và đạt được tiêu chí dừng sau 178 episodes, với DDPG mặc dù đã hết số episodes nhưng vẫn chưa đạt được tiêu chí dừng.
Vì vậy có thể khẳng định thuật toán SAC ở đây đã chứng minh được tính
35 hiệu quả so với DDPG
Sau khi đã huấn luyện thành công, SAC Agent được sử dụng để điều khiển con lắc ngược mô phỏng và thu được kết quả sau:
Hình 28: Kết quả góc(sensor 2),(sensor 1) thu được khi chạy mô phỏng
Hình 29: Kết quả (sensor 3) và (sensor 4)
Hình 30: Kết quả điện áp đặt vào động cơ
Hình 31: Góc đặt cho con lắc từ SAC agent và tín hiệu “select-mode”
37 Hình 32 Góc và khi dùng bộ điều khiển LQR
Nhận xét kết quả mô phỏng:
Từ kết quả mô phỏng cho thấy góc cánh tay quay và góc con lắc ngược Tại giây đầu tiên, con lắc ngược quay đang trong quá trình lật ngược Sau đó, ở trạng thái cân bằng, con lắc ngược được giữ tại vị trí thẳng đứng trong khoảng thời gian còn lại.
Giá trị điện áp đặt vào động cơ không vượt quá 12V về mặt thực tế đảm bảo an toàn cho động cơ
So với bộ điều khiển truyền thống (LQR) thì bộ điều khiển được đề xuất ở đây làm thời gian đáp ứng của theta và alpha nhanh hơn (2s với bộ điều khiển đề xuất và 5s-8s của bộ điều khiển LQR)