ĐỀ TÀI: THIẾT KẾ BỘ ĐIỀU KHIỂN THÔNG MINH CÂN BẰNG HỆ XE CON LẮC NGƯỢC PHẦN MỞ ĐẦU 1 1 Lý do lựa chọn đề tài 1 2 Mục tiêu nghiên cứu 1 3 Giới hạn đề tài 2 4 Phương pháp nghiên cứu 2 5 Nội dung nghiên cứu 2 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 1 1.1 Mô hình hệ xe con lắc ngược 1 1.2 Mô hình toán học hệ xe con lắc ngược 2 1.3 Tuyến tính hoá hệ xe con lắc ngược 3 CHƯƠNG 2. THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZYPID 6 2.1 Giới thiệu về bộ điều khiển mờ trực tiếp 6 2.2 Thiết kế bộ điều khiển mờ 7 2.3 Mô phỏng bộ điều khiển mờ 11 2.4 Kết quả mô phỏng 17 2.5 Kết luận 19 CHƯƠNG 3. THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH 21 3.1 Lý thuyết về mang thần kinh 21 3.2 Cấu trúc mạng thần kinh 22 3.3 Xây dựng mô hình thu thập dữ liệu đầu vào và ra 23 3.4 Thiết kế bộ điều khiển mạng thần kinh 25 3.5 Kết quả mô phỏng 30 3.5.1 Dùng mạng thần kinh thay thế cho bộ điều khiển Fuzzy – PI 30 3.5.2 So sánh sai số giữa bộ điều khiển Fuzzy – PI và mạng thần kinh 33 3.6 Kết luận 35 CHƯƠNG 4. THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA 36 4.1 Lý thuyết về giải thuật di truyền 36 4.2 Cấu trúc của giải thuật di truyền 37 4.3 Lý thuyết về bộ điều khiển PID dùng GA 38 4.4 Thiết kết bộ điều khiển PID dùng GA cho hệ xe con lắc ngược 39 4.5 Kết quả mô phỏng 44 4.6 Kết luận 46 CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47 5.1 Kết luận 47 5.2 Hướng phát triển 47 TÀI LIỆU THAM KHẢO 48
CƠ SỞ LÝ THUYẾT
Mô hình hệ xe con lắc ngược
Hệ con lắc ngược, như mô tả trong hình 1.1, được gắn vào xe kéo bởi động cơ điện, cho phép con lắc di chuyển trong mặt phẳng Tuy nhiên, con lắc không thể duy trì trạng thái ổn định mà luôn có xu hướng ngã xuống trừ khi có lực tác động thích hợp Trong mô hình này, khối lượng của con lắc được tập trung ở đầu thanh, trong khi khối lượng của thanh được coi là không đáng kể Lực điều khiển F tác động vào xe, vì vậy nhiệm vụ chính là điều khiển vị trí của xe và giữ cho con lắc ngược luôn thẳng đứng, đảm bảo hệ con lắc ngược luôn ở trạng thái cân bằng.
Hình 1.1 Mô hình hệ xe con lắc ngược
Trong đó: x là vị trí xe (m) x
là gia tốc của xe (m/s 2 )
F là lực tác động vào xe (N)
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT m là khối lượng con lắc (kg)
là góc giữa con lắc và phương thẳng đứng (rad)
là vận tốc góc của con lắc (rad/s)
là gia tốc góc của con lắc (rad/s 2 ) l là chiều dài của con lắc (m) glà gia tốc trọng trường (g 9.81 cm/s 2 )
Mô hình toán học hệ xe con lắc ngược
Phân tích vị trí của con lắc theo 2 phương ngang và phương thẳng đứng ta có: n cos i si j x x l x l
212\* MERGEFORMAT (.) Đạo hàm vị trí con lắc theo thời gian ta được vận tốc con lắc theo hai phương ngang và thẳng đứng như sau: cos sin i j x x l x l
Từ vận tốc 13 và khối lượng của con lắc, ta tính được động năng của con lắc:
Vì xe chỉ di chuyển theo phương ngang nên động năng của xe được tính như sau:
Từ 14 và 15 ta có tổng động năng của hệ thống được xác định như sau:
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Thế năng của hệ thống:
Toán tử Larrange, ta có:
Hệ phương trình toán học theo phương pháp Euler-Lagrange:
Công thức 18 được biểu diễn theo từng biến trạng thái tác động đến hệ thống và ở bên trái là ngoại lực tác động xét theo từng hướng chuyển động.
Thay 110 vào 19 ta được hệ phương trình:
M m x ml ml F mx ml mg
Từ 111 ta mô tả đặc tính động học của hệ thống bằng phương trình vi phân:
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
(cos ) cos ( ) sin cos sin
Tuyến tính hoá hệ xe con lắc ngược
Đặt các biến trạng thái lần lượt là: x 1 ; x 2 ; x 3 x ; x 4 x và u F Đưa mô hình toán học của con lắc ngược về dạng chuẩn:
(cos ) f dx x dt dx u x M m g x x ml x x f dt ml x M m l f dx x x dt dx u mg x x mlx x f x dt M m m x
Tuyến tính hóa mô hình xung quanh điểm làm việc thẳng đứng x 0 0 và u 0 0:
Ta có phương trình trạng thái của hệ thống được mô tả như sau:
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT x Ax Bu y Cx
15115\* MERGEFORMAT (.) Tính toán ma trận A:
Thay các thông số của hệ thống vào 116 và 117 ta được giá trị của hai ma trận A và B như sau:
Đặc tính động của hệ con lắc ngược có thể được mô tả thông qua hệ phương trình biến trạng thái tuyến tính, điều này chỉ áp dụng khi góc lệch θ' ở mức nhỏ.
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Hệ thống phản hồi trạng thái đầy đủ, nghĩa là có thể đo được 4 biến trạng thái (góc lệch, vận tốc góc, vị trí xe, vận tốc xe).
Không có nhiễu tác động vào hệ thống.
THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY-PID
Giới thiệu về bộ điều khiển mờ trực tiếp
Điều khiển mờ là phương pháp giúp biểu diễn và xử lý tri thức trực giác của con người, khác với mạng thần kinh vì không tự học mà cần tích hợp kinh nghiệm chuyên gia trong thiết kế Nhờ vào logic mờ, các phát biểu ngôn ngữ định tính được chuyển đổi thành mô hình toán học Quá trình thiết kế bộ điều khiển mờ dựa trên kinh nghiệm thường là thử sai, và khi thành công, bộ điều khiển mờ có thể điều khiển đối tượng với chất lượng chấp nhận được.
Hệ thống điều khiển mờ tương tự như các hệ thống điều khiển thông thường, nhưng điểm khác biệt là nó hoạt động dựa trên tư duy giống như bộ não con người thông qua trí tuệ nhân tạo Mặc dù bộ điều khiển mờ có khả năng giải quyết nhiều vấn đề, nhưng không thể khẳng định rằng nó có thể giải quyết tất cả các vấn đề chưa được giải quyết theo phương pháp kinh điển Hiệu quả của bộ điều khiển này phụ thuộc vào kinh nghiệm và cách rút ra kết luận theo tư duy con người, được tích hợp thông qua logic mờ.
Bộ điều khiển mờ trực tiếp được sử dụng trong đường thuận của hệ thống điều khiển hồi tiếp, nơi tín hiệu ra của đối tượng điều khiển được so sánh với tín hiệu đặt Khi có sai lệch giữa hai tín hiệu này, bộ điều khiển mờ sẽ phát tín hiệu tác động để điều chỉnh.
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID động vào đối tượng nhằm mục làm giảm sai số về 0 Đây là sơ đồ điều khiển mờ quen thuộc được dùng để thay thế bộ điều khiển kinh điển.
Hình 2.3 Điều khiển mờ trực tiếp
Thiết kế bộ điều khiển mờ
Hình 2.4 Sơ đồ khối hệ mờ cơ bản
Nhóm nghiên cứu đã chọn 4 biến ngõ vào bao gồm giá trị góc lệch của con lắc (θ), vận tốc góc của con lắc (θ̇), vị trí của xe (x) và tốc độ của xe (ẋ) Biến ngõ ra được xác định là lực tác dụng vào xe (u).
Ta chọn đối tượng có các tập cơ sở như sau:
Vận tốc góc [-1,1] (rad/sec)
Lực tác dụng vào xe [-40,40] (N)
Chuẩn hoá tập cơ sở
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID Để miền giá trị của các biến vào/ra là [-1,1], ta tiến hành chuẩn hóa tập cơ sở với các khối tiền xử lý và hậu xử lý có hệ số khuếch đại như sau:
Các khối tiền xử lý: 1 2 3 4
Định nghĩa các tập mờ mô tả các giá trị ngôn ngữ biến vào và ra
Chọn 3 tập mờ cho mỗi biến vào (NE, ZE, PO), các tập mờ này được phân hoạch mờ trên tập cơ sở chuẩn hóa và hàm liên thuộc có dạng tam giác
Hình 2.5 Tập mờ ngõ vào góc lệch
Hình 2.6 Tập mờ ngõ vào vận tốc góc
Hình 2.7 Tập mờ ngõ vào vị trí xe x Hình 2.8 Tập mờ ngõ vào vận tốc xe x
Chọn 7 tập mờ (NB NM NS ZE PS PM PB) cho biến ra.
Hình 2.9 Tập mờ lực điều khiển xe
Xây dựng quy tắc điều khiển mờ
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.10 Một số quy tắc điều khiển
Với 3 tập mờ ở ngõ vào cho mỗi biến, để thõa mãn tính hoàn chỉnh thì hệ quy tắc phải gồm 81 quy tắc Chúng ta cũng không nên tăng số tập mờ ở ngõ vào vì như thế quy tắc mờ sẽ tăng lên rất lớn.
Bảng 2.1 Hệ quy tắc mờ dành cho hệ xe con lắc ngược
1 NE NE NE NE NB 41 ZE ZE ZE ZE ZE
2 NE NE NE ZE NB 42 ZE ZE ZE PO PS
3 NE NE NE PO NM 43 ZE ZE PO NE ZE
4 NE NE ZE NE NB 44 ZE ZE PO ZE PS
5 NE NE ZE ZE NM 45 ZE ZE PO PO PS
6 NE NE ZE PO NE 46 ZE PO NE NE PM
7 NE NE PO NE NM 47 ZE PO NE ZE NS
8 NE NE PO ZE NE 48 ZE PO NE PO PS
9 NE NE PO PO ZE 49 ZE PO ZE NE ZE
10 NE ZE NE NE NB 50 ZE PO ZE ZE PS
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
13 NE ZE ZE NE NM 53 ZE PO PO ZE PM
14 NE ZE ZE ZE NE 54 ZE PO PO PO PB
15 NE ZE ZE PO ZE 55 PO NE NE NE NM
16 NE ZE PO NE NE 56 PO NE NE ZE NS
17 NE ZE PO ZE ZE 57 PO NE NE PO ZE
18 NE ZE PO PO PO 58 PO NE ZE NE NS
19 NE PO NE NE NM 59 PO NE ZE ZE ZE
20 NE PO NE ZE NE 60 PO NE ZE PO PS
21 NE PO NE PO ZE 61 PO NE PO NE ZE
22 NE PO ZE NE NE 62 PO NE PO ZE PS
23 NE PO ZE ZE ZE 63 PO NE PO PO PM
24 NE PO ZE PO PO 64 PO ZE NE NE NS
25 NE PO PO NE ZE 65 PO ZE NE ZE ZE
26 NE PO PO ZE PO 66 PO ZE NE PO PS
27 NE PO PO PO PM 67 PO ZE ZE NE ZE
28 ZE NE NE NE NB 68 PO ZE ZE ZE PS
29 ZE NE NE ZE NM 69 PO ZE ZE PO PM
30 ZE NE NE PO NE 70 PO ZE PO NE PS
31 ZE NE ZE NE NM 71 PO ZE PO ZE PM
32 ZE NE ZE ZE NE 72 PO ZE PO PO PB
33 ZE NE ZE PO ZE 73 PO PO NE NE ZE
34 ZE NE PO NE NE 74 PO PO NE ZE PS
35 ZE NE PO ZE ZE 75 PO PO NE PO PM
36 ZE NE PO PO PO 76 PO PO ZE NE PS
37 ZE ZE NE NE NM 77 PO PO ZE ZE PM
38 ZE ZE NE ZE NE 78 PO PO ZE PO PB
39 ZE ZE NE PO ZE 79 PO PO PO NE PM
40 ZE ZE ZE NE NE 80 PO PO PO ZE PB
81 PO PO PO PO PB
Sử dụng phương pháp suy diễn mờ Max – Min
Xét quy tắc thứ k của một hệ quy tắc mờ: nếu x 1 là ~ A 1,k và x n là ~ A n , k thì y là ~ B k
Hình 2.11 Phương pháp suy diễn mờ
Vì hệ quy tắc mờ trong điều khiển và khối hậu xử lý không có khâu tích phân nên
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Mô phỏng bộ điều khiển mờ
Lựa chọn các khối cần thiết cho việc mô phỏng
Hình 2.12 Các khối cần thiết cho mô phỏng
Thiết kế mô hình xe con lắc
Hình 2.13 Mô phỏng động học hệ xe con lắc ngược
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Bảng 2.2 Code Matlab mô phỏng đặc tính động học hệ xe con lắc ngược
%% Phuong trinh vi phan cua mo hinh function [theta_2d,x_2d] Inverted_Pendulum(u,theta,theta_d,x,x_d)
%% Con lac nguoc tren xe x_2d = (u+m*l*sin(theta)*(theta_d)^2- m*g*cos(theta)*sin(theta))/(M+m-m*(cos(theta))^2); theta_2d = (u*cos(theta)-(M+m) *g*sin(theta)
+m*l*(cos(theta)*sin(theta))*theta_d)/(m*l*(cos(theta))^ 2-(M+m)*l);
Kết nối các khối trong hệ thống
Hình 2.14 Sơ đồ hệ thống bộ điều khiển mờ cho hệ xe con lắc ngược
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.15 Quy tắc mờ Sugeno
Hình 2.16 Tập mờ ngõ vào góc lệch trên Matlab
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.17 Tập mờ ngõ vào vận tốc góc trên Matlab
Hình 2.18 Tập mờ ngõ vào vị trí xe x trên Matlab
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.19 Tập mờ ngõ vào vận tốc xe x trên Matlab
Hình 2.20 Tập mờ ngõ ra là lực điều khiển u trên Matlab
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.21 Xây dựng hệ quy tắc mờ trên Matlab
Hình 2.22 Mặt đặc tính mờ của hệ sau khi thiết kế
Cài đặt thời gian mô phỏng
Chọn Fixed step với thời gian lấy mẫu là 0.01s.
Chọn thời gian mô phỏng là 45s.
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Kết quả mô phỏng
Tín hiệu đặt cho vị trí xe được tạo bởi khối tạo xung Pulse Generator với độ lớn (amplitude) bằng 1 (m), chu kì 40s, độ rộng xung 50% và trễ pha 5s.
Hình 2.23 Đáp ứng vị trí xe với bộ điều khiển Fuzzy – PID
Hình 2.24 Đáp ứng góc lệch con lắc với bộ điều khiển Fuzzy – PID
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID
Hình 2.25 Sai số đáp ứng vị trí xe với bộ điều khiển Fuzzy – PID
Hình 2.26 Tín hiệu điều khiển của bộ điều khiển Fuzzy-PID
Kết luận
Dựa vào kết quả mô phỏng từ Hình 2.23 và Hình 2.24, khi con lắc được đặt ở vị trí ban đầu x = 0 và góc lệch θ = 0, giá trị mong muốn đặt là sp = 1 (m).
CHƯƠNG 2 THIẾT KẾ BỘ ĐIỀU KHIỂN FUZZY PID giây, giá trị góc lệch về 0 ° và vị trí về vị trí x = 1, tương ứng với cân bằng thẳng đứng của hệ ở vị trí cài đặt Khi giảm vị trí cài sp = 0 ở t = 20s, bộ điều khiển mờ xuất 1 tín hiệu u để chỉnh định hệ thống, giúp hệ thống đáp ứng ổn định.
THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Lý thuyết về mang thần kinh
Mạng nơ-ron nhân tạo (Neural Network) là một chuỗi thuật toán được thiết kế để phát hiện các mối quan hệ trong tập dữ liệu, tương tự như cách hoạt động của não bộ con người Nó bao gồm các tế bào thần kinh nhân tạo, có thể là hữu cơ hoặc nhân tạo, và có khả năng thích ứng với mọi thay đổi từ đầu vào Nhờ vào tính linh hoạt này, mạng nơ-ron nhân tạo có thể cung cấp kết quả tối ưu mà không cần phải điều chỉnh lại các tiêu chí đầu ra.
Trong lĩnh vực tài chính, mạng nơ ron nhân tạo đóng vai trò quan trọng trong việc phát triển các quy trình như giao dịch thuật toán, dự báo chuỗi thời gian, phân loại chứng khoán, mô hình rủi ro tín dụng, và xây dựng chỉ báo độc quyền cùng công cụ phát sinh giá cả Các mạng nơ ron nhân tạo hoạt động tương tự như mạng nơ ron của con người, với mỗi nơ ron thần kinh là một hàm toán học có chức năng thu thập và phân loại thông tin dựa trên cấu trúc cụ thể.
Mạng nơ-ron có nhiều điểm tương đồng với các phương pháp thống kê như đồ thị đường cong và phân tích hồi quy Nó bao gồm các lớp chứa các nút liên kết, mỗi nút tương tự như một hàm hồi quy đa tuyến tính Trong một lớp tri giác đa lớp, các nút được sắp xếp theo các lớp liên kết Lớp đầu vào thu thập mẫu đầu vào, trong khi lớp đầu ra nhận các phân loại hoặc tín hiệu phản ánh từ các mẫu đầu vào.
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Cấu trúc mạng thần kinh
Hình 3.27 Cấu trúc của mạng thần kinh
Mạng Neural Network là sự kết hợp của các tầng perceptron, hay còn gọi là perceptron đa tầng Mỗi mạng Neural Network thường bao gồm ba loại tầng chính.
* Tầng input layer (tầng vào):
Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng.
* Tầng output layer (tầng ra):
Tầng bên phải cùng và nó thể hiện cho những đầu ra của mạng.
* Tầng hidden layer (tầng ẩn):
Tầng này nằm giữa tầng vào và tầng ra nó thể hiện cho quá trình suy luận logic của mạng.
Mạng neural nhân tạo có khả năng xấp xỉ hàm tùy ý dựa trên dữ liệu quan sát Tuy nhiên, việc áp dụng chúng đòi hỏi người dùng phải có kiến thức cơ bản về lý thuyết mạng nơron.
Lựa chọn mô hình dữ liệu là yếu tố quan trọng, phụ thuộc vào cách trình bày và ứng dụng của nó Mô hình này có độ phức tạp cao, dẫn đến nhiều thách thức trong quá trình học tập và áp dụng.
Thuật toán học thường có nhiều thỏa thuận và sẽ hoạt động hiệu quả khi được thiết lập với các tham số chính xác để huấn luyện trên dữ liệu.
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Xây dựng mô hình thu thập dữ liệu đầu vào và ra
Hình 3.28 Cấu trúc thu thập dữ liệu hệ thống cho mạng thần kinh
Dữ liệu cần thu thập để huấn luyện mạng neural được lấy từ các khối "to workspace", nhằm đưa tín hiệu ra workspace của Matlab, giúp việc xử lý và tính toán trở nên dễ dàng hơn.
Các tín hiệu thu thập gồm có “The”, “The_d”, “Vitri”, “Vitri_d” và
“u” điều khiển cho hệ thống.
Cách thiết lập khối “to workspace” để thu thập dữ liệu:
Hình 3.29 Thiết lập khối “To Workspace” để thu thập dữ liệu
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.30 Thiết lập thông số đầu vào thu thập dữ liệu
Dạng sóng tín hiệu đặt vị trí đầu vào Ngẫu nhiên, vị trí xe của hệ ở ngõ ra và gốc lệch Theta của xe con lắc ngược:
Hình 3.31 Thu thập dữ liệu đáp ứng vị trí xe
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.32 Thu thập dữ liệu về góc lệch con lắc
Thiết kế bộ điều khiển mạng thần kinh
Ta lựa chọn mạng thần kinh như sau:
Phương pháp học sử dụng là Phương pháp học có giám sát.
Sử dụng mạng truyền thẳng nhiều lớp.
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Luật cập nhật trọng số
Thuật toán Levenberg-Marquardt (L-M) được sử dụng để đạt được tốc độ huấn luyện bậc hai của mạng mà không cần tính toán ma trận Hessian, giúp tăng tốc độ hội tụ so với thuật toán suy giảm độ dốc L-M dựa trên triển khai bậc hai của khai triển Taylor.
- Trong đó: p: là khoảng cách lân cận trong khai triển
( ) g W :là vector gradient của E theo W
H W là ma trận đạo hàm bậc 2
- Tại điểm cần tìm g W ( ) 0 và H W ( ) xác định dương.
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
- Để tránh bước dịch chuyển quá lớn:
Chương trình huấn luyện cho mạng Neural Network:
Bảng 3.3 Code chương trình huấn luyện cho mạng thần kinh
% Compile by Ly Phi Cuong k = length(u); x = [The(2:k)';The_d(2:k)';Vitri(2:k)';Vitri_d(2:k)']; d = [u(2:k)']; hiddenLayerSize = 30;
% Phep toan lan truyen nguoc Levenberg-Marquardt mynet = fitnet(hiddenLayerSize,'trainlm');
% Lua chon cac chuc nang chuyen giao noi bo
% Hàm chuc nang chuyen doi sigmoid ??i x?ng. mynet.layers{1}.transferFcn = 'tansig';
The function for the linear transfer in the neural network is defined as 'purelin' The training parameters include a maximum of 100 epochs and a learning rate of 0.01, indicating that a higher learning rate accelerates the training process Additionally, the training goal is set to minimize the training error to 7.
[mynet,tr] = train(mynet,x,d); gensim(mynet,0.01)
Tiếp theo ta cho chạy mạng thần kinh để bắt đầu huấn luyện cho mạng thần kinh học theo bộ điều khiển Fuzzy PID:
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.35 Mạng thần kinh sau khi đã huấn luyện xong
Kết quả mô phỏng
Thiết lập tính hiệu đầu vào cho 2 bộ điều khiển đều như nhau:
Hình 3.36 Thiết lập tín hiệu ngõ vào cho mạng thần kinh 3.5.1 Dùng mạng thần kinh thay thế cho bộ điều khiển Fuzzy – PID
Hình 3.37 Mạng thần kinh thay thế bộ điều khiển Fuzzy PID
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.38 Setpoint đầu vào vị trí xe dạng Step
Hình 3.39 Đáp ứng vị trí xe với bộ điều khiển thần kinh với tín hiệu vào Step
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.40 Đáp ứng góc lệch con lắc với bộ điều khiển thầm kinh với tín hiệu vào
Hình 3.41 Sai số đáp ứng vị trí xe với bộ điều khiển thần kinh với tín hiệu vào hàm Step
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.42 Tín hiệu điều khiển u của bộ điều khiển thần kinh với tín hiệu vào hàm Step
3.5.2 So sánh sai số giữa bộ điều khiển Fuzzy – PID và mạng thần kinh
Khi tín hiệu đầu vào tác động đồng thời, chúng ta sẽ quan sát sai số tín hiệu đầu ra từ hai bộ điều khiển để đánh giá chất lượng training của Mạng thần kinh.
Hình 3.43 Sai số giữa đáp ứng vị trí của bộ điều khiển thần kinh và Fuzzy-PID với tín hiệu đặt hàm Step
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Hình 3.44 Sai số giữa đáp ứng góc lệch của bộ điều khiển thần kinh và bộ điều khiển
Fuzzy-PID với tín hiệu đặt hàm Step
Hình 3.45 Sai số tín hiệu điều khiển xe của bộ điều khiển thần kinh và bộ điều khiển
Fuzzy-PID với tín hiệu đặt là hàm Step
CHƯƠNG 3 THIẾT KẾ BỘ ĐIỀU KHIỂN THẦN KINH
Kết luận
Qua việc phân tích đồ thị sai số giữa tín hiệu đo được từ bộ điều khiển Fuzzy PID và Mạng thần kinh, kết quả cho thấy sai số ở ngõ ra vị trí và góc lệch Theta của xe con lắc rất nhỏ, chỉ khoảng 10^(-3) Mặc dù sai số trong tín hiệu điều khiển của xe có phần lớn hơn khi xe chuyển động từ vị trí này sang vị trí khác, nhưng nhìn chung, Mạng thần kinh đã được huấn luyện và đáp ứng tốt với tín hiệu ở ngõ ra của hệ thống xe con lắc ngược.
THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA
Lý thuyết về giải thuật di truyền
Giải thuật di truyền (Genetic Algorithm - GA), được giới thiệu bởi Holland vào năm 1975, là một phương pháp tìm kiếm lời giải tối ưu dựa trên nguyên tắc mô phỏng quá trình tiến hóa và quy luật di truyền trong tự nhiên Bản chất của GA là thực hiện tìm kiếm theo xác suất, giúp tối ưu hóa các giải pháp hiệu quả.
Giải thuật di truyền (GA) và các giải thuật tiến hóa khác dựa trên quan điểm rằng tiến hóa tự nhiên là quá trình tối ưu và hoàn hảo nhất Quan niệm này, mặc dù không thể chứng minh, nhưng phù hợp với thực tế khách quan, cho thấy rằng thế hệ sau luôn phát triển và hoàn thiện hơn thế hệ trước Tiến hóa tự nhiên diễn ra nhờ hai quá trình chính: sinh sản và chọn lọc tự nhiên, trong đó các thế hệ mới thay thế thế hệ cũ Những cá thể phát triển và thích ứng tốt với môi trường có khả năng tồn tại cao hơn, trong khi những cá thể không thích ứng sẽ bị loại bỏ Sự thay đổi của môi trường là động lực chính cho tiến hóa, đồng thời tiến hóa cũng ảnh hưởng đến sự biến đổi của môi trường.
Trong quá trình tiến hóa, các cá thể mới sinh ra từ sự lai ghép giữa thế hệ cha mẹ, mang theo các tính trạng di truyền từ cha mẹ và có thể xuất hiện những tính trạng hoàn toàn mới do đột biến Di truyền và đột biến đóng vai trò quan trọng ngang nhau trong tiến hóa, mặc dù đột biến xảy ra với xác suất thấp hơn Các thuật toán di truyền, bao gồm GA, mô phỏng ba quá trình cơ bản của tiến hóa tự nhiên: chọn lọc tự nhiên, lai ghép và đột biến.
GA khác biệt với các giải thuật tối ưu hóa và tìm kiếm thông thường ở chỗ nó làm việc với một quần thể gồm nhiều NST, cho phép tìm kiếm nhiều điểm cực trị cùng lúc Thông qua các phép toán di truyền, GA có khả năng trao đổi thông tin giữa các đỉnh cực trị, từ đó giảm thiểu nguy cơ rơi vào cực trị cục bộ.
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA hàm mục tiêu để định hướng quá trình tìm kiếm mà không cần bất cứ thông tin gì khác Do các đặc điểm trên, GA có khả năng giải quyết rất hiệu quả các bài toán tìm cực trị hàm phi tuyến, không khả vi, không liên tục.
Một số lĩnh vực ứng dụng của GA bao gồm kỹ thuật như thiết kế động cơ và máy bay, tối ưu hóa quy trình, hoạch định hoạt động cho robot, phát triển hệ thống phân loại, hệ thống học, nhận dạng mẫu, huấn luyện mạng thần kinh và chỉnh định hệ mờ.
Cấu trúc của giải thuật di truyền
Để áp dụng thuật toán di truyền (GA) vào tối ưu hóa, trước tiên cần khởi động và tạo quần thể ban đầu Tiếp theo, đánh giá độ thích nghi của các cá thể trong quần thể và lưu trữ thông tin này Sau đó, chương trình mã hóa các cá thể thành nhiễm sắc thể, có thể là chuỗi nhị phân, thập phân, tự nhiên hoặc thực Sau khi mã hóa, chương trình thực hiện chọn lọc, lai ghép và đột biến theo tỷ lệ đã định Cuối cùng, các nhiễm sắc thể được giải mã để thu được các cá thể mới, và độ thích nghi của chúng sẽ được đánh giá Quá trình này lặp lại cho đến khi đạt được cực trị của hàm thích nghi.
Bắt đầu Khởi động Đánh giá
Lai ghép Đột biến Giải mã Đánh giá
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA
Trong đề tài nhóm, chúng em áp dụng mã hóa và giải mã thập phân Hàm thích nghi được sử dụng để đánh giá các cá thể, trong đó cá thể có độ thích nghi tốt hơn sẽ sống sót qua quá trình chọn lọc tự nhiên và có cơ hội lai ghép nhiều hơn Hàm thích nghi mà nhóm em chọn là hàm cực tiểu J e e u 1, ,2 .
Hàm mục tiêu được chọn như sau:
Hệ số C được thêm vào nhằm đảm bảo hàm mục tiêu J e e u 1, ,2 luôn dương Các giá trị e e u 1 , , 2 đại diện cho tín hiệu sai số của đáp ứng góc lệch con lắc, sai số vị trí xe và tín hiệu điều khiển u Trọng số 15000, 10000 và 0.02 được xác định thông qua phương pháp thử sai.
Phương pháp chọn lọc sắp hạng tuyến tính (Linear Ranking Selection) là một kỹ thuật trong đó các cá thể được sắp xếp theo độ thích nghi, với cá thể tốt nhất nhận hạng N và cá thể xấu nhất nhận hạng 1 Xác suất chọn lọc của mỗi cá thể tỷ lệ thuận với hạng của nó, cho phép cá thể có hạng cao hơn có khả năng tồn tại và sinh sản nhiều hơn so với các cá thể hạng thấp.
Phương pháp lai ghép được chọn là lai ghép hai điểm với tỷ lệ 0.9, trong khi phương pháp đột biến là đột biến đều với tỷ lệ 0.1.
Lý thuyết về bộ điều khiển PID dùng GA
Bộ điều khiển PID là một trong những giải pháp cổ điển trong lĩnh vực điều khiển tự động Việc tinh chỉnh thông số của bộ điều khiển PID một cách tối ưu là rất quan trọng, nhằm đảm bảo sai số xác lập, thời gian quá độ và độ vọt lố đều nằm trong giới hạn cho phép theo yêu cầu thiết kế.
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA sai, phương pháp Ziegler – Nichols…Những phương pháp này tuy đơn giản nhưng chất lượng của bộ điều khiển PID sau khi tinh chỉnh không cao Đối với những bài toán cần tìm lời giải tối ưu như thế này thì giải thuật di truyền GA là một phương pháp được đánh giá cao với kết quả chất lượng điều khiển được đảm bảo và thời gian tiêu tốn là “chấp nhận được”. Để áp dụng GA tìm lời giải tối ưu cho bài toán tinh chỉnh thông số bộ điều khiểnPID, mã hoá các thông số P, I, D của bộ điều khiển thành các NST, sau đó tiến hành chạy chương trình GA để đánh giá độ thích nghi, chọn lọc, lai ghép và đột biến…thực hiện vòng lặp này cho đến khi cực tiểu hoá hàm mục tiêu, khi đó hàm nghi đạt giá trị lớn nhất.
Thiết kết bộ điều khiển PID dùng GA cho hệ xe con lắc ngược
Hệ xe con lắc ngược là một hệ SIMO (single input and multi output) với hai biến trạng thái quan trọng là góc lệch con lắc (θ) và vị trí xe (x) Để điều khiển hiệu quả, nhóm chúng tôi đã chọn sử dụng hai bộ điều khiển PID cho hai biến trạng thái này Mục tiêu chính của việc điều khiển là duy trì góc lệch con lắc ở vị trí cân bằng thẳng đứng (θ = 0) và điều chỉnh vị trí xe theo tín hiệu đặt.
Hệ xe con lắc ngược PID góc lệch
Hình 4.47 Sơ đồ khối bộ điều khiển PID cho hệ xe con lắc ngược
Bảng 4.4 Chương trình GA clc; clear all
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA max_stall_generationP; epsilon=0.0001; pop_size ; npar = 6; range=[0 0 0 0 0 0;
100 100 100 100 100 100]; dec=[2 2 2 2 2 2]; sig=[4 4 4 4 4 4]; cross_prob = 0.9; mutate_prob = 0.1; elitism = 1; rho=0.02; jmin = 10^10; par=Init(pop_size,npar,range);
Terminal=0; generation = 0; stall_generation=0; for pop_index=1:pop_size,
Kd2=par(pop_index,6); sim('GA_Xe_con_lac_nguoc.slx');
J000*(e'*e) + 10000*(e1'*e1)+rho*(u'*u); fitness(pop_index)=1/(J+eps); end
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA
In the iterative process of genetic algorithm optimization, the initial value is set as J0 equal to the inverse of the best fit minus a small constant The algorithm continues to run until a terminal condition is met, incrementing the generation count with each iteration while displaying the current generation number alongside the maximum allowed generations The population is encoded using a decimal unsigned representation, followed by the selection of parents through linear ranking based on fitness, incorporating elitism and a specified proportion The selected parents undergo two-point crossover to generate offspring, which are then subjected to uniform mutation Finally, the population is decoded back into decimal unsigned format for evaluation, with a loop iterating through the population size to ensure all individuals are processed.
Kd2=par(pop_index,6); sim('GA_Xe_con_lac_nguoc.slx');
J000*(e'*e) + 10000*(e1'*e1)+rho*(u'*u); fitness(pop_index)=1/(J+eps); end;
[bestfit(generation),bestchrom]=max(fitness); if generation == max_generation
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID DÙNG GA
1))