You are on page 1of 54

ĐIỀU KHIỂN DỰ BÁO THEO MÔ HÌNH

GS. Nguyễn Doãn Phước

Nội dung môn học

1. Cấu trúc bộ điều khiển dự báo. Nguyên lý làm việc.


2. Những phương pháp cơ bản: MAC, DMC và GPC
3. Bộ điều khiển dự báo phản hồi trạng thái cho hệ tuyến tính
4. Bộ điều khiển dự báo phản hồi trạng thái cho hệ phi tuyến

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

Gồm ba khối cơ bản: Phương pháp


tối ưu hóa
1. Khối dự báo: Xác định tín hiệu ra tương
lai y k i tính từ thời điểm hiện tại k {w k } Hàm mục uk Quá trình yk
tiêu công nghiệp
2. Hàm mục tiêu: Xây dựng từ chất lượng y k i xk
mong muốn mà hệ thống phải có y k  w k Mô hình nk
dự báo
3. Tối ưu hóa: Tìm nghiệm u k để hàm
mục tiêu đạt giá trị nhỏ nhất
N
Nguyên tắc trượt dọc trên trục thời gian

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

Những điều lưu ý

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 

Ví dụ: Hàm mục tiêu của phương pháp MAC


Viết lại tất cả các đầu ra tương lai yk i , i  0,1,  , N chung với nhau thành
i
yk i  ci   g j uk i  j , i  1, 2,  , N  y G p c
j 0
 yk   uk   c0   g0 0  0
       
y
y   k 1  , p   uk 1  , c   c1  , G   g1 g0  0
              
       
 yk N   uk N   cN   gN gN 1  g 0 

thì hàm mục tiêu toàn phương của MAC sẽ là

 
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

Tối ưu hóa p*  arg min J k (p ), p  col u k ,  , u k N  , u i  R


m
pP
*
1. Không ràng buộc, nếu P  R (N 1)m . Khi đó nó được viết thành: p  arg min J k (p )
2. Có ràng buộc, nếu P  R (N 1)m
3. Lồi, nếu P là tập lồi và J k (p ) là hàm lồi
Các phương pháp cơ bản
Không ràng buộc: Có ràng buộc:
1. Gradient 1. QP
2. Newton-Raphson 2. SQP
3. Levenberg-Marquard 3. Interior point
Ứng dụng vào điều khiển
1. Nhận dạng tham số mô hình
2. Xác định tham số tối ưu cho bộ điều khiển
Điều khiển dự báo u k   I m , 0,  , 0  p
*
3.
4. ….
7
Nguyên lý làm việc chung (tiếp)
Khối thứ ba: Tối ưu hóa (tiếp)
Phương pháp gradient
1. Chọn điểm khởi phát p 0 và   0 nhỏ tùy ý. Gán k  0
2. Xác định hướng tìm h k  gradJ (pk ) và khoảng cách
bước tìm sk
3. Tính pk 1  pk  sk h k
*
4. Nếu J (pk 1 )  J (pk )   thì dừng với đáp số p  pk 1 .
Ngược lại thì gán k : k  1 và quay về bước 2.

Phương pháp Newton-Raphson


1. Chọn điểm khởi phát p 0 và   0 nhỏ tùy ý. Gán k  0
2
2. Xác định h k  H k1gradJ (pk ) với H k   2J (pk )  p (gọi
là ma trận Hesse) và khoảng cách bước tìm sk
3. Tính pk 1  pk  sk h k
*
4. Nếu J (pk 1 )  J (pk )   thì dừng với đáp số p  pk 1 .
Ngược lại thì gán k : k  1 và quay về bước 2.
8
Nguyên lý làm việc chung (tiếp)
Khối thứ ba: Tối ưu hóa (tiếp)
Nghiệm bài toán tối ưu toàn phương

Bài toán tối ưu

p*  arg min J k (p ) với J (p )  pT Ap  bT p và A đối xứng xác định dương


có nghiệm
1
p*   A1b
2
Ví dụ: Nghiệm tối ưu của phương pháp MAC

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

Tính u k Tính u k 1 Tính u k  2


Tối ưu
k : k  1 hóa
Đưa vào Đưa vào Đưa vào
điều khiển điều khiển điều khiển Xác định tín
đối tượng đối tượng đối tượng hiệu điều khiển

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

Các bước tính của thuật toán MAC


1. Tùy chọn cửa sổ dự báo N  2 . Xây dựng ma trận G . Gán k  0 và u 0  0
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk
3. Tính ci , i  0,1,  , N và từ đó là vector c
 
1
GT Qk c  w  và uk  1, 0,  , 0  p
*
4. Tính p*   GT QkG  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 ý

─ Đố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

Khi đó đầu ra dự báo tính từ thời điểm k hiện tại sẽ là:


  i
yk i   h j uk i  j   h j uk i  j   h j uk i  j
j 0 j i 1 j 0
k i i i
  h j uk i  j   h j uk i  j  di   h j uk i  j , i  0,1,  , N
j i 1 j 0 j 0

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

trong đó di  hi 1uk 1  hi  2 uk  2    hi k u0


 uk   d0   h0 0  0
     
  uk 1   d1   h1 h0  0
p ,d ,H
           
     
 uk N   dN   hN hN 1  h0 

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à:

uk  1, 0,  , 0  p*  uk  uk 1  1, 0,  , 0  p*

Thuật toán điều khiển


1. Tùy chọn cửa sổ dự báo N  2 . Xây dựng ma trận H . Gán k  0, u 1  0
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk
3. Tính di , i  0,1,  , N và từ đó là vectord

 
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:

A(z 1 )yk  B (z 1 )uk 1

trong đó z i x k  x k i và hai đa thức A(z 1 ), B (z 1 ) có bậc lần lượt là n , m


Ký hiệu Ei (z 1 ), Fi (z 1 ) là nghiệm của các phương trình Diophantine:

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

z i Ei (z 1 )A(z 1 )yk  z i Ei (z 1 )B (z 1 )uk 1


i 1 1 1
 1  z Fi (z )  yk i  Ei (z )B (z )uk i 1

Vậy công thức dự báo đầu ra là

yk i  Fi (z 1 )yk  Gi (z 1 ) uk i 1 với Gi (z 1 )  Ei (z 1 )B (z 1 )

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

trong đó fi , j , gi , j là các hệ số của hai đa thức Fi (z 1 ), Gi (z 1 ), tức là:

Fi (z 1 )  fi ,0  f j ,1z 1    fi ,n z n và Gi (z 1 )  gi ,0  gi ,1z 1    gi ,m i 1z (m i 1)

thì toàn bộ đầu ra dự báo yk i , i  1, 2,  , N sẽ có dạng vector như sau:


y  E1 p  E 2 ub  Fyb
trong đó

 yk 1   uk   uk 1   yk   g1,0 0  0 


         
y u u y  , E   g 2,1 g 2,0  0 
y   k 2 , p   k 1 , u   k  2 , y   k 1
      b    b    1      
         
 yk N   uk N 1   uk m   yk n   gN ,N 1 gN ,N  2  gN ,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 

Tương ứng, hàm mục tiêu sẽ là:


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 .

Dự báo tín hiệu đầu ra


Đầu ra tương lai tính từ thời điểm k hiện tại của hệ MIMO tuyến tính được xác định nhờ mô
hình phương trình sai phân cho k  0,1,  :

y k  A1,0 y k 1    An ,0 y k n  d k  B0,0 u k    Bm ,0 u k m , ul  0 khi l  0

trong đó Ai ,0 , B j ,0 , i  1, 2,  , n , j  0,1,  , m là các ma trận hệ số của mô hình và d k là


nhiễu tác động vào hệ (không đo được). Từ mô hình trên thì:


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

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

Viết chung tất cả các đầu ra dự báo y


k i
, i  0,1,  , N thành một vector sẽ được:
y  Yu  g
với
 yk   u k N   0  0 B0,0 
     
 y k 1   u k N 1   0  B0,1 B1,1 
y  , u   , Y , g  Bub  Ayb  Dd k/
       
      
y   u k   B0,N  BN 1,N BN ,N 
 k N 
26
Phương pháp AGPC (tiếp)
Dự báo tín hiệu đầu ra (tiếp)

 B1,0 B2,0  Bm ,0   A1,0 A2,0  An ,0   I 


 B B3,1  
Bm 1,1 A A2,1  An ,1  D 
2,1  , A   1,1
B , D 1
              
B BN  2,N 
 Bm N ,N  A A2,N 
 An ,N  D 
 N 1,N  1,N  N

 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 ý

─ Không liên quan tới phương trình Diophantine.


─ Không phân biệt SISO và MIMO.
─ Có thể chọn Qk , Rk là ma trận hằng chung cho tất cả các vòng lặp.
─ Áp dụng được khi hệ có nhiễu biến đổi chậm.
─ Có khả năng tách kênh tốt.
─ Hệ điều khiển là vòng kín (có phản hồi y k ).

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 .

Ước lượng nhiễ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

Thuật toán điều khiển

1. Chọn cửa sổ dự báo N  2 . Xây dựng ma trận 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 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.

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

3. Khi k  2 thì u 2  0.4113, y 2  4.9298 3

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 ý

─ Không phân biệt SISO và MIMO.


─ Có thể chọn Qk , Rk là ma trận hằng chung cho tất cả các vòng lặp, hoặc có thể thay đổi
chúng theo từng vòng lặp để tín hiệu điều khiển thỏa mãn thêm điều kiện ràng buộc.
─ Áp dụng được khi hệ có nhiễu biến đổi chậm.
─ Hệ điều khiển là vòng kín (có phản hồi x k , y k ).
─ Có thể sử dụng thêm bộ quan sát trạng thái để được bộ điều khiển phản hồi đầu ra y k .

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
       

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

Bởi vậy ta lại có được:



 y k 1   v k/   CA   u k 
       xk   
y  Fu  d trong đó y     , d       k k u  , u  
z , z   
   /    N   k 1   u 
 y k N   v k  CA   k N 1 

41
Điều khiển hệ song tuyến (tiếp)
Mô hình dự báo (tiếp)



 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 

Hàm mục tiêu và tối ưu hóa


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 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

1. Chọn cửa sổ dự báo N  2 . Gán k  0, u 1  0 .


2. Chọn hai ma trận đối xứng xác định dương Qk , Rk . Đo x k , y k . Xây dựng các ma trận
   /
tham số Ak , Bk , C k và từ đó là A, B , C , F . Xác định v k , z k , 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 ý

─ Không phân biệt SISO và MIMO.


─ Có thể chọn Qk , Rk là ma trận hằng chung cho tất cả các vòng lặp, hoặc có thể thay đổi
chúng theo từng vòng lặp để tín hiệu điều khiển thỏa mãn thêm điều kiện ràng buộc.
─ Áp dụng được khi hệ có nhiễu biến đổi chậm.
─ Hệ điều khiển là vòng kín (có phản hồi x k , y k ).
─ Có thể sử dụng thêm bộ quan sát trạng thái để được bộ điều khiển phản hồi đầu ra y k .

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
  

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 

Thuật toán điều khiển


1. Chọn cửa sổ dự báo N  2 . Gán k  0, u 1  0 .
2. Chọn hai ma trận đối xứng xác định dương Qk , Rk . Đo x k . Xây dựng các ma trận tham
số Ak , Bk ,C k và từ đó là A, B, C, F . Xác định  k ,  k và từ đó là 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.
50
Điều khiển hệ phi tuyến (tiếp)
Ví dụ minh họa
 x k1x k 2   x k1 
 x 2  u  , yk  1 , x k 1  x k , x k   x 
Để điều khiển hệ x k 1   có đầu ra yk bám theo
 k1   k2 
tín hiệu mẫuwk  5 người ta sử dụng bộ điều khiển MPC với N  5, Q  R  I . Khi đó:

 xk 2 xk1 0  0
   
A   2x k 1 0 1  , B   1  , C  1 , x k 1 , 0 
 0 0 1  1
  

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

1. Camacho, E. and Bordons, C.: Model predictive control. Springer, 1999


2. Grüne,L. and Pannek,J.(2010): Nonlinear model predictive control. Theory and Algorithms. Springer.
3. Phước,N.D: Tối ưu hóa trong điều khiển và điều khiển tối ưu. NXB Bách khoa, 2016.
4. Phước,N.D: Phân tích và điều khiển hệ phi tuyến. NXB Bách khoa, 2012.
5. Phuoc,N.D. and Ha,L.T.T: Constrained output tracking control for time-varying bilinear systems via
RHC with infinite prediction horizon. Journal of Informatic and Cybernetic, vol.31, no.2, pp.97-106 ,
2015

54

You might also like