• Xây dựng bộ điều khiển Trượt, LQR trên Kit STM32F4 để Pendubot tự swing-up và cân bằng.. Đề tài này học viên tập trung mô hình hóa, nhận dạng hệ thống, thiết kế mạch điện tử, xây dựng
TỔNG QUAN VỀ ĐỀ TÀI
Đặt vấn đề
Pendubot có cấu tạo vật lý như Hình 1.1, gồm 3 phần chính: phần cơ khí, mạch điện tử và thuật toán điều khiển Phương trình động học của Pendubot được xây dựng dựa trên phương trình Euler-Lagrange Pendubot là hệ phi tuyến, nên việc lựa chọn thuật toán điều khiển, sao cho chất lượng điều khiển là tốt nhất Khả năng thích nghi, khả năng chống nhiễu là cao nhất Những mục tiêu trên cũng là tiêu điểm của đề tài Đề tài này học viên tập trung mô hình hóa, nhận dạng hệ thống, thiết kế mạch điện tử, xây dựng bộ điều khiển swing-up dùng thuật toán Trượt, bộ điều khiển cân bằng LQR với mục đích đưa Pendubot từ vị trí cân bằng ổn định [pi/ 2;0] lên vị trí [pi/ 2;0] và giữ ổn định tại vị trí này
1.1.1 Các mục tiêu chính của đề tài :
− Mô hình hóa Pendubot dựa trên phương trình Euler-Lagrange
− Nhận dạng hệ Pendubot dùng phương pháp năng lượng
− Tìm hiểu phương pháp swing-up dùng thuật toán Trượt
− Tìm hiểu phương pháp cân bằng Pendubot dùng thuật toán LQR
− Thiết kế bộ điều khiển swing-up dùng thuật toán Trượt
− Thiết kế bộ điều khiển cân bằng dùng thuật toán LQR
− Thiết kế và thi công mô hình Pendubot
− Thực hiện điều khiển trên mô hình Pendubot thực, với mục tiêu là Pendubot này tự swing-up và tự cân bằng ổn định
− Đánh giá kết quả mô phỏng, kết quả điều khiển thực tế và hướng phát triển của đề tài
1.1.2 Phương pháp tiếp cận đề tài:
− Nghiên cứu lý thuyết điều khiển Trượt, LQR
− Mô hình hóa Pendubot dựa trên phương trình động học Euler-Lagrange
− Nhận dạng hệ Pendubot bằng phương pháp năng lượng
− Xâydựng bộ điều khiển swing-up, bộ điều khiển cân bằng, trên Matlab
− Mô phỏng mô hình Pendubot trên Matlab
− Thiết kế hệ thống Pendubot.
Các công trình liên quan
Từ khi mô hình Pendubot được xây dựng cho đến nay, Pendubot là một trong những mô hình tiêu biểu đặc trưng cho hệ phi tuyến Rất nhiều thuật toán điều khiển được đề xuất bởi các nhà nghiên cứu trong và ngoài nước như: LQR, Fuzzy, di truyền …Pendubot đã trở thành một mô hình phổ biến được các nhà nghiên cứu chọn làm đề tài nghiên cứu kha học, và kiểm chứng các thuật toán điều khiển, nhằm phục vụ cho công tác nghiên cứu, ứng dụng và giảng dạy Dưới đây là một số công trình liên quan tiêu biểu:
NO Authors Contribution Ref Year
1 Spong & Block Spong và Block đề xuất một phương pháp dựa trên kỹ thuật hồi tiếp tuyến tính
DanielJerome Block dùng phương pháp tuyến tính hóa một phần để sử dụng bộ điều khiển PD swing- up và dùng bộ điều khiển LQR để giữ cân bằng Pendubot
Xiao Qing Ma and Chun-Yi Su dùng thuật toán Fuzzy để điều khiển swing-up và giữ cân bằng
Michael Kwapisz dùng giải thuật Cascade control để điều khiển Pendubot của mình nhưng cũng chỉ mô phỏng trên máy tính
Zehar và Benmahammed dùng lý thuyết LMI để tìm hệ số tối ưu cho bộ điều khiển Trượt của, nhưng cũng mô phỏng trên máy tính
M.Zhang,& T.J.Tarn dùng bộ điều khiển Hybrid để điều khiển
M.W.Spong và các người bạn điều khiển Pendubot dựa trên phương pháp năng lượng
Các hình dạng Pendubot được thiết kế:
Hình 1.2 Pendubot đang ở trạng thái nghỉ
Hình 1.3 Pendubot được điều khiển cân bằng tại vị trí [ / 2;0]pi
Hình 1.4 Pendubot đang cân bằng tại vị trí [pi/ 2;0]
Hình 1.5 Quá trình swing-up của Pendubot
Từ các công trình nghiên cứu của các nhà khoa học từ [1] → [7], từ 1995 cho đến 2013 Các nhà khoa học đã không ngừng áp dụng các luật điều khiển hiện đại hơn vào Pendubot, với mong muốn sẽ cho đáp ứng tốt hơn, và kết quả không nằm ngoài sự mong đợi Nhưng hầu hết các công trình nghiên cứu đều dừng lại ở kết quả mô phỏng trên Matlab hay được chứng minh dưới dạng công thức toán học Vì vậy cần hơn nữa những đề tài nghiên cứu khoa học gắn liền giữa lý thuyết, mô phỏng và thực nghiệm, nhằm đề cao hơn nữa tính ứng dụng của lý thuyết điều khiển vào thực tiễn.
CƠ SỞ LÝ THUYẾT VÀ CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN PENDUBOT
Nguyên lý cấu tạo và mô hình toán học của Pendubot
Mô hình Pendubot gồm hai Link được ghép nối tiếp với nhau thay Link1 được kết nối với một Motor qua một khớp nối, khớp còn lại kết nối với Link2
Motor được cố định nhờ vào một đế giữ bằng kim loại Để kiểm soát góc quay của
Link1 và Link2 người ta gắn vào hai Encoder, Encoder1 dùng kiểm soát góc quay của Link1, Encoder2 dùng để kiểm soát góc quay của Link2 Cả Link2 và Link1 đều có thể xoay quanh trục quay 360 độ, Link2 thì tự do trong khi đó Link1 hoạt động được là nhờ vào moment của Motor Phương trình động học của Pendubot được mô tả như sau:
Hình 2.2 Mô hình động học Pendubot
Bảng tham số mô hình Pendubot:
STT Kí hiệu Chú thích Đơn vị
1 q 1 Góc quay của Link1 so với trục x ( rad ) 2 q 2 Góc quay của Link2 so với Link1 ( rad )
5 l c 2 Khoảng cách từ trục quay tới tâm của Link2 ( ) m 6 l c 1 Khoảng cách từ trục quay tới tâm của Link1 ( ) m 7 J 1 Moment quán tính của Link1 (kg m 2 ) 8 J 2 Moment quán tính của Link2 (kg m 2 )
2 1 1 2 1 1 2 2 1 1 2 os( ) os( ) sin( ) sin( ) sin( ) sin( ) sin( ) os( ) os( ) os( ) c c c c c c x l c q l c q q y l q l q q x l q l q q q l q q q y l c q l q c q q l q c q q
Từ phương trình (2.3) và (2.2) ta có:
(2.6) Cộng hai phương trình (2.5) và (2.6):
Thế kết quả của phương trình (2.7) vào phương trình (2.2) và viết lại dưới dạng:
V m gl q (2.8) Thế năng của Link2:
V m gl q m gl q q (2.9) Phương trình động năng của hệ:
Phương trình thế năng của hệ:
Dùng phương trình Euler-Lagrange:
( c ).( os os ) ( c ) sin c sin( ) q q m l l q q c q q c q m l m l g q m gl q q
Viết lại phương trình (2.12) dưới dạng sau:
(2.13) Lấy đạo hàm (2.13) theo thời gian:
(2.18) Lấy đạo hàm (2.15) theo thời gian:
( ) os 2 os sin 2 sin d L q q q q c q q c q dt q q q q q q
Lấy dạo hàm (2.16) theo thời gian:
Từ phương trình (2.14) ta có:
( ) os 2 os sin 2 sin os os( )
( ) os sin sin( ) sin( d L L q q q q c q q c q dt q q q q q q q gc q gc q q d L L q q q c q q q q q q q dt q q q q
( os ) sin sin sin os( ) 0 c q q c q q q q q q q gc q gc q q c q q q q q q q q q q q gc q q
( os ) sin os( ) 0 c q q c q q q q q q q gc q gc q q c q q q q q gc q q
Viết lại phương trình (2.23) dưới dạng ma trận :
Từ phương trình (2.25) triển khai và viết lại dưới dạng:
Các phương pháp điều khiển Pendubot
Hiện nay có rất nhiều thuật toán điều khiển được đề xuất cho việc xây dựng bộ điều khiển cho hệ Pendubot như: bộ swing-up dùng phương pháp năng lượng, thuật toán Trượt, thuật toán PD, …, với bộ điều khiển cân bằng LQR, Fuzzy, Trượt , nhưng trên cơ bản để đưa Pendubot từ vị trí [pi / 2;0] lên vị trí [ pi / 2;0] gồm các bước sau:
− Bộ điều khiển swing-up đưa Pendubot từ vị trí [pi / 2;0] lên vị trí
(pi/ 2) q 1 (pi/ 2) , ( q 2 ) như Hình 1.5 , với 0.2 (rad)
− Bộ điều khiển cân bằng đưa hệ từ vị trí[(pi/ 2) q 1 (pi/ 2),( q 2 )] lên vị trí [ pi / 2;0] như Hình 1.3.
Lý thuyết điều khiển tối ưu LQR
Điều khiển tối ưu là một phương pháp xác định luật điều khiển, cho một hệ thống động cho trước, sao cho tối thiểu hóa một chỉ tiêu chất lượng nào đó, tùy thuộc vào từng bài toán cụ thể mà chúng ta chọn chỉ tiêu chất lượng cần cực tiểu cho phù hợp Điều khiển tối ưu được phát triển trên cơ sở toán học của phương pháp biến phân, được phát triển bởi các nhà khoa học Bernoulli, Euler-Lagrange,
Weiertrass… Để sử dụng lý thuyết điều khiển tối ưu LQR trước hết cần tuyến tính hóa hệ thống tại điểm làm việc, và mô tả hệ thống dưới dạng phương trình trạng thái có dạng sau: x Ax Bu với x[ ,x x 1 2 ] ,x n T u[ ,u u 1 2 ]u n T (2.31) Chọn hàm mục tiêu:
Với Q là ma trận trọng số xác định dương, R là ma trận xác định dương
K R B P (2.34) Và P là nghiệm xác định dương của phương trình đại số Ricatti:
PAA P Q PBR B P (2.35) Sau đây là phần chứng minh luật điều khiển tuyến tính cho bởi phương trình
(2.31) là luật điều khiển tối ưu Nếu ma trận K được xác định để tối thiểu hóa chỉ tiêu chất lượng J thì luật điều khiển u t ( ) sẽ tối ưu với mọi trạng thái ban đầu x(0)
( ) x AxBKx ABK x (2.36) Thay phương trình (2.33) vào (2.32)
J x Qx x K RKx dt x Q K RK xdt
V x x Px V x x (2.38) Trong đó P là ma trận vuông xác định dương
Lấy đạo hàm V x ( ) theo thời gian, kết hợp với (2.36) ta có:
V x x Px x Px x Px V x x A BK Px x Px x P A BK x
Theo tiêu chuẩn ổn định Lyapunov V x ( )0 thì V x( )0 Đặt V x d ( x px T ) x Q T ( K RK x T )
Với ma trận Q, R là ma trận xác định dương nên (QK RK T ) cũng xác định dương
Suy ra V x( )0 Từ (2.40) và (2.39) ta có:
Theo tiêu chuẩn ổn định thứ hai của Lyapunov, nếu ma trận ( ABK ) ổn định thì sẽ tồn tại một ma trận xác định dương P thỏa phương trình (2.41)
Hàm J có thể xác định lại như sau:
(2.42) Đặt RT T T phương trình (2.41) trở thành :
Biểu thức trên đạt giá trị cực tiểu khi [TK(T T ) 1 B P T ] [ T TK(T T ) 1 B P T ] đạt giá trị cực tiểu và khi đó TK (T T ) 1 B P T và ma trận K là:
K T T B PR B P (2.44) Tín hiệu điều khiển tối ưu u t( ) K x t ( ) R B P x t 1 T ( )
Trong khi đó ma trận P phải thoả phương trình sau:
Khi P không thay đổi theo thời gian P 0 , ta có phương trình đại số Riccati:
Trình tự giải bài toán toàn phương tuyến tính:
Bước 1: Thành lập phương trình trạng thái tuyến tính: x Ax Bu
Xác định các thông số của ma trận A, B
Bước 2: Xác định ma trận trọng lượng Q, R từ chỉ tiêu chất lượng J cho dưới dạng toàn phương tuyến tính
Bước 3: Tìm nghiệm P của phương trình đại số Riccati:
Bước 4: Chỉ tiêu chất lượng tối ưu đối với hệ dừng: min
Bước 5: Luật điều khiển tối ưu:
Lý thuyết điều khiển Trượt
Điều khiển trượt của hệ thống động đã có một lịch sử lâu dài về mặt lý thuyết và có nhiều sự phát triển trên thực tế Trong lý thuyết điều khiển, điều khiển trượt là một dạng của điều khiển cấu trúc biến đổi Đây là một phương pháp điều khiển phi tuyến làm thay đổi động học của hệ thống phi tuyến, bằng cách áp dụng vào đó một phương pháp điều khiển chuyển đổi với một tần số cao Luật điều khiển hồi tiếp trạng thái không là một hàm liên tục theo thời gian Thay vào đó, nó chuyển đổi từ một cấu trúc liên tục sang một dạng khác dựa trên vị trí hiện tại của không gian trạng thái
Hình 2.3 Quỹ đạo pha trên mặt trượt
Nói tóm lại, chế độ trượt là chuyển động của quỹ đạo pha của hệ thống dọc theo một đường thẳng, mặt phẳng, bề mặt của không gian trạng thái đã được chọn trước đó gọi là mặt trượt Điều khiển trượt là thiết kế bộ điều khiển nhằm đưa quỹ đạo pha của hệ thống về mặt trượt đã chọn và duy trì trên mặt trượt này một cách bền vững
Các hệ thống cần điều khiển trên thực tế có thể có mô hình không chính xác
Sự không chính xác đó có thể đến từ các giá trị không xác định được trong thực tế về đối tượng (ví dụ như là các thông số của đối tượng mà ta chưa biết), hoặc là từ việc ta biểu diễn động học của hệ thống theo dạng đã đơn giản hóa (ví dụ như là mô hình hóa lực ma sát như là dạng tuyến tính, v.v…) Tuy nhiên, để thiết kế được bộ
16 điều khiển trượt điều quan trọng là phải xác định được mô hình chính xác của đối tượng điều khiển Để giải quyết vấn đề này, ta có thể áp dụng các phương pháp nhận dạng đối tượng: dùng mạng nơron, dùng mạng mờ,phương pháp năng lượng v.v…
Xét hệ thống phi tuyến có dạng :
X x x x y - tín hiệu đầu ra u- tín hiệu đầu vào n- bậc của hệ thống
Các hàm f f X , g g X là các hàm phi tuyến không biết trước nhưng biết trước chặn trên, chặn dưới của chúng min max, 0 min max f f f g g g gọi r là tính hiệu đặt Giả sử r có đạo hàm theo t đến cấp n Ta định nghĩa :
Mục tiêu điều khiển là xác định luật điều khiển u sao cho sai lệch tiến về không khi t định nghĩa hàm trượt:
Các hệ số a a 0, 2, ,a n 2 phải được chọn sao cho phương đặc trưng có các nghiệm âm
2 1 0 0 n n p a n p a pa (2.51) Trong không gian trạng thái n chiều, Phương trình S 0 xác định một mặt cong được gọi là mặt trượt Luật điều khiển u được xác định sao cho S 0 trong khoảng thời gian hữu hạn Trên mặt trượt S 0 , vì tất cả các nghiệm của phương trình đặc trưng đều có các nghiệm mang phần thực âm nên E 0 , khi t Các quỹ đạo pha của hệ thống được đưa về mặt trượt Bên trên mặt trượt, quỹ đạo pha bám theo điểm X d một cách tiện cận Để xác định luật điều khiển ta lấy đạo hàm mặt trượt:
Sử dụng phương pháp Lyapunov, chọn hàm Lyapunov xác định dương có dạng:
Lấy đạo hàm V theo thời gian:
V SS (2.54) Để hệ thống ổn định thì V xác định dương và Vxác định âm Chọn luật điều khiển u sao cho:
Khi S 0 thì S0 Khi S 0 thì S0 Khi S 0 thì S0
Có thể chọn: S sign S ( ) với 0 và
(2.55) Từ phương trình (2.47), (2.52), (2.55) ta có:
Với là hằng số dương Giá trị của được chọn sao cho trong trường hợp xấu nhất quan hệ SS 0 khi S 0 vẫn luôn thõa mãn
Luật điều khiển u đưa quỹ đạo pha của hệ thống về mặt trượt và duy trì bền vững trên mặt trượt này
Hình 2.4 Quỹ đạo pha tiến về mặt trượt
Bên cạnh đó, chúng ta phải chú ý rằng bộ điều khiển không liên tục tại
0 s Do ảnh hưởng của quá trình lấy mẫu, việc chuyển đổi và thời gian trễ trong thiết bị được sử dụng để thực hiện bộ điều khiển, và ảnh hưởng do các phương tiện mô phỏng được sử dụng để mô hình hóa hệ thống … Nên điều khiển trượt bị hiện tượng chattering
Hình 2.5 cho thấy thời gian trễ có thể gây ra hiện tượng chattering như thế nào Nó vẽ một quỹ đạo trong vùng s 0 hướng thẳng đến mặt trượt s 0 Đầu tiên nó chạm đến mặt trượt tại một điểm a Trong bộ điều khiển trượt lý tưởng, quỹ đạo sẽ bắt đầu truợt lên mặt trượt từ điểm a này Nhưng trên thực tế do có thời gian trễ giữa thời gian hàm sign s ( ) và thời gian chuyển đổi của bộ điều khiển, trong suốt khoảng thời gian này quỹ đạo đã vượt qua mặt trượt vào vùng s 0
Hiện tượng Chattering dẫn đến việc chính xác trong điều khiển thấp, làm phát nhiệt trong các thành phần công suất dẫn đến hiệu suất kém, mài mòn các thành phần cơ khí Nó cũng làm giảm chất lượng điều khiển của hệ thống thậm chí còn có thể dẫn đến việc mất ổn định
Có nhiều cách để tránh hiện tượng chattering như thay thế hàm sign s ( )bằng hàm sat s ( ), signum s ( ) Dưới đây là một số hàm thông dụng:
Hình 2.6 Các hàm thông dụng trong điều khiển trượt
Với K s là độ lợi trượt
Các bước thiết kế bộ điều khiển:
Bước 1 : Thành lập phương trình đặc trưng của hệ thống có dạng:
Bước 2: Xác định sai số e x x d
Bước 3: Xác định mặt Trượt S:
Bước 4: Lấy dạo hàm mặt trượt
Bước 5: Giải đa thức đặc trưng của mặt trượt tìm các hệ số a a 0, 2, ,a n 2
Bước 6: Chọn s sign s( ) ,0 Luật điều khiển có dạng sau:
MÔ HÌNH PENDUBOT VÀ NHẬN DẠNG MÔ HÌNH
Mô hình cơ khí của Pendubot
Mô hình Pendubot sau khi thiết kế có kết quả như sau:
Hình 3.1 Sơ đồ khối Pendubot
− Mô hình Pendubot gồm: hai thanh nhôm, hai Encoder và một đế giữ Pendubot Thanh nhôm số một gọi là Link1 dài 150mm, nặng 210g, thanh số hai gọi là Link2 nặng 200g dài 220mm, đế giữ Pendubot 250mm x 300mm nặng 2kg
Hai Endcoder, một Encoder 5000 xung/vòng, một Encoder 2000 xung/vòng Mô hình cơ khí của Pendubot khá đơn giản, nhưng khi thiết kế cần quan tâm một số vấn đề như: tỷ lệ chiều dài giữa Link1 và Link2, khối lượng của hai Link, độ phân giải của encoder
Nếu Link1 quá dài so với link2 thì khi Pendubot swing-up từ vị trí [pi/ 2; 0] lên [pi/ 2; 0] với vận tốc cao, khi Link1 dừng đột ngột tại vị trí
/ 2 pi , Link2 tiếp tục chuyển động qua vị trí 0 với vận tốc cao, làm lệch điểm làm việc của bộ điều khiển cân bằng LQR vốn đã được tuyến tính hóa tại
[pi/ 2; 0], điều này dẫn đến hệ thống mất ổn định Ngược lại nếu Link1 quá ngắn, thì khi Pendubot swing-up từ vị trí [pi/ 2; 0]lên vị trí [ / 2; 0]pi sẽ gặp hiện tượng Link2 đã vượt qua vị trí 0, trong khi đó Link1 chưa đến vị trí pi / 2
Khối lượng của Link1 và Link2 cũng là một vấn đề cần được quan tâm
Nếu khối lượng của hai Link quá nặng dẫn đến trọng lực đặt lên hai Link lớn, có nghĩa là, hai Link luôn có xu hướng bị kéo lệch khỏi điểm cân bằng Việc điều khiển trở nên khó hơn, nếu có thêm sai số mô hình hay sai số trong thiết kế cơ khí
Ngoài hai vấn đề trên, thì độ phân giải của encoder cũng góp phần không nhỏ đến chất lượng điều khiển của hệ thống Nếu độ phân giải của encoder quá nhỏ sẽ dẫn đến sai số lớn khi q 1 và q 2 thay đổi trong phạm vi nhỏ, nhất là tại điểm cân bằng.Vì vậy nó làm chất lượng điều khiển trở nên kém hơn.
Sơ đồ kết nối Pendubot
Hình 3.2 Sơ đồ kết nối Pendubot
Hệ Pendubot có khả năng swing-up và cân bằng được là nhờ vào moment tác động từ Motor 24V Motor được điều khiển thông qua mạch công suất cầu H driver bằng xung PWM từ Kit STM32F4 Ngoài xung PWM, Kit STM32F4 còn tạo ra hai tín hiệu điều khiển khác là: tín hiệu Enable dùng để mở cổng cho mạch cầu H driver, và tín hiệu Dir dùng để đảo chiều Motor
Các góc quay của Link1, Link2 được đo bằng hai Encoder Tín hiệu từ hai Encoder được đưa về Kit điều khiển, thông qua các cổng đệm, tín hiệu này dùng để tính toán vị trí và vận tốc của Link1, Link2 Tín hiệu điều khiển được xác định nhờ vào vị trí, vận tốc và bộ thông số của Pendubot Tín hiệu điều khiển được quy đổi về dạng điện áp để điều khiển Pendubot
Tất cả các tín hiệu như: tín hiệu điều khiển u, góc quay Link1, góc quay Link2, vận tốc Link1, vận tốc Link2, được truyền qua cổng nối tiếp RS232 lên máy tính để phục vụ cho việc thu thập dữ liệu và vẽ đồ thị Công việc truyền dữ liệu từ Kit lên máy tính, được thực hiện trong chu kỳ điều khiển Trong khi đó, nếu trong một chu kỳ điều khiển truyền quá nhiều dữ liệu, sẽ dẫn đến thời gian truyền dữ liệu lớn hơn thời gian của chu kỳ điều khiển, sẽ xảy ra hiện tượng bộ điều khiển cập nhật sai các giá trị đầu vào, làm hệ thống mất ổn định Để khắc phục vấn đề trên ta có thể tăng tốc độ truyền hoặc dùng chế độ truyền nối tiếp dùng DMA của STM32F407VG Trong luận văn này học viên dùng chế độ truyền nối tiếp sử dụng DMA của STM32F407VG
Bộ Power Supply được dùng để cung cấp nguồn 24V cho H driver điều khiển Motor, nguồn 5V cung cấp cho Kit STM32F4
Hình 3.3 Mô hình Pendubot sau khi gia công.
Hình 3.4 Sơ đồ Pendubot sau khi kết nối.
Nhận dạng mô hình Pendubot dùng phương pháp năng lượng
Để xây dựng được một bộ điều khiển hiệu quả chúng ta cần có một mô hình toán chính xác của hệ thống Để có một mô hình toán chính xác ta cần biết chính xác các thông số của hệ thống như: khối lượng, chiều dài, hệ số ma sát, các hằng số của động cơ DC, v.v… Tuy nhiên, vì một lý do nào đó chúng ta không thể xác định chính xác một vài hay toàn bộ các thông số nên ta phải tiến hành ước lượng các thông số của hệ thống
Việc ước lượng được thực hiện bằng cách kích thích hệ thống với tín hiệu thử đã biết và thu thập dữ liệu từ đáp ứng của hệ thống Dữ liệu đáp ứng này, sau đó sẽ được đưa vào mô hình toán của hệ thống để xác định các thông số chưa biết
Kit STM32F4 H driver Động cơ DC
Tín hiệu thử Pendubot PC q 1 q 2 u θ 1 … θ 5 u
Hình 3.5 Sơ đồ nhận dạng thông số mô hình.
Theo [1] đây là phương pháp sử dụng lý thuyết về năng lượng để hình thành các công thức để giải quyết vấn đề nhận dạng các thông số của hệ thống
Ta có: Động năng của hệ thống Pendubot là:
T ương tự thế năng của hệ là:
Từ hai phương trình toán học động năng và thế năng ta thấy cả động năng và thế năng đều tuyến tính theo các hệ số 1, , , , 2 3 4 5 ta có thể viết lại như sau:
Theo phương pháp năng lượng thì:
(3.6) Trong đó ( )E t i K t T ( ) i V t T ( ) i là tổng động năng và thế năng của hệ tại thời điểm t i và là moment tác động của động cơ:
DL DL t DL t DL t DL t
DL t DK t DV t Đặt d T DL T trong khoảng thời gian từ t k 1 cho đến t k ta có công thức sau:
(3.8) Để thực hiện việc nhận dạng này, ta dùng tín hiệu thử như Hình 3.6 và thu thập thông tin đáp ứng của hệ thống Pendubot Ta viết chương trình m-file trong Matlab để nhận dạng các thông số của hệ thống Trong đó ta sử dụng phương pháp tích phân hình thang lùi để tính tích phân và dùng phương pháp bình phương sai số để tình thông số mô hình
Hình 3.7 Đáp ứng tín hiệu ngõ ra với tín hiệu thử
B ảng thông số mô hình sau khi nhận dạng:
GIẢI THUẬT ĐIỀU KHIỂN HỆ PENDUBOT
Lưu đồ giải thuật
Hình 4.1 Lưu đồ giải thuật điều khiển Pendubot
Lưu đồ giải thuật điều khiển của Pendubot được thiết kế như Hình 4.1 Đầu tiên Pendubot được khởi tạo các giá trị như: vị trí ban đầu, vận tốc ban đầu, các biến sử dụng trong quá trình điều khiển Pendubot được thiết kế với một phím Start để báo hiệu quá trình điều khiển bắt đầu Nếu phím Start=0 Pendubot vẫn ở chế độ chờ Khi phím Start=1, Pendubot bắt đầu hoạt động với bộ điều khiển Swing-Up Trong quá trình swing-up các giá trị vận tốc, vị trí, luôn luôn được kiểm soát, để chuyển đổi tín hiệu điều khiển từ chế độ swing-up sang chế độ cân bằng
Nếu giá trị của q 11.5và q 2 0thì Pendubot chuyển sang chế độ điều khiển cân bằng với bộ điều khiển LQR Trong quá trình swing –up và cân bằng, trường hợp
1, 2 q q lệch xa vùng làm việc gây mất ổn định, ngay sau đó Pendubot được shutdown và rơi vào chế độ bảo vệ Pendubot sẽ bắt đầu lại chu kỳ điều khiển mới khi phím Start=0.
Xây dựng bộ điều khiển swing-up dùng thuật toán Trượt
Khai triển các phương trình sau:
(4.4) Với các thông số nhận dạng:
Từ phương trình (4.4) khai triển ta có:
(4.7) Thế phương trình (4.7) vào phương trình (4.5) và viết lại dưới dạng:
Tín hiệu điều khiển gồm hai thành phần sw và thành phần eq Chọn tín hiệu điều khiển:
Xây dựng bộ Điều khiển cân bằng LQR
Để áp dụng bộ điều khiển LQR vào hệ Pendubot thì hệ Pendubot cần phải được tuyến tính hóa tại điểm cân bằng và sau đó đưa về dạng:
(4.16) Triển khai phương trình (4.4) viết lại dưới dạng sau:
Tuyến tính hóa Pendubot tại điểm cân bằng q e [pi/ 2; 0;0;0], e 0: Trong đó :
1 2 1 3 2 os( ) sin( )( os( ) ) os ( ) f g gc q g g q c q q c q
2 2 1 3 2 os( ) sin( ) sin( ) os( ) os ( ) f gc q q g g q c q q c q
Với thông số mô hình ước lượng :
Ta có các ma trận sau:
Ma trận Q, R được chọn sau:
Lập trình m-file giải thuật toán LQR tìm các hệ số K cho luật điều khiển cân bằng Ta sử dụng công thức lqr(A,B,Q,R) để tính hệ số K hồi tiếp:
KẾT QUẢ MÔ PHỎNG VÀ THỰC NGHIỆM
Mô phỏng mô hình trên Matlab
Sau khi mô hình hóa hệ pendubot ở chương 2, và nhận dạng thông số của mô hình Pendubot ở chương 3.Thông qua đó, ta xây dựng một mô hình Pendubot trên Matlab Simulink Ta tiến hành mô phỏng hệ Pendubot với tín hiệu đầu vào u=0(không có bộ điều khiển), thu thập đáp ứng ngõ ra So sánh đáp ứng mô phỏng đã thu thập được và đáp ứng của mô hình thực Sau đó mô phỏng hệ Pendubot với bộ điều khiển swing-up dùng thuật toán Trượt, và bộ điều khiển cân bằng LQR đã thiết kế ở chương 4
5.1.1 Mô phỏng hệ Pendubot với tín hiệu đầu vào u=0:
Sau khi mô hình hóa và nhận dạng thông số hệ thống, ta sử dụng bảng thông số để xây dựng mô hình Pendubot trên Matlab :
Hình 5.1 Sơ đồ Simulink chi tiết của hệ Pendubot
Hình 5.2 Sơ đồ Simulink của hệ Pendubot với u=0
Thông số mô hình ước lượng :
Mô phỏng Pendubot với điều kiện đầu [q 10 pi/ 2,q 200],u0 như
Hình 5.3 Đây là điểm cân bằng ổn định của Pendubot, nên đáp ứng của hệ luôn giữ ổn định tại điểm cân bằng này Khi tác động một lực vào hệ, làm hệ lệch khỏi điểm cân bằng, nhưng sau một thời gian dao động hệ dừng lại tại điểm
[q pi/ 2,q 0]dưới tác dụng của trọng lực và lực ma sát
Hình 5.3 Đáp ứng của hệ Pendubot [q 10 pi/ 2,q 200],u0
Mô phỏng Pendubot với điều kiện đầu [q 10 pi/ 2,q 20 0.1],u0 như
Hình 5.4 và [q 10 pi/ 2,q 20 0.1],u0 như Hình 5.5 Đây là hai vị trí lân cận điểm cân bằng ổn định, nhằm quan sát đáp ứng tương quan giữa Link1 và Link2
Tại thời điểm đầu góc q 2 đang ở vị trí 0.1(rad) góc q 1 ở vị trí pi / 2, nhưng sau đo góc q 1có xu hướng tăng lên do khối lượng của Link2 đặt lên Link1, khi Link2 dao động tự do, nó kéo theo Link1 dao động, cả hai dao động cùng tần số Link1 dao động với biên độ nhỏ hơn Link2, do khối lượng và hệ số ma sát của Link1 lớn hơn Link2
Time(s) q2 ( rad) q10= -pi/2(rad) q20= 0 (rad)
Hình 5.4 Đáp ứng của hệ Pendubot [q 10 pi/ 2,q 20 0.1],u0
Hình 5.5 Đáp ứng của hệ Pendubot [q 10 pi/ 2,q 20 0.1],u0
Time(s) q2 ( rad) q10= -pi/2(rad) q20= 0.1(rad)
Time(s) q2 ( rad) q10= -pi/2(rad) q20= -0.1(rad)
Với tín hiệu đầu vào u=0 và [q 10 pi/ 2,q 200] như Hình 5.6, đây là điểm cân bằng không ổn định của hệ, nên hệ luôn luôn có xu hướng bị kéo lệch khỏi vị trí
[q pi/ 2,q 0] Khi tác động một lực vào hệ, làm hệ lệch khỏi điểm cân bằng thì hệ không tự trở về điểm [q 1 pi/ 2,q 20], mà dao động tắt dần quanh điểm
Hình 5.6 Đáp ứng của hệ Pendubot [q 10 pi/ 2,q 20 0],u0
Time(s) q2 ( rad) q10= pi/2(rad) q20= 0(rad)
Hình 5.7 Đáp ứng thực của mô hình Pendubot.
Hình 5.8 Đáp ứng mô phỏng của Pendubot Đáp ứng Hình 5.7 là đáp ứng của hệ thống thực với điều kiện đầu là [pi/ 2; pi/ 2] Ta dùng tay kéo Link2 tạo ra một góc lệch giữa Link1 và Link2 là
2 / 2 q pi , sau đó ta thả cho Link1 và Link2 chuyển động tự do Kit STM32F4 có
40 nhiệm vụ thu thập các dữ liệu, và gởi lên máy tính tạo thành một tập dữ liệu bao gồm: các giá trị thời gian, vị trí,vận tốc của Link1, Link2, và sau đó ta dùng Matlab vẽ tập dữ liệu này theo thời gian ta được Hình 5.7 Việc thu thập dữ liệu mô phỏng tại [ / 2;pi pi/ 2] của Pendubot trên máy tính, sẽ đơn giản hơn so với thu thập tập dữ liệu trên mô hình thực Sau khi có tập dữ liệu mô phỏng, ta vẽ đồ thị như Hình 5.8 Từ hai đáp ứng Hình 5.7 và Hình 5.8 ta có thể thấy hai đáp ứng cho kết quả tương tự nhau Từ đó ta có thể kết luận ta đã mô hình hóa và xây dựng đúng mô hình toán học của Pendubot
5.1.2 Mô phỏng hệ Pendubot với bộ điều khiển swing-up dùng thuật toán
Trượt và bộ điều khiển cân bằng LQR:
Bảng thông số mô hình:
Từ bảng thông số của mô hình, ta thiết kế bộ điều khiển swing-up dùng thuật toán Trượt, và bộ điều khiển cân bằng LQR Để kết hợp hai bộ điều khiển này lại với nhau, ta cần thêm một bộ điều khiển thứ 3 đó là bô điều khiển Switch Controller Bộ điều khiển này có chức năng chuyển mạch tín hiệu điều khiển, từ hai bộ điều khiển vào Pendubot, dựa trên các góc của Link1, Link2 Pendubot hoạt động với bộ điều khiển swing-up khi các góc nằm trong khoảng giá trị sau:
q 1(pi/ 2); ( q 2 ) Và Pendubot hoạt động với bộ điều khiển cân bằng khi (pi/ 2) q 1 (pi/ 2) , ( q 2 ) ; 0.2 rad
− Thông số điều khiển của bộ điều khiển Trượt của phương trình (4.15):
− Thông số bộ điều khiển LQR:K [-165.6503 -7.1181 -165.5051 -5.1798]
Hình 5.9 Bộ điều khiển LQR
Hình 5.10 Sơ đồ Simulink Pendubot và bộ điều khiển
Hình 5.11 Pendubot swing-up và cân bằng với bộ điều khiển Trượt, LQR Để kiểm tra tính ổn định và tính bền vững của bộ điều khiển tại điểm
[q pi/ 2,q 0], ta cộng thêm vào phương trình (2.24) một tín hiệu 2 có dạng xung vuông như Hình 5.12 Ta có thể thấy khi có tín hiệu 2 kích làm Pendubot lệch ra khỏi điểm cân bằng, nhưng sau đó bộ điều khiển cân bằng tự điều chỉnh Pendubot quay lại điểm cân bằng và duy trì bền vững tại điểm cân bằng
Khi cộng thêm tín hiệu 2, phương trình (2.24) được viết lại dưới dạng sau:
Với các ma trận ( ), ( , ), ( )D q C q q g q được định nghĩa trong (2.26), (2.28), (2.29)
Trong đó tín hiệu 1 là moment tác động của động cơ, 2 là moment tín hiệu kích vào khớp 2 của Pendubot làm Link2 lệch khỏi vị trí cân bằng
− Thông số điều khiển của bộ điều khiển Trượt của phương trình (4.15):
− Thông số bộ điều khiển LQR:K [-165.6503 -7.1181 -165.5051 -5.1798]
Hình 5.12 Sơ đồ simulink Pendubot, các bộ điều khiển, tín hiệu kích 2
Hình 5.14 Đáp ứng Pendubot với tín hiệu kích 2
Bảng thu thập số liệu của hệ thống sau 5 lần mô phỏng, của bộ điều khiển Trượt:
Số thứ tự Hệ số Hệ số k Hệ số k 1 Thời gian xác lập Độ vọt lố
− Hệ số , ,k k 1 càng lớn thì hệ tiến về vị trí [ / 2;0]pi càng nhanh, vọt lố càng cao thời gian xác lập càng ngắn
− Việc chọn Các hệ số , ,k k 1 quá lớn, sẽ dẫn đến luật điều khiển swing-up quá lớn đẩy hệ ra khỏi vùng làm việc và gây mất ổn định
− Việc chọn Các hệ số , ,k k 1 quá nhỏ, sẽ dẫn đến luật điều khiển swing-up không đủ lớn để đưa hệ từ vị trí [pi/ 2;0] lên vị trí ( / 2;0)pi
Điều khiển thực nghiệm Pendubot
Từ đáp ứng của hệ trong phần mô phỏng bộ điều khiển swing-up và bộ điều khiển cân bằng cho đáp ứng tốt với sai số xác lập gần như là 0, nhưng trên thực tế để điều khiển Pendubot lên vị trí [q 1 pi/ 2,q 2 0] còn phụ thuộc vào nhiều yếu tố như : nhiễu, sai số mô hình, vị trí ban đầu, chu kỳ điều khiển…
− Thông số điều khiển của bộ điều khiển Trượt của phương trình (4.15):
− Thông số bộ điều khiển LQR: K[-99.4133 - 4.2601 - 87.4779 - 2.6460]
Luật điều khiển swing-up và luật điều khiển cân bằng được thiết kế trên MatLab như Hình 5.15, sau đó được biên dịch sang ngôn ngữ C bằng công cụ của MatLab
Hình 5.15 Sơ đồ Simulink bộ điều khiển Trượt, LQR
Hình 5.16 Đáp ứng của góc q 1với bộ điều khiển Trượt, LQR
Hình 5.17 Đáp ứng góc q 2với bộ điều khiển Trượt, LQR
Hình 5.18 Đáp ứng tín hiệu điều khiển u với bộ điều khiển Trượt, LQR
Tương tự như trong phần mô phỏng, mô hình thực được kích tín hiệu thử 2 nhằm kiểm tra tính ổn định và tính bền vững của bộ điều khiển tại điểm
[q pi/ 2,q 0] Ta tạo một lực kích đủ lớn để làm Pendubot lệch ra khỏi điểm cân bằng như Hình 5.19 và Hình 5.20
− Thông số điều khiển của bộ điều khiển Trượt: k77,k 170,0.7
− Thông số bộ điều khiển LQR: K[-99.4133 - 4.2601 - 87.4779 - 2.6460]
Hình 5.19 Đáp ứng của góc q 1 khi có tín hiệu 2
Hình 5.20 Đáp ứng của góc q 2 khi có tín hiệu 2
Từ Hình 5.19 và Hình 5.20 khi ta tác động một lực làm Pendubot lệch ra khỏi điểm cân bằng, thì ngay sau đó bộ điều khiển cân bằng tự điều chỉnh Pendubot quay lại điểm [q 1 pi/ 2,q 20]
Bảng thu thập số liệu của bộ điều khiển Trượt cho quá trình chạy thực nghiệm:
Hệ số Hệ số k Hệ số k 1 Thời gian xác lập Độ vọt lố
− Từ các hệ số , ,k k 1của Bảng số liệu trên Ta có thể thấy Pendubot có thể swing-up và tiến về vị trí cân bằng [pi/ 2;0] với thời gian xác lập ngắn.Tuy nhiên, tại điểm cân bằng không ổn định này do tác dụng của trọng lực đặt lên cả
Link2 và Link1, nên luôn luôn có xu hướng đẩy hệ lệch khỏi điểm cân bằng Bộ điều khiển cân bằng phải điều chỉnh liên tục, nên đáp ứng của hệ vẫn còn dao động quanh vị trí cân bằng với biên độ 0.08 (rad)
− Khi hoạt động trong điều kiện có nhiễu tác động, bộ điều khiển cân bằng LQR luôn có thể đưa Pendubot về vị trí cân bằng, nếu không vượt quá xa điểm làm việc đã được tuyến tính hóa