Professional Documents
Culture Documents
Ly Thuyet Dieu Khien Nang Cao
Ly Thuyet Dieu Khien Nang Cao
21 December 2009
Phụ lục
Nội dung Trang
Phụ lục 1
Bài 1Giới thiệu chung 3
1 Định nghĩa 3
2 Điều kiện hạn chế 3
3 Bài toán điều khiển tối ưu 4
3.1 Điều khiển tối ưu tĩnh 4
3.2 Điều khiển tối ưu động 5
Bài 2 Điều khiển tối ưu tĩnh 6
1 Mô tả toán học. 6
2 Biểu diễn hình học. 6
3 Giả thiết cho lời giải. 7
3.1 Bài toán tối ưu không có giới hạn. 7
3.2 Bài toán tối ưu có giới hạn. 8
Bài 3 Phương pháp không dùng đạo hàm riêng 10
1. Đặt vấn đề. 10
2. Phương pháp Gauss/Seidel. 10
3. Các phương pháp khác. 13
3.1 Phương pháp Rosenbrock. 13
3.2 Phương pháp đơn hình. 13
3.3 Phương pháp hướng tìm ngẫu nhiên. 14
Bài 4 Phương pháp đạo hàm riêng 15
1. Đặt vấn đề 15
2. Đạo hàm riêng theo nghĩa hẹp. 16
3. Phương pháp hạ nhanh nhất. 16
Bài 5 Phương pháp hướng liên hợp 17
1. Đặt vấn đề. 17
2. Thuật toán hướng liên hợp. 19
Bài 6 Phương pháp Newton/Raphson 21
1. Nội dung của phương pháp. 21
2. Thuật toán Newton-Raphson. 21
Bài 7 Cực tiểu hoá hàm một biến 24
1. Đặt vấn đề. 24
2. Phương pháp nhát cắt vàng. 25
3. Phương pháp Fibonaci. 26
Bài 8 Bài toán tối ưu có giới hạn 28
1. Bài toán tối ưu có giới hạn 28
2. Phương pháp đổi biến độc lập 28
3. Phương pháp sử dụng hàm phạt và hàm chặn. 29
3.1 Hàm phạt. 29
3.2 Hàm chặn. 29
Tài liệu tham khảo 31
2
Lý thuyết điều khiển nâng cao
21 December 2009
định quĩ đạo chuyển động của cánh tay rô bốt, đường đi thu rác, thu tiền điện,
thu tiền nước, đi chào hàng ...
- Bài toán tối ưu cực đại.
+ Tạo ra sản phẩm với chi phí cho trước, nhưng có chất lượng cao nhất.
+ Bài toán tìm đường căng.
- Bài toán tối ưu tác động nhanh: Thời gian xảy ra quá trình là ngắn nhất, ví
dụ như điều khiển tên lửa.
Do bài toán tối ưu được thực hiện trên mô hình hệ thống, cho nên lời giải
của bài toán tối ưu phụ thuộc vào độ chính xác của mô hình hệ thống.
Những tín hiệu không thể mô tả được trong các phương trình trên sẽ được
coi là nhiễu tác động.
4
Lý thuyết điều khiển nâng cao
21 December 2009
gian xảy ra quá trình tối ưu.
Với bài toán điều khiển tối ưu tĩnh, đây chính là bài toán cực trị với những
điều kiện ràng buộc. Có nhiều phương pháp giải bài toán cực trị, ở đây chúng
ta chỉ nghiên cứu các phương pháp phi tuyến:
+ Các phương pháp không dùng đạo hàm riêng.
+ Các phương pháp đạo hàm riêng.
+ Phương pháp hướng liên hợp.
+ Phương pháp Newton-Raphson.
Với bài toán điều khiển tối ưu động, chỉ nghiên cứu các phương pháp sau:
+ Phương pháp biến phân kinh điển.
+ Phương pháp cực đại của Pontrjagin
+ Phương pháp qui hoạch động của Bellman
U là miền thích hợp của các biến đầu vào, được định nghĩa như sau:
{
U = u = (u1 , u 2 ..., u ñ ) T u k min ≤ u k ≤ u k max ; k = 1 ÷ r }
Hàm mục tiêu có dạng như sau: Q = Q(u,y) = Q(u,f(u)) = Q(u)
Không mất tính tổng quát nếu giả thiết tiêu chuẩn tối ưu là: Q(u) → min
Bài toán điều khiển tối ưu tĩnh được phát biểu như sau: Tìm tín hiệu tối ưu
u* ∈ U , sao cho Q(u*) đạt giá trị nhỏ nhất. Khi đó,
*
ta có Q(u ) ≤ Q(u ) ∀u ∈ U (1)
Nếu u* thoả mãn (1) với mọi u thuộc U, thì u* được gọi là véc tơ tối ưu toàn
cục.
Nếu u* thoả mãn (1) với mọi u thuộc lân cận u*, thì u* được gọi là véc tơ tối
ưu cục bộ.
6
u2 H?nh 1
Lý thuyết điều khiển nâng cao
21 December 2009
∂Q
=0 k = 1,2..., r
điểm cực trị thoả mãn hệ phương trình vi phân ∂u k hay
∂Q ∂Q ∂Q ∂Q T
=( , ,..., ) =0
∂u ∂u1 ∂u 2 ∂u r
∂Q
- Tại mỗi điểm u của mặt cong Q tồn tại véc tơ đạo hàm riêng ∂u , ký hiệu
∂Q
gradQ =
là ∂u , véc tơ đạo hàm riêng gradQ có các tính chất sau:
+ Bước 4:
Kiểm tra điều kiện.
Nếu || uk - uk-1 || ≤ ε chuyển sang bước 5.
+ Bước 5:
Nghiệm tối ưu gần đúng là u* = uk với độ chính xác là ε .
8
Lý thuyết điều khiển nâng cao
21 December 2009
Xác định hướng tìm và khoảng cách bước tìm thích hợp để cho u k ∈ U .
+ Bước 3:
Tìm uk theo hướng tìm và khoảng cách bước tìm.
+ Bước 4:
Kiểm tra điều kiện.
Nếu || uk - uk-1 || ≤ ε chuyển sang bước 5.
+ Bước 5:
Nghiệm tối ưu gần đúng là u* = uk với độ chính xác là ε .
+ Khoảng cách bước tìm ở bước thứ k được ký hiệu là sk. sk được xác định
10
Lý thuyết điều khiển nâng cao
21 December 2009
0
0
.
h k = 1
.
0
- Xác định hướng tìm hk: , h là véc tơ có r hàng, chỉ có hàng thứ k +
k
đạt giá trị nhỏ nhất trên hướng tìm hk. sk* = argminQ(uk + skhk)
+ Bước 3:
uk+1 = uk + sk*hk
+ Bước 5:
Nghiệm tối ưu gần đúng là u* = uk+1
1
u0 =
Bước 1: Cho ε = 10 , chọn
−3
1
k = 0.
1
h0 =
Bước 2: Chọn 0
1 1 1 + s 0
u 1 = u 0 + s0 h 0 = + s0 =
1 0 1
∂Q(u 1 )
= 2(1 + s 0 ) = 0
(1 + s ) +
2
2 − 3 ∂s
Q(u1) = 0 , ta có 0 , suy ra s0 = -1
Bước 3:
Bước 4:
||u1 - u0|| = 1 > ε quay về bước 2
k =1.
0
h0 =
Bước 2: Chọn 1
0 0 0
u 2 = u 1 + s1 h1 = + s1 =
1 1 1 + s1
∂Q(u 2 )
= 4(1 + s1 ) = 0
Q(u2) = 0 + 2 (1 + s1 ) −
2
3 , ta có ∂s1 , suy ra s1 = -1
Bước 3:
0 0
u2 = *
=
1 + s1 0
Bước 4:
||u2 - u1|| = 1 > ε quay về bước 2
k = 2.
Bước 2:
1
h2 =
Chọn 0
0 1 s
u 3 = u 2 + s2 h 2 = + s2 = 2
1 0 1
∂Q(u 3 )
= 2s 2 = 0
Q(u3) = s + 2
2
2 . 0 − 3 , ta có ∂s 2 , suy ra s2 = 0
Bước 3:
12
Lý thuyết điều khiển nâng cao
21 December 2009
s 2* 0
u2 = =
0 0
Bước 4:
||u3 - u2|| = 0 < ε chuyển sang bước 5
Bước 5:
0
u* = u3 = 0
ưu điểm của phương pháp là: nếu hệ thống có r đầu vào, hàm mục tiêu có
dạng chính phương thì nghiệm tối ưu u* sẽ được tìm thấy sau đúng r vòng.
một trục toạ độ của hệ mới trùng với hướng của véc tơ uk - uk-1.
Ưu điểm của phương pháp là tốc độ hội tụ cao hơn phương pháp
Gauss/Seidel khi hàm mục tiêu phức tạp (các đường đồng mức không đối
xứng, hàm mục tiêu không có dạng chính phương).
Ví dụ:
Với hệ thống có hai đầu vào r = 2, đa
diện ∆ là một tam giác. Quá trình tìm
nghiệm tối ưu được minh hoạ như hình
2.
ở đây để đơn giản ta chọn tam giác ∆
là một tam giá vuông cân. Chiều mũi tên
là chiều tìm nghiệm tối ưu.
Nếu Q(uk) < Q(uk-1) thì hướng tìm đó vẫn được dùng để tìm uk+1 tiếp theo,
nếu không thì chọn theo hướng ngược lại.
14
Lý thuyết điều khiển nâng cao
21 December 2009
∂Q
∂u
1
∂Q
gradQ (u k ) = ∂u 2
:
∂Q
∂u r u = uk
lấy đạo hàm riêng theo từng biến đầu vào ui, sau đó
Nếu hàm mục tiêu Q cho dưới dạng bảng tra hoặc thuật toán thì có các
∂Q
∂u i
=
1
∆u i
[
Q( k u1 , k u 2 ,..., k u i + ∆u i ,..., k u r ) − Q( k u1 , k u 2 ,..., k u i ,..., k u r ) ]
u = uk
với i = 1, 2, ..., r.
+ Phương pháp thứ hai:
∂Q
∂u i
=
1
2∆u i
[
Q( k u1 , k u 2 ,..., k u i + ∆u i ,..., k u r ) − Q( k u1 , k u 2 ,..., k u i − ∆u i ,..., k u r ) ]
u = uk
với i = 1, 2, ..., r.
Khoảng cách bước tìm tỉ lệ với độ lớn của gradQ(uk). Giá trị uk+1 được tính
Khoảng cách bước tìm s có ảnh hưởng rất lớn đến tốc độ hội tụ của
phương pháp.
+ Nếu s nhỏ, số bước tính lớn, số lần tính gradQ nhiều.
+ Nếu s lớn, chuỗi giá trị {uk} phân kỳ.
Vì tại điểm cực trị gradQ(u) = 0 nên phương pháp sẽ cho một dãy {uk} hội
tụ đến một điểm cực trị. Khi Q không có điểm yên ngựa, điểm cực trị đó có
thể là cục bộ hoặc toàn cục.
Muốn tìm nghiệm tối ưu u* toàn cục, nên áp dụng phương pháp cho nhiều
điểm ban đầu u0 khác nhau.
16
Lý thuyết điều khiển nâng cao
21 December 2009
Khoảng cách bước tìm được xác định như sau: s 0 = arg min Q(u 0 + s 0 h 0 )
*
suy ra u1 = u0 + s0*h0.
Với k = 1, 2, ...
Chọn hk sao cho hkThk-1 = 0.
Chuỗi giá trị {uk*} có tốc độ hội tụ lớn khi cách xa u*, càng gần u* thì độ
hội tụ càng giảm.
Thuật toán hạ nhanh nhất.
Bước 1:
Cho ε > 0 đủ bé, chọn u0 bất kỳ.
h0 = -gradQ(u0)
u1 = u0 + s0*h0
Bước 3:
Tính uk+1 = uk + sk*hk.
b = (b1 b2 . . . br)T
Theo phương pháp Gauss/Seidel, u* được tìm thấy sau đúng r bước. u* thoả
18
Lý thuyết điều khiển nâng cao
21 December 2009
∂Q
=0 *
mãn điều kiện ∂u ⇔ Au + b = 0 ⇒ u = − Ab .
Theo phương pháp Gauss/Seidel, các hướng tìm song song với các trục toạ
độ, xuất phát từ đây để đi tới phương pháp hướng liên hợp.
ý tưởng của phương pháp là: hướng tìm ở vòng thứ k được tìm theo hướng
tìm ở vòng thứ k - 1, sao cho: hk-1Thk = 0.
Xét hàm mục tiêu bấy kỳ, trong đó ma trận A không phải là ma trận đơn vị.
Như vậy ta phải chuyển hệ trục toạ độ để đưa A về dạng ma trận đơn vị.
Khi đó hướng tìm hk sẽ chuyển thành pk. Coi A là một toán tử tuyến tính biến
đổi hệ trục toạ độ, qua phép biến đổi này hk chuyển thành pk. Khi đó pk phải
có tính chất sau:
pk-1Apk = 0
Các hướng tìm pk với k = 1, 2, ...,r được xác định nhờ công thức sau:
T
k −1 p i Av k
pk = vk − ∑ T
pi
i =1 pi A pi
vi với i = 1, 2, ...,r là một cơ sở của không gian Rr, có nghĩa là các véc tơ v1,
Hướng tìm ban đầu p0 có thể được xác định nhờ véc tơ gradQ hoặc được
xác định ngẫu nhiên. Dọc theo hướng tìm pk, uk được tìm sao cho Q(uk) đạt giá
trị nhỏ nhất.
sk* = argminQ(uk-1 + skpk)
uk = uk-1 + sk*pk
gradQ(uk) = Auk + b.
pk+1 = -gk + ekpk với k = 0, 1, ..., r-1. Trong đó p0 = -g0, hệ số đổi hướng
uk+1 = uk + sk+1*pk+1
Thuật toán.
Bước 1:
Chọn u0, e0 = 0.
p0 = -g0 = -(Au0 + b)
Bước 3:
uk+1 = uk + sk+1*pk+1
Bước 4:
u* = ur
+ piTgk = 0 với ∀i ≤ k
20
Lý thuyết điều khiển nâng cao
21 December 2009
1 T T
Q= u Au + b u
Phương pháp này thích hợp cho hàm mục tiêu có dạng: 2 vớ i
A là ma trận xác định dương.
Khi hàm mục tiêu có dạng bất kỳ, không giống với dạng ở trên ta có thể
dung phương pháp này để tìm u*, tuy nhiên cần phải thay đổi.
2
gk
ek = 2
g k −1
Hệ số đổi hưởng được tính từ Q có dạng tổng quát:
Nghiệm tối ưu tìm được không phải là nghiệm đúng.
∂Q(u )
=0
phương trình ∂u (*) bằng phương pháp giải tích, trước tiên hệ (*)
được khai triển thành chuỗi Taylor tại uk thuộc lân cận nghiệm tối ưu u* và là
nghiệm của (*) như sau:
∂Q(u ) ∂Q(u ) ∂ 2 Q(u ) *
= + (u − u k ) + ...+ = 0
∂u u * ∂u u k ∂u
2
uk
tiếp theo, bỏ qua các đạo hàm bậc cao. Khi đó u* sẽ không phải là nghiệm
đúng nữa mà chỉ là nghiệm gần đúng. Gọi nghiệm gần đúng này là là uk+1 ≈ u* ,
thay vào hệ phương trình trên ta có:
∂Q(u ) ∂ 2 Q( u )
+ (u k +1 − u k ) =0
∂u u k ∂u
2
uk
∂ 2Q ∂ 2Q
2
...
∂u 1 ∂u 1 ∂u r
. . . . . .
2
∂ Q ...
∂ 2Q
∂u r ∂u 1 ∂u r g k = gradQ(u k )
2
Đặt H(u) = , .
22
Lý thuyết điều khiển nâng cao
21 December 2009
g k = gradQ(u k )
Tính .
Tính H(uk)
Bước 3:
Tính uk+1 = uk - H-1(uk)gk
Ưu điểm:
1 T T
Q= u Au + b u
Nếu hàm mục tiêu có dạng 2 , phương pháp này sẽ cho đúng
giá trị u* chỉ sau đúng một vòng tính.
Ví dụ:
Cho hàm mục tiêu Q = 3u12 + 4u22 + u1u2 với ε = 10
−3
∂Q
∂u 6u + u 2
g = gradQ(u ) = 1 = 1
∂Q 8u 2 + u1
∂u 2
∂ 2Q ∂ 2Q
∂u12 ∂u1 ∂u 2 6 1
H (u ) = =
∂ Q
2
∂ 2 Q 1 8
∂u ∂u ∂u 22
2 1
1 8 − 1
H −1 (u ) =
47 − 1 6
Bước 1:
Bước 2:
6u + u 2 1
g0 = 1 = −1 −1 1 8 − 1
8u 2 + u1 0 8 H (u 0 ) = H (u ) =
1 , 47 − 1 6
Bước 3:
0 1 8 − 1 1 0
u 1 = u 0 − H −1 (u 0 ) g 0 = − =
1 47 − 1 6 8 0
Bước 4:
||u1 - u0|| = 1 > ε quay về bước 2
k = 1.
Bước 2:
6u + u 2 0
g1 = 1 = −1 −1 1 8 − 1
8u 2 + u1 0 0 H (u 1 ) = H (u ) =
0 , 47 − 1 6
Bước 3:
0 1 8 − 1 0 0
u 2 = u 1 − H −1 (u 1 ) g 1 = − =
0 47 − 1 6 0 0
Bước 4:
||u2 - u1|| = 0 < ε chuyển sang bước 5
Bước 5:
0
u2 =
Nghiệm tối ưu là u* = 0
24
Lý thuyết điều khiển nâng cao
21 December 2009
Đi tìm sk*, ta đã sử dụng phương pháp đạo hàm, tức là phải giải phương
∂Q
=0
trình: ∂s k .
Để có thể cài đặt thành thuật toán, chúng ta sẽ sử dụng một số phương
pháp cơ bản để tìm sk* mà không dùng đạo hàm.
Ta đã biết Q(uk + skhk) là hàm số một biến, chỉ phục thuộc vào sk, cho nên ta
chỉ xét bài toán cực tiểu hoá hàm một biến.
- Xét hàm số một biến Q(s), giả thiết hàm số Q(s) thoả mãn các điều kiện
sau:
+ Q(s) đơn điệu giảm khi 0 < s < s*
+ Q(s) đơn điệu tăng khi s* < s
s
x=
Chuẩn hoá hàm Q(s) với s = xs1, suy ra s1 , như vậy 0 ≤ x ≤ 1 . Khi đó hàm
f(x) có một điểm cực tiểu duy nhất x* trong khoảng (0 1), f(1) > f(0). [0 1]
được gọi là khoảng nghiệm.
Nguyên tắc tìm nghiệm x* là thu nhỏ khoảng nghiệm qua từng bước.
Trong khoảng [0 1] chọn 2 giá trị bất kỳ x1 và x2 sao cho: 0 < x1 < x2 < 1. Xét
các trường hợp sau:
+ Nếu f(x1) < f(x2), khoảng nghiệm mới được chọn là [0 x2].
+ Nếu f(x1) ≥ f(x2), khoảng nghiệm mới được chọn là [x1 1].
Vấn đề còn lại là chọn x1 và x2 như thế nào để tốc độ hội tụ là cao nhất,
tức là tốc độ tìm thấy x* nhanh nhất.
26
Lý thuyết điều khiển nâng cao
21 December 2009
khoảng lớn.
Xét khoảng nghiệm bất kỳ [xmin xmax]. Gọi d là độ dài là khoảng nghiệm d =
xmax - xmin. Lấy hai điểm x1 < x2 đối xứng nhau qua điểm giữa của khoảng
5 −1 5 −1
x 2 − x min = d a= = 0,618
Giải phương trình trên được: 2 , đặt 2
Sau mỗi lần chia, khoảng nghiệm mới sẽ là [xmin x2] hoặc [x1 xmax], vì x1 và
x2 được lấy đối xứng cho nên: x2 - xmin = xmax- x1, do đó khoảng nghiệm mới
thu được bao giờ cũng là ad = 0,618d. Sau n lần thu nhỏ khoảng nghiệm mới
sẽ có độ rộng là and = (0,618)nd.
Thuật toán tìm x* gần đúng theo phương pháp nhát cắt vàng.
Bước 1:
Gán xmin = 0; xmax = 1; ε > 0 đủ bé. Tính f(xmin) và f(xmax).
Bước 2:
Xác định x1 sao cho x1 đối xứng qua trung điểm của đoạn [xmin xmax].
Bước 3:
Tính f(x1), f(x2)
Bước 5:
Nghiệm tối ưu gần đúng x* có thể được chọn là một điểm bất kỳ thuộc
khoảng [xmin xmax]
như sau: F1 = F2 = 1.
Fn − k + 2
εk =
lớn là Fn − k +3 , với n là số bước thu nhỏ khoảng nghiệm được chọn từ
trước.
Ta có:
Fn +1
ε1 =
Hệ số thu nhỏ khoảng nghiệm thứ nhất là: Fn + 2
Fn
ε2 =
Hệ số thu nhỏ khoảng nghiệm thứ hai là: Fn +1
Fn − k + 2
εk =
Hệ số thu nhỏ khoảng nghiệm thứ k là: Fn − k +3
F2
εn =
Hệ số thu nhỏ khoảng nghiệm thứ n là: F3
Sau n lần thu nhỏ khoảng nghiệm, khoảng nghiệm mới có hệ số thu nhỏ
1
ε = ε 1ε 2 ...ε n =
khoảng nghiệm so khoảng nghiệm ban đầu là: Fn + 2 .
28
Lý thuyết điều khiển nâng cao
21 December 2009
Thuật toán tìm nghiệm x* gần đúng theo phương pháp Fibonaci.
Bước 1:
Gán xmin = 0; xmax = 1; ε > 0 đủ bé. Tính f(xmin) và f(xmax).
1
<ε
Tìm n thoả mãn điều kiện: Fn +2
+ x1 < x2 đối xứng qua trung điểm của đoạn [xmin xmax].
x1 − x min
= εk
+ x max − x1
Bước 3:
Tính f(x1), f(x2).
Gán k = k + 1
Kiểm tra: k > n chuyển sang bước 4, ngược lại quay về bước 2.
Bước 4:
Nghiệm tối ưu gần đúng x* có thể được chọn là một điểm bất kỳ thuộc
khoảng [xmin xmax]
U là miền thích hợp của các biến đầu vào, được định nghĩa như sau:
{
U = u = (u1 , u 2 ..., u ñ ) T u k min ≤ u k ≤ u k max ; k = 1 ÷ r }
Thực chất của bài toán tối ưu có giới hạn là tìm nghiệm tối ưu u* trong
điều kiện u bị giới hạn bởi miền thích hợp U.
hạn U bằng cách dùng phép chuyển vị u = ϕ (v). Phép chuyển vị ϕ có thể là
+ u k ≥ 0 : Thay u k = vk
2
2v k
uk = a
+ u k ≤ a : Thay 1 + v k2
30
Lý thuyết điều khiển nâng cao
21 December 2009
1 v
uk = (u k max + u k min ) + k 2 (u k max − u k min )
+ u k min ≤ u k ≤ u k max : Thay 2 1 + vk
u k − u k min
v k = ln
+ u k min < u k < u k max : Thay u k max − u k
Việc thông báo của hàm phạt thường là bằng những giá trị rất lớn (một
cách không bình thường) tại những điểm gần biên, bên trong hoặc bên ngoài.
*
u = arg min Q(u ) → min
Cho hàm mục tiêu Q(u). Tìm u ∈U .
Thay Q(u) = Q(u) + λ S(u), với điều kiện:
S(u) = 0 nếu u ∈ U
áp dụng các phương pháp giải bài toán tối ưu không ràng buộc để tìm
nghiệm u (λ ) = arg min Q(u, λ ) → min , nghiệm tối ưu u* được tìm theo công thức
*
sau:
u = lim u (λ )
* *
λ→∞
áp dụng các phương pháp giải bài toán tối ưu không ràng buộc để tìm
nghiệm u (λ ) = arg min Q(u, λ ) → min , nghiệm tối ưu u* được tìm theo công thức
*
sau:
u = lim u (λ )
* *
λ→∞
32
Lý thuyết điều khiển nâng cao
21 December 2009