You are on page 1of 24

ĐIỀU KHIỂN HỌC LẶP

(ITERATIVE LEARNING CONTROL - ILC)


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

Nguyên lý học và điều khiển:


*
Học để có được u k (t )  u (t ), k  0,1, 

Áp dụng bộ điều khiển vòng hở u N (t )

trạng thái đầu

u (t ) y (t )
Đối tượng
điều khiển y * (t )  min y (t )  r (t )
u * (t ) u (t )

Nguyên tắc học:


Xác định công thức học lặp: u k 1 (t )  f l u k ( ), y k ( ), t  với    0,T  , k  0,1,  , N

để có: y (t )  r (t )  
N

1
Các bước xây dựng bộ điều khiển học lặp (ILCler)

Chọn hàm học fl ()

Gán k  0 u0 (t ), t   0,T 

Đưa u k (t ) vào điều khiển


Quá trình học

Reset trạng thái đầu


đối tượng và đo y (t )
k
Tính u k 1 (t )
Gán k : k  1
Kiểm tra
sai y k (t )  r (t )  

đúng
Ghi nhận N k 
u N (t )  f l uN 1 ( ), y N 1 ( ), t 
Kết thúc quá trình học. Đưa u j (t ), j  N vào điều khiển đối tượng

2
Đặc điểm của bộ điều khiển học lặp (ILCler)

uk
lần thử thứ k

ek

u k 1
lần thử thứ k  1

e k 1

t 1 t t 1 T

3
Đặc điểm của bộ điều khiển học lặp (ILCler) – tiếp
Học lặp bậc cao

r (t ) Bộ nhớ + Học y k (t )
u k (t )
u k 1 ( ), e k 1 ( ), Đối tượng
điều khiển
0   T , k  N

Chất lượng điều khiển phụ thuộc vào công thức học lặp:

u k 1 (t )  f u k ( ),e k ( ), t  , 0    T
l

Điều khiển học lặp bậc cao:

─ Bậc 2: u k 1 (t )  f u k 1 ( ),ek 1 ( ), u k ( ),e k ( ), t  , 0    T


l

─ Bậc cao: u k 1 (t )  f l u k i ( ),e k i ( ),  , u k ( ),e k ( ), t  , 0    T

4
Đặc điểm của bộ điều khiển học lặp (ILCler) – tiếp
Khả năng tồn tại của hàm học

Nhiệm vụ của quá trình học là xác định được u N (t ) để với nó đầu ra y N (t ) tương ứng của hệ
thỏa mãn:

y (t )  r (t )   với mọi   0
N

trong đó r (t ) là tín hiệu đặt trước mà hệ cần phải bám theo. Như vậy, câu hỏi đặt ra là hệ phải
có tính chất gì thì với mọi tín hiệu đặt r (t ) sẽ luôn tồn tại dãy u k (t ) để có y (t )  r (t ) . Câu
k
trả lời trước mắt đã có cho hệ tuyến tính, như sau. Nếu hệ tuyến tính:

x  Ax  Bu 1
y  C x với ma trận hàm truyền G (s )  C sI  A B

là thực dương chặt (strict positive real), thì luôn tồn tại hai ma trận đối xứng xác định dương Q
và P để có:

AT P  PA  Q và PB  C T
Khi đó với mọi hàm r (t ) khả vi cho trước luôn tồn tại u d (t ) để có y d (t )  r (t ) . Những hệ này
được gọi là “khả nghịch”. Điều kiện cần cho nó là hệ phải ổn định.
5
Đặc điểm của bộ điều khiển học lặp (ILCler) – tiếp
Tổng kết

1. Là bộ điều khiển thông minh, vì không sử dụng mô hình toán của đối tượng.
2.  
Tính hội tụ của quá trình học phụ thuộc hàm học u k 1 (t )  f l u k ( ), y k ( ), t được chọn
và tất nhiên còn phụ thuộc vào bản thân đặc tính động học của đối tượng điều khiển.
3. Mỗi khi thay đổi lại tín hiệu đặt r (t ) hoặc trạng thái đầu thì phải thực hiện lại quá trình học.
4. Áp dụng cho những đối tượng có quá trình làm việc lặp lại theo thời gian trong khoảng thời
gian cố định nT  t  (n  1)T
5. Tên gọi “learning” vì tín hiệu đầu vào u k (t ) được hiệu chỉnh lại thông qua các dữ liệu quá
khứ trước đó u k 1 ( ), y ( ), 0    T
k 1
6. Tên gọi “iterative” vì quá trình học là một quá trình lặp và chỉ kết quả cuối cùng của quá
trình học là u j (t ), j  N mới sử dụng được (khác biệt so với “recursive”).
7. ILCler áp dụng cho đối tượng ổn định. Với đối tượng không ổn định người ta ổn định hóa
nó trước nhờ bộ truyền thống rồi mới áp dụng ILCler dưới dạng feedforward.
8. Khi xét tính hội tụ của quá trình học, thông thường xem u k (t )  u (k , t ) là hàm trong không
gian 2 chiều rồi sử dụng lý thuyết hệ thống 2 chiều (two dimensional system theory).
6
Một số hàm học cơ bản

Hệ không liên tục

1. u k 1 (t )  u k (t )  Ke k (t ) với e k (t )  r (t )  y (t )
k

2. u k 1 (t )  u k (t )  Ke k (t  1) 3. u k 1 (t )  K1u k (t )  K 2 e k (t )

4. u k 1 (t )  u k (t )   k (t )Ke k (t ) 5. u k 1 (t )  K1u k (t )  K 2 e k (t  1)  K 3e k 1 (t )

Hệ liên tục
d i e k (t )
1. u k 1 (t )  u k (t )  Kek (t ) 2. u k 1 (t )  u k (t )  K
dt i
3. u k 1 (t )  K1u k (t )  K 2e k (t ) 4. u k 1 (t )  u k (t )   k (t )Ke k (t )
t
5. u k 1 (t )  u k (t )  K p ek (t )  K D ek (t )  K I  ek ( )d
0
6. U k 1 (s )  L (s ) U k (s )  K E k (s ) 

7
Tính hội tụ của thuật học

Để xét tính hội tụ của thuật học, tức là của các hàm học:

u k 1 (t )  f u k ( ),ek ( ), t  , 0    T
l
u k 1 (t )  f l u k i ( ),ek i ( ),  , u k ( ),ek ( ), t  , i  1, 2, 

theo nghĩa y k (t )  r (t ) khi k   , hay

*
u k (t )  u (t )  arg min r (t )  y k (t )
u

người ta cần tới mô hình toán của đối tượng điều khiển. Ở một số trường hợp có khi họ còn
xét thêm cả T  

Ở hệ không liên tục tuyến tính (ổn định)


1. Mô hình toán là dãy gồm N giá trị hàm trọng lượng g 0 ,  , gN 1
Ký hiệu vector các tín hiệu đầu vào thuộc khoảng 0    T ở bước thử thứ k là:

u k  uk (0),  , uk (N  1) 
T

8
Tính hội tụ của thuật học – tiếp

Công thức hàm học: u k 1  u k  Ke k , trong đó:

e k  ek (0),  ,ek (N  1) 


T
và ek (i )  ri  yk (i ), ri  r (i )

Kết luận: Luôn tồn tại dãy các giá trị k 0 ,  , kN 1 để với ma trận:

 k0r0 0  0 
 
kr k 0r0  0 
K  2 1
     
 
 kN 1rN 1 kN 1rN 1  k0r0 

có được tính hội tụ: e k  0.

2. Mô hình toán

x (t  1)  Ax (t )  Bu (t )

y (t )  C x (t )

9
Tính hội tụ của thuật học – tiếp

Công thức hàm học: u k 1 (t )  u k (t )  Ke k (t  1)

Kết luận: Sẽ có tính hội tụ yk (t )  r (t ), 0  t  T khi k   nếu có I  CBK  1

Ở hệ liên lục tuyến tính ổn định


Mô hình toán và công thức hàm học

x  Ax  Bu d i e k (t )
và u k 1 (t )  u k (t )  K
 dt i
y  C x
i 1
Sẽ có tính hội tụ nếu I  CA BK  1

Ở hệ phi tuyến mô tả bằng toán tử


Mô hình toán là toán tử: y  F u (t ), t 

Công thức hàm học: u k 1 (t )  f u k ( ),e k ( ), t   f u k ( ), r ( )  F (u k ( ), ), t 


l l

Kết luận: Sẽ có được tính hội tụ nếu như tồn tại 0    1 thỏa mãn:

f l u k ( ), r ( )  F (u k ( ), ), t   f l  k ( ), r ( )  F ( k ( ), ), t    u k ( )   k ( )

10
Tính hội tụ của thuật học – tiếp

Ở hệ phi tuyến mô tả bằng phương trình trạng thái

Mô hình trạng thái: x  f (x , t )  B (x , t )u




y  G (x , t )x
 
Công thức hàm học dạng vi phân: u k 1 (t )  u k (t )  L y k (t ) ek (t )

Kết luận: Sẽ có được tính hội tụ nếu với mọi x và t luôn có:
I  L (y )G (x ,t )B (x , t )  1, y  G (x ,t )x

Xác định tham số công thức học theo tiêu chuẩn tối ưu
Công thức hàm học:

11
ILCler cho đối tượng không ổn định

ILCer
ek ( ) u k 1 (t ) u k ( )
r (t ) y (t )
Bộ điều khiển Đối tượng
truyền thống điều khiển
u (t )

Để có được chất lượng học tốt, hệ cần ổn định. Bởi vậy ở những hệ không ổn định người ta
phải ổn định hóa nó trước và thường là nhờ một bộ điều khiển truyền thống.

Những phương pháp ổn định hóa thích hợp cho ILCler sau này thường là:
─ Bậc 2:
─ Bậc cao:

12
Cài đặt ILCer

Ví dụ 1: Điều khiển bám với luật học D


z  0.5
Hệ không liên tục có hàm truyền G (z )  2
(để mô phỏng),
z  0.7z  0.1
tương đương với y (t )  u (t  1)  0.5u (t  2)  0.7y (t  1)  0.1y (t  2)

Sử dụng hàm học uk 1 (t )  uk (t )  Kek (t  1) với K  0.5 và T  120 được

2.5 2.5

2 2

1.5 1.5

1
1
0.5
0.5
reference Sau 1 lần học reference Sau 10 lần học
0
output 0 output
-0.5
0 20 40 60 80 100 120 0 20 40 60 80 100 120

13
Cài đặt ILCer – tiếp
Chương trình minh họa ví dụ 1 (ILCer_1)

clc
N=60;K=0.5;r=[];t=[];y=[];u=[];e=[];con=1; %T=2*N
for i=1:N
r(i)=min((i-1)*0.1,2.5);r(2*N+1-i)=r(i); %create the reference
t(i)=i-1;t(N+i)=N+i-1; %control time interval
e(i)=0;e(N+i)=0; %tracking error
end
u=r;
while con==1
for i=1:2*N-1
u(i)=u(i)+K*e(i+1);
end
u(2*N)=u(2*N)+K*e(2*N);
y(1)=1;y(2)=1; %initial values
for i=3:2*N
y(i)=u(i-1)+0.5*u(i-2)-0.7*y(i-1)-0.1*y(i-2);
end
e=r-y;
con=input('Press 1 to continue or 2 to stop: ');
end
plot(t,r,t,y);legend('reference','output');

14
Cài đặt ILCer – tiếp

Ví dụ 2: Điều khiển bám với luật học PD


z  0.2
Hệ không liên tục có hàm truyền G (z )  2
(để mô phỏng).
z  1.3z  0.4
Hệ có các tham số khác so với ví dụ 1 nên cần phải thay đổi lại tham số của hàm học.

Sử dụng hàm học uk 1 (t )  uk (t )  K1ek (t )  K 2ek (t  1) với K1  0.1, K 2  0.15

2.5 2.5

2 2

1.5 1.5

1 1

Sau 20 lần học Sau 200 lần học


0.5 reference 0.5 reference
output output
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120

15
Cài đặt ILCer – tiếp
Chương trình minh họa ví dụ 2 (ILCer_2)

clc;
N=60;K1=0.1;K2=0.15;r=[];t=[];y=[];u=[];e=[];
M=20; %number of learning steps
for i=1:N
r(i)=min((i-1)*0.1,2.5);r(2*N+1-i)=r(i); %create the reference
t(i)=i-1;t(N+i)=N+i-1; %control time interval
e(i)=0;e(N+i)=0; %tracking error
end
u=r;
for j=1:M
for i=1:2*N-1
u(i)=u(i)+K1*e(i)+K2*e(i+1); %learning function
end
u(2*N)=u(2*N)+(K1+K2)*e(2*N); %at the end time instant
y(1)=1;y(2)=0;
for i=3:2*N
y(i)=u(i-1)+0.2*u(i-2)-1.3*y(i-1)-0.4*y(i-2);
end
e=r-y;
end
plot(t,r,t,y);legend('reference','output');

16
Cài đặt ILCer – tiếp
Ví dụ 3: Kiểm chứng khả năng kháng nhiễu
z  0.2
Xét lại hệ có hàm truyền G (z )  , nhưng bây giờ có thêm nhiễu d (t ) tác động
2
ở đầu ra.
z  1.3z  0.4

Ta sẽ kiểm chứng khả năng kháng nhiễu của hai thuật học gồm:

- Thuật PD: uk 1 (t )  uk (t )  K1ek (t )  K 2ek (t  1)

- Thuật PID: uk 1 (t )  uk (t )  K1ek (t  1)  K 2ek (t )  K 3ek (t  1)

Khi đó với K1  0.1, K 2 =K 3  0.3 sẽ có các kết quả sau 5 và 15 lần học như sau:

17
Cài đặt ILCer – tiếp
Chương trình minh họa ví dụ 3 (ILCer_3)

clc
N=100;K1=0.1;K2=0.3;K3=0.3;r=[];t=[];d=[];
y1=[];u1=[];e1=[];y2=[];u2=[];e2=[];
M=5; %number of learning steps
for i=1:N
r(i)=min((i-1)*0.1,2.5);r(2*N+1-i)=r(i); %create the reference
d(i)=0.1*random('poisson',2);d(2*N+1-i)=d(i); %external disturbance
t(i)=i-1;t(N+i)=N+i-1; %control time interval
e1(i)=0;e1(N+i)=0;e2(i)=0;e2(N+i)=0; %tracking error
end
u1=r;u2=r;
for j=1:M
u1(1)=u1(1)+(K1+K2)*e1(1)+K3*e1(2);
u2(1)=u2(1)+K1*e1(1)+K2*e1(2);
for i=2:2*N-1
u1(i)=u1(i)+K1*e1(i-1)+K2*e1(i)+K3*e1(i+1); %PID learning function
u2(i)=u2(i)+K1*e2(i)+K2*e2(i+1); %PD learning function
end

%(còn nữa)

18
Cài đặt ILCer – tiếp

Chương trình minh họa ví dụ 3 (tiếp ILCer_3)


%(tiếp)

u1(2*N)=u1(2*N)+K1*e1(2*N-1)+(K2+K3)*e1(2*N); %at the end time instant


u2(2*N)=u2(2*N)+(K1+K2)*e2(2*N); %at the end time instant
y1(1)=0;y1(2)=0;
y2(1)=0;y2(2)=0;
for i=3:2*N
y1(i)=u1(i-1)+0.2*u1(i-2)-1.3*y1(i-1)-0.4*y1(i-2)+d(i);
y2(i)=u2(i-1)+0.2*u2(i-2)-1.3*y2(i-1)-0.4*y2(i-2)+d(i);
end
e1=r-y1;e2=r-y2;
end
plot(t,r,t,y1,t,y2,t,d);
legend('reference','output with PID-ILC','output with PD-ILC','external
disturbance');

Đánh giá: Có khả năng kháng nhiễu tốt.

19
Cài đặt ILCer – tiếp
Tổng kết

20
Những hạn chế của ILCer

21
Lịch sử và xu hướng phát triển của ILC
[1] Uchiyama,M. “Formation of high speed motion pattern of mechanical arm by trial”.
Transactions of Society of Instrumentation and Control engineer, 19(5), pp. 706-712, May
1978
[2] Arimoto,S. et.al. “Bettering operation of robot by learning”. Journal of robotic system, 1(2),
pp.123-140, March 1984
[3] Furuta,K. et.al. “The design of learning control system for multivariable systems”.
Proceedings of IEEE int. Symposium on Intelligent control”. pp.371-376, Pennsylvania,
January 1987
[4] Mitta,T. et.al. “Iterative control and its application to motion control of robot arm – A direct
approach to servo problems”. Proceedings of 24th Conference on Decision and Control, pp.
1393-1398, Florida, December 1985
[5] Moore,K.L. “Iterative learning control for deterministic systems”. London, Springer Verlag,
1993
[6] Xu,J.X. and Tan,Y. “Linear and nonlinear iterative learning control”. Springer Verlag, 2003
[7] Norrloef,M. “Iterative learning control: Analysis, Design and Experiment”. Diss., No.653,
Linkoepings University, Sweden 2000
[8] Bristow,D.A. et.al. "A Survey of Iterative Learning Control: A learning-based method for
high-performance tracking control". IEEE control systems magazine. Vol. 26. pp. 96-114.,
2006
22
Lịch sử và xu hướng phát triển của ILC – tiếp
Phân hóa thành những dạng khác nhau:
─ Repetitive:
─ Run to run:
─ Reinforcement:

23
Kết luận

24

You might also like