You are on page 1of 3

Họ và tên SV: Vũ Minh Hiếu BÁO CÁO BỔ SUNG

MSSV: 20161592 HỌC PHẦN: ĐỒ ÁN II

Lớp ĐK & Tự động hóa 01 – K61 ĐỀ TÀI: Nghiên cứu thuật toán
consensus và ứng dụng trong bài
toán displacement-based formations

GIẢI THÍCH VỀ THUẬT TOÁN


+ Như ta đã biết, trong một hệ gồm N tác tử, xét trong không gian hai chiều thì 𝑝̇ 𝑖 = 𝑢𝑖 , với 𝑝𝑖 là vị trí
của tác tử, 𝑝𝑖 ∈ 𝑅 2 và 𝑢𝑖 là đầu vào điều khiển, 𝑢𝑖 ∈ 𝑅 2 .
+ Mỗi tác tử lại có thể đo được vị trí tương đối với các tác tử khác, nên ta đặt 𝑝𝑖𝑗 = 𝑝𝑗 − 𝑝𝑖
𝑇
+ Đặt 𝑝∗ = [𝑝1∗ 𝑇 , 𝑝2∗ 𝑇 , … , 𝑝𝑁∗ 𝑇 ] là vị trí mong muốn của các tác tử. Mục tiêu điều khiển là phải làm cho
𝑝𝑖 − 𝑝𝑗 → 𝑝𝑖∗ − 𝑝𝑗∗
+ Theo thuật toán Consensus, có thể đưa ra luật điều khiển 𝑢𝑖 = ∑(𝑝𝑗 − 𝑝𝑖 − 𝑝𝑗∗ − 𝑝𝑖∗ ) để làm cho
𝑝𝑖 − 𝑝𝑗 → 𝑝𝑖∗ − 𝑝𝑗∗
+ Tuy nhiên, khi định nghĩa ra vecto 𝑒𝑝 ≔ 𝑝 − 𝑝∗ , ta có một bộ điều khiển mới: 𝑒𝑝̇ = −(𝐿 ⊗ 𝐼2 ). 𝑒𝑝
đảm bảo cho 𝑒𝑝 → 0, tương đương với 𝑝 − 𝑝∗ → 0 nên 𝑝 → 𝑝∗ , đạt được vị trí mong muốn
+ Ở thuật toán sử dụng trên Matlab của bài nghiên cứu
- đầu tiên ta sẽ định nghĩa ra vị trí ban đầu của 20 tác tử, được thể hiện bằng ma trận p0
- định nghĩa vị trí mong muốn cho các tác tử, thể hiện dưới hai ma trận P(đội hình tròn) và A(đội
hình vuông).
- Tiếp theo, tự thiết lập ma trận liên thuộc cho các tác tử.
- Tính toán ma trận Laplace
- Sử dụng ode45 của Matlab để giải phương trình vi phân: 𝑒̇ = −(𝐿 ⊗ 𝐼2 ). 𝑒𝑝
 Phương trình này tương đương
(𝑝𝑖 −̇ 𝑃) = −(𝐿 ⊗ 𝐼2 ). (𝑝𝑖 − 𝑃)
⇔ 𝑝̇ 𝑖 = −(𝐿 ⊗ 𝐼2 ). (𝑝𝑖 − 𝑃)
Do P là hằng số nên 𝑃̇ = 0
 Lệnh ode45 của Matlab có cấu trúc như sau:
𝑜𝑑𝑒45(@𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛, 𝑡𝑖𝑚𝑒, 𝑦(0))
Trong đó:
 Ode45 có tác dụng giải phương trình vi phân bậc nhất, có dạng 𝑦̇ (𝑡) = 𝑓(𝑡, 𝑦(𝑡))
 @𝑓𝑢𝑛𝑡𝑖𝑜𝑛: phương trình vi phân, viết dưới dạng 𝑑𝑦𝑑𝑡 = 𝑦̇ (𝑡) = 𝑓(𝑡, 𝑦(𝑡))
 𝑡𝑖𝑚𝑒 = [𝑇0, 𝑇𝑒𝑛𝑑 ]: giải phương trình trong khoảng thời gian từ 𝑇0 tới 𝑇𝑒𝑛𝑑
 𝑦(0): giá trị ban đầu
 Đối với bài toán sắp xếp 20 tác tử thành 1 đường trònỨng với các thời gian khác trong
trong khoảng từ [0,150], ode45 sẽ giải ra cho chúng ta 150 giá trị của 𝑝𝑖 , là 150 vị trí khác
nhau của tác tử 𝑖 ứng với từng thời điểm. Khi t chạy tới 𝑇𝑒𝑛𝑑 = 150, thuật toán kết thúc
và vị trí của 𝑝𝑖 sẽ đạt được đúng 𝑃𝑖 như mong muốn(theo tính chất hội tụ của ma trận
Laplace)
- Cuối cùng là xuất ra các giá trị mà ode45 giải được truyền vào cho các tác tử, vẽ đường đi của các
tác tử đó, nối 150 vị trí của mỗi tác tử lại với nhau bằng các lệnh trong Plot.
- Tương tự cho thuật toán sắp xếp thành hình vuông
ƯU, NHƯỢC ĐIỂM CỦA BÀI TOÁN DISPLACEMENT-BASED POSITIONS
1) Ưu điểm
- Bài toán đơn giản, dễ hiểu, vì vậy mà thuật toán cũng ngắn gọn, không dài dòng
2) Nhược điểm
- Vị trí cuối cùng của mỗi tác tử không đạt đúng so với định nghĩa trong code, ví dụ đối với bài
𝜋
cos 10
toán xếp thành đường tròn, ta định nghĩa vị trí mong muốn của tác tử thứ hai là 20. [ 𝜋]=
sin 10
19,0211 13
[ ] nhưng kết quả, đối với tác tử số 2, vị trí xấp xỉ khoảng [ ]. Điều này cho ta thấy thuật
6,1803 7
toán displacement chỉ có thể giúp các tác tử đứng đúng đội hình mong muốn (xếp thành đúng
hình tròn và hình vuông) mà không giúp các tác tử đạt được đúng vị trí của nó trong hệ tọa độ
ban đầu. Nói cách khác, các tác tử chỉ đứng đúng vị trí đã nêu ra ở trong file lệnh ứng với hệ tọa
độ riêng của chúng mà thôi. Lý do thuật toán Displacement chỉ quan tâm tới vị trí tương đối giữa
các tác tử, mà không quan tâm tới vị trí riêng của từng tác tử trong hệ tọa độ ban đầu
3) Định hướng sau bài toán và cách giải quyết các vấn đề
- Phát triển thêm bài toán: Xếp 20 tác tử thành một đường tròn, sau 1 khoảng thời gian t, các tác
tử xếp thành hình vuông, sau 1 khoảng thời gian t, lại xếp thành hình tròn, quá trình lặp đi lặp lại
như vậy
- Tìm hiểu và phát triển thêm về bài toán điều khiển đội hình này trong thuật toán Distance-based
có quan tâm tới không chỉ hình dáng đội hình mà còn cả vị trí của mỗi tác tử trong hệ thống

You might also like