Professional Documents
Culture Documents
1
Cấu trúc bộ điều khiển dự báo
Nguyên lý làm việc
Cấu trúc bộ điều
Cấu trúc bộ điều khiển khiển dự báo
Tại thời điểm hiện tại k thực hiện lần lượt 3 bước t kTa
trên để có u k . Ở thời điểm k 1 tiếp theo thực k k 1 k N
hiện lại 3 bước trên để có u k 1 (receding
horizon controller)
2
Nguyên lý làm việc chung
Khối thứ nhất: Dự báo tín hiệu đầu ra tương lai
Có nhiệm vụ xác định tất cả các đầu ra tương lai y
k i
, i 0,1, , N tính từ thời điểm k
hiện tại thuộc của sổ dự báo hiện tại là [k , k N ] . Kết quả luôn là hàm phụ thuộc các đầu
vào tương lai (tất nhiên chỉ thuộc cửa sổ dự báo hiện tại).
y k 1 f p y k , x k , u k , u k 1
y k i f p y , x
k k , u k , u k 1 , , u k i
y k N f p y k , x k , u k , u k 1 , , u k i , , u k N
Những điều lưu ý
1. Cần phải có mô hình toán mô tả đối tượng điều khiển. Mô hình càng đơn giản, công
thức dự báo tín hiệu ra càng tiện dụng cho việc giải bài toán tối ưu sau này.
2. Có nhiều mô hình toán mô tả cùng một đối tượng điều khiển. Ứng với những mô hình
khác nhau sẽ có các công thức dự báo tín hiệu đầu ra khác nhau.
3
Nguyên lý làm việc chung (tiếp)
Khối thứ nhất: Dự báo tín hiệu đầu ra (tiếp)
Ví dụ: Dự báo đầu ra khi sử dụng mô hình hàm trọng lượng (MAC - Model Algorithmic Control)
Ở hệ tuyến tính SISO thì hàm trọng lượng cũng là một mô hình
g (t ), gk
(t ), {1,0, ,0, } u (t ) Đối tượng y (t )
t uk tuyến tính yk t
Dựa vào dãy các giá trị của hàm trọng lượng {gk } {g 0 , g1 , } thì đầu ra của hệ ở thời
điểm k , tức là yk sẽ được xác định từ các giá trị đầu vào như sau:
yk gk * uk g j uk j , ul 0 khi l 0
j 0
Do đó các đầu ra tương lai (tính từ thời điểm k ), ký hiệu là yk i sẽ được tính như sau:
i i
yk i g j uk i j g j uk i j g j uk i j ci g j uk i j , i 0,1, , N
j 0 j i 1 j 0 j 0
4
Nguyên lý làm việc chung (tiếp)
Khối thứ hai: Xây dựng hàm mục tiêu
Có nhiệm vụ mô tả được chất lượng điều khiển mong muốn thông qua các đầu ra tương lai
được dự báo. Nếu chất lượng điều khiển mong muốn là tín hiệu ra y k phải bám tiệm cận
theo được tín hiệu đặt w k tức là e k y w k 0 thì một hàm mục tiêu thích hợp cho
k
hệ ở thời điểm hiện tại k sẽ là:
N
J k eTk 1Qk e k i uTk 1Rk u k i min, Qk , Rk đối xứng xác định dương
i 0
1. Việc làm cho J k min không đảm bảo chắc chắn sẽ có e k 0 , nhưng khả năng
nhiều sẽ được J k J k 1 và do đó sẽ có khả năng e k 0
2. Cửa số dự báo N được chọn càng lớn, sai lệch e k ở thời điểm k sẽ càng nhỏ, song trả
giá thời gian tính càng lâu, số các phép tính càng nhiều, sai lệch tính toán càng lớn.
3. Tương quan Qk , Rk cũng quyết định tới chất lượng điều khiển.
5
Nguyên lý làm việc chung (tiếp)
Khối thứ hai: Xây dựng hàm mục tiêu (tiếp)
Hàm mục tiêu J k là hàm của các biến điều khiển tương lai u k , u k 1 , , u k N , tức là
J k J k (p ), p col u k , u k 1 , , u k N
J k pT GTQkG Rk p 2 c w QkG p min
T
p
6
Nguyên lý làm việc chung (tiếp)
Khối thứ ba: Tối ưu hóa
Phát biểu và phân loại bài toán tối ưu
Suy ra, tín hiệu điều khiển của MAC tại thời điểm k hiện tại sẽ là:
p* uk , , uk N arg min J k arg min pT GT QkG Rk p 2 c w QkG p
T T
1
T
G QkG Rk GT Qk c w
tức là
uk 1, 0, , 0 p*
9
Nguyên lý làm việc chung (tiếp)
Bản chất trượt dọc trên trục thời gian (receding horizon control)
k k 1 k 2 t Khởi tạo
N ,G , k
Xác định
y k i , 1 i N Dự báo tín
hiệu ra
Chọn Qk , Rk
Xây dựng hàm
mục tiêu
u (t ) uk
Điều khiển
t đối tượng
10
Phương pháp MAC (Model Algorithmic Control)
Đơn giản công thức xác định thành phần quá khứ trong dự báo tín hiệu ra
k i
ci g j uk i j g j uk i j gi 1uk 1 gi 2uk 2 gi k u0
j i 1 j i 1
Một số lưu ý
─ Đối tượng điều khiển là SISO và ổn định và chỉ có nhiễu hằng tác động ở đầu ra.
─ Có thể chọn Qk , Rk là ma trận hằng chung cho tất cả các vòng lặp.
─ Hệ điều khiển là vòng hở (không phản hồi yk ).
11
Phương pháp MAC (tiếp)
Ví dụ minh họa
1. Đối tượng có mô hình g j , g j 6 j 1 , j 0,1, . Chọn N 2, Qk Rk I 3 , k
Như vậy với tín hiệu đặt là wk 1, k thì
6 0 0 1
6 6
g 0 6, g1 3, g 2 2, g 3 , g 4 , g 5 1, G 3 6 0 , w 1
4 5 2 3 6 1
2. Khi k 0 thì c0 c1 c2 0 và do đó c 0, 0, 0 . Vậy:
T
0.1634
1
p* GT G I 3 GT c w 0.0836 u0 0.1634
0.0685
3. Khi k 1 thì c0 0.4903, c1 0.3269, c2 0.2452 và do đó c 0.4903, 0.3269, 0.2452 .
T
Suy ra:
0.0837
1
p* GT G I 3 GT c w 0.0693 u1 0.0837
0.0616
4. Khi k 2 thì … u 2 0.0694
12
Phương pháp MAC (tiếp)
Ví dụ minh họa (tiếp với file MAC.m)
clc
N=2;w=1;Q=eye(N+1);R=eye(N+1);G=[];g=[];
for j=0:N
g(j+1)=6/(j+1);
Khởi tạo
end
for i=1:N+1 N ,{g j }, w
for j=1:i
G(i,j)=g(i+1-j);
Tính G . Chọn Q , R
end
Gán u 0 0, k 0
end
k=1;u=0;O=zeros(1,N+1);O(1)=1;con=1; %O=[1,0,...,0]
while con==1
c=zeros(1,N+1); Tính ci , i 0,1, , N
for i=1:N+1 k : k 1
và từ đó là uk
for j=i+1:k+i
c(i)=c(i)+(6/j)*u(k+1+i-j);
uk
end
end Điều khiển
uk=-O*(inv(G'*Q*G+R)*G'*Q*(c'-w*ones(N+1,1))); đối tượng
uk
u=[u uk];k=k+1;
con=input('Press 1 to Continue, 2 to Stop:')
end
13
Phương pháp DMC (Dynamic Matrix Control)
Dự báo tín hiệu đầu ra
Khác với MAC mà ở đó mô hình hàm trọng lượng được sử dụng để dự báo đầu ra thì ở
phương pháp DMC người ta sử dụng mô hình hàm quá độ:
yk gk * uk hk hk 1 * uk hk * uk uk 1 hk * uk hi uk i
i 0
trong đó uk uk uk 1
1(t ), {1,1, } h (t ), hk
u (t ) Đối tượng y (t )
t uk tuyến tính yk t
14
Phương pháp DMC (tiếp)
Hàm mục tiêu
Viết chung tất cả yk i , i 0,1, , N thành vector y yk , yk 1 , , yk N T thì
y H p d
Hàm mục tiêu, xây dưng trên cơ sở đầu ra yk bám theo tín hiệu đặt wk sẽ là:
T
Jk y w Qk y w pT Rk p min, Qk , Rk đối xứng xác định dương
trong đó w wk , wk 1 , , wk N T
15
Phương pháp DMC (tiếp)
Tối ưu hóa
1
p uk , , uk N H T Qk d w
* T T
H Qk H Rk
Suy ra, tín hiệu điều khiển của DMC tại thời điểm k hiện tại sẽ là:
1
H T Qk d w và uk uk 1 1, 0, , 0 p
*
4. Tính p* H T Qk H Rk
5. Đưa uk vào điều khiển đối tượng trong khoảng thời gian trích mẫu. Gán k : k 1 và
quay về bước 2.
Một số lưu ý
─ Cần chọn N đủ lớn. Có thể chọn Qk , Rk là ma trận hằng chung cho mọi vòng lặp.
─ Đối tượng điều khiển là ổn định, có tính động học chậm. Điều khiển vòng hở.
16
Phương pháp DMC (tiếp)
Ví dụ minh họa
1. Đối tượng có mô hình là {h j }, h j 5 1 e
j
, j 0,1, . Tín hiệu đặt là wk 1, k .
Chọn N 2, Qk Rk I 3 , k . Như vậy thì
0 0 0 1
H 3.1606 0 0 , w 1
4.3233 3.1606 0 1
2. Khi k 0 thì d0 d1 d 2 0 và do đó d 0, 0, 0 . Vậy:
T
0.2801
1
p* H T H I 3 H T d w 0.0606 u0 u 1 1, 0, , 0 p 0.2801
0
3. Khi k 1 thì d 0.8852 , 1.2108 , 1.3306 . Suy ra:
T
0.0627
1
p* H T H I 3 H T d w 0.0171 u1 u0 1, 0, , 0 p 0.2173
0
4. Khi k 2 thì … u 2 0.2002
17
Phương pháp DMC (tiếp)
Ví dụ minh họa (tiếp với file DMC.m)
clc
N=2;w=1;Q=eye(N+1);R=eye(N+1);H=[];h=[];
for j=0:N
h(j+1)=5*(1-exp(-j));
end Khởi tạo
for i=1:N+1 N ,{hk }, w
for j=1:i
H(i,j)=h(i+1-j);
end Tính H . Chọn Q , R
end Gán u 1 0, u 0 0, k 0
k=1;u_1=0;d_u=0;O=zeros(1,N+1);O(1)=1;con=1; %O=[1,0,...,0]
while con==1
d=zeros(1,N+1);
for i=1:N+1 Tính di , i 0,1, , N
k : k 1
for j=i+1:k+i và uk uk 1
d(i)=d(i)+5*(1-exp(-j+1))*d_u(k+1+i-j);
end uk
end
d_uk=-o*(inv(H'*Q*H+R)*H'*Q*(d'-w*ones(N+1,1))); Điều khiển
đối tượng
u_k=u_1+ d_uk; u_1=u_k;
d_u=[d_u d_uk];k=k+1;
u_k
con=input('Press 1 to Continue, 2 to Stop:')
end
18
Phương pháp GPC (Generalized Predictive Control)
Dự báo tín hiệu đầu ra
Phương pháp này sử dụng hàm truyền được viết lại dưới dạng phương trình sai phân theo
sai lệch đầu vào, để dự báo tín hiệu ra. Phương trình sai phân này có dạng:
1 Ei (z 1 )A(z 1 ) z i Fi (z 1 ), i 0,1, , N
ta sẽ có với mọi i 1, 2, , N
19
Phương pháp GPC (tiếp)
Hàm mục tiêu
Viết lại mô hình dự báo dạng chi tiết:
n m i 1
yk i fi , j yk j gi , j uk i j 1
j 0 j 0
20
Phương pháp GPC (tiếp)
Hàm mục tiêu (tiếp)
g1,1 g1,2 g1,m f1,0 f1,1 f1,n
g 2,2 g 2,3 g 2,m 1 f2,0 f2,1 f2,n
và E2 , F
gN ,N gN ,N 1 gN ,m N 1 fN ,0 fN ,1 fN ,n
Jk y w
T
Qk y w pT Rk p pT G1T QkG1 Rk p 2bTQkG1 p bT Qk b min
trong đó b E 2 ub Fyb w là vector đã biết ở thời điểm k hiện tại
Tối ưu hóa
Hàm mục tiêu có dạng toàn phương nên:
1
*
p E1TQk E1 Rk E1TQk b uk uk 1 1, 0, , 0 p*
Khác với MAC, DMA (điều khiển hở), bộ điều khiển GPC là bộ điều khiển phản hồi đầu ra.
21
Phương pháp GPC (tiếp)
Thuật toán điều khiển
1. Tùy chọn cửa sổ dự báo N 2 . Xác định các ma trận Ei (z 1 ), Fi (z 1 ), i 1, 2, , N và từ
đó là E1 , E 2 , F . Gán k 0, ub 0, y 0
b
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk . Đo yk và sắp xếp lại các vector ub , yb
Từ đó tính b .
3. Tính uk và đưa vào điều khiển đối tượng trong khoảng thời gian trích mẫu.
4. Gán k : k 1 và quay về bước 2.
Một số lưu ý
─ Đối tượng điều khiển có thể là SISO hoặc MIMO (khi đó cần mở rộng phương trình
Diophantine).
─ Có thể có nhiễu hằng tác động ở đầu ra.
─ Nếu N được chọn càng lớn, thời gian quá độ càng ngắn, song số lượng các phép tính
phải thực hiện càng nhiều.
─ Có thể chọn Qk , Rk là ma trận hằng chung cho tất cả các vòng lặp.
─ Hệ điều khiển là vòng kín (phản hồi yk ).
22
Phương pháp GPC (tiếp)
Ví dụ minh họa
23
Phương pháp GPC (tiếp)
Ví dụ minh họa (tiếp với file GPC.m)
24
Phương pháp AGPC (Altenative GPC)
Là phương pháp không sử dụng phương trình Diophantine và không phân biệt đối tượng
điều khiển là SISO hay MIMO. Hơn nữa nó sử dụng ngay hàm truyền gốc chứ không cần
phải chuyển về dạng sai lệch đầu vào u k .
y B0,0 u k Bm ,0 u k m A1,0 y
k k 1
An ,0 y
k n
d k/
tức là tín hiệu đầu ra hiện tại y k chỉ còn là hàm phụ thuộc vào đại lượng chưa biết ở đầu vào
là u k . Các giá trị còn lại bao gồm y , u k j , i 1, 2, , n , j 1, 2, , m thuộc quá khứ
k i
/
nên là đã biết) cũng như d k là đại lượng ước lượng của nhiễu d k . Suy ra, với i 0,1, , N
các đầu ra dự báo sẽ là:
y
k i
B0,i u k i B1,i u k i 1 Bm i ,i u k m A1,i y
k 1
An ,i y
k n
Di d k/
25
Phương pháp AGPC (tiếp)
Dự báo tín hiệu đầu ra (tiếp)
trong đó
B0,i B0,i 1 , B1,i B1,i 1 , , Bi 1,i Bi 1,i 1
Bi ,i Bi ,i 1 A1,i 1B0,0 , , Bm i 1,i Bm i 1,i 1 A1,1Bm 1,0 , Bm i ,i A1,i 1Bm ,0
và
A1,i A2,i 1 A1,i 1A1,0 , A2,i A3,i 1 A1,i 1A2,0 , , An 1,i An ,i 1 A1,i 1An 1,0 , An ,i A1,i 1An ,0
cũng như
Di Di 1 A1,i 1 , D0 I
u k 1 y k 1
u
y
ub k 2 , y k 2
b
u
k m y
k n
Như vậy vector các đầu ra dự báo y chỉ còn phụ thuộc vào vector các đầu vào tương lai u .
Giá trị vector g ở thời điểm k hiện tại là đã biết (được xác định từ những giá trị vào ra quá
khứ). Nói cách khác mô hình dự báo tương ứng với của số dự báo N của hệ bây giờ là:
y Yu g
27
Phương pháp AGPC (tiếp)
Ước lượng nhiễu
Từ mô hình hệ MIMO có:
d k B0,0 u k Bm ,0 u k m y k A1,0 y k 1 An ,0 y k n
Bởi vậy, khi nhiễu là biến đổi không nhanh thì:
d k d k/ B0,0 u k 1 Bm ,0 u k m 1 y k 1
A1,0 y
k 2
An ,0 y
k n 1
Hàm mục tiêu và tối ưu hóa
Lại sử dụng hàm mục tiêu dạng toàn phương cho mọi thời điểm k :
T
Jk y w Qk y w uT Rk u với w col w k , w k 1 , , w k N
sẽ có:
1
u YTQk Y Rk
YTQk w g và u k 0, , 0, I u
28
Phương pháp AGPC (tiếp)
Thuật toán điều khiển
1. Chọn cửa sổ dự báo N 2 . Khởi tạo các ma trận A, B, D, Y từ mô hình. Gán k 0 và từ
đó là u k j 0, j 0,1, , m và y k j 0, j 0,1, , n .
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk . Xác định d k/ và từ đó là ub , y , g .
b
3. Tính u và u k rồi đưa vào điều khiển đối tượng trong khoảng thời gian trích mẫu.
4. Đo y . Gán k : k 1 và quay về bước 2.
k
Một số lưu ý
29
Phương pháp AGPC (tiếp)
Ví dụ minh họa phương pháp AGPC
30
Phương pháp AGPC (tiếp)
Ví dụ minh họa (tiếp với file AGPC.m)
31
Điều khiển hệ tuyến tính
Trường hợp hệ có thành phần tích phân
Xây dựng mô hình dự báo
x k 1 Ax k Bu k
Mô hình đối tượng điều khiển:
y k C x k v k với nhiễu v k
Xây dựng bộ điều khiển dự báo để tín hiệu ra y k bám theo tín hiệu mẫu w k .
Từ mô hình có ngay được các đầu ra dự báo y
k i
, i 1, 2, , N tính từ thời điểm hiện
tại k như sau (giải thiết nhiễu là biến đổi chậm để có thể xem là hằng số trong cửa sổ dự
báo hiện tại):
y k i CAi x k CAi 1Bu k CABu k i 2 CBk u k i 1 v k/
/
Với v k là ước lượng của nhiễu. Viết chung lại thành vector đầu ra dự báo thuộc cửa sổ
dự báo hiện tại thì:
y k 1 v k/ CA CB 0 0 uk
x
k y d Fu
y / CAN CAN 1B CAN 2B CB u
k N vk k N 1
32
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ có thành phần tích phân (tiếp)
Xây dựng mô hình dự báo (tiếp)
trong đó:
y k 1 v k/ CA CB 0 0 uk
y , d xk , F , u
y / N CAN 1B CAN 2B CB u
k N v k CA k N 1
/
Rõ ràng, do x k là đo được, v k là giá trị ước lượng của v k cũng là đã biết, nên d là vector
đã có ở thời điểm k hiện tại. Nói cách khác, vector các đầu ra dự báo y chỉ còn phụ thuộc
vào các đầu vào tương lai u .
Ở thời điểm hiện tại, từ các giá trị đo được là x k và y k nhiễu v k hoàn toàn ước lượng được
từ các giá trị đo được này nhờ:
v k/ y k C x k
và giá trị ước lượng trên sẽ được xem là hằng trong toàn bộ cửa sổ dự báo hiện tại.
33
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ có thành phần tích phân (tiếp)
Hàm mục tiêu và tối ưu hóa
Lại sử dụng hàm mục tiêu dạng toàn phương cho mọi thời điểm k :
T
Jk y w Qk y w uT Rk u với w col w k 1 , w k 2 , , w k N
và Qk , Rk là hai ma trận đối xứng xác định dương tùy chọn, sẽ có:
1
u FTQk F Rk FTQk w d và u k I , 0, , 0 u
34
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ có thành phần tích phân (tiếp)
Ví dụ minh họa
0 1 0
Đối tượng x k 1 k uk , yk 1 , 1 x k . Chọn N 3, R I , Q 10R . Để điều
x
1 1 1
khiển hệ có đầu ra yk 5 người ta sử dụng bộ điều khiển MPC. Vậy:
CA 1 0 1 0 0 5
E CA2 0 1 , F 0 1 0 , w 5 , x 0 0, d Ex k
CA3 1 1 1 0 1 5
1. Khi k 0 thì u 0 4.5802, y 0 0 5
2. Khi k 1 thì u1 4.9298, y1 4.5802 4
2
4. Khi k 3 thì u3 4.6142, y3 4.9914
1
5. Khi k 4 thì u 4 0.3527, y 4 4.9638
0
5 10 15 20
6. Khi k 5 thì u5 4.6418, y5 4.9945
Tín hiệu điều khiển
35
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ có thành phần tích phân (tiếp)
Ví dụ minh họa (tiếp với file IntLS.m)
clc
N=3;w=5;Q=10*eye(N);R=eye(N);x=[0;0];u=[];y=[];
A=[0 1;1 -1];B=[0;1];C=[1 1];E=[];F=zeros(N,N);
for i=1:N
E=[E;C*A^i];
for j=1:i
F(i,j)=C*A^(i-j)*B;
end
end 6
O=zeros(1,N);O(1)=1; %O=[1,0,...,0]
r=w*ones(N,1);
for k=1:20 4
y(k)=C*x;d=E*x;
u(k)=O*inv(F'*Q*F+R)*F'*Q*(r-d);
2
x=A*x+B*u(k);
end
plot(y); 0
u 0 5 10 15 20
y Tín hiệu đầu ra
36
Điều khiển hệ tuyến tính
Khi đối tượng không có thành phần tích phân
Đưa thêm khâu tích phân vào mô hình dự báo (tức là vào bộ điều khiển)
Khi không có thành phần tích phân, bộ điều khiển sẽ không đảm bảo làm cho sai lệch tĩnh
(sai lệch vào-ra ở chế độ xác lập) bằng 0. Vậy cần bổ sung thành phần tích phân như sau:
Đặt u k u k u k 1 sẽ có:
z k 1 Az k B u k 1 xk A B B
trong đó z k , A , B , C C , 0
u
k 1 0 I I
y k C z k v k
Như vậy toàn bộ thuật toán điều khiển đã có ở trên sẽ sử dụng lại được, trong
đó chỉ cần
thay các thành phần vector, ma trận tham số x k , u k , A, B ,C bởi z k , u k , A, B:,C :
v k/ CA CB 0 0 u k
d zk , F , u
/ N N 1 N 2
CA u
v k CA B CA B CB k N 1
1
u FTQk F Rk FTQk w d và u k u k 1 I , 0, , 0 u
37
Điều khiển hệ tuyến tính (tiếp)
Khi đối tượng không có thành phần tích phân (tiếp)
Thuật toán điều khiển
1. Chọn cửa sổ dự báo N 2 . Xây dựng các ma trận A, B ,C , F từ mô hình. Gán k 0 .
/
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk . Đo x k , y k . Xác định v k , z k và từ đó
là vector d .
3. Tính u và u k rồi đưa u k vào điều khiển đối tượng trong khoảng thời gian trích mẫu.
4. Gán k : k 1 và quay về bước 2.
Một số lưu ý
38
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ không có thành phần tích phân (tiếp)
Ví dụ minh họa
1 1 0
Đối tượng x k 1 k uk , yk 1 , 1 x k . Chọn N 3, Q R I . Để điều khiển
x
0 1 1
hệ có đầu ra yk 5 người ta sử dụng bộ điều khiển MPC. Vậy:
1 1 0 0 1 2 1 1 0 0
A 0 1 1 , B 1 , C 1 , 1 , 0 , E 1 3 3 , F 3 1 0
0 0 1 1 1 4 6 6 3 1
và
2
k uk yk
1
0 1.7416 0
1 0.3718 1.7416
0
2 -0.7816 3.8549
3 -0.9573 5.1867
-1
5 10 15 20
4 -0.5541 5.5611
Tín hiệu điều khiển
5 -0.1089 5.3815
39
Điều khiển hệ tuyến tính (tiếp)
Trường hợp hệ không có thành phần tích phân (tiếp)
Ví dụ minh họa (tiếp với file LS.m)
clc
N=3;w=5;Q=eye(N);R=eye(N);x=[0;0];u=[];y=[];
A=[1 1;0 1];B=[0;1];C=[1 1];E=[];F=zeros(N,N);
Ah=[A B;0 0 1];Bh=[B;1];Ch=[C 0];
for i=1:N
E=[E;Ch*Ah^i];
for j=1:i
F(i,j)=Ch*Ah^(i-j)*Bh;
6
end
end 5
O=zeros(1,N);O(1)=1; %O=[1,0,...,0] 4
r=w*ones(N,1);u0=0;
3
for k=1:20
y(k)=C*x;d=E*[x;u0]; 2
du=O*inv(F'*Q*F+R)*F'*Q*(r-d);
1
u(k)=u0+du;x=A*x+B*u(k);u0=u(k);
end 0
0 5 10 15 20
plot(y); Tín hiệu đầu ra
u
y
40
Điều khiển hệ song tuyến
Mô hình dự báo
Đối tượng điều khiển có mô hình
x k 1 A(x k )x k B (x k )u k
y k C (x k )x k v k với nhiễu v k
trong đó A(x k ), B (x k ),C (x k ) đều phụ thuộc trạng thái. Nhiệm vụ điều khiển là xây dựng bộ
điều khiển phản hồi trạng thái để có y k w k với {w k } là dãy tín hiệu mẫu cho trước.
Từ mô hình thì ở thời điểm k hiện tại và trong toàn bộ cửa cổ dự báo [k , k N ] tương ứng,
khi đã có x k , y k (đo được), đối tượng sẽ mô tả xấp xỉ được bởi mô hình LTI:
x k 1 Ak x k Bk u k
trong đó Ak A(x k ), Bk B (x k ), C k A(x k )
y k C k x k v k
41
Điều khiển hệ song tuyến (tiếp)
Mô hình dự báo (tiếp)
và
CB 0 0
Ak Bk Bk
F , A , B , C C k , 0
N 1 N 2 0 I I
CA B CA B CB
T
Jk y w Qk y w uT Rk u
với Qk , Rk là hai ma trận đối xứng xác định dương tùy chọn, sẽ được:
1
u FTQk F Rk FTQk w d và u k u k 1 I , 0, , 0 u
trong đó w col w k 1 , w k 2 , , w k N
42
Điều khiển hệ song tuyến (tiếp)
Thuật toán điều khiển
Một số lưu ý
43
Điều khiển hệ song tuyến (tiếp)
Ví dụ 1
1 1 0 x k1
Hệ x k 1 x u
k k k , y 1 , x k1 x k với x k . Để điều khiển hệ
x x 1
k1 k 2 1
x
k2
có đầu ra yk 5 người ta sử dụng bộ điều khiển MPC với N 3, Q R I . Khi đó:
1 1 0 0
A xk1 xk 2 1 1 , B 1 , C 1 , x k 1 , 0
0 0 1 1
và 2
k uk yk
-5
0 1.19231 0
u[k]
1 -0.5576 0
2 -7.4383 4.5490 -15
3 -11.5217 4.1153
4 -14.0573 4.0541 -25
2 4 6 8 10 12 14 16 18 20
5 -15.9232 4.5348 Tín hiệu điều khiển
44
Điều khiển hệ song tuyến (tiếp)
Ví dụ 1 với file BL1.m (tiếp)
clc
N=3;w=5;Q=eye(N);R=eye(N);x=[0;0];u=[];y=[];
r=w*ones(N,1);u0=0;
O=zeros(1,N);O(1)=1; %O=[1,0,...,0]
for k=1:20
A=[1 1;x(1)+x(2) 1];B=[0;1];C=[1 x(1)];
E=[];F=zeros(N,N);
Ah=[A B;0 0 1];Bh=[B;1];Ch=[C 0];
for i=1:N
E=[E;Ch*Ah^i];
for j=1:i
F(i,j)=Ch*Ah^(i-j)*Bh; 5
end
4
end
y(k)=C*x;d=E*[x;u0]; 3
du=O*inv(F'*Q*F+R)*F'*Q*(r-d);
u(k)=u0+du;x=A*x+B*u(k);u0=u(k); 2
end
plot(y); 1
u
0
y 0 5 10 15 20
Tín hiệu đầu ra
45
Điều khiển hệ song tuyến (tiếp)
Ví dụ 2
1 1 0 x k1
Hệ x k 1 x u
k k k , y 1 , x k2 x k với x k .
sin(x k1 x k2 ) sin(x k1 x )
k2 1
x
k2
Để điều khiển hệ có đầu ra yk 5 người ta sử dụng bộ điều khiển MPC với N 3, Q R I .
Khi đó:
1 1 0 0
A sin(x k 1 x k 2 ) sin(x k 1 x k 2 ) 1 , B 1 , C 1 , x k 2 , 0
0 0 1 1
và
k uk yk 0
0 -2.5 0
-2
1 -0.0095 6.25
2 0.6975 4.767
-4
3 -2.3691 4.184
0 5 10 15 20 25 30 35
4 -4.1511 4.184
Tín hiệu điều khiển
5 -3.2399 3.9449
46
Điều khiển hệ song tuyến (tiếp)
Ví dụ 2 với file BL2.m (tiếp)
clc
N=3;w=5;Q=eye(N);R=eye(N);x=[0;0];u=[];y=[];
r=w*ones(N,1);u0=0;
O=zeros(1,N);O(1)=1; %O=[1,0,...,0]
for k=1:35
A=[1 -1;-sin(x(1)+x(2)) -sin(x(1)+x(2))];B=[0;1];C=[1 x(2)];
E=[];F=zeros(N,N);
Ah=[A B;0 0 1];Bh=[B;1];Ch=[C 0];
for i=1:N
E=[E;Ch*Ah^i];
for j=1:i
F(i,j)=Ch*Ah^(i-j)*Bh;
end
6
end
y(k)=C*x;d=E*[x;u0];
du=O*inv(F'*Q*F+R)*F'*Q*(r-d); 4
u(k)=u0+du;x=A*x+B*u(k);u0=u(k);
end 2
plot(y);
u
y 0
0 5 10 15 20 25 30 35
Tín hiệu đầu ra
47
Điều khiển hệ phi tuyến
Mô hình dự báo
Đối tượng điều khiển có mô hình
x k 1 f (x k , u k )
y k g (x k ) với hai vector hàm trơn f (x , u ), g (x )
Nhiệm vụ điều khiển là xây dựng bộ điều khiển phản hồi trạng thái để y w k có {w k } là
k
dãy tín hiệu mẫu cho trước.
Từ mô hình trên thì ở thời điểm k hiện tại và trong toàn bộ cửa cổ dự báo [k , k N ] tương
ứng, khi đã có x k (đo được), chu kỳ trích mẫu đủ nhỏ, hai vector hàm f (x , u ), g (x ) trong lân
cận x k 1 , u k 1 sẽ xấp xỉ được bởi:
f (x , u ) f (x k 1 , u k 1 ) Ak (x x k 1 ) Bk (u u k 1 ) Ak x Bk u k
g (x ) g (x k 1 ) C k (x x k 1 ) C k x k
trong đó
f (x , u ) f (x , u ) g (x )
Ak , Bk , Ck
x x k 1 ,u k 1
u x k 1 ,u k 1
x x k 1
k f (x k 1 , u k 1 ) Ak x k 1 Bk u k 1 và k g (x k 1 ) C k x k 1
48
Điều khiển hệ phi tuyến (tiếp)
Mô hình dự báo (tiếp)
Vậy trong lân cận x k 1 , u k 1 , và do đó tại x k , u k hệ xấp xỉ được bởi:
x k 1 Ak x k Bk u k k
y k C k x k k
Đó cũng là trường hợp hệ tuyến tính đã xét. Suy ra, khi xem k , k là hằng trong toàn bộ
cửa sổ dự báo hiện tại [k , k N ] hệ sẽ có mô hình dự báo là:
y Fu d
trong đó
y k 1 CB 0 0
Ak Bk Bk
y , F , A , B , C C k , 0
y CAN 1B CAN 2B CB 0 I I
k N
CA Ck k k
u k
xk
u
, d zk
z
và k
u u k 1
k N 1
CAN
N 1
k k
C A Ak I k
k
49
Điều khiển hệ phi tuyến (tiếp)
Hàm mục tiêu và tối ưu hóa
Khi sử dụng hàm mục tiêu dạng toàn phương cho mọi thời điểm k :
T
Jk y w Qk y w uT Rk u
có Qk , Rk là hai ma trận đối xứng xác định dương tùy chọn, sẽ có:
1
u FTQk F Rk FTQk w d và u k u k 1 I , 0, , 0 u
trong đó w col w k 1 , w k 2 , , w k N
xk 2 xk1 0 0
A 2x k 1 0 1 , B 1 , C 1 , x k 1 , 0
0 0 1 1
và
k uk yk
0
1
2
3
4
5
Tín hiệu điều khiển
51
Điều khiển hệ phi tuyến (tiếp)
Ví dụ minh họa (tiếp với file NL.m)
52
Một số vấn đề lý thuyết còn tồn tại
53
Tài liệu tham khảo
54